Merge "Remove the PRODUCT-* goal"

am: a2d19cfd05

Change-Id: I8c83c177104117a88fa9822c48ec7fe45b69365c
This commit is contained in:
Dan Willemsen 2019-07-30 10:34:33 -07:00 committed by android-build-merger
commit f02f1f16f0
6 changed files with 12 additions and 163 deletions

View File

@ -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

View File

@ -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

View File

@ -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 ***************************************************************)

View File

@ -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 := \

View File

@ -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

View File

@ -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
}