summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2011-10-18 17:27:32 +0200
committerMichael Stahl <mstahl@redhat.com>2011-10-18 17:39:10 +0200
commit86a2270f856244e85b3fb91792fd936d793852ff (patch)
tree8825ef122aafdc76267cc06b62fc98c51c55962b
parent72acea9f28f1d4975c2e7149963e61a3901ec590 (diff)
gb_Library_set_componentfile: depend from workdir
The dependecy from the outdir lib to the component file is racy, because we preserve timestamps when delivering: if the component file and the workdir library are built in parallel, and the component file ends up being newer, then the library will always be delivered because its timestamp is always older. Work around this by having the workdir library depend on the component file.
-rw-r--r--solenv/gbuild/Library.mk4
1 files changed, 3 insertions, 1 deletions
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 10bee87f89a1..39afc5aa42ab 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -80,7 +80,9 @@ endef
define gb_Library_set_componentfile
$(call gb_ComponentTarget_ComponentTarget,$(or $(strip $(3)),$(strip $(2))),$(call gb_Library__get_componentprefix,$(1)),\
$(call gb_Library_get_runtime_filename,$(if $(MERGELIBS),$(if $(filter $(gb_MERGED_LIBS),$(1)),merged,$(1)),$(1))),$(2))
-$(call gb_Library_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(2)) $(call gb_ComponentTarget_get_outdir_inbuild_target,$(2))
+$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))) : \
+ $(call gb_ComponentTarget_get_outdir_target,$(2)) \
+ $(call gb_ComponentTarget_get_outdir_inbuild_target,$(2))
$(call gb_Library_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(or $(strip $(3)),$(strip $(2))))
endef