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
+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.
CCFLAGS = $self->{CCFLAGS}
OPTIMIZE = $self->{OPTIMIZE}
PERLTYPE = $self->{PERLTYPE}
-LARGE = $self->{LARGE}
-SPLIT = $self->{SPLIT}
};
}
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)"};
}
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);
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
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";
}
";
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";
}
for $tmp (qw(
PERM_RW PERM_RWX
)
- ) {
+ )
+ {
my $method = lc($tmp);
# warn "self[$self] method[$method]";
push @m, "$tmp = ", $self->$method(), "\n";
}
}
- # 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;
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
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) \
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 ::
};
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;
}
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);
}
}
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";
';
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";
CCFLAGS = $self->{CCFLAGS}
OPTIMIZE = $self->{OPTIMIZE}
PERLTYPE = $self->{PERLTYPE}
-SPLIT =
-LARGE =
};
}
$(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
$(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[
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
";
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";
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;
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
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.
=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 3 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
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.
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
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
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
$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
#!/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.
--- /dev/null
+#!/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" );
+}
BEGIN {
if ($^O =~ /cygwin/i) {
- plan tests => 15;
+ plan tests => 13;
} else {
plan skip_all => "This is not cygwin";
}
$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
plan skip_all => 'Non-Unix platform';
}
else {
- plan tests => 107;
+ plan tests => 108;
}
}
###############################################################################
# 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);
}
+{
+ $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' );
+}
+
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');