Loading core/binary.mk +75 −10 Original line number Diff line number Diff line Loading @@ -5,6 +5,31 @@ ## The list of object files is exported in $(all_objects). ########################################################### ###################################### ## Sanity check for LOCAL_NDK_VERSION ###################################### my_ndk_version_root := ifdef LOCAL_NDK_VERSION ifdef LOCAL_IS_HOST_MODULE $(error $(LOCAL_PATH): LOCAL_NDK_VERSION can not be used in host module) endif ifneq ($(filter-out SHARED_LIBRARIES STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS)),) $(error $(LOCAL_PATH): LOCAL_NDK_VERSION can only be used to build target shared/static libraries, \ while your module is of class $(LOCAL_MODULE_CLASS)) endif ifeq ($(filter $(LOCAL_NDK_VERSION),$(TARGET_AVAILABLE_NDK_VERSIONS)),) $(error $(LOCAL_PATH): Invalid LOCAL_NDK_VERSION '$(LOCAL_NDK_VERSION)' \ Choices are $(TARGET_AVAILABLE_NDK_VERSIONS)) endif ifndef LOCAL_SDK_VERSION $(error $(LOCAL_PATH): LOCAL_NDK_VERSION must be defined with LOCAL_SDK_VERSION) endif my_ndk_version_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r$(LOCAL_NDK_VERSION)/$(BUILD_OS)/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 endif ####################################### include $(BUILD_SYSTEM)/base_rules.mk ####################################### Loading @@ -18,6 +43,26 @@ ifeq ($(strip $(LOCAL_NO_FDO_SUPPORT)),) LOCAL_LDFLAGS += $(TARGET_FDO_CFLAGS) endif ########################################################### ## Define PRIVATE_ variables from global vars ########################################################### ifdef LOCAL_NDK_VERSION my_target_project_includes := my_target_c_inclues := $(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)) else my_target_project_includes := $(TARGET_PROJECT_INCLUDES) my_target_c_inclues := $(TARGET_C_INCLUDES) my_target_global_cflags := $(TARGET_GLOBAL_CFLAGS) my_target_global_cppflags := $(TARGET_GLOBAL_CPPFLAGS) endif $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_PROJECT_INCLUDES := $(my_target_project_includes) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_C_INCLUDES := $(my_target_c_inclues) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags) ########################################################### ## Define PRIVATE_ variables used by multiple module types ########################################################### Loading Loading @@ -310,11 +355,13 @@ include $(BUILD_COPY_HEADERS) # to by supplying a LOCAL_SYSTEM_SHARED_LIBRARIES value. One would # supply that, for example, when building libc itself. ########################################################### ifndef LOCAL_IS_HOST_MODULE ifdef LOCAL_IS_HOST_MODULE ifeq ($(LOCAL_SYSTEM_SHARED_LIBRARIES),none) LOCAL_SHARED_LIBRARIES += $($(my_prefix)DEFAULT_SYSTEM_SHARED_LIBRARIES) LOCAL_SYSTEM_SHARED_LIBRARIES := endif else LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) ifeq ($(LOCAL_SYSTEM_SHARED_LIBRARIES),none) LOCAL_SYSTEM_SHARED_LIBRARIES := $($(my_prefix)DEFAULT_SYSTEM_SHARED_LIBRARIES) endif endif Loading Loading @@ -373,11 +420,35 @@ endif so_suffix := $($(my_prefix)SHLIB_SUFFIX) a_suffix := $($(my_prefix)STATIC_LIB_SUFFIX) ifdef LOCAL_NDK_VERSION built_shared_libraries := \ $(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(LOCAL_SHARED_LIBRARIES))) # Get the list of INSTALLED libraries. Strip off the various # intermediates directories and point to the common lib dirs. 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))) built_shared_libraries += $(my_system_shared_libraries_fullpath) LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) else LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) built_shared_libraries := \ $(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(LOCAL_SHARED_LIBRARIES))) installed_shared_libraries := \ $(addprefix $($(my_prefix)OUT_SHARED_LIBRARIES)/, \ $(notdir $(built_shared_libraries))) endif built_static_libraries := \ $(foreach lib,$(LOCAL_STATIC_LIBRARIES), \ $(call intermediates-dir-for, \ Loading @@ -388,12 +459,6 @@ built_whole_libraries := \ $(call intermediates-dir-for, \ STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE))/$(lib)$(a_suffix)) # Get the list of INSTALLED libraries. Strip off the various # intermediates directories and point to the common lib dirs. installed_shared_libraries := \ $(addprefix $($(my_prefix)OUT_SHARED_LIBRARIES)/, \ $(notdir $(built_shared_libraries))) # We don't care about installed static libraries, since the # libraries have already been linked into the module at that point. # We do, however, care about the NOTICE files for any static Loading core/clear_vars.mk +1 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,7 @@ LOCAL_ALLOW_UNDEFINED_SYMBOLS:= LOCAL_DX_FLAGS:= LOCAL_CERTIFICATE:= LOCAL_SDK_VERSION:= LOCAL_NDK_VERSION:= LOCAL_NO_EMMA_INSTRUMENT:= LOCAL_NO_EMMA_COMPILE:= LOCAL_PROGUARD_ENABLED:= # '',optonly,full,custom Loading core/combo/TARGET_linux-arm.mk +4 −4 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ $(TARGET_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) -Wl,-T,$(BUILD_SYSTEM)/armelf.xsc \ -Wl,--gc-sections \ -Wl,-shared,-Bsymbolic \ $(TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ Loading @@ -223,9 +223,9 @@ $(TARGET_CXX) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDFLAGS) \ $(TARGET_GLOBAL_LDFLAGS) \ $(TARGET_FDO_LIB) \ $(TARGET_LIBGCC) $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_TARGET_FDO_LIB) \ $(PRIVATE_TARGET_LIBGCC) endef define transform-o-to-executable-inner Loading core/combo/TARGET_linux-sh.mk +4 −4 Original line number Diff line number Diff line Loading @@ -116,8 +116,8 @@ $(TARGET_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) -Wl,-T,$(BUILD_SYSTEM)/shlelf.xsc \ -Wl,--gc-sections -Wl,-z,norelro \ -Wl,-shared,-Bsymbolic \ $(TARGET_GLOBAL_LD_DIRS) \ $(TARGET_SOBEGIN) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_SOBEGIN) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ Loading @@ -127,8 +127,8 @@ $(TARGET_CXX) \ -o $@ \ $(PRIVATE_LDFLAGS) \ $(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \ $(TARGET_LIBGCC) \ $(TARGET_SOEND) $(PRIVATE_TARGET_LIBGCC) \ $(PRIVATE_TARGET_SOEND) endef define transform-o-to-executable-inner Loading core/combo/TARGET_linux-x86.mk +5 −5 Original line number Diff line number Diff line Loading @@ -104,12 +104,12 @@ TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm TARGET_CUSTOM_LD_COMMAND := true define transform-o-to-shared-lib-inner $(TARGET_CXX) \ $(TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ -shared -Bsymbolic \ -fPIC -march=i686 \ $(TARGET_GLOBAL_LD_DIRS) \ $(TARGET_CRTBEGIN_SO_O) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_CRTBEGIN_SO_O) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ Loading @@ -118,8 +118,8 @@ $(TARGET_CXX) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDFLAGS) \ $(TARGET_LIBGCC) \ $(TARGET_CRTEND_SO_O) $(PRIVATE_TARGET_LIBGCC) \ $(PRIVATE_TARGET_CRTEND_SO_O) endef Loading Loading
core/binary.mk +75 −10 Original line number Diff line number Diff line Loading @@ -5,6 +5,31 @@ ## The list of object files is exported in $(all_objects). ########################################################### ###################################### ## Sanity check for LOCAL_NDK_VERSION ###################################### my_ndk_version_root := ifdef LOCAL_NDK_VERSION ifdef LOCAL_IS_HOST_MODULE $(error $(LOCAL_PATH): LOCAL_NDK_VERSION can not be used in host module) endif ifneq ($(filter-out SHARED_LIBRARIES STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS)),) $(error $(LOCAL_PATH): LOCAL_NDK_VERSION can only be used to build target shared/static libraries, \ while your module is of class $(LOCAL_MODULE_CLASS)) endif ifeq ($(filter $(LOCAL_NDK_VERSION),$(TARGET_AVAILABLE_NDK_VERSIONS)),) $(error $(LOCAL_PATH): Invalid LOCAL_NDK_VERSION '$(LOCAL_NDK_VERSION)' \ Choices are $(TARGET_AVAILABLE_NDK_VERSIONS)) endif ifndef LOCAL_SDK_VERSION $(error $(LOCAL_PATH): LOCAL_NDK_VERSION must be defined with LOCAL_SDK_VERSION) endif my_ndk_version_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r$(LOCAL_NDK_VERSION)/$(BUILD_OS)/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 endif ####################################### include $(BUILD_SYSTEM)/base_rules.mk ####################################### Loading @@ -18,6 +43,26 @@ ifeq ($(strip $(LOCAL_NO_FDO_SUPPORT)),) LOCAL_LDFLAGS += $(TARGET_FDO_CFLAGS) endif ########################################################### ## Define PRIVATE_ variables from global vars ########################################################### ifdef LOCAL_NDK_VERSION my_target_project_includes := my_target_c_inclues := $(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)) else my_target_project_includes := $(TARGET_PROJECT_INCLUDES) my_target_c_inclues := $(TARGET_C_INCLUDES) my_target_global_cflags := $(TARGET_GLOBAL_CFLAGS) my_target_global_cppflags := $(TARGET_GLOBAL_CPPFLAGS) endif $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_PROJECT_INCLUDES := $(my_target_project_includes) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_C_INCLUDES := $(my_target_c_inclues) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags) ########################################################### ## Define PRIVATE_ variables used by multiple module types ########################################################### Loading Loading @@ -310,11 +355,13 @@ include $(BUILD_COPY_HEADERS) # to by supplying a LOCAL_SYSTEM_SHARED_LIBRARIES value. One would # supply that, for example, when building libc itself. ########################################################### ifndef LOCAL_IS_HOST_MODULE ifdef LOCAL_IS_HOST_MODULE ifeq ($(LOCAL_SYSTEM_SHARED_LIBRARIES),none) LOCAL_SHARED_LIBRARIES += $($(my_prefix)DEFAULT_SYSTEM_SHARED_LIBRARIES) LOCAL_SYSTEM_SHARED_LIBRARIES := endif else LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) ifeq ($(LOCAL_SYSTEM_SHARED_LIBRARIES),none) LOCAL_SYSTEM_SHARED_LIBRARIES := $($(my_prefix)DEFAULT_SYSTEM_SHARED_LIBRARIES) endif endif Loading Loading @@ -373,11 +420,35 @@ endif so_suffix := $($(my_prefix)SHLIB_SUFFIX) a_suffix := $($(my_prefix)STATIC_LIB_SUFFIX) ifdef LOCAL_NDK_VERSION built_shared_libraries := \ $(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(LOCAL_SHARED_LIBRARIES))) # Get the list of INSTALLED libraries. Strip off the various # intermediates directories and point to the common lib dirs. 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))) built_shared_libraries += $(my_system_shared_libraries_fullpath) LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) else LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES) built_shared_libraries := \ $(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(LOCAL_SHARED_LIBRARIES))) installed_shared_libraries := \ $(addprefix $($(my_prefix)OUT_SHARED_LIBRARIES)/, \ $(notdir $(built_shared_libraries))) endif built_static_libraries := \ $(foreach lib,$(LOCAL_STATIC_LIBRARIES), \ $(call intermediates-dir-for, \ Loading @@ -388,12 +459,6 @@ built_whole_libraries := \ $(call intermediates-dir-for, \ STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE))/$(lib)$(a_suffix)) # Get the list of INSTALLED libraries. Strip off the various # intermediates directories and point to the common lib dirs. installed_shared_libraries := \ $(addprefix $($(my_prefix)OUT_SHARED_LIBRARIES)/, \ $(notdir $(built_shared_libraries))) # We don't care about installed static libraries, since the # libraries have already been linked into the module at that point. # We do, however, care about the NOTICE files for any static Loading
core/clear_vars.mk +1 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,7 @@ LOCAL_ALLOW_UNDEFINED_SYMBOLS:= LOCAL_DX_FLAGS:= LOCAL_CERTIFICATE:= LOCAL_SDK_VERSION:= LOCAL_NDK_VERSION:= LOCAL_NO_EMMA_INSTRUMENT:= LOCAL_NO_EMMA_COMPILE:= LOCAL_PROGUARD_ENABLED:= # '',optonly,full,custom Loading
core/combo/TARGET_linux-arm.mk +4 −4 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ $(TARGET_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) -Wl,-T,$(BUILD_SYSTEM)/armelf.xsc \ -Wl,--gc-sections \ -Wl,-shared,-Bsymbolic \ $(TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ Loading @@ -223,9 +223,9 @@ $(TARGET_CXX) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDFLAGS) \ $(TARGET_GLOBAL_LDFLAGS) \ $(TARGET_FDO_LIB) \ $(TARGET_LIBGCC) $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_TARGET_FDO_LIB) \ $(PRIVATE_TARGET_LIBGCC) endef define transform-o-to-executable-inner Loading
core/combo/TARGET_linux-sh.mk +4 −4 Original line number Diff line number Diff line Loading @@ -116,8 +116,8 @@ $(TARGET_CXX) \ -nostdlib -Wl,-soname,$(notdir $@) -Wl,-T,$(BUILD_SYSTEM)/shlelf.xsc \ -Wl,--gc-sections -Wl,-z,norelro \ -Wl,-shared,-Bsymbolic \ $(TARGET_GLOBAL_LD_DIRS) \ $(TARGET_SOBEGIN) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_SOBEGIN) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ Loading @@ -127,8 +127,8 @@ $(TARGET_CXX) \ -o $@ \ $(PRIVATE_LDFLAGS) \ $(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \ $(TARGET_LIBGCC) \ $(TARGET_SOEND) $(PRIVATE_TARGET_LIBGCC) \ $(PRIVATE_TARGET_SOEND) endef define transform-o-to-executable-inner Loading
core/combo/TARGET_linux-x86.mk +5 −5 Original line number Diff line number Diff line Loading @@ -104,12 +104,12 @@ TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm TARGET_CUSTOM_LD_COMMAND := true define transform-o-to-shared-lib-inner $(TARGET_CXX) \ $(TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -nostdlib -Wl,-soname,$(notdir $@) \ -shared -Bsymbolic \ -fPIC -march=i686 \ $(TARGET_GLOBAL_LD_DIRS) \ $(TARGET_CRTBEGIN_SO_O) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_CRTBEGIN_SO_O) \ $(PRIVATE_ALL_OBJECTS) \ -Wl,--whole-archive \ $(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \ Loading @@ -118,8 +118,8 @@ $(TARGET_CXX) \ $(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \ -o $@ \ $(PRIVATE_LDFLAGS) \ $(TARGET_LIBGCC) \ $(TARGET_CRTEND_SO_O) $(PRIVATE_TARGET_LIBGCC) \ $(PRIVATE_TARGET_CRTEND_SO_O) endef Loading