diff options
author | Mathias Bauer <mba@openoffice.org> | 2011-01-27 09:47:18 +0100 |
---|---|---|
committer | Mathias Bauer <mba@openoffice.org> | 2011-01-27 09:47:18 +0100 |
commit | 079e072e186a2e267284a2c4354f5f18843ea0a7 (patch) | |
tree | 4ce1f523547ef96cdf7728ec1806f0929446774d /solenv | |
parent | a239103a877de032e11acfa645d059c45fd28d10 (diff) |
CWS gnumake2: use temp files for long command lines; missing include path in editeng
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/Deliver.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 37 | ||||
-rw-r--r-- | solenv/gbuild/Tempfile.mk | 38 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 2 |
4 files changed, 62 insertions, 17 deletions
diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk index a3f72dc4b633..45b57cbb4f61 100644 --- a/solenv/gbuild/Deliver.mk +++ b/solenv/gbuild/Deliver.mk @@ -63,7 +63,7 @@ define gb_Deliver_setdeliverlogcommand ifeq ($$(words $(gb_Module_ALLMODULES)),1) $$(eval $$(call gb_Output_announce,$$(strip $$(gb_Module_ALLMODULES)),$$(true),LOG,1)) deliverlog : COMMAND := mkdir -p $$(OUTDIR)/inc/$$(strip $$(gb_Module_ALLMODULES)) && -deliverlog : COMMAND += echo "$$(sort $$(gb_Deliver_DELIVERABLES)) " | $(gb_AWK) -f $$(GBUILDDIR)/processdelivered.awk > $$(OUTDIR)/inc/$$(strip $(gb_Module_ALLMODULES))/gb_deliver.log +deliverlog : COMMAND += cat $$(call var2file,$(call uniqname),100,$$(sort $$(gb_Deliver_DELIVERABLES))) | $(gb_AWK) -f $$(GBUILDDIR)/processdelivered.awk > $$(OUTDIR)/inc/$$(strip $(gb_Module_ALLMODULES))/gb_deliver.log else $$(eval $$(call gb_Output_announce,more than one module - creating no deliver.log,$$(true),LOG,1)) deliverlog : COMMAND := true diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index 2d7b11e9e321..1f4aba5562a4 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -192,30 +192,35 @@ gb_LinkTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) .PHONY : $(call gb_LinkTarget_get_clean_target,%) $(call gb_LinkTarget_get_clean_target,%) : $(call gb_Output_announce,$*,$(false),LNK,4) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \ - $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ - $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \ - $(call gb_LinkTarget_get_target,$*) \ - $(call gb_LinkTarget_get_dep_target,$*) \ - $(call gb_LinkTarget_get_headers_target,$*) \ - $(call gb_LinkTarget_get_external_headers_target,$*) \ - $(DLLTARGET) \ - $(AUXTARGETS)) + RESPONSEFILE=$(call var2file,$(call uniqname),200,\ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \ + $(call gb_LinkTarget_get_target,$*) \ + $(call gb_LinkTarget_get_dep_target,$*) \ + $(call gb_LinkTarget_get_headers_target,$*) \ + $(call gb_LinkTarget_get_external_headers_target,$*) \ + $(DLLTARGET) \ + $(AUXTARGETS)) && \ + cat $${RESPONSEFILE} |xargs -n 200 rm -f && \ + rm -f $${RESPONSEFILE} + # cat the deps of all objects in one file, then we need only open that one file define gb_LinkTarget__command_dep $(call gb_Output_announce,LNK:$(2),$(true),DEP,1) $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) && \ - cat $(gb_Helper_NULLFILE)\ + RESPONSEFILE=$(call var2file,$(call uniqname),200,\ $(foreach object,$(3),$(call gb_CObject_get_dep_target,$(object))) \ $(foreach object,$(4),$(call gb_CxxObject_get_dep_target,$(object))) \ - $(foreach object,$(5),$(call gb_ObjCxxObject_get_dep_target,$(object))) > $(1)) + $(foreach object,$(5),$(call gb_ObjCxxObject_get_dep_target,$(object)))) && \ + cat $${RESPONSEFILE} |xargs -n 200 cat > $(1)) && \ + rm -f $${RESPONSEFILE} + endef $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY) diff --git a/solenv/gbuild/Tempfile.mk b/solenv/gbuild/Tempfile.mk new file mode 100644 index 000000000000..44ae6025c3e4 --- /dev/null +++ b/solenv/gbuild/Tempfile.mk @@ -0,0 +1,38 @@ +# Write string to temporary file by chopping into pieces that +# fit the commandline +# parameters: filename, maxitems (for one write), string +# returns: filename +define var2file +$(strip $(1) +$(eval gb_var2file_helpervar := $$(shell printf "%s" "" > $(1) ))\ +$(foreach item,$(3),$(eval gb_var2file_curblock += $(item) + ifeq ($$(words $$(gb_var2file_curblock)),$(2)) + gb_var2file_helpervar := $$(shell printf "%s" "$$(gb_var2file_curblock)" >> $(1) ) + gb_var2file_curblock := + endif + ))\ + $(eval gb_var2file_helpervar := $(shell echo " "$(gb_var2file_curblock) >> $(1) ) + gb_var2file_curblock := + )) +endef + +#define var2file +#$(strip $(1))\ +#$(eval +#gb_Helper_STARTS := $$(shell seq 1 $(2) $$(words $(3))) +#gb_Helper_ENDS := $$(shell seq $(2) $(2) $$(words $(3))) $$(words $(3)) +#gb_Helper_RUNS := $$(shell seq $$(words $$(gb_Helper_STARTS))) +#$$(shell printf "" > $(1)) +#$$(foreach bufferrun,$$(gb_Helper_RUNS),\ +# $$(shell printf "%s" \ +# "$$(if $$(filter-out 1,$$(bufferrun)), )$$(wordlist \ +# $$(word $$(bufferrun),$$(gb_Helper_STARTS)),\ +# $$(word $$(bufferrun),$$(gb_Helper_ENDS)),$(3))" >> $(1))) +#$$(shell printf "\n" >> $(1)) +#) +#endef + +define uniqname +$(shell mktemp | tr -d '\n') +endef + diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 93122c465686..cea7411a1046 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -135,6 +135,8 @@ endif endif endif +include $(GBUILDDIR)/Tempfile.mk + include $(foreach repo,$(gb_REPOS),$(repo)/RepositoryFixes.mk) $(eval $(call gb_Helper_collect_knownlibs)) |