Stop using make wrapper around soong_ui
Instead of running make -> makeparallel -> soong_ui, just run soong_ui.
Soong_ui now handles user-facing argument parsing.
The user visible changes should only be:
* Most `make` command line options are no longer supported. Many didn't
do anything useful before this change either.
* `-j` is now implied, so not specifying it will default to full
parallelism instead of a single-threaded build.
* `make` debug messages are removed:
make: Entering directory ...
make: Leaving directory ...
make: *** [run_soong_ui] Error 1
We still support the make workflow for users that don't use envsetup.sh
-- the build servers primarily, but also various helper scripts. These
will be converted later.
Test: in $TOP; make nothing
Test: in $TOP/bionic; make (runs real make, fails w/no makefile)
Test: in $TOP; m nothing
Test: in $TOP; mm nothing
Test: in $TOP; mma nothing
Test: in bionic/libc; m nothing
Test: in bionic/libc; mm
Test: in bionic/libc; mma
Test: in $TOP; mmm bionic/libc
Test: in $TOP; mmma bionic/libc
Test: in bionic; mmm libc
Test: in bionic; mmma libc
Test: set WITH_STATIC_ANALYZER=1, repeat above
Change-Id: Ic00190ac65a6aa924dad35d3d540c11d653b9c53
diff --git a/envsetup.sh b/envsetup.sh
index b71a825..d2bcd36 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -741,7 +741,7 @@
local T=$(gettop)
local DRV=$(getdriver $T)
if [ "$T" ]; then
- $DRV make -C $T -f build/core/main.mk $@
+ _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $@
else
echo "Couldn't locate the top of the tree. Try setting TOP."
return 1
@@ -770,9 +770,9 @@
local T=$(gettop)
local DRV=$(getdriver $T)
# If we're sitting in the root of the build tree, just do a
- # normal make.
- if [ -f build/core/envsetup.mk -a -f Makefile ]; then
- $DRV make $@
+ # normal build.
+ if [ -f build/soong/soong_ui.bash ]; then
+ _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $@
else
# Find the closest Android.mk file.
local M=$(findmakefile)
@@ -807,7 +807,7 @@
if [ "1" = "${WITH_TIDY_ONLY}" -o "true" = "${WITH_TIDY_ONLY}" ]; then
MODULES=tidy_only
fi
- ONE_SHOT_MAKEFILE=$M $DRV make -C $T -f build/core/main.mk $MODULES $ARGS
+ ONE_SHOT_MAKEFILE=$M _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $MODULES $ARGS
fi
fi
}
@@ -875,7 +875,7 @@
fi
# Convert "/" to "-".
MODULES_IN_PATHS=${MODULES_IN_PATHS//\//-}
- ONE_SHOT_MAKEFILE="$MAKEFILE" $DRV make -C $T -f build/core/main.mk $DASH_ARGS $MODULES $MODULES_IN_PATHS $ARGS
+ ONE_SHOT_MAKEFILE="$MAKEFILE" _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $DASH_ARGS $MODULES $MODULES_IN_PATHS $ARGS
else
echo "Couldn't locate the top of the tree. Try setting TOP."
return 1
@@ -886,8 +886,8 @@
{
local T=$(gettop)
local DRV=$(getdriver $T)
- if [ -f build/core/envsetup.mk -a -f Makefile ]; then
- $DRV make $@
+ if [ -f build/soong/soong_ui.bash ]; then
+ _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $@
else
if [ ! "$T" ]; then
echo "Couldn't locate the top of the tree. Try setting TOP."
@@ -899,7 +899,7 @@
local MODULES_IN_PATHS=MODULES-IN-$(dirname ${M})
# Convert "/" to "-".
MODULES_IN_PATHS=${MODULES_IN_PATHS//\//-}
- $DRV make -C $T -f build/core/main.mk $@ $MODULES_IN_PATHS
+ _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $@ $MODULES_IN_PATHS
fi
}
@@ -937,7 +937,7 @@
done
# Convert "/" to "-".
MODULES_IN_PATHS=${MODULES_IN_PATHS//\//-}
- $DRV make -C $T -f build/core/main.mk $DASH_ARGS $ARGS $MODULES_IN_PATHS
+ _wrap_build $DRV $T/build/soong/soong_ui.bash --make-mode $DASH_ARGS $ARGS $MODULES_IN_PATHS
else
echo "Couldn't locate the top of the tree. Try setting TOP."
return 1
@@ -1583,13 +1583,18 @@
function get_make_command()
{
- echo command make
+ # If we're in the top of an Android tree, use soong_ui.bash instead of make
+ if [ -f build/soong/soong_ui.bash ]; then
+ echo build/soong/soong_ui.bash --make-mode
+ else
+ echo command make
+ fi
}
-function make()
+function _wrap_build()
{
local start_time=$(date +"%s")
- $(get_make_command) "$@"
+ "$@"
local ret=$?
local end_time=$(date +"%s")
local tdiff=$(($end_time-$start_time))
@@ -1608,9 +1613,9 @@
fi
echo
if [ $ret -eq 0 ] ; then
- echo -n "${color_success}#### make completed successfully "
+ echo -n "${color_success}#### build completed successfully "
else
- echo -n "${color_failed}#### make failed to build some targets "
+ echo -n "${color_failed}#### failed to build some targets "
fi
if [ $hours -gt 0 ] ; then
printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
@@ -1624,6 +1629,11 @@
return $ret
}
+function make()
+{
+ _wrap_build $(get_make_command) "$@"
+}
+
function provision()
{
if [ ! "$ANDROID_PRODUCT_OUT" ]; then