| Jeff Gaston | c6dfc4e | 2017-05-30 17:12:37 -0700 | [diff] [blame] | 1 | #!/bin/bash | 
|  | 2 |  | 
|  | 3 | # locate some directories | 
|  | 4 | cd "$(dirname $0)" | 
|  | 5 | SCRIPT_DIR="${PWD}" | 
|  | 6 | cd ../.. | 
|  | 7 | TOP="${PWD}" | 
|  | 8 |  | 
|  | 9 | message='The basic Android build process is: | 
|  | 10 |  | 
|  | 11 | cd '"${TOP}"' | 
|  | 12 | source build/envsetup.sh    # Add "lunch" (and other utilities and variables) | 
|  | 13 | # to the shell environment. | 
|  | 14 | lunch [<product>-<variant>] # Choose the device to target. | 
| Colin Cross | 3fb7ddf | 2021-03-01 13:32:13 -0800 | [diff] [blame] | 15 | m [<goals>]                 # Execute the configured build. | 
| Jeff Gaston | c6dfc4e | 2017-05-30 17:12:37 -0700 | [diff] [blame] | 16 |  | 
|  | 17 | Usage of "m" imitates usage of the program "make". | 
| Dan Willemsen | 7733862 | 2017-11-08 16:39:18 -0800 | [diff] [blame] | 18 | See '"${SCRIPT_DIR}"'/Usage.txt for more info about build usage and concepts. | 
| Jeff Gaston | c6dfc4e | 2017-05-30 17:12:37 -0700 | [diff] [blame] | 19 |  | 
| Colin Cross | 3fb7ddf | 2021-03-01 13:32:13 -0800 | [diff] [blame] | 20 | The parallelism of the build can be set with a -jN argument to "m".  If you | 
| Jaewoong Jung | f9a2e4d | 2021-03-25 14:40:44 -0700 | [diff] [blame] | 21 | don'\''t provide a -j argument, the build system automatically selects a parallel | 
| Colin Cross | 3fb7ddf | 2021-03-01 13:32:13 -0800 | [diff] [blame] | 22 | task count that it thinks is optimal for your system. | 
|  | 23 |  | 
| Jeff Gaston | c6dfc4e | 2017-05-30 17:12:37 -0700 | [diff] [blame] | 24 | Common goals are: | 
|  | 25 |  | 
|  | 26 | clean                   (aka clobber) equivalent to rm -rf out/ | 
|  | 27 | checkbuild              Build every module defined in the source tree | 
|  | 28 | droid                   Default target | 
|  | 29 | nothing                 Do not build anything, just parse and validate the build structure | 
|  | 30 |  | 
|  | 31 | java                    Build all the java code in the source tree | 
|  | 32 | native                  Build all the native code in the source tree | 
|  | 33 |  | 
|  | 34 | host                    Build all the host code (not to be run on a device) in the source tree | 
|  | 35 | target                  Build all the target code (to be run on the device) in the source tree | 
|  | 36 |  | 
|  | 37 | (java|native)-(host|target) | 
|  | 38 | (host|target)-(java|native) | 
|  | 39 | Build the intersection of the two given arguments | 
|  | 40 |  | 
|  | 41 | snod                    Quickly rebuild the system image from built packages | 
|  | 42 | Stands for "System, NO Dependencies" | 
|  | 43 | vnod                    Quickly rebuild the vendor image from built packages | 
|  | 44 | Stands for "Vendor, NO Dependencies" | 
| Jaekyun Seok | b7735d8 | 2017-11-27 17:04:47 +0900 | [diff] [blame] | 45 | pnod                    Quickly rebuild the product image from built packages | 
|  | 46 | Stands for "Product, NO Dependencies" | 
| Justin Yun | 6151e3f | 2019-06-25 15:58:13 +0900 | [diff] [blame] | 47 | senod                   Quickly rebuild the system_ext image from built packages | 
|  | 48 | Stands for "SystemExt, NO Dependencies" | 
| Bowgo Tsai | d624fa6 | 2017-11-14 23:42:30 +0800 | [diff] [blame] | 49 | onod                    Quickly rebuild the odm image from built packages | 
| Yifan Hong | cfb917a | 2020-05-07 14:58:20 -0700 | [diff] [blame] | 50 | Stands for "Odm, NO Dependencies" | 
|  | 51 | vdnod                   Quickly rebuild the vendor_dlkm image from built packages | 
|  | 52 | Stands for "VendorDlkm, NO Dependencies" | 
| Yifan Hong | f496f1b | 2020-07-15 16:52:59 -0700 | [diff] [blame] | 53 | odnod                   Quickly rebuild the odm_dlkm image from built packages | 
|  | 54 | Stands for "OdmDlkm, NO Dependencies" | 
| Ramji Jiyani | 13a4137 | 2022-01-27 07:05:08 +0000 | [diff] [blame] | 55 | sdnod                   Quickly rebuild the system_dlkm image from built packages | 
|  | 56 | Stands for "SystemDlkm, NO Dependencies" | 
| Jeff Gaston | c6dfc4e | 2017-05-30 17:12:37 -0700 | [diff] [blame] | 57 |  | 
|  | 58 |  | 
|  | 59 | So, for example, you could run: | 
|  | 60 |  | 
|  | 61 | cd '"${TOP}"' | 
|  | 62 | source build/envsetup.sh | 
|  | 63 | lunch aosp_arm-userdebug | 
|  | 64 | m -j java | 
|  | 65 |  | 
|  | 66 | to build all of the java code for the userdebug variant of the aosp_arm device. | 
|  | 67 | ' | 
|  | 68 |  | 
|  | 69 | echo "$message" |