summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2011-01-27 09:47:18 +0100
committerMathias Bauer <mba@openoffice.org>2011-01-27 09:47:18 +0100
commit079e072e186a2e267284a2c4354f5f18843ea0a7 (patch)
tree4ce1f523547ef96cdf7728ec1806f0929446774d /solenv
parenta239103a877de032e11acfa645d059c45fd28d10 (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.mk2
-rw-r--r--solenv/gbuild/LinkTarget.mk37
-rw-r--r--solenv/gbuild/Tempfile.mk38
-rw-r--r--solenv/gbuild/gbuild.mk2
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))