[Libreoffice-commits] core.git: solenv/gbuild

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Sat Jan 4 08:31:55 PST 2014


 solenv/gbuild/extensions/post_PackageInfo.mk    |   17 +++++++++++++----
 solenv/gbuild/extensions/post_SpeedUpTargets.mk |    6 +++---
 2 files changed, 16 insertions(+), 7 deletions(-)

New commits:
commit ef98d63a0d51b5c8dbf4d4c0b4d678eca2c75905
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Sat Jan 4 17:25:54 2014 +0100

    speed up install-package-$FOO
    
    - make packageinfo needs to see the all the Makefiles
    - however, usually it does need to be called only once for a build
    - thus, doing the generation of the packageinfo files in recursion (with
      parseing the full Makefiles) and full generated dependencies,
      therefore allowing the install targets to do their work without
      parsing all the Makefiles and hence quicker
    
    Change-Id: I477a528dcdfc3fbf5d7147bf328672ab13ece8da

diff --git a/solenv/gbuild/extensions/post_PackageInfo.mk b/solenv/gbuild/extensions/post_PackageInfo.mk
index 54d6c5f..03a0f24 100644
--- a/solenv/gbuild/extensions/post_PackageInfo.mk
+++ b/solenv/gbuild/extensions/post_PackageInfo.mk
@@ -28,6 +28,7 @@ define gb_PackageInfo_emit_binaries_command
 @touch $(foreach suf,executables libraries files,$(gb_PackageInfo_get_target)/$(1).$(suf))
 @$(foreach executable,$(gb_Executable_MODULE_$(1)),echo "$(patsubst $(INSTDIR)/%,%,$(call gb_Executable_get_target,$(executable)))" >> $(gb_PackageInfo_get_target)/$(1).executables &&) true
 @$(foreach library,$(gb_Library_MODULE_$(1)),echo "$(patsubst $(INSTDIR)/%,%,$(call gb_Library_get_target,$(library)))" >> $(gb_PackageInfo_get_target)/$(1).libraries &&) true
+ at echo "$(foreach suf,executables libraries files,$(gb_PackageInfo_get_target)/$(1).$(suf)) \\" >> $(WORKDIR)/Dep/packageinfo.d
 
 endef
 
@@ -40,6 +41,7 @@ define gb_PackageInfo_emit_help_for_one_lang
 @touch $(foreach suf,executables libraries files,$(gb_PackageInfo_get_target)/help-$(1).$(suf))
 $(foreach target,$(gb_AllLangHelp_ALLTARGETS),$(call gb_PackageInfo_emit_help_for_one_target,$(1)/$(target),$(gb_PackageInfo_get_target)/help-$(1).files))
 $(foreach suf,html css,$(foreach file,$(wildcard $(INSTDIR)/help/$(1)/*.$(suf)),echo "$(patsubst $(INSTDIR)/%,%,$(file))" >> $(gb_PackageInfo_get_target)/help-$(1).files && )) true
+ at echo " $(foreach suf,executables libraries files,$(gb_PackageInfo_get_target)/help-$(1).$(suf)) \\" >> $(WORKDIR)/Dep/packageinfo.d
 
 endef
 
@@ -70,19 +72,26 @@ $(if $(filter-out qtz en-US,$(1)),$(foreach packagedir,$(patsubst %/,%,$(gb_AllL
 $(if $(filter $(gb_AllLangResTarget_LANGS),$(1)),$(foreach target,$(gb_AllLangResTarget_ALLTARGETS),$(call gb_PackageInfo_emit_l10n_for_one_ressource,$(target),$(1))))
 $(foreach uifile,$(gb_UIConfig_ALLFILES),$(call gb_PackageInfo_emit_l10n_for_one_uifile,$(1),$(firstword $(subst :,$(WHITESPACE),$(uifile))),$(lastword $(subst :,$(WHITESPACE),$(uifile)))))
 $(if $(filter $(gb_Configuration_LANGS),$(1)),$(foreach configfile,Langpack- res/fcfg_langpack_ res/registry_,$(call gb_PackageInfo_emit_l10n_for_one_configfile,$(1),$(configfile))))
+ at echo "$(foreach suf,executables libraries files,$(gb_PackageInfo_get_target)/l10n-$(1).$(suf)) \\" >> $(WORKDIR)/Dep/packageinfo.d
 
 endef
 
-.PHONY: packageinfo
+-include $(WORKDIR)/Dep/packageinfo.d
 $(foreach filelist,files executables libraries,$(gb_PackageInfo_get_target)/%.$(filelist)):
-	@rm -rf $(gb_PackageInfo_get_target) && mkdir $(gb_PackageInfo_get_target)
+	@rm -rf $(gb_PackageInfo_get_target) $(WORKDIR)/Dep/packageinfo.d && mkdir $(gb_PackageInfo_get_target)
 	$(foreach installmodule,$(gb_PackageInfo_InstallModules),$(call gb_PackageInfo_emit_binaries_command,$(installmodule)))
 	$(foreach helplang,$(gb_HELP_LANGS),$(call gb_PackageInfo_emit_help_for_one_lang,$(helplang)))
 	$(foreach l10nlang,$(if $(strip $(gb_WITH_LANG)),$(gb_WITH_LANG),en-US),$(call gb_PackageInfo_emit_l10n_for_one_lang,$(l10nlang)))
+	@echo "$(gb_PackageInfo_get_target)/packageinfo_all : $(filter-out $(WORKDIR)/Dep/%,$(MAKEFILE_LIST))" >> $(WORKDIR)/Dep/packageinfo.d
+	@touch $(gb_PackageInfo_get_target)/packageinfo_all
 
-packageinfo: $(gb_PackageInfo_get_target)/ure.files
+$(gb_PackageInfo_get_target)/packageinfo_all:
+	$(MAKE) -f $(firstword $(MAKEFILE_LIST)) $(gb_PackageInfo_get_target)/$(firstword $(gb_PackageInfo_InstallModules)).files
 
-install-package-%: $(foreach filelist,files executables libraries,$(gb_PackageInfo_get_target)/%.$(filelist))
+.PHONY : packageinfo
+packageinfo: $(gb_PackageInfo_get_target)/packageinfo_all
+
+install-package-%: $(gb_PackageInfo_get_target)/packageinfo_all
 	for executable in `cat $(gb_PackageInfo_get_target)/$*.executables`; \
 	do \
 		install -D $(INSTDIR)/$${executable} $(INSTALLDIR)/$${executable} ;\
diff --git a/solenv/gbuild/extensions/post_SpeedUpTargets.mk b/solenv/gbuild/extensions/post_SpeedUpTargets.mk
index 4b97d46..4a97a1a 100644
--- a/solenv/gbuild/extensions/post_SpeedUpTargets.mk
+++ b/solenv/gbuild/extensions/post_SpeedUpTargets.mk
@@ -22,10 +22,10 @@ endif
 
 ifneq ($(strip $(MAKECMDGOALS)),)
 # speed up depending on the target
-gb_SpeedUpTargets_LEVEL_4 := debugrun help translations
+gb_SpeedUpTargets_LEVEL_4 := debugrun help translations install-package-% packageinfo
 gb_SpeedUpTargets_LEVEL_3 := showmodules $(gb_SpeedUpTargets_LEVEL_4)
-gb_SpeedUpTargets_LEVEL_2 := $(gb_SpeedUpTargets_LEVEL_3) install-package-%
-gb_SpeedUpTargets_LEVEL_1 := clean showdeliverables $(gb_SpeedUpTargets_LEVEL_2)
+gb_SpeedUpTargets_LEVEL_2 := $(gb_SpeedUpTargets_LEVEL_3)
+gb_SpeedUpTargets_LEVEL_1 := clean showdeliverables $(gb_PackageInfo_get_target)/% $(gb_SpeedUpTargets_LEVEL_2)
 
 ifeq (T,$(if $(filter-out $(gb_SpeedUpTargets_LEVEL_1),$(MAKECMDGOALS)),,T))
 gb_FULLDEPS :=


More information about the Libreoffice-commits mailing list