Merge "Remove core.mk." into pi-dev-plus-aosp
diff --git a/core/android_manifest.mk b/core/android_manifest.mk
index c8c7333..e52bb2c 100644
--- a/core/android_manifest.mk
+++ b/core/android_manifest.mk
@@ -6,37 +6,61 @@
LOCAL_MANIFEST_FILE := AndroidManifest.xml
endif
ifdef LOCAL_FULL_MANIFEST_FILE
- full_android_manifest := $(LOCAL_FULL_MANIFEST_FILE)
+ main_android_manifest := $(LOCAL_FULL_MANIFEST_FILE)
else
- full_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE)
+ main_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE)
endif
-my_full_libs_manifest_files := $(LOCAL_FULL_LIBS_MANIFEST_FILES)
-
LOCAL_STATIC_JAVA_AAR_LIBRARIES := $(strip $(LOCAL_STATIC_JAVA_AAR_LIBRARIES))
-ifdef LOCAL_STATIC_JAVA_AAR_LIBRARIES
-my_full_libs_manifest_files += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
- $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/AndroidManifest.xml)
-# With aapt2, we'll link in the built resource from the AAR.
-ifneq ($(LOCAL_USE_AAPT2),true)
-LOCAL_RESOURCE_DIR += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
- $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/res)
-endif # LOCAL_USE_AAPT2
-endif # LOCAL_STATIC_JAVA_AAR_LIBRARIES
+my_full_libs_manifest_files :=
+
+ifndef LOCAL_DONT_MERGE_MANIFESTS
+ my_full_libs_manifest_files += $(LOCAL_FULL_LIBS_MANIFEST_FILES)
+
+ ifdef LOCAL_STATIC_JAVA_AAR_LIBRARIES
+ my_full_libs_manifest_files += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
+ $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/AndroidManifest.xml)
+ endif
+endif
+
+ifdef LOCAL_STATIC_JAVA_AAR_LIBRARIES
+ # With aapt2, we'll link in the built resource from the AAR.
+ ifneq ($(LOCAL_USE_AAPT2),true)
+ LOCAL_RESOURCE_DIR += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
+ $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/res)
+ endif
+endif
+
+full_android_manifest := $(intermediates.COMMON)/manifest/AndroidManifest.xml
+
+ifdef LOCAL_MIN_SDK_VERSION
+ $(full_android_manifest): PRIVATE_MIN_SDK_VERSION := $(LOCAL_MIN_SDK_VERSION)
+else ifneq (,$(filter-out current system_current test_current core_current, $(LOCAL_SDK_VERSION)))
+ $(full_android_manifest): PRIVATE_MIN_SDK_VERSION := $(call get-numeric-sdk-version,$(LOCAL_SDK_VERSION))
+else
+ $(full_android_manifest): PRIVATE_MIN_SDK_VERSION := $(DEFAULT_APP_TARGET_SDK)
+endif
# Set up rules to merge library manifest files
ifneq (,$(strip $(my_full_libs_manifest_files)))
-main_android_manifest := $(full_android_manifest)
-full_android_manifest := $(intermediates.COMMON)/manifest/AndroidManifest.xml
$(full_android_manifest): PRIVATE_LIBS_MANIFESTS := $(my_full_libs_manifest_files)
$(full_android_manifest): $(ANDROID_MANIFEST_MERGER_CLASSPATH)
+$(full_android_manifest): $(MANIFEST_FIXER)
$(full_android_manifest) : $(main_android_manifest) $(my_full_libs_manifest_files)
@echo "Merge android manifest files: $@ <-- $< $(PRIVATE_LIBS_MANIFESTS)"
@mkdir -p $(dir $@)
- $(hide) $(ANDROID_MANIFEST_MERGER) --main $< \
+ $(MANIFEST_FIXER) $< $@.tmp --minSdkVersion $(PRIVATE_MIN_SDK_VERSION)
+ $(hide) $(ANDROID_MANIFEST_MERGER) --main $@.tmp \
--libs $(call normalize-path-list,$(PRIVATE_LIBS_MANIFESTS)) \
--out $@
+ rm $@.tmp
+
+else
+$(full_android_manifest): $(MANIFEST_FIXER)
+$(full_android_manifest): $(main_android_manifest)
+ @echo "Fix manifest: $@"
+ $(MANIFEST_FIXER) $< $@ --minSdkVersion $(PRIVATE_MIN_SDK_VERSION)
endif
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index d8836e5..9a94481 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -63,6 +63,7 @@
LOCAL_DONT_CHECK_MODULE:=
# Don't delete the META_INF dir when merging static Java libraries.
LOCAL_DONT_DELETE_JAR_META_INF:=
+LOCAL_DONT_MERGE_MANIFESTS:=
LOCAL_DPI_FILE_STEM:=
LOCAL_DPI_VARIANTS:=
LOCAL_DROIDDOC_ASSET_DIR:=
diff --git a/core/main.mk b/core/main.mk
index 84d0dea..fcd62b8 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -969,6 +969,17 @@
$(call maybe-print-list-and-error,$(offending_files),$(makefile) produces files outside its artifact path requirement.) \
$(eval unused_whitelist := $(filter-out $(files),$(whitelist_patterns))) \
$(call maybe-print-list-and-error,$(unused_whitelist),$(makefile) includes redundant whitelist entries in its artifact path requirement.) \
+ $(eval ### Optionally verify that nothing else produces files inside this artifact path requirement.) \
+ $(if $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS),\
+ $(eval extra_files := $(filter-out $(files) $(HOST_OUT)/%,$(product_FILES))) \
+ $(eval whitelist := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST)) \
+ $(eval whitelist_patterns := $(call resolve-product-relative-paths,$(whitelist))) \
+ $(eval files_in_requirement := $(filter $(path_patterns),$(extra_files))) \
+ $(eval offending_files := $(filter-out $(whitelist_patterns),$(files_in_requirement))) \
+ $(call maybe-print-list-and-error,$(offending_files),$(INTERNAL_PRODUCT) produces files inside $(makefile)s artifact path requirement.) \
+ $(eval unused_whitelist := $(filter-out $(extra_files),$(whitelist_patterns))) \
+ $(call maybe-print-list-and-error,$(unused_whitelist),$(INTERNAL_PRODUCT) includes redundant artifact path requirement whitelist entries.) \
+ ) \
)
ifeq (0,1)
diff --git a/core/product.mk b/core/product.mk
index 3cf521a..f22a3e5 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -198,6 +198,8 @@
PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE \
PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE \
PRODUCT_USE_LOGICAL_PARTITIONS \
+ PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS \
+ PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \
define dump-product
$(info ==== $(1) ====)\
diff --git a/envsetup.sh b/envsetup.sh
index 9fc689e..15373fd 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -975,28 +975,6 @@
fi
}
-function pid()
-{
- local prepend=''
- local append=''
- if [ "$1" = "--exact" ]; then
- prepend=' '
- append='$'
- shift
- fi
- local EXE="$1"
- if [ "$EXE" ] ; then
- local PID=`adb shell ps \
- | tr -d '\r' \
- | \grep "$prepend$EXE$append" \
- | sed -e 's/^[^ ]* *\([0-9]*\).*$/\1/'`
- echo "$PID"
- else
- echo "usage: pid [--exact] <process name>"
- return 255
- fi
-}
-
# coredump_setup - enable core dumps globally for any process
# that has the core-file-size limit set correctly
#
@@ -1083,37 +1061,6 @@
stacks system_server
}
-function stacks()
-{
- if [[ $1 =~ ^[0-9]+$ ]] ; then
- local PID="$1"
- elif [ "$1" ] ; then
- local PIDLIST="$(pid $1)"
- if [[ $PIDLIST =~ ^[0-9]+$ ]] ; then
- local PID="$PIDLIST"
- elif [ "$PIDLIST" ] ; then
- echo "more than one process: $1"
- else
- echo "no such process: $1"
- fi
- else
- echo "usage: stacks [pid|process name]"
- fi
-
- if [ "$PID" ] ; then
- # Use `debuggerd -j` on java processes.
- if adb shell readlink /proc/$PID/exe | egrep -q '^/system/bin/app_process' ; then
- # But not the zygote.
- if ! adb shell cat /proc/$PID/cmdline | egrep -q '^zygote'; then
- adb shell debuggerd -j $PID
- return
- fi
- fi
-
- adb shell debuggerd -b $PID
- fi
-}
-
# Read the ELF header from /proc/$PID/exe to determine if the process is
# 64-bit.
function is64bit()
diff --git a/tools/fs_config/Android.mk b/tools/fs_config/Android.mk
index a01e702..8a8eca9 100644
--- a/tools/fs_config/Android.mk
+++ b/tools/fs_config/Android.mk
@@ -63,6 +63,8 @@
my_fs_config_h := $(LOCAL_PATH)/default/$(ANDROID_FS_CONFIG_H)
endif
+system_android_filesystem_config := system/core/include/private/android_filesystem_config.h
+
##################################
include $(CLEAR_VARS)
LOCAL_SRC_FILES := fs_config_generate.c
@@ -72,8 +74,6 @@
LOCAL_CFLAGS := -Werror -Wno-error=\#warnings
ifneq ($(TARGET_FS_CONFIG_GEN),)
-system_android_filesystem_config := system/core/include/private/android_filesystem_config.h
-
# Generate the "generated_oem_aid.h" file
oem := $(local-generated-sources-dir)/generated_oem_aid.h
$(oem): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
@@ -239,19 +239,17 @@
endif
-# The newer passwd/group targets are only generated if you
-# use the new TARGET_FS_CONFIG_GEN method.
-ifneq ($(TARGET_FS_CONFIG_GEN),)
-
##################################
# Build the oemaid header library when fs config files are present.
# Intentionally break build if you require generated AIDs
# header file, but are not using any fs config files.
+ifneq ($(TARGET_FS_CONFIG_GEN),)
include $(CLEAR_VARS)
LOCAL_MODULE := oemaids_headers
LOCAL_EXPORT_C_INCLUDE_DIRS := $(dir $(my_gen_oem_aid))
LOCAL_EXPORT_C_INCLUDE_DEPS := $(my_gen_oem_aid)
include $(BUILD_HEADER_LIBRARY)
+endif
##################################
# Generate the vendor/etc/passwd text file for the target
@@ -265,8 +263,11 @@
include $(BUILD_SYSTEM)/base_rules.mk
-$(LOCAL_BUILT_MODULE): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
+ifneq ($(TARGET_FS_CONFIG_GEN),)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
+else
+$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := /dev/null
+endif
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config)
@mkdir -p $(dir $@)
@@ -284,15 +285,17 @@
include $(BUILD_SYSTEM)/base_rules.mk
-$(LOCAL_BUILT_MODULE): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
+ifneq ($(TARGET_FS_CONFIG_GEN),)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
+else
+$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := /dev/null
+endif
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config)
@mkdir -p $(dir $@)
$(hide) $< group --required-prefix=vendor_ --aid-header=$(PRIVATE_ANDROID_FS_HDR) $(PRIVATE_TARGET_FS_CONFIG_GEN) > $@
system_android_filesystem_config :=
-endif
ANDROID_FS_CONFIG_H :=
my_fs_config_h :=