OSDN Git Service

ninja-build: don't use $(shell) in other Make constructs [3/4]
authorSaleem Rashid <spudowiar@outlook.com>
Sun, 1 May 2016 06:41:20 +0000 (07:41 +0100)
committerLuca Stefani <luca.stefani.ge1@gmail.com>
Thu, 25 Aug 2016 12:56:27 +0000 (14:56 +0200)
Change-Id: I33782f7491ce3972f239a3cd953b34e5c45e44e5

Android.mk

index 3144913..b5d64df 100644 (file)
@@ -281,15 +281,13 @@ TOYS_WITHOUT_LINKS := blkid traceroute6
 
 include $(BUILD_EXECUTABLE)
 
-toybox_links: $(TOYBOX_INSTLIST) toybox
-toybox_links: TOY_LIST=$(shell $(TOYBOX_INSTLIST))
+toybox_links: $(TOYBOX_INSTLIST)
 toybox_links: TOYBOX_BINARY := $(TARGET_OUT)/bin/toybox
 toybox_links:
-       @echo -e ${CL_CYN}"Generate Toybox links:"${CL_RST} $(TOY_LIST)
-       @mkdir -p $(TARGET_OUT)/bin
-       @mkdir -p $(TARGET_OUT)/xbin
-       $(hide) $(foreach t,$(filter-out $(TOYS_FOR_XBIN) $(TOYS_WITHOUT_LINKS),$(TOY_LIST)),ln -sf toybox $(TARGET_OUT_EXECUTABLES)/$(t);)
-       $(hide) $(foreach t,$(TOYS_FOR_XBIN),ln -sf /system/bin/toybox $(TARGET_OUT_OPTIONAL_EXECUTABLES)/$(t);)
+       @echo -e ${CL_CYN}"Generate Toybox links:"${CL_RST} $$($(TOYBOX_INSTLIST))
+       @mkdir -p $(TARGET_OUT_EXECUTABLES) $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+       $(hide) $(TOYBOX_INSTLIST) | grep -vFx -f <(tr ' ' '\n' <<< '$(TOYS_FOR_XBIN) $(TOYS_WITHOUT_LINKS)') | xargs -I'{}' ln -sf toybox '$(TARGET_OUT_EXECUTABLES)/{}'
+       $(hide) tr ' ' '\n' <<< '$(TOYS_FOR_XBIN)' | xargs -I'{}' ln -sf ../bin/toybox '$(TARGET_OUT_OPTIONAL_EXECUTABLES)/{}'
 
 
 # This is used by the recovery system