| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 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 | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 4 | # | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 5 | # Note: now only limited to the binaries that will be installed under system/bin directory | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 6 |  | 
| Narayan Kamath | 4fb8122 | 2014-05-14 18:26:48 +0100 | [diff] [blame] | 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. | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 11 | ifneq ($(LOCAL_IS_HOST_MODULE),true) | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 12 |   my_symlink := $(addprefix $(TARGET_OUT)/bin/, $(LOCAL_MODULE)) | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 13 |   ifeq ($(TARGET_IS_64_BIT),true) | 
| Brian Carlstrom | 191e598 | 2014-06-28 13:49:26 -0700 | [diff] [blame] | 14 |     ifeq ($(TARGET_SUPPORTS_64_BIT_APPS)|$(TARGET_SUPPORTS_32_BIT_APPS),true|true) | 
 | 15 |       # We support both 32 and 64 bit apps, so we will have to | 
 | 16 |       # base our decision on whether the target prefers one or the | 
 | 17 |       # other. | 
| Narayan Kamath | 123854d | 2014-08-14 15:28:48 +0100 | [diff] [blame] | 18 |       ifeq ($(TARGET_PREFER_32_BIT_APPS),true) | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 19 |         $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) | 
| Brian Carlstrom | 191e598 | 2014-06-28 13:49:26 -0700 | [diff] [blame] | 20 |       else | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 21 |         $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64) | 
| Brian Carlstrom | 191e598 | 2014-06-28 13:49:26 -0700 | [diff] [blame] | 22 |       endif | 
 | 23 |     else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true) | 
 | 24 |       # We support only 64 bit apps. | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 25 |       $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64) | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 26 |     else | 
| Brian Carlstrom | 191e598 | 2014-06-28 13:49:26 -0700 | [diff] [blame] | 27 |       # We support only 32 bit apps. | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 28 |       $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 29 |     endif | 
| Narayan Kamath | 79bc52a | 2014-06-17 16:36:08 +0100 | [diff] [blame] | 30 |   else | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 31 |     $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) | 
| Narayan Kamath | 79bc52a | 2014-06-17 16:36:08 +0100 | [diff] [blame] | 32 |   endif | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 33 | else | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 34 |   my_symlink := $(addprefix $(HOST_OUT)/bin/, $(LOCAL_MODULE)) | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 35 |   ifneq ($(HOST_PREFER_32_BIT),true) | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 36 | $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_64) | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 37 |   else | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 38 | $(my_symlink): PRIVATE_SRC_BINARY_NAME := $(LOCAL_MODULE_STEM_32) | 
| Ian Rogers | cf331d9 | 2014-06-25 00:04:30 -0700 | [diff] [blame] | 39 |   endif | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 40 | endif | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 41 |  | 
| Ying Wang | e25b398 | 2015-02-26 18:47:21 -0800 | [diff] [blame] | 42 | # $(my_symlink) doesn't need to depend on $(PRIVATE_SRC_BINARY_NAME): we can generate symlink to nonexistent file. | 
 | 43 | # If you add the dependency, make would compare the timestamp of a file against that of its symlink: | 
 | 44 | # they are always equal, because make follows symlink. | 
| Colin Cross | 7ee3b85 | 2015-09-28 18:45:23 -0700 | [diff] [blame] | 45 | $(my_symlink): $(LOCAL_MODULE_MAKEFILE_DEP) | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 46 | 	@echo "Symlink: $@ -> $(PRIVATE_SRC_BINARY_NAME)" | 
 | 47 | 	@mkdir -p $(dir $@) | 
 | 48 | 	@rm -rf $@ | 
 | 49 | 	$(hide) ln -sf $(PRIVATE_SRC_BINARY_NAME) $@ | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 50 |  | 
| Nicolas Geoffray | ffefd33 | 2014-11-25 12:52:26 +0000 | [diff] [blame] | 51 | # We need this so that the installed files could be picked up based on the | 
 | 52 | # local module name | 
 | 53 | ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(my_symlink) | 
 | 54 |  | 
 | 55 | # Create the symlink when you run mm/mmm or "make <module_name>" | 
 | 56 | $(LOCAL_MODULE) : $(my_symlink) | 
 | 57 |  | 
| Yongqin Liu | d1d42e8 | 2014-05-07 12:41:24 +0800 | [diff] [blame] | 58 | my_symlink := |