Makefile: Introduce an option to hack a prefix onto shebang lines.
[profile] / Makefile
index ea368f2..af5dc13 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -338,6 +338,19 @@ $(relax)### generated by $(HERE)/Makefile; do not edit!" \
 ### Processing script links.
 
 script-source           = $(HERE)/bin/$(or $($1_SRC), $1)
+
+ifeq ($(prefix-shebang-p),t)
+all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
+$(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \
+               $$(call script-source,$$*) Makefile
+       $(call v_tag,SHEBANG)mkdir -p $(dir $@) && \
+               rm -f $@.new && \
+               sed "1s\a\(#! *\)/\a\1$(SHEBANG_PREFIX)/\a" \
+                       $(call script-source,$*) >$@.new && \
+               chmod --reference=$(call script-source,$*) $@.new && \
+               mv $@.new $@
+       $(script-hook/$*)
+else
 scriptlink-ok-p                 = \
        $(call symlink-ok-p,$(HOME)/bin/$1,$(call script-source,$1))
 all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))
@@ -348,6 +361,7 @@ $(addprefix $(HOME)/bin/, $(SCRIPTLINKS)): $(HOME)/bin/%: \
                ln -s $(call script-source,$*) $@.new && \
                mv $@.new $@
        $(script-hook/$*)
+endif
 
 all:: $(addprefix $(HOME)/bin/, $(SCRIPTLINKS))