Skip to content

Commit

Permalink
Upgrade to ExtUtils::MakeMaker 6.25
Browse files Browse the repository at this point in the history
p4raw-id: //depot/perl@23653
  • Loading branch information
rgs committed Dec 15, 2004
1 parent baf7177 commit 5dca256
Show file tree
Hide file tree
Showing 33 changed files with 405 additions and 1,222 deletions.
1 change: 1 addition & 0 deletions MANIFEST
Expand Up @@ -1317,6 +1317,7 @@ lib/ExtUtils/t/MM_Unix.t See if ExtUtils::MM_UNIX works
lib/ExtUtils/t/MM_VMS.t See if ExtUtils::MM_VMS works
lib/ExtUtils/t/MM_Win32.t See if ExtUtils::MM_Win32 works
lib/ExtUtils/TODO Things TODO in MakeMaker
lib/ExtUtils/t/dir_target.t Verify if dir_target() is supported
lib/ExtUtils/t/oneliner.t See if MM can generate perl one-liners
lib/ExtUtils/t/Packlist.t See if Packlist works
lib/ExtUtils/t/parse_version.t See if parse_version works
Expand Down
63 changes: 59 additions & 4 deletions lib/ExtUtils/Changes
@@ -1,19 +1,74 @@
6.22
6.25 Wed Dec 15 06:59:46 EST 2004
- Build.PL was being considered like Module_pm.PL. Build.PL is now
ignored. [radek@karnet.pl] [rt.cpan.org 8809]
- Devel::Cover cover_db/ directory now ignored by MANIFEST.SKIP

6.24_01 Thu Dec 9 00:44:48 EST 2004
- Docs encouraged possibly insecure use of /tmp [CAN-2004-0976 via Debian]
- Remove empty rpath from .so files [bleadperl@23183]
- At long last the core man page title has its apostrophe.
- BeOS tests fixed [Ingo Weinhold] [perlbug #32717]
- Putting a pm_to_blib target back (alias of pm_to_blib.ts) in case
anyone was depending on it being there (mod_perl was).

6.24 Tue Nov 30 15:35:13 EST 2004
- dir_target() was accidentally named dir_targets() causing problems
installing some Tk modules.

6.23 Fri Nov 26 16:01:50 EST 2004
- MM_MacOS lost its $VERSION causing some CPAN indexing problems. Enough
people noticed this to warrant a quick release.

6.22 Tue Nov 23 22:22:22 EST 2004
- Minor glitch in Command.t test on Win32 [thanks Steve Hay]
* Fixed MANIFEST.SKIP so it avoids all the new *.ts files.
- Don't spuriously define pasthru arguments

6.21_03 Sat Apr 3 2004
- pm_to_blib and blibdirs stamp files now pm_to_blib.ts and blibdirs.ts
everywhere because some filesystems insist you have a dot in the
filename. This eliminates a bunch of special case code.
- Minor potential glitch in the version check logic.
- Making Makefile rebuild logic more resistant to inconsequential
errors when cleaning up things that are going to be rebuilt anyway.
- Adding SCCS to the list of directories in MANIFEST.SKIP.
- Fixing blibdirs so it doesn't rebuild every make run.
- Using a more conservative MAX_EXEC_LEN for Win98 to allow building
* Fixing blibdirs so it doesn't rebuild every make run.
* Using a more conservative MAX_EXEC_LEN for Win98 to allow building
large modules like Encode. [Greg Matheson]
- test target mangled by dmake. Doesn't seem to like q{}.
* test target mangled by dmake. Doesn't seem to like q{}.
[Greg Matheson]
- instmodsh now using Archive::Tar to create archives if available.
[Slaven Rezic]
- instmodsh now using more portable tar flags to create archives.
[Slaven Rezic]
- Added FAQ entry for "How do I use a module without installing it?"
and "How do I keep from installing man pages?" [Joe Cromie]
- Fixed finding the default MANIFEST.SKIP if its on a different volume
[Ilya Zakharevich]
- When building Perl, we had a chance of picking up the old installed
xsubpp from @INC [Andreas Koenig]
- makeaperl() now a bit more intellegent about ignoring perl libraries
not called libperl. [Ilya Zakharevich bleadperl@22032]
* MacOS Classic (MacPerl) is no longer supported. Please use
Module::Build instead.
* Restored pm_to_blib.ts so pm_to_blib generation will be quiessent on
VMS. [rt 4675]
- For simplicity, dir_target() is now a no-op. Should not effect any
existing uses.
- Converted utility commands from using $(PERLRUN) to $(ABSPERLRUN).
This allows distclean to work with SDBM_File. [rt 5616]
- realclean was using "rm -f" instead of "rm -rf" meaning directories
wouldn't be properly cleaned. Caused by bleadperl@7952. [rt 5208]
- fixpath() could undo wraplist() on VMS [rt 4955]
- ensure ExtUtils::Command::rm_f deletes all versions of a file on VMS
[rt 4687]
- hint.t generating improperly named hint files on OS's where $^O
contains a '.'. They should be converted to underscores. Test
mistake, not a bug. [rt 5365]
- Fixed ExtUtils::Command::chmod() so it will work on directories on
VMS. [rt 4676]
- parse_version.t was using no_plan causing trouble on older T::Hs.
[rt 5633]

6.21 Tue Nov 11 00:12:56 PST 2003
- NetBSD was looking in INSTALLARCHLIB/CORE for libperl instead of
Expand Down
52 changes: 41 additions & 11 deletions lib/ExtUtils/Command.pm
Expand Up @@ -103,19 +103,33 @@ Removes files (even if readonly)
=cut

sub rm_f
{
expand_wildcards();
foreach (@ARGV)
{
next unless -f $_;
next if unlink($_);
chmod(0777,$_);
next if unlink($_);
carp "Cannot delete $_:$!";
}
sub rm_f {
expand_wildcards();

foreach my $file (@ARGV) {
next unless -f $file;

next if _unlink($file);

chmod(0777, $file);

next if _unlink($file);

carp "Cannot delete $file: $!";
}
}

sub _unlink {
my $files_unlinked = 0;
foreach my $file (@_) {
my $delete_count = 0;
$delete_count++ while unlink $file;
$files_unlinked++ if $delete_count;
}
return $files_unlinked;
}


=item touch files ...
Makes files exist, with current timestamp
Expand Down Expand Up @@ -188,6 +202,22 @@ sub chmod {
local @ARGV = @ARGV;
my $mode = shift(@ARGV);
expand_wildcards();

if( $Is_VMS ) {
foreach my $idx (0..$#ARGV) {
my $path = $ARGV[$idx];
next unless -d $path;

# chmod 0777, [.foo.bar] doesn't work on VMS, you have to do
# chmod 0777, [.foo]bar.dir
my @dirs = File::Spec->splitdir( $path );
$dirs[-1] .= '.dir';
$path = File::Spec->catfile(@dirs);

$ARGV[$idx] = $path;
}
}

chmod(oct $mode,@ARGV) || die "Cannot chmod ".join(' ',$mode,@ARGV).":$!";
}

Expand Down
4 changes: 2 additions & 2 deletions lib/ExtUtils/Command/MM.pm
Expand Up @@ -9,7 +9,7 @@ use vars qw($VERSION @ISA @EXPORT);

@EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
$VERSION = '0.03';
$VERSION = '0.03_01';

my $Is_VMS = $^O eq 'VMS';

Expand Down Expand Up @@ -104,7 +104,7 @@ sub pod2man {

# Official sets --center, but don't override things explicitly set.
if ($options{official} && !defined $options{center}) {
$options{center} = 'Perl Programmers Reference Guide';
$options{center} = q[Perl Programmer's Reference Guide];
}

# This isn't a valid Pod::Man option and is only accepted for backwards
Expand Down
2 changes: 1 addition & 1 deletion lib/ExtUtils/Liblist/Kid.pm
Expand Up @@ -10,7 +10,7 @@ use 5.00503;

use strict;
use vars qw($VERSION);
$VERSION = 1.30_01;
$VERSION = 1.30;

use Config;
use Cwd 'cwd';
Expand Down
7 changes: 5 additions & 2 deletions lib/ExtUtils/MANIFEST.SKIP
Expand Up @@ -10,8 +10,8 @@
\bMakefile$
\bblib/
\bMakeMaker-\d
\bpm_to_blib$
\bblibdirs\.exists$
\bpm_to_blib\.ts$
\bblibdirs\.ts$

# Avoid Module::Build generated and utility files.
\bBuild$
Expand All @@ -22,3 +22,6 @@
\.old$
\#$
\b\.#

# Avoid Devel::Cover files.
\bcover_db\b
4 changes: 2 additions & 2 deletions lib/ExtUtils/META.yml
@@ -1,7 +1,7 @@
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: ExtUtils-MakeMaker
version: 6.22
version: 6.25
version_from: lib/ExtUtils/MakeMaker.pm
installdirs: perl
requires:
Expand All @@ -11,4 +11,4 @@ requires:
Pod::Man: 0

distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.22
generated_by: ExtUtils::MakeMaker version 6.25
21 changes: 10 additions & 11 deletions lib/ExtUtils/MM.pm
Expand Up @@ -44,25 +44,24 @@ away.
}

my %Is = ();
$Is{VMS} = 1 if $^O eq 'VMS';
$Is{OS2} = 1 if $^O eq 'os2';
$Is{MacOS} = 1 if $^O eq 'MacOS';
$Is{VMS} = $^O eq 'VMS';
$Is{OS2} = $^O eq 'os2';
$Is{MacOS} = $^O eq 'MacOS';
if( $^O eq 'MSWin32' ) {
Win32::IsWin95() ? $Is{Win95} = 1 : $Is{Win32} = 1;
}
$Is{UWIN} = 1 if $^O =~ /^uwin(-nt)?$/;
$Is{Cygwin} = 1 if $^O eq 'cygwin';
$Is{NW5} = 1 if $Config{osname} eq 'NetWare'; # intentional
$Is{BeOS} = 1 if $^O =~ /beos/i; # XXX should this be that loose?
$Is{DOS} = 1 if $^O eq 'dos';

$Is{Unix} = 1 if !keys %Is;

$Is{UWIN} = $^O =~ /^uwin(-nt)?$/;
$Is{Cygwin} = $^O eq 'cygwin';
$Is{NW5} = $Config{osname} eq 'NetWare'; # intentional
$Is{BeOS} = $^O =~ /beos/i; # XXX should this be that loose?
$Is{DOS} = $^O eq 'dos';
if( $Is{NW5} ) {
$^O = 'NetWare';
delete $Is{Win32};
}
$Is{Unix} = !grep { $_ } values %Is;

map { delete $Is{$_} unless $Is{$_} } keys %Is;
_assert( keys %Is == 1 );
my($OS) = keys %Is;

Expand Down
39 changes: 28 additions & 11 deletions lib/ExtUtils/MM_Any.pm
Expand Up @@ -2,7 +2,7 @@ package ExtUtils::MM_Any;

use strict;
use vars qw($VERSION @ISA);
$VERSION = 0.09_01;
$VERSION = '0.10';
@ISA = qw(File::Spec);

use Config;
Expand Down Expand Up @@ -87,29 +87,47 @@ sub os_flavor_is {
return (grep { $flavors{$_} } @_) ? 1 : 0;
}


=item dir_target B<DEPRECATED>
my $make_frag = $mm->dir_target(@directories);
I<This function is deprecated> its use is no longer necessary and is
I<only provided for backwards compatibility>. It is now a no-op.
blibdirs_target provides a much simpler mechanism and pm_to_blib() can
create its own directories anyway.
=cut

sub dir_target {}


=item blibdirs_target (o)
my $make_frag = $mm->blibdirs_target;
Creates the blibdirs.exists target which creates all the directories we use in
Creates the blibdirs.ts target which creates all the directories we use in
blib/.
=cut

sub blibdirs_target {
my $self = shift;

my @dirs = map { uc "\$(INST_$_)" } qw(libdir
autodir archautodir
bin script
man1dir man3dir
);
my @dirs = map { uc "\$(INST_$_)" } qw(libdir archlib
autodir archautodir
bin script
man1dir man3dir
);
my @mkpath = $self->split_command('$(NOECHO) $(MKPATH)', @dirs);
my @chmod = $self->split_command('$(NOECHO) $(CHMOD) 755', @dirs);

my $make = "\nblibdirs.exists :: Makefile.PL \n";
my $make = "\nblibdirs.ts :\n";
$make .= join "", map { "\t$_\n" } @mkpath, @chmod;
$make .= "\t\$(NOECHO) \$(TOUCH) blibdirs.exists\n\n";
$make .= <<'MAKE';
$(NOECHO) $(TOUCH) $@
MAKE

return $make;
}
Expand Down Expand Up @@ -914,15 +932,14 @@ sub platform_constants {
corresponding to the MM_*.pm file we're using.
The first element of @os_flavor is the major family (ie. Unix,
Windows, VMS, OS/2, MacOS, etc...) and the rest are sub families.
Windows, VMS, OS/2, etc...) and the rest are sub families.
Some examples:
Cygwin98 ('Unix', 'Cygwin', 'Cygwin9x')
Windows NT ('Win32', 'WinNT')
Win98 ('Win32', 'Win9x')
Linux ('Unix', 'Linux')
MacOS Classic ('MacOS', 'MacOS Classic')
MacOS X ('Unix', 'Darwin', 'MacOS', 'MacOS X')
OS/2 ('OS/2')
Expand Down

0 comments on commit 5dca256

Please sign in to comment.