On Wed, Feb 17, 2016 at 09:22:12PM -0600, Craig A. Berry wrote:
> On Wed, Feb 17, 2016 at 6:00 AM, Dave Mitchell <da...@iabyn.com> wrote:
> > On Tue, Feb 16, 2016 at 10:34:07AM -0800, Russ Allbery wrote:
> >> My preferred solution would be to require Encode as a prerequisite for
> >> podlators when building core.  Is there any way to do that?
> >
> > Probably, but the build system isn't my strong point. I tried hacking
> > Makefile.SH so that it adds this line to Makefile if Encode hasn't been
> > deselected:
> >
> >     cpan/podlators/pm_to_blib: lib/auto/Encode/Encode.so
> >
> > but then I get this:
> >
> >     make: Circular lib/auto/Encode/Encode.so <- makeppport dependency 
> > dropped.
> >     make: Circular DynaLoader.o <- cpan/podlators/pm_to_blib dependency 
> > dropped.
> >
> > Anyone have a better clue how to do this?
> 
> 
> Possibly messing with the following section of code in make_ext.pl
> would do something.  If it works, it might be depending on Encode
> being later in the alphabet than Cwd.  If there's more to it than
> that, this code could perhaps be changed from saying "build X before
> everything else" to "build X before Y."
> 
> {
>     # Cwd needs to be built before Encode recurses into subdirectories.
>     # Pod::Simple needs to be built before Pod::Functions
>     # This seems to be the simplest way to ensure this ordering:
>     my (@first, @other);
>     foreach (@extspec) {
>         if ($_ eq 'Cwd' || $_ eq 'Pod/Simple') {
>             push @first, $_;
>         } else {
>             push @other, $_;
>         }
>     }
>     @extspec = (@first, @other);
> }

make_ext.pl on UNIX is only ever called with a single extension to build
at a time; all the ordering logic is contained in the Makefile.

Perhaps its time to fully integrate the win32/VMS and UNIX halves of
make_ext.pl, which were originally shunted together from separate scripts.
But that might lose the -j parallelism that is provided by make?


-- 
Art is anything that has a label (especially if the label is "untitled 1")

Reply via email to