From da12daf15f2e6aef7e94f340d23bc435ddc025f4 Mon Sep 17 00:00:00 2001 From: Joe Onorato Date: Wed, 9 Jun 2010 18:18:31 -0700 Subject: [PATCH] Add a tapas command. (Actually there was a tapas command that just called choosecombo). The new better tapas command is for building unbundled apps. Run it with one or more modules to build and optionally a build variant. tapas [variant] App1 App2 ... If you don't supply a build variant, it defaults to eng. Change-Id: I02214abd0b5ad02e364fcb024e10cf6ad17a9e68 --- core/main.mk | 33 ++++++++++++++++------------- envsetup.sh | 45 ++++++++++++++++++++++++++++++++-------- tools/signapk/Android.mk | 7 +++++-- 3 files changed, 60 insertions(+), 25 deletions(-) diff --git a/core/main.mk b/core/main.mk index 8cf21bc10..ddd05bb8e 100644 --- a/core/main.mk +++ b/core/main.mk @@ -46,6 +46,7 @@ TOPDIR := BUILD_SYSTEM := $(TOPDIR)build/core # This is the default target. It must be the first declared target. +.PHONY: droid DEFAULT_GOAL := droid $(DEFAULT_GOAL): @@ -686,9 +687,9 @@ droidcore: files \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_FILES_FILE) -# The actual files built by the droidcore target changes depending -# on the build variant. ifneq ($(TARGET_BUILD_APPS),) + # If this build is just for apps, only build apps and not the full system by default. + unbundled_build_modules := ifneq ($(filter all,$(TARGET_BUILD_APPS)),) # If they used the magic goal "all" then build everything @@ -696,24 +697,19 @@ ifneq ($(TARGET_BUILD_APPS),) else unbundled_build_modules := $(TARGET_BUILD_APPS) endif - default_goal_deps := $(unbundled_build_modules) -else # TARGET_BUILD_APPS - default_goal_deps := droidcore -endif # TARGET_BUILD_APPS -.PHONY: droid tests -droid: $(default_goal_deps) -tests: droidcore - -ifneq ($(TARGET_BUILD_APPS),) # dist the unbundled app. - $(call dist-for-goals,droid, \ + $(call dist-for-goals,apps_only, \ $(foreach m,$(unbundled_build_modules),$(ALL_MODULES.$(m).INSTALLED)) \ ) -else # TARGET_BUILD_APPS +.PHONY: apps_only +apps_only: $(unbundled_build_modules) - $(call dist-for-goals, droid, \ +droid: apps_only + +else # TARGET_BUILD_APPS + $(call dist-for-goals, droidcore, \ $(INTERNAL_UPDATE_PACKAGE_TARGET) \ $(INTERNAL_OTA_PACKAGE_TARGET) \ $(SYMBOLS_ZIP) \ @@ -736,8 +732,16 @@ else # TARGET_BUILD_APPS $(BUILT_TESTS_ZIP_PACKAGE) \ ) endif + +# Building a full system-- the default is to build droidcore +droid: droidcore + endif # TARGET_BUILD_APPS + +.PHONY: droid tests +tests: droidcore + .PHONY: docs docs: $(ALL_DOCS) @@ -782,3 +786,4 @@ modules: .PHONY: showcommands showcommands: @echo >/dev/null + diff --git a/envsetup.sh b/envsetup.sh index 9c6e69536..f4dfc557a 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -56,6 +56,7 @@ function check_product() CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core \ TARGET_PRODUCT=$1 TARGET_BUILD_VARIANT= \ TARGET_SIMULATOR= TARGET_BUILD_TYPE= \ + TARGET_BUILD_APPS= \ get_build_var TARGET_DEVICE > /dev/null # hide successful answers, but allow the errors to show } @@ -150,9 +151,14 @@ function set_sequence_number() function settitle() { if [ "$STAY_OFF_MY_LAWN" = "" ]; then - local product=$(get_build_var TARGET_PRODUCT) - local variant=$(get_build_var TARGET_BUILD_VARIANT) - export PROMPT_COMMAND="echo -ne \"\033]0;[${product}-${variant}] ${USER}@${HOSTNAME}: ${PWD}\007\"" + local product=$TARGET_PRODUCT + local variant=$TARGET_BUILD_VARIANT + local apps=$TARGET_BUILD_APPS + if [ -z "$apps" ]; then + export PROMPT_COMMAND="echo -ne \"\033]0;[${product}-${variant}] ${USER}@${HOSTNAME}: ${PWD}\007\"" + else + export PROMPT_COMMAND="echo -ne \"\033]0;[$apps $variant] ${USER}@${HOSTNAME}: ${PWD}\007\"" + fi fi } @@ -376,11 +382,6 @@ function choosevariant() done } -function tapas() -{ - choosecombo -} - function choosecombo() { choosesim $1 @@ -432,7 +433,6 @@ function print_lunch_menu() echo echo "You're building on" $uname echo - echo ${LUNCH_MENU_CHOICES[@]} echo "Lunch menu... pick a combo:" local i=1 @@ -484,6 +484,8 @@ function lunch() return 1 fi + export TARGET_BUILD_APPS= + # special case the simulator if [ "$selection" = "simulator" ] then @@ -530,6 +532,31 @@ function lunch() printconfig } +# Configures the build to build unbundled apps. +# Run tapas with one ore more app names (from LOCAL_PACKAGE_NAME) +function tapas() +{ + local variant=$(echo -n $(echo $* | xargs -n 1 echo | grep -E '^(user|userdebug|eng)$')) + local apps=$(echo -n $(echo $* | xargs -n 1 echo | grep -E -v '^(user|userdebug|eng)$')) + + if [ $(echo $variant | wc -w) -gt 1 ]; then + echo "tapas: Error: Multiple build variants supplied: $variant" + return + fi + if [ -z "$variant" ]; then + variant=eng + fi + + export TARGET_PRODUCT=generic + export TARGET_BUILD_VARIANT=$variant + export TARGET_SIMULATOR=false + export TARGET_BUILD_TYPE=release + export TARGET_BUILD_APPS=$apps + + set_stuff_for_environment + printconfig +} + function gettop { local TOPFILE=build/core/envsetup.mk diff --git a/tools/signapk/Android.mk b/tools/signapk/Android.mk index ccc76fdcf..b2de21cf0 100644 --- a/tools/signapk/Android.mk +++ b/tools/signapk/Android.mk @@ -23,5 +23,8 @@ LOCAL_SRC_FILES := SignApk.java LOCAL_JAR_MANIFEST := SignApk.mf include $(BUILD_HOST_JAVA_LIBRARY) -# The post-build signing tools need signapk.jar. -$(call dist-for-goals,droid,$(LOCAL_INSTALLED_MODULE)) +ifeq ($(TARGET_BUILD_APPS),) +# The post-build signing tools need signapk.jar, but we don't +# need this if we're just doing unbundled apps. +$(call dist-for-goals,droidcore,$(LOCAL_INSTALLED_MODULE)) +endif