Hi, some operating systems use PREFIX/man instead of PREFIX/share/man as the base directory for man pages and PREFIX/libexec/ instead of PREFIX/lib/ for files like CGI programs. At the moment the location of the installed man pages and the w3m cgi wrapper is hard-coded in Makefile.PL. The patch below makes it possible to install those files to alternative directories while the default stays as it is now. > It should be possible to use the existing MakeMaker variables such as > INSTALLMAN1DIR (though MakeMaker lacks one for man8). I'd prefer not > adding new variables where MakeMaker already has them. --[[Joey]] [[!tag patch patch/core]]
- Introduce two variables, IKI_MANDIR and IKI_W3MCGIDIR, to be set from the command line. This enables locations for man pages and the w3m cgi wrapper other than the hard-coded defaults in Makefile.PL. --- Makefile.PL.orig 2007-05-20 03:03:58.000000000 +0200 +++ Makefile.PL @@ -3,9 +3,32 @@ use warnings; use strict; use ExtUtils::MakeMaker; +my %params = ( 'IKI_MANDIR' => '$(PREFIX)/share/man', + 'IKI_W3MCGIDIR' => '$(PREFIX)/lib/w3m/cgi-bin' + ); + +@ARGV = grep { + my ($key, $value) = split(/=/, $_, 2); + if ( exists $params{$key} ) { + $params{$key} = $value; + print "Using $params{$key} for $key.\n"; + 0 + } else { + 1 + } +} @ARGV; + + # Add a few more targets. sub MY::postamble { -q{ + package MY; + + my $scriptvars = <<"EOSCRIPTVARS"; +IKI_MANDIR = $params{'IKI_MANDIR'} +IKI_W3MCGIDIR = $params{'IKI_W3MCGIDIR'} +EOSCRIPTVARS + + my $script = q{ all:: extra_build clean:: extra_clean install:: extra_install @@ -56,23 +79,24 @@ extra_install: done; \ done - install -d $(DESTDIR)$(PREFIX)/share/man/man1 - install -m 644 ikiwiki.man $(DESTDIR)$(PREFIX)/share/man/man1/ikiwiki.1 + install -d $(DESTDIR)$(IKI_MANDIR)/man1 + install -m 644 ikiwiki.man $(DESTDIR)$(IKI_MANDIR)/man1/ikiwiki.1 - install -d $(DESTDIR)$(PREFIX)/share/man/man8 - install -m 644 ikiwiki-mass-rebuild.man $(DESTDIR)$(PREFIX)/share/man/ma n8/ikiwiki-mass-rebuild.8 + install -d $(DESTDIR)$(IKI_MANDIR)/man8 + install -m 644 ikiwiki-mass-rebuild.man $(DESTDIR)$(IKI_MANDIR)/man8/iki wiki-mass-rebuild.8 install -d $(DESTDIR)$(PREFIX)/sbin install ikiwiki-mass-rebuild $(DESTDIR)$(PREFIX)/sbin - install -d $(DESTDIR)$(PREFIX)/lib/w3m/cgi-bin - install ikiwiki-w3m.cgi $(DESTDIR)$(PREFIX)/lib/w3m/cgi-bin + install -d $(DESTDIR)$(IKI_W3MCGIDIR) + install ikiwiki-w3m.cgi $(DESTDIR)$(IKI_W3MCGIDIR) install -d $(DESTDIR)$(PREFIX)/bin install ikiwiki.out $(DESTDIR)$(PREFIX)/bin/ikiwiki $(MAKE) -C po install PREFIX=$(PREFIX) -} +}; + return $scriptvars.$script; } WriteMakefile(