From: Nicholas Clark <nick@ccl4.org>
Date: Fri, 18 Sep 2009 09:59:11 +0000 (+0100)
Subject: Split XSLoader out from ext/DynaLoader into its own directory.
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c440907b5d816077e5dcc75bb0275152e9957afc;p=p5sagit%2Fp5-mst-13.2.git

Split XSLoader out from ext/DynaLoader into its own directory.
---

diff --git a/MANIFEST b/MANIFEST
index a40b586..4350606 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -866,8 +866,6 @@ ext/DynaLoader/hints/openbsd.pl	Hint for DynaLoader for named architecture
 ext/DynaLoader/Makefile.PL	Dynamic Loader makefile writer
 ext/DynaLoader/README		Dynamic Loader notes and intro
 ext/DynaLoader/t/DynaLoader.t	See if DynaLoader works
-ext/DynaLoader/t/XSLoader.t	See if XSLoader works
-ext/DynaLoader/XSLoader_pm.PL	Simple XS Loader perl module
 ext/Encode/AUTHORS		List of authors
 ext/Encode/bin/enc2xs		Encode module generator
 ext/Encode/bin/piconv		iconv by perl
@@ -3162,6 +3160,9 @@ ext/XS-APItest/t/svpeek.t	XS::APItest extension
 ext/XS-APItest/t/svsetsv.t	Test behaviour of sv_setsv with/without PERL_CORE
 ext/XS-APItest/t/xs_special_subs_require.t	for require too
 ext/XS-APItest/t/xs_special_subs.t	Test that XS BEGIN/CHECK/INIT/END work
+ext/XSLoader/Makefile.PL	Dynamic Loader makefile writer
+ext/XSLoader/t/XSLoader.t	See if XSLoader works
+ext/XSLoader/XSLoader_pm.PL	Simple XS Loader perl module
 ext/XS-Typemap/Makefile.PL	XS::Typemap extension
 ext/XS-Typemap/README		XS::Typemap extension
 ext/XS-Typemap/stdio.c		XS::Typemap extension
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 61f65fc..cf09eb5 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -1737,9 +1737,7 @@ use File::Glob qw(:case);
 	{
 	'MAINTAINER'	=> 'saper',
 	'DISTRIBUTION'	=> 'SAPER/XSLoader-0.10.tar.gz',
-	'FILES'		=> q[ext/DynaLoader/t/XSLoader.t
-			     ext/DynaLoader/XSLoader_pm.PL
-			    ],
+	'FILES'		=> q[ext/XSLoader],
 	'EXCLUDED'	=> [ qr{^eg/},
 			     qw{t/pod.t
 			        t/podcover.t
diff --git a/ext/DynaLoader/Makefile.PL b/ext/DynaLoader/Makefile.PL
index d3670a8..779523f 100644
--- a/ext/DynaLoader/Makefile.PL
+++ b/ext/DynaLoader/Makefile.PL
@@ -12,13 +12,10 @@ WriteMakefile(
     SKIP	=> [qw(dynamic dynamic_lib dynamic_bs)],
     XSPROTOARG => '-noprototypes', 		# XXX remove later?
     VERSION_FROM => 'DynaLoader_pm.PL',
-    PL_FILES	=> {'DynaLoader_pm.PL'=>'DynaLoader.pm',
-		    'XSLoader_pm.PL'=>'XSLoader.pm'},
-    PM		=> {'DynaLoader.pm' => '$(INST_LIBDIR)/DynaLoader.pm',
-		    'XSLoader.pm' => '$(INST_LIBDIR)/XSLoader.pm'},
+    PL_FILES	=> {'DynaLoader_pm.PL'=>'DynaLoader.pm'},
+    PM		=> {'DynaLoader.pm' => '$(INST_LIBDIR)/DynaLoader.pm'},
     depend      => {'DynaLoader$(OBJ_EXT)' => 'dlutils.c'},
-    clean	=> {FILES => 'DynaLoader.c DynaLoader.xs DynaLoader.pm ' .
-			     'XSLoader.pm'},
+    clean	=> {FILES => 'DynaLoader.c DynaLoader.xs DynaLoader.pm'},
 );
 
 sub MY::postamble {
diff --git a/ext/XSLoader/Makefile.PL b/ext/XSLoader/Makefile.PL
new file mode 100644
index 0000000..0383532
--- /dev/null
+++ b/ext/XSLoader/Makefile.PL
@@ -0,0 +1,72 @@
+# A template for Makefile.PL.
+# - Set the $PACKAGE variable to the name of your module.
+# - Set $LAST_API_CHANGE to reflect the last version you changed the API 
+#   of your module.
+# - Fill in your dependencies in PREREQ_PM
+# Alternatively, you can say the hell with this and use h2xs.
+
+use ExtUtils::MakeMaker;
+eval 'use ExtUtils::MakeMaker::Coverage';
+
+$PACKAGE = 'XSLoader';
+($PACKAGE_FILE = $PACKAGE) =~ s|::|/|g;
+$LAST_API_CHANGE = 0;
+
+eval "require $PACKAGE";
+
+unless ($@) { # Make sure we did find the module.
+    print <<"CHANGE_WARN" if ${$PACKAGE.'::VERSION'} < $LAST_API_CHANGE;
+
+NOTE: There have been API changes between this version and any older
+than version $LAST_API_CHANGE!  Please read the Changes file if you
+are upgrading from a version older than $LAST_API_CHANGE.
+
+CHANGE_WARN
+}
+
+# In case the empty lib/ directory was not created.
+mkdir 'lib', 0755 unless $ENV{PERL_CORE};
+
+WriteMakefile(
+    NAME            => $PACKAGE,
+    LICENSE         => 'perl',
+    AUTHOR          => 'Sebastien Aperghis-Tramoni <sebastien@aperghis.net>',
+    VERSION_FROM    => 'XSLoader_pm.PL',
+    ABSTRACT_FROM   => 'XSLoader_pm.PL',
+    INSTALLDIRS     => 'perl',
+    PL_FILES        => { 'XSLoader_pm.PL'  => 'XSLoader.pm' },
+    PM              => { 'XSLoader.pm' => '$(INST_ARCHLIB)/XSLoader.pm' },
+    PREREQ_PM       => {
+        'Test::More' => '0.62',
+    },
+    dist            => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+    clean           => { FILES => 'XSLoader-*' },
+);
+
+# Unlink the .pm file included with the distribution
+1 while unlink "XSLoader.pm";
+
+{
+    package MY;
+
+    sub test_via_harness {
+        my($self, $orig_perl, $tests) = @_;
+
+        my @perls = ($orig_perl);
+        push @perls, qw(bleadperl 
+                        perl5.6.1
+                        perl5.6.0
+                        perl5.005_03 
+                        perl5.004_05 
+                        perl5.004_04
+                        perl5.004)
+          if $ENV{PERL_TEST_ALL};
+
+        my $out;
+        foreach my $perl (@perls) {
+            $out .= $self->SUPER::test_via_harness($perl, $tests);
+        }
+
+        return $out;
+    }
+}
diff --git a/ext/DynaLoader/XSLoader_pm.PL b/ext/XSLoader/XSLoader_pm.PL
similarity index 100%
rename from ext/DynaLoader/XSLoader_pm.PL
rename to ext/XSLoader/XSLoader_pm.PL
diff --git a/ext/DynaLoader/t/XSLoader.t b/ext/XSLoader/t/XSLoader.t
similarity index 100%
rename from ext/DynaLoader/t/XSLoader.t
rename to ext/XSLoader/t/XSLoader.t