develooper Front page | perl.perl5.porters | Postings from February 2009

Re: merging make_ext and make_ext_cross

Thread Previous | Thread Next
February 1, 2009 09:27
Re: merging make_ext and make_ext_cross
Message ID:
2009/1/31 Nicholas Clark <>:
> On Fri, Jan 30, 2009 at 07:47:49PM -0600, Craig A. Berry wrote:
>> On that note, I've had a quick look at porting to VMS.  It
>> wouldn't be that difficult and I'm happy to add the DCL bits if you'd
>> rather not mess with it.  The hard part is calling it from the
>> description file (the Makefile equivalent).  Currently the description
>> file knows nothing about what extensions we are going to build and
>> depends on to root through and build what was
>> selected during configuration.  It only invokes once.  If
>> I'm reading what does correctly, we'll have to make the
>> description file quite a bit smarter so it invokes once
>> for each extension that we've configured for.
> I don't think that making the description file smarter will be needed.
> Right now, the Windows equivalent, win32/, does the looping,
> and I'm working with Max Maischein to converge it with
> That will mean adding the looping (as an option) to, so at
> that point there may not be that much left to do for VMS.
> My plan is
> 1: Converge and win32/
> 2: Merge the two as, and swap the win32 Makefiles to use it
> 3: Figure out what is needed to add VMS into
> Once everything is using
> 4: Figure out what changes would be needed in what configuration systems to
>   make them cope with using '-' in directory names -
>   ie ext/Data/Dumper becomes ext/Data-Dumper on disc.
>   (I think that the names in have to stay as "Data/Dumper" etc)
> 5: Rename the directories in ext/ to that format, so that ext/ is flat, with
>   all extensions at the top level
> 6: Simplify all the ext scanning code - no need to recurse directories, no
>   need to limit the depth to 10 to avoid infinite symlink loops, no need for
>   special cases for ext/threads/shared and ext/Hash/Util
> At this point there is a one to one mapping between extensions and directories
> in ext. Every directory there is an extension. So
> 7: Add logic to to write a Makefile.PL automatically for any
>   directory in ext/ that doesn't have one. (and clean it up at the end)
> 8: Start moving dual life modules from lib/ to ext/
> Which, I think, long term, will simplify a lot of maintenance issues.

Just a heads up:

Please please dont break the logic of allowing the exts that will be
built be specified on the command line for

In particular have a look at the nmake based win32 Makefile at the
test-reonly and reonly targets, which both end up calling
Extensions_reonly as the following code/blame shows:

	1068	Extensions_reonly: $(PERLDEP) $(CONFIGPM)
	1069		$(XCOPY) ..\*.h $(COREDIR)\*.*
	1070		$(MINIPERL) -I..\lib "MAKE=$(MAKE)" --dir=$(EXTDIR)
--dynamic +re


perl -Mre=debug -e "/just|another|perl|hacker/"

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About