summaryrefslogtreecommitdiffstats
path: root/solenv/gbuild/Deliver.mk
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2010-12-20 09:46:03 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2011-01-10 21:35:28 -0600
commitf692ba2e6513eba6375763e23f8eade6e8672611 (patch)
tree6db54fda5bb6f37b70b69c94019074dcaa474d81 /solenv/gbuild/Deliver.mk
parentlow resolution time for deliver files (diff)
downloadcore-f692ba2e6513eba6375763e23f8eade6e8672611.tar.gz
core-f692ba2e6513eba6375763e23f8eade6e8672611.zip
use gnu cp when available, fallback to posix tools outherwise
Diffstat (limited to 'solenv/gbuild/Deliver.mk')
-rw-r--r--solenv/gbuild/Deliver.mk18
1 files changed, 10 insertions, 8 deletions
diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk
index 65d1a6472b86..6b3c79e1974a 100644
--- a/solenv/gbuild/Deliver.mk
+++ b/solenv/gbuild/Deliver.mk
@@ -25,19 +25,13 @@
#
#*************************************************************************
-# gb_Deliver_GNUCOPY is set by the platform
+gb_Deliver_GNUCOPY := $(GNUCOPY)
# if ($true) then old files will get removed from the target location before
# they are copied there. In multi-user environments, this is needed you need to
# be the owner of the target file to be able to modify timestamps
gb_Deliver_CLEARONDELIVER := $(true)
-gb_Deliver__deliverprefix = mkdir -p $(dir $(1)) &&
-
-ifeq ($(gb_Deliver_CLEARONDELIVER),$(true))
-gb_Deliver__deliverprefix += rm -rf $(1) &&
-endif
-
define gb_Deliver_init
gb_Deliver_DELIVERABLES :=
@@ -49,9 +43,17 @@ gb_Deliver_DELIVERABLES += $$(patsubst $(REPODIR)/%,%,$(2)):$$(patsubst $(REPODI
endef
+ifeq($(strip $(gb_Deliver_GNUCOPY),)
define gb_Deliver_deliver
-$(call gb_Deliver__deliverprefix,$(2)) $(gb_Deliver_GNUCOPY) -f $(1) $(2) && touch -r $(1) $(2)
+mkdir -p $(dir $(2)) && $(if $(gb_Deliver_CLEARONDELIVER),rm -f $(1) &&) cp -f $(1) $(2) && touch -r $(1) $(2)
+
endef
+else
+define gb_Deliver_deliver
+mkdir -p $(dir $(2)) && $(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) -pf $(1) $(2)
+
+endef
+
# We are currently only creating a deliver.log, if only one module gets build.
# As it is possible to add gbuild modules into other (which is done for example for