diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-10-23 14:00:50 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-10-23 15:12:43 +0200 |
commit | 85b6a93cf41fb05e726027e34fcd805330e20414 (patch) | |
tree | 3f0404f073b8bd6d442a59e8075a1c25d61b54da /solenv/gbuild/Executable.mk | |
parent | 3784cd9b03f9251ebbffd9a976363f685b3bc58a (diff) |
gbuild: fix AUXTARGETS:
This finally blew up spectacularly on Windows because we now have
packages delivering external libraries to the solver, where the
libraries are not defined by Library class, which leads to accidental
inheritance of AUXTARGETS variable and failure to deliver nonexistent
UnpackedTarball/.../libpq/postgresql-sdbc-impl.uno.dll
Remove the custom deliver rule that uses AUXTARGETS, and instead
let those files be handled individually by default Package.mk rules.
This requires a dummy touch rule for each file, and unfortunately a
pattern rule cannot be used here because of silly naming differences
between implibs and dlls on Windows...
AUXTARGETS do not cause problems for clean targets because there is no
interdependency there, so keep them there.
Change-Id: I2138f635334ff4517a2d31ef91cfd03a46745fd6
Diffstat (limited to 'solenv/gbuild/Executable.mk')
-rw-r--r-- | solenv/gbuild/Executable.mk | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk index 7517e1621013..fab3be92e39d 100644 --- a/solenv/gbuild/Executable.mk +++ b/solenv/gbuild/Executable.mk @@ -37,11 +37,6 @@ $(call gb_Executable_get_clean_target,%) : rm -f $(call gb_Executable_get_target,$*) \ $(AUXTARGETS)) -$(call gb_Executable_get_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - $(call gb_Deliver_deliver,$<,$@) \ - $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) - define gb_Executable_Executable ifeq (,$$(findstring $(1),$$(gb_Executable_KNOWN))) $$(eval $$(call gb_Output_info,Currently known executables: $(sort $(gb_Executable_KNOWN)),ALL)) @@ -58,6 +53,7 @@ $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS)) $(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \ | $(dir $(call gb_Executable_get_target,$(1))).dir $(call gb_Executable_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2)) +$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Executable_Executable_platform,$(1),$(2)) $$(eval $$(call gb_Module_register_target,$(call gb_Executable_get_target,$(1)),$(call gb_Executable_get_clean_target,$(1)))) $(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1)) @@ -68,6 +64,15 @@ define gb_Executable_set_targettype_gui $(call gb_LinkTarget_get_target,Executable/$(1)$(gb_Executable_EXT)) : TARGETGUI := $(2) endef +# The auxtarget is delivered via the rule in Package.mk. +# gb_Executable_add_auxtarget executable outdirauxtarget +define gb_Executable_add_auxtarget +$(call gb_LinkTarget_add_auxtarget,$(call gb_Executable_get_linktargetname,$(1)),$(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktargetname,$(1))))/$(notdir $(2))) +$(call gb_Executable_get_target,$(1)) : $(2) +$(2) : $(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktargetname,$(1))))/$(notdir $(2)) +$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS += $(2) + +endef define gb_Executable_forward_to_Linktarget gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Executable_get_linktargetname,$$(1)),$$(2),$$(3),Executable_$$(1)) |