summaryrefslogtreecommitdiffstats
path: root/core/executable_prefer_symlink.mk
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2014-11-24 15:44:39 -0800
committerYing Wang <wangying@google.com>2014-11-24 15:44:39 -0800
commit29f0a487b05f87cc3a6c9fbb7e7ae885064e27be (patch)
tree41865a2fac2ef86d2b515d8ceaa97741ee4484cc /core/executable_prefer_symlink.mk
parent7adbb466597a52873605b14950e70f3d2bc0f4c8 (diff)
downloadbuild-29f0a487b05f87cc3a6c9fbb7e7ae885064e27be.zip
build-29f0a487b05f87cc3a6c9fbb7e7ae885064e27be.tar.gz
build-29f0a487b05f87cc3a6c9fbb7e7ae885064e27be.tar.bz2
Use PRIVATE_POST_INSTALL_CMD to simplify executable_prefer_symlink.mk
Change-Id: I4a2827b2cdbb0bf5a8ca960561fbe17cc80cc275
Diffstat (limited to 'core/executable_prefer_symlink.mk')
-rw-r--r--core/executable_prefer_symlink.mk43
1 files changed, 18 insertions, 25 deletions
diff --git a/core/executable_prefer_symlink.mk b/core/executable_prefer_symlink.mk
index 2326e83..a2b759c 100644
--- a/core/executable_prefer_symlink.mk
+++ b/core/executable_prefer_symlink.mk
@@ -1,55 +1,48 @@
-# include this makefile to create the LOCAL_MODULE symlink to the primary version binary.
-# but this requires the primary version name specified via LOCAL_MODULE_STEM_32 or LOCAL_MODULE_STEM_64,
-# and different with the LOCAL_MODULE value
+# Include this makefile to create the LOCAL_MODULE symlink to the primary version binary.
+# Include this file only after "include $(BUILD_EXECUTABLE)".
+# It requires the primary version name specified via LOCAL_MODULE_STEM_32 or LOCAL_MODULE_STEM_64,
+# and different from the LOCAL_MODULE value.
#
-# Note: now only limited to the binaries that will be installed under system/bin directory
+# Note: now only limited to the binaries that will be installed under system/bin directory.
# Create link to the one used depending on the target
# configuration. Note that we require the TARGET_IS_64_BIT
# check because 32 bit targets may not define TARGET_PREFER_32_BIT_APPS
# et al. since those variables make no sense in that context.
ifneq ($(LOCAL_IS_HOST_MODULE),true)
- my_symlink := $(addprefix $(TARGET_OUT)/bin/, $(LOCAL_MODULE))
+ my_symlink := $(TARGET_OUT)/bin/$(LOCAL_MODULE)
ifeq ($(TARGET_IS_64_BIT),true)
ifeq ($(TARGET_SUPPORTS_64_BIT_APPS)|$(TARGET_SUPPORTS_32_BIT_APPS),true|true)
# We support both 32 and 64 bit apps, so we will have to
# base our decision on whether the target prefers one or the
# other.
ifeq ($(TARGET_PREFER_32_BIT_APPS),true)
- $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_32)
else
- $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_64)
endif
else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true)
# We support only 64 bit apps.
- $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_64)
else
# We support only 32 bit apps.
- $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_32)
endif
else
- $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_32)
endif
else
- my_symlink := $(addprefix $(HOST_OUT)/bin/, $(LOCAL_MODULE))
+ my_symlink := $(HOST_OUT)/bin/$(LOCAL_MODULE)
ifneq ($(HOST_PREFER_32_BIT),true)
-$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_64)
else
-$(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32)
+ my_symlink_tgt := $(LOCAL_MODULE_STEM_32)
endif
endif
-$(my_symlink): $(LOCAL_INSTALLED_MODULE) $(LOCAL_MODULE_MAKEFILE)
- @echo "Symlink: $@ -> $(PRIVATE_SRC_BINARY_NAME)"
- @mkdir -p $(dir $@)
- @rm -rf $@
- $(hide) ln -sf $(PRIVATE_SRC_BINARY_NAME) $@
-
-# We need this so that the installed files could be picked up based on the
-# local module name
-ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(my_symlink)
-
-# Create the symlink when you run mm/mmm or "make <module_name>"
-$(LOCAL_MODULE) : $(my_symlink)
+# Create the symlink as a post-install command.
+$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD += \
+ ln -sf $(my_symlink_tgt) $(my_symlink)
+my_symlink_tgt :=
my_symlink :=