diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-03-08 09:55:50 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-03-08 10:01:48 +0100 |
commit | 294b86e3dbbdb9b136cb17a51687f4e2762711cf (patch) | |
tree | 510d4355bdc4825d4b7e6ea5a1a102bdbd410fc3 /solenv/gbuild/Executable.mk | |
parent | f4926f2310be4870c948df806053f6573259e10f (diff) |
gbuild: fix mkdir optimization with make 3.81
The problem is that make 3.81 does not match pattern rules whose target
ends with '/' against directories.
(regression from 408822b54724f8170a1296ddd67e50d8291c8ee1,
90491a073c5b5faee782ad5eab63276fda2342e6)
So use a fake file ".dir" in the respective directory, and try not to
spawn unnecessary mkdir processes by checking for existence via realpath.
This is all quite ugly and should be reverted once support for make 3.81
is dropped.
Also, fix a pre-existing problem of pattern rules with multiple targets
that used to work by accident in Package.mk.
Diffstat (limited to 'solenv/gbuild/Executable.mk')
-rw-r--r-- | solenv/gbuild/Executable.mk | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk index af248758731b..90d1f09923a3 100644 --- a/solenv/gbuild/Executable.mk +++ b/solenv/gbuild/Executable.mk @@ -56,7 +56,7 @@ $(call gb_Executable_set_targettype_gui,$(2)) $(call gb_LinkTarget_LinkTarget,$(2)) $(call gb_LinkTarget_set_targettype,$(2),Executable) $(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \ - | $(dir $(call gb_Executable_get_target,$(1))) + | $(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_Executable_platform,$(1),$(2)) $$(eval $$(call gb_Module_register_target,$(call gb_Executable_get_target,$(1)),$(call gb_Executable_get_clean_target,$(1)))) |