In a burst of patching I fixed a bunch of little niggets in MakeMaker.
6.18 is just about ready, currently waiting on some feedback on the
OS/2 static build issue.
Its currently available as a snapshot on makemaker.org.
Here's the interesting fixes:
INSTALLSITEMAN*DIR now falls back to INSTALLMAN*DIR on older Perls rather
than trying to guess. This emulates the old behavior of MakeMaker better
from back when there was only one man page installation directory for all
core, site and vendor. The guess was putting man pages into unexpected
places. For example, Redhat 7.2 users which upgraded MakeMaker would find
their man pages going into /usr/man/man* which isn't in their manpath. Now
it should correctly go into /usr/share/man/man* (INSTALLMAN*DIR).
MakeMaker depended on CORE/perl.h existing to get anything done. If that
file didn't exist it would just roll over and die. It was also using
perl.h in a bizarre make ritual to create the blib/ directories. This
would make it impossible to install pure Perl modules if CORE/perl.h is
missing. Some vendors like to seperate the perl headers when they
distribute perl (the latest, OS X 10.3). This has all gone away and
MakeMaker can build pure Perl modules without perl.h. It also means those
silly .exists files are gone.
$(PREFIX) would wind up empty. This is because the old idea of a single
prefix has been split into three, PERLPREFIX, SITEPREFIX and VENDORPREFIX,
and we don't know which one to use a PREFIX. However, a lot of modules
that extend MakeMaker use $(PREFIX). So for simplicity's sake we set
$(PREFIX) to the appropriate value based on INSTALLDIRS. So by default
$(PREFIX) will be $(SITEPREFIX).
Autrijus added a SIGN option to generate a SIGNATURE file using cpansign
during 'make dist' as well as adding it to the manifest. I've started
using it to sign MakeMaker releases.
manicopy() had a bug where the 'cp' method of copying would create
read-only files.
If you tried to have a PREREQ on a module who's name is also a keyword
(if.pm, open.pm) MakeMaker would get confused. Autrijus fixed this.
- parse_version() was blowing over $_ (Ilya Zakharevich)
- 5.6.2 has the same Cygwin shared lib name fix as 5.7.0. (Gerrit Haase)
* When $Config{install(site|vendor)man*dir} aren't set it will now
fall back to $Config{installman*dir}. Similar for
$Config{install(site|vendor)bin}. This preserves behavior for older
Perls.
* Eliminated the dependency on perl.h for pure-perl builds.
* Eliminated .exists files. Added blibdirs target using MKPATH instead.
- Removed now unused dir_target() method.
- Added a little documentation to instmodsh.
* Made sure PREFIX always has something in it. Module authors like to use
it when extending MakeMaker. Currently using one of
PERL/SITE/VENDORPREFIX based on the value of INSTALLDIRS.
* Added SIGN to generate module signatures with cpansign (Autrijus Tang)
- Slight tweaks to MAKEFILE_OLD and MAKE_APERL_FILE restoring a mistake
made around 6.06 to fix static builds on OS/2
- Added ExtUtils::Command::dos2unix()
* manicopy() would make the copied files read-only if 'cp' was used.
* Fixed prereq check for modules which are also keywords like if.pm and
open.pm (Autrijus Tang)
--
Michael G Schwern [EMAIL PROTECTED] http://www.pobox.com/~schwern/
Fuck with me and I will saw off your legs.
http://www.unamerican.com/