diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/apicheck_msg_current.txt | 4 | ||||
-rw-r--r-- | core/binary.mk | 10 | ||||
-rw-r--r-- | core/cleanbuild.mk | 8 | ||||
-rw-r--r-- | core/clear_vars.mk | 3 | ||||
-rw-r--r-- | core/combo/HOST_darwin-x86.mk | 4 | ||||
-rw-r--r-- | core/combo/TARGET_linux-arm.mk | 8 | ||||
-rw-r--r-- | core/combo/TARGET_linux-sh.mk | 6 | ||||
-rw-r--r-- | core/combo/TARGET_linux-x86.mk | 4 | ||||
-rw-r--r-- | core/combo/select.mk | 2 | ||||
-rw-r--r-- | core/config.mk | 18 | ||||
-rw-r--r-- | core/definitions.mk | 100 | ||||
-rw-r--r-- | core/droiddoc.mk | 6 | ||||
-rw-r--r-- | core/dynamic_binary.mk | 45 | ||||
-rw-r--r-- | core/executable.mk | 5 | ||||
-rw-r--r-- | core/java.mk | 26 | ||||
-rw-r--r-- | core/java_library.mk | 7 | ||||
-rw-r--r-- | core/legacy_prebuilts.mk | 1 | ||||
-rw-r--r-- | core/main.mk | 18 | ||||
-rw-r--r-- | core/package.mk | 33 | ||||
-rw-r--r-- | core/prelink-linux-arm.map | 218 | ||||
-rw-r--r-- | core/product.mk | 2 | ||||
-rw-r--r-- | core/product_config.mk | 26 | ||||
-rw-r--r-- | core/shared_library.mk | 3 | ||||
-rw-r--r-- | core/tasks/apicheck.mk | 27 | ||||
-rw-r--r-- | core/tasks/cts.mk | 123 | ||||
-rw-r--r-- | core/user_tags.mk | 5 | ||||
-rw-r--r-- | core/version_defaults.mk | 4 |
27 files changed, 255 insertions, 461 deletions
diff --git a/core/apicheck_msg_current.txt b/core/apicheck_msg_current.txt index 5d3a913..440e7f8 100644 --- a/core/apicheck_msg_current.txt +++ b/core/apicheck_msg_current.txt @@ -6,10 +6,10 @@ To make these errors go away, you have two choices: 1) You can add "@hide" javadoc comments to the methods, etc. listed in the errors above. - 2) You can update current.xml by executing the following command: + 2) You can update current.txt by executing the following command: make update-api - To submit the revised current.xml to the main Android repository, + To submit the revised current.txt to the main Android repository, you will need approval. ****************************** diff --git a/core/binary.mk b/core/binary.mk index f81cc5e..d6ccfbf 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -137,6 +137,12 @@ ifeq ($(strip $(LOCAL_ALLOW_UNDEFINED_SYMBOLS)),) endif endif +ifeq (true,$(LOCAL_GROUP_STATIC_LIBRARIES)) +$(LOCAL_BUILT_MODULE): PRIVATE_GROUP_STATIC_LIBRARIES := true +else +$(LOCAL_BUILT_MODULE): PRIVATE_GROUP_STATIC_LIBRARIES := +endif + ########################################################### ## Define arm-vs-thumb-mode flags. ########################################################### @@ -568,6 +574,9 @@ installed_static_library_notice_file_targets := \ $(foreach lib,$(LOCAL_STATIC_LIBRARIES) $(LOCAL_WHOLE_STATIC_LIBRARIES), \ NOTICE-$(if $(LOCAL_IS_HOST_MODULE),HOST,TARGET)-STATIC_LIBRARIES-$(lib)) +# Default is -fno-rtti. +LOCAL_RTTI_FLAG ?= -fno-rtti + ########################################################### # Rule-specific variable definitions ########################################################### @@ -575,6 +584,7 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(LOCAL_ASFLAGS) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CFLAGS := $(LOCAL_CFLAGS) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CPPFLAGS := $(LOCAL_CPPFLAGS) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RTTI_FLAG := $(LOCAL_RTTI_FLAG) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_DEBUG_CFLAGS := $(debug_cflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LDFLAGS := $(LOCAL_LDFLAGS) diff --git a/core/cleanbuild.mk b/core/cleanbuild.mk index 821b03a..2639cae 100644 --- a/core/cleanbuild.mk +++ b/core/cleanbuild.mk @@ -117,13 +117,13 @@ else building_sdk := endif -# A change in the list of locales warrants an installclean, too. -locale_list := $(subst $(space),$(comma),$(strip $(PRODUCT_LOCALES))) +# A change in the list of aapt configs warrants an installclean, too. +aapt_config_list := $(strip $(PRODUCT_AAPT_CONFIG)) current_build_config := \ - $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)$(building_sdk)-{$(locale_list)} + $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)$(building_sdk)-{$(aapt_config_list)} building_sdk := -locale_list := +aapt_config_list := force_installclean := false # Read the current state from the file, if present. diff --git a/core/clear_vars.mk b/core/clear_vars.mk index f947bf6..0469cb0 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -27,6 +27,8 @@ LOCAL_SRC_FILES:= LOCAL_PREBUILT_OBJ_FILES:= LOCAL_STATIC_JAVA_LIBRARIES:= LOCAL_STATIC_LIBRARIES:= +# Group static libraries with "-Wl,--start-group" and "-Wl,--end-group" when linking. +LOCAL_GROUP_STATIC_LIBRARIES:= LOCAL_WHOLE_STATIC_LIBRARIES:= LOCAL_SHARED_LIBRARIES:= LOCAL_IS_HOST_MODULE:= @@ -75,7 +77,6 @@ LOCAL_COPY_HEADERS_TO:= LOCAL_COPY_HEADERS:= LOCAL_FORCE_STATIC_EXECUTABLE:= LOCAL_ADDITIONAL_DEPENDENCIES:= -LOCAL_PRELINK_MODULE:= LOCAL_COMPRESS_MODULE_SYMBOLS:= LOCAL_STRIP_MODULE:= LOCAL_POST_PROCESS_COMMAND:=true diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk index b829108..544a29e 100644 --- a/core/combo/HOST_darwin-x86.mk +++ b/core/combo/HOST_darwin-x86.mk @@ -66,7 +66,9 @@ $(hide) $(PRIVATE_CXX) \ $(PRIVATE_ALL_OBJECTS) \ $(call normalize-host-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-host-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(PRIVATE_LDLIBS) \ -o $@ \ $(PRIVATE_LDFLAGS) \ @@ -82,7 +84,9 @@ $(hide) $(PRIVATE_CXX) \ $(call normalize-host-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ $(PRIVATE_ALL_OBJECTS) \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-host-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(PRIVATE_LDFLAGS) \ $(PRIVATE_LDLIBS) \ $(HOST_LIBGCC) diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index 3a3a5bd..6db0795 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -52,8 +52,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX) -TARGET_STRIP := $(HOST_OUT_EXECUTABLES)/soslim$(HOST_EXECUTABLE_SUFFIX) -TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip --shady --quiet $< --outfile $@ +TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined @@ -237,7 +237,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ @@ -258,7 +260,9 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_DYNAMIC_O)) \ $(PRIVATE_ALL_OBJECTS) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_LDFLAGS) \ $(TARGET_FDO_LIB) \ diff --git a/core/combo/TARGET_linux-sh.mk b/core/combo/TARGET_linux-sh.mk index 654539c..f54a49e 100644 --- a/core/combo/TARGET_linux-sh.mk +++ b/core/combo/TARGET_linux-sh.mk @@ -125,7 +125,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDFLAGS) \ @@ -145,7 +147,9 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_DYNAMIC_O)) \ $(PRIVATE_ALL_OBJECTS) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(PRIVATE_LDFLAGS) \ $(TARGET_LIBGCC) \ $(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \ @@ -160,7 +164,9 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bstatic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_STATIC_O)) \ $(PRIVATE_LDFLAGS) \ $(PRIVATE_ALL_OBJECTS) \ + -Wl,--start-group \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + -Wl,--end-group \ $(TARGET_LIBGCC) \ $(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O)) diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 3c61a72..dac092c 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -130,7 +130,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDFLAGS) \ @@ -151,7 +153,9 @@ $(hide) $(PRIVATE_CXX) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_DYNAMIC_O)) \ $(PRIVATE_ALL_OBJECTS) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(PRIVATE_LDFLAGS) \ $(TARGET_LIBGCC) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O)) diff --git a/core/combo/select.mk b/core/combo/select.mk index d486255..cdeb68a 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -56,8 +56,6 @@ $(combo_target)SHLIB_SUFFIX := .so $(combo_target)JNILIB_SUFFIX := $($(combo_target)SHLIB_SUFFIX) $(combo_target)STATIC_LIB_SUFFIX := .a -$(combo_target)PRELINKER_MAP := $(BUILD_SYSTEM)/prelink-$(combo_os_arch).map - # Now include the combo for this specific target. include $(BUILD_COMBOS)/$(combo_target)$(combo_os_arch).mk diff --git a/core/config.mk b/core/config.mk index c6f6288..3240e94 100644 --- a/core/config.mk +++ b/core/config.mk @@ -105,11 +105,8 @@ TARGET_ERROR_FLAGS := -Werror=return-type -Werror=non-virtual-dtor -Werror=addre # TODO: do symbol compression TARGET_COMPRESS_MODULE_SYMBOLS := false -# Default is to prelink modules. -TARGET_PRELINK_MODULE := true - -# Default shell is ash. Other possible value is mksh. -TARGET_SHELL := ash +# Default shell is mksh. Other possible value is ash. +TARGET_SHELL := mksh # ############################################################### # Include sub-configuration files @@ -236,10 +233,6 @@ FINDBUGS := prebuilt/common/findbugs/bin/findbugs LOCALIZE := $(HOST_OUT_EXECUTABLES)/localize$(HOST_EXECUTABLE_SUFFIX) EMMA_JAR := external/emma/lib/emma$(COMMON_JAVA_PACKAGE_SUFFIX) -# Binary prelinker/compressor tools -APRIORI := $(HOST_OUT_EXECUTABLES)/apriori$(HOST_EXECUTABLE_SUFFIX) -LSD := $(HOST_OUT_EXECUTABLES)/lsd$(HOST_EXECUTABLE_SUFFIX) - # Deal with archaic version of bison on Mac OS X. ifeq ($(filter 1.28,$(shell $(YACC) -V)),) YACC_HEADER_SUFFIX:= .hpp @@ -284,6 +277,11 @@ else MD5SUM:=md5sum endif +APICHECK_CLASSPATH := $(HOST_JDK_TOOLS_JAR) +APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) +APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX) +APICHECK_COMMAND := $(APICHECK) -JXmx1024m -J"classpath $(APICHECK_CLASSPATH)" + # ############################################################### # Set up final options. # ############################################################### @@ -356,7 +354,7 @@ TARGET_AVAILABLE_NDK_VERSIONS := $(call numerically_sort,\ $(patsubst $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r%,%, \ $(wildcard $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r*))) -INTERNAL_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/public_api.xml +INTERNAL_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/public_api.txt # This is the standard way to name a directory containing prebuilt target # objects. E.g., prebuilt/$(TARGET_PREBUILT_TAG)/libc.so diff --git a/core/definitions.mk b/core/definitions.mk index e099be3..87665d1 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -66,7 +66,7 @@ ALL_GENERATED_SOURCES:= # These all have an order-only dependency on the copied headers ALL_C_CPP_ETC_OBJECTS:= -# The list of dynamic binaries that haven't been stripped/compressed/prelinked. +# The list of dynamic binaries that haven't been stripped/compressed/etc. ALL_ORIGINAL_DYNAMIC_BINARIES:= # These files go into the SDK @@ -856,22 +856,19 @@ define transform-cpp-to-o @mkdir -p $(dir $@) @echo "target $(PRIVATE_ARM_MODE) C++: $(PRIVATE_MODULE) <= $<" $(hide) $(PRIVATE_CXX) \ - $(foreach incdir, \ - $(PRIVATE_C_INCLUDES) \ + $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ + $(addprefix -isystem ,\ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ - $(PRIVATE_TARGET_PROJECT_INCLUDES) \ - $(PRIVATE_TARGET_C_INCLUDES) \ - ) \ - , \ - -I $(incdir) \ - ) \ + $(filter-out $(PRIVATE_C_INCLUDES), \ + $(PRIVATE_TARGET_PROJECT_INCLUDES) \ + $(PRIVATE_TARGET_C_INCLUDES)))) \ -c \ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ $(PRIVATE_TARGET_GLOBAL_CFLAGS) \ $(PRIVATE_TARGET_GLOBAL_CPPFLAGS) \ $(PRIVATE_ARM_CFLAGS) \ ) \ - -fno-rtti \ + $(PRIVATE_RTTI_FLAG) \ $(PRIVATE_CFLAGS) \ $(PRIVATE_CPPFLAGS) \ $(PRIVATE_DEBUG_CFLAGS) \ @@ -888,15 +885,12 @@ endef define transform-c-or-s-to-o-no-deps @mkdir -p $(dir $@) $(hide) $(PRIVATE_CC) \ - $(foreach incdir, \ - $(PRIVATE_C_INCLUDES) \ + $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ + $(addprefix -isystem ,\ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ - $(PRIVATE_TARGET_PROJECT_INCLUDES) \ - $(PRIVATE_TARGET_C_INCLUDES) \ - ) \ - , \ - -I $(incdir) \ - ) \ + $(filter-out $(PRIVATE_C_INCLUDES), \ + $(PRIVATE_TARGET_PROJECT_INCLUDES) \ + $(PRIVATE_TARGET_C_INCLUDES)))) \ -c \ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ $(PRIVATE_TARGET_GLOBAL_CFLAGS) \ @@ -952,15 +946,12 @@ define transform-host-cpp-to-o @mkdir -p $(dir $@) @echo "host C++: $(PRIVATE_MODULE) <= $<" $(hide) $(PRIVATE_CXX) \ - $(foreach incdir, \ - $(PRIVATE_C_INCLUDES) \ + $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ + $(addprefix -isystem ,\ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ - $(HOST_PROJECT_INCLUDES) \ - $(HOST_C_INCLUDES) \ - ) \ - , \ - -I $(incdir) \ - ) \ + $(filter-out $(PRIVATE_C_INCLUDES), \ + $(HOST_PROJECT_INCLUDES) \ + $(HOST_C_INCLUDES)))) \ -c \ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ $(HOST_GLOBAL_CFLAGS) \ @@ -982,15 +973,12 @@ endef define transform-host-c-or-s-to-o-no-deps @mkdir -p $(dir $@) $(hide) $(PRIVATE_CC) \ - $(foreach incdir, \ - $(PRIVATE_C_INCLUDES) \ + $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ + $(addprefix -isystem ,\ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ - $(HOST_PROJECT_INCLUDES) \ - $(HOST_C_INCLUDES) \ - ) \ - , \ - -I $(incdir) \ - ) \ + $(filter-out $(PRIVATE_C_INCLUDES), \ + $(HOST_PROJECT_INCLUDES) \ + $(HOST_C_INCLUDES)))) \ -c \ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \ $(HOST_GLOBAL_CFLAGS) \ @@ -1143,7 +1131,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-host-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-host-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDLIBS) @@ -1191,7 +1181,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDLIBS) @@ -1221,17 +1213,6 @@ define transform-to-stripped $(hide) $(TARGET_STRIP_COMMAND) endef -define transform-to-prelinked -@mkdir -p $(dir $@) -@echo "target Prelink: $(PRIVATE_MODULE) ($@)" -$(hide) $(APRIORI) \ - --prelinkmap $(TARGET_PRELINKER_MAP) \ - --locals-only \ - --quiet \ - $< \ - --output $@ -endef - ########################################################### ## Commands for running gcc to link an executable @@ -1251,7 +1232,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDLIBS) @@ -1302,7 +1285,9 @@ $(hide) $(PRIVATE_CXX) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--start-group) \ $(call normalize-host-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(if $(PRIVATE_GROUP_STATIC_LIBRARIES),-Wl$(comma)--end-group) \ $(call normalize-host-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDLIBS) @@ -1333,12 +1318,12 @@ endef # Maybe we should just use approach (1). # This rule creates the R.java and Manifest.java files, both of which -# are PRODUCT-neutral. Don't pass PRODUCT_AAPT_CONFIG to this invocation. +# are PRODUCT-neutral. Don't pass PRIVATE_PRODUCT_AAPT_CONFIG to this invocation. define create-resource-java-files @mkdir -p $(PRIVATE_SOURCE_INTERMEDIATES_DIR) @mkdir -p $(dir $(PRIVATE_RESOURCE_PUBLICS_OUTPUT)) $(hide) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \ - $(eval # PRODUCT_AAPT_CONFIG is intentionally missing-- see comment.) \ + $(eval # PRIVATE_PRODUCT_AAPT_CONFIG is intentionally missing-- see comment.) \ $(addprefix -J , $(PRIVATE_SOURCE_INTERMEDIATES_DIR)) \ $(addprefix -M , $(PRIVATE_ANDROID_MANIFEST)) \ $(addprefix -P , $(PRIVATE_RESOURCE_PUBLICS_OUTPUT)) \ @@ -1346,8 +1331,8 @@ $(hide) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \ $(addprefix -A , $(PRIVATE_ASSET_DIR)) \ $(addprefix -I , $(PRIVATE_AAPT_INCLUDES)) \ $(addprefix -G , $(PRIVATE_PROGUARD_OPTIONS_FILE)) \ - $(addprefix --min-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \ - $(addprefix --target-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \ + $(addprefix --min-sdk-version , $(PRIVATE_DEFAULT_APP_TARGET_SDK)) \ + $(addprefix --target-sdk-version , $(PRIVATE_DEFAULT_APP_TARGET_SDK)) \ $(if $(filter --version-code,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-code , $(PLATFORM_SDK_VERSION))) \ $(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-name , $(PLATFORM_VERSION)-$(BUILD_NUMBER))) \ $(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \ @@ -1360,6 +1345,12 @@ else xlint_unchecked := -Xlint:unchecked endif +ifeq (true, $(ENABLE_INCREMENTALJAVAC)) +incremental_dex := --incremental +else +incremental_dex := +endif + # emit-line, <word list>, <output file> define emit-line $(if $(1),echo -n '$(strip $(1)) ' >> $(2)) @@ -1435,7 +1426,7 @@ $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ fi $(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq -$(hide) $(1) -encoding ascii \ +$(hide) $(1) -encoding UTF-8 \ $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ $(2) \ @@ -1477,7 +1468,7 @@ $(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ @echo "(Incremental) build source files:" @cat $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq $(hide) if [ -s $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq ] ; then \ - $(1) -encoding ascii \ + $(1) -encoding UTF-8 \ $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ $(2) \ @@ -1518,6 +1509,7 @@ define transform-classes.jar-to-dex $(hide) $(DX) \ $(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx1536M) \ --dex --output=$@ \ + $(incremental_dex) \ $(if $(NO_OPTIMIZE_DX), \ --no-optimize) \ $(if $(GENERATE_DEX_DEBUG), \ @@ -1550,13 +1542,13 @@ endef #them in their manifest. define add-assets-to-package $(hide) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \ - $(addprefix -c , $(PRODUCT_AAPT_CONFIG)) \ + $(addprefix -c , $(PRIVATE_PRODUCT_AAPT_CONFIG)) \ $(addprefix -M , $(PRIVATE_ANDROID_MANIFEST)) \ $(addprefix -S , $(PRIVATE_RESOURCE_DIR)) \ $(addprefix -A , $(PRIVATE_ASSET_DIR)) \ $(addprefix -I , $(PRIVATE_AAPT_INCLUDES)) \ - $(addprefix --min-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \ - $(addprefix --target-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \ + $(addprefix --min-sdk-version , $(PRIVATE_DEFAULT_APP_TARGET_SDK)) \ + $(addprefix --target-sdk-version , $(PRIVATE_DEFAULT_APP_TARGET_SDK)) \ $(addprefix --product , $(TARGET_AAPT_CHARACTERISTICS)) \ $(if $(filter --version-code,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-code , $(PLATFORM_SDK_VERSION))) \ $(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-name , $(PLATFORM_VERSION)-$(BUILD_NUMBER))) \ diff --git a/core/droiddoc.mk b/core/droiddoc.mk index 505d127..2642626 100644 --- a/core/droiddoc.mk +++ b/core/droiddoc.mk @@ -82,13 +82,13 @@ $(full_target): PRIVATE_CLASSPATH := $(subst $(space),:,$(full_java_libs)) endif # !LOCAL_IS_HOST_MODULE -intermediates := $(call local-intermediates-dir) +intermediates.COMMON := $(call local-intermediates-dir,COMMON) $(full_target): PRIVATE_SOURCE_PATH := $(call normalize-path-list,$(LOCAL_DROIDDOC_SOURCE_PATH)) $(full_target): PRIVATE_JAVA_FILES := $(filter %.java,$(full_src_files)) $(full_target): PRIVATE_JAVA_FILES += $(addprefix $($(my_prefix)OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES))) -$(full_target): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediates)/src -$(full_target): PRIVATE_SRC_LIST_FILE := $(intermediates)/droiddoc-src-list +$(full_target): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/src +$(full_target): PRIVATE_SRC_LIST_FILE := $(intermediates.COMMON)/droiddoc-src-list ifneq ($(strip $(LOCAL_ADDITIONAL_JAVA_DIR)),) $(full_target): PRIVATE_ADDITIONAL_JAVA_DIR := $(LOCAL_ADDITIONAL_JAVA_DIR) diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk index 005ccf3..0ca1858 100644 --- a/core/dynamic_binary.mk +++ b/core/dynamic_binary.mk @@ -86,49 +86,20 @@ else compress_output := $(compress_input) endif - ########################################################### -## Pre-link +## Store a copy with symbols for symbolic debugging ########################################################### -prelink_input := $(compress_output) -# The output of the prelink step is the binary we want to use -# for symbolic debugging; the prelink step may move sections -# around, so we have to use this version. -prelink_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_BUILT_MODULE_STEM) - -# Skip prelinker if it is FDO instrumentation build. -ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),) -ifneq ($(LOCAL_NO_FDO_SUPPORT),true) -LOCAL_PRELINK_MODULE := false -endif -endif - -ifeq ($(LOCAL_PRELINK_MODULE),true) -$(prelink_output): $(prelink_input) $(TARGET_PRELINKER_MAP) $(APRIORI) - $(transform-to-prelinked) -else -# Don't prelink the binary, just copy it. We can't skip this step -# because people always expect a copy of the binary to appear -# in the UNSTRIPPED directory. -# -# If the binary we're copying is acp or a prerequisite, -# use cp(1) instead. -ifneq ($(LOCAL_ACP_UNAVAILABLE),true) -$(prelink_output): $(prelink_input) | $(ACP) - @echo "target Non-prelinked: $(PRIVATE_MODULE) ($@)" +symbolic_input := $(compress_output) +symbolic_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_BUILT_MODULE_STEM) +$(symbolic_output) : $(symbolic_input) | $(ACP) + @echo "target Symbolic: $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) -else -$(prelink_output): $(prelink_input) - @echo "target Non-prelinked: $(PRIVATE_MODULE) ($@)" - $(copy-file-to-target-with-cp) -endif -endif ########################################################### ## Strip ########################################################### -strip_input := $(prelink_output) +strip_input := $(symbolic_output) strip_output := $(LOCAL_BUILT_MODULE) ifeq ($(strip $(LOCAL_STRIP_MODULE)),) @@ -160,5 +131,5 @@ endif # LOCAL_STRIP_MODULE $(cleantarget): PRIVATE_CLEAN_FILES := \ $(PRIVATE_CLEAN_FILES) \ $(linked_module) \ - $(compress_output) \ - $(prelink_output) + $(symbolic_output) \ + $(compress_output) diff --git a/core/executable.mk b/core/executable.mk index 623c766..6138adb 100644 --- a/core/executable.mk +++ b/core/executable.mk @@ -12,11 +12,6 @@ ifeq ($(strip $(LOCAL_MODULE_SUFFIX)),) LOCAL_MODULE_SUFFIX := $(TARGET_EXECUTABLE_SUFFIX) endif -# Executables are not prelinked. If we decide to start prelinking -# them, the LOCAL_PRELINK_MODULE definitions should be moved from -# here and shared_library.make and consolidated in dynamic_binary.make. -LOCAL_PRELINK_MODULE := false - include $(BUILD_SYSTEM)/dynamic_binary.mk ifeq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true) diff --git a/core/java.mk b/core/java.mk index 0397deb..bf1c79a 100644 --- a/core/java.mk +++ b/core/java.mk @@ -326,17 +326,33 @@ $(full_classes_proguard_jar) : $(full_classes_jar) $(proguard_flag_files) | $(AC ALL_MODULES.$(LOCAL_MODULE).PROGUARD_ENABLED:=$(LOCAL_PROGUARD_ENABLED) +# Override PRIVATE_INTERMEDIATES_DIR so that install-dex-debug +# will work even when intermediates != intermediates.COMMON. +$(built_dex_intermediate): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON) + +ifeq (,$(filter --target-api=%, $(LOCAL_DX_FLAGS))) +possible_dx_target_api := +ifneq (,$(LOCAL_MANIFEST_FILE)) + manifest_min_sdk_version := \ + $(shell grep -o 'android:minSdkVersion="[0-9]\{1,\}"' $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE) 2>/dev/null) + possible_dx_target_api := $(patsubst android:minSdkVersion="%",%,$(firstword $(manifest_min_sdk_version))) +endif +ifeq (,$(possible_dx_target_api)) +# In case minSdkVersion is not available, eg shared library built against SDK, +# LOCAL_SDK_VERSION may be a good guess +ifneq (,$(filter-out current, $(LOCAL_SDK_VERSION))) + possible_dx_target_api := $(LOCAL_SDK_VERSION) +endif +endif +LOCAL_DX_FLAGS += $(addprefix --target-api=, $(possible_dx_target_api)) +endif # --target-api not defined in LOCAL_DX_FLAGS +$(built_dex_intermediate): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS) # If you instrument class files that have local variable debug information in # them emma does not correctly maintain the local variable table. # This will cause an error when you try to convert the class files for Android. # The workaround here is to build different dex file here based on emma switch # then later copy into classes.dex. When emma is on, dx is run with --no-locals # option to remove local variable information - -# Override PRIVATE_INTERMEDIATES_DIR so that install-dex-debug -# will work even when intermediates != intermediates.COMMON. -$(built_dex_intermediate): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON) -$(built_dex_intermediate): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS) ifneq ($(LOCAL_NO_EMMA_COMPILE),true) $(built_dex_intermediate): PRIVATE_DX_FLAGS += --no-locals endif diff --git a/core/java_library.mk b/core/java_library.mk index dbf6981..23417d0 100644 --- a/core/java_library.mk +++ b/core/java_library.mk @@ -42,10 +42,13 @@ include $(BUILD_SYSTEM)/java.mk ################################# ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true) -# No dex or resources; all we want are the .class files. -$(common_javalib.jar) : $(full_classes_jar) +# No dex; all we want are the .class files with resources. +$(common_javalib.jar) : $(full_classes_jar) $(java_resource_sources) @echo "target Static Jar: $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) +ifneq ($(extra_jar_args),) + $(add-java-resources-to-package) +endif $(LOCAL_BUILT_MODULE): $(common_javalib.jar) $(copy-file-to-target) diff --git a/core/legacy_prebuilts.mk b/core/legacy_prebuilts.mk index 6a999c1..41943b1 100644 --- a/core/legacy_prebuilts.mk +++ b/core/legacy_prebuilts.mk @@ -40,7 +40,6 @@ GRANDFATHERED_ALL_PREBUILT := \ bp.img \ brcm_guci_drv \ bypassfactory \ - cacerts.bks \ cdt.bin \ chat-ril \ cmu6plus.ok.zip \ diff --git a/core/main.mk b/core/main.mk index bcfec48..a8679e1 100644 --- a/core/main.mk +++ b/core/main.mk @@ -235,13 +235,15 @@ ifneq (,$(user_variant)) enable_target_debugging := endif - # TODO: Remove this and the corresponding block in - # config/product_config.make once host-based Dalvik preoptimization is - # working. + # Turn on Dalvik preoptimization for user builds, but only if not + # explicitly disabled and the build is running on Linux (since host + # Dalvik isn't built for non-Linux hosts). ifneq (true,$(DISABLE_DEXPREOPT)) - ifeq ($(HOST_OS)-$(WITH_DEXPREOPT_buildbot),linux-true) - WITH_DEXPREOPT := true - endif + ifeq ($(user_variant),user) + ifeq ($(HOST_OS),linux) + WITH_DEXPREOPT := true + endif + endif endif # Disallow mock locations by default for user builds @@ -468,10 +470,6 @@ subdirs := \ build/libs \ build/target \ build/tools/acp \ - build/tools/apriori \ - build/tools/soslim \ - external/elfcopy \ - external/elfutils \ external/yaffs2 \ external/zlib else # !BUILD_TINY_ANDROID diff --git a/core/package.mk b/core/package.mk index 8ca9033..e79059a 100644 --- a/core/package.mk +++ b/core/package.mk @@ -19,7 +19,7 @@ ## ## Additional inputs from base_rules.make: ## LOCAL_PACKAGE_NAME: The name of the package; the directory -## will be called this. +## will be called this. ## ## MODULE, MODULE_PATH, and MODULE_SUFFIX will ## be set for you. @@ -163,7 +163,14 @@ include $(BUILD_SYSTEM)/java.mk full_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE) $(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_ANDROID_MANIFEST := $(full_android_manifest) + PRIVATE_ANDROID_MANIFEST := $(full_android_manifest) +ifneq (,$(filter-out current, $(LOCAL_SDK_VERSION))) +$(LOCAL_INTERMEDIATE_TARGETS): \ + PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION) +else +$(LOCAL_INTERMEDIATE_TARGETS): \ + PRIVATE_DEFAULT_APP_TARGET_SDK := $(DEFAULT_APP_TARGET_SDK) +endif ifneq ($(all_resources),) @@ -192,15 +199,15 @@ $(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_ -name Manifest.java 2> /dev/null`; do \ dir=`awk '/package/{gsub(/\./,"/",$$2);gsub(/;/,"",$$2);print $$2;exit}' $$GENERATED_MANIFEST_FILE`; \ mkdir -p $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ - $(ACP) -fpt $$GENERATED_MANIFEST_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ + $(ACP) -fp $$GENERATED_MANIFEST_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ done; $(hide) for GENERATED_R_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \ -name R.java 2> /dev/null`; do \ dir=`awk '/package/{gsub(/\./,"/",$$2);gsub(/;/,"",$$2);print $$2;exit}' $$GENERATED_R_FILE`; \ mkdir -p $(TARGET_COMMON_OUT_ROOT)/R/$$dir; \ - $(ACP) -fpt $$GENERATED_R_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir \ + $(ACP) -fp $$GENERATED_R_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir \ || exit 31; \ - $(ACP) -fpt $$GENERATED_R_FILE $@ || exit 32; \ + $(ACP) -fp $$GENERATED_R_FILE $@ || exit 32; \ done; \ $(proguard_options_file): $(R_file_stamp) @@ -214,7 +221,7 @@ $(R_file_stamp): $(resource_export_package) # add-assets-to-package looks at PRODUCT_AAPT_CONFIG, but this target # can't know anything about PRODUCT. Clear it out just for this target. -$(resource_export_package): PRODUCT_AAPT_CONFIG := +$(resource_export_package): PRIVATE_PRODUCT_AAPT_CONFIG := $(resource_export_package): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) @echo "target Export Resources: $(PRIVATE_MODULE) ($@)" $(create-empty-package) @@ -233,7 +240,7 @@ ifneq ($(full_classes_jar),) $(full_classes_compiled_jar): $(R_file_stamp) endif -endif # all_resources +endif # all_resources ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true) # We need to explicitly clear this var so that we don't @@ -246,20 +253,20 @@ else ifneq ($(filter-out current,$(LOCAL_SDK_VERSION)),) # for released sdk versions, the platform resources were built into android.jar. framework_res_package_export := \ - $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_VERSION)/android.jar + $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_VERSION)/android.jar framework_res_package_export_deps := $(framework_res_package_export) else # LOCAL_SDK_VERSION framework_res_package_export := \ - $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk + $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk # We can't depend directly on the export.apk file; it won't get its # PRIVATE_ vars set up correctly if we do. Instead, depend on the # corresponding R.stamp file, which lists the export.apk as a dependency. framework_res_package_export_deps := \ - $(dir $(framework_res_package_export))src/R.stamp + $(dir $(framework_res_package_export))src/R.stamp endif # LOCAL_SDK_VERSION $(R_file_stamp): $(framework_res_package_export_deps) $(LOCAL_INTERMEDIATE_TARGETS): \ - PRIVATE_AAPT_INCLUDES := $(framework_res_package_export) + PRIVATE_AAPT_INCLUDES := $(framework_res_package_export) endif # LOCAL_NO_STANDARD_LIBRARIES ifneq ($(full_classes_jar),) @@ -330,7 +337,9 @@ ifneq ($(TARGET_BUILD_APPS),) LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true endif ifeq ($(LOCAL_AAPT_INCLUDE_ALL_RESOURCES),true) - $(LOCAL_BUILT_MODULE): PRODUCT_AAPT_CONFIG := + $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := +else + $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := $(PRODUCT_AAPT_CONFIG) endif $(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) @echo "target Package: $(PRIVATE_MODULE) ($@)" diff --git a/core/prelink-linux-arm.map b/core/prelink-linux-arm.map deleted file mode 100644 index 41cd8cd..0000000 --- a/core/prelink-linux-arm.map +++ /dev/null @@ -1,218 +0,0 @@ -# 0xC0000000 - 0xFFFFFFFF Kernel -# 0xB0100000 - 0xBFFFFFFF Thread 0 Stack -# 0xB0000000 - 0xB00FFFFF Linker -# 0xA0000000 - 0xBFFFFFFF Prelinked System Libraries -# 0x90000000 - 0x9FFFFFFF Prelinked App Libraries -# 0x80000000 - 0x8FFFFFFF Non-prelinked Libraries -# 0x40000000 - 0x7FFFFFFF mmap'd stuff -# 0x10000000 - 0x3FFFFFFF Thread Stacks -# 0x00000000 - 0x0FFFFFFF .text / .data / heap - -# Note: The general rule is that libraries should be aligned on 1MB -# boundaries. For ease of updating this file, you will find a comment -# on each line, indicating the observed size of the library, which is -# one of: -# -# [<64K] observed to be less than 64K -# [~1M] rounded up, one megabyte (similarly for other sizes) -# [???] no size observed, assumed to be one megabyte -# -# note: look at the LOAD sections in the library header: -# -# arm-linux-androideabi-objdump -x <lib> -# - -# core system libraries -libdl.so 0xB0100000 # [<64K] -libc.so 0xAFF00000 # [~2M] -libstdc++.so 0xAFE00000 # [<64K] -libm.so 0xAFD00000 # [~1M] -liblog.so 0xAFC00000 # [<64K] -libcutils.so 0xAFB00000 # [~1M] -libthread_db.so 0xAFA00000 # [<64K] -libz.so 0xAF900000 # [~1M] -libevent.so 0xAF800000 # [???] -libssl.so 0xAF600000 # [~2M] -libcrypto.so 0xAF200000 # [~4M] -libsysutils.so 0xAF100000 # [~1M] - -# bluetooth -liba2dp.so 0xAF000000 # [~1M] -input.so 0xAEF00000 # [~1M] -audio.so 0xAEE00000 # [~1M] -libglib.so 0xAED00000 # [~1M] -network.so 0xAEC00000 # [~1M] -libbluetoothd.so 0xAEA00000 # [~2M] -libbluedroid.so 0xAE900000 # [<64K] -libbluetooth.so 0xAE800000 # [~1M] -libdbus.so 0xAE700000 # [~1M] - -# extended system libraries -libril.so 0xAE600000 # [~1M] -libreference-ril.so 0xAE500000 # [~1M] -libwpa_client.so 0xAE400000 # [<64K] -libnetutils.so 0xAE300000 # [~1M] - -# core dalvik runtime support -libandroid_servers.so 0xAE200000 # [~1M] -libicuuc.so 0xADE00000 # [~4M] -libicui18n.so 0xAD900000 # [~5M] -libandroid_runtime.so 0xAD300000 # [~6M] -libnativehelper.so 0xAD100000 # [~2M] -libdvm-ARM.so 0xAD000000 # [???] -libdvm.so 0xACA00000 # [~6M] -# Note: libicudata.so intentionally omitted - -# graphics -libpixelflinger.so 0xAC900000 # [~1M] -# libcorecg is for backward-compatibility with donut -libcorecg.so 0xAC800000 # [???] -libsurfaceflinger_client.so 0xAC700000 # [~1M] -libsurfaceflinger.so 0xAC500000 # [~2M] -libGLES_android.so 0xAC400000 # [~1M] -libagl.so 0xAC300000 # [???] - -libGLESv1_CM.so 0xAC200000 # [~1M] -libGLESv2.so 0xAC100000 # [~1M] -libOpenVG_CM.so 0xAC000000 # [???] -libOpenVGU_CM.so 0xABF00000 # [???] -libEGL.so 0xABE00000 # [~1M] -libETC1.so 0xABD00000 # [<64K] - -libacc.so 0xABC00000 # [~1M] - -libexif.so 0xABB00000 # [~1M] -libcamera_client.so 0xABA80000 # [~1M] -libui.so 0xAB900000 # [~1M] -libgui.so 0xAB800000 # [~1M] -libskia.so 0xAB100000 # [~2M] -librs_jni.so 0xAB000000 # [~1M] -libRS.so 0xA9E00000 # [~2M] -libandroid.so 0xA9D80000 # [<64K] -libjnigraphics.so 0xA9D00000 # [<64K] -libskiagl.so 0xA9C00000 # [~1M] - -# audio -libaudiopolicy.so 0xA9A00000 # [~1M] -libeffects.so 0xA9980000 # [<64K] -libaudioeffect_jni.so 0xA9900000 # [<64K] -libsoundpool.so 0xA9800000 # [~1M] -libaudio.so 0xA9700000 # [~1M] -libspeech.so 0xA9600000 # [~1M] -libsonivox.so 0xA9500000 # [~1M] -libvorbisidec.so 0xA9400000 # [~1M] -libmedia_jni.so 0xA9300000 # [~1M] -libmediaplayerservice.so 0xA9200000 # [~1M] -libmedia.so 0xA9000000 # [~2M] -libFFTEm.so 0xA8F00000 # [~1M] -libSR_AudioIn.so 0xA8E00000 # [~1M] for external/srec -libaudioflinger.so 0xA8D00000 # [~1M] - -# assorted system libraries -libsqlite.so 0xA8B00000 # [~2M] -libexpat.so 0xA8A00000 # [~1M] -libwebcore.so 0xA8200000 # [~8M] -libbinder.so 0xA8100000 # [~1M] -libutils.so 0xA8000000 # [~1M] -libcameraservice.so 0xA7F00000 # [~1M] -libhardware.so 0xA7E00000 # [<64K] -libhardware_legacy.so 0xA7D00000 # [~1M] -libapp_process.so 0xA7C00000 # [???] -libsystem_server.so 0xA7B00000 # [~1M] -libime.so 0xA7A00000 # [???] -libgps.so 0xA7900000 # [~1M] -libcamera.so 0xA7800000 # [~1M] -liboemcamera.so 0xA7600000 # [~2M] -libdiskconfig.so 0xA7500000 # [<64K] -libemoji.so 0xA7400000 # [<64K] -libjni_latinime.so 0xA7300000 # [~1M] -libjni_pinyinime.so 0xA7200000 # [~1M] -libttssynthproxy.so 0xA7100000 # [~1M] for frameworks/base -libttspico.so 0xA6F00000 # [~2M] for external/svox -libmtp.so 0xA6E00000 # [~1M] -libusbhost.so 0xA6D00000 # [<64K] -libinput.so 0xA6C00000 # [~1M] - -# pv libraries -libpvasf.so 0xA6B00000 # [???] -libpvasfreg.so 0xA6A00000 # [???] -libomx_sharedlibrary.so 0xA6900000 # [~1M] -libopencore_download.so 0xA6800000 # [~1M] -libopencore_downloadreg.so 0xA6700000 # [~1M] -libopencore_net_support.so 0xA6400000 # [~3M] -libopencore_rtsp.so 0xA5E00000 # [~6M] -libopencore_rtspreg.so 0xA5D00000 # [~1M] -libopencore_author.so 0xA5900000 # [~4M] -libomx_aacdec_sharedlibrary.so 0xA5700000 # [~2M] -libomx_amrdec_sharedlibrary.so 0xA5600000 # [~1M] -libomx_amrenc_sharedlibrary.so 0xA5500000 # [~1M] -libomx_avcdec_sharedlibrary.so 0xA5400000 # [~1M] -libomx_avcenc_sharedlibrary.so 0xA5300000 # [???] -libomx_m4vdec_sharedlibrary.so 0xA5200000 # [~1M] -libomx_m4venc_sharedlibrary.so 0xA5100000 # [???] -libomx_mp3dec_sharedlibrary.so 0xA5000000 # [~1M] -libopencore_mp4local.so 0xA4E00000 # [~2M] -libopencore_mp4localreg.so 0xA4D00000 # [~1M] -libopencore_player.so 0xA4400000 # [~9M] - -# opencore hardware support -libmm-adspsvc.so 0xA4300000 # [<64K] -libOmxCore.so 0xA4200000 # [<64K] -libOmxMpeg4Dec.so 0xA4100000 # [~1M] -libOmxH264Dec.so 0xA4000000 # [~1M] -libOmxVidEnc.so 0xA3F00000 # [~1M] -libopencorehw.so 0xA3E00000 # [~1M] -libOmxVdec.so 0xA3D00000 # [~1M] -libmm-omxcore.so 0xA3C00000 # [<64K] - -# pv libraries -libopencore_common.so 0xA3500000 # [~7M] -libqcomm_omx.so 0xA3400000 # [<64K] - -# stagefright libraries -libstagefright_amrnb_common.so 0xA3300000 # [~1M] -libstagefright_avc_common.so 0xA3200000 # [~1M] -libstagefright_color_conversion.so 0xA3100000 # [<64K] -libstagefright_omx.so 0xA3000000 # [~1M] -libstagefrighthw.so 0xA2F00000 # [~1M] -libstagefright.so 0xA2B00000 # [~4M] - -# libraries for specific hardware -libgsl.so 0xA2A00000 # [~1M] -libhtc_acoustic.so 0xA2900000 # [<64K] -libhtc_ril.so 0xA2800000 # [~1M] -libreference-cdma-sms.so 0xA2600000 # [<64K] for hardware/ril - -# libraries for specific apps or temporary libraries -libcam_ipl.so 0x9F000000 # [???] -libwbxml.so 0x9EF00000 # [???] -libwbxml_jni.so 0x9EE00000 # [~1M] -libxml2wbxml.so 0x9EB00000 # [~1M] -libdrm1.so 0x9EA00000 # [~1M] -libdrm1_jni.so 0x9E900000 # [<64K] -libwapcore.so 0x9E800000 # [???] -libstreetview.so 0x9E700000 # [???] -libwapbrowsertest.so 0x9E600000 # [???] -libminiglobe.so 0x9E500000 # [???] -libearth.so 0x9E400000 # [???] -libembunit.so 0x9E300000 # [<64K] -libneon.so 0x9E200000 # [???] -libjni_example.so 0x9E100000 # [???] -libjni_load_test.so 0x9E000000 # [???] -libjni_lib_test.so 0x9DF00000 # [???] -librunperf.so 0x9DE00000 # [???] -libctest.so 0x9DD00000 # [<64K] -libUAPI_jni.so 0x9DC00000 # [???] -librpc.so 0x9DB00000 # [~1M] -libtrace_test.so 0x9DA00000 # [???] -libsrec_jni.so 0x9D800000 # [~2M] -libjpeg.so 0x9D700000 # [~1M] -libiprouteutil.so 0x9D600000 # [~1M] for external/iproute2 -libnetlink.so 0x9D500000 # [<64K] for external/iproute2 -libpagemap.so 0x9D400000 # [<64K] for system/extras/libpagemap -libstlport.so 0x9D100000 # [~3M] for external/stlport -libzxing.so 0x9D000000 # [<64K] for goggles -libinterstitial.so 0x9CF00000 # [<64K] for goggles -liblept.so 0x9CA00000 # [~5M] for external/leptonica -libbcc.so 0x9C600000 # [~4M] for external/llvm -libchromium_net.so 0x9C400000 # [~2M] for exteral/webkit diff --git a/core/product.mk b/core/product.mk index c2b398e..e37c2c9 100644 --- a/core/product.mk +++ b/core/product.mk @@ -63,6 +63,7 @@ _product_var_list := \ PRODUCT_NAME \ PRODUCT_MODEL \ PRODUCT_LOCALES \ + PRODUCT_AAPT_CONFIG \ PRODUCT_PACKAGES \ PRODUCT_DEVICE \ PRODUCT_MANUFACTURER \ @@ -197,7 +198,6 @@ _product_stash_var_list := $(_product_var_list) \ TARGET_BOARD_PLATFORM_GPU \ TARGET_BOOTLOADER_BOARD_NAME \ TARGET_COMPRESS_MODULE_SYMBOLS \ - TARGET_PRELINK_MODULE \ TARGET_NO_BOOTLOADER \ TARGET_NO_KERNEL \ TARGET_NO_RECOVERY \ diff --git a/core/product_config.mk b/core/product_config.mk index 4f4f97d..df5d30e 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -124,15 +124,6 @@ ifdef product_goals default_goal_substitution := tests-build-target endif - # Hack to make the linux build servers use dexpreopt (emulator-based - # preoptimization). Most engineers don't use this type of target - # ("make PRODUCT-blah-user"), so this should only tend to happen when - # using buildbot. - # TODO: Remove this once host Dalvik preoptimization is working. - ifeq ($(TARGET_BUILD_VARIANT),user) - WITH_DEXPREOPT_buildbot := true - 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. @@ -226,17 +217,18 @@ ifneq (,$(extra_locales)) extra_locales := endif +# Add PRODUCT_LOCALES to PRODUCT_AAPT_CONFIG +PRODUCT_AAPT_CONFIG := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_AAPT_CONFIG)) +PRODUCT_AAPT_CONFIG := $(PRODUCT_LOCALES) $(PRODUCT_AAPT_CONFIG) + # Default to medium-density assets. -# (Can be overridden in the device config, e.g.: PRODUCT_LOCALES += hdpi) -PRODUCT_LOCALES := $(strip \ - $(PRODUCT_LOCALES) \ - $(if $(filter %dpi,$(PRODUCT_LOCALES)),,mdpi)) +# (Can be overridden in the device config, e.g.: PRODUCT_AAPT_CONFIG += hdpi) +PRODUCT_AAPT_CONFIG := $(strip \ + $(PRODUCT_AAPT_CONFIG) \ + $(if $(filter %dpi,$(PRODUCT_AAPT_CONFIG)),,mdpi)) # Everyone gets nodpi assets which are density-independent. -PRODUCT_LOCALES += nodpi - -# Assemble the list of options. -PRODUCT_AAPT_CONFIG := $(PRODUCT_LOCALES) +PRODUCT_AAPT_CONFIG += nodpi # Convert spaces to commas. comma := , diff --git a/core/shared_library.mk b/core/shared_library.mk index 940fe61..47a089a 100644 --- a/core/shared_library.mk +++ b/core/shared_library.mk @@ -13,9 +13,6 @@ endif ifeq ($(strip $(LOCAL_MODULE_SUFFIX)),) LOCAL_MODULE_SUFFIX := $(TARGET_SHLIB_SUFFIX) endif -ifeq ($(strip $(LOCAL_PRELINK_MODULE)),) -LOCAL_PRELINK_MODULE := $(strip $(TARGET_PRELINK_MODULE)) -endif ifneq ($(strip $(OVERRIDE_BUILT_MODULE_PATH)),) $(error $(LOCAL_PATH): Illegal use of OVERRIDE_BUILT_MODULE_PATH) endif diff --git a/core/tasks/apicheck.mk b/core/tasks/apicheck.mk index 99a3227..96e0f44 100644 --- a/core/tasks/apicheck.mk +++ b/core/tasks/apicheck.mk @@ -19,24 +19,20 @@ ifneq ($(BUILD_TINY_ANDROID), true) -APICHECK_CLASSPATH := $(HOST_JDK_TOOLS_JAR) -APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) -APICHECK_CLASSPATH := $(APICHECK_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX) - .PHONY: checkapi # eval this to define a rule that runs apicheck. # # Args: # $(1) target -# $(2) stable api xml file -# $(3) api xml file to be tested +# $(2) stable api file +# $(3) api file to be tested # $(4) arguments for apicheck # $(5) command to run if apicheck failed define check-api $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp: $(2) $(3) $(APICHECK) @echo "Checking API:" $(1) - $(hide) ( $(APICHECK) -JXmx1024m -J"classpath $(APICHECK_CLASSPATH)" $(4) $(2) $(3) || ( $(5) ; exit 38 ) ) + $(hide) ( $(APICHECK_COMMAND) $(4) $(2) $(3) || ( $(5) ; exit 38 ) ) $(hide) mkdir -p $$(dir $$@) $(hide) touch $$@ checkapi: $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp @@ -45,10 +41,11 @@ endef # Run the checkapi rules by default. droidcore: checkapi -last_released_sdk_version := $(lastword $(call numerically_sort,\ - $(patsubst $(SRC_API_DIR)/%.xml,%, \ - $(filter-out $(SRC_API_DIR)/current.xml, \ - $(wildcard $(SRC_API_DIR)/*.xml))))) +last_released_sdk_version := $(lastword $(call numerically_sort, \ + $(filter-out $(SRC_API_DIR)/current, \ + $(patsubst $(SRC_API_DIR)/%.txt,%, $(wildcard $(SRC_API_DIR)/*.txt)) \ + )\ + )) # INTERNAL_PLATFORM_API_FILE is the one build by droiddoc. @@ -56,7 +53,7 @@ last_released_sdk_version := $(lastword $(call numerically_sort,\ # SDK version. $(eval $(call check-api, \ checkapi-last, \ - $(SRC_API_DIR)/$(last_released_sdk_version).xml, \ + $(SRC_API_DIR)/$(last_released_sdk_version).txt, \ $(INTERNAL_PLATFORM_API_FILE), \ -hide 2 -hide 3 -hide 4 -hide 5 -hide 6 -hide 24 -hide 25 \ -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \ @@ -68,7 +65,7 @@ $(eval $(call check-api, \ # SDK version. $(eval $(call check-api, \ checkapi-current, \ - $(SRC_API_DIR)/current.xml, \ + $(SRC_API_DIR)/current.txt, \ $(INTERNAL_PLATFORM_API_FILE), \ -error 2 -error 3 -error 4 -error 5 -error 6 \ -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \ @@ -79,7 +76,7 @@ $(eval $(call check-api, \ .PHONY: update-api update-api: $(INTERNAL_PLATFORM_API_FILE) | $(ACP) - @echo Copying current.xml - $(hide) $(ACP) $(INTERNAL_PLATFORM_API_FILE) $(SRC_API_DIR)/current.xml + @echo Copying current.txt + $(hide) $(ACP) $(INTERNAL_PLATFORM_API_FILE) $(SRC_API_DIR)/current.txt endif diff --git a/core/tasks/cts.mk b/core/tasks/cts.mk index 8d7667b..c2bfa27 100644 --- a/core/tasks/cts.mk +++ b/core/tasks/cts.mk @@ -34,12 +34,12 @@ CTS_TF_EXEC_PATH := $(HOST_OUT_EXECUTABLES)/cts-tradefed CTS_TF_README_PATH := $(cts_tools_src_dir)/tradefed-host/README CTS_CORE_CASE_LIST := \ - android.core.tests.dom \ - android.core.tests.luni.io \ - android.core.tests.luni.lang \ - android.core.tests.luni.net \ - android.core.tests.luni.util \ - android.core.tests.xml \ + android.core.tests.libcore.package.dalvik \ + android.core.tests.libcore.package.com \ + android.core.tests.libcore.package.sun \ + android.core.tests.libcore.package.tests \ + android.core.tests.libcore.package.org \ + android.core.tests.libcore.package.libcore \ android.core.tests.runner -include cts/CtsTestCaseList.mk @@ -72,58 +72,62 @@ $(cts_dir)/all_cts_files_stamp: $(CTS_CASE_LIST) $(junit_host_jar) $(HOSTTESTLIB # Parameters: # $1 : The output file where the description should be written (without the '.xml' extension) # $2 : The AndroidManifest.xml corresponding to the test package -# $3 : The name of the TestSuite generator class to use -# $4 : The directory containing vogar expectations files -# $5 : The Android.mk corresponding to the test package (required for host-side tests only) +# $3 : The jar file name on PRIVATE_CLASSPATH containing junit tests to search for +# $4 : The package prefix of classes to include, possible empty +# $5 : The directory containing vogar expectations files +# $6 : The Android.mk corresponding to the test package (required for host-side tests only) define generate-core-test-description @echo "Generate core-test description ("$(notdir $(1))")" -$(hide) java $(PRIVATE_JAVAOPTS) \ - -classpath $(PRIVATE_CLASSPATH) \ - $(PRIVATE_PARAMS) CollectAllTests $(1) \ - $(2) $(3) $(4) $(5) +$(hide) java -Xmx256M \ + -classpath $(PRIVATE_CLASSPATH):$(HOST_OUT_JAVA_LIBRARIES)/descGen.jar:$(HOST_JDK_TOOLS_JAR) \ + $(PRIVATE_PARAMS) CollectAllTests $(1) $(2) $(3) "$(4)" $(5) $(6) endef CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core,,COMMON) +BOUNCYCASTLE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,bouncycastle,,COMMON) +APACHEXML_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,apache-xml,,COMMON) +SQLITEJDBC_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,sqlite-jdbc,,COMMON) JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON) -RUNNER_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junitrunner,,COMMON) -SUPPORT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests-support,,COMMON) -DOM_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests-dom,,COMMON) -XML_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests-xml,,COMMON) -TESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON) -GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(RUNNER_INTERMEDIATES)/classes.jar:$(SUPPORT_INTERMEDIATES)/classes.jar:$(DOM_INTERMEDIATES)/classes.jar:$(XML_INTERMEDIATES)/classes.jar:$(TESTS_INTERMEDIATES)/classes.jar:$(CORE_INTERMEDIATES)/javalib.jar:$(JUNIT_INTERMEDIATES)/javalib.jar:$(RUNNER_INTERMEDIATES)/javalib.jar:$(SUPPORT_INTERMEDIATES)/javalib.jar:$(DOM_INTERMEDIATES)/javalib.jar:$(XML_INTERMEDIATES)/javalib.jar:$(TESTS_INTERMEDIATES)/javalib.jar:$(HOST_OUT_JAVA_LIBRARIES)/descGen.jar:$(HOST_JDK_TOOLS_JAR) +CORETESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON) + +GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(BOUNCYCASTLE_INTERMEDIATES)/classes.jar:$(APACHEXML_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(SQLITEJDBC_INTERMEDIATES)/javalib.jar:$(CORETESTS_INTERMEDIATES)/javalib.jar $(cts_dir)/all_cts_core_files_stamp: PRIVATE_CLASSPATH:=$(GEN_CLASSPATH) -$(cts_dir)/all_cts_core_files_stamp: PRIVATE_JAVAOPTS:=-Xmx256M -$(cts_dir)/all_cts_core_files_stamp: PRIVATE_PARAMS:=-Dcts.useSuppliedTestResult=true -$(cts_dir)/all_cts_core_files_stamp: PRIVATE_PARAMS+=-Dcts.useEnhancedJunit=true # Why does this depend on javalib.jar instead of classes.jar? Because # even though the tool will operate on the classes.jar files, the # build system requires that dependencies use javalib.jar. If # javalib.jar is up-to-date, then classes.jar is as well. Depending # on classes.jar will build the files incorrectly. -$(cts_dir)/all_cts_core_files_stamp: $(CTS_CORE_CASE_LIST) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(RUNNER_INTERMEDIATES)/javalib.jar $(SUPPORT_INTERMEDIATES)/javalib.jar $(DOM_INTERMEDIATES)/javalib.jar $(XML_INTERMEDIATES)/javalib.jar $(TESTS_INTERMEDIATES)/javalib.jar $(cts_dir)/all_cts_files_stamp | $(ACP) - $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.dom,\ - cts/tests/core/dom/AndroidManifest.xml,\ - tests.dom.AllTests, libcore/expectations) - $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.luni.io,\ - cts/tests/core/luni-io/AndroidManifest.xml,\ - tests.luni.AllTestsIo, libcore/expectations) - $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.luni.lang,\ - cts/tests/core/luni-lang/AndroidManifest.xml,\ - tests.luni.AllTestsLang, libcore/expectations) - $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.luni.net,\ - cts/tests/core/luni-net/AndroidManifest.xml,\ - tests.luni.AllTestsNet, libcore/expectations) - $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.luni.util,\ - cts/tests/core/luni-util/AndroidManifest.xml,\ - tests.luni.AllTestsUtil, libcore/expectations) - $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.xml,\ - cts/tests/core/xml/AndroidManifest.xml,\ - tests.xml.AllTests, libcore/expectations) +$(cts_dir)/all_cts_core_files_stamp: $(CTS_CORE_CASE_LIST) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CORE_INTERMEDIATES)/javalib.jar $(BOUNCYCASTLE_INTERMEDIATES)/javalib.jar $(APACHEXML_INTERMEDIATES)/javalib.jar $(SQLITEJDBC_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(CORETESTS_INTERMEDIATES)/javalib.jar $(cts_dir)/all_cts_files_stamp | $(ACP) + $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.libcore.package.dalvik,\ + cts/tests/core/libcore/dalvik/AndroidManifest.xml,\ + $(CORETESTS_INTERMEDIATES)/javalib.jar,dalvik,\ + libcore/expectations) + $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.libcore.package.com,\ + cts/tests/core/libcore/com/AndroidManifest.xml,\ + $(CORETESTS_INTERMEDIATES)/javalib.jar,com,\ + libcore/expectations) + $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.libcore.package.sun,\ + cts/tests/core/libcore/sun/AndroidManifest.xml,\ + $(CORETESTS_INTERMEDIATES)/javalib.jar,sun,\ + libcore/expectations) + $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.libcore.package.tests,\ + cts/tests/core/libcore/tests/AndroidManifest.xml,\ + $(CORETESTS_INTERMEDIATES)/javalib.jar,tests,\ + libcore/expectations) + $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.libcore.package.org,\ + cts/tests/core/libcore/org/AndroidManifest.xml,\ + $(CORETESTS_INTERMEDIATES)/javalib.jar,org,\ + libcore/expectations) + $(call generate-core-test-description,$(cts_dir)/$(cts_name)/repository/testcases/android.core.tests.libcore.package.libcore,\ + cts/tests/core/libcore/libcore/AndroidManifest.xml,\ + $(CORETESTS_INTERMEDIATES)/javalib.jar,libcore,\ + libcore/expectations) $(hide) touch $@ # ----- Generate the test descriptions for the vm-tests ----- +# TODO: remove this section once cts-tf replaces cts. # CORE_VM_TEST_DESC := $(cts_dir)/$(cts_name)/repository/testcases/android.core.vm-tests @@ -131,22 +135,41 @@ VMTESTS_INTERMEDIATES :=$(call intermediates-dir-for,EXECUTABLES,vm-tests,1,) # core tests only needed to get hold of junit-framework-classes CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core,,COMMON) JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON) -RUNNER_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junitrunner,,COMMON) -TESTS_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON) -GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(RUNNER_INTERMEDIATES)/classes.jar:$(TESTS_INTERMEDIATES)/classes.jar:$(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar:$(HOST_OUT_JAVA_LIBRARIES)/descGen.jar:$(HOSTTESTLIB_JAR):$(DDMLIB_JAR):$(HOST_JDK_TOOLS_JAR) +GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar:$(HOSTTESTLIB_JAR):$(DDMLIB_JAR) $(CORE_VM_TEST_DESC): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH) -$(CORE_VM_TEST_DESC): PRIVATE_PARAMS:=-Dcts.useSuppliedTestResult=true -$(CORE_VM_TEST_DESC): PRIVATE_PARAMS+=-Dcts.useEnhancedJunit=true -$(CORE_VM_TEST_DESC): PRIVATE_JAVAOPTS:=-Xmx256M # Please see big comment above on why this line depends on javalib.jar instead of classes.jar -$(CORE_VM_TEST_DESC): vm-tests $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(RUNNER_INTERMEDIATES)/javalib.jar $(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar $(TESTS_INTERMEDIATES)/javalib.jar $(HOSTTESTLIB_JAR) $(DDMLIB_JAR) $(cts_dir)/all_cts_files_stamp | $(ACP) +$(CORE_VM_TEST_DESC): vm-tests $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar $(HOSTTESTLIB_JAR) $(DDMLIB_JAR) $(cts_dir)/all_cts_files_stamp | $(ACP) $(call generate-core-test-description,$(CORE_VM_TEST_DESC),\ cts/tests/vm-tests/AndroidManifest.xml,\ - dot.junit.AllJunitHostTests, libcore/expectations, cts/tools/vm-tests/Android.mk) + $(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar,"",\ + libcore/expectations,\ + cts/tools/vm-tests/Android.mk) $(ACP) -fv $(VMTESTS_INTERMEDIATES)/android.core.vm-tests.jar $(PRIVATE_DIR)/repository/testcases/android.core.vm-tests.jar +# ----- Generate the test descriptions for the vm-tests-tf ----- +# +CORE_VM_TEST_TF_DESC := $(cts_dir)/$(cts_name)/repository/testcases/android.core.vm-tests-tf + +VMTESTSTF_INTERMEDIATES :=$(call intermediates-dir-for,EXECUTABLES,vm-tests-tf,1,) +# core tests only needed to get hold of junit-framework-classes +CORE_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core,,COMMON) +JUNIT_INTERMEDIATES :=$(call intermediates-dir-for,JAVA_LIBRARIES,core-junit,,COMMON) + +GEN_CLASSPATH := $(CORE_INTERMEDIATES)/classes.jar:$(JUNIT_INTERMEDIATES)/classes.jar:$(VMTESTSTF_INTERMEDIATES)/android.core.vm-tests-tf.jar:$(DDMLIB_JAR):$(TF_JAR) + +$(CORE_VM_TEST_TF_DESC): PRIVATE_CLASSPATH:=$(GEN_CLASSPATH) +# Please see big comment above on why this line depends on javalib.jar instead of classes.jar +$(CORE_VM_TEST_TF_DESC): $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(CORE_INTERMEDIATES)/javalib.jar $(JUNIT_INTERMEDIATES)/javalib.jar $(VMTESTSTF_INTERMEDIATES)/android.core.vm-tests-tf.jar $(DDMLIB_JAR) $(cts_dir)/all_cts_files_stamp | $(ACP) + $(call generate-core-test-description,$(CORE_VM_TEST_TF_DESC),\ + cts/tests/vm-tests-tf/AndroidManifest.xml,\ + $(VMTESTSTF_INTERMEDIATES)/android.core.vm-tests-tf.jar,\ + libcore/expectations,\ + cts/tools/vm-tests-tf/Android.mk) + $(ACP) -fv $(VMTESTSTF_INTERMEDIATES)/android.core.vm-tests-tf.jar $(PRIVATE_DIR)/repository/testcases/android.core.vm-tests-tf.jar + + # Move app security host-side tests to the repository APP_SECURITY_LIB := $(cts_dir)/$(cts_name)/repository/testcases/CtsAppSecurityTests.jar @@ -155,7 +178,7 @@ $(APP_SECURITY_LIB): $(HOST_OUT_JAVA_LIBRARIES)/CtsAppSecurityTests.jar $(cts_di # Generate the default test plan for User. # Usage: buildCts.py <testRoot> <ctsOutputDir> <tempDir> <androidRootDir> <docletPath> -$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_dir)/all_cts_core_files_stamp $(cts_tools_src_dir)/utils/buildCts.py $(CORE_VM_TEST_DESC) $(APP_SECURITY_LIB) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar +$(DEFAULT_TEST_PLAN): $(cts_dir)/all_cts_files_stamp $(cts_dir)/all_cts_core_files_stamp $(cts_tools_src_dir)/utils/buildCts.py $(CORE_VM_TEST_TF_DESC) $(CORE_VM_TEST_DESC) $(APP_SECURITY_LIB) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar $(hide) $(cts_tools_src_dir)/utils/buildCts.py cts/tests/tests/ $(PRIVATE_DIR) $(TMP_DIR) \ $(TOP) $(HOST_OUT_JAVA_LIBRARIES)/descGen.jar diff --git a/core/user_tags.mk b/core/user_tags.mk index 090b7fa..d30e86b 100644 --- a/core/user_tags.mk +++ b/core/user_tags.mk @@ -49,7 +49,6 @@ GRANDFATHERED_USER_MODULES += \ apkcheck \ applypatch \ app_process \ - apriori \ archquery \ asm-3.1 \ atree \ @@ -155,8 +154,6 @@ GRANDFATHERED_USER_MODULES += \ input \ ip \ iptables \ - iself \ - isprelinked \ jarjar \ javax.obex \ jcommon-1.0.12 \ @@ -221,7 +218,6 @@ GRANDFATHERED_USER_MODULES += \ libeffects \ libEGL \ libelf \ - libelfcopy \ libESR_Portable \ libESR_Shared \ libETC1 \ @@ -481,7 +477,6 @@ GRANDFATHERED_USER_MODULES += \ signature-tools \ simg2img \ simulator \ - soslim \ spec-progress \ sqlite3 \ stack_dump \ diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 7ca0c1c..6fa330d 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -41,7 +41,7 @@ ifeq "" "$(PLATFORM_VERSION)" # which is the version that we reveal to the end user. # Update this value when the platform version changes (rather # than overriding it somewhere else). Can be an arbitrary string. - PLATFORM_VERSION := 3.1.4.1.5.9.2.6.5 + PLATFORM_VERSION := IceCreamSandwich endif ifeq "" "$(PLATFORM_SDK_VERSION)" @@ -59,7 +59,7 @@ endif ifeq "" "$(PLATFORM_VERSION_CODENAME)" # This is the current development code-name, if the build is not a final # release build. If this is a final release build, it is simply "REL". - PLATFORM_VERSION_CODENAME := AOSP + PLATFORM_VERSION_CODENAME := IceCreamSandwich endif ifeq "" "$(DEFAULT_APP_TARGET_SDK)" |