summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/minimod.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/minimod.pl')
-rw-r--r--contrib/perl5/minimod.pl139
1 files changed, 0 insertions, 139 deletions
diff --git a/contrib/perl5/minimod.pl b/contrib/perl5/minimod.pl
deleted file mode 100644
index 18b9c07..0000000
--- a/contrib/perl5/minimod.pl
+++ /dev/null
@@ -1,139 +0,0 @@
-# minimod.PL writes the contents of miniperlmain.c into the module
-# ExtUtils::Miniperl for later perusal (when the perl source is
-# deleted)
-#
-# It also writes the subroutine writemain(), which takes as its
-# arguments module names that shall be statically linked into perl.
-#
-# Authors: Andreas Koenig <k@franz.ww.TU-Berlin.DE>, Tim Bunce
-# <Tim.Bunce@ig.co.uk>
-#
-# Version 1.0, Feb 2nd 1995 by Andreas Koenig
-
-print <<'END';
-# This File keeps the contents of miniperlmain.c.
-#
-# It was generated automatically by minimod.PL from the contents
-# of miniperlmain.c. Don't edit this file!
-#
-# ANY CHANGES MADE HERE WILL BE LOST!
-#
-
-
-package ExtUtils::Miniperl;
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(&writemain);
-
-$head= <<'EOF!HEAD';
-END
-
-open MINI, "miniperlmain.c";
-while (<MINI>) {
- last if /Do not delete this line--writemain depends on it/;
- print;
-}
-
-print <<'END';
-EOF!HEAD
-$tail=<<'EOF!TAIL';
-END
-
-while (<MINI>) {
- print unless /dXSUB_SYS/;
-}
-close MINI;
-
-print <<'END';
-EOF!TAIL
-
-sub writemain{
- my(@exts) = @_;
-
- my($pname);
- my($dl) = canon('/','DynaLoader');
- print $head;
-
- foreach $_ (@exts){
- my($pname) = canon('/', $_);
- my($mname, $cname);
- ($mname = $pname) =~ s!/!::!g;
- ($cname = $pname) =~ s!/!__!g;
- print "EXTERN_C void boot_${cname} (pTHX_ CV* cv);\n";
- }
-
- my ($tail1,$tail2) = ( $tail =~ /\A(.*\n)(\s*\}.*)\Z/s );
- print $tail1;
-
- print "\tchar *file = __FILE__;\n";
- print "\tdXSUB_SYS;\n" if $] > 5.002;
-
- foreach $_ (@exts){
- my($pname) = canon('/', $_);
- my($mname, $cname, $ccode);
- ($mname = $pname) =~ s!/!::!g;
- ($cname = $pname) =~ s!/!__!g;
- print "\t{\n";
- if ($pname eq $dl){
- # Must NOT install 'DynaLoader::boot_DynaLoader' as 'bootstrap'!
- # boot_DynaLoader is called directly in DynaLoader.pm
- $ccode = "\t/* DynaLoader is a special case */\n
-\tnewXS(\"${mname}::boot_${cname}\", boot_${cname}, file);\n";
- print $ccode unless $SEEN{$ccode}++;
- } else {
- $ccode = "\tnewXS(\"${mname}::bootstrap\", boot_${cname}, file);\n";
- print $ccode unless $SEEN{$ccode}++;
- }
- print "\t}\n";
- }
- print $tail2;
-}
-
-sub canon{
- my($as, @ext) = @_;
- foreach(@ext){
- # might be X::Y or lib/auto/X/Y/Y.a
- next if s!::!/!g;
- s:^(lib|ext)/(auto/)?::;
- s:/\w+\.\w+$::;
- }
- grep(s:/:$as:, @ext) if ($as ne '/');
- @ext;
-}
-
-1;
-__END__
-
-=head1 NAME
-
-ExtUtils::Miniperl, writemain - write the C code for perlmain.c
-
-=head1 SYNOPSIS
-
-C<use ExtUtils::Miniperl;>
-
-C<writemain(@directories);>
-
-=head1 DESCRIPTION
-
-This whole module is written when perl itself is built from a script
-called minimod.PL. In case you want to patch it, please patch
-minimod.PL in the perl distribution instead.
-
-writemain() takes an argument list of directories containing archive
-libraries that relate to perl modules and should be linked into a new
-perl binary. It writes to STDOUT a corresponding perlmain.c file that
-is a plain C file containing all the bootstrap code to make the
-modules associated with the libraries available from within perl.
-
-The typical usage is from within a Makefile generated by
-ExtUtils::MakeMaker. So under normal circumstances you won't have to
-deal with this module directly.
-
-=head1 SEE ALSO
-
-L<ExtUtils::MakeMaker>
-
-=cut
-
-END
OpenPOWER on IntegriCloud