executable_prefer_symlink.mk revision cf331d931d4d254f1bccb18c27e675b41f764890
1# include this makefile to create the LOCAL_MODULE symlink to the primary version binary. 2# but this requires the primary version name specified via LOCAL_MODULE_STEM_32 or LOCAL_MODULE_STEM_64, 3# and different with the LOCAL_MODULE value 4# 5# Note: now only limited to the binaries that will be installed under system/bin directory 6 7# Create link to the one used depending on the target 8# configuration. Note that we require the TARGET_IS_64_BIT 9# check because 32 bit targets may not define TARGET_PREFER_32_BIT_APPS 10# et al. since those variables make no sense in that context. 11 12ifneq ($(LOCAL_IS_HOST_MODULE),true) 13 my_symlink := $(addprefix $(TARGET_OUT)/bin/, $(LOCAL_MODULE)) 14 ifeq ($(TARGET_IS_64_BIT),true) 15 ifneq ($(TARGET_PREFER_32_BIT_APPS),true) 16$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64) 17 else 18$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) 19 endif 20 else 21$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) 22 endif 23else 24 my_symlink := $(addprefix $(HOST_OUT)/bin/, $(LOCAL_MODULE)) 25 ifneq ($(HOST_PREFER_32_BIT),true) 26$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64) 27 else 28$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) 29 endif 30endif 31 32$(my_symlink): $(LOCAL_INSTALLED_MODULE) $(LOCAL_MODULE_MAKEFILE) 33 @echo "Symlink: $@ -> $(PRIVATE_SRC_BINARY_NAME)" 34 @mkdir -p $(dir $@) 35 @rm -rf $@ 36 $(hide) ln -sf $(PRIVATE_SRC_BINARY_NAME) $@ 37 38# We need this so that the installed files could be picked up based on the 39# local module name 40ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(my_symlink) 41 42# Create the symlink when you run mm/mmm or "make <module_name>" 43$(LOCAL_MODULE) : $(my_symlink) 44 45my_symlink := 46