summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-05-16 19:55:09 +0200
committerMichael Stahl <mstahl@redhat.com>2012-05-16 23:58:44 +0200
commit236055746ffe92ce3b2a7a9316b1083da046deb9 (patch)
tree03413d6b3b2f553ec67cbaeb5a8c4854b599fb53 /solenv
parent6cdc3b9ceb13954f82026d851ab4ca88a706cb84 (diff)
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.
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/AllLangResTarget.mk10
-rw-r--r--solenv/gbuild/LinkTarget.mk5
-rw-r--r--solenv/gbuild/SdiTarget.mk3
-rw-r--r--solenv/gbuild/UnoApiTarget.mk4
-rw-r--r--solenv/gbuild/WinResTarget.mk7
5 files changed, 6 insertions, 23 deletions
diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk
index 10a4bcbb85af..fbbcea56f1a1 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 05b947ebecf6..1854aa4eb506 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 7f414363eacb..c71c2d6ecfe3 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 5742f94058cb..03f350cd71d5 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 563a74f5bb77..b3c5b68126bc 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 :=