blob: 161bad67fa1a754229afa68b1e5509004a0fa51c [file] [log] [blame]
Joe Onorato9a0a2fc2024-05-17 12:31:06 -07001#!/bin/bash
2
Joe Onoratoded5d2d2024-05-24 14:13:47 -07003# Copyright (C) 2024 The Android Open Source Project
Joe Onorato9a0a2fc2024-05-17 12:31:06 -07004#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
Joe Onoratoded5d2d2024-05-24 14:13:47 -070017# Common script utilities
18source $(cd $(dirname $BASH_SOURCE) &> /dev/null && pwd)/../../make/shell_utils.sh
19
Joe Onorato9a0a2fc2024-05-17 12:31:06 -070020cat <<EOF
21
22Run "m help" for help with the build system itself.
23
24Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
25- lunch: lunch <product_name>-<release_type>-<build_variant>
26 Selects <product_name> as the product to build, and <build_variant> as the variant to
27 build, and stores those selections in the environment to be read by subsequent
28 invocations of 'm' etc.
29- tapas: tapas [<App1> <App2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]
30 Sets up the build environment for building unbundled apps (APKs).
31- banchan: banchan <module1> [<module2> ...] \\
32 [arm|x86|arm64|riscv64|x86_64|arm64_only|x86_64only] [eng|userdebug|user]
33 Sets up the build environment for building unbundled modules (APEXes).
34- croot: Changes directory to the top of the tree, or a subdirectory thereof.
35- m: Makes from the top of the tree.
36- mm: Builds and installs all of the modules in the current directory, and their
37 dependencies.
38- mmm: Builds and installs all of the modules in the supplied directories, and their
39 dependencies.
40 To limit the modules being built use the syntax: mmm dir/:target1,target2.
41- mma: Same as 'mm'
42- mmma: Same as 'mmm'
43- provision: Flash device with all required partitions. Options will be passed on to fastboot.
44- cgrep: Greps on all local C/C++ files.
45- ggrep: Greps on all local Gradle files.
46- gogrep: Greps on all local Go files.
47- jgrep: Greps on all local Java files.
48- jsongrep: Greps on all local Json files.
49- ktgrep: Greps on all local Kotlin files.
50- resgrep: Greps on all local res/*.xml files.
51- mangrep: Greps on all local AndroidManifest.xml files.
52- mgrep: Greps on all local Makefiles and *.bp files.
53- owngrep: Greps on all local OWNERS files.
54- rsgrep: Greps on all local Rust files.
55- sepgrep: Greps on all local sepolicy files.
56- sgrep: Greps on all local source files.
57- tomlgrep: Greps on all local Toml files.
58- pygrep: Greps on all local Python files.
59- godir: Go to the directory containing a file.
60- allmod: List all modules.
61- gomod: Go to the directory containing a module.
Joe Onorato9a0a2fc2024-05-17 12:31:06 -070062- pathmod: Get the directory containing a module.
63- outmod: Gets the location of a module's installed outputs with a certain extension.
64- dirmods: Gets the modules defined in a given directory.
65- installmod: Adb installs a module's built APK.
66- refreshmod: Refresh list of modules for allmod/gomod/pathmod/outmod/installmod.
67- syswrite: Remount partitions (e.g. system.img) as writable, rebooting if necessary.
68
69Environment options:
70- SANITIZE_HOST: Set to 'address' to use ASAN for all host modules.
71- ANDROID_QUIET_BUILD: set to 'true' to display only the essential messages.
72
Joe Onoratoded5d2d2024-05-24 14:13:47 -070073Look at the source to view more functions. The complete list is:
Joe Onorato9a0a2fc2024-05-17 12:31:06 -070074EOF
Joe Onoratoded5d2d2024-05-24 14:13:47 -070075 T=$(gettop)
76 A=""
77 for i in `cat $T/build/envsetup.sh | sed -n "/^[[:blank:]]*function /s/function \([a-z_]*\).*/\1/p" | sort | uniq`; do
Joe Onorato9a0a2fc2024-05-17 12:31:06 -070078 A="$A $i"
79 done
80 echo $A
Joe Onoratoded5d2d2024-05-24 14:13:47 -070081