Browse Source

parameterize FIND and SED

plusone
Joey Hess 10 years ago
parent
commit
16dd9c4fc6
2 changed files with 26 additions and 18 deletions
  1. +22
    -18
      Makefile.PL
  2. +4
    -0
      README

+ 22
- 18
Makefile.PL 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
- 0
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).



Loading…
Cancel
Save