summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2014-01-04 17:25:54 +0100
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2014-01-04 17:31:22 +0100
commitef98d63a0d51b5c8dbf4d4c0b4d678eca2c75905 (patch)
tree18c362cfc78ddae07b63977f00e404831f9b22d1 /solenv
parent4e8f4aedb6418f46c7f6888057a6c62ba05905dc (diff)
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
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/extensions/post_PackageInfo.mk17
-rw-r--r--solenv/gbuild/extensions/post_SpeedUpTargets.mk6
2 files changed, 16 insertions, 7 deletions
diff --git a/solenv/gbuild/extensions/post_PackageInfo.mk b/solenv/gbuild/extensions/post_PackageInfo.mk
index 54d6c5f99380..03a0f2439111 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
+@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
+@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))))
+@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 4b97d46a5428..4a97a1a31c2f 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 :=