Split to multiple bash commands.
This can fix the error "/bin/bash: Argument list too long", if we get a
really long apk list.
Bug tracker Link: http://code.google.com/p/android/issues/detail?id=38937
(cherry picked from commit d9a88d585f
)
Change-Id: I80cd07cf50cc2b04e4b6aa9d5ecb1faf80d4cb5c
This commit is contained in:
parent
075f7751fa
commit
2ff73494bc
1 changed files with 15 additions and 7 deletions
|
@ -240,6 +240,12 @@ package-stats: $(PACKAGE_STATS_FILE)
|
|||
|
||||
# -----------------------------------------------------------------
|
||||
# Cert-to-package mapping. Used by the post-build signing tools.
|
||||
# Use a macro to add newline to each echo command
|
||||
define _apkcerts_echo_with_newline
|
||||
$(hide) echo $(1)
|
||||
|
||||
endef
|
||||
|
||||
name := $(TARGET_PRODUCT)
|
||||
ifeq ($(TARGET_BUILD_TYPE),debug)
|
||||
name := $(name)_debug
|
||||
|
@ -254,13 +260,15 @@ $(APKCERTS_FILE):
|
|||
@echo APK certs list: $@
|
||||
@mkdir -p $(dir $@)
|
||||
@rm -f $@
|
||||
$(hide) $(foreach p,$(PACKAGES),\
|
||||
$(if $(PACKAGES.$(p).EXTERNAL_KEY),\
|
||||
echo 'name="$(p).apk" certificate="EXTERNAL" \
|
||||
private_key=""' >> $@;,\
|
||||
echo 'name="$(p).apk" certificate="$(PACKAGES.$(p).CERTIFICATE)" \
|
||||
private_key="$(PACKAGES.$(p).PRIVATE_KEY)"' >> $@;))
|
||||
# In case $(PACKAGES) is empty.
|
||||
$(foreach p,$(PACKAGES),\
|
||||
$(if $(PACKAGES.$(p).EXTERNAL_KEY),\
|
||||
$(call _apkcerts_echo_with_newline,\
|
||||
'name="$(p).apk" certificate="EXTERNAL" \
|
||||
private_key=""' >> $@),\
|
||||
$(call _apkcerts_echo_with_newline,\
|
||||
'name="$(p).apk" certificate="$(PACKAGES.$(p).CERTIFICATE)" \
|
||||
private_key="$(PACKAGES.$(p).PRIVATE_KEY)"' >> $@)))
|
||||
# In case value of PACKAGES is empty.
|
||||
$(hide) touch $@
|
||||
|
||||
.PHONY: apkcerts-list
|
||||
|
|
Loading…
Reference in a new issue