summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-02-17 00:05:17 +0100
committerMichael Stahl <mstahl@redhat.com>2016-02-17 09:57:16 +0000
commit0bb0b5b0cfc1c03ded06481892d54bf2760567a9 (patch)
tree6da9b058b78d9c9f802d184595c9e1d06d9cfac1 /solenv
parentb94272a55ee208b22cf73e8738152d9feaa7916f (diff)
gbuild: AutoInstall: Packages in ooo module run into 8k Win32...
... command line limit, so use try to use $(file) on that platfrom while preserving the existing echo code for Macs. Change-Id: I65e3f6b082df201830fa16375a9fad407cff8085 Reviewed-on: https://gerrit.libreoffice.org/22409 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/AutoInstall.mk16
1 files changed, 16 insertions, 0 deletions
diff --git a/solenv/gbuild/AutoInstall.mk b/solenv/gbuild/AutoInstall.mk
index 1d999d645ff7..1fa2d38f05c1 100644
--- a/solenv/gbuild/AutoInstall.mk
+++ b/solenv/gbuild/AutoInstall.mk
@@ -9,6 +9,13 @@
# AutoInstall class
+# this is pretty horrible because
+# a) make sucks
+# b) this is an abuse of make anyway
+# c) make 4.0 has $(file) but Apple prefers to ship 10 year old version instead
+# d) Win32 make has an 8k command line lengh limit so needs to use $(file)
+# maybe generation should be moved to some python script or something
+
define gb_AutoInstall__escape
$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
endef
@@ -34,6 +41,11 @@ $(SCP2LIBTEMPLATE)(auto_$*_lib_$(call gb_AutoInstall__escape,$(1)),$(call gb_Lib
endef
+define gb_AutoInstall__gen_pkg
+PACKAGE_FILELIST(auto_$*_pkg_$(call gb_AutoInstall__escape,$(1)),$(1).filelist)
+
+endef
+
$(dir $(call gb_AutoInstall_get_target,%)).dir :
$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
@@ -67,8 +79,12 @@ endif
echo "$(SCP2EXETEMPLATE)(auto_$*_exe_$(call gb_AutoInstall__escape,$(exe)),$(call gb_Executable_get_filename,$(exe))$(if $(SCP2COMPONENTCONDITION),$(COMMA)$(SCP2COMPONENTCONDITION)))" >> $@;)
$(foreach jar,$(gb_Jar_MODULE_$*),\
echo '$(SCP2JARTEMPLATE)(auto_$*_jar_$(call gb_AutoInstall__escape,$(jar)),$(jar).jar)' >> $@;)
+ifeq ($(HAVE_GNUMAKE_FILE_FUNC),)
$(foreach pkg,$(gb_Package_MODULE_$*),\
echo 'PACKAGE_FILELIST(auto_$*_pkg_$(call gb_AutoInstall__escape,$(pkg)),$(pkg).filelist)' >> $@;)
+else
+ $(file >>$@,$(foreach pkg,$(gb_Package_MODULE_$*),$(call gb_AutoInstall__gen_pkg,$(pkg))))
+endif
$(call gb_AutoInstall_get_clean_target,%) :