blob: 15d96fcc7a5a81ae0304bc51a603fe54bcbb95c6 [file] [log] [blame]
Alex Riesenf8487182006-12-04 10:50:04 +01001#
2# Makefile for perl support modules and routine
3#
4makfile:=perl.mak
Jonathan Nieder1fd8f972012-06-15 13:05:05 -05005modules =
Alex Riesenf8487182006-12-04 10:50:04 +01006
7PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
8prefix_SQ = $(subst ','\'',$(prefix))
Ævar Arnfjörð Bjarmason5e9637c2011-11-18 00:14:42 +01009localedir_SQ = $(subst ','\'',$(localedir))
Alex Riesenf8487182006-12-04 10:50:04 +010010
Shawn O. Pearce2314c942007-03-06 02:09:14 -050011ifndef V
Shawn O. Pearce74f2b2a2007-03-06 01:35:01 -050012 QUIET = @
13endif
14
Alex Riesenf8487182006-12-04 10:50:04 +010015all install instlibdir: $(makfile)
Shawn O. Pearce74f2b2a2007-03-06 01:35:01 -050016 $(QUIET)$(MAKE) -f $(makfile) $@
Alex Riesenf8487182006-12-04 10:50:04 +010017
18clean:
Shawn O. Pearce74f2b2a2007-03-06 01:35:01 -050019 $(QUIET)test -f $(makfile) && $(MAKE) -f $(makfile) $@ || exit 0
Alex Riesenf8487182006-12-04 10:50:04 +010020 $(RM) ppport.h
21 $(RM) $(makfile)
22 $(RM) $(makfile).old
Junio C Hamanoee9be062012-07-27 20:04:20 +000023 $(RM) PM.stamp
24
25$(makfile): PM.stamp
Alex Riesenf8487182006-12-04 10:50:04 +010026
27ifdef NO_PERL_MAKEMAKER
28instdir_SQ = $(subst ','\'',$(prefix)/lib)
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050029
30modules += Git
31modules += Git/I18N
Michael G. Schwern10c2aa52012-07-26 17:26:05 -070032modules += Git/IndexInfo
Michael G. Schwern29499c02012-07-26 16:22:24 -070033modules += Git/SVN
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050034modules += Git/SVN/Memoize/YAML
35modules += Git/SVN/Fetcher
36modules += Git/SVN/Editor
Michael G. Schwern3d9be152012-07-26 17:26:06 -070037modules += Git/SVN/GlobSpec
Michael G. Schwernb74fda12012-07-26 17:26:01 -070038modules += Git/SVN/Log
Michael G. Schwernb772cb92012-07-26 17:26:03 -070039modules += Git/SVN/Migration
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050040modules += Git/SVN/Prompt
41modules += Git/SVN/Ra
Michael G. Schwernc2768fa2012-07-26 16:22:22 -070042modules += Git/SVN/Utils
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050043
Alex Riesenf8487182006-12-04 10:50:04 +010044$(makfile): ../GIT-CFLAGS Makefile
Ævar Arnfjörð Bjarmason5eb660e2012-03-10 12:29:35 +000045 echo all: private-Error.pm Git.pm Git/I18N.pm > $@
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050046 set -e; \
47 for i in $(modules); \
48 do \
Jonathan Nieder73abda32012-06-15 18:02:34 -050049 if test $$i = $${i%/*}; \
50 then \
51 subdir=; \
52 else \
53 subdir=/$${i%/*}; \
54 fi; \
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050055 echo ' $(RM) blib/lib/'$$i'.pm' >> $@; \
Jonathan Nieder73abda32012-06-15 18:02:34 -050056 echo ' mkdir -p blib/lib'$$subdir >> $@; \
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050057 echo ' cp '$$i'.pm blib/lib/'$$i'.pm' >> $@; \
58 done
Brandon Casey058fb412008-07-22 16:15:41 -050059 echo ' $(RM) blib/lib/Error.pm' >> $@
60 '$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
61 echo ' cp private-Error.pm blib/lib/Error.pm' >> $@
Alex Riesenf8487182006-12-04 10:50:04 +010062 echo install: >> $@
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050063 set -e; \
64 for i in $(modules); \
65 do \
Jonathan Nieder73abda32012-06-15 18:02:34 -050066 if test $$i = $${i%/*}; \
67 then \
68 subdir=; \
69 else \
70 subdir=/$${i%/*}; \
71 fi; \
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050072 echo ' $(RM) "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
Johannes Sixt01a1a4b2012-06-29 10:07:44 +020073 echo ' mkdir -p "$$(DESTDIR)$(instdir_SQ)'$$subdir'"' >> $@; \
Jonathan Nieder1fd8f972012-06-15 13:05:05 -050074 echo ' cp '$$i'.pm "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
75 done
Junio C Hamano3696c4c2009-09-21 12:44:05 -070076 echo ' $(RM) "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
Brandon Casey058fb412008-07-22 16:15:41 -050077 '$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
Junio C Hamano3696c4c2009-09-21 12:44:05 -070078 echo ' cp private-Error.pm "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
Alex Riesenf8487182006-12-04 10:50:04 +010079 echo instlibdir: >> $@
80 echo ' echo $(instdir_SQ)' >> $@
81else
82$(makfile): Makefile.PL ../GIT-CFLAGS
Ævar Arnfjörð Bjarmason5e9637c2011-11-18 00:14:42 +010083 $(PERL_PATH) $< PREFIX='$(prefix_SQ)' INSTALL_BASE='' --localedir='$(localedir_SQ)'
Alex Riesenf8487182006-12-04 10:50:04 +010084endif
85
86# this is just added comfort for calling make directly in perl dir
87# (even though GIT-CFLAGS aren't used yet. If ever)
88../GIT-CFLAGS:
89 $(MAKE) -C .. GIT-CFLAGS