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
- 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(