t/lib/MakeMaker/Test/Setup/PL_FILES.pm MakeMaker test utilities
t/lib/MakeMaker/Test/Setup/Problem.pm MakeMaker test utilities
t/lib/MakeMaker/Test/Setup/Recurs.pm MakeMaker test utilities
+t/lib/MakeMaker/Test/Setup/XS.pm MakeMaker test utilities
t/lib/MakeMaker/Test/Utils.pm MakeMaker test utilities
t/lib/Math/BigFloat/Subclass.pm Empty subclass of BigFloat for test
t/lib/Math/BigInt/BareCalc.pm Bigint's simulation of Calc
+6.37_02 Sun Nov 25 23:33:14 PST 2007
+ Test Improvements
+ - Added a test for a basic XS build.
+
+ Bug Fixes
+ - A refactoring in 6.37_01 broke XS compilation.
+
+6.37_01 Sun Nov 25 17:05:53 PST 2007
+ Improvements
+ - Upgraded the META.yml to version 1.3 of the spec (which really
+ doesn't change anything). Thanks bdfoy.
+ - MakeMaker now always includes the required 'author' field in
+ the META.yml even if it's undef to comply with the META.yml spec.
+ - Updated ExtUtils-Install to latest version (1.44)
+ - Unified the version numbers of all modules.
+
+ Test Fixes
+ - cd() test on VMS used non-native paths. [bleadperl 31534]
+ - Removed uses of "no_plan" in tests to remain compatible with
+ old versions of Test::Harness.
+ - writemakefile_args.t had the wrong test count if version.pm isn't
+ installed.
+
+ Bug Fixes
+ - $VERSION detection code would be confused by "sub version"
+ [rt.cpan.org 30747]
+ - LINKTYPE=static will now be propagated to child builds.
+ [bleadperl 31761]
+
+ Portability Fixes
+ - Add "dragonfly" to the list of BSDish operating systems
+ - BSD detection code would not pick up bsdos or internix
+ - Fix detection of shared libperl on NetBSD [bleadperl 31526]
+
+
+6.36 Tue Jul 3 01:06:40 PDT 2007
+ Test Fixes
+ - version.pm prior to 0.7203 caused Foo->VERSION to reformat
+ $Foo::VERSION. This caused prereq.t to fail.
+
+6.35 Sun Jul 1 20:53:38 PDT 2007
+ New Features
+ * MakeMaker will now try to "use version" before parsing $VERSION.
+ This allows "$VERSION = qv(1.2.3)" to work.
+
+ Test Fixes
+ - writemakefile_args.t now works with older versions of version.pm
+
+6.34 Sat Jun 30 11:06:54 CDT 2007
+ Test Fixes
+ - Accidentally hard coded the version of strict.pm [rt.cpan.org 27838]
+
+6.33 Fri Jun 29 17:15:34 CDT 2007
+ New Features
+ * VERSION now accepts version objects without warning.
+ [rt.cpan.org 26075]
+
+ Bug Fixes
+ - Properly not installing MANIFEST.SKIP when ExtUtils::Manifest is not
+ being installed. [rt.cpan.org 21318]
+ - fixin() no longer clobbers $/ [rt.cpan.org 26234]
+ - Fixed bug finding cross-compiled perls [bleadperl 31404]
+ - Looking up to 8 levels up to find uninstalled perls
+ [bleadperl 30932]
+ * A test failure in a sub-project would not cause "make test" to
+ fail. [rt.cpan.org 27804]
+
+ Windows
+ - Embed manifest files in EXEs and DLLs when building with VC++ 8.x
+ [bleadperl #29266] [rt.cpan.org 26208]
+ - Improved the subdir command code so DIR can do more than one level
+ down. [rt.cpan.org 25180]
+ - Fix static builds on Win32 by using -DPERLDLL [bleadperl 31229]
+
+ VMS
+ - Use linker flags rather than compiler flags to determine if the
+ perl sharable image was linked debug. This keeps OPTIMIZE from
+ confusing things. [rt.cpan.org 25268]
+ - Accidental use of $\ in a regex. [bleadperl 30521]
+
+ BSD
+ - If calling perl causes MakeMaker to emit warnings, then it
+ cannot find the location of its binary. [rt.cpan.org 23178]
+
+ Doc Improvements
+ - Typo fixes. $(TOUNIX) -> $(TO_UNIX). [rt.cpan.org 23495]
+ - The example for setting $VERSION from $Revision$ in SVN was
+ incorrect. (Thanks to ROBERTMAY@cpan.org) [rt.cpan.org 26995]
+ - Document what's wrong with PREFIX and what to use instead.
+ [rt.cpan.org 12919]
+ - Improve the PREREQ_FATAL docs to make it really clear that you
+ do NOT want to use this!
+
+ Misc
+ - Provide information during the install about whether we're using the
+ installed or provided dependency (ie. ExtUtils::Command).
+ - Updated included versions of ExtUtils::Manifest and Command.
+ - Add .bak and .old to veryclean [rt.cpan.org 21284]
+ - Improved the PREREQ_FATAL message.
+
+6.32 Wed Feb 21 07:59:57 PST 2007
+ New Features
+ - WriteEmptyMakefile() is now exportable upon request.
+
+ Bug Fixes
+ - Set binmode() when writing to files in Command.t for operating
+ systems which need that sort of thing. [bleadperl #29578]
+ - Fixed a minor duplication in manifypod_target(). [rt.cpan.org 22149]
+
+ Test Fixes
+ - The build_man.t test would fail if your Perl is configured to not
+ generate man pages ($Config{installman3dir} is set to none).
+
+ Doc Improvements
+ - Made the home dir install examples a little more friendly to non-Unix
+ folks.
+
+ Misc
+ - miniperl no longer has the Win32 functions.
+ - Turn on "use strict" where it was missing.
+
6.31 Mon Oct 9 16:54:47 PDT 2006
- Update our META.yml to version 1.2 of the spec.
* Update the SEE ALSO to mention Module::Build, Module::Install,
@EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
-$VERSION = '0.07';
+$VERSION = '6.37_02';
my $Is_VMS = $^O eq 'VMS';
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '1.03';
+$VERSION = '6.37_02';
use File::Spec;
require ExtUtils::Liblist::Kid;
use strict;
use vars qw($VERSION);
-$VERSION = 1.33;
+$VERSION = 6.37_02;
use Config;
use Cwd 'cwd';
use strict;
use ExtUtils::MakeMaker::Config;
use vars qw(@ISA $VERSION);
-$VERSION = '0.07';
+$VERSION = '6.37_02';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
sub DESTROY {}
}
+sub _is_win95 {
+ # miniperl might not have the Win32 functions available and we need
+ # to run in miniperl.
+ return defined &Win32::IsWin95 ? Win32::IsWin95()
+ : ! defined $ENV{SYSTEMROOT};
+}
+
my %Is = ();
$Is{VMS} = $^O eq 'VMS';
$Is{OS2} = $^O eq 'os2';
$Is{MacOS} = $^O eq 'MacOS';
if( $^O eq 'MSWin32' ) {
- if (defined &DynaLoader::boot_DynaLoader) {
- Win32::IsWin95() ? $Is{Win95} = 1 : $Is{Win32} = 1;
- }
- else {
- # Can't use Win32::* with miniperl
- !(defined $ENV{SYSTEMROOT}) ? $Is{Win95} = 1 : $Is{Win32} = 1;
- }
+ _is_win95() ? $Is{Win95} = 1 : $Is{Win32} = 1;
}
$Is{UWIN} = $^O =~ /^uwin(-nt)?$/;
$Is{Cygwin} = $^O eq 'cygwin';
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '0.05';
+$VERSION = '6.37_02';
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '0.15';
+$VERSION = '6.37_02';
use Carp;
use File::Spec;
$prereq_pm .= sprintf "\n %-30s %s", "$mod:", $ver;
}
+ my $author_value = defined $self->{AUTHOR}
+ ? "\n - $self->{AUTHOR}"
+ : undef;
+
# Use a list to preserve order.
my @meta_to_mm = (
name => $self->{DISTNAME},
version => $self->{VERSION},
abstract => $self->{ABSTRACT},
license => $self->{LICENSE},
+ author => $author_value,
generated_by =>
"ExtUtils::MakeMaker version $ExtUtils::MakeMaker::VERSION",
distribution_type => $self->{PM} ? 'module' : 'script',
$meta .= <<"YAML";
requires: $prereq_pm
meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.2.html
- version: 1.2
-YAML
-
- $meta .= <<"YAML" if defined $self->{AUTHOR};
-author:
- - $self->{AUTHOR}
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+ version: 1.3
YAML
$meta .= $self->{EXTRA_META} if $self->{EXTRA_META};
use vars qw(@ISA $VERSION);
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '1.07';
+$VERSION = '6.37_02';
=item os_flavor
require ExtUtils::MM_Unix;
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '1.1';
+$VERSION = '6.37_02';
=head1 NAME
use strict;
use vars qw($VERSION @ISA);
-$VERSION = 0.04;
+$VERSION = 6.37_02;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
use strict;
use vars qw($VERSION);
-$VERSION = 1.1;
+$VERSION = 6.37_02;
sub new {
die <<'UNSUPPORTED';
use File::Basename;
use vars qw(@ISA $VERSION);
-$VERSION = '2.1';
+$VERSION = '6.37_02';
require ExtUtils::MM_Win32;
@ISA = qw(ExtUtils::MM_Win32);
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-$VERSION = '1.07';
+$VERSION = '6.37_02';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '0.04';
+$VERSION = '6.37_02';
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
use strict;
use vars qw($VERSION @ISA);
-$VERSION = 0.04;
+$VERSION = 6.37_02;
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
use ExtUtils::MakeMaker qw($Verbose neatvalue);
-$VERSION = '1.54_02';
+$VERSION = '6.37_02';
require ExtUtils::MM_Any;
@ISA = qw(ExtUtils::MM_Any);
$Is_SunOS4 = $^O eq 'sunos';
$Is_Solaris = $^O eq 'solaris';
$Is_SunOS = $Is_SunOS4 || $Is_Solaris;
- $Is_BSD = $^O =~ /^(?:(?:free|net|open)bsd|bsdos|interix|dragonfly)$/;
+ $Is_BSD = ($^O =~ /^(?:free|net|open)bsd$/ or
+ grep( $^O eq $_, qw(bsdos interix dragonfly) )
+ );
}
BEGIN {
my($self) = shift;
return '' unless $self->needs_linking();
my(@m);
+
+ my $command = '$(CCCMD)';
+ my $flags = '$(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE)';
+
if (my $cpp = $Config{cpprun}) {
my $cpp_cmd = $self->const_cccmd;
$cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/$cpp/;
- push @m, '
+ push @m, qq{
.c.i:
- '. $cpp_cmd . ' $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c > $*.i
-';
+ $cpp_cmd $flags \$*.c > \$*.i
+};
}
- push @m, '
+
+ push @m, qq{
.c.s:
- $(CCCMD) -S $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
-';
- push @m, '
-.c$(OBJ_EXT):
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
-';
- push @m, '
-.C$(OBJ_EXT):
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.C
-' if !$Is_OS2 and !$Is_Win32 and !$Is_Dos; #Case-specific
- push @m, '
-.cpp$(OBJ_EXT):
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cpp
+ $command -S $flags \$*.c
-.cxx$(OBJ_EXT):
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cxx
+.c\$(OBJ_EXT):
+ $command $flags \$*.c
-.cc$(OBJ_EXT):
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cc
-';
- join "", @m;
+.cpp\$(OBJ_EXT):
+ $command $flags \$*.cpp
+
+.cxx\$(OBJ_EXT):
+ $command $flags \$*.cxx
+
+.cc\$(OBJ_EXT):
+ $command $flags \$*.cc
+};
+
+ push @m, qq{
+.C\$(OBJ_EXT):
+ $command \$*.C
+} if !$Is_OS2 and !$Is_Win32 and !$Is_Dos; #Case-specific
+
+ return join "", @m;
}
=item cflags (o)
open(FH,$parsefile) or die "Could not open '$parsefile': $!";
my $inpod = 0;
while (<FH>) {
- $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
- next if $inpod || /^\s*#/;
- chop;
- next unless /(?<!\\)([\$*])(([\w\:\']*)\bVERSION)\b.*\=/;
- my $eval = qq{
- package ExtUtils::MakeMaker::_version;
- no strict;
- BEGIN { eval {
- require version;
- "version"->import;
- } }
-
- local $1$2;
- \$$2=undef; do {
- $_
- }; \$$2
- };
+ $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
+ next if $inpod || /^\s*#/;
+ chop;
+ next unless /(?<!\\)([\$*])(([\w\:\']*)\bVERSION)\b.*\=/;
+ my $eval = qq{
+ package ExtUtils::MakeMaker::_version;
+ no strict;
+ BEGIN { eval {
+ # Ensure any version() routine which might have leaked
+ # into this package has been deleted. Interferes with
+ # version->import()
+ undef *version;
+ require version;
+ "version"->import;
+ } }
+
+ local $1$2;
+ \$$2=undef;
+ do {
+ $_
+ }; \$$2
+ };
local $^W = 0;
- $result = eval($eval);
- warn "Could not eval '$eval' in $parsefile: $@" if $@;
- last;
+ $result = eval($eval);
+ warn "Could not eval '$eval' in $parsefile: $@" if $@;
+ last;
}
close FH;
# $Revision can't be on the same line or SVN/K gets confused
use vars qw($Revision
$VERSION @ISA);
-$VERSION = '5.76';
+$VERSION = '6.37_02';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '0.04';
+$VERSION = '6.37_02';
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Unix);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-$VERSION = '1.15';
+$VERSION = '6.37_02';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '0.06';
+$VERSION = '6.37_02';
require ExtUtils::MM_Win32;
@ISA = qw(ExtUtils::MM_Win32);
require ExtUtils::MM;
use vars qw(@ISA $VERSION);
-$VERSION = 0.03;
+$VERSION = 6.37_02;
@ISA = qw(ExtUtils::MM);
{
-# $Id: /mirror/svn.schwern.org/CPAN/ExtUtils-MakeMaker/trunk/lib/ExtUtils/MakeMaker.pm 32261 2007-07-03T08:08:29.826721Z schwern $
+# $Id: /local/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 40883 2007-11-26T07:33:12.936163Z schwern $
package ExtUtils::MakeMaker;
BEGIN {require 5.005_03;}
use vars qw($Revision);
use strict;
-$VERSION = '6.36_01';
-($Revision) = q$Revision: 32261 $ =~ /Revision:\s+(\S+)/;
+$VERSION = '6.37_02';
+($Revision) = q$Revision: 40883 $ =~ /Revision:\s+(\S+)/;
@ISA = qw(Exporter);
@EXPORT = qw(&WriteMakefile &writeMakefile $Verbose &prompt);
$VERSION = '1.00';
*VERSION = \'1.01';
- ($VERSION) = q$Revision: 32261 $ =~ /(\d+)/g;
+ ($VERSION) = q$Revision: 40883 $ =~ /(\d+)/g;
$FOO::VERSION = '1.10';
*FOO::VERSION = \'1.11';
our $VERSION = 1.2.3; # new for perl5.6.0
package ExtUtils::MakeMaker::Config;
-$VERSION = '0.04';
+$VERSION = '6.37_02';
use strict;
use Config ();
use strict;
use vars qw($VERSION);
-$VERSION = 0.03;
+$VERSION = 6.37_02;
my $Have_Bytes = eval q{require bytes; 1;};
use strict;
use vars qw($VERSION);
-$VERSION = 0.03;
+$VERSION = 6.37_02;
my $IsVMS = $^O eq 'VMS';
use strict 'refs';
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '1.17';
+$VERSION = '6.37_02';
require Exporter;
@ISA = ('Exporter');
use vars qw(@ISA @EXPORT $VERSION);
@ISA = 'Exporter';
@EXPORT = '&Mksymlists';
-$VERSION = '1.21';
+$VERSION = '6.37_02';
sub Mksymlists {
my(%spec) = @_;
- MakeMaker must be backwards compatible to 5.5.4 (5.005_04). Avoid any
obvious 5.6-isms (threads, warnings.pm, Unicode, our, v1.2.3, attributes
- open my $fh, lvalue subroutines, any new core modules, etc...).
+ open my $fh, lvalue subroutines, qr//, any new core modules, etc...).
- MakeMaker should avoid having module dependencies. Avoid using modules
which didn't come with 5.5.4 and avoid using features from newer
and MMK to name the most common. Keep your make code as simple as
possible.
-- Avoid special variables (even $@).
+- Avoid special make variables (even $@).
- Format targets as "target : dependency", the spacing is important.
+ ($ExtUtils::MM_Unix::Is_VMS || 0);
ok ( $os <= 1, 'There can be only one (or none)');
-my $version = $ExtUtils::MM_Unix::VERSION;
- $version =~ s/_//g;
-cmp_ok ($version, '>=', '1.12606', 'Should be at least version 1.12606');
+cmp_ok ($ExtUtils::MM_Unix::VERSION, '>=', '1.12606', 'Should be at least version 1.12606');
# when the following calls like canonpath, catdir etc are replaced by
# File::Spec calls, the test's become a bit pointless
chdir 't';
use strict;
-use Test::More 'no_plan';
+use Test::More tests => 5;
use ExtUtils::MakeMaker qw(WriteEmptyMakefile);
use TieOut;
use strict;
use Config;
+use ExtUtils::MakeMaker;
use Test::More tests => 83;
use MakeMaker::Test::Utils;
ok( !-e "META_new.yml", 'temp META.yml file not left around' );
ok open META, $meta_yml or diag $!;
-my @meta = <META>;
-like $meta[-1], '/\n$/', "META.yml ends with a newline";
+my $meta = join '', <META>;
ok close META;
+is $meta, <<"END";
+--- #YAML:1.0
+name: Big-Dummy
+version: 0.01
+abstract: Try "our" hot dog's
+license: ~
+author:
+ - Michael G Schwern <schwern\@pobox.com>
+generated_by: ExtUtils::MakeMaker version $ExtUtils::MakeMaker::VERSION
+distribution_type: module
+requires:
+ strict: 0
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+ version: 1.3
+END
+
my $manifest = maniread("$distdir/MANIFEST");
# VMS is non-case preserving, so we can't know what the MANIFEST will
# look like. :(
use Test::More;
use ExtUtils::MakeMaker;
+my $Has_Version = eval 'require version; "version"->import';
+my $Has_Our = eval 'our $foo';
+
my %versions = (q[$VERSION = '1.00'] => '1.00',
q[*VERSION = \'1.01'] => '1.01',
q[($VERSION) = q$Revision: 32208 $ =~ /(\d+)/g;] => 32208,
q[local $FOO::VERSION = '1.30'] => 'undef',
);
-if( eval 'our $foo' ) {
+if( $Has_Our ) {
$versions{q[our $VERSION = '1.23';]} = '1.23',
}
-if( eval 'require version; "version"->import' ) {
+if( $Has_Version ) {
$versions{q[use version; $VERSION = qv(1.2.3);]} = qv(1.2.3);
$versions{q[$VERSION = qv(1.2.3)]} = qv(1.2.3);
}
-plan tests => 2 * keys %versions;
+plan tests => (2 * keys %versions) + 4;
while( my($code, $expect) = each %versions ) {
+ is( parse_version_string($code), $expect, $code );
+}
+
+
+sub parse_version_string {
+ my $code = shift;
+
open(FILE, ">VERSION.tmp") || die $!;
print FILE "$code\n";
close FILE;
$_ = 'foo';
- is( MM->parse_version('VERSION.tmp'), $expect, $code );
+ my $version = MM->parse_version('VERSION.tmp');
is( $_, 'foo', '$_ not leaked by parse_version' );
-
+
unlink "VERSION.tmp";
+
+ return $version;
+}
+
+
+SKIP: {
+ skip "need version.pm", 2 unless $Has_Version;
+ is parse_version_string(q[ $VERSION = '1.00'; sub version { $VERSION } ]),
+ '1.00';
+ is parse_version_string(q[ use version; $VERSION = version->new(1.23) ]),
+ '1.23';
}
}
use strict;
-use Test::More 'no_plan';
+use Test::More tests => 11;
use TieOut;
use MakeMaker::Test::Utils;
}
use strict;
-use Test::More 'no_plan';
+use Test::More tests => 28;
use TieOut;
use MakeMaker::Test::Utils;
SKIP: {
- skip("Can't test version objects",2) unless eval { require version };
+ skip("Can't test version objects",6) unless eval { require version };
version->import;
my $version = version->new("1.2.3");
use Test::More;
use MakeMaker::Test::Utils;
+use MakeMaker::Test::Setup::XS;
+use File::Find;
+use File::Spec;
+use File::Path;
if( have_compiler() ) {
- plan tests => 1;
+ plan tests => 7;
}
else {
plan skip_all => "ExtUtils::CBuilder not installed or couldn't find a compiler";
}
-pass("You have a compiler, isn't that great?");
+my $Is_VMS = $^O eq 'VMS';
+my $perl = which_perl();
+
+# GNV logical interferes with testing
+$ENV{'bin'} = '[.bin]' if $Is_VMS;
+
+chdir 't';
+
+perl_lib;
+
+$| = 1;
+
+ok( setup_xs(), 'setup' );
+END {
+ ok( chdir File::Spec->updir );
+ ok( teardown_xs(), 'teardown' );
+}
+
+ok( chdir('XS-Test'), "chdir'd to XS-Test" ) ||
+ diag("chdir failed: $!");
+
+my @mpl_out = run(qq{$perl Makefile.PL});
+
+cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
+ diag(@mpl_out);
+
+my $make = make_run();
+my $make_out = run("$make");
+is( $?, 0, ' make exited normally' ) ||
+ diag $make_out;
+
+my $test_out = run("$make");
+is( $?, 0, ' make test exited normally' ) ||
+ diag $test_out;
use strict;
use vars qw($VERSION);
-$VERSION = 1.17;
+$VERSION = 6.37_02;
use Cwd;
use File::Spec;
--- /dev/null
+package MakeMaker::Test::Setup::XS;
+
+@ISA = qw(Exporter);
+require Exporter;
+@EXPORT = qw(setup_xs teardown_xs);
+
+use strict;
+use File::Path;
+use File::Basename;
+use MakeMaker::Test::Utils;
+
+my $Is_VMS = $^O eq 'VMS';
+
+my %Files = (
+ 'XS-Test/lib/XS/Test.pm' => <<'END',
+package XS::Test;
+
+require Exporter;
+require DynaLoader;
+
+$VERSION = 1.01;
+@ISA = qw(Exporter DynaLoader);
+@EXPORT = qw(is_even);
+
+bootstrap XS::Test $VERSION;
+
+1;
+END
+
+ 'XS-Test/Makefile.PL' => <<'END',
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ NAME => 'XS::Test',
+ VERSION_FROM => 'lib/XS/Test.pm',
+);
+END
+
+ 'XS-Test/Test.xs' => <<'END',
+#include "EXTERN.h";
+#include "perl.h";
+#include "XSUB.h";
+
+MODULE = XS::Test PACKAGE = XS::Test
+
+int
+is_even(input)
+ int input
+ CODE:
+ RETVAL = (input % 2 == 0);
+ OUTPUT:
+ RETVAL
+END
+
+ 'XS-Test/t/is_even.t' => <<'END',
+#!/usr/bin/perl -w
+
+use Test::More tests => 3;
+
+use_ok "XS::Test";
+ok !is_even(1);
+ok is_even(2);
+END
+ );
+
+
+sub setup_xs {
+ setup_mm_test_root();
+ chdir 'MM_TEST_ROOT:[t]' if $Is_VMS;
+
+ while(my($file, $text) = each %Files) {
+ # Convert to a relative, native file path.
+ $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
+
+ my $dir = dirname($file);
+ mkpath $dir;
+ open(FILE, ">$file") || die "Can't create $file: $!";
+ print FILE $text;
+ close FILE;
+ }
+
+ return 1;
+}
+
+sub teardown_xs {
+ foreach my $file (keys %Files) {
+ my $dir = dirname($file);
+ if( -e $dir ) {
+ rmtree($dir) || return;
+ }
+ }
+ return 1;
+}
+
+1;
\ No newline at end of file