RE: RFC 349 (v1) Perl modules should be built with a Perl make program
[email protected] (David Grove) Fri, 29 Sep 2000 18:48:06 -0500
| Newsgroups | perl.perl6.stdlib |
|---|---|
| Organization | Pete's Place |
| Message-ID | <[email protected]> |
On Friday, September 29, 2000 4:45 PM, Perl6 RFC Librarian [SMTP:[email protected]] wrote: > This and other RFCs are available on the web at > http://dev.perl.org/rfc/ > > =head1 TITLE > > Perl modules should be built with a Perl make program > > =head1 VERSION > > Maintainer: Mark Leighton Fisher <[email protected]> > Date: 29 Sept 2000 > Mailing List: [email protected] > Number: 349 > Version: 1 > Status: Developing > > =head1 ABSTRACT > > Everything but the 'perl' binary should be built with a make > program written in Perl. > > =head1 DESCRIPTION > > There are inconsistencies between the versions of 'make'. > We already have (from what I've gathered) quite reasonable > make-like programs in Perl (pmake and cons). Using one > tool written in Perl would make the build process both > more reliable and more consistent by reducing the number > of system-dependent entities in the build process. > > If a cons-like tool is chosen there is also the advantage > of using a tool better able to handle complex builds. > > =head1 IMPLEMENTATION > > Probably either pmake or cons should be chosen rather than > writing a tool from scratch, although virtual targets (targets > like 'install' or 'all') should be added to cons before it > is used in the Perl module build process. > > There should be a module corresponding to ExtUtils::MakeMaker > that generates makefiles for the new Perl make-like program. > > =head1 REFERENCES > > ExtUtils::MakeMaker ABSOLUTELY. In fact, since half of perl is currently made using "miniperl" anyway, it would seem logical to start the perl build itself, and not just modules, with a platform-dependent script/batch file, then let perl run the show in a mostly platform independent manner as soon as miniperl is up and running. Parameters should exist in platform-dependent parameter files (to avoid huge command lines for crippled OS's) and could use simple perl -pi~ -e 's/whatsis/whosis/g'. This could also simplify the build environment somewhat. One parameter file could be used for multiple compilers, or even multiple OS's, barring the dratted \r\n|\n|\r problem. This is how I'm building PerlMagic with MinGWin32. Perl is hugely more functional even in the miniperl state than any make utility I've ever used.