X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/9bb683e6b9e9c477f8ad211dd2f5b8c19d1b7bc2..20a5039af69d81e9003664af771f2dd5e0446c2b:/minimod.pl diff --git a/minimod.pl b/minimod.pl old mode 100755 new mode 100644 index b9b7071..a5bd172 --- a/minimod.pl +++ b/minimod.pl @@ -1,4 +1,5 @@ -# minimod.PL writes the contents of miniperlmain.c into the module +#./miniperl -w +# minimod.pl writes the contents of miniperlmain.c into the module # ExtUtils::Miniperl for later perusal (when the perl source is # deleted) # @@ -10,6 +11,10 @@ # # Version 1.0, Feb 2nd 1995 by Andreas Koenig +BEGIN { unshift @INC, "lib" } + +use strict; + print <<'END'; # This File keeps the contents of miniperlmain.c. # @@ -32,6 +37,7 @@ open MINI, "miniperlmain.c"; while () { last if /Do not delete this line--writemain depends on it/; print; + /#include "perl.h"/ and print qq/#include "XSUB.h"\n/; } print <<'END'; @@ -40,7 +46,7 @@ $tail=<<'EOF!TAIL'; END while () { - print; + print unless /dXSUB_SYS/; } close MINI; @@ -59,13 +65,16 @@ sub writemain{ my($mname, $cname); ($mname = $pname) =~ s!/!::!g; ($cname = $pname) =~ s!/!__!g; - print "EXTERN_C void boot_${cname} _((CV* cv));\n"; + print "EXTERN_C void boot_${cname} (pTHX_ CV* cv);\n"; } - my ($tail1,$tail2) = ( $tail =~ /\A(.*\n)(\s*\}.*)\Z/s ); + my ($tail1,$tail2,$tail3) = ( $tail =~ /\A(.*{\s*\n)(.*\n)(\s*\}.*)\Z/s ); + print $tail1; + print "\tconst char file[] = __FILE__;\n"; + print "\tdXSUB_SYS;\n" if $] > 5.002; + print $tail2; - print " char *file = __FILE__;\n"; foreach $_ (@exts){ my($pname) = canon('/', $_); my($mname, $cname, $ccode); @@ -84,7 +93,7 @@ sub writemain{ } print "\t}\n"; } - print $tail2; + print $tail3; } sub canon{