Changes for version 6.06_05 - 2003-03-31
- Syncing into bleadperl. Minor nits revealed...
- AutoSplit open filehandle bug was fixed in bleadperl. Averted a warning because of this.
- hint files were only being loaded if . happened to be in @INC. A bug/feature of File::Spec was stripping off the current dir from the front of hintfile paths causing Perl to look for them in @INC. Worked around.
- Now checking $! for errors if a hint file returns undef
- compile test was testing all of perl! Scaling back to just ExtUtils/
Changes for version 6.06_04 - 2003-03-30
- Now looking for ExtUtils::xsubpp through @INC rather than just the perl core directories. This helps ExtUtils::ParseXS.
- Systems which don't put their libraries under their $Config{prefix} (OS X, Debian) weren't putting their libraries in the spot declared in Config. It was going under $Config{prefix}.
- Prerequisites check now deals better with X.Y_Z style alpha versions
- ExtUtils::Liblist->ext() was using $Config{perllibs} which is a 5.6.1 thing. Falling back to $Config{libs} if perllibs isn't there.
- ExtUtils::Command::MM now reads from @ARGV if called with no args. Makes the one liner a bit simpler.
- Restored ExtUtils::Liblist::ext() for backwards compatibility. Missing since 5.6.1.
- Switching to relative dirs for self-building to shorten command line lengths.
- Fixing minor test warning on VMS when compiling ExtUtils::Manifest
- Skipping STDIN read prompt() tests on 5.5.3. Can't test due to eof() not honor tied handles.
- Config.pm on 5.5.3 doesn't have any concept of vendor*. This was causing warnings when generating the Makefile.
Changes for version 6.06_03 - 2003-03-29
- Added AUTHOR and ABSTRACT_FROM info for ppd generation.
- Added echo() method to portably echo text to a file.
- Worked around 5.8.0 eval 'require Foo::Bar' bug causing MakeMaker to think modules weren't installed.
- Modernized VMS doc_*_install targets
- Changed some $(PERL) -e "print ..." code to use $(ECHO).
- Replaced uses of Delete/NoLog/NoConfirm with $(RM_F) in MM_VMS
- Fixed some duplicate macros making MMS happy.
- Fixed $ExtUtils::MM_VMS::Revision. It was just the $VERSION before.
- Fixed ExtUtils::Command::MM::perllocal_install(), uninstall(), warn_if_old_packlist().
- Pulling File::Spec::VMS::fixpath() and eliminate_macros() into MM_VMS as the new cannonical location. They never should have been in F::S in the first place.
- ExtUtils::Command::eqtime() would truncate the file being equalized! Holdover from exclusive .exists usage.
- Cleaned up hard coded 'echo' and '@' to $(ECHO) and $(NOECHO)
- $(SAY) is now $(ECHO) on VMS
- Moved rogue initializations from tools_other() to init_others()
- Normalized MM_VMS's tools_other() to mostly use its superclass.
- split_command() was off-by-one when calculating max command line lengths causing it to run over on VMS
- made split_command() a bit smarter, taking into account some macro expansion
- Fixed initialization of OBJECT, DISTNAME and LDFROM on VMS
- Fixed *_install target uses of File::Spec.
- Added ExtUtils::MakeMaker::vmsish wrapper around vmsish so MM_VMS can be compiled on non-VMS machines. For testing.
- Added ExtUtils::MakeMaker::Tutorial about writing modules with MakeMaker.
- Removed "always use h2xs" dogma.
- Added compile & POD test
- 'make distdir' now generates META.yml module meta-data file. Proof of concept. Have to syncronize with Module::Build.
- Added maniadd() to ExtUtils::Manifest to add entries to the MANIFEST
- ExtUtils::Command::chmod was not interpreting file permissions as octal. Also, docs & tests slightly wrong (thanks Stas Bekman).
- ExtUtils::Install was hard coding blib/lib and blib/arch, unportable
- perl #21526
Changes for version 6.06_02 - 2002-12-23
- Lots of Win32 fixes busted between 6.05 and 6.06_01.
- split_command() tests still not happy on Win32. Problems with shell vs Makefile escaping makes testing difficult.
- VMS still broken. Need to convert File::Spec method calls back to object method calls so the weird FS::VMS->eliminate_macros() and fixpath() work again.
Changes for version 6.06_01 - 2002-12-19
- Andreas found that when building the core it is desirable for MakeMaker to use a relative path to perl.
- File::Spec->catfile() has a bug where the resulting file may not be canonicalized. This was causing problems when generating manpaths. MakeMaker now uses its own fixed override for catfile().
- Fixed the POD recognition regex to properly catch /=head\d/ tags.
- Added a PATCHING guideline document.
- Updated the class hierarchy in NOTES.
- Installed.t now cleans up after itself better.
- Steve Purkis rewrote the manifypods system to use Pod::Man rather than pod2man. Its now portable and manifypods() moved from MM_Unix to MM_Any. As a result, lots of icky and redudant code went away. This also removes the POD2MAN macro, but noone should be using that.
- "make manifypods" now works on Win32
- "make manifypods" is now be faster
- Made MM_Unix->find_perl more portable. Eliminated MM_Win32->find_perl override. MM_VMS->find_perl remains.
- find_perl() can now handle filenames with spaces in them (RT448)
- find_perl() on Win32 no longer produces spurious "File Creation error" messages (perlbug ID 20020709.001)
- Removed unfinished and unused maybe_command_in_dirs()
- Removed dead SelfLoader cruft from MM_Unix.
- Fixed PPD generation when the ppd contains quotes (RT1473)
- Fixed PPD generation on VMS
- Moved Win9x specific subdir_x() code from MM_Unix to MM_Win95
- Craig Berry fixed hint files on VMS
- Added the perl_onliner() method to generate portable, safe one-liners
- Changing hardcoded $self->{MAKEFILE} to $(FIRST_MAKEFILE).
- Rafael Garcia-Suarez made MakeMaker ignore Subversion control files by default.
- Added MAKEFILE_OLD macro.
- No longer generating man pages by default on VMS.
- Improved DISTNAME docs
- Documented DISTVNAME and VERSION_SYM
- Documented dist()
- Seperated dist_core() into dist, tardist, uutardist, tarfile, zipdist, zipfile and shdist_target methods. Allows elimination of redundant code in MM_VMS.
- Replaced WARN_IF_OLD_PACKLIST, DOC_INSTALL and UNINSTALL one-liners with ExtUtils::Command::MM functions
- Replaced VMS hand-rolled perl code for TOUCH, CHMOD, RM_F and RM_RF with ExtUtils::Command functions. Added TEST_F.
- Adding clean_subdirs target and clean_subdirs_target() method to generate same. This allows easier overriding of an unportable part of the clean target.
- Defined DEV_NULL for MacOS
- Removed ROOTEXT from MM_MacOS, apparently unused
- Added $(DIRFILESEP) macro and init_DIRFILESEP to avoid hardcoding / or \. Reduces code duplication in the MM_* modules.
- Added init_platform() and platform_constants() for OS specific macros. Moved OS specific macros from constants() overrides there.
- Added init_VERSION() to setup various *VERSION* macros.
- Added default wraplist() to make porting easier.
- Added makemakerdflt_target() to guarantee 'all' is the default target.
- Added special_targets() to handle things like .PHONY and make sure they come first.
- Added init_linker() to initialize linker relatied macros.
- MM_MacOS constants() disolves Moved MACPERL_SRC, MACPERL_LIB, MACPERL_INC from init_main() to init_platform(). Moved DEFINE and INC tweaking from constants() to init_main() Moved DEFINE_VERSION & XS_DEFINE_VERSION from constants() to init_VERSION(). Eliminated MODULES. Unused and its the same as TO_INST_PM Moved .INCLUDE from constants() to special_targets()
- MM_NW5 constants() & init_others() disolves Moved LIBPTH, BASE_IMPORT, NLM_VERSION, MPKTOOL, TOOLPATH from init_others() to init_platform() Moved INCLUDE and PATH definitions from constants() to init_platform() Moved BOOT_SYMBOL, NLM_SHORT_NAME, PATH and INCLUDE from constants() to init_platform()
- MM_Unix constants() goes on a diet Moved all macro definitions to init_* methods. Added MM_REVISION for completeness Using wraplist() instead of manual joining Moved .NO_CONFIG_REC, .SUFFIXES and .PHONY to special_targets() Moved makemakerdflt: to makemakerdeflt_target() Moved INST_{STATIC,DYNAMIC,BOOT} to init_INST() Moved EXPORT_LIST, PERL_ARCHIVE & PERL_ARCHIVE_AFTER to init_linker(). Moved PERL_MALLOC_DEF to init_platform()
- MM_VMS constants() goes on a diet Moved DEFINE from constants() to init_main() Moved OBJECT & LDFROM from constants() to init_others() Moved MM_VMS_REVISION and PERL_VMS to init_platform Added MM_VMS_VERSION Moved DEFINE_VERSION, XS_DEFINE_VERSION and MAKEMAKER changes to init_VERSION Moved .SUFFIXES changes to special_targets() override. Eliminated $self->{PM_TO_BLIB}. Its redundant with $self->{PM}. constants() now consists only of fixpath() calls.
- MM_Win32 constants() goes away Moved .USESHELL to special_targets() override. Everything else was redundant.
- Added $(VERSION_FROM) to $(MAKEFILE) dependencies. Helpful for XS builds where the version number is very sensitive.
- export_list(), perl_archive() and perl_archive_after() consolodated into init_linker().
- Added MM_NW5_VERSION, MM_Unix_VERSION, MM_Win32_VERSION, MM_VMS_VERSION.
- Eliminated duplicate code in constants() overrides
- Added all_target() for easier customization of what's run by default
- Eliminated duplicate top_targets() overrides
- Made tool_autosplit() method portable. Moved to MM_Any. Eliminated overrides.
- Adding realclean_subdirs target and realclean_subdirs_target() method to generate same. This allows easier overriding of an unportable part of the realclean target.
- Added oneliner() to create portable perl one-liners.
- Craig Berry found some typos in ExtUtils::Liblist::Kid's VMS part
- ExtUtils::Install did not work on MacPerl due to a hardcoded '.'
- prompt() will now read from STDIN.
- Craig Berry made sure extliblist() is always called even if LIBS is explicitly set to empty.
- Added DESTDIR to make repacking easier.
- $(*PREFIX) are returned to the INSTALL* variables.
- Split $(PREFIX) into $(PERLPREFIX) and $(PREFIX). The former holds the location of the core libraries. The latter is the optional override prefix supplied by the user.
- PREFIX overrides all other *PREFIXes when set in the Makefile.PL. This restores "make install PREFIX=foo".
- Added quote_literal() to handle some shell quoting.
- ExtUtils::MM_VMS now compilable on non-VMS platforms.
- J. D. Laub made MakeMaker honor $Config{installstyle}
- Renaming on OS/2 requires the target file to be removed. Partially fixed by Ilya, should be applied universally later.
- Default MANIFEST.SKIP not catching files in subdirs. Fixed by Ilya.
- Ilya fixed ExtUtils::Liblist->ext when called outside MakeMaker.
- realclean was duplicating work already done by clean
- Adding an explicit LICENSE
- Cleaning up ExtUtils::Install docs.
- ExtUtils::Install::uninstall() now has default verbose and dont_execute arguments.
- Added some basic ExtUtils::Install tests
- Fixed ExtUtils::Install::install() for relative dirs
- Added split_command() and max_exec_len() to deal with long commands.
- Seperated escape_newlines() from quote_literal(). This may be pointless.
- pm_to_blib() now generated with split_command(). 3x speedup.
- added init_dist() to initialize distribution constants
- ExtUtils::Install::pm_to_blib() working around open filehandle bug in AutoSplit for systems with mandatory file locking.
Documentation
Frequently Asked Questions About MakeMaker
Writing a module with MakeMaker
Modules
utilities to replace common UNIX commands in Makefiles etc.
Commands for the MM's to use in Makefiles
install files from here to there
Inventory management of installed modules
determine libraries to use and how to use them
OS adjusted ExtUtils::MakeMaker subclass
Platform agnostic MM methods
methods to override UN*X behaviour in ExtUtils::MakeMaker
methods to override UN*X behaviour in ExtUtils::MakeMaker
DOS specific subclass of ExtUtils::MM_Unix
methods to override UN*X behaviour in ExtUtils::MakeMaker
methods to override UN*X behaviour in ExtUtils::MakeMaker
methods to override UN*X behaviour in ExtUtils::MakeMaker
U/WIN specific subclass of ExtUtils::MM_Unix
methods used by ExtUtils::MakeMaker
methods to override UN*X behaviour in ExtUtils::MakeMaker
methods to override UN*X behaviour in ExtUtils::MakeMaker
method to customize MakeMaker for Win9X
ExtUtils::MakeMaker subclass for customization
Create a module Makefile
Platform agnostic vmsish.pm
utilities to write and check a MANIFEST file
make a bootstrap file for use by DynaLoader
write linker options files for dynamic extension
manage .packlist files
add blib/* directories to @INC
Provides
in lib/ExtUtils/Mkbootstrap.pm
in lib/ExtUtils/Install.pm
in lib/ExtUtils/Liblist/Kid.pm
in lib/ExtUtils/MM_Unix.pm
in lib/ExtUtils/MM.pm
in lib/ExtUtils/MY.pm