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

Re: merging make_ext and make_ext_cross

Thread Previous | Thread Next
Nicholas Clark
January 31, 2009 04:01
Re: merging make_ext and make_ext_cross
Message ID:
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.

Nicholas Clark

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