3 # Wherein we ensure the INST_* and INSTALL* variables are set correctly
4 # in a default Makefile.PL run
6 # Essentially, this test is a Makefile.PL.
9 if( $ENV{PERL_CORE} ) {
11 @INC = ('../lib', 'lib');
14 unshift @INC, 't/lib';
19 use Test::More tests => 26;
20 use MakeMaker::Test::Utils;
21 use MakeMaker::Test::Setup::BFD;
22 use ExtUtils::MakeMaker;
27 my $Is_VMS = $^O eq 'VMS';
35 my $Makefile = makefile_name;
36 my $Curdir = File::Spec->curdir;
37 my $Updir = File::Spec->updir;
39 ok( setup_recurs(), 'setup' );
41 ok( chdir File::Spec->updir );
42 ok( teardown_recurs(), 'teardown' );
45 ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
46 diag("chdir failed: $!");
48 my $stdout = tie *STDOUT, 'TieOut' or die;
49 my $mm = WriteMakefile(
51 VERSION_FROM => 'lib/Big/Dummy.pm',
53 PERL_CORE => $ENV{PERL_CORE},
55 like( $stdout->read, qr{
56 Writing\ $Makefile\ for\ Big::Liar\n
59 INST_ARCHLIB\ =\ \S+\n
60 Writing\ $Makefile\ for\ Big::Dummy\n
65 isa_ok( $mm, 'ExtUtils::MakeMaker' );
67 is( $mm->{NAME}, 'Big::Dummy', 'NAME' );
68 is( $mm->{VERSION}, 0.01, 'VERSION' );
70 my $config_prefix = $Config{installprefixexp} || $Config{installprefix} ||
71 $Config{prefixexp} || $Config{prefix};
72 is( $mm->{PERLPREFIX}, $config_prefix, 'PERLPREFIX' );
74 is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
76 my($perl_src, $mm_perl_src);
77 if( $ENV{PERL_CORE} ) {
78 $perl_src = File::Spec->catdir($Updir, $Updir);
79 $perl_src = VMS::Filespec::vmsify($perl_src) if $Is_VMS;
80 $perl_src = File::Spec->canonpath($perl_src);
81 $mm_perl_src = File::Spec->canonpath($mm->{PERL_SRC});
84 $mm_perl_src = $mm->{PERL_SRC};
87 is( $mm_perl_src, $perl_src, 'PERL_SRC' );
91 is( $mm->{PERM_RW}, 644, 'PERM_RW' );
92 is( $mm->{PERM_RWX}, 755, 'PERM_RWX' );
96 my $expect = File::Spec->catdir($Curdir, 'blib', 'arch');
97 $expect = VMS::Filespec::vmspath($expect) if $Is_VMS;
98 is( $mm->{INST_ARCHLIB},
99 $mm->{PERL_CORE} ? $mm->{PERL_ARCHLIB}
102 $expect = File::Spec->catdir($Curdir, 'blib', 'bin');
103 $expect = VMS::Filespec::vmspath($expect) if $Is_VMS;
104 is( $mm->{INST_BIN}, $expect, 'INST_BIN' );
106 is( keys %{$mm->{CHILDREN}}, 1 );
107 my($child_pack) = keys %{$mm->{CHILDREN}};
108 my $c_mm = $mm->{CHILDREN}{$child_pack};
109 $expect = File::Spec->catdir($Updir, 'blib', 'arch');
110 $expect = VMS::Filespec::vmspath($expect) if $Is_VMS;
111 is( $c_mm->{INST_ARCHLIB},
112 $c_mm->{PERL_CORE} ? $c_mm->{PERL_ARCHLIB}
114 'CHILD INST_ARCHLIB');
115 $expect = File::Spec->catdir($Updir, 'blib', 'bin');
116 $expect = VMS::Filespec::vmspath($expect) if $Is_VMS;
117 is( $c_mm->{INST_BIN}, $expect, 'CHILD INST_BIN' );
120 my $inst_lib = File::Spec->catdir($Curdir, 'blib', 'lib');
122 $mm->{PERL_CORE} ? $mm->{PERL_LIB} : $inst_lib, 'INST_LIB' );
126 is( $mm->{INSTALLDIRS}, 'site', 'INSTALLDIRS' );
130 # Make sure the INSTALL*MAN*DIR variables work. We forgot them
132 $stdout = tie *STDOUT, 'TieOut' or die;
134 NAME => 'Big::Dummy',
135 VERSION_FROM => 'lib/Big/Dummy.pm',
136 PERL_CORE => $ENV{PERL_CORE},
137 INSTALLMAN1DIR => 'none',
138 INSTALLSITEMAN3DIR => 'none',
139 INSTALLVENDORMAN1DIR => 'none',
140 INST_MAN1DIR => 'none',
142 like( $stdout->read, qr{
143 Writing\ $Makefile\ for\ Big::Liar\n
146 INST_ARCHLIB\ =\ \S+\n
147 Writing\ $Makefile\ for\ Big::Dummy\n
152 isa_ok( $mm, 'ExtUtils::MakeMaker' );
154 is ( $mm->{INSTALLMAN1DIR}, 'none' );
155 is ( $mm->{INSTALLSITEMAN3DIR}, 'none' );
156 is ( $mm->{INSTALLVENDORMAN1DIR}, 'none' );
157 is ( $mm->{INST_MAN1DIR}, 'none' );