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)
# 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 \\
if [ "$(INSTALLDIRS)" = "perl" ]; then \\
echo $(INSTALLPRIVLIB); \\
@ -23,14 +35,6 @@ PROBABLE_INST_LIB=$(shell \\
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
./pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB) < $< > $@
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-calendar 1 doc/ikiwiki-calendar.mdwn > ikiwiki-calendar.man
$(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
docwiki:
@ -63,9 +67,9 @@ myclean: clean
underlay_install:
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; \
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 || \
install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
done; \
@ -95,26 +99,26 @@ underlay_install:
extra_install: underlay_install
# 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; \
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 || \
install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \
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; \
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; \
done; \
done
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; \
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; \
done
@ -136,7 +140,7 @@ extra_install: underlay_install
install -d $(DESTDIR)$(PREFIX)/bin
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
$(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
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,
INSTALL_BASE, and DESTDIR. See ExtUtils::MakeMaker(3).