aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-09-13 14:33:54 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-09-13 14:33:54 +0200
commitd16fad918f5ed5580bda7f3f834769a12db7560b (patch)
tree1d46aa813a6acb9075579be59482a13c21ca24d4
parent5b6ea5af7ee234c1c3690243374f152361a9a5d7 (diff)
Allow absolute paths for input files
-rw-r--r--build/dist/functions.make17
1 files changed, 11 insertions, 6 deletions
diff --git a/build/dist/functions.make b/build/dist/functions.make
index fcebe67..d87b8d8 100644
--- a/build/dist/functions.make
+++ b/build/dist/functions.make
@@ -15,7 +15,7 @@ $(out_root)/%: dist_exec := $(dist_exec)
# Arguments:
#
-# $1 - files
+# $1 - files; if not an absolute path, assume relative to src_base
# $2 - optional destination directory. If not specified,
# $(dist_prefix)/<path> is used where path is computed as
# difference between src_base and src_root.
@@ -40,20 +40,25 @@ $(out_base)/%: dist-dir = \
$(call dist-dir-body,$1,$2,$(if $3,$3,$(dist_prefix)$(subst \
$(src_root),,$(src_base))))
-
$(out_base)/%: dist-data-body = \
$(call message,,$(dist_dir) $2)\
-$(foreach d,$(sort $(dir $(addprefix $2/,$1))),$(literal_newline)\
+$(foreach d,$(sort $(dir $(addprefix $2/,$(foreach f,$1,$(if \
+$(filter /%,$f), $(notdir $f), $f))))),$(literal_newline)\
$(literal_tab)$(call message,,$(dist_dir) $d))\
$(foreach f,$1,$(literal_newline)\
-$(literal_tab)$(call message,dist $2/$f,$(dist_data) $(src_base)/$f $2/$f))
+$(literal_tab)$(call message,dist $2/$(if $(filter /%,$f),$(notdir \
+$f),$f),$(dist_data) $(if $(filter /%,$f),$f,$(src_base)/$f) $2/$(if \
+$(filter /%,$f),$(notdir $f),$f)))
$(out_base)/%: dist-exec-body = \
$(call message,,$(dist_dir) $2)\
-$(foreach d,$(sort $(dir $(addprefix $2/,$1))),$(literal_newline)\
+$(foreach d,$(sort $(dir $(addprefix $2/,$(foreach f,$1,$(if \
+$(filter /%,$f), $(notdir $f), $f))))),$(literal_newline)\
$(literal_tab)$(call message,,$(dist_dir) $d))\
$(foreach f,$1,$(literal_newline)\
-$(literal_tab)$(call message,dist $2/$f,$(dist_exec) $(src_base)/$f $2/$f))
+$(literal_tab)$(call message,dist $2/$(if $(filter /%,$f),$(notdir \
+$f),$f),$(dist_exec) $(if $(filter /%,$f),$f,$(src_base)/$f) $2/$(if \
+$(filter /%,$f),$(notdir $f),$f)))
$(out_base)/%: dist-dir-body = \
$(call message,dist $3/$1,find -L $(src_base)/$1 $2 -type f -print \