Add phony goal GET-INSTALL-PATH

It can be used as a goal of mm/mmm.
It prints out modules' install paths, which can be used by the runtest
utility.

Change-Id: If113e4c990b672acbacf723104583c0157d43c3b
This commit is contained in:
Ying Wang
2013-08-16 13:24:47 -07:00
parent 6f03bd6092
commit a7deb0857c
2 changed files with 36 additions and 17 deletions

View File

@@ -471,6 +471,12 @@ FULL_BUILD :=
NOTICE-HOST-%: ; NOTICE-HOST-%: ;
NOTICE-TARGET-%: ; NOTICE-TARGET-%: ;
# A helper goal printing out install paths
.PHONY: GET-INSTALL-PATH
GET-INSTALL-PATH:
@$(foreach m, $(ALL_MODULES), $(if $(ALL_MODULES.$(m).INSTALLED), \
echo 'INSTALL-PATH: $(m) $(ALL_MODULES.$(m).INSTALLED)';))
else # ONE_SHOT_MAKEFILE else # ONE_SHOT_MAKEFILE
# #

View File

@@ -638,6 +638,9 @@ function mm()
# Find the closest Android.mk file. # Find the closest Android.mk file.
T=$(gettop) T=$(gettop)
local M=$(findmakefile) local M=$(findmakefile)
local MODULES=
local GET_INSTALL_PATH=
local ARGS=
# Remove the path to top as the makefilepath needs to be relative # Remove the path to top as the makefilepath needs to be relative
local M=`echo $M|sed 's:'$T'/::'` local M=`echo $M|sed 's:'$T'/::'`
if [ ! "$T" ]; then if [ ! "$T" ]; then
@@ -645,7 +648,19 @@ function mm()
elif [ ! "$M" ]; then elif [ ! "$M" ]; then
echo "Couldn't locate a makefile from the current directory." echo "Couldn't locate a makefile from the current directory."
else else
ONE_SHOT_MAKEFILE=$M make -C $T -f build/core/main.mk all_modules $@ for ARG in $@; do
case $ARG in
GET-INSTALL-PATH) GET_INSTALL_PATH=$ARG;;
esac
done
if [ -n "$GET_INSTALL_PATH" ]; then
MODULES=
ARGS=GET-INSTALL-PATH
else
MODULES=all_modules
ARGS=$@
fi
ONE_SHOT_MAKEFILE=$M make -C $T -f build/core/main.mk $MODULES $ARGS
fi fi
fi fi
} }
@@ -658,6 +673,7 @@ function mmm()
local MODULES= local MODULES=
local ARGS= local ARGS=
local DIR TO_CHOP local DIR TO_CHOP
local GET_INSTALL_PATH=
local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
for DIR in $DIRS ; do for DIR in $DIRS ; do
@@ -667,10 +683,10 @@ function mmm()
fi fi
DIR=`echo $DIR | sed -e 's/:.*//' -e 's:/$::'` DIR=`echo $DIR | sed -e 's/:.*//' -e 's:/$::'`
if [ -f $DIR/Android.mk ]; then if [ -f $DIR/Android.mk ]; then
TO_CHOP=`(\cd -P -- $T && pwd -P) | wc -c | tr -d ' '` local TO_CHOP=`(\cd -P -- $T && pwd -P) | wc -c | tr -d ' '`
TO_CHOP=`expr $TO_CHOP + 1` local TO_CHOP=`expr $TO_CHOP + 1`
START=`PWD= /bin/pwd` local START=`PWD= /bin/pwd`
MFILE=`echo $START | cut -c${TO_CHOP}-` local MFILE=`echo $START | cut -c${TO_CHOP}-`
if [ "$MFILE" = "" ] ; then if [ "$MFILE" = "" ] ; then
MFILE=$DIR/Android.mk MFILE=$DIR/Android.mk
else else
@@ -678,20 +694,17 @@ function mmm()
fi fi
MAKEFILE="$MAKEFILE $MFILE" MAKEFILE="$MAKEFILE $MFILE"
else else
if [ "$DIR" = snod ]; then case $DIR in
ARGS="$ARGS snod" showcommands | snod | dist | incrementaljavac) ARGS="$ARGS $DIR";;
elif [ "$DIR" = showcommands ]; then GET-INSTALL-PATH) GET_INSTALL_PATH=$DIR;;
ARGS="$ARGS showcommands" *) echo "No Android.mk in $DIR."; return 1;;
elif [ "$DIR" = dist ]; then esac
ARGS="$ARGS dist"
elif [ "$DIR" = incrementaljavac ]; then
ARGS="$ARGS incrementaljavac"
else
echo "No Android.mk in $DIR."
return 1
fi
fi fi
done done
if [ -n "$GET_INSTALL_PATH" ]; then
ARGS=$GET_INSTALL_PATH
MODULES=
fi
ONE_SHOT_MAKEFILE="$MAKEFILE" make -C $T -f build/core/main.mk $DASH_ARGS $MODULES $ARGS ONE_SHOT_MAKEFILE="$MAKEFILE" make -C $T -f build/core/main.mk $DASH_ARGS $MODULES $ARGS
else else
echo "Couldn't locate the top of the tree. Try setting TOP." echo "Couldn't locate the top of the tree. Try setting TOP."