|
|
- --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
- +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py
- @@ -154,6 +154,32 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOL
- quiet_cmd_link = LINK($(TOOLSET)) $@
- cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
-
- +define xargs
- + $(1) $(wordlist 1,100,$(2))
- + $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
- +endef
- +
- +define write-to-file
- + @echo >$(1)
- + $(call xargs,printf "%s\\n" >>$(1),$(2))
- +endef
- +
- +OBJ_FILE_LIST_SFX := ar-file-list
- +
- +define create_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- +define create_thin_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- # We support two kinds of shared objects (.so):
- # 1) shared_library, which is just bundling together many dependent libraries
- # into a link line.
- @@ -198,6 +224,32 @@ cmd_alink = rm -f $@ && $(AR.$(TOOLSET))
- quiet_cmd_alink_thin = AR($(TOOLSET)) $@
- cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
-
- +define xargs
- + $(1) $(wordlist 1,100,$(2))
- + $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
- +endef
- +
- +define write-to-file
- + @echo >$(1)
- + $(call xargs,printf "%s\\n" >>$(1),$(2))
- +endef
- +
- +OBJ_FILE_LIST_SFX := ar-file-list
- +
- +define create_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- +define create_thin_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- # Due to circular dependencies between libraries :(, we wrap the
- # special "figure out circular dependencies" flags around the entire
- # input list during linking.
- @@ -1768,21 +1820,35 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)
- self.flavor not in ("mac", "openbsd", "netbsd", "win")
- and not self.is_standalone_static_library
- ):
- - self.WriteDoCmd(
- - [self.output_binary],
- - link_deps,
- - "alink_thin",
- - part_of_all,
- - postbuilds=postbuilds,
- - )
- + if self.flavor in ('linux', 'android'):
- + self.WriteMakeRule(
- + [self.output_binary],
- + link_deps,
- + actions = ['$(call create_thin_archive,$@,$^)']
- + )
- + else:
- + self.WriteDoCmd(
- + [self.output_binary],
- + link_deps,
- + "alink_thin",
- + part_of_all,
- + postbuilds=postbuilds,
- + )
- else:
- - self.WriteDoCmd(
- - [self.output_binary],
- - link_deps,
- - "alink",
- - part_of_all,
- - postbuilds=postbuilds,
- - )
- + if self.flavor in ('linux', 'android'):
- + self.WriteMakeRule(
- + [self.output_binary],
- + link_deps,
- + actions = ['$(call create_archive,$@,$^)']
- + )
- + else:
- + self.WriteDoCmd(
- + [self.output_binary],
- + link_deps,
- + "alink",
- + part_of_all,
- + postbuilds=postbuilds,
- + )
- elif self.type == "shared_library":
- self.WriteLn(
- "%s: LD_INPUTS := %s"
- --- a/tools/gyp/pylib/gyp/generator/make.py
- +++ b/tools/gyp/pylib/gyp/generator/make.py
- @@ -156,6 +156,32 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOL
- quiet_cmd_link = LINK($(TOOLSET)) $@
- cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
-
- +define xargs
- + $(1) $(wordlist 1,100,$(2))
- + $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
- +endef
- +
- +define write-to-file
- + @echo >$(1)
- + $(call xargs,printf "%s\\n" >>$(1),$(2))
- +endef
- +
- +OBJ_FILE_LIST_SFX := ar-file-list
- +
- +define create_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- +define create_thin_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- # We support two kinds of shared objects (.so):
- # 1) shared_library, which is just bundling together many dependent libraries
- # into a link line.
- @@ -200,6 +226,32 @@ cmd_alink = rm -f $@ && $(AR.$(TOOLSET))
- quiet_cmd_alink_thin = AR($(TOOLSET)) $@
- cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
-
- +define xargs
- + $(1) $(wordlist 1,100,$(2))
- + $(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
- +endef
- +
- +define write-to-file
- + @echo >$(1)
- + $(call xargs,printf "%s\\n" >>$(1),$(2))
- +endef
- +
- +OBJ_FILE_LIST_SFX := ar-file-list
- +
- +define create_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(1).$(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crs $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- +define create_thin_archive
- + $(eval OBJ_FILE_LIST := $(basename $(notdir $(1))).$(OBJ_FILE_LIST_SFX))
- + rm -f $(1) $(OBJ_FILE_LIST); mkdir -p `dirname $(1)`
- + $(call write-to-file,$(1).$(OBJ_FILE_LIST),$(filter %.o,$(2)))
- + $(AR.$(TOOLSET)) crsT $(1) @$(1).$(OBJ_FILE_LIST)
- +endef
- +
- # Due to circular dependencies between libraries :(, we wrap the
- # special "figure out circular dependencies" flags around the entire
- # input list during linking.
- @@ -1809,21 +1861,35 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)
- self.flavor not in ("mac", "openbsd", "netbsd", "win")
- and not self.is_standalone_static_library
- ):
- - self.WriteDoCmd(
- - [self.output_binary],
- - link_deps,
- - "alink_thin",
- - part_of_all,
- - postbuilds=postbuilds,
- - )
- + if self.flavor in ('linux', 'android'):
- + self.WriteMakeRule(
- + [self.output_binary],
- + link_deps,
- + actions = ['$(call create_thin_archive,$@,$^)']
- + )
- + else:
- + self.WriteDoCmd(
- + [self.output_binary],
- + link_deps,
- + 'alink_thin',
- + part_of_all,
- + postbuilds=postbuilds
- + )
- else:
- - self.WriteDoCmd(
- - [self.output_binary],
- - link_deps,
- - "alink",
- - part_of_all,
- - postbuilds=postbuilds,
- - )
- + if self.flavor in ('linux', 'android'):
- + self.WriteMakeRule(
- + [self.output_binary],
- + link_deps,
- + actions = ['$(call create_archive,$@,$^)']
- + )
- + else:
- + self.WriteDoCmd(
- + [self.output_binary],
- + link_deps,
- + 'alink',
- + part_of_all,
- + postbuilds=postbuilds
- + )
- elif self.type == "shared_library":
- self.WriteLn(
- "%s: LD_INPUTS := %s"
|