Jeff King <peff@xxxxxxxx> writes: > define cmd_munge_script > $(RM) $@ $@+ && \ > +{ \ > +includes="$(filter MAKE/%.sh,$^)"; \ > +if ! test -z "$$includes"; then \ > + cat $$includes; \ > +fi && \ > sed -e '1s|#!.*/sh|#!$(call sqi,$(SHELL_PATH))|' \ > -e 's|@SHELL_PATH@|$(call sqi,$(SHELL_PATH))|' \ > - -e 's|@@DIFF@@|$(call sqi,$(DIFF))|' \ > -e 's|@@LOCALEDIR@@|$(call sqi,$(localedir))|g' \ > -e 's/@@NO_CURL@@/$(NO_CURL)/g' \ > -e 's/@@USE_GETTEXT_SCHEME@@/$(USE_GETTEXT_SCHEME)/g' \ > -e $(BROKEN_PATH_FIX) \ > -e 's|@@GITWEBDIR@@|$(call sqi,$(gitwebdir))|g' \ > -e 's|@@PERL@@|$(call sqi,$(PERL_PATH))|g' \ > - $@.sh >$@+ > + $@.sh; \ > +} >$@+ > endef Sorry, but I am not quite sure what is going on here. - if $includes does not exist, cat $includes will barf but that is OK; - if $includes is empty, there is no point running cat so that is OK; - if $includes is not empty, we want to cat. And then after emitting that piece, we start processing the *.sh source file, replacing she-bang line? > diff --git a/git-sh-setup.sh b/git-sh-setup.sh > index fffa3c7..627d289 100644 > --- a/git-sh-setup.sh > +++ b/git-sh-setup.sh > @@ -285,7 +285,7 @@ clear_local_git_env() { > # remove lines from $1 that are not in $2, leaving only common lines. > create_virtual_base() { > sz0=$(wc -c <"$1") > - @@DIFF@@ -u -La/"$1" -Lb/"$1" "$1" "$2" | git apply --no-add > + $MAKE_DIFF -u -La/"$1" -Lb/"$1" "$1" "$2" | git apply --no-add > sz1=$(wc -c <"$1") This would mean that after this mechanism is extensively employed throughout our codebase, any random environment variable the user has whose name happens to begin with "MAKE_" will interfere with us (rather, we will override such a variable while we run). Having to carve out our own namespace in such a way is OK, but we would want to see that namespace somewhat related to the name of our project, not to the name of somebody else's like "make", no? > > # If we do not have enough common material, it is not > diff --git a/script/mksh b/script/mksh > new file mode 100644 > index 0000000..d41e77a > --- /dev/null > +++ b/script/mksh > @@ -0,0 +1,4 @@ > +#!/bin/sh > + > +name=$1; shift > +printf "MAKE_%s='%s'\n" "$name" "$(sed "s/'/'\\''/g")" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html