Loading core/definitions.mk +34 −26 Original line number Diff line number Diff line Loading @@ -1535,6 +1535,7 @@ $(call _concat-if-arg2-not-empty,$(1),$(wordlist 3001,99999,$(2))) endef # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define _extract-and-include-single-target-whole-static-lib $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ Loading @@ -1556,20 +1557,22 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ $@ $$filelist $(2) $$filelist endef # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define extract-and-include-whole-static-libs-first $(if $(strip $(1)), $(hide) cp $(1) $@) $(hide) cp $(1) $(2)) endef # $(1): the full path of the destination static library. define extract-and-include-target-whole-static-libs $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)),$(1)) $(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-target-whole-static-lib, $(lib))) $(call _extract-and-include-single-target-whole-static-lib, $(lib), $(1))) endef # Explicitly delete the archive first so that ar doesn't Loading @@ -1577,15 +1580,17 @@ endef define transform-o-to-static-lib @echo "$($(PRIVATE_PREFIX)DISPLAY) StaticLib: $(PRIVATE_MODULE) ($@)" @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-target-whole-static-libs) @rm -f $@ $@.tmp $(call extract-and-include-target-whole-static-libs,$@.tmp) $(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ $(PRIVATE_ARFLAGS) \ $@,$(PRIVATE_ALL_OBJECTS)) $@.tmp,$(PRIVATE_ALL_OBJECTS)) $(hide) mv -f $@.tmp $@ endef # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define _extract-and-include-single-aux-whole-static-lib $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ Loading @@ -1606,14 +1611,14 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; $(PRIVATE_AR) p $$lib_to_include $$f > $$ldir/$$ext$$f; \ filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $(PRIVATE_AR) $(AUX_GLOBAL_ARFLAGS) $@ $$filelist $(PRIVATE_AR) $(AUX_GLOBAL_ARFLAGS) $(2) $$filelist endef define extract-and-include-aux-whole-static-libs $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)),$(1)) $(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-aux-whole-static-lib, $(lib))) $(call _extract-and-include-single-aux-whole-static-lib, $(lib), $(1))) endef # Explicitly delete the archive first so that ar doesn't Loading @@ -1621,10 +1626,11 @@ endef define transform-o-to-aux-static-lib @echo "$($(PRIVATE_PREFIX)DISPLAY) StaticLib: $(PRIVATE_MODULE) ($@)" @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-aux-whole-static-libs) @rm -f $@ $@.tmp $(call extract-and-include-aux-whole-static-libs,$@.tmp) $(call split-long-arguments,$(PRIVATE_AR) \ $(AUX_GLOBAL_ARFLAGS) $@,$(PRIVATE_ALL_OBJECTS)) $(AUX_GLOBAL_ARFLAGS) $@.tmp,$(PRIVATE_ALL_OBJECTS)) $(hide) mv -f $@.tmp $@ endef define transform-o-to-aux-executable-inner Loading Loading @@ -1671,6 +1677,7 @@ endef ########################################################### # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define _extract-and-include-single-host-whole-static-lib $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ Loading @@ -1692,30 +1699,30 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)GLOBAL_ARFLAGS) \ $@ $$filelist $(2) $$filelist endef define extract-and-include-host-whole-static-libs $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)),$(1)) $(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-host-whole-static-lib, $(lib))) $(call _extract-and-include-single-host-whole-static-lib, $(lib),$(1))) endef ifeq ($(HOST_OS),darwin) # On Darwin the host ar fails if there is nothing to add to .a at all. # We work around by adding a dummy.o and then deleting it. define create-dummy.o-if-no-objs $(if $(PRIVATE_ALL_OBJECTS),,$(hide) touch $(dir $@)dummy.o) $(if $(PRIVATE_ALL_OBJECTS),,$(hide) touch $(dir $(1))dummy.o) endef define get-dummy.o-if-no-objs $(if $(PRIVATE_ALL_OBJECTS),,$(dir $@)dummy.o) $(if $(PRIVATE_ALL_OBJECTS),,$(dir $(1))dummy.o) endef define delete-dummy.o-if-no-objs $(if $(PRIVATE_ALL_OBJECTS),,$(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) d $@ $(dir $@)dummy.o \ && rm -f $(dir $@)dummy.o) $(if $(PRIVATE_ALL_OBJECTS),,$(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) d $(1) $(dir $(1))dummy.o \ && rm -f $(dir $(1))dummy.o) endef endif # HOST_OS is darwin Loading @@ -1724,13 +1731,14 @@ endif # HOST_OS is darwin define transform-host-o-to-static-lib @echo "$($(PRIVATE_PREFIX)DISPLAY) StaticLib: $(PRIVATE_MODULE) ($@)" @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-host-whole-static-libs) $(create-dummy.o-if-no-objs) @rm -f $@ $@.tmp $(call extract-and-include-host-whole-static-libs,$@.tmp) $(call create-dummy.o-if-no-objs,$@.tmp) $(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)GLOBAL_ARFLAGS) $@,\ $(PRIVATE_ALL_OBJECTS) $(get-dummy.o-if-no-objs)) $(delete-dummy.o-if-no-objs) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)GLOBAL_ARFLAGS) $@.tmp,\ $(PRIVATE_ALL_OBJECTS) $(call get-dummy.o-if-no-objs,$@.tmp)) $(call delete-dummy.o-if-no-objs,$@.tmp) $(hide) mv -f $@.tmp $@ endef Loading Loading
core/definitions.mk +34 −26 Original line number Diff line number Diff line Loading @@ -1535,6 +1535,7 @@ $(call _concat-if-arg2-not-empty,$(1),$(wordlist 3001,99999,$(2))) endef # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define _extract-and-include-single-target-whole-static-lib $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ Loading @@ -1556,20 +1557,22 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ $@ $$filelist $(2) $$filelist endef # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define extract-and-include-whole-static-libs-first $(if $(strip $(1)), $(hide) cp $(1) $@) $(hide) cp $(1) $(2)) endef # $(1): the full path of the destination static library. define extract-and-include-target-whole-static-libs $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)),$(1)) $(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-target-whole-static-lib, $(lib))) $(call _extract-and-include-single-target-whole-static-lib, $(lib), $(1))) endef # Explicitly delete the archive first so that ar doesn't Loading @@ -1577,15 +1580,17 @@ endef define transform-o-to-static-lib @echo "$($(PRIVATE_PREFIX)DISPLAY) StaticLib: $(PRIVATE_MODULE) ($@)" @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-target-whole-static-libs) @rm -f $@ $@.tmp $(call extract-and-include-target-whole-static-libs,$@.tmp) $(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ $(PRIVATE_ARFLAGS) \ $@,$(PRIVATE_ALL_OBJECTS)) $@.tmp,$(PRIVATE_ALL_OBJECTS)) $(hide) mv -f $@.tmp $@ endef # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define _extract-and-include-single-aux-whole-static-lib $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ Loading @@ -1606,14 +1611,14 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; $(PRIVATE_AR) p $$lib_to_include $$f > $$ldir/$$ext$$f; \ filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $(PRIVATE_AR) $(AUX_GLOBAL_ARFLAGS) $@ $$filelist $(PRIVATE_AR) $(AUX_GLOBAL_ARFLAGS) $(2) $$filelist endef define extract-and-include-aux-whole-static-libs $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)),$(1)) $(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-aux-whole-static-lib, $(lib))) $(call _extract-and-include-single-aux-whole-static-lib, $(lib), $(1))) endef # Explicitly delete the archive first so that ar doesn't Loading @@ -1621,10 +1626,11 @@ endef define transform-o-to-aux-static-lib @echo "$($(PRIVATE_PREFIX)DISPLAY) StaticLib: $(PRIVATE_MODULE) ($@)" @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-aux-whole-static-libs) @rm -f $@ $@.tmp $(call extract-and-include-aux-whole-static-libs,$@.tmp) $(call split-long-arguments,$(PRIVATE_AR) \ $(AUX_GLOBAL_ARFLAGS) $@,$(PRIVATE_ALL_OBJECTS)) $(AUX_GLOBAL_ARFLAGS) $@.tmp,$(PRIVATE_ALL_OBJECTS)) $(hide) mv -f $@.tmp $@ endef define transform-o-to-aux-executable-inner Loading Loading @@ -1671,6 +1677,7 @@ endef ########################################################### # $(1): the full path of the source static library. # $(2): the full path of the destination static library. define _extract-and-include-single-host-whole-static-lib $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ rm -rf $$ldir; \ Loading @@ -1692,30 +1699,30 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs; filelist="$$filelist $$ldir/$$ext$$f"; \ done ; \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)GLOBAL_ARFLAGS) \ $@ $$filelist $(2) $$filelist endef define extract-and-include-host-whole-static-libs $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES))) $(call extract-and-include-whole-static-libs-first, $(firstword $(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)),$(1)) $(foreach lib,$(wordlist 2,999,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)), \ $(call _extract-and-include-single-host-whole-static-lib, $(lib))) $(call _extract-and-include-single-host-whole-static-lib, $(lib),$(1))) endef ifeq ($(HOST_OS),darwin) # On Darwin the host ar fails if there is nothing to add to .a at all. # We work around by adding a dummy.o and then deleting it. define create-dummy.o-if-no-objs $(if $(PRIVATE_ALL_OBJECTS),,$(hide) touch $(dir $@)dummy.o) $(if $(PRIVATE_ALL_OBJECTS),,$(hide) touch $(dir $(1))dummy.o) endef define get-dummy.o-if-no-objs $(if $(PRIVATE_ALL_OBJECTS),,$(dir $@)dummy.o) $(if $(PRIVATE_ALL_OBJECTS),,$(dir $(1))dummy.o) endef define delete-dummy.o-if-no-objs $(if $(PRIVATE_ALL_OBJECTS),,$(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) d $@ $(dir $@)dummy.o \ && rm -f $(dir $@)dummy.o) $(if $(PRIVATE_ALL_OBJECTS),,$(hide) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) d $(1) $(dir $(1))dummy.o \ && rm -f $(dir $(1))dummy.o) endef endif # HOST_OS is darwin Loading @@ -1724,13 +1731,14 @@ endif # HOST_OS is darwin define transform-host-o-to-static-lib @echo "$($(PRIVATE_PREFIX)DISPLAY) StaticLib: $(PRIVATE_MODULE) ($@)" @mkdir -p $(dir $@) @rm -f $@ $(extract-and-include-host-whole-static-libs) $(create-dummy.o-if-no-objs) @rm -f $@ $@.tmp $(call extract-and-include-host-whole-static-libs,$@.tmp) $(call create-dummy.o-if-no-objs,$@.tmp) $(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)AR) \ $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)GLOBAL_ARFLAGS) $@,\ $(PRIVATE_ALL_OBJECTS) $(get-dummy.o-if-no-objs)) $(delete-dummy.o-if-no-objs) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)$(PRIVATE_PREFIX)GLOBAL_ARFLAGS) $@.tmp,\ $(PRIVATE_ALL_OBJECTS) $(call get-dummy.o-if-no-objs,$@.tmp)) $(call delete-dummy.o-if-no-objs,$@.tmp) $(hide) mv -f $@.tmp $@ endef Loading