On Wed, Apr 06, 2005 at 01:51:40PM +0200, demerphq wrote:
> > Win32's distclean looks like its doing a lot of what MakeMaker's realclean
> > should already be doing.  Its possible this is an old work around for old
> > MakeMaker bugs.
> > 
> > You might want to try a "make realclean" and then do a distcheck to see
> > what's left around.  Its possible MakeMaker has already done the job.
> 
> Im pretty sure that distclean is in some situations required. For
> instance if headers are updated in the perl root they arent
> necessarily copied over to the CORE directory as part of the standard
> build process. Until I hacked the makefile to _always_ start by
> updating CORE as appropriate I had problems that only distclean would
> fix.

The specific things I'm talking about is all the code to clean up .pm
files.  Anything that came over from ext/.  MM's realclean should do
that via Extensions_realclean in your Makefile.


> What id love to see (and would work on if the community thought it was
> worthwhile) is a single makefile with some tools to convert it for the
> appropriate Win32 OS/maker combination.

I know, we'll call it MakeMaker!  Oh wait...

You're entering a special hell reserved for people who eat babies and try to 
write cross-platform Makefiles.  I'm in that hell and I didn't even get to
eat any delicious schoolchildren.

Perl's reliance on make, and its associated reliance on platform dependent 
shell scripts and tools, is a massive crutch that's effecting not only Perl 5 
but 6, Parrot and Pugs.  Somehow it has to be minimized.

Some of the MakeMaker strategies can be used.  Put all shell commands
(cp, mv, rm -f, etc...) into macros ($(CP), $(MV), $(RM_F)).  Split the
Makefile into two files... command macros and targets.  Write a command
macro file for each platform flavor.  Stich the appropriate command macro
file together with the target file.  Run.  This will only get you so far
before you start to run into shell and make dialect issues, such as how cd 
works or the use of && and ; in a command.

Here's an idea... we can't really assume that perl5 can build perl5, its
just not that ubiquitous in the non-Unix world and our cross-compilation 
support isn't quite there, but we can perhaps say that miniperl can build
perl5.  That is to say, use the native build tools and make and such to
build miniperl and then use that to build the rest.  We could even ship a
pure Perl make/build tool (Make.pm or makepp or even something completely
different) to eliminate the problems with dueling make dialects.  Its
actually tempting to do that with MakeMaker.

Reply via email to