diff options
Diffstat (limited to 'core')
37 files changed, 993 insertions, 393 deletions
diff --git a/core/Makefile b/core/Makefile index 08ca785..7ebcbfe 100644 --- a/core/Makefile +++ b/core/Makefile @@ -98,6 +98,14 @@ else BUILD_DISPLAY_ID := $(build_desc) endif +# Whether there is default locale set in PRODUCT_PROPERTY_OVERRIDES +product_property_override_locale_language := $(strip \ + $(patsubst ro.product.locale.language=%,%,\ + $(filter ro.product.locale.language=%,$(PRODUCT_PROPERTY_OVERRIDES)))) +product_property_overrides_locale_region := $(strip \ + $(patsubst ro.product.locale.region=%,%,\ + $(filter ro.product.locale.region=%,$(PRODUCT_PROPERTY_OVERRIDES)))) + # Selects the first locale in the list given as the argument, # and splits it into language and region, which each may be # empty. @@ -106,12 +114,13 @@ $(subst _, , $(firstword $(1))) endef # Selects the first locale in the list given as the argument -# and returns the language (or the region) +# and returns the language (or the region), if it's not set in PRODUCT_PROPERTY_OVERRIDES; +# Return empty string if it's already set in PRODUCT_PROPERTY_OVERRIDES. define default-locale-language -$(word 2, 2, $(call default-locale, $(1))) +$(if $(product_property_override_locale_language),,$(word 1, $(call default-locale, $(1)))) endef define default-locale-region -$(word 3, 3, $(call default-locale, $(1))) +$(if $(product_property_overrides_locale_region),,$(word 2, $(call default-locale, $(1)))) endef BUILDINFO_SH := build/tools/buildinfo.sh @@ -140,6 +149,7 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $( TARGET_BOARD_PLATFORM="$(TARGET_BOARD_PLATFORM)" \ TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \ TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \ + TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \ bash $(BUILDINFO_SH) > $@ $(hide) if [ -f $(TARGET_DEVICE_DIR)/system.prop ]; then \ cat $(TARGET_DEVICE_DIR)/system.prop >> $@; \ @@ -205,16 +215,9 @@ name := $(name)-apkcerts-$(FILE_NAME_TAG) intermediates := \ $(call intermediates-dir-for,PACKAGING,apkcerts) APKCERTS_FILE := $(intermediates)/$(name).txt -# Depending on the built packages isn't exactly right, -# but it should guarantee that the apkcerts file is rebuilt -# if any packages change which certs they're signed with. -all_built_packages := $(foreach p,$(PACKAGES),$(ALL_MODULES.$(p).BUILT)) -ifneq ($(TARGET_BUILD_APPS),) -# We don't need to really build all the modules for apps_only build. +# We don't need to really build all the modules. +# TODO: rebuild APKCERTS_FILE if any app change its cert. $(APKCERTS_FILE): -else -$(APKCERTS_FILE): $(all_built_packages) -endif @echo APK certs list: $@ @mkdir -p $(dir $@) @rm -f $@ @@ -228,7 +231,9 @@ endif .PHONY: apkcerts-list apkcerts-list: $(APKCERTS_FILE) -$(call dist-for-goals, apps_only, $(APKCERTS_FILE):apkcerts.txt) +ifneq (,$(TARGET_BUILD_APPS)) + $(call dist-for-goals, apps_only, $(APKCERTS_FILE):apkcerts.txt) +endif # ----------------------------------------------------------------- # module info file @@ -587,7 +592,7 @@ INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS))) # $(5): size of the partition define build-userimage-ext-target @mkdir -p $(dir $(2)) - $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$(PATH) \ + $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \ $(MKEXTUSERIMG) $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG) $(1) $(2) $(4) $(3) $(5) endef else @@ -649,11 +654,12 @@ RECOVERY_INSTALL_OTA_KEYS := \ $(call intermediates-dir-for,PACKAGING,ota_keys)/keys DUMPKEY_JAR := $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar $(RECOVERY_INSTALL_OTA_KEYS): PRIVATE_OTA_PUBLIC_KEYS := $(OTA_PUBLIC_KEYS) -$(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) - @echo "DumpPublicKey: $@ <= $(PRIVATE_OTA_PUBLIC_KEYS)" +$(RECOVERY_INSTALL_OTA_KEYS): extra_keys := $(patsubst %,%.x509.pem,$(PRODUCT_EXTRA_RECOVERY_KEYS)) +$(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys) + @echo "DumpPublicKey: $@ <= $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys)" @rm -rf $@ @mkdir -p $(dir $@) - java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) > $@ + java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \ $(INSTALLED_RAMDISK_TARGET) \ @@ -723,7 +729,7 @@ INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \ $(ALL_DEFAULT_INSTALLED_MODULES)) ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) -## generate an ext2 image +## generate an ext image # $(1): output file define build-systemimage-target @echo "Target system fs image: $(1)" @@ -841,7 +847,7 @@ INTERNAL_USERDATAIMAGE_FILES := \ $(filter $(TARGET_OUT_DATA)/%,$(ALL_DEFAULT_INSTALLED_MODULES)) ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true) -## Generate an ext image +## Generate an ext2 image define build-userdataimage-target $(call pretty,"Target userdata fs image: $(INSTALLED_USERDATAIMAGE_TARGET)") @mkdir -p $(TARGET_OUT_DATA) @@ -869,7 +875,7 @@ $(INSTALLED_USERDATAIMAGE_TARGET): $(INTERNAL_USERIMAGES_DEPS) \ $(build-userdataimage-target) .PHONY: userdataimage-nodeps -userdataimage-nodeps: $(INTERNAL_USERIMAGES_DEPS) +userdataimage-nodeps: | $(INTERNAL_USERIMAGES_DEPS) $(build-userdataimage-target) ####### @@ -914,6 +920,9 @@ OTATOOLS := $(HOST_OUT_EXECUTABLES)/minigzip \ $(HOST_OUT_JAVA_LIBRARIES)/dumpkey.jar \ $(HOST_OUT_JAVA_LIBRARIES)/signapk.jar \ $(HOST_OUT_EXECUTABLES)/mkuserimg.sh \ + $(HOST_OUT_EXECUTABLES)/genext2fs \ + $(HOST_OUT_EXECUTABLES)/tune2fs \ + $(HOST_OUT_EXECUTABLES)/e2fsck \ $(HOST_OUT_EXECUTABLES)/make_ext4fs .PHONY: otatools @@ -1059,6 +1068,9 @@ endif ifdef INTERNAL_USERIMAGES_SPARSE_EXT_FLAG $(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(zip_root)/META/misc_info.txt endif +ifdef PRODUCT_EXTRA_RECOVERY_KEYS + $(hide) echo "extra_recovery_keys=$(PRODUCT_EXTRA_RECOVERY_KEYS)" >> $(zip_root)/META/misc_info.txt +endif @# Zip everything up, preserving symlinks $(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .) @# Run fs_config on all the system files in the zip, and save the output @@ -1071,7 +1083,7 @@ target-files-package: $(BUILT_TARGET_FILES_PACKAGE) ifneq ($(TARGET_SIMULATOR),true) ifneq ($(TARGET_PRODUCT),sdk) -ifneq ($(TARGET_DEVICE),generic) +ifeq ($(filter generic%,$(TARGET_DEVICE)),) ifneq ($(TARGET_NO_KERNEL),true) ifneq ($(recovery_fstab),) @@ -1128,7 +1140,7 @@ updatepackage: $(INTERNAL_UPDATE_PACKAGE_TARGET) endif # recovery_fstab is defined endif # TARGET_NO_KERNEL != true -endif # TARGET_DEVICE != generic +endif # TARGET_DEVICE != generic* endif # TARGET_PRODUCT != sdk endif # TARGET_SIMULATOR != true @@ -1413,9 +1425,10 @@ $(INTERNAL_SDK_TARGET): $(deps) cp -f $(target_notice_file_txt) \ $(PRIVATE_DIR)/platforms/android-$(PLATFORM_VERSION)/images/$(TARGET_CPU_ABI)/NOTICE.txt && \ cp -f $(tools_notice_file_txt) $(PRIVATE_DIR)/tools/NOTICE.txt && \ - if [ -f $(PRIVATE_DIR)/platform-tools/llvm-rs-cc ]; then \ - $(HOST_STRIP_SDK_LLVM) $(PRIVATE_DIR)/platform-tools/llvm-rs-cc; \ - fi && \ + cp -f $(tools_notice_file_txt) $(PRIVATE_DIR)/platform-tools/NOTICE.txt && \ + for f in $(PRIVATE_DIR)/platform-tools/llvm-rs-cc-* ; do \ + if [ -f "$$f" ]; then $(HOST_STRIP_SDK_LLVM) "$$f"; fi; \ + done && \ HOST_OUT_EXECUTABLES=$(HOST_OUT_EXECUTABLES) HOST_OS=$(HOST_OS) \ development/build/tools/sdk_clean.sh $(PRIVATE_DIR) && \ chmod -R ug+rwX $(PRIVATE_DIR) && \ diff --git a/core/base_rules.mk b/core/base_rules.mk index 54bbb68..25564b2 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -106,11 +106,11 @@ endif # Add implicit tags. # # If the local directory or one of its parents contains a MODULE_LICENSE_GPL -# file, tag the module as "gnu". Search for "*_GNU*" so that we can also +# file, tag the module as "gnu". Search for "*_GPL*" and "*_MPL*" so that we can also # find files like MODULE_LICENSE_GPL_AND_AFL but exclude files like # MODULE_LICENSE_LGPL. # -ifneq ($(call find-parent-file,$(LOCAL_PATH),MODULE_LICENSE*_GPL*),) +ifneq ($(call find-parent-file,$(LOCAL_PATH),MODULE_LICENSE*_GPL* MODULE_LICENSE*_MPL*),) LOCAL_MODULE_TAGS += gnu endif @@ -220,6 +220,9 @@ ifneq ($(strip $(aidl_sources)),) aidl_java_sources := $(patsubst %.aidl,%.java,$(addprefix $(intermediates.COMMON)/src/, $(aidl_sources))) aidl_sources := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(aidl_sources)) +ifeq (,$(TARGET_BUILD_APPS)) +LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS) +endif aidl_preprocess_import := LOCAL_SDK_VERSION:=$(strip $(LOCAL_SDK_VERSION)) ifdef LOCAL_SDK_VERSION @@ -413,12 +416,14 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_STATIC_JAVA_LIBRARIES := $(full_static_ja # to guarantee that the files in full_java_libs will # be up-to-date. ifdef LOCAL_IS_HOST_MODULE -# TODO: make prebuilt java libraries use the same -# intermediates path pattern as target java libraries. ifeq ($(LOCAL_BUILD_HOST_DEX),true) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := -bootclasspath $(call java-lib-files,core-hostdex,$(LOCAL_IS_HOST_MODULE)) + full_java_libs := $(call java-lib-files,$(LOCAL_JAVA_LIBRARIES),$(LOCAL_IS_HOST_MODULE)) full_java_lib_deps := $(call java-lib-deps,$(LOCAL_JAVA_LIBRARIES),$(LOCAL_IS_HOST_MODULE)) else +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := + full_java_libs := $(addprefix $(HOST_OUT_JAVA_LIBRARIES)/,$(addsuffix $(COMMON_JAVA_PACKAGE_SUFFIX),$(LOCAL_JAVA_LIBRARIES))) full_java_lib_deps := $(full_java_libs) endif # LOCAL_BUILD_HOST_DEX @@ -449,8 +454,10 @@ ifdef LOCAL_INSTRUMENTATION_FOR full_java_lib_deps += $(link_instr_intermediates_dir.COMMON)/classes.jar endif +jar_manifest_file := ifneq ($(strip $(LOCAL_JAR_MANIFEST)),) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAR_MANIFEST := $(LOCAL_PATH)/$(LOCAL_JAR_MANIFEST) +jar_manifest_file := $(LOCAL_PATH)/$(LOCAL_JAR_MANIFEST) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAR_MANIFEST := $(jar_manifest_file) else $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAR_MANIFEST := endif @@ -515,7 +522,7 @@ ifndef LOCAL_UNINSTALLABLE_MODULE ifneq ($(LOCAL_ACP_UNAVAILABLE),true) $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) | $(ACP) @echo "Install: $@" - $(copy-file-to-target) + $(copy-file-to-new-target) else $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) @echo "Install: $@" @@ -529,7 +536,7 @@ $(installed_odex) : $(built_odex) | $(ACP) @echo "Install: $@" $(copy-file-to-target) -$(LOCAL_INSTALLED_MODULE) : | $(installed_odex) +$(LOCAL_INSTALLED_MODULE) : $(installed_odex) endif endif # !LOCAL_UNINSTALLABLE_MODULE diff --git a/core/binary.mk b/core/binary.mk index dcac435..f81cc5e 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -28,10 +28,43 @@ ifdef LOCAL_NDK_VERSION ifndef LOCAL_SDK_VERSION $(error $(LOCAL_PATH): LOCAL_NDK_VERSION must be defined with LOCAL_SDK_VERSION) endif + my_ndk_source_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r$(LOCAL_NDK_VERSION)/sources my_ndk_version_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r$(LOCAL_NDK_VERSION)/platforms/android-$(LOCAL_SDK_VERSION)/arch-$(TARGET_ARCH) ifeq ($(wildcard $(my_ndk_version_root)),) $(error $(LOCAL_PATH): ndk version root does not exist: $(my_ndk_version_root)) endif + + # Set up the NDK stl variant. Starting from NDK-r5 the c++ stl resides in a separate location. + # See ndk/docs/CPLUSPLUS-SUPPORT.html + my_ndk_stl_include_path := + my_ndk_stl_shared_lib_fullpath := + my_ndk_stl_shared_lib := + my_ndk_stl_static_lib := + ifeq (,$(LOCAL_NDK_STL_VARIANT)) + LOCAL_NDK_STL_VARIANT := system + endif + ifneq (1,$(words $(filter system stlport_static stlport_shared gnustl_static, $(LOCAL_NDK_STL_VARIANT)))) + $(error $(LOCAL_PATH): Unkown LOCAL_NDK_STL_VARIANT $(LOCAL_NDK_STL_VARIANT)) + endif + ifeq (system,$(LOCAL_NDK_STL_VARIANT)) + my_ndk_stl_include_path := $(my_ndk_source_root)/cxx-stl/system/include + # for "system" variant, the shared library exists in the system library and -lstdc++ is added by default. + else # LOCAL_NDK_STL_VARIANT is not system + ifneq (,$(filter stlport_%, $(LOCAL_NDK_STL_VARIANT))) + my_ndk_stl_include_path := $(my_ndk_source_root)/cxx-stl/stlport/stlport + ifeq (stlport_static,$(LOCAL_NDK_STL_VARIANT)) + my_ndk_stl_static_lib := $(my_ndk_source_root)/cxx-stl/stlport/libs/$(TARGET_CPU_ABI)/libstlport_static.a + else + my_ndk_stl_shared_lib_fullpath := $(my_ndk_source_root)/cxx-stl/stlport/libs/$(TARGET_CPU_ABI)/libstlport_shared.so + my_ndk_stl_shared_lib := -lstlport_shared + endif + else + # LOCAL_NDK_STL_VARIANT is gnustl_static + my_ndk_stl_include_path := $(my_ndk_source_root)/cxx-stl/gnu-libstdc++/include + my_ndk_stl_static_lib := $(my_ndk_source_root)/cxx-stl/gnu-libstdc++/libs/$(TARGET_CPU_ABI)/libstdc++.a + endif + endif + endif ####################################### @@ -58,7 +91,7 @@ LOCAL_ASFLAGS += -D__ASSEMBLY__ ########################################################### ifdef LOCAL_NDK_VERSION my_target_project_includes := -my_target_c_inclues := $(my_ndk_version_root)/usr/include +my_target_c_inclues := $(my_ndk_stl_include_path) $(my_ndk_version_root)/usr/include # TODO: more reliable way to remove platform stuff. my_target_global_cflags := $(filter-out -include -I system/%, $(TARGET_GLOBAL_CFLAGS)) my_target_global_cppflags := $(filter-out -include -I system/%, $(TARGET_GLOBAL_CPPFLAGS)) @@ -493,8 +526,10 @@ installed_shared_libraries := \ $(addprefix $($(my_prefix)OUT_SHARED_LIBRARIES)/, \ $(notdir $(built_shared_libraries))) -my_system_shared_libraries_fullpath := $(addprefix $(my_ndk_version_root)/usr/lib/, \ - $(addsuffix $(so_suffix), $(LOCAL_SYSTEM_SHARED_LIBRARIES))) +my_system_shared_libraries_fullpath := \ + $(my_ndk_stl_shared_lib_fullpath) \ + $(addprefix $(my_ndk_version_root)/usr/lib/, \ + $(addsuffix $(so_suffix), $(LOCAL_SYSTEM_SHARED_LIBRARIES))) built_shared_libraries += $(my_system_shared_libraries_fullpath) LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) @@ -515,6 +550,10 @@ built_static_libraries := \ $(call intermediates-dir-for, \ STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE))/$(lib)$(a_suffix)) +ifdef LOCAL_NDK_VERSION +built_static_libraries += $(my_ndk_stl_static_lib) +endif + built_whole_libraries := \ $(foreach lib,$(LOCAL_WHOLE_STATIC_LIBRARIES), \ $(call intermediates-dir-for, \ diff --git a/core/build_id.mk b/core/build_id.mk index e954794..40bb35d 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -23,7 +23,7 @@ # (like "TC1-RC5"). It must be a single word, and is # capitalized by convention. # -BUILD_ID := OPENMASTER +BUILD_ID := MASTER # DISPLAY_BUILD_NUMBER should only be set for development branches, # If set, the BUILD_NUMBER (cl) is appended to the BUILD_ID for diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 792bd56..2d8c15a 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -44,6 +44,7 @@ LOCAL_C_INCLUDES:= LOCAL_LDFLAGS:= LOCAL_LDLIBS:= LOCAL_AAPT_FLAGS:= +LOCAL_AAPT_INCLUDE_ALL_RESOURCES:= LOCAL_SYSTEM_SHARED_LIBRARIES:=none LOCAL_PREBUILT_LIBS:= LOCAL_PREBUILT_EXECUTABLES:= @@ -79,6 +80,7 @@ LOCAL_COMPRESS_MODULE_SYMBOLS:= LOCAL_STRIP_MODULE:= LOCAL_POST_PROCESS_COMMAND:=true LOCAL_JNI_SHARED_LIBRARIES:= +LOCAL_JNI_SHARED_LIBRARIES_ABI:= LOCAL_JAR_MANIFEST:= LOCAL_INSTRUMENTATION_FOR:= LOCAL_MANIFEST_INSTRUMENTATION_FOR:= @@ -90,14 +92,17 @@ LOCAL_DX_FLAGS:= LOCAL_CERTIFICATE:= LOCAL_SDK_VERSION:= LOCAL_NDK_VERSION:= +LOCAL_NDK_STL_VARIANT:= LOCAL_NO_EMMA_INSTRUMENT:= LOCAL_NO_EMMA_COMPILE:= -LOCAL_PROGUARD_ENABLED:= # '',optonly,full,custom +LOCAL_PROGUARD_ENABLED:= # '',optonly,full,custom,disabled LOCAL_PROGUARD_FLAGS:= LOCAL_PROGUARD_FLAG_FILES:= LOCAL_EMMA_COVERAGE_FILTER:= LOCAL_WARNINGS_ENABLE:= LOCAL_MANIFEST_FILE:= +LOCAL_RENDERSCRIPT_INCLUDES:= +LOCAL_RENDERSCRIPT_CC:= LOCAL_BUILD_HOST_DEX:= LOCAL_DEX_PREOPT:= LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,full diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk index 121f89b..b829108 100644 --- a/core/combo/HOST_darwin-x86.mk +++ b/core/combo/HOST_darwin-x86.mk @@ -59,14 +59,14 @@ HOST_GLOBAL_ARFLAGS := cqs HOST_CUSTOM_LD_COMMAND := true define transform-host-o-to-shared-lib-inner - $(HOST_CXX) \ +$(hide) $(PRIVATE_CXX) \ -dynamiclib -single_module -read_only_relocs suppress \ $(HOST_GLOBAL_LD_DIRS) \ $(HOST_GLOBAL_LDFLAGS) \ $(PRIVATE_ALL_OBJECTS) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(call normalize-host-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ + $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(call normalize-host-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ $(PRIVATE_LDLIBS) \ -o $@ \ $(PRIVATE_LDFLAGS) \ @@ -74,15 +74,15 @@ define transform-host-o-to-shared-lib-inner endef define transform-host-o-to-executable-inner -$(HOST_CXX) \ +$(hide) $(PRIVATE_CXX) \ -o $@ \ -Wl,-dynamic -headerpad_max_install_names \ $(HOST_GLOBAL_LD_DIRS) \ $(HOST_GLOBAL_LDFLAGS) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ + $(call normalize-host-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ $(PRIVATE_ALL_OBJECTS) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(call normalize-host-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ $(PRIVATE_LDFLAGS) \ $(PRIVATE_LDLIBS) \ $(HOST_LIBGCC) diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index 67844c8..c332b41 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -44,7 +44,7 @@ include $(TARGET_ARCH_SPECIFIC_MAKEFILE) # You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else ifeq ($(strip $(TARGET_TOOLS_PREFIX)),) TARGET_TOOLS_PREFIX := \ - prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin/arm-eabi- + prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi- endif # Only define these if there's actually a gcc in there. @@ -64,8 +64,7 @@ TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined TARGET_arm_CFLAGS := -O2 \ -fomit-frame-pointer \ -fstrict-aliasing \ - -funswitch-loops \ - -finline-limit=300 + -funswitch-loops # Modules can choose to compile some source as thumb. As # non-thumb enabled targets are supported, this is treated @@ -75,8 +74,7 @@ ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true) TARGET_thumb_CFLAGS := -mthumb \ -Os \ -fomit-frame-pointer \ - -fno-strict-aliasing \ - -finline-limit=64 + -fno-strict-aliasing else TARGET_thumb_CFLAGS := $(TARGET_arm_CFLAGS) endif @@ -101,6 +99,7 @@ arch_include_dir := $(dir $(android_config_h)) TARGET_GLOBAL_CFLAGS += \ -msoft-float -fpic \ -ffunction-sections \ + -fdata-sections \ -funwind-tables \ -fstack-protector \ -Wa,--noexecstack \ @@ -122,6 +121,7 @@ TARGET_GLOBAL_CFLAGS += -Wno-psabi TARGET_GLOBAL_LDFLAGS += \ -Wl,-z,noexecstack \ + -Wl,--icf=safe \ $(arch_variant_ldflags) # We only need thumb interworking in cases where thumb support @@ -136,12 +136,11 @@ endif TARGET_GLOBAL_CPPFLAGS += -fvisibility-inlines-hidden +# More flags/options can be added here TARGET_RELEASE_CFLAGS := \ -DNDEBUG \ -g \ -Wstrict-aliasing=2 \ - -finline-functions \ - -fno-inline-functions-called-once \ -fgcse-after-reload \ -frerun-cse-after-loop \ -frename-registers @@ -210,7 +209,7 @@ TARGET_C_INCLUDES := \ $(libstdc++_root)/include \ $(KERNEL_HEADERS) \ $(libm_root)/include \ - $(libm_root)/include/arch/arm \ + $(libm_root)/include/arm \ $(libthread_db_root)/include TARGET_CRTBEGIN_STATIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o @@ -232,7 +231,7 @@ ifeq ($(strip $(WITH_JIT)),) endif define transform-o-to-shared-lib-inner -$(TARGET_CXX) \ +$(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) -Wl,-T,$(BUILD_SYSTEM)/armelf.xsc \ -Wl,--gc-sections \ -Wl,-shared,-Bsymbolic \ @@ -240,7 +239,7 @@ $(TARGET_CXX) \ $(PRIVATE_ALL_OBJECTS) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ -Wl,--whole-archive \ - $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ @@ -253,7 +252,7 @@ $(TARGET_CXX) \ endef define transform-o-to-executable-inner -$(TARGET_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ +$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ -Wl,-dynamic-linker,/system/bin/linker \ -Wl,--gc-sections \ -Wl,-z,nocopyreloc \ @@ -272,7 +271,7 @@ $(TARGET_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ endef define transform-o-to-static-executable-inner -$(TARGET_CXX) -nostdlib -Bstatic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ +$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ -Wl,--gc-sections \ -o $@ \ $(TARGET_GLOBAL_LD_DIRS) \ @@ -280,8 +279,12 @@ $(TARGET_CXX) -nostdlib -Bstatic -Wl,-T,$(BUILD_SYSTEM)/armelf.x \ $(TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_LDFLAGS) \ $(PRIVATE_ALL_OBJECTS) \ - $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ + $(call normalize-target-libraries,$(filter-out %libc_nomalloc.a,$(filter-out %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES)))) \ + -Wl,--start-group \ + $(call normalize-target-libraries,$(filter %libc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \ + $(call normalize-target-libraries,$(filter %libc_nomalloc.a,$(PRIVATE_ALL_STATIC_LIBRARIES))) \ $(TARGET_FDO_LIB) \ $(TARGET_LIBGCC) \ + -Wl,--end-group \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O)) endef diff --git a/core/combo/TARGET_linux-sh.mk b/core/combo/TARGET_linux-sh.mk index 1fac6a0..654539c 100644 --- a/core/combo/TARGET_linux-sh.mk +++ b/core/combo/TARGET_linux-sh.mk @@ -99,7 +99,7 @@ TARGET_C_INCLUDES := \ $(libstdc++_root)/include \ $(KERNEL_HEADERS) \ $(libm_root)/include \ - $(libm_root)/include/arch/sh \ + $(libm_root)/include/sh \ $(libthread_db_root)/include TARGET_CRTBEGIN_STATIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o @@ -115,7 +115,7 @@ TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm TARGET_CUSTOM_LD_COMMAND := true define transform-o-to-shared-lib-inner -$(TARGET_CXX) \ +$(hide) $(PRIVATE_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) -Wl,-T,$(BUILD_SYSTEM)/shlelf.xsc \ -Wl,--gc-sections -Wl,-z,norelro \ -Wl,-shared,-Bsymbolic \ @@ -123,7 +123,7 @@ $(TARGET_CXX) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ - $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ @@ -135,7 +135,7 @@ $(TARGET_CXX) \ endef define transform-o-to-executable-inner -$(TARGET_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ +$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ -Wl,-dynamic-linker,/system/bin/linker \ -Wl,--gc-sections -Wl,-z,norelro \ -Wl,-z,nocopyreloc \ @@ -153,7 +153,7 @@ $(TARGET_CXX) -nostdlib -Bdynamic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ endef define transform-o-to-static-executable-inner -$(TARGET_CXX) -nostdlib -Bstatic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ +$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic -Wl,-T,$(BUILD_SYSTEM)/shlelf.x \ -Wl,--gc-sections -Wl,-z,norelro \ -o $@ \ $(TARGET_GLOBAL_LD_DIRS) \ diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 989f7e3..98a5f2b 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -139,7 +139,7 @@ TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm TARGET_CUSTOM_LD_COMMAND := true define transform-o-to-shared-lib-inner -$(TARGET_CXX) \ +$(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ -shared -Bsymbolic \ @@ -148,7 +148,7 @@ $(TARGET_CXX) \ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ - $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ @@ -160,7 +160,7 @@ endef define transform-o-to-executable-inner -$(TARGET_CXX) \ +$(hide) $(PRIVATE_CXX) \ $(TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Bdynamic \ -Wl,-dynamic-linker,/system/bin/linker \ @@ -178,7 +178,7 @@ $(TARGET_CXX) \ endef define transform-o-to-static-executable-inner -$(TARGET_CXX) \ +$(hide) $(PRIVATE_CXX) \ $(TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Bstatic \ -o $@ \ diff --git a/core/combo/javac.mk b/core/combo/javac.mk index d4c04e7..f8c99fb 100644 --- a/core/combo/javac.mk +++ b/core/combo/javac.mk @@ -8,7 +8,7 @@ # COMMON_JAVAC -- Java compiler command with common arguments # Whatever compiler is on this system. -ifeq ($(HOST_OS), windows) +ifeq ($(BUILD_OS), windows) COMMON_JAVAC := development/host/windows/prebuilt/javawrap.exe -J-Xmx256m \ -target 1.5 -Xmaxerrs 9999999 else diff --git a/core/config.mk b/core/config.mk index d953b1a..2a8a05b 100644 --- a/core/config.mk +++ b/core/config.mk @@ -61,6 +61,7 @@ BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk +BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk @@ -69,7 +70,8 @@ BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk -BUILD_KEY_CHAR_MAP := $(BUILD_SYSTEM)/key_char_map.mk +BUILD_NATIVE_TEST := $(BUILD_SYSTEM)/native_test.mk +BUILD_HOST_NATIVE_TEST := $(BUILD_SYSTEM)/host_native_test.mk # ############################################################### # Parse out any modifier targets. @@ -214,11 +216,13 @@ MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX) MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh MKEXT2BOOTIMG := external/genext2fs/mkbootimg_ext2.sh MKTARBALL := build/tools/mktarball.sh -TUNE2FS := tune2fs -E2FSCK := e2fsck +TUNE2FS := $(HOST_OUT_EXECUTABLES)/tune2fs$(HOST_EXECUTABLE_SUFFIX) +E2FSCK := $(HOST_OUT_EXECUTABLES)/e2fsck$(HOST_EXECUTABLE_SUFFIX) JARJAR := $(HOST_OUT_JAVA_LIBRARIES)/jarjar.jar PROGUARD := external/proguard/bin/proguard.sh JAVATAGS := build/tools/java-event-log-tags.py +LLVM_RS_CC := $(HOST_OUT_EXECUTABLES)/llvm-rs-cc$(HOST_EXECUTABLE_SUFFIX) +LLVM_RS_LINK := $(HOST_OUT_EXECUTABLES)/llvm-rs-link$(HOST_EXECUTABLE_SUFFIX) DEXOPT := $(HOST_OUT_EXECUTABLES)/dexopt$(HOST_EXECUTABLE_SUFFIX) DEXPREOPT := dalvik/tools/dex-preopt @@ -227,7 +231,6 @@ ACP := $(BUILD_OUT_EXECUTABLES)/acp$(BUILD_EXECUTABLE_SUFFIX) # dx is java behind a shell script; no .exe necessary. DX := $(HOST_OUT_EXECUTABLES)/dx -KCM := $(HOST_OUT_EXECUTABLES)/kcm$(HOST_EXECUTABLE_SUFFIX) ZIPALIGN := $(HOST_OUT_EXECUTABLES)/zipalign$(HOST_EXECUTABLE_SUFFIX) FINDBUGS := prebuilt/common/findbugs/bin/findbugs LOCALIZE := $(HOST_OUT_EXECUTABLES)/localize$(HOST_EXECUTABLE_SUFFIX) @@ -268,6 +271,10 @@ ifeq ($(HOST_OS),darwin) HOST_JDK_TOOLS_JAR := else HOST_JDK_TOOLS_JAR:= $(shell $(BUILD_SYSTEM)/find-jdk-tools-jar.sh) +ifeq ($(wildcard $(HOST_JDK_TOOLS_JAR)),) +$(error Error: could not find jdk tools.jar, please install JDK6, \ + which you can download from java.sun.com) +endif endif # Is the host JDK 64-bit version? diff --git a/core/definitions.mk b/core/definitions.mk index 6e7a5ad..48c4aed 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -249,6 +249,19 @@ $(patsubst ./%,%, \ endef ########################################################### +## Find all of the RenderScript files under the named directories. +## Meant to be used like: +## SRC_FILES := $(call all-renderscript-files-under,src) +########################################################### + +define all-renderscript-files-under +$(patsubst ./%,%, \ + $(shell cd $(LOCAL_PATH) ; \ + find $(1) -name "*.rs" -and -not -name ".*") \ + ) +endef + +########################################################### ## Find all of the html files under the named directories. ## Meant to be used like: ## SRC_FILES := $(call all-html-files-under,src tests) @@ -326,7 +339,7 @@ endef define find-parent-file $(strip \ - $(eval _fpf := $(wildcard $(strip $(1))/$(strip $(2)))) \ + $(eval _fpf := $(wildcard $(foreach f, $(2), $(strip $(1))/$(f)))) \ $(if $(_fpf),$(_fpf), \ $(if $(filter-out ./ .,$(1)), \ $(call find-parent-file,$(patsubst %/,%,$(dir $(1))),$(2)) \ @@ -523,6 +536,30 @@ $(foreach lib,$(1),$(call _java-lib-full-dep,$(lib),$(2))) endef ########################################################### +## Run rot13 on a string +## $(1): the string. Must be one line. +########################################################### +define rot13 +$(shell echo $(1) | tr 'a-zA-Z' 'n-za-mN-ZA-M') +endef + + +########################################################### +## Returns true if $(1) and $(2) are equal. Returns +## the empty string if they are not equal. +########################################################### +define streq +$(strip $(if $(strip $(1)),\ + $(if $(strip $(2)),\ + $(if $(filter-out __,_$(subst $(strip $(1)),,$(strip $(2)))$(subst $(strip $(2)),,$(strip $(1)))_),,true), \ + ),\ + $(if $(strip $(2)),\ + ,\ + true)\ + )) +endef + +########################################################### ## Convert "a b c" into "a:b:c" ########################################################### @@ -699,7 +736,7 @@ endef ########################################################### define transform-d-to-p -@cp $(@:%.o=%.d) $(@:%.o=%.P); \ +$(hide) cp $(@:%.o=%.d) $(@:%.o=%.P); \ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ rm -f $(@:%.o=%.d) @@ -735,6 +772,28 @@ echo '#endif' >> $(@:$1=.h) rm -f $(@:$1=$(YACC_HEADER_SUFFIX)) endef +########################################################### +## Commands to compile RenderScript +########################################################### + +define transform-renderscripts-to-java-and-bc +@echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)" +$(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR) +$(hide) mkdir -p $(PRIVATE_RS_OUTPUT_DIR)/res/raw +$(hide) mkdir -p $(PRIVATE_RS_OUTPUT_DIR)/src +$(hide) $(PRIVATE_RS_CC) \ + -o $(PRIVATE_RS_OUTPUT_DIR)/res/raw \ + -p $(PRIVATE_RS_OUTPUT_DIR)/src \ + -d $(PRIVATE_RS_OUTPUT_DIR) \ + -a $@ -MD \ + $(foreach inc,$(PRIVATE_RS_INCLUDES),$(addprefix -I , $(inc))) \ + $(PRIVATE_RS_SOURCE_FILES) +#$(hide) $(LLVM_RS_LINK) \ +# $(PRIVATE_RS_OUTPUT_DIR)/res/raw/*.bc +$(hide) mkdir -p $(dir $@) +$(hide) touch $@ +endef + ########################################################### ## Commands for running aidl @@ -817,7 +876,7 @@ $(hide) $(PRIVATE_CXX) \ $(PRIVATE_CPPFLAGS) \ $(PRIVATE_DEBUG_CFLAGS) \ -MD -o $@ $< -$(hide) $(transform-d-to-p) +$(transform-d-to-p) endef @@ -861,12 +920,12 @@ endef define transform-c-to-o $(transform-c-to-o-no-deps) -$(hide) $(transform-d-to-p) +$(transform-d-to-p) endef define transform-s-to-o $(transform-s-to-o-no-deps) -$(hide) $(transform-d-to-p) +$(transform-d-to-p) endef ########################################################### @@ -882,7 +941,7 @@ endef define transform-m-to-o $(transform-m-to-o-no-deps) -$(hide) $(transform-d-to-p) +$(transform-d-to-p) endef ########################################################### @@ -998,19 +1057,24 @@ $(call _concat-if-arg2-not-empty,$(1),$(wordlist 2501,3000,$(2))) $(call _concat-if-arg2-not-empty,$(1),$(wordlist 3001,99999,$(2))) endef +# $(1): the full path of the source static library. +define _extract-and-include-single-target-whole-static-lib +@echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(1)]" +$(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ + rm -rf $$ldir; \ + mkdir -p $$ldir; \ + filelist=; \ + for f in `$(TARGET_AR) t $(1)`; do \ + $(TARGET_AR) p $(1) $$f > $$ldir/$$f; \ + filelist="$$filelist $$ldir/$$f"; \ + done ; \ + $(TARGET_AR) $(TARGET_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $$filelist + +endef + define extract-and-include-target-whole-static-libs $(foreach lib,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES), \ - $(hide) echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(lib)]"; \ - ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(lib)))_objs;\ - rm -rf $$ldir; \ - mkdir -p $$ldir; \ - filelist=; \ - for f in `$(TARGET_AR) t $(lib)`; do \ - $(TARGET_AR) p $(lib) $$f > $$ldir/$$f; \ - filelist="$$filelist $$ldir/$$f"; \ - done ; \ - $(TARGET_AR) $(TARGET_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $$filelist;\ -) + $(call _extract-and-include-single-target-whole-static-lib, $(lib))) endef # Explicitly delete the archive first so that ar doesn't @@ -1027,19 +1091,24 @@ endef ## Commands for running host ar ########################################################### +# $(1): the full path of the source static library. +define _extract-and-include-single-host-whole-static-lib +@echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(1)]" +$(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ + rm -rf $$ldir; \ + mkdir -p $$ldir; \ + filelist=; \ + for f in `$(HOST_AR) t $(1) | grep '\.o$$'`; do \ + $(HOST_AR) p $(1) $$f > $$ldir/$$f; \ + filelist="$$filelist $$ldir/$$f"; \ + done ; \ + $(HOST_AR) $(HOST_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $$filelist + +endef + define extract-and-include-host-whole-static-libs $(foreach lib,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES), \ - $(hide) echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(lib)]"; \ - ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(lib)))_objs;\ - rm -rf $$ldir; \ - mkdir -p $$ldir; \ - filelist=; \ - for f in `$(HOST_AR) t $(lib) | grep '\.o$$'`; do \ - $(HOST_AR) p $(lib) $$f > $$ldir/$$f; \ - filelist="$$filelist $$ldir/$$f"; \ - done ; \ - $(HOST_AR) $(HOST_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $$filelist;\ -) + $(call _extract-and-include-single-host-whole-static-lib, $(lib))) endef # Explicitly delete the archive first so that ar doesn't @@ -1061,8 +1130,8 @@ endef # it to be overriden en-masse see combo/linux-arm.make for an example. ifneq ($(HOST_CUSTOM_LD_COMMAND),true) define transform-host-o-to-shared-lib-inner -$(PRIVATE_CXX) \ - -Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \ +$(hide) $(PRIVATE_CXX) \ + -Wl,-rpath-link=$(HOST_OUT_INTERMEDIATE_LIBRARIES) \ -Wl,-rpath,\$$ORIGIN/../lib \ -shared -Wl,-soname,$(notdir $@) \ $(PRIVATE_LDFLAGS) \ @@ -1084,13 +1153,13 @@ endif define transform-host-o-to-shared-lib @mkdir -p $(dir $@) @echo "host SharedLib: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-host-o-to-shared-lib-inner) +$(transform-host-o-to-shared-lib-inner) endef define transform-host-o-to-package @mkdir -p $(dir $@) @echo "host Package: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-host-o-to-shared-lib-inner) +$(transform-host-o-to-shared-lib-inner) endef @@ -1111,7 +1180,7 @@ endef # it to be overriden en-masse see combo/linux-arm.make for an example. ifneq ($(TARGET_CUSTOM_LD_COMMAND),true) define transform-o-to-shared-lib-inner -$(PRIVATE_CXX) \ +$(hide) $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \ -Wl,-rpath,\$$ORIGIN/../lib \ @@ -1120,7 +1189,7 @@ $(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ - $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ + $(call normalize-target-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ -Wl,--no-whole-archive \ $(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ @@ -1132,13 +1201,13 @@ endif define transform-o-to-shared-lib @mkdir -p $(dir $@) @echo "target SharedLib: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-o-to-shared-lib-inner) +$(transform-o-to-shared-lib-inner) endef define transform-o-to-package @mkdir -p $(dir $@) @echo "target Package: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-o-to-shared-lib-inner) +$(transform-o-to-shared-lib-inner) endef @@ -1170,7 +1239,7 @@ endef ifneq ($(TARGET_CUSTOM_LD_COMMAND),true) define transform-o-to-executable-inner -$(PRIVATE_CXX) \ +$(hide) $(PRIVATE_CXX) \ $(TARGET_GLOBAL_LDFLAGS) \ -Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \ $(TARGET_GLOBAL_LD_DIRS) \ @@ -1192,7 +1261,7 @@ endif define transform-o-to-executable @mkdir -p $(dir $@) @echo "target Executable: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-o-to-executable-inner) +$(transform-o-to-executable-inner) endef @@ -1211,7 +1280,7 @@ endif define transform-o-to-static-executable @mkdir -p $(dir $@) @echo "target StaticExecutable: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-o-to-static-executable-inner) +$(transform-o-to-static-executable-inner) endef @@ -1221,8 +1290,8 @@ endef ifneq ($(HOST_CUSTOM_LD_COMMAND),true) define transform-host-o-to-executable-inner -$(PRIVATE_CXX) \ - -Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \ +$(hide) $(PRIVATE_CXX) \ + -Wl,-rpath-link=$(HOST_OUT_INTERMEDIATE_LIBRARIES) \ -Wl,-rpath,\$$ORIGIN/../lib \ $(HOST_GLOBAL_LD_DIRS) \ $(PRIVATE_LDFLAGS) \ @@ -1243,7 +1312,7 @@ endif define transform-host-o-to-executable @mkdir -p $(dir $@) @echo "host Executable: $(PRIVATE_MODULE) ($@)" -$(hide) $(transform-host-o-to-executable-inner) +$(transform-host-o-to-executable-inner) endef @@ -1280,7 +1349,7 @@ $(hide) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \ $(addprefix --min-sdk-version , $(DEFAULT_APP_TARGET_SDK)) \ $(addprefix --target-sdk-version , $(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))) \ + $(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-name , $(PLATFORM_VERSION)-$(BUILD_NUMBER))) \ $(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \ $(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) endef @@ -1319,7 +1388,12 @@ define dump-words-to-file @$(call emit-line,$(wordlist 3401,3600,$(1)),$(2)) @$(call emit-line,$(wordlist 3601,3800,$(1)),$(2)) @$(call emit-line,$(wordlist 3801,4000,$(1)),$(2)) - @$(if $(wordlist 4001,4002,$(1)),$(error Too many words ($(words $(1))))) + @$(call emit-line,$(wordlist 4001,4200,$(1)),$(2)) + @$(call emit-line,$(wordlist 4201,4400,$(1)),$(2)) + @$(call emit-line,$(wordlist 4401,4600,$(1)),$(2)) + @$(call emit-line,$(wordlist 4601,4800,$(1)),$(2)) + @$(call emit-line,$(wordlist 4801,5000,$(1)),$(2)) + @$(if $(wordlist 5001,5002,$(1)),$(error Too many words ($(words $(1))))) endef # For a list of jar files, unzip them to a specified directory, @@ -1339,38 +1413,96 @@ define unzip-jar-files done endef -# below we write the list of java files to java-source-list to avoid argument -# list length problems with Cygwin we filter out duplicate java file names -# because eclipse's compiler doesn't like them. -define transform-java-to-classes.jar -@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +# Common definition to invoke javac on the host and target. +# +# Some historical notes: +# - below we write the list of java files to java-source-list to avoid argument +# list length problems with Cygwin +# - we filter out duplicate java file names because eclipse's compiler +# doesn't like them. +# +# $(1): javac +# $(2): bootclasspath +define compile-java $(hide) rm -f $@ $(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) +$(hide) mkdir -p $(dir $@) $(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) -$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES), \ - $(PRIVATE_CLASS_INTERMEDIATES_DIR)) -$(call dump-words-to-file,$(PRIVATE_JAVA_SOURCES),$(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list) +$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES),$(PRIVATE_CLASS_INTERMEDIATES_DIR)) +$(call dump-words-to-file,$(PRIVATE_JAVA_SOURCES),$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list) $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ - find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list; \ + find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' >> $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list; \ fi -$(hide) tr ' ' '\n' < $(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list \ - | sort -u > $(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list-uniq -$(hide) $(TARGET_JAVAC) -encoding ascii $(PRIVATE_BOOTCLASSPATH) \ +$(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ + | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +$(hide) $(1) -encoding ascii \ + $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ + $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ + $(2) \ $(addprefix -classpath ,$(strip \ $(call normalize-path-list,$(PRIVATE_ALL_JAVA_LIBRARIES)))) \ - $(PRIVATE_JAVACFLAGS) $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ - $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ + $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ -extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ - \@$(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list-uniq \ + $(PRIVATE_JAVACFLAGS) \ + \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ || ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 ) -$(hide) rm -f $(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list -$(hide) rm -f $(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list-uniq -$(hide) mkdir -p $(dir $@) +$(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list +$(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq $(hide) jar $(if $(strip $(PRIVATE_JAR_MANIFEST)),-cfm,-cf) \ $@ $(PRIVATE_JAR_MANIFEST) -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) . +endef + +define transform-java-to-classes.jar +@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +$(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) $(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) endef +# Override the above definitions if we want to do incremetal javac +ifeq (true, $(ENABLE_INCREMENTALJAVAC)) +define compile-java +$(hide) mkdir -p $(dir $@) +$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) +$(hide) touch $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp +$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES),$(PRIVATE_CLASS_INTERMEDIATES_DIR)) +$(hide) if [ -e $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp ] ; then \ + newerFlag=$$(echo -n "-newer $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp") ; \ + fi ; \ + find $(PRIVATE_JAVA_SOURCES) $$newerFlag > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list ; \ + if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ + find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name '*.java' $$newerFlag >> $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list; \ + fi +$(hide) tr ' ' '\n' < $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list \ + | sort -u > $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +@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 \ + $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \ + $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ + $(2) \ + $(addprefix -classpath ,$(strip \ + $(call normalize-path-list,$(PRIVATE_ALL_JAVA_LIBRARIES) $(PRIVATE_CLASS_INTERMEDIATES_DIR)))) \ + $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \ + -extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ + $(PRIVATE_JAVACFLAGS) \ + \@$(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq \ + || ( exit 41 ) \ +fi +$(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list +$(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq +$(hide) rm -f $@ +$(hide) jar $(if $(strip $(PRIVATE_JAR_MANIFEST)),-cfm,-cf) \ + $@ $(PRIVATE_JAR_MANIFEST) -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) . +$(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp +endef + +define transform-java-to-classes.jar +@echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" +$(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH)) +endef +endif # ENABLE_INCREMENTALJAVAC + define transform-classes.jar-to-emma $(hide) java -classpath $(EMMA_JAR) emma instr -outmode fullcopy -outfile \ $(PRIVATE_EMMA_COVERAGE_FILE) -ip $< -d $(PRIVATE_EMMA_INTERMEDIATES_DIR) \ @@ -1427,7 +1559,7 @@ $(hide) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \ $(addprefix --target-sdk-version , $(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))) \ + $(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --version-name , $(PLATFORM_VERSION)-$(BUILD_NUMBER))) \ $(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \ $(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \ -F $@ @@ -1435,8 +1567,8 @@ endef define add-jni-shared-libs-to-package $(hide) rm -rf $(dir $@)lib -$(hide) mkdir -p $(dir $@)lib/$(TARGET_CPU_ABI) -$(hide) cp $(PRIVATE_JNI_SHARED_LIBRARIES) $(dir $@)lib/$(TARGET_CPU_ABI) +$(hide) mkdir -p $(dir $@)lib/$(PRIVATE_JNI_SHARED_LIBRARIES_ABI) +$(hide) cp $(PRIVATE_JNI_SHARED_LIBRARIES) $(dir $@)lib/$(PRIVATE_JNI_SHARED_LIBRARIES_ABI) $(hide) (cd $(dir $@) && zip -r $(notdir $@) lib) $(hide) rm -rf $(dir $@)lib endef @@ -1490,31 +1622,12 @@ endef # new prebuilt rules to work, we should change this to copy the # resources to the out directory and then copy the resources. -# Note: not using aapt tool for this because we aren't making -# an android package for the host. +# Note: we intentionally don't clean PRIVATE_CLASS_INTERMEDIATES_DIR +# in transform-java-to-classes for the sake of vm-tests. define transform-host-java-to-package @echo "host Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" -@rm -f $@ -@rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) -@mkdir -p $(dir $@) -@mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) -$(call unzip-jar-files,$(PRIVATE_STATIC_JAVA_LIBRARIES), \ - $(PRIVATE_CLASS_INTERMEDIATES_DIR)) -$(call dump-words-to-file,$(sort\ - $(PRIVATE_JAVA_SOURCES)),\ - $(PRIVATE_INTERMEDIATES_DIR)/java-source-list-uniq) -$(hide) $(HOST_JAVAC) -encoding ascii -g \ - $(PRIVATE_JAVACFLAGS) $(xlint_unchecked) \ - $(addprefix -classpath ,$(strip \ - $(call normalize-path-list,$(PRIVATE_ALL_JAVA_LIBRARIES)))) \ - -extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR)\ - \@$(PRIVATE_INTERMEDIATES_DIR)/java-source-list-uniq || \ - ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 ) -$(hide) rm -f $(PRIVATE_INTERMEDIATES_DIR)/java-source-list -$(hide) rm -f $(PRIVATE_INTERMEDIATES_DIR)/java-source-list-uniq -$(hide) jar $(if $(strip $(PRIVATE_JAR_MANIFEST)),-cfm,-cf) \ - $@ $(PRIVATE_JAR_MANIFEST) $(PRIVATE_EXTRA_JAR_ARGS) \ - -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) . +$(call compile-java,$(HOST_JAVAC),$(PRIVATE_BOOTCLASSPATH)) +$(hide) if [ ! -z "$(PRIVATE_EXTRA_JAR_ARGS)" ]; then jar uf $@ $(PRIVATE_EXTRA_JAR_ARGS); fi endef ########################################################### @@ -1577,9 +1690,12 @@ endef # Copy a single file from one place to another, # preserving permissions and overwriting any existing # file. +# We disable the "-t" option for acp can not handle +# high resolution timestamp correctly on file systems like ext4. +# Therefore copy-file-to-target is the same as copy-file-to-new-target. define copy-file-to-target @mkdir -p $(dir $@) -$(hide) $(ACP) -fpt $< $@ +$(hide) $(ACP) -fp $< $@ endef # The same as copy-file-to-target, but use the local @@ -1646,7 +1762,7 @@ define transform-host-ranlib-copy-hack endef else define transform-host-ranlib-copy-hack -true +@true endef endif @@ -1656,7 +1772,7 @@ define transform-ranlib-copy-hack endef else define transform-ranlib-copy-hack -true +@true endef endif @@ -1668,7 +1784,7 @@ endif # Command to copy the file with acp, if proguard is disabled. define proguard-disabled-commands @echo Copying: $@ -$(hide) $(ACP) $< $@ +$(hide) $(ACP) -fp $< $@ endef # Command to call Proguard @@ -1717,8 +1833,10 @@ endif # spare area for each page). # $(1): the partition data size define image-size-from-data-size -$(shell echo $$(($(1) / $(BOARD_NAND_PAGE_SIZE) * \ - ($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE))))) +$(strip $(eval _isfds_value := $$(shell echo $$$$(($(1) / $(BOARD_NAND_PAGE_SIZE) * \ + ($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE))))))\ +$(if $(filter 0, $(_isfds_value)),$(shell echo $$(($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE)))),$(_isfds_value))\ +$(eval _isfds_value :=)) endef # $(1): The file(s) to check (often $@) @@ -1783,7 +1901,6 @@ define add-radio-file endef define add-radio-file-internal INSTALLED_RADIOIMAGE_TARGET += $$(PRODUCT_OUT)/$(2) -ALL_PREBUILT += $$(PRODUCT_OUT)/$(2) $$(PRODUCT_OUT)/$(2) : $$(LOCAL_PATH)/$(1) | $$(ACP) $$(transform-prebuilt-to-target) endef diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk index 6e0b093..9f44c32 100644 --- a/core/dex_preopt.mk +++ b/core/dex_preopt.mk @@ -4,7 +4,7 @@ #################################### # TODO: replace it with device's BOOTCLASSPATH -DEXPREOPT_BOOT_JARS := core:bouncycastle:ext:framework:android.policy:services:core-junit +DEXPREOPT_BOOT_JARS := core:apache-xml:bouncycastle:ext:framework:android.policy:services:core-junit DEXPREOPT_BOOT_JARS_MODULES := $(subst :, ,$(DEXPREOPT_BOOT_JARS)) DEXPREOPT_BUILD_DIR := $(OUT_DIR) @@ -51,7 +51,7 @@ $(_dbj_odex) : $(_dbj_src_jar) | $(ACP) $(DEXPREOPT) $(DEXOPT) @echo "Dexpreopt Boot Jar: $$@" $(hide) rm -f $$@ $(hide) mkdir -p $$(dir $$@) - $(hide) $(ACP) -fpt $$< $$(PRIVATE_DBJ_JAR) + $(hide) $(ACP) -fp $$< $$(PRIVATE_DBJ_JAR) $$(call dexpreopt-one-file,$$(PRIVATE_DBJ_JAR),$$@) $(_dbj_jar_no_dex) : $(_dbj_src_jar) | $(ACP) $(AAPT) @@ -60,6 +60,7 @@ $(_dbj_jar_no_dex) : $(_dbj_src_jar) | $(ACP) $(AAPT) $(eval _dbj_jar :=) $(eval _dbj_odex :=) +$(eval _dbj_jar_no_dex :=) $(eval _dbj_src_jar :=) endef diff --git a/core/droiddoc.mk b/core/droiddoc.mk index 60b9c83..051c16a 100644 --- a/core/droiddoc.mk +++ b/core/droiddoc.mk @@ -40,11 +40,8 @@ ifeq ($(LOCAL_DROIDDOC_SOURCE_PATH),) LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH) endif -ifeq ($(LOCAL_DROIDDOC_TEMPLATE_DIR),) -LOCAL_DROIDDOC_TEMPLATE_DIR := $(SRC_DROIDDOC_DIR)/templates -endif ifeq ($(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR),) -LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := $(SRC_DROIDDOC_DIR)/templates +LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := $(SRC_DROIDDOC_DIR)/$(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR) endif ifeq ($(LOCAL_DROIDDOC_ASSET_DIR),) @@ -125,26 +122,21 @@ ifneq ($(strip $(LOCAL_DROIDDOC_USE_STANDARD_DOCLET)),true) ## droiddoc_templates := \ - $(shell find $(LOCAL_DROIDDOC_TEMPLATE_DIR) -type f) \ $(shell find $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR) -type f) droiddoc := \ $(HOST_JDK_TOOLS_JAR) \ - $(HOST_OUT_JAVA_LIBRARIES)/droiddoc$(COMMON_JAVA_PACKAGE_SUFFIX) \ - $(HOST_OUT_JAVA_LIBRARIES)/clearsilver$(COMMON_JAVA_PACKAGE_SUFFIX) \ - $(HOST_OUT_SHARED_LIBRARIES)/libclearsilver-jni$(HOST_JNILIB_SUFFIX) + $(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) -$(full_target): PRIVATE_DOCLETPATH := $(HOST_OUT_JAVA_LIBRARIES)/clearsilver$(COMMON_JAVA_PACKAGE_SUFFIX):$(HOST_OUT_JAVA_LIBRARIES)/droiddoc$(COMMON_JAVA_PACKAGE_SUFFIX):$(HOST_OUT_JAVA_LIBRARIES)/apicheck$(COMMON_JAVA_PACKAGE_SUFFIX) +$(full_target): PRIVATE_DOCLETPATH := $(HOST_OUT_JAVA_LIBRARIES)/jsilver$(COMMON_JAVA_PACKAGE_SUFFIX):$(HOST_OUT_JAVA_LIBRARIES)/doclava$(COMMON_JAVA_PACKAGE_SUFFIX) $(full_target): PRIVATE_CURRENT_BUILD := -hdf page.build $(BUILD_ID)-$(BUILD_NUMBER) $(full_target): PRIVATE_CURRENT_TIME := -hdf page.now "$(shell date "+%d %b %Y %k:%M")" -$(full_target): PRIVATE_TEMPLATE_DIR := $(LOCAL_DROIDDOC_TEMPLATE_DIR) $(full_target): PRIVATE_CUSTOM_TEMPLATE_DIR := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR) -$(full_target): PRIVATE_IN_ASSET_DIR := $(LOCAL_DROIDDOC_TEMPLATE_DIR)/$(LOCAL_DROIDDOC_ASSET_DIR) $(full_target): PRIVATE_IN_CUSTOM_ASSET_DIR := $(LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR)/$(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR) $(full_target): PRIVATE_OUT_ASSET_DIR := $(out_dir)/$(LOCAL_DROIDDOC_ASSET_DIR) $(full_target): PRIVATE_OUT_CUSTOM_ASSET_DIR := $(out_dir)/$(LOCAL_DROIDDOC_CUSTOM_ASSET_DIR) ifneq ($(strip $(LOCAL_DROIDDOC_HTML_DIR)),) -$(full_target): PRIVATE_DROIDDOC_HTML_DIR := $(foreach dir,$(LOCAL_DROIDDOC_HTML_DIR),-htmldir $(dir)) +$(full_target): PRIVATE_DROIDDOC_HTML_DIR := -htmldir $(LOCAL_PATH)/$(LOCAL_DROIDDOC_HTML_DIR) else $(full_target): PRIVATE_DROIDDOC_HTML_DIR := endif @@ -160,17 +152,14 @@ $(full_target): $(full_src_files) $(droiddoc_templates) $(droiddoc) $(html_dir_f $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \ $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR)) $(hide) ( \ - LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \ javadoc \ \@$(PRIVATE_SRC_LIST_FILE) \ -J-Xmx1280m \ - -J-Djava.library.path=$(HOST_OUT_SHARED_LIBRARIES) \ $(PRIVATE_PROFILING_OPTIONS) \ -quiet \ - -doclet DroidDoc \ + -doclet com.google.doclava.Doclava \ -docletpath $(PRIVATE_DOCLETPATH) \ -templatedir $(PRIVATE_CUSTOM_TEMPLATE_DIR) \ - -templatedir $(PRIVATE_TEMPLATE_DIR) \ $(PRIVATE_DROIDDOC_HTML_DIR) \ $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \ $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \ @@ -178,12 +167,6 @@ $(full_target): $(full_src_files) $(droiddoc_templates) $(droiddoc) $(html_dir_f -d $(PRIVATE_OUT_DIR) \ $(PRIVATE_CURRENT_BUILD) $(PRIVATE_CURRENT_TIME) \ $(PRIVATE_DROIDDOC_OPTIONS) \ - && rm -rf $(PRIVATE_OUT_ASSET_DIR) \ - && rm -rf $(PRIVATE_OUT_CUSTOM_ASSET_DIR) \ - && mkdir -p $(PRIVATE_OUT_ASSET_DIR) \ - && mkdir -p $(PRIVATE_OUT_CUSTOM_ASSET_DIR) \ - && cp -fr $(PRIVATE_IN_ASSET_DIR)/* $(PRIVATE_OUT_ASSET_DIR)/ \ - && cp -fr $(PRIVATE_IN_CUSTOM_ASSET_DIR)/* $(PRIVATE_OUT_CUSTOM_ASSET_DIR)/ \ && touch -f $@ \ ) || (rm -rf $(PRIVATE_OUT_DIR) $(PRIVATE_SRC_LIST_FILE); exit 45) @@ -204,7 +187,7 @@ $(full_target): $(full_src_files) $(full_java_lib_deps) javadoc \ $(PRIVATE_DROIDDOC_OPTIONS) \ \@$(PRIVATE_SRC_LIST_FILE) \ - -J-Xmx768m \ + -J-Xmx1024m \ $(PRIVATE_PROFILING_OPTIONS) \ $(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \ -sourcepath $(PRIVATE_SOURCE_PATH)$(addprefix :,$(PRIVATE_CLASSPATH)) \ @@ -227,6 +210,8 @@ ALL_DOCS += $(full_target) .PHONY: $(LOCAL_MODULE)-docs $(LOCAL_MODULE)-docs : $(full_target) +ifeq ($(strip $(LOCAL_UNINSTALLABLE_MODULE)),) + # Define a rule to create a zip of these docs. out_zip := $(OUT_DOCS)/$(LOCAL_MODULE)-docs.zip $(out_zip): PRIVATE_DOCS_DIR := $(out_dir) @@ -237,3 +222,5 @@ $(out_zip): $(full_target) $(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_DOCS_DIR) && zip -rq $$F * ) $(call dist-for-goals,docs,$(out_zip)) + +endif diff --git a/core/dumpvar.mk b/core/dumpvar.mk index 58cdc6d..831ed97 100644 --- a/core/dumpvar.mk +++ b/core/dumpvar.mk @@ -9,9 +9,9 @@ ifeq ($(TARGET_SIMULATOR),true) ABP:=$(ABP):$(TARGET_OUT_EXECUTABLES) else # Add the toolchain bin dir if it actually exists - ifneq ($(wildcard $(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin),) + ifneq ($(wildcard $(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin),) # this should be copied to HOST_OUT_EXECUTABLES instead - ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin + ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin endif endif ANDROID_BUILD_PATHS := $(ABP) diff --git a/core/envsetup.mk b/core/envsetup.mk index e4c99d5..800a9bf 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -230,6 +230,7 @@ TARGET_OUT_KEYCHARS := $(TARGET_OUT)/usr/keychars TARGET_OUT_ETC := $(TARGET_OUT)/etc TARGET_OUT_STATIC_LIBRARIES:= $(TARGET_OUT_INTERMEDIATES)/lib TARGET_OUT_NOTICE_FILES:=$(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES +TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages TARGET_OUT_DATA := $(PRODUCT_OUT)/data TARGET_OUT_DATA_EXECUTABLES:= $(TARGET_OUT_EXECUTABLES) @@ -240,6 +241,7 @@ TARGET_OUT_DATA_KEYLAYOUT := $(TARGET_OUT_KEYLAYOUT) TARGET_OUT_DATA_KEYCHARS := $(TARGET_OUT_KEYCHARS) TARGET_OUT_DATA_ETC := $(TARGET_OUT_ETC) TARGET_OUT_DATA_STATIC_LIBRARIES:= $(TARGET_OUT_STATIC_LIBRARIES) +TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/nativetest TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin diff --git a/core/find-jdk-tools-jar.sh b/core/find-jdk-tools-jar.sh index 20d7d4d..e1278c3 100755 --- a/core/find-jdk-tools-jar.sh +++ b/core/find-jdk-tools-jar.sh @@ -3,8 +3,7 @@ if [ "x$ANDROID_JAVA_HOME" != x ] && [ -e "$ANDROID_JAVA_HOME/lib/tools.jar" ] ; else JAVAC=$(which javac) if [ -z "$JAVAC" ] ; then - echo "Please-install-JDK-6,-which-you-can-download-from-java.sun.com" - exit 1 + exit 1 fi while [ -L "$JAVAC" ] ; do LSLINE=$(ls -l "$JAVAC") diff --git a/core/help.mk b/core/help.mk new file mode 100644 index 0000000..9e37f82 --- /dev/null +++ b/core/help.mk @@ -0,0 +1,42 @@ +# +# Copyright (C) 2010 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. +# + +ifeq ($(MAKECMDGOALS),help) +dont_bother := true +endif +ifeq ($(MAKECMDGOALS),out) +dont_bother := true +endif + +.PHONY: help +help: + @echo + @echo "Common make targets:" + @echo "----------------------------------------------------------------------------------" + @echo "droid Default target" + @echo "clean (aka clobber) equivalent to rm -rf out/" + @echo "snod Quickly rebuild the system image from built packages" + @echo "offline-sdk-docs Generate the HTML for the developer SDK docs" + @echo "doc-comment-check-docs Check HTML doc links & validity, without generating HTML" + @echo "libandroid_runtime All the JNI framework stuff" + @echo "framework All the java framework stuff" + @echo "services The system server (Java) and friends" + @echo "help You're reading it right now" + +.PHONY: out +out: + @echo "I'm sure you're nice and all, but no thanks." + diff --git a/core/host_java_library.mk b/core/host_java_library.mk index 27174f2..322d10f 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -27,10 +27,14 @@ ifeq ($(LOCAL_BUILD_HOST_DEX),true) intermediates := $(call local-intermediates-dir) intermediates.COMMON := $(call local-intermediates-dir,COMMON) +full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar +full_classes_jarjar_jar := $(intermediates.COMMON)/classes-jarjar.jar full_classes_jar := $(intermediates.COMMON)/classes.jar built_dex := $(intermediates.COMMON)/classes.dex LOCAL_INTERMEDIATE_TARGETS += \ + $(full_classes_compiled_jar) \ + $(full_classes_jarjar_jar) \ $(full_classes_jar) \ $(built_dex) @@ -47,10 +51,26 @@ $(LOCAL_INTERMEDIATE_TARGETS): \ $(cleantarget): PRIVATE_CLEAN_FILES += $(intermediates.COMMON) -$(full_classes_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) -$(full_classes_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) $(jar_manifest_file) +$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) +$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) $(jar_manifest_file) $(transform-host-java-to-package) +# Run jarjar if necessary, otherwise just copy the file. +ifneq ($(strip $(LOCAL_JARJAR_RULES)),) +$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES) +$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(JARJAR) + @echo JarJar: $@ + $(hide) java -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@ +else +$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP) + @echo Copying: $@ + $(hide) $(ACP) -fp $< $@ +endif + +$(full_classes_jar): $(full_classes_jarjar_jar) | $(ACP) + @echo Copying: $@ + $(hide) $(ACP) -fp $< $@ + $(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON) $(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS) $(built_dex): $(full_classes_jar) $(DX) diff --git a/core/host_native_test.mk b/core/host_native_test.mk new file mode 100644 index 0000000..2a77f1e --- /dev/null +++ b/core/host_native_test.mk @@ -0,0 +1,14 @@ +################################################ +## A thin wrapper around BUILD_HOST_EXECUTABLE +## Common flags for host native tests are added. +################################################ + +LOCAL_CFLAGS += -DGTEST_OS_LINUX -DGTEST_HAS_STD_STRING -O0 -g +LOCAL_C_INCLUDES += \ + bionic/libstdc++/include \ + external/gtest/include \ + external/astl/include +LOCAL_STATIC_LIBRARIES += libgtest_host libgtest_main_host libastl_host +LOCAL_SHARED_LIBRARIES += + +include $(BUILD_HOST_EXECUTABLE) diff --git a/core/java.mk b/core/java.mk index 35b0343..464f772 100644 --- a/core/java.mk +++ b/core/java.mk @@ -88,7 +88,7 @@ endif ifdef LOCAL_PROGUARD_ENABLED proguard_jar_leaf := proguard.classes.jar built_dex_intermediate_leaf := proguard.$(built_dex_intermediate_leaf) -built_dex_leaf := progaurd.classes.dex +built_dex_leaf := proguard.classes.dex else proguard_jar_leaf := noproguard.classes.jar built_dex_intermediate_leaf := noproguard.$(built_dex_intermediate_leaf) @@ -123,6 +123,54 @@ LOCAL_INTERMEDIATE_TARGETS += \ LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src +############################################################### +## .rs files: RenderScript sources to .java files and .bc files +############################################################### +renderscript_sources := $(filter %.rs,$(LOCAL_SRC_FILES)) +# Because names of the java files from RenderScript are unknown until the +# .rs file(s) are compiled, we have to depend on a timestamp file. +RenderScript_file_stamp := +ifneq ($(renderscript_sources),) +renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sources)) +RenderScript_file_stamp := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/RenderScript.stamp +renderscript_intermediate := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript + +# prepend the RenderScript system include path +ifneq ($(filter-out current,$(LOCAL_SDK_VERSION)),) +LOCAL_RENDERSCRIPT_INCLUDES := \ + $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_VERSION)/renderscript/clang-include \ + $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_VERSION)/renderscript/include \ + $(LOCAL_RENDERSCRIPT_INCLUDES) +else +LOCAL_RENDERSCRIPT_INCLUDES := \ + $(TOPDIR)external/clang/lib/Headers \ + $(TOPDIR)frameworks/base/libs/rs/scriptc \ + $(LOCAL_RENDERSCRIPT_INCLUDES) +endif + +ifeq ($(LOCAL_RENDERSCRIPT_CC),) +LOCAL_RENDERSCRIPT_CC := $(LLVM_RS_CC) +endif + +$(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES) +$(RenderScript_file_stamp): PRIVATE_RS_CC := $(LOCAL_RENDERSCRIPT_CC) +$(RenderScript_file_stamp): PRIVATE_RS_SOURCE_FILES := $(renderscript_sources_fullpath) +# By putting the generated java files into $(LOCAL_INTERMEDIATE_SOURCE_DIR), they will be +# automatically found by the java compiling function transform-java-to-classes.jar. +$(RenderScript_file_stamp): PRIVATE_RS_OUTPUT_DIR := $(renderscript_intermediate) +$(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC) + $(transform-renderscripts-to-java-and-bc) + +# include the dependency files (.d) generated by llvm-rs-cc. +renderscript_generated_dep_files := $(addprefix $(renderscript_intermediate)/, \ + $(patsubst %.rs,%.d, $(notdir $(renderscript_sources)))) +-include $(renderscript_generated_dep_files) + +LOCAL_INTERMEDIATE_TARGETS += $(RenderScript_file_stamp) +# Make sure the generated resource will be added to the apk. +LOCAL_RESOURCE_DIR := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/renderscript/res $(LOCAL_RESOURCE_DIR) +endif + # TODO: It looks like the only thing we need from base_rules is # all_java_sources. See if we can get that by adding a # common_java.mk, and moving the include of base_rules.mk to @@ -201,7 +249,7 @@ $(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(JARJAR) else $(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP) @echo Copying: $@ - $(hide) $(ACP) $< $@ + $(hide) $(ACP) -fp $< $@ endif ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true) @@ -239,7 +287,7 @@ endif # Keep a copy of the jar just before proguard processing. $(full_classes_jar): $(full_classes_emma_jar) | $(ACP) @echo Copying: $@ - $(hide) $(ACP) $< $@ + $(hide) $(ACP) -fp $< $@ # Run proguard if necessary, otherwise just copy the file. proguard_dictionary := $(intermediates.COMMON)/proguard_dictionary @@ -301,7 +349,7 @@ $(built_dex_intermediate): $(full_classes_proguard_jar) $(DX) $(transform-classes.jar-to-dex) $(built_dex): $(built_dex_intermediate) | $(ACP) @echo Copying: $@ - $(hide) $(ACP) $< $@ + $(hide) $(ACP) -fp $< $@ ifneq ($(GENERATE_DEX_DEBUG),) $(install-dex-debug) endif diff --git a/core/key_char_map.mk b/core/key_char_map.mk deleted file mode 100644 index 0f112f2..0000000 --- a/core/key_char_map.mk +++ /dev/null @@ -1,27 +0,0 @@ -########################################################### -## Standard rules for building an executable file. -## -## Additional inputs from base_rules.make: -## None. -########################################################### - -ifeq ($(strip $(LOCAL_MODULE_CLASS)),) -LOCAL_MODULE_CLASS := KEYCHARS -endif -ifeq ($(strip $(LOCAL_MODULE_SUFFIX)),) -LOCAL_MODULE_SUFFIX := .bin -endif - -LOCAL_MODULE := $(LOCAL_SRC_FILES) - -include $(BUILD_SYSTEM)/base_rules.mk - -full_src_files := $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) - -$(LOCAL_BUILT_MODULE) : PRIVATE_SRC_FILES := $(full_src_files) - -$(LOCAL_BUILT_MODULE) : $(full_src_files) $(KCM) - @echo KeyCharMap: $@ - @mkdir -p $(dir $@) - $(hide) $(KCM) $(PRIVATE_SRC_FILES) $@ - diff --git a/core/legacy_prebuilts.mk b/core/legacy_prebuilts.mk new file mode 100644 index 0000000..6a999c1 --- /dev/null +++ b/core/legacy_prebuilts.mk @@ -0,0 +1,127 @@ +# +# Copyright (C) 2010 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. +# + +# This is the list of modules grandfathered to use ALL_PREBUILT + +# DO NOT ADD ANY NEW MODULE TO THIS FILE +# +# ALL_PREBUILT modules are hard to control and audit and we don't want +# to add any new such module in the system + +GRANDFATHERED_ALL_PREBUILT := \ + akmd2 \ + am \ + ap_gain.bin \ + audio.conf \ + auto_pairing.conf \ + AVRCP.kl \ + baseline11k.par \ + baseline8k.par \ + baseline.par \ + basic.ok \ + batch \ + bitmap_size.txt \ + blacklist.conf \ + bmgr \ + boolean.g2g \ + bp.img \ + brcm_guci_drv \ + bypassfactory \ + cacerts.bks \ + cdt.bin \ + chat-ril \ + cmu6plus.ok.zip \ + cpcap-key.kl \ + data \ + dbus.conf \ + dev \ + egl.cfg \ + enroll.ok \ + en-US-ttp.data \ + firmware_error.565 \ + firmware_install.565 \ + ftmipcd \ + generic11_f.swimdl \ + generic11.lda \ + generic11_m.swimdl \ + generic8_f.swimdl \ + generic8.lda \ + generic8_m.swimdl \ + generic.swiarb \ + gps.conf \ + gpsconfig.xml \ + gps.stingray.so \ + gralloc.omap3.so \ + gralloc.tegra.so \ + hosts \ + hwcomposer.tegra.so \ + ime \ + init.goldfish.rc \ + init.goldfish.sh \ + init.olympus.rc \ + init.rc \ + init.sholes.rc \ + init.stingray.rc \ + input \ + input.conf \ + kernel \ + lbl \ + libEGL_POWERVR_SGX530_121.so \ + libEGL_tegra.so \ + libGLESv1_CM_POWERVR_SGX530_121.so \ + libGLESv1_CM_tegra.so \ + libGLESv2_POWERVR_SGX530_121.so \ + libGLESv2_tegra.so \ + libmdmctrl.a \ + libmoto_ril.so \ + libpppd_plugin-ril.so \ + libril_rds.so \ + location \ + location.cfg \ + main.conf \ + mbm.bin \ + mbm_consumer.bin \ + mdm_panicd \ + monkey \ + network.conf \ + phone_type_choice.g2g \ + pm \ + pppd-ril \ + pppd-ril.options \ + proc \ + qwerty.kl \ + radio.img \ + rdl.bin \ + RFFspeed_501.bmd \ + RFFstd_501.bmd \ + savebpver \ + sbin \ + sholes-keypad.kl \ + suplcerts.bks \ + svc \ + sys \ + system \ + tcmd \ + ueventd.goldfish.rc \ + ueventd.olympus.rc \ + ueventd.rc \ + ueventd.stingray.rc \ + VoiceDialer.g2g \ + vold.fstab \ + wl1271.bin \ + zoneinfo.dat \ + zoneinfo.idx \ + zoneinfo.version diff --git a/core/main.mk b/core/main.mk index 518fd99..b6c7d1a 100644 --- a/core/main.mk +++ b/core/main.mk @@ -61,6 +61,9 @@ $(DEFAULT_GOAL): .PHONY: FORCE FORCE: +# Targets that provide quick help on the build system. +include $(BUILD_SYSTEM)/help.mk + # Set up various standard variables based on configuration # and host information. include $(BUILD_SYSTEM)/config.mk @@ -148,7 +151,23 @@ endif # These are the modifier targets that don't do anything themselves, but # change the behavior of the build. # (must be defined before including definitions.make) -INTERNAL_MODIFIER_TARGETS := showcommands checkbuild all +INTERNAL_MODIFIER_TARGETS := showcommands checkbuild all incrementaljavac + +.PHONY: incrementaljavac +incrementaljavac: ; + +# WARNING: +# ENABLE_INCREMENTALJAVAC should NOT be enabled by default, because change of +# a Java source file won't trigger rebuild of its dependent Java files. +# You can only enable it by adding "incrementaljavac" to your make command line. +# You are responsible for the correctness of the incremental build. +# This may decrease incremental build time dramatically for large Java libraries, +# such as core.jar, framework.jar, etc. +ENABLE_INCREMENTALJAVAC := +ifneq (,$(filter incrementaljavac, $(MAKECMDGOALS))) +ENABLE_INCREMENTALJAVAC := true +MAKECMDGOALS := $(filter-out incrementaljavac, $(MAKECMDGOALS)) +endif # Bring in standard build system definitions. include $(BUILD_SYSTEM)/definitions.mk @@ -291,6 +310,7 @@ ifneq ($(filter dalvik.gc.type-precise,$(PRODUCT_TAGS)),) ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.dexopt-flags=m=y endif +ifneq ($(BUILD_TINY_ANDROID),true) # Install an apns-conf.xml file if one's not already being installed. ifeq (,$(filter %:system/etc/apns-conf.xml, $(PRODUCT_COPY_FILES))) PRODUCT_COPY_FILES += \ @@ -299,17 +319,6 @@ ifeq (,$(filter %:system/etc/apns-conf.xml, $(PRODUCT_COPY_FILES))) $(warning implicitly installing apns-conf_sdk.xml) endif endif -# If we're on an eng or tests build, but not on the sdk, and we have -# a better one, use that instead. -ifneq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),) - ifndef is_sdk_build - apns_to_use := $(wildcard vendor/google/etc/apns-conf.xml) - ifneq ($(strip $(apns_to_use)),) - PRODUCT_COPY_FILES := \ - $(filter-out %:system/etc/apns-conf.xml,$(PRODUCT_COPY_FILES)) \ - $(strip $(apns_to_use)):system/etc/apns-conf.xml - endif - endif endif ADDITIONAL_BUILD_PROPERTIES += net.bt.name=Android @@ -390,13 +399,16 @@ subdirs := \ development/host \ development/tools/etc1tool \ development/tools/line_endings \ + external/clang \ external/easymock \ external/expat \ external/libpng \ + external/llvm \ external/qemu \ external/sqlite/dist \ external/zlib \ frameworks/base \ + frameworks/compile \ sdk/emulator/mksdcard \ sdk/sdklauncher \ system/core/adb \ @@ -454,7 +466,6 @@ subdirs := \ build/target \ build/tools/acp \ build/tools/apriori \ - build/tools/kcm \ build/tools/soslim \ external/elfcopy \ external/elfutils \ @@ -473,6 +484,13 @@ endif # !BUILD_TINY_ANDROID endif # !SDK_ONLY +# Before we go and include all of the module makefiles, stash away +# the PRODUCT_* values so that later we can verify they are not modified. +stash_product_vars:=true +ifeq ($(stash_product_vars),true) + $(call stash-product-vars, __STASHED) +endif + ifneq ($(ONE_SHOT_MAKEFILE),) # We've probably been invoked by the "mm" shell function # with a subdirectory's makefile. @@ -503,6 +521,26 @@ subdir_makefiles := \ include $(subdir_makefiles) endif # ONE_SHOT_MAKEFILE +ifeq ($(stash_product_vars),true) + $(call assert-product-vars, __STASHED) +endif + +include $(BUILD_SYSTEM)/legacy_prebuilts.mk +ifneq ($(filter-out $(GRANDFATHERED_ALL_PREBUILT),$(strip $(notdir $(ALL_PREBUILT)))),) + $(warning *** Some files have been added to ALL_PREBUILT.) + $(warning *) + $(warning * ALL_PREBUILT is a deprecated mechanism that) + $(warning * should not be used for new files.) + $(warning * As an alternative, use PRODUCT_COPY_FILES in) + $(warning * the appropriate product definition.) + $(warning * build/target/product/core.mk is the product) + $(warning * definition used in all products.) + $(warning *) + $(foreach bad_prebuilt,$(filter-out $(GRANDFATHERED_ALL_PREBUILT),$(strip $(notdir $(ALL_PREBUILT)))),$(warning * unexpected $(bad_prebuilt) in ALL_PREBUILT)) + $(warning *) + $(error ALL_PREBUILT contains unexpected files) +endif + # ------------------------------------------------------------------- # All module makefiles have been included at this point. # ------------------------------------------------------------------- @@ -549,6 +587,7 @@ $(foreach m,$(ALL_MODULES), \ ) m := r := +i := add-required-deps := # ------------------------------------------------------------------- @@ -686,6 +725,10 @@ boottarball: $(INSTALLED_BOOTTARBALL_TARGET) .PHONY: userdataimage userdataimage: $(INSTALLED_USERDATAIMAGE_TARGET) +ifneq (,$(filter userdataimage, $(MAKECMDGOALS))) +$(call dist-for-goals, userdataimage, $(BUILT_USERDATAIMAGE_TARGET)) +endif + .PHONY: userdatatarball userdatatarball: $(INSTALLED_USERDATATARBALL_TARGET) @@ -705,12 +748,15 @@ droidcore: files \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_FILES_FILE) +# dist_files only for putting your library into the dist directory with a full build. +.PHONY: dist_files + ifeq ($(EMMA_INSTRUMENT),true) - $(call dist-for-goals, droid, $(EMMA_META_ZIP)) + $(call dist-for-goals, dist_files, $(EMMA_META_ZIP)) endif -# dist_libraries only for putting your library into the dist directory with a full build. -.PHONY: dist_libraries +# Dist for droid if droid is among the cmd goals, or no cmd goal is given. +ifneq ($(filter droid,$(MAKECMDGOALS))$(filter ||,|$(filter-out $(INTERNAL_MODIFIER_TARGETS),$(MAKECMDGOALS))|),) ifneq ($(TARGET_BUILD_APPS),) # If this build is just for apps, only build apps and not the full system by default. @@ -749,9 +795,10 @@ else # TARGET_BUILD_APPS ) # Building a full system-- the default is to build droidcore -droid: droidcore dist_libraries +droid: droidcore dist_files -endif +endif # TARGET_BUILD_APPS +endif # droid in $(MAKECMDGOALS) .PHONY: droid tests @@ -769,11 +816,25 @@ ALL_SDK_TARGETS := $(INTERNAL_SDK_TARGET) sdk: $(ALL_SDK_TARGETS) ifneq ($(filter sdk win_sdk,$(MAKECMDGOALS)),) $(call dist-for-goals,sdk win_sdk, \ - $(ALL_SDK_TARGETS) \ - $(SYMBOLS_ZIP) \ - $(INSTALLED_BUILD_PROP_TARGET) \ - ) -endif + $(ALL_SDK_TARGETS) \ + $(SYMBOLS_ZIP) \ + $(INSTALLED_BUILD_PROP_TARGET) \ +) +endif + +.PHONY: samplecode +sample_MODULES := $(sort $(call get-tagged-modules,samples)) +sample_APKS_DEST_PATH := $(TARGET_COMMON_OUT_ROOT)/samples +sample_APKS_COLLECTION := \ + $(foreach module,$(sample_MODULES),$(sample_APKS_DEST_PATH)/$(notdir $(module))) +$(foreach module,$(sample_MODULES),$(eval $(call \ + copy-one-file,$(module),$(sample_APKS_DEST_PATH)/$(notdir $(module))))) +sample_ADDITIONAL_INSTALLED := \ + $(filter-out $(modules_to_install) $(modules_to_check) $(ALL_PREBUILT),$(sample_MODULES)) +samplecode: $(sample_APKS_COLLECTION) + @echo "Collect sample code apks: $^" + # remove apks that are not intended to be installed. + rm -f $(sample_ADDITIONAL_INSTALLED) .PHONY: findbugs findbugs: $(INTERNAL_FINDBUGS_HTML_TARGET) $(INTERNAL_FINDBUGS_XML_TARGET) diff --git a/core/native_test.mk b/core/native_test.mk new file mode 100644 index 0000000..3253a5e --- /dev/null +++ b/core/native_test.mk @@ -0,0 +1,18 @@ +########################################### +## A thin wrapper around BUILD_EXECUTABLE +## Common flags for native tests are added. +########################################### + +LOCAL_CFLAGS += -DGTEST_OS_LINUX -DGTEST_HAS_STD_STRING +LOCAL_C_INCLUDES += bionic \ + bionic/libstdc++/include \ + external/gtest/include \ + external/stlport/stlport +LOCAL_STATIC_LIBRARIES += libgtest libgtest_main +LOCAL_SHARED_LIBRARIES += libstlport + +ifndef LOCAL_MODULE_PATH +LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE) +endif + +include $(BUILD_EXECUTABLE) diff --git a/core/package.mk b/core/package.mk index 34792d9..8ca9033 100644 --- a/core/package.mk +++ b/core/package.mk @@ -76,8 +76,6 @@ ifeq ($(LOCAL_MODULE_TAGS),) LOCAL_MODULE_TAGS := optional endif -#$(warning $(LOCAL_PATH) $(LOCAL_PACKAGE_NAME) $(sort $(LOCAL_MODULE_TAGS))) - ifeq ($(filter tests, $(LOCAL_MODULE_TAGS)),) # Force localization check if it's not tagged as tests. LOCAL_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) -z @@ -97,11 +95,6 @@ LOCAL_RESOURCE_DIR := \ $(addprefix $(dir)/, $(LOCAL_RESOURCE_DIR)))) \ $(LOCAL_RESOURCE_DIR) -# this is an app, so add the system libraries to the search path -LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS) - -#$(warning Finding assets for $(LOCAL_ASSET_DIR)) - all_assets := $(call find-subdir-assets,$(LOCAL_ASSET_DIR)) all_assets := $(addprefix $(LOCAL_ASSET_DIR)/,$(patsubst assets/%,%,$(all_assets))) @@ -164,15 +157,9 @@ endif endif endif -# The dex files go in the package, so we don't -# want to install them separately for this module. -old_DONT_INSTALL_DEX_FILES := $(DONT_INSTALL_DEX_FILES) -DONT_INSTALL_DEX_FILES := true ################################# include $(BUILD_SYSTEM)/java.mk ################################# -DONT_INSTALL_DEX_FILES := $(old_DONT_INSTALL_DEX_FILES) -old_DONT_INSTALL_DEX_FILES = full_android_manifest := $(LOCAL_PATH)/$(LOCAL_MANIFEST_FILE) $(LOCAL_INTERMEDIATE_TARGETS): \ @@ -197,21 +184,19 @@ endif $(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \ $(intermediates.COMMON)/public_resources.xml $(R_file_stamp): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file) -$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(AAPT) | $(ACP) +$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" @rm -f $@ $(create-resource-java-files) $(hide) for GENERATED_MANIFEST_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \ -name Manifest.java 2> /dev/null`; do \ - dir=`grep package $$GENERATED_MANIFEST_FILE | head -n1 | \ - awk '{print $$2}' | tr -d ";" | tr . /`; \ + 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; \ done; $(hide) for GENERATED_R_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \ -name R.java 2> /dev/null`; do \ - dir=`grep package $$GENERATED_R_FILE | head -n1 | \ - awk '{print $$2}' | tr -d ";" | tr . /`; \ + 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 \ || exit 31; \ @@ -230,7 +215,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): $(all_res_assets) $(full_android_manifest) $(AAPT) +$(resource_export_package): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) @echo "target Export Resources: $(PRIVATE_MODULE) ($@)" $(create-empty-package) $(add-assets-to-package) @@ -292,6 +277,16 @@ jni_shared_libraries := \ $(addsuffix $(so_suffix), \ $(LOCAL_JNI_SHARED_LIBRARIES))) +# Set the abi directory used by the local JNI shared libraries. +# (Doesn't change how the local shared libraries are compiled, just +# sets where they are stored in the apk.) + +ifeq ($(LOCAL_JNI_SHARED_LIBRARIES_ABI),) + jni_shared_libraries_abi := $(TARGET_CPU_ABI) +else + jni_shared_libraries_abi := $(LOCAL_JNI_SHARED_LIBRARIES_ABI) +endif + # Pick a key to sign the package with. If this package hasn't specified # an explicit certificate, use the default. # Secure release builds will have their packages signed after the fact, @@ -329,8 +324,12 @@ ifeq ($(LOCAL_DEX_PREOPT),true) $(LOCAL_BUILT_MODULE): $(DEXPREOPT_BOOT_ODEXS) | $(DEXPREOPT) $(DEXOPT) endif $(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries) +$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abi) ifneq ($(TARGET_BUILD_APPS),) # Include all resources for unbundled apps. + LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true +endif +ifeq ($(LOCAL_AAPT_INCLUDE_ALL_RESOURCES),true) $(LOCAL_BUILT_MODULE): PRODUCT_AAPT_CONFIG := endif $(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) diff --git a/core/pathmap.mk b/core/pathmap.mk index fe7ba1a..428594f 100644 --- a/core/pathmap.mk +++ b/core/pathmap.mk @@ -89,6 +89,7 @@ FRAMEWORKS_BASE_SUBDIRS := \ wifi \ vpn \ keystore \ + icu4j \ voip \ ) diff --git a/core/phony_package.mk b/core/phony_package.mk new file mode 100644 index 0000000..3644db8 --- /dev/null +++ b/core/phony_package.mk @@ -0,0 +1,17 @@ +ifneq ($(strip $(LOCAL_SRC_FILES)),) +$(error LOCAL_SRC_FILES are not allowed for phony packages) +endif + +ifeq ($(strip $(LOCAL_REQUIRED_MODULES)),) +$(error LOCAL_REQUIRED_MODULES is required for phony packages) +endif + +LOCAL_MODULE_CLASS := FAKE +LOCAL_MODULE_SUFFIX := -timestamp + +include $(BUILD_SYSTEM)/base_rules.mk + +$(LOCAL_BUILT_MODULE): + $(hide) echo "Fake: $@" + $(hide) mkdir -p $(dir $@) + $(hide) touch $@ diff --git a/core/prelink-linux-arm.map b/core/prelink-linux-arm.map index 97462d4..41cd8cd 100644 --- a/core/prelink-linux-arm.map +++ b/core/prelink-linux-arm.map @@ -19,27 +19,29 @@ # # note: look at the LOAD sections in the library header: # -# arm-eabi-objdump -x <lib> +# arm-linux-androideabi-objdump -x <lib> # # core system libraries -libdl.so 0xAFF00000 # [<64K] -libc.so 0xAFD00000 # [~2M] -libstdc++.so 0xAFC00000 # [<64K] -libm.so 0xAFB00000 # [~1M] -liblog.so 0xAFA00000 # [<64K] -libcutils.so 0xAF900000 # [~1M] -libthread_db.so 0xAF800000 # [<64K] -libz.so 0xAF700000 # [~1M] -libevent.so 0xAF600000 # [???] -libssl.so 0xAF400000 # [~2M] -libcrypto.so 0xAF000000 # [~4M] -libsysutils.so 0xAEF00000 # [~1M] +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 0xAEE00000 # [~1M] -audio.so 0xAED00000 # [~1M] -input.so 0xAEC00000 # [~1M] +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] @@ -91,7 +93,6 @@ libjnigraphics.so 0xA9D00000 # [<64K] libskiagl.so 0xA9C00000 # [~1M] # audio -libFLAC.so 0xA9B00000 # [???] libaudiopolicy.so 0xA9A00000 # [~1M] libeffects.so 0xA9980000 # [<64K] libaudioeffect_jni.so 0xA9900000 # [<64K] @@ -108,77 +109,79 @@ libSR_AudioIn.so 0xA8E00000 # [~1M] for external/srec libaudioflinger.so 0xA8D00000 # [~1M] # assorted system libraries -libsqlite.so 0xA8B80000 # [~1.5M] -libexpat.so 0xA8B00000 # [~0.5M] -libwebcore.so 0xA8300000 # [~8M] -libbinder.so 0xA8200000 # [~1M] -libutils.so 0xA8100000 # [~1M] -libcameraservice.so 0xA8000000 # [~1M] -libhardware.so 0xA7F00000 # [<64K] -libhardware_legacy.so 0xA7E00000 # [~1M] -libapp_process.so 0xA7D00000 # [???] -libsystem_server.so 0xA7C00000 # [~1M] -libime.so 0xA7B00000 # [???] -libgps.so 0xA7A00000 # [~1M] -libcamera.so 0xA7900000 # [~1M] -liboemcamera.so 0xA7700000 # [~2M] -libdiskconfig.so 0xA7600000 # [<64K] -libemoji.so 0xA7500000 # [<64K] -libjni_latinime.so 0xA7400000 # [~1M] -libjni_pinyinime.so 0xA7300000 # [~1M] -libttssynthproxy.so 0xA7200000 # [~1M] for frameworks/base -libttspico.so 0xA7000000 # [~2M] for external/svox +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 0xA6F00000 # [???] -libpvasfreg.so 0xA6E00000 # [???] -libomx_sharedlibrary.so 0xA6D00000 # [~1M] -libopencore_download.so 0xA6C00000 # [~1M] -libopencore_downloadreg.so 0xA6B00000 # [~1M] -libopencore_net_support.so 0xA6800000 # [~3M] -libopencore_rtsp.so 0xA6200000 # [~6M] -libopencore_rtspreg.so 0xA6100000 # [~1M] -libopencore_author.so 0xA5D00000 # [~4M] -libomx_aacdec_sharedlibrary.so 0xA5B00000 # [~2M] -libomx_amrdec_sharedlibrary.so 0xA5A00000 # [~1M] -libomx_amrenc_sharedlibrary.so 0xA5900000 # [~1M] -libomx_avcdec_sharedlibrary.so 0xA5800000 # [~1M] -libomx_avcenc_sharedlibrary.so 0xA5700000 # [???] -libomx_m4vdec_sharedlibrary.so 0xA5600000 # [~1M] -libomx_m4venc_sharedlibrary.so 0xA5500000 # [???] -libomx_mp3dec_sharedlibrary.so 0xA5400000 # [~1M] -libopencore_mp4local.so 0xA5200000 # [~2M] -libopencore_mp4localreg.so 0xA5100000 # [~1M] -libopencore_player.so 0xA4800000 # [~9M] +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 0xA4700000 # [<64K] -libOmxCore.so 0xA4600000 # [<64K] -libOmxMpeg4Dec.so 0xA4500000 # [~1M] -libOmxH264Dec.so 0xA4400000 # [~1M] -libOmxVidEnc.so 0xA4300000 # [~1M] -libopencorehw.so 0xA4200000 # [~1M] -libOmxVdec.so 0xA4100000 # [~1M] -libmm-omxcore.so 0xA4000000 # [<64K] +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 0xA3900000 # [~7M] -libqcomm_omx.so 0xA3800000 # [<64K] +libopencore_common.so 0xA3500000 # [~7M] +libqcomm_omx.so 0xA3400000 # [<64K] # stagefright libraries -libstagefright_amrnb_common.so 0xA3700000 # [~1M] -libstagefright_avc_common.so 0xA3600000 # [~1M] -libstagefright_color_conversion.so 0xA3500000 # [<64K] -libstagefright_omx.so 0xA3400000 # [~1M] -libstagefrighthw.so 0xA3300000 # [~1M] -libstagefright.so 0xA2F00000 # [~4M] +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 0xA2E00000 # [~1M] -libhtc_acoustic.so 0xA2D00000 # [<64K] -libhtc_ril.so 0xA2C00000 # [~1M] -liblvmxipc.so 0xA2B00000 # [~1M] for vendor/nxp -libreference-cdma-sms.so 0xA2A00000 # [<64K] for hardware/ril +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 # [???] @@ -211,7 +214,5 @@ 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 -network.so 0x9C9C0000 # [~256K] -bluetooth-health.so 0x9C980000 # [~256K] -libglib.so 0x9C900000 # [~512K] -libbtio.so 0x9C8E0000 # [~128K] +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 4a0ee01..c2b398e 100644 --- a/core/product.mk +++ b/core/product.mk @@ -71,6 +71,7 @@ _product_var_list := \ PRODUCT_CHARACTERISTICS \ PRODUCT_COPY_FILES \ PRODUCT_OTA_PUBLIC_KEYS \ + PRODUCT_EXTRA_RECOVERY_KEYS \ PRODUCT_PACKAGE_OVERLAYS \ DEVICE_PACKAGE_OVERLAYS \ PRODUCT_CONTRIBUTORS_FILE \ @@ -187,3 +188,73 @@ endef define resolve-short-product-name $(strip $(call _resolve-short-product-name,$(1))) endef + + +_product_stash_var_list := $(_product_var_list) \ + TARGET_ARCH \ + TARGET_ARCH_VARIANT \ + TARGET_BOARD_PLATFORM \ + TARGET_BOARD_PLATFORM_GPU \ + TARGET_BOOTLOADER_BOARD_NAME \ + TARGET_COMPRESS_MODULE_SYMBOLS \ + TARGET_PRELINK_MODULE \ + TARGET_NO_BOOTLOADER \ + TARGET_NO_KERNEL \ + TARGET_NO_RECOVERY \ + TARGET_NO_RADIOIMAGE \ + TARGET_HARDWARE_3D \ + TARGET_PROVIDES_INIT_RC \ + TARGET_CPU_ABI \ + TARGET_CPU_ABI2 \ + TARGET_CPU_SMP \ + + +_product_stash_var_list += \ + BOARD_WPA_SUPPLICANT_DRIVER \ + BOARD_WLAN_DEVICE \ + BOARD_USES_GENERIC_AUDIO \ + BOARD_KERNEL_CMDLINE \ + BOARD_KERNEL_BASE \ + BOARD_HAVE_BLUETOOTH \ + BOARD_HAVE_BLUETOOTH_BCM \ + BOARD_VENDOR_QCOM_AMSS_VERSION \ + BOARD_VENDOR_USE_AKMD \ + BOARD_EGL_CFG \ + BOARD_BOOTIMAGE_PARTITION_SIZE \ + BOARD_RECOVERYIMAGE_PARTITION_SIZE \ + BOARD_SYSTEMIMAGE_PARTITION_SIZE \ + BOARD_USERDATAIMAGE_PARTITION_SIZE \ + BOARD_FLASH_BLOCK_SIZE \ + BOARD_SYSTEMIMAGE_PARTITION_SIZE \ + BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE \ + BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION \ + BOARD_INSTALLER_CMDLINE \ + + +# +# Stash vaues of the variables in _product_stash_var_list. +# $(1): Renamed prefix +# +define stash-product-vars +$(foreach v,$(_product_stash_var_list), \ + $(eval $(strip $(1))_$(call rot13,$(v)):=$$($$(v))) \ + ) +endef + +# +# Assert that the the variable stashed by stash-product-vars remains untouched. +# $(1): The prefix as supplied to stash-product-vars +# +define assert-product-vars +$(strip \ + $(eval changed_variables:=) + $(foreach v,$(_product_stash_var_list), \ + $(if $(call streq,$($(v)),$($(strip $(1))_$(call rot13,$(v)))),, \ + $(eval $(warning $(v) has been modified: $($(v)))) \ + $(eval $(warning previous value: $($(strip $(1))_$(call rot13,$(v))))) \ + $(eval changed_variables := $(changed_variables) $(v))) \ + ) \ + $(if $(changed_variables),\ + $(eval $(error The following variables have been changed: $(changed_variables))),) +) +endef diff --git a/core/product_config.mk b/core/product_config.mk index 70ac894..4f4f97d 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -194,8 +194,11 @@ else $(call import-products, $(get-all-product-makefiles)) endif # TARGET_BUILD_APPS $(check-all-products) -#$(dump-products) -#$(error done) + +ifneq ($(filter dump-products, $(MAKECMDGOALS)),) +$(dump-products) +$(error done) +endif # Convert a short name like "sooner" into the path to the product # file defining that product. @@ -300,6 +303,10 @@ ADDITIONAL_BUILD_PROPERTIES := \ PRODUCT_OTA_PUBLIC_KEYS := $(sort \ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OTA_PUBLIC_KEYS)) +PRODUCT_EXTRA_RECOVERY_KEYS := $(sort \ + $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_EXTRA_RECOVERY_KEYS)) + + # --------------------------------------------------------------- # Simulator overrides ifeq ($(TARGET_PRODUCT),sim) diff --git a/core/shared_library.mk b/core/shared_library.mk index 0393d17..940fe61 100644 --- a/core/shared_library.mk +++ b/core/shared_library.mk @@ -34,7 +34,9 @@ my_target_libgcc := $(TARGET_LIBGCC) my_target_crtbegin_so_o := $(TARGET_CRTBEGIN_SO_O) my_target_crtend_so_o := $(TARGET_CRTEND_SO_O) ifdef LOCAL_NDK_VERSION -my_target_global_ld_dirs += -L$(my_ndk_version_root)/usr/lib +my_target_global_ld_dirs += $(addprefix -L, $(patsubst %/,%,$(dir $(my_ndk_stl_shared_lib_fullpath))) \ + $(my_ndk_version_root)/usr/lib) +my_target_global_ldflags := $(my_ndk_stl_shared_lib) $(my_target_global_ldflags) my_target_crtbegin_so_o := $(wildcard $(my_ndk_version_root)/usr/lib/crtbegin_so.o) my_target_crtend_so_o := $(wildcard $(my_ndk_version_root)/usr/lib/crtend_so.o) endif diff --git a/core/tasks/apicheck.mk b/core/tasks/apicheck.mk index 740668c..99a3227 100644 --- a/core/tasks/apicheck.mk +++ b/core/tasks/apicheck.mk @@ -19,6 +19,10 @@ 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. @@ -32,7 +36,7 @@ ifneq ($(BUILD_TINY_ANDROID), true) define check-api $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp: $(2) $(3) $(APICHECK) @echo "Checking API:" $(1) - $(hide) ( $(APICHECK) $(4) $(2) $(3) || ( $(5) ; exit 38 ) ) + $(hide) ( $(APICHECK) -JXmx1024m -J"classpath $(APICHECK_CLASSPATH)" $(4) $(2) $(3) || ( $(5) ; exit 38 ) ) $(hide) mkdir -p $$(dir $$@) $(hide) touch $$@ checkapi: $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/$(strip $(1))-timestamp diff --git a/core/tasks/cts.mk b/core/tasks/cts.mk index 8c36ef6..8d7667b 100644 --- a/core/tasks/cts.mk +++ b/core/tasks/cts.mk @@ -28,6 +28,10 @@ CTS_HOST_JAR := $(HOST_OUT_JAVA_LIBRARIES)/cts.jar DDMLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/ddmlib-prebuilt.jar junit_host_jar := $(HOST_OUT_JAVA_LIBRARIES)/junit.jar HOSTTESTLIB_JAR := $(HOST_OUT_JAVA_LIBRARIES)/hosttestlib.jar +TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/tradefed-prebuilt.jar +CTS_TF_JAR := $(HOST_OUT_JAVA_LIBRARIES)/cts-tradefed.jar +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 \ @@ -41,21 +45,21 @@ CTS_CORE_CASE_LIST := \ -include cts/CtsTestCaseList.mk CTS_CASE_LIST := $(CTS_CORE_CASE_LIST) $(CTS_TEST_CASE_LIST) -DEFAULT_TEST_PLAN := $(PRIVATE_DIR)/resource/plans +DEFAULT_TEST_PLAN := $(cts_dir)/$(cts_name)/resource/plans $(cts_dir)/all_cts_files_stamp: PRIVATE_JUNIT_HOST_JAR := $(junit_host_jar) -include cts/CtsHostLibraryList.mk -$(cts_dir)/all_cts_files_stamp: $(CTS_CASE_LIST) $(junit_host_jar) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(ACP) +$(cts_dir)/all_cts_files_stamp: $(CTS_CASE_LIST) $(junit_host_jar) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(ACP) # Make necessary directory for CTS - @rm -rf $(PRIVATE_CTS_DIR) - @mkdir -p $(TMP_DIR) - @mkdir -p $(PRIVATE_DIR)/docs - @mkdir -p $(PRIVATE_DIR)/tools - @mkdir -p $(PRIVATE_DIR)/repository/testcases - @mkdir -p $(PRIVATE_DIR)/repository/plans + $(hide) rm -rf $(PRIVATE_CTS_DIR) + $(hide) mkdir -p $(TMP_DIR) + $(hide) mkdir -p $(PRIVATE_DIR)/docs + $(hide) mkdir -p $(PRIVATE_DIR)/tools + $(hide) mkdir -p $(PRIVATE_DIR)/repository/testcases + $(hide) mkdir -p $(PRIVATE_DIR)/repository/plans # Copy executable and JARs to CTS directory - $(hide) $(ACP) -fp $(CTS_HOST_JAR) $(CTS_EXECUTABLE_PATH) $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(PRIVATE_DIR)/tools + $(hide) $(ACP) -fp $(CTS_HOST_JAR) $(CTS_EXECUTABLE_PATH) $(DDMLIB_JAR) $(PRIVATE_JUNIT_HOST_JAR) $(HOSTTESTLIB_JAR) $(CTS_HOST_LIBRARY_JARS) $(TF_JAR) $(CTS_TF_JAR) $(CTS_TF_EXEC_PATH) $(CTS_TF_README_PATH) $(PRIVATE_DIR)/tools # Change mode of the executables $(hide) chmod ug+rwX $(PRIVATE_DIR)/tools/$(notdir $(CTS_EXECUTABLE_PATH)) $(foreach apk,$(CTS_CASE_LIST), \ @@ -165,7 +169,7 @@ $(INTERNAL_CTS_TARGET): PRIVATE_CTS_DIR := $(cts_dir) $(INTERNAL_CTS_TARGET): PRIVATE_DIR := $(cts_dir)/$(cts_name) $(INTERNAL_CTS_TARGET): TMP_DIR := $(cts_dir)/temp $(INTERNAL_CTS_TARGET): $(cts_dir)/all_cts_files_stamp $(DEFAULT_TEST_PLAN) $(CORE_VM_TEST_DESC) - @echo "Package CTS: $@" + $(hide) echo "Package CTS: $@" $(hide) cd $(dir $@) && zip -rq $(notdir $@) $(PRIVATE_NAME) .PHONY: cts diff --git a/core/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk index 2641a31..abbf999 100644 --- a/core/tasks/sdk-addon.mk +++ b/core/tasks/sdk-addon.mk @@ -95,15 +95,19 @@ $(full_target): $(sdk_addon_deps) | $(ACP) .PHONY: sdk_addon sdk_addon: $(full_target) -# Keep the name of the addon final zip around for sdk_repo. -# This is used by development/build/tools/sdk_repo.mk. +ifneq ($(sdk_repo_goal),) +# If we're building the sdk_repo, keep the name of the addon zip +# around so that development/build/tools/sdk_repo.mk can dist it +# at the appropriate location. ADDON_SDK_ZIP := $(full_target) - +else +# When not building an sdk_repo, just dist the addon zip file +# as-is. $(call dist-for-goals, sdk_addon, $(full_target)) +endif else # addon_name ifneq ($(filter sdk_addon,$(MAKECMDGOALS)),) $(error Trying to build sdk_addon, but product '$(INTERNAL_PRODUCT)' does not define one) endif endif # addon_name - diff --git a/core/user_tags.mk b/core/user_tags.mk index 3eade8a..120a502 100644 --- a/core/user_tags.mk +++ b/core/user_tags.mk @@ -38,6 +38,7 @@ GRANDFATHERED_USER_MODULES += \ am \ android \ android-common \ + android-common-carousel \ android.policy \ androidprefs \ android.test.runner \ @@ -58,6 +59,7 @@ GRANDFATHERED_USER_MODULES += \ bb2sym \ bb_dump \ bbprof \ + bcc \ bison \ bluetoothd \ bmgr \ @@ -67,12 +69,13 @@ GRANDFATHERED_USER_MODULES += \ cfassembler \ check_stack \ check_trace \ - clearsilver \ cmu2nuance \ com.android.inputmethod.pinyin.lib \ com.android.phone.common \ + com.android.vcard \ commons-compress-1.0 \ copybit.qsd8k \ + copybit.s5pc110 \ coverage \ cpufeatures \ cts \ @@ -81,12 +84,13 @@ GRANDFATHERED_USER_MODULES += \ dasm \ dbus-daemon \ ddmlib \ - ddmlibTests \ ddmlib-prebuilt \ + ddmlibTests \ ddms \ ddmuilib \ debuggerd \ descGen \ + dexgen \ dexpreopt \ dex-tools \ dhcpcd \ @@ -94,8 +98,8 @@ GRANDFATHERED_USER_MODULES += \ dhcpcd-run-hooks \ dictTest \ dnsmasq \ + doclava \ draw9patch \ - droiddoc \ dumpeventlog \ dumpkey \ dump_regions \ @@ -105,7 +109,9 @@ GRANDFATHERED_USER_MODULES += \ e2fsck \ e2fsck_host \ easymock \ + easymocklib \ edify \ + elftree \ emmalib \ emulator \ emulator-arm \ @@ -147,9 +153,7 @@ GRANDFATHERED_USER_MODULES += \ ime \ init \ input \ - installd \ - iptables \ - ip-up-vpn \ + ip \ iself \ isprelinked \ jarjar \ @@ -164,7 +168,6 @@ GRANDFATHERED_USER_MODULES += \ jsr305lib \ junit \ jython \ - kcm \ keystore \ kxml2-2.3.0 \ launch-wrapper \ @@ -175,7 +178,6 @@ GRANDFATHERED_USER_MODULES += \ layoutopt \ liba2dp \ libabi \ - libacc \ libandroid \ libandroid_runtime \ libandroid_servers \ @@ -224,14 +226,14 @@ GRANDFATHERED_USER_MODULES += \ libETC1 \ libexif \ libext \ - libext2fs \ - libext2fs_host \ libext2_blkid \ libext2_blkid_host \ libext2_com_err \ libext2_com_err_host \ libext2_e2p \ libext2_e2p_host \ + libext2fs \ + libext2fs_host \ libext2_profile \ libext2_profile_host \ libext2_uuid \ @@ -247,7 +249,6 @@ GRANDFATHERED_USER_MODULES += \ libGLESv1_CM \ libGLESv2 \ libglib \ - libglib_static \ libgui \ libhardware \ libhardware_legacy \ @@ -268,9 +269,11 @@ GRANDFATHERED_USER_MODULES += \ libmedia_jni \ libmediaplayerservice \ libmincrypt \ + libminelf \ libminui \ libminzip \ libmtdutils \ + libmtp \ libmusicbundle \ libneo_cgi \ libneo_cs \ @@ -283,17 +286,20 @@ GRANDFATHERED_USER_MODULES += \ libOpenSLESUT \ libpcap \ libpixelflinger \ - libpixelflinger_armv6 \ libpixelflinger_static \ libpng \ libpopt \ libpower \ + libprotobuf-cpp-2.3.0-full \ + libprotobuf-cpp-2.3.0-lite \ + libprotobuf-java-2.3.0-lite \ + libprotobuf-java-2.3.0-micro \ librecovery_ui_htc \ - libreference-cdma-sms \ libreference-ril \ libreverb \ libreverbwrapper \ libril \ + librilproto-java \ librpc \ librtp_jni \ libsafe_iop \ @@ -347,6 +353,7 @@ GRANDFATHERED_USER_MODULES += \ libstagefright_rtsp \ libstagefright_vorbisdec \ libstagefright_vpxdec \ + libstagefright_yuv \ libstdc++ \ libstlport \ libstlport_static \ @@ -364,6 +371,7 @@ GRANDFATHERED_USER_MODULES += \ libttssynthproxy \ libui \ libunz \ + libusbhost \ libutil \ libutils \ libv8 \ @@ -380,11 +388,11 @@ GRANDFATHERED_USER_MODULES += \ lights.qsd8k \ line_endings \ linker \ + llvm-rs-link \ localize \ logcat \ logwrapper \ lsd \ - mahimahi-keypad.kcm \ make_cfst \ makedict \ make_ext4fs \ @@ -402,9 +410,11 @@ GRANDFATHERED_USER_MODULES += \ mkstubs \ mkuserimg.sh \ mkyaffs2image \ + mockrilcontroller \ monkey \ monkeyrunner \ MonkeyRunnerTest \ + mtp \ mtpd \ ndc \ netcfg \ @@ -433,8 +443,6 @@ GRANDFATHERED_USER_MODULES += \ q2dm \ q2g \ qemu-android \ - qwerty2.kcm \ - qwerty.kcm \ racoon \ read_addr \ read_method \ @@ -448,6 +456,7 @@ GRANDFATHERED_USER_MODULES += \ run-as \ runtime \ schedtest \ + screenshot \ screenshot2 \ sdcard \ sdklauncher \ @@ -464,7 +473,6 @@ GRANDFATHERED_USER_MODULES += \ service \ servicemanager \ services \ - sh \ sig \ sig-check \ sig-create \ @@ -482,6 +490,7 @@ GRANDFATHERED_USER_MODULES += \ swing-worker-1.1 \ swt \ system_server \ + tblgen \ tc \ temp_layoutlib \ test_g2g \ @@ -493,16 +502,13 @@ GRANDFATHERED_USER_MODULES += \ traceview \ tune2fs \ tune2fs_host \ - tuttle2.kcm \ uix \ usbtest \ vdc \ vm-tests \ vold \ wdsclient \ + whisperd \ wpa_supplicant \ - wpa_supplicant.conf \ - xmlwriter \ yuv420sp2rgb \ zipalign - diff --git a/core/version_defaults.mk b/core/version_defaults.mk index b38efe3..6216463 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -53,7 +53,7 @@ ifeq "" "$(PLATFORM_SDK_VERSION)" # intermediate builds). During development, this number remains at the # SDK version the branch is based on and PLATFORM_VERSION_CODENAME holds # the code-name of the new development work. - PLATFORM_SDK_VERSION := 10 + PLATFORM_SDK_VERSION := 13 endif ifeq "" "$(PLATFORM_VERSION_CODENAME)" @@ -96,3 +96,4 @@ ifeq "" "$(BUILD_NUMBER)" # anyone trying to parse it as an integer will probably get "0". BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S) endif + |