Added support for the 'install_path' parameter, which allows custom
specification of where things should be installed. This is a major
improvement to Module::Build's functionality.Added the 'install_base' parameter. Provides an easy way to
install to local or alternative directory trees.We now install scripts by default to $Config{installsitebin}
instead of $Config{installscript}. Neither is a great choice, but
the former is likely to be [analogous to] /usr/local/bin, and the
latter is likely to be [something like] /usr/bin . If/when there's
a $Config{installsitescript}, we'll start using that automatically.Fixed a problem on Win32 in which C and XS files wouldn't be
compiled properly, and the user would see an error about 'Can't
locate object method "format_compiler_cmd"'.
(http://rt.cpan.org/Ticket/Display.html?id=2391)We now use the correct perl interpreter (via
Module::Build->find_perl_interpreter) in pass-through makefiles.The t/compat.t test now uses $Config{make} instead of just 'make'
to test makefile compatibility. This fixes some failures on Win32.
We also skip this test entirely if no make utility is available.Alternative distribution layouts are now supported via the
'pm_files', 'pod_files', 'xs_files', 'PL_files', and 'script_files'
parameters to new(). This should help people transition from
MakeMaker, and might even help us write an automatic transition
tool.Added tests to t/runthrough.t that check to see installation is
happening correctly.Added experimental code to build a .ppd file, in support of
ActiveState's "Perl Package Manager". [original patch by Dave
Rolsky]For authors who use Module::Signature to sign their distributions,
we now create the SIGNATURE file right in the distribution
directory, rather than creating it in the top-level directory and
copying it into place. This solves problems related to having
files get out of date with respect to their signatures.We now don't depend on Module::Info to scan for packages during the
'dist' action anymore, because it's way too aggressive about
loading other modules that you may not want loaded. We now just
(ick, yuck) scan the .pm files with a regular expression to find
"package Foo::Bar;" statements.Silenced some annoying copyright/logo output from Microsoft 'nmake'
during Makefile compatibility testing. [Randy W. Sims]Command-line arguments may now either be specified using the syntax
'--foo foovalue' as well as the traditional syntax 'foo=foovalue'.
The former is often more convenient for shell tab-completion when
the value is a filename (as in 'Build test --test_files t/basic.t').Command-line arguments may now include non-named parameters, which
make some actions more natural. For instance, the 'diff' action
may now be invoked as 'Build diff -u' rather than as
'Build diff flags=-u'.Pass-through Makefile.PLs now convert unknown Makefile.PL
parameters to lower-case and hand them to Build.PL, rather than
ignoring them. This means we only have to account for the
differences in the interface, not the entire interface, in
translating parameters.We now issue a warning & don't proceed if asked to make a distdir
and there's no MANIFEST or it's empty.Moved INSTALL to INSTALL.txt to increase compatibility with various
odd versions of 'make' during 'make install' on case-insensitive
filesystems (like nmake on Win32, often). Only affects the
Makefile compatibility layer. [reported by Andrew Savige]Module::Build->known_actions() now works as a class method.
Pass-through makefiles now list each action individually rather
than using a ".DEFAULT" catch-all. This improves compatibility
with 'nmake' on Win32, and probably some other less common 'make'
dialects. [Andrew Savige]We're now more aggressive about testing the pass-through makefiles,
e.g. making sure they can run 'all' and 'test' targets, and making
sure the Makefile itself actually exists.Fixed a problem with check_installed_status() when installed
version contains non-numeric characters like underscores.Fixed a problem with a bareword 'File::Spec' in one of the test
scripts that caused it not to compile under 5.8.0 (but is fine
under 5.6).Fixed a problem with the 'destdir' installation parameter on
platforms that have volume identifiers in path names (like "C:" on
Win32). The identifier is now stripped from installation
directories before prepending the destdir path. The destdir path
may still have a volume identifier on it.Added an 'add_to_cleanup' parameter to new() that calls
add_to_cleanup() immediately for the given files.The distribution directory (e.g. Sample-Module-0.13/ ) will now be
deleted during the 'clean' or 'realclean' actions.During testing of modules, blib/lib and blib/arch are now added as
absolute paths, not relative. This helps tests that load the
modules at runtime and may change the current working directory
(like Module::Build itself does during testing).The $Config{cc} entry on some people's systems is something like
'ccache gcc', so we now split that string using split_like_shell().
[Richard Clamp]Added documentation for 'extra_linker_flags' parameter, and added a
corresponding 'extra_compiler_flags' parameter. [original patch by
Richard Clamp]The pass-through Makefile created by Module::Build::Compat now
supports MakeMaker options like POLLUTE=1 and INC. We also just
warn & skip when we see any unknown MM parameters, rather than
dying. [Dave Rolsky]Fixed an error about how @INC and $ENV{PERL5LIB} interact during
the testing of M::B itself. [jk billy2000@fastmail.fm]The pass-through Makefile doesn't include 'recommended' M::B
dependencies in the Makefile anymore, since they're not strictly
necessary. In particular, this makes installing M::B itself
easier.A new 'create_makefile_pl' parameter lets you use
Module::Build::Compat during the 'distdir' (or 'dist') action to
automatically create a Makefile.PL for compatibility with
ExtUtils::MakeMaker. The parameter's value should be one of the
styles named in the Module::Build::Compat documentation.When compiling C code, we now respect 'pollute' and 'inc'
parameters. (XXX - needs docs) [Dave Rolsky]Made the creation of the "install map" more generic. (XXX - needs
documentation)Fixed a problem in which add_to_cleanup() didn't note cleanup files
unless create_build_script() had been called already. [Dave Rolsky]During 'Build dist', we no longer have to load each .pm file (via
Module::Info) to determine the $VERSION numbers inside. Instead,
we call our internal version_from_file() method, which is the same
thing MakeMaker and PAUSE and search.cpan.org do. Also fixes a
failure when Module::Info is installed in a nonstandard directory.
[reported by Teun Burgers]Fixed some failing test code on Windows - open files can't be
deleted. [Andrew Savige]The Cygwin platform is now treated as a flavor of Unix rather than
a flavor of Windows. [chocolateboy]We're now more aggressive about adding temporary C compilation
files (*.c, *.bs) to the cleanup list. [Dave Rolsky]When constructing the list in META.yml of packages provided by this
distribution, we now use the same rules as the PAUSE scanner does
when a single .pm file contains multiple VERSIONs. [Andreas Koenig]check_installed_status() now works as both a class method and an
object method (and is documented so). [Spotted by Dave Rolsky]