X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/3c81428c5fa001df0f0ac7d48bfc483afd5efff5..f70ca6c83cb72c40e99a32a277d84b67546a860f:/writemain.SH diff --git a/writemain.SH b/writemain.SH index e53af7d..18544c1 100644 --- a/writemain.SH +++ b/writemain.SH @@ -1,4 +1,4 @@ -case $CONFIG in +case $CONFIGDOTSH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; @@ -21,6 +21,7 @@ echo "Extracting writemain (with variable substitutions)" : Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!. : Protect any dollar signs and backticks that you do not want interpreted : by putting a backslash in front. You may delete these comments. +rm -f writemain $spitshell >writemain <>writemain <<'!NO!SUBS!' orig="$*" args='' : Remove any .a suffixes and any leading path components -for file in `echo $orig | sed 's/\.a//g'` ; do +for file in $orig ; do + case "$file" in + *.a) file=`echo $file | sed 's/\.a//g'` + ;; + esac case "$file" in ext/*) file=`echo $file | sed 's:ext/\(.*\)/[^/]*:\1:'` ;; @@ -60,19 +65,21 @@ if test X"$args" != "X" ; then mname=`echo $ext | sed 's!/!::!g'` cname=`echo $mname | sed 's!:!_!g'` -echo "EXTERN_C void boot_${cname} _((CV* cv));" +echo "EXTERN_C void boot_${cname} (pTHX_ CV* cv);" done fi cat << 'EOP' static void -xs_init() +xs_init(pTHX) { EOP if test X"$args" != "X" ; then echo " char *file = __FILE__;" + echo " dXSUB_SYS;" + ai='' for ext in $args ; do @@ -82,7 +89,6 @@ if test X"$args" != "X" ; then mname=`echo $ext | sed 's!/!::!g'` cname=`echo $mname | sed 's!:!_!g'` - echo " {" if test "$ext" = "DynaLoader"; then : Must NOT install 'DynaLoader::boot_DynaLoader' as 'bootstrap'! : boot_DynaLoader is called directly in DynaLoader.pm @@ -90,7 +96,6 @@ if test X"$args" != "X" ; then else echo " newXS(\"${mname}::bootstrap\", boot_${cname}, file);" fi - echo " }" done fi