diff options
Diffstat (limited to 'minimod.PL')
-rw-r--r-- | minimod.PL | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/minimod.PL b/minimod.PL index 740cb2bee0..c0da491d08 100644 --- a/minimod.PL +++ b/minimod.PL @@ -56,17 +56,19 @@ sub writemain{ print " char *file = __FILE__;\n"; foreach $_ (@exts){ my($pname) = canon('/', $_); - my($mname, $cname); + my($mname, $cname, $ccode); ($mname = $pname) =~ s!/!::!g; ($cname = $pname) =~ s!/!__!g; print "\t{ extern void boot_${cname} _((CV* cv));\n"; if ($pname eq $dl){ # Must NOT install 'DynaLoader::boot_DynaLoader' as 'bootstrap'! # boot_DynaLoader is called directly in DynaLoader.pm - print "\t/* DynaLoader is a special case */\n"; - print "\tnewXS(\"${mname}::boot_${cname}\", boot_${cname}, file);\n" + $ccode = "\t/* DynaLoader is a special case */\n +\tnewXS(\"${mname}::boot_${cname}\", boot_${cname}, file);\n"; + print $ccode unless $SEEN{$ccode}++; } else { - print "\tnewXS(\"${mname}::bootstrap\", boot_${cname}, file);\n" + $ccode = "\tnewXS(\"${mname}::bootstrap\", boot_${cname}, file);\n"; + print $ccode unless $SEEN{$ccode}++; } print "\t}\n"; } |