[Libreoffice-commits] .: 6 commits - configure.in i18npool/Library_i18npool.mk solenv/gbuild

Michael Stahl mst at kemper.freedesktop.org
Wed May 16 15:00:33 PDT 2012


 configure.in                      |   14 ++++++++++++--
 i18npool/Library_i18npool.mk      |    2 +-
 solenv/gbuild/AllLangResTarget.mk |   27 ++++++++++-----------------
 solenv/gbuild/ComponentTarget.mk  |    3 ++-
 solenv/gbuild/Extension.mk        |    5 +++--
 solenv/gbuild/LinkTarget.mk       |    9 ++++-----
 solenv/gbuild/SdiTarget.mk        |    5 ++---
 solenv/gbuild/UnoApi.mk           |    8 ++++++++
 solenv/gbuild/UnoApiTarget.mk     |   25 +++++++++++++++----------
 solenv/gbuild/WinResTarget.mk     |    7 +------
 solenv/gbuild/gbuild.mk           |    3 ++-
 11 files changed, 60 insertions(+), 48 deletions(-)

New commits:
commit 7175ceede15271299e44b33a8de5d7aa32a15e50
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 16 23:29:18 2012 +0200

    i18npool: fix spurious re-deliver of i18npool.uno.so:
    
    The target is always older, because it is delivered while preserving
    the timestamp of the source, but here order only dependency is enough.

diff --git a/i18npool/Library_i18npool.mk b/i18npool/Library_i18npool.mk
index c2738de..fd85033 100644
--- a/i18npool/Library_i18npool.mk
+++ b/i18npool/Library_i18npool.mk
@@ -162,7 +162,7 @@ $(eval $(call gb_Library_add_generated_cobjects,i18npool,\
 # i18npool dlopens localedata_* libraries.
 # This is runtime dependency to prevent tests
 # to be run sooner then localedata_* exists.
-$(call gb_Library_get_target,i18npool) : \
+$(call gb_Library_get_target,i18npool) : | \
 	$(call gb_Library_get_target,localedata_en) \
 	$(call gb_Library_get_target,localedata_es) \
 	$(call gb_Library_get_target,localedata_euro) \
commit b6076ec3c1b9c384d8229cd079c39f510a9f38f7
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 16 20:32:28 2012 +0200

    gbuild: fix build executable dependencies:
    
    Rules that invoke generated executables should have dependencies on
    those executables.

diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk
index fbbcea5..eb36343 100644
--- a/solenv/gbuild/AllLangResTarget.mk
+++ b/solenv/gbuild/AllLangResTarget.mk
@@ -73,8 +73,8 @@ $(call gb_SrsPartMergeTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY)
 # defined by platform
 #  gb_SrsPartTarget__command_dep
 
-gb_SrsPartTarget_RSCTARGET := $(OUTDIR_FOR_BUILD)/bin/rsc$(gb_Executable_EXT_for_build)
-gb_SrsPartTarget_RSCCOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_SrsPartTarget_RSCTARGET)
+gb_ResTarget_RSCTARGET := $(OUTDIR_FOR_BUILD)/bin/rsc$(gb_Executable_EXT_for_build)
+gb_ResTarget_RSCCOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_ResTarget_RSCTARGET)
 
 define gb_SrsPartTarget__command
 $(call gb_Helper_abbreviate_dirs,\
@@ -86,12 +86,13 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(DEFS) \
 		-fp=$(1) \
 		$(if $(MERGEDFILE),$(MERGEDFILE),$<)" > $${RESPONSEFILE} && \
-	$(gb_SrsPartTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \
+	$(gb_ResTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \
 	rm -rf $${RESPONSEFILE})
 
 endef
 
-$(call gb_SrsPartTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY) | $(gb_SrsPartTarget_RSCTARGET)
+$(call gb_SrsPartTarget_get_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY) \
+		$(gb_ResTarget_RSCTARGET)
 	$(call gb_SrsPartTarget__command_dep,$*,$<)
 	$(call gb_SrsPartTarget__command,$@,$*,$<)
 
@@ -315,8 +316,6 @@ endef
 
 # ResTarget
 
-gb_ResTarget_RSCTARGET := $(gb_SrsPartTarget_RSCTARGET)
-gb_ResTarget_RSCCOMMAND := $(gb_SrsPartTarget_RSCCOMMAND)
 gb_ResTarget_DEFIMAGESLOCATION := $(SRCDIR)/icon-themes/galaxy/
 
 $(call gb_ResTarget_get_clean_target,%) :
@@ -324,7 +323,8 @@ $(call gb_ResTarget_get_clean_target,%) :
 	$(call gb_Helper_abbreviate_dirs,\
 		rm -f $(call gb_ResTarget_get_target,$*) $(call gb_ResTarget_get_imagelist_target,$*) $(call gb_ResTarget_get_outdir_target,$*) $(call gb_ResTarget_get_outdir_imagelist_target,$*))
 
-$(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) | $(gb_ResTarget_RSCTARGET)
+$(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) \
+		$(gb_ResTarget_RSCTARGET)
 	$(call gb_Output_announce,$*,$(true),RES,2)
 	$(call gb_Helper_abbreviate_dirs,\
 		mkdir -p $(dir $@) $(OUTDIR)/bin \
@@ -344,7 +344,8 @@ $(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) | $(gb_ResTarget_RSCT
 			-subMODULE=$(dir $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)) \
 			-subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \
 			-oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \
-			$(filter-out $(gb_Helper_MISCDUMMY),$^)" > $${RESPONSEFILE} && \
+			$(filter-out $(gb_Helper_MISCDUMMY) $(gb_ResTarget_RSCTARGET),$^)" \
+			> $${RESPONSEFILE} && \
 		$(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \
 		rm -f $${RESPONSEFILE})
 
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
index 89dde76..31dd441 100644
--- a/solenv/gbuild/ComponentTarget.mk
+++ b/solenv/gbuild/ComponentTarget.mk
@@ -51,7 +51,8 @@ $(call gb_ComponentTarget_get_clean_target,%) :
 		$(call gb_ComponentTarget_get_target,$*) \
 
 
-$(call gb_ComponentTarget_get_target,%) : $(call gb_ComponentTarget_get_source,$(SRCDIR),%) | $(gb_XSLTPROCTARGET)
+$(call gb_ComponentTarget_get_target,%) : \
+		$(call gb_ComponentTarget_get_source,$(SRCDIR),%) $(gb_XSLTPROCTARGET)
 	$(call gb_ComponentTarget__command,$@,$<,$*)
 
 $(call gb_ComponentTarget_get_target,%) :
diff --git a/solenv/gbuild/Extension.mk b/solenv/gbuild/Extension.mk
index 912018c..5029a20 100644
--- a/solenv/gbuild/Extension.mk
+++ b/solenv/gbuild/Extension.mk
@@ -166,7 +166,8 @@ $(call gb_Extension_get_rootdir,$(1))/$(2) : SDF := $(gb_SDFLOCATION)$(subst $(S
 $(call gb_Extension_get_rootdir,$(1))/$(2) : $$(SDF)
 endif
 $(call gb_Extension_get_target,$(1)) : $(call gb_Extension_get_rootdir,$(1))/$(2)
-$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3)
+$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3) \
+		$(gb_Extension_PROPMERGETARGET)
 	$$(call gb_Output_announce,$(2),$(true),PRP,3)
 	mkdir -p $$(dir $$@) && \
 	cp -f $$< $$@ \
@@ -188,7 +189,7 @@ $(call gb_Extension_get_target,$(1)) : $(call gb_Extension_get_rootdir,$(1))/$(2
 $(call gb_Extension_get_rootdir,$(1))/$(2) : SDF := $(gb_SDFLOCATION)$(subst $(SRCDIR),,$(subst $(WORKDIR)/CustomTarget,,$(dir $(3))))localize.sdf
 $(call gb_Extension_get_rootdir,$(1))/$(2) : $$(SDF)
 $(call gb_Extension_get_rootdir,$(1))/$(2) : $(gb_Extension_HELPEXTARGET)
-$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3)
+$(call gb_Extension_get_rootdir,$(1))/$(2) : $(3) $(gb_Extension_HELPEXTARGET)
 	$$(call gb_Output_announce,$(2),$(true),XHP,3)
 	mkdir -p $$(dir $$@) && \
 	$(gb_Extension_HELPEXCOMMAND) -i $$< -o $$@ -l $(4) -m $$(SDF)
diff --git a/solenv/gbuild/SdiTarget.mk b/solenv/gbuild/SdiTarget.mk
index c71c2d6..d911856 100644
--- a/solenv/gbuild/SdiTarget.mk
+++ b/solenv/gbuild/SdiTarget.mk
@@ -35,7 +35,7 @@ gb_SdiTarget_SVIDLTARGET := $(call gb_Executable_get_target_for_build,svidl)
 gb_SdiTarget_SVIDLCOMMAND := \
 	$(gb_Helper_set_ld_path) $(gb_SdiTarget_SVIDLTARGET)
 
-$(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi | $(gb_SdiTarget_SVIDLTARGET)
+$(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi $(gb_SdiTarget_SVIDLTARGET)
 	$(call gb_Output_announce,$*,$(true),SDI,1)
 	$(call gb_Helper_abbreviate_dirs,\
 		mkdir -p $(dir $@) $(dir $(call gb_SdiTarget_get_dep_target,$*)))
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index 03f350c..42584ce 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -66,8 +66,9 @@ define gb_UnoApiPartTarget__command
 
 endef
 
-$(call gb_UnoApiPartTarget_get_target,%.done) :
-	$(call gb_UnoApiPartTarget__command,$@,$*,$?)
+$(call gb_UnoApiPartTarget_get_target,%.done) : \
+		$(gb_UnoApiPartTarget_IDLCTARGET)
+	$(call gb_UnoApiPartTarget__command,$@,$*,$(filter-out $(gb_UnoApiPartTarget_IDLCTARGET),$?))
 
 ifeq ($(gb_FULLDEPS),$(true))
 
@@ -133,9 +134,12 @@ $(if $(or $(and $(1),$(2),$(3)),$(and $(1),$(2)),$(and $(2),$(3)),$(and $(1),$(3
 $(if $(4),,$(error No root has been set for the rdb file))
 endef
 
-$(call gb_UnoApiTarget_get_target,%):
+# FIXME cannot have a dependency on $(gb_UnoApiTarget_RDBMAKERTARGET) here
+# because that leads to dependency cycle because rdbmaker depends on offapi
+$(call gb_UnoApiTarget_get_target,%) : $(gb_UnoApiTarget_XML2CMPTARGET) \
+		$(gb_UnoApiTarget_REGCOMPARETARGET) $(gb_UnoApiTarget_REGMERGETARGET)
 	$(call gb_UnoApiTarget__check_mode,$(UNOAPI_FILES),$(UNOAPI_MERGE),$(UNOAPI_XML),$(UNOAPI_ROOT))
-	$(call gb_UnoApiTarget__command,$@,$*,$<,$?)
+	$(call gb_UnoApiTarget__command,$@,$*)
 
 .PHONY : $(call gb_UnoApiTarget_get_clean_target,%)
 $(call gb_UnoApiTarget_get_clean_target,%) :
@@ -281,15 +285,18 @@ touch $(1)
 
 endef
 
-$(call gb_UnoApiHeadersTarget_get_bootstrap_target,%) :
+$(call gb_UnoApiHeadersTarget_get_bootstrap_target,%) : \
+		$(gb_UnoApiHeadersTarget_CPPUMAKERTARGET)
 	$(call gb_Output_announce,$*,$(true),HPB,3)
 	$(call gb_UnoApiHeadersTarget__command,$@,$*,$(call gb_UnoApiHeadersTarget_get_bootstrap_dir,$*))
 
-$(call gb_UnoApiHeadersTarget_get_comprehensive_target,%) :
+$(call gb_UnoApiHeadersTarget_get_comprehensive_target,%) : \
+		$(gb_UnoApiHeadersTarget_CPPUMAKERTARGET)
 	$(call gb_Output_announce,$*,$(true),HPC,3)
 	$(call gb_UnoApiHeadersTarget__command,$@,$*,$(call gb_UnoApiHeadersTarget_get_comprehensive_dir,$*),-C)
 
-$(call gb_UnoApiHeadersTarget_get_target,%) :
+$(call gb_UnoApiHeadersTarget_get_target,%) : \
+		$(gb_UnoApiHeadersTarget_CPPUMAKERTARGET)
 	$(call gb_Output_announce,$*,$(true),HPP,3)
 	$(call gb_UnoApiHeadersTarget__command,$@,$*,$(call gb_UnoApiHeadersTarget_get_dir,$*),-L)
 
commit 236055746ffe92ce3b2a7a9316b1083da046deb9
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 16 19:55:09 2012 +0200

    further spurious dep-file rebuild fixes:
    
    With the way dep-file generation was changed for LinkTargets in
    8b5a984d45005d3df1c89eae897d6e04612625d8, it is necessary to change all
    other dep-file generation the same way, because the LinkTarget dep-files
    are outdated wrt. the object dep-files after an initial make run, and
    hence if any other dep-file depends in any way (even build-order) on a
    generated Executable, say by depending on the corresponding target file,
    then the PHONY entries in the outdated LinkTarget dep-files for the
    executable and its linked libraries cause all these objects to be
    recompiled.
    
    It is not a problem that there is a rule with the dep-file as target,
    and another rule for the corresponding actual target that writes the
    dep-file as a side-effect, without dependecy between the targets:
    because make does processing in 2 phases, first building all included
    makefiles, second all other targets, it is guaranteed that the 2
    commands don't race to overwrite the dep-file because (when there is no
    dependency between them) they will not be executed in the same phase.
    
    The only problem here is that this will probably make IDL processing a
    lot slower on Windows, writing all those dummy dep-files.

diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk
index 10a4bcb..fbbcea5 100644
--- a/solenv/gbuild/AllLangResTarget.mk
+++ b/solenv/gbuild/AllLangResTarget.mk
@@ -100,9 +100,6 @@ $(call gb_SrsPartTarget_get_dep_target,%) : $(SRCDIR)/% $(gb_Helper_MISCDUMMY)
 	$(call gb_Helper_abbreviate_dirs,\
 		mkdir -p $(dir $@) && \
 		echo '$(call gb_SrsPartTarget_get_target,$*) : $(gb_Helper_PHONY)' > $@)
-
-$(call gb_SrsPartTarget_get_dep_target,%) :
-	$(eval $(call gb_Output_error,Unable to find resource definition file $* in repositories: $(gb_SrsPartTarget_REPOS)))
 endif
 
 
@@ -237,7 +234,6 @@ $(call gb_SrsTarget_get_external_headers_target,%) :
 	    mkdir -p $(dir $@) && touch $@)
 
 $(call gb_SrsTarget_get_target,%) :
-	$(call gb_SrsTarget__command_dep,$(call gb_SrsTarget_get_dep_target,$*),$*,$(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))))
 	$(call gb_Output_announce,$*,$(true),SRS,1)
 	$(call gb_Helper_abbreviate_dirs,\
 		mkdir -p $(dir $@) && \
@@ -257,11 +253,7 @@ $(call gb_SrsTarget_get_target,$(1)) : PARTS :=
 $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget_get_target,$(1))
 $(call gb_SrsTarget_get_clean_target,$(1)) : $(call gb_SrsTemplateTarget_get_clean_target,$(1))
 ifeq ($(gb_FULLDEPS),$(true))
-ifneq ($(wildcard $(call gb_SrsTarget_get_dep_target,$(1))),)
-include $(call gb_SrsTarget_get_dep_target,$(1))
-else
-$(firstword $(MAKEFILE_LIST)) : $(call gb_SrsTarget_get_dep_target,$(1))
-endif
+-include $(call gb_SrsTarget_get_dep_target,$(1))
 endif
 
 endef
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 05b947e..1854aa4 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -253,7 +253,7 @@ $(call gb_ObjCxxObject_get_target,%) : $(call gb_ObjCxxObject_get_source,$(SRCDI
 	$(call gb_ObjCxxObject__command,$@,$*,$<,$(call gb_ObjCxxObject_get_dep_target,$*))
 
 ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_ObjCxxObject_get_dep_target,%) : $(call gb_ObjCxxObject_get_target,%)
+$(call gb_ObjCxxObject_get_dep_target,%) :
 	$(if $(wildcard $@),touch $@,\
 	  $(call gb_Object__command_dep,$@,$(call gb_ObjCxxObject_get_target,$*)))
 
@@ -271,7 +271,7 @@ $(call gb_ObjCObject_get_target,%) : $(call gb_ObjCObject_get_source,$(SRCDIR),%
 	$(call gb_ObjCObject__command,$@,$*,$<,$(call gb_ObjCObject_get_dep_target,$*))
 
 ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_ObjCObject_get_dep_target,%) : $(call gb_ObjCObject_get_target,%)
+$(call gb_ObjCObject_get_dep_target,%) :
 	$(if $(wildcard $@),touch $@,\
 	  $(call gb_Object__command_dep,$@,$(call gb_ObjCObject_get_target,$*)))
 
@@ -374,7 +374,6 @@ $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%)
 	$(call gb_LinkTarget__command_objectlist,$@,$*)
 
 ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_target,%) : | $(call gb_LinkTarget_get_dep_target,%)
 $(call gb_LinkTarget_get_dep_target,%) :
 	$(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCOBJECTS),$(OBJCXXOBJECTS),$(ASMOBJECTS),$(GENCOBJECTS),$(GENCXXOBJECTS))
 endif
diff --git a/solenv/gbuild/SdiTarget.mk b/solenv/gbuild/SdiTarget.mk
index 7f41436..c71c2d6 100644
--- a/solenv/gbuild/SdiTarget.mk
+++ b/solenv/gbuild/SdiTarget.mk
@@ -53,10 +53,9 @@ $(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi | $(gb_SdiTarget_SVIDLTARGET
 			$<)
 
 ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_SdiTarget_get_dep_target,%) : $(call gb_SdiTarget_get_target,%)
+$(call gb_SdiTarget_get_dep_target,%) :
 	$(if $(wildcard $@),touch $@,\
 	  $(call gb_Object__command_dep,$@,$(call gb_SdiTarget_get_target,$*)))
-
 endif
 
 .PHONY : $(call gb_SdiTarget_get_clean_target,%)
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index 5742f94..03f350c 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -160,7 +160,7 @@ endef
 
 ifeq ($(gb_FULLDEPS),$(true))
 
-$(call gb_UnoApiTarget_get_dep_target,%) : $(call gb_UnoApiTarget_get_target,%)
+$(call gb_UnoApiTarget_get_dep_target,%) :
 	$(call gb_UnoApiTarget__command_dep,$@,$*,$(UNOAPI_IDLFILES))
 
 endif
@@ -197,8 +197,6 @@ ifeq ($(gb_FULLDEPS),$(true))
 $(call gb_UnoApiTarget_get_dep_target,$(1)) : UNOAPI_IDLFILES += $(2)/$(3).idl
 $(call gb_UnoApiTarget_get_dep_target,$(1)) : \
 	$(call gb_UnoApiPartTarget_get_dep_target,$(2)/$(3))
-$(call gb_UnoApiPartTarget_get_dep_target,$(2)/$(3)) : \
-	$(call gb_UnoApiPartTarget_get_target,$(2)/idl.done)
 endif
 
 endef
diff --git a/solenv/gbuild/WinResTarget.mk b/solenv/gbuild/WinResTarget.mk
index 563a74f..b3c5b68 100644
--- a/solenv/gbuild/WinResTarget.mk
+++ b/solenv/gbuild/WinResTarget.mk
@@ -16,12 +16,7 @@ $(call gb_WinResTarget_get_target,$(1)) : INCLUDE := $(SOLARINC)
 $(call gb_WinResTarget_get_clean_target,$(1)) : RCFILE :=
 $(call gb_WinResTarget_get_target,$(1)) : RCFILE :=
 ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_WinResTarget_get_target,$(1)) : $(call gb_WinResTarget_get_dep_target,$(1))
-ifneq ($(wildcard $(call gb_WinResTarget_get_dep_target,$(1))),)
-include $(call gb_WinResTarget_get_dep_target,$(1))
-else
-$(firstword $(MAKEFILE_LIST)) : $(call gb_WinResTarget_get_dep_target,$(1))
-endif
+-include $(call gb_WinResTarget_get_dep_target,$(1))
 $(call gb_WinResTarget_get_dep_target,$(1)) : DEFS := $$(gb_WinResTarget_DEFAULTDEFS)
 $(call gb_WinResTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_WinResTarget_INCLUDE)
 $(call gb_WinResTarget_get_dep_target,$(1)) : RCFILE :=
commit 6cdc3b9ceb13954f82026d851ab4ca88a706cb84
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 16 13:51:05 2012 +0200

    fix LinkTarget dep-target dependencies:
    
    The LinkTarget dep-target depends on the LinkTarget headers target,
    which appears unnecessary and harmful because since commit
    8b5a984d45005d3df1c89eae897d6e04612625d8 the initial dep files always
    contain PHONY deps anyway; also the PHONY deps cause spurious re-builds
    here because e.g. the tools library depends on a tools package that
    depends on a tools custom target that depends on some executable
    that depends on libuno_sal that depends on its objects which depend on
    this PHONY thing so all that stuff is spuriously re-compiled in make
    subsequentcheck after a build from scratch, breaking tests because
    being subsequent they don't expect libraries to change under them.
    Also, link target shouldn't depend on its dep target.

diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 4e78ce5..05b947e 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -102,7 +102,7 @@ endef
 # In the dep file rule just touch it so it's newer than the object.
 
 # The gb_Object__command_dep generates an "always rebuild" dep file;
-# It is _only_ used in case the user deletes the object dep file.
+# It is used on first build and in case the user deletes the object dep file.
 ifeq ($(gb_FULLDEPS),$(true))
 define gb_Object__command_dep
 mkdir -p $(dir $(1)) && \
@@ -374,8 +374,8 @@ $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%)
 	$(call gb_LinkTarget__command_objectlist,$@,$*)
 
 ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_dep_target,%)
-$(call gb_LinkTarget_get_dep_target,%) : | $(call gb_LinkTarget_get_headers_target,%)
+$(call gb_LinkTarget_get_target,%) : | $(call gb_LinkTarget_get_dep_target,%)
+$(call gb_LinkTarget_get_dep_target,%) :
 	$(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCOBJECTS),$(OBJCXXOBJECTS),$(ASMOBJECTS),$(GENCOBJECTS),$(GENCXXOBJECTS))
 endif
 
commit 07c0b800d9d70857882238204820f75b8dc98b26
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 16 13:48:37 2012 +0200

    fix spurious re-delivery of RDB files:
    
    The OUTDIR RDB depends on Packages for IDL and headers, the latter of
    which depends on the WORKDIR RDB, hence preserving timestamps here leads
    to spurious re-delivery because the OUTDIR RDB always has older
    timestamp than the headers Package.

diff --git a/solenv/gbuild/UnoApi.mk b/solenv/gbuild/UnoApi.mk
index 9ecf1ed..41bfc9f 100644
--- a/solenv/gbuild/UnoApi.mk
+++ b/solenv/gbuild/UnoApi.mk
@@ -30,6 +30,14 @@ $(call gb_UnoApi_get_clean_target,%) :
 	$(call gb_Helper_abbreviate_dirs,\
 		rm -f $(call gb_UnoApi_get_target,$*))
 
+# override the rule from Package.mk:44:
+# preserving timestamps is not desirable here, because the OUTDIR target
+# depends on package targets _inc and _idl, and those depend on the WORKDIR
+# target, so with timestamps preserved the RDB always gets delivered again
+$(call gb_UnoApi_get_target,%) : $(call gb_UnoApiTarget_get_target,%)
+	$(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) --no-dereference --force $< $@
+
+
 define gb_UnoApi_UnoApi
 $(call gb_UnoApiTarget_UnoApiTarget,$(1))
 $(call gb_UnoApiHeadersTarget_UnoApiHeadersTarget,$(1))
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 8d35ab3..b570cec 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -285,6 +285,7 @@ include $(SOLARENV)/inc/minor.mk
 # For example:
 # $(OUTDIR)/bin/% for executables collides
 #	with $(OUTDIR)/bin/%.res for resources on unix
+#	with $(OUTDIR)/bin/%.rdb for UnoApi
 # $(OUTDIR)/lib/%.lib collides
 #	on windows (static and dynamic libs)
 # $(OUTDIR)/xml/% for packageparts collides
@@ -303,6 +304,7 @@ include $(foreach class, \
 	StaticLibrary \
 	Executable \
 	SdiTarget \
+	UnoApi \
 	Package \
 	CustomTarget \
 	ExternalLib \
@@ -315,7 +317,6 @@ include $(foreach class, \
 	JunitTest \
 	Module \
 	UnoApiTarget \
-	UnoApi \
 	UnoApiMerge \
 	InternalUnoApi \
 	Zip \
commit 0b1e380e02e1b480648d5101d68c7e1e47520bc9
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 16 15:45:36 2012 +0200

    try to fix --with-solver-and-workdir-root on Windows
    
    idlc breaks because sal considers X:\\foo an invalid system path

diff --git a/configure.in b/configure.in
index 4c82f39..9c23d8a 100644
--- a/configure.in
+++ b/configure.in
@@ -2206,7 +2206,12 @@ if test -n "${with_solver_and_workdir_root}"; then
       AC_MSG_ERROR([directory does not exist: ${with_solver_and_workdir_root}])
     fi
     PathFormat "${with_solver_and_workdir_root}"
-    SOLARVER=${formatted_path}/solver
+    # IsValidFilePath in /sal/osl/w32/file_url.cxx rejects "X:\\" breaking idlc
+    if echo ${formatted_path} | $GREP -q '/$'; then
+        SOLARVER=${formatted_path}solver
+    else
+        SOLARVER=${formatted_path}/solver
+    fi
 else
     SOLARVER=${SRC_ROOT}/solver
 fi
@@ -3396,7 +3401,12 @@ fi
 INPATH="${OUTPATH}${PROEXT}"
 if test -n "${with_solver_and_workdir_root}"; then
     PathFormat "${with_solver_and_workdir_root}"
-    WORKDIR=${formatted_path}/workdir/${INPATH}
+    # IsValidFilePath in /sal/osl/w32/file_url.cxx rejects "X:\\" breaking idlc
+    if echo ${formatted_path} | $GREP -q '/$'; then
+        WORKDIR=${formatted_path}workdir/${INPATH}
+    else
+        WORKDIR=${formatted_path}/workdir/${INPATH}
+    fi
 else
     WORKDIR=${SRC_ROOT}/workdir/${INPATH}
 fi


More information about the Libreoffice-commits mailing list