diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ExtUtils/MakeMaker.pm | 246 |
1 files changed, 183 insertions, 63 deletions
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm index e09b438e75..73ad1ddebf 100644 --- a/lib/ExtUtils/MakeMaker.pm +++ b/lib/ExtUtils/MakeMaker.pm @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker; -$Version = 4.086; # Last edited 9 Mar 1995 by Andy Dougherty +$Version = 4.091; # Last edited 31 Mar 1995 by Andreas Koenig use Config; check_hints(); @@ -9,10 +9,10 @@ use Cwd; require Exporter; @ISA = qw(Exporter); -@EXPORT = qw(&WriteMakefile &mkbootstrap &mksymlists $Verbose); +@EXPORT = qw(&WriteMakefile $Verbose); @EXPORT_OK = qw($Version %att %skip %Recognized_Att_Keys @MM_Sections %MM_Sections - &help &lsdir &neatvalue); + &help &lsdir &neatvalue &mkbootstrap &mksymlists); $Is_VMS = $Config{'osname'} eq 'VMS'; require ExtUtils::MM_VMS if $Is_VMS; @@ -23,7 +23,6 @@ $Version = $Version;# avoid typo warning $Verbose = 0; $^W=1; - =head1 NAME ExtUtils::MakeMaker - create an extension Makefile @@ -73,7 +72,7 @@ done by specifying perl Makefile.PL INST_LIB=~/myperllib INST_EXE=~/bin Note, that in this example MakeMaker does the tilde expansion for you -and INST_ARCHLIB is set to either C<INST_LIB/$Config{"osname"}> if +and INST_ARCHLIB is set to either C<INST_LIB/$Config{"archname"}> if that directory exists and otherwise to INST_LIB. Other interesting targets in the generated Makefile are @@ -392,6 +391,12 @@ $Attrib_Help = <<'END'; H: Ref to array of *.h file names. Similar to C: above. + PL_FILES: Ref to hash of files to be processed as perl programs. MakeMaker + will default to any found C<*.PL> file (except C<Makefile.PL>) being + keys and the basename of the file being the value. E.g. + C<{ 'foobar.PL' => 'foobar' }>. The C<*.PL> files are expected to + produce output to the target files themselves. + EXE_FILES: Ref to array of executable files. The files will be copied to the INST_EXE directory. The installed files will be deleted by a make realclean. @@ -455,6 +460,7 @@ sub help {print $Attrib_Help;} 'tool_xsubpp' => {}, 'tools_other' => {}, 'post_constants' => {}, + 'pasthru' => {}, 'c_o' => {}, 'xs_c' => {}, 'xs_o' => {}, @@ -467,6 +473,7 @@ sub help {print $Attrib_Help;} 'static' => {}, 'static_lib' => {}, 'installpm' => {}, + 'processPL' => {}, 'installbin' => {}, 'subdirs' => {}, 'clean' => {}, @@ -527,6 +534,7 @@ sub WriteMakefile { parse_args(\%att, @ARGV); my(%initial_att) = %att; # record initial attributes + my($key); MY->init_main(); @@ -553,6 +561,7 @@ sub WriteMakefile { # build hash for SKIP to make testing easy %skip = map( ($_,1), @{$att{'SKIP'} || []}); + my $section; foreach $section ( @MM_Sections ){ print "Processing Makefile '$section' section" if ($Verbose >= 2); my($skipit) = skipcheck($section); @@ -658,7 +667,6 @@ sub neatvalue{ return "{ ".join(', ',@m)." }"; } - # ------ Define the MakeMaker default methods in package MM_Unix ------ package MM_Unix; @@ -687,8 +695,8 @@ sub init_main { # --- Initialize PERL_LIB, INST_LIB, PERL_SRC # *Real* information: where did we get these two from? ... - $inc_config_dir = dirname($INC{'Config.pm'}); - $inc_carp_dir = dirname($INC{'Carp.pm'}); + my $inc_config_dir = dirname($INC{'Config.pm'}); + my $inc_carp_dir = dirname($INC{'Carp.pm'}); # Typically PERL_* and INST_* will be identical but that need # not be the case (e.g., installing into project libraries etc). @@ -704,7 +712,10 @@ sub init_main { unless ($att{PERL_SRC}){ foreach(qw(../.. ../../.. ../../../..)){ - ($att{PERL_SRC}=$_, last) if -f "$_/config.sh"; + if ( -f "$_/config.sh" && -f "$_/perl.h" && -f "$_/lib/Exporter.pm") { + $att{PERL_SRC}=$_ ; + last; + } } } unless ($att{PERL_SRC}){ @@ -719,6 +730,19 @@ sub init_main { $att{PERL_LIB} = "$att{PERL_SRC}/lib" unless $att{PERL_LIB}; $att{PERL_ARCHLIB} = $att{PERL_LIB}; $att{PERL_INC} = $att{PERL_SRC}; + # catch an situation that has occurred a few times in the past: + warn <<EOM unless -s "$att{PERL_SRC}/cflags"; +You cannot build extensions below the perl source tree after executing +a 'make clean' in the perl source tree. + +To rebuild extensions distributed with the perl source you should +simply Configure (to include those extensions) and then build perl as +normal. After installing perl the source tree can be deleted. It is not +needed for building extensions. + +It is recommended that you unpack and build additional extensions away +from the perl source tree. +EOM } # INST_LIB typically pre-set if building an extension after @@ -728,13 +752,13 @@ sub init_main { if (defined $att{PERL_SRC}) { $att{INST_LIB} = $att{PERL_LIB}; } else { - $att{INST_LIB} = "$pwd/blib"; + $att{INST_LIB} = "./blib"; } } # Try to work out what INST_ARCHLIB should be if not set: unless ($att{INST_ARCHLIB}){ my(%archmap) = ( - "$pwd/blib" => "$pwd/blib", # our private build lib + "./blib" => "./blib", # our private build lib $att{PERL_LIB} => $att{PERL_ARCHLIB}, $Config{'privlib'} => $Config{'archlib'}, $Config{'installprivlib'} => $Config{'installarchlib'}, @@ -810,7 +834,7 @@ sub init_main { sub init_dirscan { # --- File and Directory Lists (.xs .pm etc) - my($name, %dir, %xs, %c, %h, %ignore); + my($name, %dir, %xs, %c, %h, %ignore, %pl_files); local(%pm); #the sub in find() has to see this hash $ignore{'test.pl'} = 1; $ignore{'makefile.pl'} = 1 if $Is_VMS; @@ -828,6 +852,8 @@ sub init_dirscan { # --- File and Directory Lists (.xs .pm etc) $h{$name} = 1; } elsif ($name =~ /\.p[ml]$/){ $pm{$name} = "\$(INST_LIBDIR)/$name"; + } elsif ($name =~ /\.PL$/ && $name ne "Makefile.PL") { + ($pl_files{$name} = $name) =~ s/\.PL$// ; } } @@ -890,6 +916,7 @@ sub init_dirscan { # --- File and Directory Lists (.xs .pm etc) my($sufx) = $Is_VMS ? '.obj' : '.o'; $att{O_FILES} = [grep s/\.c$/$sufx/, @o_files] ; $att{H} = [sort keys %h] unless $att{H}; + $att{PL_FILES} = \%pl_files unless $att{PL_FILES}; } @@ -899,7 +926,7 @@ sub libscan { } sub init_others { # --- Initialize Other Attributes - + my($key); for $key (keys(%Recognized_Att_Keys), keys(%Other_Att_Keys)){ # avoid warnings for uninitialized vars next if exists $att{$key}; @@ -1107,6 +1134,7 @@ INST_PM = '.join(" \\\n\t", sort values %{$att{PM}}).' join('',@m); } +$Const_cccmd=0; # package global sub const_cccmd{ my($self,$libperl)=@_; @@ -1115,11 +1143,16 @@ sub const_cccmd{ # e.g., do both and compare results during the transition period. my($cc,$ccflags,$optimize,$large,$split, $shflags) = @Config{qw(cc ccflags optimize large split shellflags)}; + my($optdebug)=""; + $shflags = '' unless $shflags; my($prog, $old, $uc, $perltype); - chop($old = `cd $att{PERL_SRC}; sh $shflags ./cflags $libperl $att{BASEEXT}.c 2>/dev/null`) - if $att{PERL_SRC}; + unless ($Const_cccmd++){ + chop($old = `cd $att{PERL_SRC}; sh $shflags ./cflags $libperl $att{BASEEXT}.c`) + if $att{PERL_SRC}; + $Const_cccmd++; # shut up typo warning + } my(%map) = ( D => '-DDEBUGGING', @@ -1162,7 +1195,7 @@ sub const_cccmd{ echo large=\$large echo split=\$split `; - my(%cflags); + my(%cflags,$line); foreach $line (@o){ chomp $line; if ($line =~ /(.*?)=\s*(.*)\s*$/){ @@ -1298,6 +1331,19 @@ sub post_constants{ ""; } +sub pasthru { + my(@m,@pasthru,$key); + # It has to be considered carefully, which variables are apt to be passed through, e.g. PERL_SRC + # is not suited for subdirectories, as it might be relativ to the parent directory. + # Probably we need a PASTHRU2 variable. PASTHRU1 is a conservative approach, that hardly changes + # MakeMaker between version 4.086 and 4.09. + push @m, "\nPASTHRU1 = "; + foreach $key (qw(INST_ARCHLIB INST_EXE INST_LIB LIBPERL_A LINKTYPE)){ + push @pasthru, "$key=\"\$($key)\""; + } + push @m, join "\\\n\t", @pasthru; + join "", @m; +} # --- Translation Sections --- @@ -1334,10 +1380,11 @@ sub top_targets{ all :: config linkext $(INST_PM) '.$att{NOOP}.' -config :: '.$att{MAKEFILE}.' - @ $(MKPATH) $(INST_LIBDIR) $(INST_ARCHAUTODIR) +config :: '.$att{MAKEFILE}.' $(INST_LIBDIR)/.exists $(INST_ARCHAUTODIR)/.exists '; + push @m, MM->dir_target('$(INST_LIBDIR)', '$(INST_ARCHAUTODIR)'); + push @m, ' $(O_FILES): $(H_FILES) ' if @{$att{O_FILES} || []} && @{$att{H} || []}; @@ -1375,8 +1422,8 @@ static :: $att{BASEEXT}.exp push(@m," $att{BASEEXT}.exp: Makefile.PL -",' $(PERL) $(I_PERL_LIBS) -e \'use ExtUtils::MakeMaker; \\ - mksymlists(DL_FUNCS => ', +",' $(PERL) $(I_PERL_LIBS) -e \'use ExtUtils::MakeMaker qw(&mksymlists); \\ + &mksymlists(DL_FUNCS => ', %$funcs ? neatvalue($funcs) : '""',', DL_VARS => ', @$vars ? neatvalue($vars) : '""', ", NAME => \"$att{NAME}\")' "); @@ -1406,7 +1453,7 @@ BOOTSTRAP = '."$att{BASEEXT}.bs".' $(BOOTSTRAP): '."$att{MAKEFILE} $att{BOOTDEP}".' @ echo "Running mkbootstrap for $(NAME) ($(BSLOADLIBS))" @ $(PERL) $(I_PERL_LIBS) \ - -e \'use ExtUtils::MakeMaker; &mkbootstrap("$(BSLOADLIBS)");\' \ + -e \'use ExtUtils::MakeMaker qw(&mkbootstrap); &mkbootstrap("$(BSLOADLIBS)");\' \ INST_LIB=$(INST_LIB) INST_ARCHLIB=$(INST_ARCHLIB) PERL_SRC=$(PERL_SRC) NAME=$(NAME) @ $(TOUCH) $(BOOTSTRAP) @@ -1431,8 +1478,7 @@ sub dynamic_lib { ARMAYBE = '.$armaybe.' OTHERLDFLAGS = '.$otherldflags.' -$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) - @ $(MKPATH) $(INST_ARCHAUTODIR) +$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)/.exists '); if ($armaybe ne ':'){ $ldfrom = "tmp.a"; @@ -1442,6 +1488,8 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $ldfrom = "-all $ldfrom -none" if ($osname eq 'dec_osf'); push(@m,' $(LD) -o $@ $(LDDLFLAGS) '.$ldfrom. ' $(OTHERLDFLAGS) $(MYEXTLIB) $(LDLOADLIBS)'."\n"); + + push @m, MM->dir_target('$(INST_ARCHAUTODIR)'); join('',@m); } @@ -1460,8 +1508,7 @@ static :: '.$att{MAKEFILE}.' $(INST_STATIC) $(INST_PM) sub static_lib{ my(@m); push(@m, <<'END'); -$(INST_STATIC): $(OBJECT) $(MYEXTLIB) - @ $(MKPATH) $(INST_ARCHAUTODIR) +$(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)/.exists END # If this extension has it's own library (eg SDBM_File) # then copy that to $(INST_STATIC) and add $(OBJECT) into it. @@ -1477,6 +1524,7 @@ END push(@m, <<'END') if $att{PERL_SRC}; @ echo "$(EXTRALIBS)" >> $(PERL_SRC)/ext.libs END + push @m, MM->dir_target('$(INST_ARCHAUTODIR)'); join('', "\n",@m); } @@ -1506,16 +1554,31 @@ sub installpm_x { # called by installpm per file my($instdir) = $inst =~ m|(.*)/|; my(@m); push(@m," -$inst: $dist Makefile +$inst: $dist Makefile $instdir/.exists ".' @ '.$att{RM_F}.' $@ - @ $(MKPATH) '.$instdir.' '."$att{CP} $dist".' $@ '); push(@m, "\t\@\$(AUTOSPLITFILE) \$@ $splitlib/auto\n") if ($splitlib and $inst =~ m/\.pm$/); + + push @m, MM->dir_target($instdir); join('', @m); } +sub processPL { + return "" unless $att{PL_FILES}; + my(@m, $plfile); + foreach $plfile (sort keys %{$att{PL_FILES}}) { + push @m, " +all :: $att{PL_FILES}->{$plfile} + +$att{PL_FILES}->{$plfile} :: $plfile + \$(PERL) -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB) -I\$(PERL_LIB) $plfile +"; + } + join "", @m; +} + sub installbin { return "" unless $att{EXE_FILES} && ref $att{EXE_FILES} eq "ARRAY"; my(@m, $from, $to, %fromto, @to); @@ -1589,20 +1652,18 @@ sub subdir_x { # MY::subdir_x() method to override this one. qq{ config :: $subdir/$att{MAKEFILE} - cd $subdir ; \$(MAKE) config INST_LIB=\$(INST_LIB) INST_ARCHLIB=\$(INST_ARCHLIB) \\ - INST_EXE=\$(INST_EXE) LINKTYPE=\$(LINKTYPE) LIBPERL_A=\$(LIBPERL_A) \$(SUBDIR_MAKEFILE_PL_ARGS) + cd $subdir && \$(MAKE) config \$(PASTHRU1) \$(SUBDIR_MAKEFILE_PL_ARGS) $subdir/$att{MAKEFILE}: $subdir/Makefile.PL \$(CONFIGDEP) }.' @echo "Rebuilding $@ ..." $(PERL) $(I_PERL_LIBS) \\ -e "use ExtUtils::MakeMaker; MM->runsubdirpl(qw('.$subdir.'))" \\ - INST_LIB=$(INST_LIB) INST_ARCHLIB=$(INST_ARCHLIB) \\ - INST_EXE=$(INST_EXE) LINKTYPE=\$(LINKTYPE) LIBPERL_A=$(LIBPERL_A) $(SUBDIR_MAKEFILE_PL_ARGS) + $(PASTHRU1) $(SUBDIR_MAKEFILE_PL_ARGS) @echo "Rebuild of $@ complete." '.qq{ subdirs :: - cd $subdir ; \$(MAKE) all LINKTYPE=\$(LINKTYPE) + cd $subdir && \$(MAKE) all \$(PASTHRU1) }; } @@ -1640,7 +1701,7 @@ sub realclean { realclean purge :: clean '); # realclean subdirectories first (already cleaned) - $sub = "\t-cd %s && test -f %s && \$(MAKE) %s realclean\n"; + my $sub = "\t-cd %s && test -f %s && \$(MAKE) %s realclean\n"; foreach(@{$att{DIR}}){ push(@m, sprintf($sub,$_,"$att{MAKEFILE}.old","-f $att{MAKEFILE}.old")); push(@m, sprintf($sub,$_,"$att{MAKEFILE}",'')); @@ -1670,8 +1731,8 @@ sub distclean { distclean: clean $preop $att{RM_F} $mkfiles - cd ..; tar $tarflags $tarname.tar \$(BASEEXT) - cd ..; $compress $tarname.tar + cd .. && tar $tarflags $tarname.tar \$(BASEEXT) + cd .. && $compress $tarname.tar $postop "; } @@ -1694,7 +1755,7 @@ END push(@m, <<'END') if -f "test.pl"; $(FULLPERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) test.pl END - push(@m, map("\tcd $_ && test -f $att{MAKEFILE} && \$(MAKE) test LINKTYPE=\$(LINKTYPE)\n", + push(@m, map("\tcd $_ && test -f $att{MAKEFILE} && \$(MAKE) test \$(PASTHRU)\n", @{$att{DIR}})); push(@m, "\t\@echo 'No tests defined for \$(NAME) extension.'\n") unless @m > 1; join("", @m); @@ -1707,8 +1768,8 @@ sub install { push @m, q{ doc_install :: @ $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) \\ - -e 'use ExtUtils::MakeMaker; MM->writedoc("Module", "$(NAME)", \\ - "LINKTYPE=$(LINKTYPE)", "VERSION=$(VERSION)", "EXE_FILES=$(EXE_FILES)")' + -e "use ExtUtils::MakeMaker; MM->writedoc('Module', '$(NAME)', \\ + 'LINKTYPE=$(LINKTYPE)', 'VERSION=$(VERSION)', 'EXE_FILES=$(EXE_FILES)')" }; push(@m, " @@ -1761,7 +1822,7 @@ $(PERL_INC)/config.h: $(PERL_SRC)/config.sh $(PERL_ARCHLIB)/Config.pm: $(PERL_SRC)/config.sh @echo "Warning: $(PERL_ARCHLIB)/Config.pm may be out of date with $(PERL_SRC)/config.sh" - cd $(PERL_SRC); $(MAKE) lib/Config.pm + cd $(PERL_SRC) && $(MAKE) lib/Config.pm ') if $att{PERL_SRC}; push(@m, join(" ", values %{$att{XS}})." : \$(XSUBPPDEPS)\n") @@ -1784,16 +1845,39 @@ $(OBJECT) : '.$att{MAKEFILE}.' @echo "Cleaning current config before rebuilding Makefile..." -@mv '."$att{MAKEFILE} $att{MAKEFILE}.old".' -$(MAKE) -f '.$att{MAKEFILE}.'.old clean >/dev/null 2>&1 || true - $(PERL) $(I_PERL_LIBS) Makefile.PL + $(PERL) $(I_PERL_LIBS) Makefile.PL '."@ARGV".' @echo "Now you must rerun make."; false '; } - sub postamble{ ""; } +# --- Make-Directories section (internal method) --- +# dir_target(@array) returns a Makefile entry for the file .exists in each +# named directory. Returns nothing, if the entry has already been processed. +# We're helpless though, if the same directory comes as $(FOO) _and_ as "bar". +# Both of them get an entry, that's why we use "::". I chose '$(PERL)' as the +# prerequisite, because there has to be one, something that doesn't change +# too often :) +%Dir_Target = (); # package global + +sub dir_target { + my($self,@dirs)=@_; + my(@m,$dir); + foreach $dir (@dirs) { + next if $Dir_Target{$dir}; + push @m, " +$dir/.exists :: \$(PERL) + \@ \$(MKPATH) $dir + \@ \$(TOUCH) $dir/.exists +"; + $Dir_Target{$dir}++; + } + join "", @m; +} + # --- Make-A-Perl section --- sub staticmake { @@ -1838,6 +1922,8 @@ sub makeaperl { File::Find::find(sub { return unless m/\.a$/; return if m/^libperl/; + # don't include the installed version of this extension + return if $File::Find::name =~ m:auto/$att{FULLEXT}/$att{BASEEXT}.a$:; $static{fastcwd() . "/" . $_}++; }, grep( -d $_, @{$searchdirs || []}) ); @@ -1868,19 +1954,14 @@ join(" ", sort keys %static), " MAP_EXTRA = @{$extra} MAP_PRELIBS = $Config{'libs'} $Config{'cryptlib'} "; - if ($libperl) { - unless (-f $libperl || -f ($libperl = "$Config{'installarchlib'}/CORE/$libperl")){ - print STDOUT "Warning: $libperl not found"; - undef $libperl; - } - } - unless ($libperl) { - if (defined $att{PERL_SRC}) { - $libperl = "$att{PERL_SRC}/libperl.a"; - } elsif ( -f ( $libperl = "$Config{'installarchlib'}/CORE/libperl.a" )) { - } else { - print STDOUT "Warning: $libperl not found"; - } + + unless ($libperl && -f $libperl) { + my $dir = (defined $att{PERL_SRC}) ? $att{PERL_SRC} + : "$Config{'installarchlib'}/CORE"; + $libperl = "libperl.a" unless $libperl; + $libperl = "$dir/$libperl"; + print STDOUT "Warning: $libperl not found" + unless (-f $libperl || defined($att{PERL_SRC})); } push @m, " @@ -1910,9 +1991,9 @@ $tmp/perlmain.c: $makefilename}, q{ # We write MAP_EXTRA outside the perl program to have it eval'd by the shell push @m, q{ doc_inst_perl: - @ $(FULLPERL) -e 'use ExtUtils::MakeMaker; MM->writedoc("Perl binary", \\ - "$(MAP_TARGET)", "MAP_STATIC=$(MAP_STATIC)", \\ - "MAP_EXTRA=@ARGV", "MAP_LIBPERL=$(MAP_LIBPERL)")' -- $(MAP_EXTRA) + @ $(FULLPERL) -e 'use ExtUtils::MakeMaker; MM->writedoc("Perl binary",' \\ + -e '"$(MAP_TARGET)", "MAP_STATIC=$(MAP_STATIC)",' \\ + -e '"MAP_EXTRA=@ARGV", "MAP_LIBPERL=$(MAP_LIBPERL)")' -- $(MAP_EXTRA) }; push @m, qq{ @@ -2140,6 +2221,7 @@ generated C<*.bs> file. sub mksymlists { my($self) = shift; + my($pkg); # only AIX requires a symbol list at this point # (so does VMS, but that's handled by the MM_VMS package) @@ -2157,6 +2239,7 @@ sub mksymlists { print EXP join("\n",@{$att{DL_VARS}}) if $att{DL_VARS}; foreach $pkg (keys %{$att{DL_FUNCS}}) { (my($prefix) = $pkg) =~ s/\W/_/g; + my $func; foreach $func (@{$att{DL_FUNCS}->{$pkg}}) { $func = "XS_${prefix}_$func" unless $func =~ /^boot_/; print EXP "$func\n"; @@ -2199,6 +2282,7 @@ perllocal - locally installed modules and perl binaries close POD; } + =head1 AUTHORS Andy Dougherty F<E<lt>doughera@lafcol.lafayette.eduE<gt>>, Andreas @@ -2229,13 +2313,7 @@ v4.03 January 30th 1995 By Andreas Koenig v4.04 Februeary 5th 1995 By Andreas Koenig v4.05 February 8th 1995 By Andreas Koenig v4.06 February 10th 1995 By Andreas Koenig - -Cleaning up the new interface. Suggestion to freeze now until 5.001. - v4.061 February 12th 1995 By Andreas Koenig - -Fixes of some my() declarations and of @extra computing in makeaperl(). - v4.08 - 4.085 February 14th-21st 1995 by Andreas Koenig Introduces EXE_FILES and INST_EXE for installing executable scripts @@ -2273,6 +2351,48 @@ v4.086 March 9 1995 by Andy Dougherty Fixed some AIX buglets. Fixed DLD support for Linux with gcc 2.6.2. +v4.09 March 31 1995 by Andreas Koenig + +Patches from Tim (/usr/local/lib/perl5/hpux/CORE/libperl.a not found +message eliminated, and a small makeaperl patch). + +blib now is a relative directory (./blib). + +Documentation bug fixed. + +Chdir in the Makefile always followed by "&&", not by ";". + +The output of cflags is no longer directed to /dev/null, but the shell +version of cflags is now only called once. + +The result of MakeMaker's cflags takes precedence over +shell-cflags. + +Introduced a $(PASTHRU) variable, that doesn't have much effect yet, +but now it's easier to add variables that have to be passed to +recursive makes. + +'make config' will now always reapply the original arguments to the +'perl Makefile.PL'. + +MKPATH will be called only once for any directory (should speed up Tk +building and installation considerably). + +"Subroutine mkbootstrap redefined" message eliminated. It was +necessary to move &mkbootstrap and &mksymlists from @EXPORT to +@EXPORT_OK. + +C<*.PL> files will be processed by C<$(PERL)>. + +Turned some globals into my() variables, where it was obvious to be an +oversight. + +Changed some continuation lines so that they work on Solaris and Unicos. + +v4.091 April 3 1995 by Andy Dougherty + +Another attempt to fix writedoc() from Dean Roehrich. + =head1 NOTES MakeMaker development work still to be done: |