From d16fad918f5ed5580bda7f3f834769a12db7560b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 13 Sep 2010 14:33:54 +0200 Subject: Allow absolute paths for input files --- build/dist/functions.make | 17 +++++++++++------ 1 file 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)/ 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 \ -- cgit v1.1