The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.18_02 - 2003-06-01

  • 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.
  • 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.

Changes for version 0.18_01 - 2003-05-22

  • 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 an 'add_to_cleanup' parameter to new() that calls add_to_cleanup() immediately for the given files.
  • 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.
  • 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 <>]
  • 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 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 Savage]
  • 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]


Build and install Perl modules
Default methods for Module::Build
Compatibility with ExtUtils::MakeMaker
Perl Package Manager file creation
Builder class for Amiga platforms
Stub class for unknown platforms
Builder class for EBCDIC platforms
Builder class for MPEiX platforms
Builder class for MacOS platforms
Builder class for RiscOS platforms
Builder class for Unix platforms
Builder class for VMS platforms
Builder class for VOS platforms
Builder class for Windows platforms
Builder class for Mac OS X platform


in lib/Module/Build/Platform/
in lib/Module/Build/Platform/
in lib/Module/Build/Platform/