Merge branch 'jc/daemon-access-hook'
[gitweb.git] / perl / Makefile
index 3e21766d8f08aacabb965adf73aabfeeaad9de7a..15d96fcc7a5a81ae0304bc51a603fe54bcbb95c6 100644 (file)
@@ -2,6 +2,7 @@
 # Makefile for perl support modules and routine
 #
 makfile:=perl.mak
+modules =
 
 PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
 prefix_SQ = $(subst ','\'',$(prefix))
@@ -19,22 +20,59 @@ clean:
        $(RM) ppport.h
        $(RM) $(makfile)
        $(RM) $(makfile).old
+       $(RM) PM.stamp
+
+$(makfile): PM.stamp
 
 ifdef NO_PERL_MAKEMAKER
 instdir_SQ = $(subst ','\'',$(prefix)/lib)
+
+modules += Git
+modules += Git/I18N
+modules += Git/IndexInfo
+modules += Git/SVN
+modules += Git/SVN/Memoize/YAML
+modules += Git/SVN/Fetcher
+modules += Git/SVN/Editor
+modules += Git/SVN/GlobSpec
+modules += Git/SVN/Log
+modules += Git/SVN/Migration
+modules += Git/SVN/Prompt
+modules += Git/SVN/Ra
+modules += Git/SVN/Utils
+
 $(makfile): ../GIT-CFLAGS Makefile
        echo all: private-Error.pm Git.pm Git/I18N.pm > $@
-       echo '  mkdir -p blib/lib/Git' >> $@
-       echo '  $(RM) blib/lib/Git.pm; cp Git.pm blib/lib/' >> $@
-       echo '  $(RM) blib/lib/Git/I18N.pm; cp Git/I18N.pm blib/lib/Git/' >> $@
+       set -e; \
+       for i in $(modules); \
+       do \
+               if test $$i = $${i%/*}; \
+               then \
+                       subdir=; \
+               else \
+                       subdir=/$${i%/*}; \
+               fi; \
+               echo '  $(RM) blib/lib/'$$i'.pm' >> $@; \
+               echo '  mkdir -p blib/lib'$$subdir >> $@; \
+               echo '  cp '$$i'.pm blib/lib/'$$i'.pm' >> $@; \
+       done
        echo '  $(RM) blib/lib/Error.pm' >> $@
        '$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
        echo '  cp private-Error.pm blib/lib/Error.pm' >> $@
        echo install: >> $@
-       echo '  mkdir -p "$$(DESTDIR)$(instdir_SQ)"' >> $@
-       echo '  mkdir -p "$$(DESTDIR)$(instdir_SQ)/Git"' >> $@
-       echo '  $(RM) "$$(DESTDIR)$(instdir_SQ)/Git.pm"; cp Git.pm "$$(DESTDIR)$(instdir_SQ)"' >> $@
-       echo '  $(RM) "$$(DESTDIR)$(instdir_SQ)/Git/I18N.pm"; cp Git/I18N.pm "$$(DESTDIR)$(instdir_SQ)/Git"' >> $@
+       set -e; \
+       for i in $(modules); \
+       do \
+               if test $$i = $${i%/*}; \
+               then \
+                       subdir=; \
+               else \
+                       subdir=/$${i%/*}; \
+               fi; \
+               echo '  $(RM) "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
+               echo '  mkdir -p "$$(DESTDIR)$(instdir_SQ)'$$subdir'"' >> $@; \
+               echo '  cp '$$i'.pm "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
+       done
        echo '  $(RM) "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
        '$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
        echo '  cp private-Error.pm "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@