summaryrefslogtreecommitdiff
path: root/x2p/Makefile.SH
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafcol.lafayette.edu>1995-03-31 00:56:10 +0000
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-03-31 00:56:10 +0000
commit56febc5ef28a2ff414c466231d08046390ce0f59 (patch)
tree160c3ab5de4440c084383be3699ccdd933f9fac5 /x2p/Makefile.SH
parent8bb9dbe4584e4740e744f2e392c02dc263a7baee (diff)
downloadperl-56febc5ef28a2ff414c466231d08046390ce0f59.tar.gz
perl5.001 patch.1b: [byacc deps fix, set*id fixes, x2p/walk.c emit_split()
fix] This is my patch patch.1b for perl5.001. [Actually, that's a lie. This is just a reposting of two of my patches (removing some byacc dependencies and fixing some set*id stuff) + one version of the x2p/walk.c emit_split() patch. I've just usurped the letter 'b' to fit in my patch sequence. You probably have already applied these as well, but again here they are all packaged up nice and neatly for storage on ftp sites.] Here's one possible solution to the byacc problem. Short summary: make will think your perly.[ch] are out of date because perly.c.diff has changed. They aren't really out of date, but the ordering of the timestamps in the distribution fools make. I had put some traps in perly.fixer to check to make sure that everything got run only if you ran the same version of byacc (1.8) as Larry, but the traps aren't good enough: There's a Cygnus version of byacc out there that also calls itself 1.8 (with a +Cygnus xxx note attached). I don't think I'll ever be able to reliably detect all mutant byacc's, so the safest course of action seems to be to never run byacc. (Yes, the perly.fixer check could be a _lot_ smarter. Volunteers?) This simple-minded fix just puts in a perly.c: perly.y - touch perly.c perly.h: perly.y - touch perly.h to bring perly.[ch] up to date, if needed. The '-' are in case your source is read-only. It also does the same trick in x2p/Makefile.SH. WARNING! Danger! Larry, if you do this, it means you have to explicitly call make run_byacc whenever you change perly.y, perly.c.diff, or cd x2p; make run_byacc if you change x2p/a2p.y. However, it might be worth it. I leave it up to you.
Diffstat (limited to 'x2p/Makefile.SH')
-rwxr-xr-xx2p/Makefile.SH46
1 files changed, 12 insertions, 34 deletions
diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH
index 393a335e0b..19d4205f38 100755
--- a/x2p/Makefile.SH
+++ b/x2p/Makefile.SH
@@ -17,11 +17,6 @@ case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac
-: Configure sets byacc=byacc if byacc is not found. We reset it to ''
-case "$byacc" in
-'byacc') byacc='';;
-esac
-
echo "Extracting x2p/Makefile (with variable substitutions)"
rm -f Makefile
cat >Makefile <<!GROK!THIS!
@@ -77,36 +72,19 @@ all: $(public) $(private) $(util)
a2p: $(obj) a2p.o
$(CC) $(LDFLAGS) $(obj) a2p.o $(libs) -o a2p
-!NO!SUBS!
-
-: Only print out the rules for running byacc if the user _has_ byacc.
-: Otherwise, comment them out. Users who really know what they are
-: doing can uncomment them and run yacc or bison or whatever.
-: Configure sets byacc=byacc if byacc is not found.
-case "$byacc" in
-'')
- comment1='#'
- comment2='' ;;
-*) comment1=''
- comment2='#' ;;
-esac
-
-$spitshell >>Makefile <<!GROK!THIS!
-
# I now supply a2p.c with the kits, so the following section is
-# commented out if you don't have byacc.
-
-${comment1}a2p.c: a2p.y
-${comment1} @ echo Expect many shift/reduce and reduce/reduce conflicts
-${comment1} \$(BYACC) a2p.y
-${comment1} mv y.tab.c a2p.c
-
-# This version is used if you do not have byacc.
-${comment2}a2p.c: a2p.y
-${comment2} touch a2p.c
-
-!GROK!THIS!
-cat >>Makefile <<'!NO!SUBS!'
+# used only if you force byacc to run by saying
+# make run_byacc
+
+run_byacc:
+ @ echo Expect many shift/reduce and reduce/reduce conflicts
+ $(BYACC) a2p.y
+ mv y.tab.c a2p.c
+
+# We don't want to regenerate a2p.c, but it might appear out-of-date
+# after a patch is applied or a new distribution is made.
+a2p.c: a2p.y
+ - touch a2p.c
a2p.o: a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h handy.h ../config.h str.h hash.h
$(CCCMD) $(LARGE) a2p.c