OSDN Git Service

Work around sed and make interactions on the backslash at the end of line.
authorJunio C Hamano <junkio@cox.net>
Fri, 7 Jul 2006 20:04:35 +0000 (13:04 -0700)
committerJunio C Hamano <junkio@cox.net>
Sat, 8 Jul 2006 21:15:09 +0000 (14:15 -0700)
Traditionally 'i' and 'a' commands to sed have been unfriendly
with make, primarily because different make implementations did
unexpected things to backslashes at the end of lines.  So work
it around by not using 'i' command.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Makefile

index 71657ec..01b9a94 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -550,9 +550,13 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/Makefile
 $(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
        rm -f $@ $@+
        INSTLIBDIR=`$(MAKE) -C perl -s --no-print-directory instlibdir` && \
-       sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|1' \
-           -e '2i\
-               use lib (split(/:/, $$ENV{GITPERLLIB} || '\'"$$INSTLIBDIR"\''));' \
+       sed -e '1{' \
+           -e '        s|#!.*perl|#!$(PERL_PATH_SQ)|' \
+           -e '        h' \
+           -e '        s=.*=use lib (split(/:/, $$ENV{GITPERLLIB} || "@@INSTLIBDIR@@"));=' \
+           -e '        H' \
+           -e '        x' \
+           -e '}' \
            -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
            -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
            $@.perl >$@+