implement C<goto &func> and other fixes (via private mail)
[p5sagit/p5-mst-13.2.git] / Makefile.SH
index f925a97..24016d9 100644 (file)
@@ -435,7 +435,7 @@ run_byacc:  FORCE
        sh $(shellflags) ./perly.fixer y.tab.c perly.c
        sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
            -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
-       echo 'extern YYSTYPE yylval;' >>y.tab.h
+       sed -e '/^extern YYSTYPE yy/D' y.tab.h >yh.tmp && mv yh.tmp y.tab.h
        cmp -s y.tab.h perly.h && rm -f y.tab.h || mv y.tab.h perly.h
        chmod 664 vms/perly_c.vms vms/perly_h.vms
        perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
@@ -451,7 +451,7 @@ perly.h: perly.y
 
 # No compat3.sym here since and including the 5.004_50.
 # No interp.sym since 5.005_03.
-SYM  = global.sym interp.sym perlio.sym thread.sym
+SYM  = global.sym perlio.sym thread.sym
 
 SYMH = perlvars.h thrdvar.h
 
@@ -513,6 +513,7 @@ _mopup:
        rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c
        rm -f perl.exp ext.libs
        -rm -f perl.export perl.dll perl.libexp perl.map perl.def
+       -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap
        rm -f perl suidperl miniperl $(LIBPERL)
 
 # Do not 'make _tidy' directly.
@@ -534,7 +535,7 @@ _cleaner:
        -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
        sh ext/util/make_ext realclean $$x MAKE=$(MAKE) ; \
        done
-       rm -f *.orig */*.orig *~ */*~ core t/core t/c t/perl
+       rm -f *.orig */*.orig *~ */*~ core core.perl.*.? core.miniperl.*.? perl.core miniperl.core t/core t/core.perl.*.? t/perl.core t/tmp???? t/c t/perl
        rm -rf $(addedbyconf)
        rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old
        rm -f $(private)
@@ -657,6 +658,8 @@ case "$ebcdic" in
 $define)
     xxx=''
     echo "This is an EBCDIC system, checking if any parser files need regenerating." >&4
+case "$osname" in
+os390)
     rm -f y.tab.c y.tab.h
     yacc -d perly.y >/dev/null 2>&1
     if cmp -s y.tab.c perly.c; then
@@ -665,7 +668,20 @@ $define)
         echo "perly.y -> perly.c" >&2
         mv -f y.tab.c perly.c
         chmod u+w perly.c
-        sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
+        sed -e '/^#include "perl\.h"/a\
+\
+#define yydebug    PL_yydebug\
+#define yynerrs    PL_yynerrs\
+#define yyerrflag  PL_yyerrflag\
+#define yychar     PL_yychar\
+#define yyval      PL_yyval\
+#define yylval     PL_yylval'                          \
+            -e '/YYSTYPE *yyval;/D'                    \
+            -e '/YYSTYPE *yylval;/D'                   \
+            -e '/int  yychar,/,/yynerrs;/D'            \
+            -e 's/int yydebug = 0;/yydebug = 0;/'      \
+            -e 's/[^_]realloc(/PerlMem_realloc(/g'     \
+            -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
             -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
         xxx="$xxx perly.c"
     fi
@@ -699,6 +715,11 @@ $define)
         xxx="$xxx a2p.h"
     fi
     cd ..
+    ;;
+vmesa)
+    # Do nothing in VM/ESA.
+    ;;
+esac
     case "$xxx" in
     '') echo "No parser files were regenerated.  That's okay." >&2 ;;
     esac