Split XSLoader out from ext/DynaLoader into its own directory.
authorNicholas Clark <nick@ccl4.org>
Fri, 18 Sep 2009 09:59:11 +0000 (10:59 +0100)
committerNicholas Clark <nick@ccl4.org>
Fri, 18 Sep 2009 09:59:11 +0000 (10:59 +0100)
MANIFEST
Porting/Maintainers.pl
ext/DynaLoader/Makefile.PL
ext/XSLoader/Makefile.PL [new file with mode: 0644]
ext/XSLoader/XSLoader_pm.PL [moved from ext/DynaLoader/XSLoader_pm.PL with 100% similarity]
ext/XSLoader/t/XSLoader.t [moved from ext/DynaLoader/t/XSLoader.t with 100% similarity]

index a40b586..4350606 100644 (file)
--- 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
index 61f65fc..cf09eb5 100755 (executable)
@@ -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
index d3670a8..779523f 100644 (file)
@@ -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 (file)
index 0000000..0383532
--- /dev/null
@@ -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;
+    }
+}