This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
MakeMaker 5.55_03 -> 5.90_01
authorMichael G. Schwern <schwern@pobox.com>
Thu, 11 Apr 2002 01:25:26 +0000 (21:25 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Thu, 11 Apr 2002 12:33:57 +0000 (12:33 +0000)
Message-ID: <20020411052525.GA17038@blackrider>

p4raw-id: //depot/perl@15856

13 files changed:
MANIFEST
lib/ExtUtils/Changes
lib/ExtUtils/MM_Cygwin.pm
lib/ExtUtils/MM_NW5.pm
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MM_VMS.pm
lib/ExtUtils/MM_Win32.pm
lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/t/INST.t
lib/ExtUtils/t/INST_PREFIX.t [new file with mode: 0644]
lib/ExtUtils/t/MM_Cygwin.t
lib/ExtUtils/t/MM_Unix.t
lib/ExtUtils/t/prefixify.t

index f917d39..9c69348 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1016,6 +1016,7 @@ lib/ExtUtils/t/Embed.t            See if ExtUtils::Embed and embedding works
 lib/ExtUtils/t/hints.t          See if hint files are honored.
 lib/ExtUtils/t/Installed.t     See if ExtUtils::Installed works
 lib/ExtUtils/t/INST.t           Check MakeMaker INST_* macros 
+lib/ExtUtils/t/INST_PREFIX.t    See if MakeMaker can apply PREFIXs
 lib/ExtUtils/t/Manifest.t      See if ExtUtils::Manifest works
 lib/ExtUtils/t/Mkbootstrap.t   See if ExtUtils::Mkbootstrap works
 lib/ExtUtils/t/MM_BeOS.t       See if ExtUtils::MM_BeOS works
index f364669..cfbb0a0 100644 (file)
@@ -1,3 +1,31 @@
+5.90_01 Thu Apr 11 01:11:54 EDT 2002
+    [[ API Changes ]]
+    * Implementation of the new PREFIX logic.
+    * Added new INSTALL targets:
+        INSTALLSITEBIN
+        INSTALLSITEMAN1DIR   INSTALLSITEMAN3DIR 
+        INSTALLVENDORMAN1DIR INSTALLVENDORMAN3DIR
+        INSTALLVENDORBIN INSTALLVENDORLIB INSTALLVENDORARCH
+        SITEPREFIX VENDORPREFIX
+    * INSTALLDIRS=site now properly using $Config{siteprefixexp}
+      (Thieved from Debian.  Thanks!)
+    * Added INSTALLDIRS=vendor & support for vendor directories
+      (Thieved from Debian.  Thanks!)
+
+    [[ Bug Fixes ]]
+    - nmake syntax nits from Mattia Barbon
+    - ExtUtils::Packlist fix for files with spaces in them from Jan Dubois
+      (bleadperl@15800)
+    - Old, old, old dmake bug in MM_Win32->pm_to_blib fixed by Nick
+      (bleadperl 15847)
+
+    [[ Internals ]]
+    - Purging leftover PDP compiler flags.
+
+5.55_03 Sat Apr  6 21:57:01 EST 2002
+    - Reversing "fix" for RT 444.  It wasn't really fixed and it
+      caused havoc with Compress::Zlib and Tk.
+
 5.55_02 Sat Apr  6 03:09:15 EST 2002
     [[ Bug Fixes ]]
     - Craig Berry fixed install on VMS (again, I munged the last patch)
     - For some reason MM_VMS was using $Config{arch} instead of
       $Config{archname}
     - Fix (well, hack) for creating ABSPERL on VMS.
+    - Quieting some warnings revealed by ExtUtils::Constant
+    - test_via_script had a typo and forgot INST_ARCHLIB
 
     [[ Test Fixes ]]
     - INST.t has to tell MakeMaker it's in the PERL_CORE
-    - INST_LIB doesn't change if it's in the core
+    - Fixing expected values of INST_* when building the core.
 
 5.55_01 Thu Apr  4 23:58:06 EST 2002
     [[ API Changes ]]
 5.48_04 Mon Jan 21 19:28:38 EST 2002
     - No longer requiring Test::More
     - Now tested to work with a clean 5.6.1
-    - Stripped out $Revision: 1.48 $ based $VERSIONs.
+    - Stripped out $Revision based $VERSIONs.
     - Rolled in patches from p5p, vmsperl & VOS (14325, 14338, 14360, 14364)
     * hint files now run in a safer context.  Only $self is available.
     - ExtUtils::testlib now provides absolute paths into @INC.
index 0192836..48e0995 100644 (file)
@@ -27,8 +27,6 @@ sub cflags {
 CCFLAGS = $self->{CCFLAGS}
 OPTIMIZE = $self->{OPTIMIZE}
 PERLTYPE = $self->{PERLTYPE}
-LARGE = $self->{LARGE}
-SPLIT = $self->{SPLIT}
 };
 
 }
index 6652fbb..1759eb2 100644 (file)
@@ -73,7 +73,7 @@ sub const_cccmd {
     return '' unless $self->needs_linking();
     return $self->{CONST_CCCMD} =
        q{CCCMD = $(CC) $(INC) $(CCFLAGS) $(OPTIMIZE) \\
-       $(PERLTYPE) $(LARGE) $(SPLIT) $(MPOLLUTE) \\
+       $(PERLTYPE) $(MPOLLUTE) \\
        -DVERSION="$(VERSION)" -DXS_VERSION="$(XS_VERSION)"};
 }
 
index 9fbd2fa..b106ab2 100644 (file)
@@ -13,11 +13,13 @@ use DirHandle;
 use strict;
 use vars qw($VERSION @ISA
             $Is_Mac $Is_OS2 $Is_VMS $Is_Win32 $Is_Dos $Is_VOS
-            $Verbose %pm %static $Xsubpp_Version);
+            $Verbose %pm %static $Xsubpp_Version
+            %Config_Override
+           );
 
 use ExtUtils::MakeMaker qw($Verbose neatvalue);
 
-$VERSION = '1.20_01';
+$VERSION = '1.30_01';
 
 require ExtUtils::MM_Any;
 @ISA = qw(ExtUtils::MM_Any);
@@ -479,17 +481,23 @@ sub constants {
     for $tmp (qw/
 
              AR_STATIC_ARGS NAME DISTNAME NAME_SYM VERSION
-             VERSION_SYM XS_VERSION INST_BIN INST_LIB
-             INST_ARCHLIB INST_SCRIPT PREFIX  INSTALLDIRS
-             INSTALLPRIVLIB INSTALLARCHLIB INSTALLSITELIB
-             INSTALLSITEARCH INSTALLBIN INSTALLSCRIPT PERL_LIB
-             PERL_ARCHLIB SITELIBEXP SITEARCHEXP LIBPERL_A MYEXTLIB
+             VERSION_SYM XS_VERSION 
+             INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB
+              INSTALLDIRS
+              PREFIX          SITEPREFIX      VENDORPREFIX
+             INSTALLPRIVLIB  INSTALLSITELIB  INSTALLVENDORLIB
+             INSTALLARCHLIB  INSTALLSITEARCH INSTALLVENDORARCH
+              INSTALLBIN      INSTALLSITEBIN  INSTALLVENDORBIN  INSTALLSCRIPT 
+              PERL_LIB        PERL_ARCHLIB 
+              SITELIBEXP      SITEARCHEXP 
+              LIBPERL_A MYEXTLIB
              FIRST_MAKEFILE MAKE_APERL_FILE PERLMAINCC PERL_SRC
              PERL_INC PERL FULLPERL PERLRUN FULLPERLRUN PERLRUNINST 
               FULLPERLRUNINST ABSPERL ABSPERLRUN ABSPERLRUNINST
               FULL_AR PERL_CORE NOOP NOECHO
 
-             / ) {
+             / ) 
+    {
        next unless defined $self->{$tmp};
 
         # pathnames can have sharp signs in them; escape them so
@@ -521,7 +529,8 @@ MM_VERSION = $ExtUtils::MakeMaker::VERSION
     for $tmp (qw/
              FULLEXT BASEEXT PARENT_NAME DLBASE VERSION_FROM INC DEFINE OBJECT
              LDFROM LINKTYPE PM_FILTER
-             / ) {
+             / ) 
+    {
        next unless defined $self->{$tmp};
        push @m, "$tmp = $self->{$tmp}\n";
     }
@@ -537,9 +546,12 @@ MAN3PODS = ".join(" \\\n\t", sort keys %{$self->{MAN3PODS}})."
 ";
 
     for $tmp (qw/
-             INST_MAN1DIR        INSTALLMAN1DIR MAN1EXT
-             INST_MAN3DIR        INSTALLMAN3DIR MAN3EXT
-             /) {
+             INST_MAN1DIR  MAN1EXT 
+              INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR
+             INST_MAN3DIR  MAN3EXT
+              INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR
+             /) 
+    {
        next unless defined $self->{$tmp};
        push @m, "$tmp = $self->{$tmp}\n";
     }
@@ -547,7 +559,8 @@ MAN3PODS = ".join(" \\\n\t", sort keys %{$self->{MAN3PODS}})."
     for $tmp (qw(
                PERM_RW PERM_RWX
                )
-            ) {
+            ) 
+    {
         my $method = lc($tmp);
        # warn "self[$self] method[$method]";
         push @m, "$tmp = ", $self->$method(), "\n";
@@ -1857,88 +1870,160 @@ sub init_INSTALL {
         }
     }
 
-    # we have to look at the relation between $Config{prefix} and the
-    # requested values. We're going to set the $Config{prefix} part of
-    # all the installation path variables to literally $(PREFIX), so
-    # the user can still say make PREFIX=foo
-    my($configure_prefix) = $Config{'prefix'};
-    $configure_prefix = VMS::Filespec::unixify($configure_prefix) if $Is_VMS;
-    $self->{PREFIX} ||= $configure_prefix;
-
-
-    my($search_prefix, $replace_prefix);
-    # If the prefix contains perl, Configure shapes the tree as follows:
-    #    perlprefix/lib/                INSTALLPRIVLIB
-    #    perlprefix/lib/pod/
-    #    perlprefix/lib/site_perl/      INSTALLSITELIB
-    #    perlprefix/bin/                INSTALLBIN
-    #    perlprefix/man/                INSTALLMAN1DIR
-    # else
-    #    prefix/lib/perl5/              INSTALLPRIVLIB
-    #    prefix/lib/perl5/pod/
-    #    prefix/lib/perl5/site_perl/    INSTALLSITELIB
-    #    prefix/bin/                    INSTALLBIN
-    #    prefix/lib/perl5/man/          INSTALLMAN1DIR
-    #
-    # The above results in various kinds of breakage on various
-    # platforms, so we cope with it as follows: if prefix/lib/perl5
-    # or prefix/lib/perl5/man exist, we'll replace those instead
-    # of /prefix/{lib,man}
-
-    $replace_prefix = '$(PREFIX)';
-    for my $install_variable (qw/INSTALLBIN INSTALLSCRIPT/)
-    {
-        $self->prefixify($install_variable,$configure_prefix,$replace_prefix);
+    # There are no Config.pm defaults for these.
+    $Config_Override{installsiteman1dir} = 
+        "$Config{siteprefixexp}/man/man\$(MAN1EXT)";
+    $Config_Override{installsiteman3dir} = 
+        "$Config{siteprefixexp}/man/man\$(MAN3EXT)";
+    $Config_Override{installvendorman1dir} =
+        "$Config{vendorprefixexp}/man/man\$(MAN1EXT)";
+    $Config_Override{installvendorman3dir} =
+        "$Config{vendorprefixexp}/man/man\$(MAN3EXT)";
+
+    my $iprefix = $Config{installprefixexp} || '';
+    my $vprefix = $Config{vendorprefixexp}  || $iprefix;
+    my $sprefix = $Config{siteprefixexp}    || '';
+
+    my $u_prefix  = $self->{PREFIX}       || '';
+    my $u_sprefix = $self->{SITEPREFIX}   || $u_prefix;
+    my $u_vprefix = $self->{VENDORPREFIX} || $u_prefix;
+
+    $self->{PREFIX}       ||= $u_prefix  || $iprefix;
+    $self->{SITEPREFIX}   ||= $u_sprefix || $sprefix;
+    $self->{VENDORPREFIX} ||= $u_vprefix || $vprefix;
+
+    my $arch    = $Config{archname};
+    my $version = $Config{version};
+
+    # default style
+    my $libstyle = 'lib/perl5';
+    my $manstyle = '';
+
+    if( $self->{LIBSTYLE} ) {
+        $libstyle = $self->{LIBSTYLE};
+        $manstyle = $self->{LIBSTYLE} eq 'lib/perl5' ? 'lib/perl5' : '';
+    }
+
+    my %bin_layouts = 
+    (
+        bin         => { s => $iprefix,
+                         r => '$(PREFIX)',
+                         d => 'bin' },
+        vendorbin   => { s => $vprefix,
+                         r => '$(VENDORPREFIX)',
+                         d => 'bin' },
+        sitebin     => { s => $sprefix,
+                         r => '$(SITEPREFIX)',
+                         d => 'bin' },
+        script      => { s => $iprefix,
+                         r => '$(PREFIX)',
+                         d => 'bin' },
+    );
+    
+    my %man_layouts =
+    (
+        man1dir         => { s => $iprefix,
+                             r => '$(PREFIX)',
+                             d => 'man/man$(MAN1EXT)',
+                             style => $manstyle, },
+        siteman1dir     => { s => $sprefix,
+                             r => '$(SITEPREFIX)',
+                             d => 'man/man$(MAN1EXT)',
+                             style => $manstyle, },
+        vendorman1dir   => { s => $vprefix,
+                             r => '$(VENDORPREFIX)',
+                             d => 'man/man$(MAN1EXT)',
+                             style => $manstyle, },
+
+        man3dir         => { s => $iprefix,
+                             r => '$(PREFIX)',
+                             d => 'man/man$(MAN3EXT)',
+                             style => $manstyle, },
+        siteman3dir     => { s => $sprefix,
+                             r => '$(SITEPREFIX)',
+                             d => 'man/man$(MAN3EXT)',
+                             style => $manstyle, },
+        vendorman3dir   => { s => $vprefix,
+                             r => '$(VENDORPREFIX)',
+                             d => 'man/man$(MAN3EXT)',
+                             style => $manstyle, },
+    );
+
+    my %lib_layouts =
+    (
+        privlib     => { s => $iprefix,
+                         r => '$(PREFIX)',
+                         d => '',
+                         style => $libstyle, },
+        vendorlib   => { s => $vprefix,
+                         r => '$(VENDORPREFIX)',
+                         d => '',
+                         style => $libstyle, },
+        sitelib     => { s => $sprefix,
+                         r => '$(SITEPREFIX)',
+                         d => 'site_perl',
+                         style => $libstyle, },
+        
+        archlib     => { s => $iprefix,
+                         r => '$(PREFIX)',
+                         d => "$version/$arch",
+                         style => $libstyle },
+        vendorarch  => { s => $vprefix,
+                         r => '$(VENDORPREFIX)',
+                         d => "$version/$arch",
+                         style => $libstyle },
+        sitearch    => { s => $sprefix,
+                         r => '$(SITEPREFIX)',
+                         d => "site_perl/$version/$arch",
+                         style => $libstyle },
+    );
+
+
+    # Special case for LIB.
+    if( $self->{LIB} ) {
+        foreach my $var (keys %lib_layouts) {
+            my $Installvar = uc "install$var";
+
+            if( $var =~ /arch/ ) {
+                $self->{$Installvar} ||= 
+                  File::Spec->catdir($self->{LIB}, $Config{archname});
+            }
+            else {
+                $self->{$Installvar} ||= $self->{LIB};
+            }
+        }
     }
 
-    my $funkylibdir = File::Spec->catdir($configure_prefix,"lib","perl5");
-    $funkylibdir = '' unless -d $funkylibdir;
-    $search_prefix = $funkylibdir || 
-                     File::Spec->catdir($configure_prefix,"lib");
 
-    if ($self->{LIB}) {
-        $self->{INSTALLPRIVLIB} = $self->{INSTALLSITELIB} = $self->{LIB};
-        $self->{INSTALLARCHLIB} = $self->{INSTALLSITEARCH} = 
-            File::Spec->catdir($self->{LIB},$Config{'archname'});
-    }
-    else {
-        if (-d File::Spec->catdir($self->{PREFIX},"lib","perl5")) {
-            $replace_prefix = File::Spec->catdir(qq[\$\(PREFIX\)],"lib", 
-                                                 "perl5");
+    my %layouts = (%bin_layouts, %man_layouts, %lib_layouts);
+    while( my($var, $layout) = each(%layouts) ) {
+        my($s, $r, $d, $style) = @{$layout}{qw(s r d style)};
+
+        print STDERR "Prefixing $var\n" if $Verbose >= 2;
+
+        my $installvar = "install$var";
+        my $Installvar = uc $installvar;
+        next if $self->{$Installvar};
+
+        if( $r ) {
+            $d = "$style/$d" if $style;
+            $self->prefixify($installvar, $s, $r, $d);
         }
         else {
-            $replace_prefix = File::Spec->catdir(qq[\$\(PREFIX\)],"lib");
-        }
-        for my $install_variable (qw/
-                               INSTALLPRIVLIB
-                               INSTALLARCHLIB
-                               INSTALLSITELIB
-                               INSTALLSITEARCH
-                               /)
-        {
-            $self->prefixify($install_variable,$search_prefix,$replace_prefix);
+            $self->{$Installvar} = $Config_Override{$installvar} || 
+                                   $Config{$installvar};
         }
+
+        print STDERR "  $Installvar == $self->{$Installvar}\n" 
+          if $Verbose >= 2;
     }
-    my $funkymandir = File::Spec->catdir($configure_prefix,"lib","perl5","man");
-    $funkymandir = '' unless -d $funkymandir;
-    $search_prefix = $funkymandir || File::Spec->catdir($configure_prefix,"man");
-    if (-d File::Spec->catdir($self->{PREFIX},"lib","perl5", "man")) {
-        $replace_prefix = File::Spec->catdir(qq[\$\(PREFIX\)],"lib", "perl5", "man");
-    }
-    else {
-        $replace_prefix = File::Spec->catdir(qq[\$\(PREFIX\)],"man");
-    }
-    for my $install_variable (qw/
-                           INSTALLMAN1DIR
-                           INSTALLMAN3DIR
-                           /)
-    {
-        $self->prefixify($install_variable,$search_prefix,$replace_prefix);
-    }
+
+    $self->{PREFIX} ||= $iprefix;
 
     return 1;
 }
 
+
 =item init_PERL
 
     $mm->init_PERL;
@@ -2059,6 +2144,8 @@ install_perl :: all pure_perl_install doc_perl_install
 
 install_site :: all pure_site_install doc_site_install
 
+install_vendor :: all pure_vendor_install doc_vendor_install
+
 pure_install :: pure_$(INSTALLDIRS)_install
 
 doc_install :: doc_$(INSTALLDIRS)_install
@@ -2090,13 +2177,22 @@ pure_site_install ::
                write }.File::Spec->catfile('$(INSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{ \
                $(INST_LIB) $(INSTALLSITELIB) \
                $(INST_ARCHLIB) $(INSTALLSITEARCH) \
-               $(INST_BIN) $(INSTALLBIN) \
+               $(INST_BIN) $(INSTALLSITEBIN) \
                $(INST_SCRIPT) $(INSTALLSCRIPT) \
-               $(INST_MAN1DIR) $(INSTALLMAN1DIR) \
-               $(INST_MAN3DIR) $(INSTALLMAN3DIR)
+               $(INST_MAN1DIR) $(INSTALLSITEMAN1DIR) \
+               $(INST_MAN3DIR) $(INSTALLSITEMAN3DIR)
        }.$self->{NOECHO}.q{$(WARN_IF_OLD_PACKLIST) \
                }.File::Spec->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{
 
+pure_vendor_install ::
+       }.$self->{NOECHO}.q{$(MOD_INSTALL) \
+               $(INST_LIB) $(INSTALLVENDORLIB) \
+               $(INST_ARCHLIB) $(INSTALLVENDORARCH) \
+               $(INST_BIN) $(INSTALLVENDORBIN) \
+               $(INST_SCRIPT) $(INSTALLSCRIPT) \
+               $(INST_MAN1DIR) $(INSTALLVENDORMAN1DIR) \
+               $(INST_MAN3DIR) $(INSTALLVENDORMAN3DIR)
+
 doc_perl_install ::
        -}.$self->{NOECHO}.q{$(MKPATH) $(INSTALLARCHLIB)
        -}.$self->{NOECHO}.q{$(DOC_INSTALL) \
@@ -2115,7 +2211,9 @@ doc_site_install ::
                LINKTYPE "$(LINKTYPE)" \
                VERSION "$(VERSION)" \
                EXE_FILES "$(EXE_FILES)" \
-               >> }.File::Spec->catfile('$(INSTALLARCHLIB)','perllocal.pod').q{
+               >> }.File::Spec->catfile('$(INSTALLSITEARCH)','perllocal.pod').q{
+
+doc_vendor_install ::
 
 };
 
@@ -3076,23 +3174,24 @@ simply use '/home/foo/man/man1'.
 sub prefixify {
     my($self,$var,$sprefix,$rprefix,$default) = @_;
 
-    my $path = $self->{uc $var} || $Config{lc $var};
+    my $path = $self->{uc $var} || 
+               $Config_Override{lc $var} || $Config{lc $var};
 
-    print STDERR "Prefixing $var=$path\n" if $Verbose >= 2;
-    print STDERR "  from $sprefix to $rprefix\n" 
+    print STDERR "  prefixify $var=$path\n" if $Verbose >= 2;
+    print STDERR "    from $sprefix to $rprefix\n" 
       if $Verbose >= 2;
 
     $path = VMS::Filespec::unixpath($path) if $Is_VMS;
 
     unless( $path =~ s,^\Q$sprefix\E(?=/|\z),$rprefix,s ) {
 
-        print STDERR "  cannot prefix, using default.\n" if $Verbose >= 2;
-        print STDERR "  no default!\n" if $Verbose >= 2;
+        print STDERR "    cannot prefix, using default.\n" if $Verbose >= 2;
+        print STDERR "    no default!\n" if !$default && $Verbose >= 2;
 
         $path = File::Spec->catdir($rprefix, $default) if $default;
     }
 
-    print "  now $path\n" if $Verbose >= 2;
+    print "    now $path\n" if $Verbose >= 2;
     return $self->{uc $var} = $path;
 }
 
index bb38b8b..be012ea 100644 (file)
@@ -422,11 +422,14 @@ sub constants {
 
 
     foreach $macro ( qw [
-            INST_BIN INST_SCRIPT INST_LIB INST_ARCHLIB INSTALLPRIVLIB
-            INSTALLARCHLIB INSTALLSCRIPT INSTALLBIN PERL_LIB PERL_ARCHLIB
-            PERL_INC PERL_SRC FULLEXT INST_MAN1DIR INSTALLMAN1DIR
-            INST_MAN3DIR INSTALLMAN3DIR INSTALLSITELIB INSTALLSITEARCH
-            SITELIBEXP SITEARCHEXP ] ) {
+            INST_BIN INST_SCRIPT INST_LIB INST_ARCHLIB 
+            INSTALLPRIVLIB  INSTALLSITELIB  INSTALLVENDORLIB
+           INSTALLARCHLIB  INSTALLSITEARCH INSTALLVENDORARCH
+            INSTALLBIN      INSTALLSITEBIN  INSTALLVENDORBIN  INSTALLSCRIPT 
+            INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR
+            INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR
+            PERL_LIB PERL_ARCHLIB
+            PERL_INC PERL_SRC FULLEXT ] ) {
        next unless defined $self->{$macro};
        $self->{$macro} = $self->fixpath($self->{$macro},1);
     }
@@ -442,15 +445,21 @@ sub constants {
     }
 
     foreach $macro (qw/
-             AR_STATIC_ARGS NAME DISTNAME NAME_SYM VERSION VERSION_SYM XS_VERSION
-             INST_BIN INST_LIB INST_ARCHLIB INST_SCRIPT PREFIX
-             INSTALLDIRS INSTALLPRIVLIB  INSTALLARCHLIB INSTALLSITELIB
-             INSTALLSITEARCH INSTALLBIN INSTALLSCRIPT PERL_LIB
-             PERL_ARCHLIB SITELIBEXP SITEARCHEXP LIBPERL_A MYEXTLIB
+             AR_STATIC_ARGS NAME DISTNAME NAME_SYM VERSION VERSION_SYM 
+              XS_VERSION
+             INST_BIN INST_LIB INST_ARCHLIB INST_SCRIPT 
+              INSTALLDIRS
+              PREFIX          SITEPREFIX      VENDORPREFIX
+             INSTALLPRIVLIB  INSTALLSITELIB  INSTALLVENDORLIB
+             INSTALLARCHLIB  INSTALLSITEARCH INSTALLVENDORARCH
+              INSTALLBIN      INSTALLSITEBIN  INSTALLVENDORBIN  INSTALLSCRIPT 
+             PERL_LIB PERL_ARCHLIB 
+              SITELIBEXP SITEARCHEXP 
+              LIBPERL_A MYEXTLIB
              FIRST_MAKEFILE MAKE_APERL_FILE PERLMAINCC PERL_SRC PERL_VMS
              PERL_INC PERL FULLPERL PERLRUN FULLPERLRUN PERLRUNINST
-          FULLPERLRUNINST ABSPERL ABSPERLRUN ABSPERLRUNINST
-          PERL_CORE NOECHO NOOP
+              FULLPERLRUNINST ABSPERL ABSPERLRUN ABSPERLRUNINST
+              PERL_CORE NOECHO NOOP
              / ) {
        next unless defined $self->{$macro};
        push @m, "$macro = $self->{$macro}\n";
@@ -520,7 +529,10 @@ MAN3PODS = ',$self->wraplist(sort keys %{$self->{MAN3PODS}}),'
 ';
 
     for my $tmp (qw/
-             INST_MAN1DIR INSTALLMAN1DIR MAN1EXT INST_MAN3DIR INSTALLMAN3DIR MAN3EXT
+             INST_MAN1DIR  MAN1EXT 
+              INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR
+             INST_MAN3DIR  MAN3EXT
+              INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR
              /) {
        next unless defined $self->{$tmp};
        push @m, "$tmp = $self->{$tmp}\n";
@@ -669,8 +681,6 @@ sub cflags {
 CCFLAGS = $self->{CCFLAGS}
 OPTIMIZE = $self->{OPTIMIZE}
 PERLTYPE = $self->{PERLTYPE}
-SPLIT =
-LARGE =
 };
 }
 
@@ -1676,14 +1686,24 @@ pure_site_install ::
        $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write '.File::Spec->catfile('$(INSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').' '" >>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_LIB) $(INSTALLSITELIB) '" >>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_ARCHLIB) $(INSTALLSITEARCH) '" >>.MM_tmp
-       $(NOECHO) $(PERL) -e "print '$(INST_BIN) $(INSTALLBIN) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_BIN) $(INSTALLSITEBIN) '" >>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_SCRIPT) $(INSTALLSCRIPT) '" >>.MM_tmp
-       $(NOECHO) $(PERL) -e "print '$(INST_MAN1DIR) $(INSTALLMAN1DIR) '" >>.MM_tmp
-       $(NOECHO) $(PERL) -e "print '$(INST_MAN3DIR) $(INSTALLMAN3DIR) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_MAN1DIR) $(INSTALLSITEMAN1DIR) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_MAN3DIR) $(INSTALLSITEMAN3DIR) '" >>.MM_tmp
        $(MOD_INSTALL) <.MM_tmp
        $(NOECHO) Delete/NoLog/NoConfirm .MM_tmp;
        $(NOECHO) $(WARN_IF_OLD_PACKLIST) ].File::Spec->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q[
 
+pure_vendor_install ::
+       $(NOECHO) $(PERL) -e "print '$(INST_LIB) $(INSTALLVENDORLIB) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_ARCHLIB) $(INSTALLVENDORARCH) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_BIN) $(INSTALLVENDORBIN) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_SCRIPT) $(INSTALLSCRIPT) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_MAN1DIR) $(INSTALLVENDORMAN1DIR) '" >>.MM_tmp
+       $(NOECHO) $(PERL) -e "print '$(INST_MAN3DIR) $(INSTALLVENDORMAN3DIR) '" >>.MM_tmp
+       $(MOD_INSTALL) <.MM_tmp
+       $(NOECHO) Delete/NoLog/NoConfirm .MM_tmp;
+
 # Ditto
 doc_perl_install ::
        $(NOECHO) $(PERL) -e "print 'Module $(NAME)|installed into|$(INSTALLPRIVLIB)|'" >.MM_tmp
@@ -1708,6 +1728,8 @@ q%        $(NOECHO) $(PERL) -e "print q[@ARGV=split(/\\|/,<STDIN>);]" >.MM2_tmp
        $(NOECHO) $(PERL) .MM2_tmp <.MM_tmp >>%.File::Spec->catfile($self->{INSTALLARCHLIB},'perllocal.pod').q[
        $(NOECHO) Delete/NoLog/NoConfirm .MM_tmp;,.MM2_tmp;
 
+doc_vendor_install ::
+
 ];
 
     push @m, q[
index 662820d..1ee5fec 100644 (file)
@@ -182,13 +182,17 @@ sub constants {
     my(@m,$tmp);
 
     for $tmp (qw/
-
              AR_STATIC_ARGS NAME DISTNAME NAME_SYM VERSION
-             VERSION_SYM XS_VERSION INST_BIN INST_LIB
-             INST_ARCHLIB INST_SCRIPT PREFIX  INSTALLDIRS
-             INSTALLPRIVLIB INSTALLARCHLIB INSTALLSITELIB
-             INSTALLSITEARCH INSTALLBIN INSTALLSCRIPT PERL_LIB
-             PERL_ARCHLIB SITELIBEXP SITEARCHEXP LIBPERL_A MYEXTLIB
+             VERSION_SYM XS_VERSION 
+          INST_BIN INST_LIB INST_ARCHLIB INST_SCRIPT 
+          INSTALLDIRS
+          PREFIX          SITEPREFIX      VENDORPREFIX
+             INSTALLPRIVLIB  INSTALLSITELIB  INSTALLVENDORLIB
+             INSTALLARCHLIB  INSTALLSITEARCH INSTALLVENDORARCH
+          INSTALLBIN      INSTALLSITEBIN  INSTALLVENDORBIN  INSTALLSCRIPT 
+          PERL_LIB        PERL_ARCHLIB 
+          SITELIBEXP      SITEARCHEXP 
+          LIBPERL_A MYEXTLIB
              FIRST_MAKEFILE MAKE_APERL_FILE PERLMAINCC PERL_SRC
              PERL_INC PERL FULLPERL PERLRUN FULLPERLRUN PERLRUNINST 
           FULLPERLRUNINST ABSPERL ABSPERLRUN ABSPERLRUNINST
@@ -237,8 +241,10 @@ MAN3PODS = ".join(" \\\n\t", sort keys %{$self->{MAN3PODS}})."
 ";
 
     for $tmp (qw/
-             INST_MAN1DIR        INSTALLMAN1DIR MAN1EXT
-             INST_MAN3DIR        INSTALLMAN3DIR MAN3EXT
+             INST_MAN1DIR  MAN1EXT 
+          INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR
+             INST_MAN3DIR  MAN3EXT
+          INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR
              /) {
        next unless defined $self->{$tmp};
        push @m, "$tmp = $self->{$tmp}\n";
index 075049d..e7b9571 100644 (file)
@@ -2,10 +2,10 @@ BEGIN {require 5.004;}
 
 package ExtUtils::MakeMaker;
 
-$VERSION = "5.55_02";
+$VERSION = "5.90_01";
 $Version_OK = "5.49";   # Makefiles older than $Version_OK will die
                         # (Will be checked from MakeMaker version 4.13 onwards)
-($Revision = substr(q$Revision: 1.33 $, 10)) =~ s/\s+$//;
+($Revision = substr(q$Revision: 1.37 $, 10)) =~ s/\s+$//;
 
 require Exporter;
 use Config;
@@ -117,19 +117,22 @@ sub full_setup {
     EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE 
     FULLPERL FULLPERLRUN FULLPERLRUNINST
     FUNCLIST H IMPORTS
-    INC INCLUDE_EXT INSTALLARCHLIB INSTALLBIN INSTALLDIRS
-    INSTALLMAN1DIR
-    INSTALLMAN3DIR INSTALLPRIVLIB INSTALLSCRIPT INSTALLSITEARCH
-    INSTALLSITELIB INST_ARCHLIB INST_BIN INST_LIB
-    INST_MAN1DIR INST_MAN3DIR INST_SCRIPT LDFROM LIB LIBPERL_A LIBS
+    INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB
+    INSTALLDIRS
+    PREFIX          SITEPREFIX      VENDORPREFIX
+    INSTALLPRIVLIB  INSTALLSITELIB  INSTALLVENDORLIB
+    INSTALLARCHLIB  INSTALLSITEARCH INSTALLVENDORARCH
+    INSTALLBIN      INSTALLSITEBIN  INSTALLVENDORBIN  INSTALLSCRIPT 
+    PERL_LIB        PERL_ARCHLIB 
+    SITELIBEXP      SITEARCHEXP 
+    INC INCLUDE_EXT LDFROM LIB LIBPERL_A LIBS
     LINKTYPE MAKEAPERL MAKEFILE MAN1PODS MAN3PODS MAP_TARGET MYEXTLIB
     PERL_MALLOC_OK
     NAME NEEDS_LINKING NOECHO NORECURS NO_VC OBJECT OPTIMIZE PERL PERLMAINCC
-    PERLRUN PERLRUNINST PERL_ARCHLIB PERL_CORE
-    PERL_LIB PERL_SRC PERM_RW PERM_RWX
+    PERLRUN PERLRUNINST PERL_CORE
+    PERL_SRC PERM_RW PERM_RWX
     PL_FILES PM PM_FILTER PMLIBDIRS POLLUTE PPM_INSTALL_EXEC
-    PPM_INSTALL_SCRIPT PREFIX
-    PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
+    PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
     SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG
     XS_VERSION clean depend dist dynamic_lib linkext macro realclean
     tool_autosplit
@@ -915,14 +918,15 @@ counterparts. Which counterparts are chosen depends on the setting of
 INSTALLDIRS according to the following table:
 
                                  INSTALLDIRS set to
-                              perl                site
+                           perl        site          vendor
 
-    INST_ARCHLIB        INSTALLARCHLIB        INSTALLSITEARCH
-    INST_LIB            INSTALLPRIVLIB        INSTALLSITELIB
-    INST_BIN                      INSTALLBIN
-    INST_SCRIPT                   INSTALLSCRIPT
-    INST_MAN1DIR                  INSTALLMAN1DIR
-    INST_MAN3DIR                  INSTALLMAN3DIR
+                 PREFIX          SITEPREFIX          VENDORPREFIX
+  INST_ARCHLIB   INSTALLARCHLIB  INSTALLSITEARCH     INSTALLVENDORARCH
+  INST_LIB       INSTALLPRIVLIB  INSTALLSITELIB      INSTALLVENDORLIB
+  INST_BIN       INSTALLBIN      INSTALLSITEBIN      INSTALLVENDORBIN
+  INST_SCRIPT    INSTALLSCRIPT   INSTALLSCRIPT       INSTALLSCRIPT
+  INST_MAN1DIR   INSTALLMAN1DIR  INSTALLSITEMAN1DIR  INSTALLVENDORMAN1DIR
+  INST_MAN3DIR   INSTALLMAN3DIR  INSTALLSITEMAN3DIR  INSTALLVENDORMAN3DIR
 
 The INSTALL... macros in turn default to their %Config
 ($Config{installprivlib}, $Config{installarchlib}, etc.) counterparts.
@@ -1306,34 +1310,30 @@ directory if INSTALLDIRS is set to perl.
 
 =item INSTALLBIN
 
-Directory to install binary files (e.g. tkperl) into.
+Directory to install binary files (e.g. tkperl) into if
+INSTALLDIRS=perl.
 
 =item INSTALLDIRS
 
-Determines which of the two sets of installation directories to
-choose: installprivlib and installarchlib versus installsitelib and
-installsitearch. The first pair is chosen with INSTALLDIRS=perl, the
-second with INSTALLDIRS=site. Default is site.
+Determines which of the sets of installation directories to choose:
+perl, site or vendor.  Defaults to site.
 
 =item INSTALLMAN1DIR
 
-This directory gets the man pages at 'make install' time. Defaults to
-$Config{installman1dir}.
-
-If set to 'none', no man 1 pages will be installed.
-
 =item INSTALLMAN3DIR
 
-This directory gets the man pages at 'make install' time. Defaults to
-$Config{installman3dir}.
+These directories get the man pages at 'make install' time if
+INSTALLDIRS=perl.  Defaults to $Config{installman*dir}.
 
-If set to 'none', no man pages will be installed.
+If set to 'none', no man pages will be installed.
 
 =item INSTALLPRIVLIB
 
 Used by 'make install', which copies files from INST_LIB to this
 directory if INSTALLDIRS is set to perl.
 
+Defaults to $Config{installprivlib}.
+
 =item INSTALLSCRIPT
 
 Used by 'make install' which copies files from INST_SCRIPT to this
@@ -1344,11 +1344,50 @@ directory.
 Used by 'make install', which copies files from INST_ARCHLIB to this
 directory if INSTALLDIRS is set to site (default).
 
+=item INSTALLSITEBIN
+
+Used by 'make install', which copies files from INST_BIN to this
+directory if INSTALLDIRS is set to site (default).
+
 =item INSTALLSITELIB
 
 Used by 'make install', which copies files from INST_LIB to this
 directory if INSTALLDIRS is set to site (default).
 
+=item INSTALLSITEMAN1DIR
+
+=item INSTALLSITEMAN3DIR
+
+These directories get the man pages at 'make install' time if
+INSTALLDIRS=site (default).  Defaults to 
+$(SITEPREFIX)/man/man$(MAN*EXT).
+
+If set to 'none', no man pages will be installed.
+
+=item INSTALLVENDORARCH
+
+Used by 'make install', which copies files from INST_ARCHLIB to this
+directory if INSTALLDIRS is set to vendor.
+
+=item INSTALLVENDORBIN
+
+Used by 'make install', which copies files from INST_BIN to this
+directory if INSTALLDIRS is set to vendor.
+
+=item INSTALLVENDORLIB
+
+Used by 'make install', which copies files from INST_LIB to this
+directory if INSTALLDIRS is set to vendor.
+
+=item INSTALLVENDORMAN1DIR
+
+=item INSTALLVENDORMAN3DIR
+
+These directories get the man pages at 'make install' time if
+INSTALLDIRS=vendor.  Defaults to $(VENDORPREFIX)/man/man$(MAN*EXT).
+
+If set to 'none', no man pages will be installed.
+
 =item INST_ARCHLIB
 
 Same as INST_LIB for architecture dependent files.
@@ -1676,6 +1715,8 @@ which should be sensible for your platform.
 If you specify LIB or any INSTALL* variables they will not be effected
 by the PREFIX.
 
+Defaults to $Config{installprefixexp}.
+
 =item PREREQ_PM
 
 Hashref: Names of modules that need to be available to run this
@@ -1714,6 +1755,12 @@ RedHatism for C<PREREQ_PRINT>.  The output format is different, though:
 
     perl(A::B)>=Vers1 perl(C::D)>=Vers2 ...
 
+=item SITEPREFIX
+
+Like PREFIX, but only for the site install locations.
+
+Defaults to PREFIX (if set) or $Config{siteprefixexp}
+
 =item SKIP
 
 Arrayref. E.g. [qw(name1 name2)] skip (do not write) sections of the
@@ -1730,6 +1777,12 @@ precedence.  A typemap in the current directory has highest
 precedence, even if it isn't listed in TYPEMAPS.  The default system
 typemap has lowest precedence.
 
+=item VENDORPREFIX
+
+Like PREFIX, but only for the vendor install locations.
+
+Defaults to PREFIX (if set) or $Config{vendorprefixexp}
+
 =item VERSION
 
 Your version number for distributing the package.  This defaults to
@@ -1751,7 +1804,7 @@ MakeMaker object. The following lines will be parsed o.k.:
 
     $VERSION = '1.00';
     *VERSION = \'1.01';
-    ( $VERSION ) = '$Revision: 1.33 $ ' =~ /\$Revision:\s+([^\s]+)/;
+    ( $VERSION ) = '$Revision: 1.37 $ ' =~ /\$Revision:\s+([^\s]+)/;
     $FOO::VERSION = '1.10';
     *FOO::VERSION = \'1.11';
     our $VERSION = 1.2.3;       # new for perl5.6.0 
index 2d28104..60480cb 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 # Wherein we ensure the INST_* and INSTALL* variables are set correctly
-# according to the values of PREFIX, SITEPREFIX, INSTALLDIRS, etc...
+# in a default Makefile.PL run
 #
 # Essentially, this test is a Makefile.PL.
 
diff --git a/lib/ExtUtils/t/INST_PREFIX.t b/lib/ExtUtils/t/INST_PREFIX.t
new file mode 100644 (file)
index 0000000..bb3b1b7
--- /dev/null
@@ -0,0 +1,99 @@
+#!/usr/bin/perl -w
+
+# Wherein we ensure the INST_* and INSTALL* variables are set correctly
+# when various PREFIX variables are set.
+#
+# Essentially, this test is a Makefile.PL.
+
+BEGIN {
+    if( $ENV{PERL_CORE} ) {
+        chdir 't' if -d 't';
+        @INC = ('../lib', 'lib');
+    }
+    else {
+        unshift @INC, 't/lib';
+    }
+}
+
+use strict;
+use Test::More tests => 24;
+use MakeMaker::Test::Utils;
+use ExtUtils::MakeMaker;
+use File::Spec;
+use TieOut;
+use Config;
+
+$ENV{PERL_CORE} ? chdir '../lib/ExtUtils/t' : chdir 't';
+
+perl_lib;
+
+$| = 1;
+
+my $Makefile = makefile_name;
+my $Curdir = File::Spec->curdir;
+my $Updir  = File::Spec->updir;
+
+ok( chdir 'Big-Fat-Dummy', "chdir'd to Big-Fat-Dummy" ) ||
+  diag("chdir failed: $!");
+
+my $stdout = tie *STDOUT, 'TieOut' or die;
+my $mm = WriteMakefile(
+    NAME          => 'Big::Fat::Dummy',
+    VERSION_FROM  => 'lib/Big/Fat/Dummy.pm',
+    PREREQ_PM     => {},
+    PERL_CORE     => $ENV{PERL_CORE},
+    PREFIX        => 'foo/bar',
+);
+like( $stdout->read, qr{
+                        Writing\ $Makefile\ for\ Big::Fat::Liar\n
+                        Big::Fat::Liar's\ vars\n
+                        INST_LIB\ =\ \S+\n
+                        INST_ARCHLIB\ =\ \S+\n
+                        Writing\ $Makefile\ for\ Big::Fat::Dummy\n
+}x );
+undef $stdout;
+untie *STDOUT;
+
+isa_ok( $mm, 'ExtUtils::MakeMaker' );
+
+is( $mm->{NAME}, 'Big::Fat::Dummy',  'NAME' );
+is( $mm->{VERSION}, 0.01,            'VERSION' );
+
+is( $mm->{PREFIX}, 'foo/bar',   'PREFIX' );
+
+is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
+
+my($perl_src, $mm_perl_src);
+if( $ENV{PERL_CORE} ) {
+    $perl_src = File::Spec->catdir($Updir, $Updir, $Updir, $Updir);
+    $perl_src = File::Spec->canonpath($perl_src);
+    $mm_perl_src = File::Spec->canonpath($mm->{PERL_SRC});
+}
+else {
+    $mm_perl_src = $mm->{PERL_SRC};
+}
+
+is( $mm_perl_src, $perl_src,     'PERL_SRC' );
+
+
+# Every INSTALL* variable must start with some PREFIX.
+my @Perl_Install = qw(archlib    privlib   bin     script 
+                      man1dir       man3dir);
+my @Site_Install = qw(sitearch   sitelib   sitebin        
+                      siteman1dir siteman3dir);
+my @Vend_Install = qw(vendorarch vendorlib vendorbin 
+                      vendorman1dir vendorman3dir);
+
+foreach my $var (@Perl_Install) {
+    like( $mm->{uc "install$var"}, qr/^\$\(PREFIX\)/, "PREFIX + $var" );
+}
+
+foreach my $var (@Site_Install) {
+    like( $mm->{uc "install$var"}, qr/^\$\(SITEPREFIX\)/, 
+                                                    "SITEPREFIX + $var" );
+}
+
+foreach my $var (@Vend_Install) {
+    like( $mm->{uc "install$var"}, qr/^\$\(VENDORPREFIX\)/,
+                                                    "VENDORPREFIX + $var" );
+}
index 42d3949..74aef67 100644 (file)
@@ -15,7 +15,7 @@ use Test::More;
 
 BEGIN {
        if ($^O =~ /cygwin/i) {
-               plan tests => 15;
+               plan tests => 13;
        } else {
                plan skip_all => "This is not cygwin";
        }
@@ -57,15 +57,11 @@ my $ccflags = $Config{useshrplib} eq 'true' ? ' -DUSEIMPORTLIB' : '';
     $args->cflags(<<FLAGS);
 OPTIMIZE = opt
 PERLTYPE  =pt
-LARGE= lg
-SPLIT=split
 FLAGS
 }
 
 like( $args->{CFLAGS}, qr/OPTIMIZE = opt/, '... should set OPTIMIZE' );
 like( $args->{CFLAGS}, qr/PERLTYPE = pt/, '... should set PERLTYPE' );
-like( $args->{CFLAGS}, qr/LARGE = lg/, '... should set LARGE' );
-like( $args->{CFLAGS}, qr/SPLIT = split/, '... should set SPLIT' );
 like( $args->{CFLAGS}, qr/CCFLAGS = $ccflags/, '... should set CCFLAGS' );
 
 # test manifypods
index 994eca3..92083f0 100644 (file)
@@ -18,7 +18,7 @@ BEGIN {
         plan skip_all => 'Non-Unix platform';
     }
     else {
-        plan tests => 107;
+        plan tests => 108;
     }
 }
 
@@ -142,7 +142,7 @@ ok ( join (' ', $class->dist_basics()), 'distclean :: realclean distcheck');
 ###############################################################################
 # has_link_code tests
 
-my $t = {}; bless $t,$class;
+my $t = bless { NAME => "Foo" }, $class;
 $t->{HAS_LINK_CODE} = 1; 
 is ($t->has_link_code(),1,'has_link_code'); is ($t->{HAS_LINK_CODE},1);
 
@@ -221,3 +221,14 @@ foreach (qw/ export_list perl_archive perl_archive_after/)
   }
 
 
+{
+    $t->{CCFLAGS} = '-DMY_THING';
+    $t->{LIBPERL_A} = 'libperl.a';
+    $t->{LIB_EXT}   = '.a';
+    local $t->{NEEDS_LINKING} = 1;
+    $t->cflags();
+
+    # Brief bug where CCFLAGS was being blown away
+    is( $t->{CCFLAGS}, '-DMY_THING',    'cflags retains CCFLAGS' );
+}
+
index ba2851b..3e22606 100644 (file)
@@ -19,6 +19,6 @@ my $mm = bless {}, 'MM';
 
 my $default = File::Spec->catdir(qw(this that));
 $mm->prefixify('installbin', 'wibble', 'something', $default);
-               
+
 is( $mm->{INSTALLBIN}, File::Spec->catdir('something', $default),
                                             'prefixify w/defaults');