parameterize FIND and SED

master
Joey Hess 2010-09-27 16:10:13 -04:00
parent e22b18aabc
commit 16dd9c4fc6
2 changed files with 26 additions and 18 deletions

View File

@ -13,6 +13,18 @@ pure_install:: extra_install
VER=$(shell perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog) VER=$(shell perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog)
# Parameterized programs used by Makefile.
FIND?=find
SED?=sed
# Additional configurable path variables.
W3M_CGI_BIN?=$(PREFIX)/lib/w3m/cgi-bin
tflag=$(shell if [ -n "$$NOTAINT" ] && [ "$$NOTAINT" != 1 ]; then printf -- "-T"; fi)
extramodules=$(shell if [ "$$PROFILE" = 1 ]; then printf -- "-d:NYTProf"; fi)
outprogs=ikiwiki.out ikiwiki-transition.out ikiwiki-calendar.out
scripts=ikiwiki-update-wikilist ikiwiki-makerepo
PROBABLE_INST_LIB=$(shell \\ PROBABLE_INST_LIB=$(shell \\
if [ "$(INSTALLDIRS)" = "perl" ]; then \\ if [ "$(INSTALLDIRS)" = "perl" ]; then \\
echo $(INSTALLPRIVLIB); \\ echo $(INSTALLPRIVLIB); \\
@ -23,14 +35,6 @@ PROBABLE_INST_LIB=$(shell \\
fi \\ fi \\
) )
# Additional configurable path variables.
W3M_CGI_BIN?=$(PREFIX)/lib/w3m/cgi-bin
tflag=$(shell if [ -n "$$NOTAINT" ] && [ "$$NOTAINT" != 1 ]; then printf -- "-T"; fi)
extramodules=$(shell if [ "$$PROFILE" = 1 ]; then printf -- "-d:NYTProf"; fi)
outprogs=ikiwiki.out ikiwiki-transition.out ikiwiki-calendar.out
scripts=ikiwiki-update-wikilist ikiwiki-makerepo
%.out: %.in %.out: %.in
./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < $< > $@ ./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < $< > $@
chmod +x $@ chmod +x $@
@ -46,7 +50,7 @@ extra_build: $(outprogs) ikiwiki.setup docwiki
./mdwn2man ikiwiki-update-wikilist 1 doc/ikiwiki-update-wikilist.mdwn > ikiwiki-update-wikilist.man ./mdwn2man ikiwiki-update-wikilist 1 doc/ikiwiki-update-wikilist.mdwn > ikiwiki-update-wikilist.man
./mdwn2man ikiwiki-calendar 1 doc/ikiwiki-calendar.mdwn > ikiwiki-calendar.man ./mdwn2man ikiwiki-calendar 1 doc/ikiwiki-calendar.mdwn > ikiwiki-calendar.man
$(MAKE) -C po $(MAKE) -C po
sed -i.bkp "s/Version:.*/Version: $$(perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog)/" ikiwiki.spec $(SED) -i.bkp "s/Version:.*/Version: $$(perl -e '$$_=<>;print m/\((.*?)\)/'<debian/changelog)/" ikiwiki.spec
rm -f ikiwiki.spec.bkp rm -f ikiwiki.spec.bkp
docwiki: docwiki:
@ -63,9 +67,9 @@ myclean: clean
underlay_install: underlay_install:
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki install -d $(DESTDIR)$(PREFIX)/share/ikiwiki
for dir in `cd underlays && find . -follow -type d ! -regex '.*\.svn.*'`; do \ for dir in `cd underlays && $(FIND) . -follow -type d ! -regex '.*\.svn.*'`; do \
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
for file in `find underlays/$$dir -follow -maxdepth 1 -type f`; do \ for file in `$(FIND) underlays/$$dir -follow -maxdepth 1 -type f`; do \
cp -aL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir 2>/dev/null || \ cp -aL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir 2>/dev/null || \
install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
done; \ done; \
@ -95,26 +99,26 @@ underlay_install:
extra_install: underlay_install extra_install: underlay_install
# Install example sites. # Install example sites.
for dir in `cd doc/examples; find . -type d ! -regex '.*\.svn.*'`; do \ for dir in `cd doc/examples; $(FIND) . -type d ! -regex '.*\.svn.*'`; do \
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$dir; \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$dir; \
done done
for file in `cd doc/examples; find . -type f ! -regex '.*\.svn.*'`; do \ for file in `cd doc/examples; $(FIND) . -type f ! -regex '.*\.svn.*'`; do \
cp -aL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file 2>/dev/null || \ cp -aL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file 2>/dev/null || \
install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \ install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \
done done
for dir in `find templates -follow -type d ! -regex '.*\.svn.*'`; do \ for dir in `$(FIND) templates -follow -type d ! -regex '.*\.svn.*'`; do \
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
for file in `find $$dir -follow -maxdepth 1 -type f`; do \ for file in `$(FIND) $$dir -follow -maxdepth 1 -type f`; do \
install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \ install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
done; \ done; \
done done
install -d $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins install -d $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins
for file in `find plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* -name \*.py`; do \ for file in `$(FIND) plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* -name \*.py`; do \
install -m 644 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \ install -m 644 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \
done done
for file in `find plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* ! -name \*.py ! -name \*.pyc`; do \ for file in `$(FIND) plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* ! -name \*.py ! -name \*.pyc`; do \
install -m 755 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \ install -m 755 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \
done done
@ -136,7 +140,7 @@ extra_install: underlay_install
install -d $(DESTDIR)$(PREFIX)/bin install -d $(DESTDIR)$(PREFIX)/bin
for prog in $(outprogs) $(scripts); do \ for prog in $(outprogs) $(scripts); do \
install $$prog $(DESTDIR)$(PREFIX)/bin/$$(echo $$prog | sed 's/\.out//'); \ install $$prog $(DESTDIR)$(PREFIX)/bin/$$(echo $$prog | $(SED) 's/\.out//'); \
done done
$(MAKE) -C po install DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) $(MAKE) -C po install DESTDIR=$(DESTDIR) PREFIX=$(PREFIX)

4
README
View File

@ -14,6 +14,10 @@ A few special variables you can set while using the Makefile.PL:
unless your perl is less buggy than mine -- see unless your perl is less buggy than mine -- see
http://bugs.debian.org/411786) http://bugs.debian.org/411786)
MAKE, FIND, and SED can be used to specify where you have the GNU
versions of those tools installed, if the normal make, find, and sed
are not GNU.
There are also other variables supported by MakeMaker, including PREFIX, There are also other variables supported by MakeMaker, including PREFIX,
INSTALL_BASE, and DESTDIR. See ExtUtils::MakeMaker(3). INSTALL_BASE, and DESTDIR. See ExtUtils::MakeMaker(3).