Merge "Remove the PRODUCT-* goal"
am: a2d19cfd05
Change-Id: I8c83c177104117a88fa9822c48ec7fe45b69365c
This commit is contained in:
commit
f02f1f16f0
|
@ -26,12 +26,6 @@ Ways to specify what to build:
|
||||||
If no targets are specified, the build system will build the images
|
If no targets are specified, the build system will build the images
|
||||||
for the configured product and variant.
|
for the configured product and variant.
|
||||||
|
|
||||||
An alternative to setting $TARGET_PRODUCT and $TARGET_BUILD_VARIANT,
|
|
||||||
which you may see in build servers, is to execute:
|
|
||||||
|
|
||||||
m PRODUCT-<product>-<variant>
|
|
||||||
|
|
||||||
|
|
||||||
A target may be a file path. For example, out/host/linux-x86/bin/adb .
|
A target may be a file path. For example, out/host/linux-x86/bin/adb .
|
||||||
Note that when giving a relative file path as a target, that path is
|
Note that when giving a relative file path as a target, that path is
|
||||||
interpreted relative to the root of the source tree (rather than relative
|
interpreted relative to the root of the source tree (rather than relative
|
||||||
|
|
|
@ -82,8 +82,6 @@ CORRECT_BUILD_ENV_SEQUENCE_NUMBER := 13
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
# ---------------------------------------------------------------
|
||||||
# The product defaults to generic on hardware
|
# The product defaults to generic on hardware
|
||||||
# NOTE: This will be overridden in product_config.mk if make
|
|
||||||
# was invoked with a PRODUCT-xxx-yyy goal.
|
|
||||||
ifeq ($(TARGET_PRODUCT),)
|
ifeq ($(TARGET_PRODUCT),)
|
||||||
TARGET_PRODUCT := aosp_arm
|
TARGET_PRODUCT := aosp_arm
|
||||||
endif
|
endif
|
||||||
|
@ -94,6 +92,13 @@ ifeq ($(strip $(TARGET_BUILD_VARIANT)),)
|
||||||
TARGET_BUILD_VARIANT := eng
|
TARGET_BUILD_VARIANT := eng
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
TARGET_BUILD_APPS ?=
|
||||||
|
|
||||||
|
.KATI_READONLY := \
|
||||||
|
TARGET_PRODUCT \
|
||||||
|
TARGET_BUILD_VARIANT \
|
||||||
|
TARGET_BUILD_APPS
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
# ---------------------------------------------------------------
|
||||||
# Set up configuration for host machine. We don't do cross-
|
# Set up configuration for host machine. We don't do cross-
|
||||||
# compiles except for arm/mips, so the HOST is whatever we are
|
# compiles except for arm/mips, so the HOST is whatever we are
|
||||||
|
|
|
@ -194,6 +194,8 @@ $(info ***************************************************************)
|
||||||
$(error stopping)
|
$(error stopping)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# These are the valid values of TARGET_BUILD_VARIANT.
|
||||||
|
INTERNAL_VALID_VARIANTS := user userdebug eng
|
||||||
ifneq ($(filter-out $(INTERNAL_VALID_VARIANTS),$(TARGET_BUILD_VARIANT)),)
|
ifneq ($(filter-out $(INTERNAL_VALID_VARIANTS),$(TARGET_BUILD_VARIANT)),)
|
||||||
$(info ***************************************************************)
|
$(info ***************************************************************)
|
||||||
$(info ***************************************************************)
|
$(info ***************************************************************)
|
||||||
|
|
|
@ -7,7 +7,7 @@ endif
|
||||||
KATI_OUTPUT_PATTERNS := $(OUT_DIR)/build%.ninja $(OUT_DIR)/ninja%.sh
|
KATI_OUTPUT_PATTERNS := $(OUT_DIR)/build%.ninja $(OUT_DIR)/ninja%.sh
|
||||||
|
|
||||||
# Modifier goals we don't need to pass to Ninja.
|
# Modifier goals we don't need to pass to Ninja.
|
||||||
NINJA_EXCLUDE_GOALS := all PRODUCT-%
|
NINJA_EXCLUDE_GOALS := all
|
||||||
|
|
||||||
# A list of goals which affect parsing of makefiles and we need to pass to Kati.
|
# A list of goals which affect parsing of makefiles and we need to pass to Kati.
|
||||||
PARSE_TIME_MAKE_GOALS := \
|
PARSE_TIME_MAKE_GOALS := \
|
||||||
|
|
|
@ -78,78 +78,18 @@ $(sort $(shell find $(2) -name "$(1)" -type f | $(SED_EXTENDED) "s:($(2)/?(.*)):
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
# ---------------------------------------------------------------
|
||||||
|
# Check for obsolete PRODUCT- and APP- goals
|
||||||
# These are the valid values of TARGET_BUILD_VARIANT. Also, if anything else is passed
|
|
||||||
# as the variant in the PRODUCT-$TARGET_BUILD_PRODUCT-$TARGET_BUILD_VARIANT form,
|
|
||||||
# it will be treated as a goal, and the eng variant will be used.
|
|
||||||
INTERNAL_VALID_VARIANTS := user userdebug eng
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
|
||||||
# Provide "PRODUCT-<prodname>-<goal>" targets, which lets you build
|
|
||||||
# a particular configuration without needing to set up the environment.
|
|
||||||
#
|
|
||||||
ifeq ($(CALLED_FROM_SETUP),true)
|
ifeq ($(CALLED_FROM_SETUP),true)
|
||||||
product_goals := $(strip $(filter PRODUCT-%,$(MAKECMDGOALS)))
|
product_goals := $(strip $(filter PRODUCT-%,$(MAKECMDGOALS)))
|
||||||
ifdef product_goals
|
ifdef product_goals
|
||||||
# Scrape the product and build names out of the goal,
|
$(error The PRODUCT-* goal is no longer supported. Use `TARGET_PRODUCT=<product> m droid` instead)
|
||||||
# which should be of the form PRODUCT-<productname>-<buildname>.
|
|
||||||
#
|
|
||||||
ifneq ($(words $(product_goals)),1)
|
|
||||||
$(error Only one PRODUCT-* goal may be specified; saw "$(product_goals)")
|
|
||||||
endif
|
|
||||||
goal_name := $(product_goals)
|
|
||||||
product_goals := $(patsubst PRODUCT-%,%,$(product_goals))
|
|
||||||
product_goals := $(subst -, ,$(product_goals))
|
|
||||||
ifneq ($(words $(product_goals)),2)
|
|
||||||
$(error Bad PRODUCT-* goal "$(goal_name)")
|
|
||||||
endif
|
|
||||||
|
|
||||||
# The product they want
|
|
||||||
TARGET_PRODUCT := $(word 1,$(product_goals))
|
|
||||||
|
|
||||||
# The variant they want
|
|
||||||
TARGET_BUILD_VARIANT := $(word 2,$(product_goals))
|
|
||||||
|
|
||||||
ifeq ($(TARGET_BUILD_VARIANT),tests)
|
|
||||||
$(error "tests" has been deprecated as a build variant. Use it as a build goal instead.)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# The build server wants to do make PRODUCT-dream-sdk
|
|
||||||
# which really means TARGET_PRODUCT=dream make sdk.
|
|
||||||
ifneq ($(filter-out $(INTERNAL_VALID_VARIANTS),$(TARGET_BUILD_VARIANT)),)
|
|
||||||
override MAKECMDGOALS := $(MAKECMDGOALS) $(TARGET_BUILD_VARIANT)
|
|
||||||
TARGET_BUILD_VARIANT := userdebug
|
|
||||||
default_goal_substitution :=
|
|
||||||
else
|
|
||||||
default_goal_substitution := droid
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Replace the PRODUCT-* goal with the build goal that it refers to.
|
|
||||||
# Note that this will ensure that it appears in the same relative
|
|
||||||
# position, in case it matters.
|
|
||||||
override MAKECMDGOALS := $(patsubst $(goal_name),$(default_goal_substitution),$(MAKECMDGOALS))
|
|
||||||
endif
|
endif
|
||||||
endif # CALLED_FROM_SETUP
|
|
||||||
# else: Use the value set in the environment or buildspec.mk.
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
|
||||||
# Provide "APP-<appname>" targets, which lets you build
|
|
||||||
# an unbundled app.
|
|
||||||
#
|
|
||||||
ifeq ($(CALLED_FROM_SETUP),true)
|
|
||||||
unbundled_goals := $(strip $(filter APP-%,$(MAKECMDGOALS)))
|
unbundled_goals := $(strip $(filter APP-%,$(MAKECMDGOALS)))
|
||||||
ifdef unbundled_goals
|
ifdef unbundled_goals
|
||||||
$(error The APP-* goal is no longer supported. Use `TARGET_BUILD_APPS="<app>" m droid` instead)
|
$(error The APP-* goal is no longer supported. Use `TARGET_BUILD_APPS="<app>" m droid` instead)
|
||||||
endif # unbundled_goals
|
endif # unbundled_goals
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Now that we've parsed APP-* and PRODUCT-*, mark these as readonly
|
|
||||||
TARGET_BUILD_APPS ?=
|
|
||||||
.KATI_READONLY := \
|
|
||||||
TARGET_PRODUCT \
|
|
||||||
TARGET_BUILD_VARIANT \
|
|
||||||
TARGET_BUILD_APPS
|
|
||||||
|
|
||||||
# Default to building dalvikvm on hosts that support it...
|
# Default to building dalvikvm on hosts that support it...
|
||||||
ifeq ($(HOST_OS),linux)
|
ifeq ($(HOST_OS),linux)
|
||||||
# ... or if the if the option is already set
|
# ... or if the if the option is already set
|
||||||
|
|
|
@ -1,92 +0,0 @@
|
||||||
# Copyright (C) 2009 The Android Open Source Project
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the 'License');
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an 'AS IS' BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# Source this file into your environment. Then:
|
|
||||||
#
|
|
||||||
# $ golden_builds sdk-sdk generic-eng generic-userdebug dream-eng
|
|
||||||
#
|
|
||||||
# will build a set of combos. This might take a while. Then you can
|
|
||||||
# go make changes, and run:
|
|
||||||
#
|
|
||||||
# $ check_builds sdk-sdk generic-eng generic-userdebug dream-eng
|
|
||||||
#
|
|
||||||
# Go get dinner, and when you get back, there will be a file
|
|
||||||
# test-builds/sizes.html that has a pretty chart of which files are
|
|
||||||
# in which tree, and how big they are. In that chart, cells for files
|
|
||||||
# that are missing are red, and rows where the file sizes are not all
|
|
||||||
# the same will be blue.
|
|
||||||
#
|
|
||||||
|
|
||||||
TEST_BUILD_DIR=test-builds
|
|
||||||
|
|
||||||
function do_builds
|
|
||||||
{
|
|
||||||
PREFIX=$1
|
|
||||||
shift
|
|
||||||
while [ -n "$1" ]
|
|
||||||
do
|
|
||||||
rm -rf $TEST_BUILD_DIR/$PREFIX-$1
|
|
||||||
make PRODUCT-$(echo $1 | sed "s/-.*//" )-installclean
|
|
||||||
make -j16 PRODUCT-$1 dist DIST_DIR=$TEST_BUILD_DIR/$PREFIX-$1
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo FAILED
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function golden_builds
|
|
||||||
{
|
|
||||||
rm -rf $TEST_BUILD_DIR/golden-* $TEST_BUILD_DIR/dist-*
|
|
||||||
do_builds golden "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
function compare_builds
|
|
||||||
{
|
|
||||||
local inputs=
|
|
||||||
while [ -n "$1" ]
|
|
||||||
do
|
|
||||||
inputs="$inputs $TEST_BUILD_DIR/golden-$1/installed-files.txt"
|
|
||||||
inputs="$inputs $TEST_BUILD_DIR/dist-$1/installed-files.txt"
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
build/make/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_builds
|
|
||||||
{
|
|
||||||
rm -rf $TEST_BUILD_DIR/dist-*
|
|
||||||
do_builds dist "$@"
|
|
||||||
compare_builds "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
function diff_builds
|
|
||||||
{
|
|
||||||
local inputs=
|
|
||||||
while [ -n "$1" ]
|
|
||||||
do
|
|
||||||
diff $TEST_BUILD_DIR/golden-$1/installed-files.txt $TEST_BUILD_DIR/dist-$1/installed-files.txt &> /dev/null
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
echo =========== $1 ===========
|
|
||||||
diff $TEST_BUILD_DIR/golden-$1/installed-files.txt $TEST_BUILD_DIR/dist-$1/installed-files.txt
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
build/make/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue