# $Header$
+EMHOME = ../../..
+INSTALL = $(EMHOME)/modules/install
+COMPARE = $(EMHOME)/modules/compare
+LIBOPT = libopt.a
-# Where to find em home directory
+CSRC = nopt.c aux.c mkcalls.c pseudo.c outputdfa.c outcalls.c\
+ findworst.c initlex.c
-EMHOME=/usr/em
-MODLIB=$(EMHOME)/modules/lib
+SRCS = Makefile nopt.h parser.h parser.g syntax.l patterns $(CSRC)
-# set HOWMUCH to head -20 to limit number of patterns used
-HOWMUCH=cat
+NOFILES=nopt.o dfa.o trans.o incalls.o pseudo.o aux.o mkcalls.o
-LEXLIB=-ll
-INCLDIR=-I$(EMHOME)/h -I$(EMHOME)/modules/h -I$(EMHOME)/modules/pkg -I../h
-PREFLAGS=$(INCLDIR) -DPRIVATE=static
-PROFFLAG=-O
-CFLAGS=$(PREFLAGS) $(PROFFLAG)
-LLOPT=
+POFILES=parser.o syntax.o outputdfa.o outcalls.o findworst.o initlex.o Lpars.o
GENFILES=Lpars.h Lpars.c parserdummy parser.c syntax.c dfadummy\
- dfa.c dfa.c.save trans.c trans.c.save incalls.c incalls.c.save
+ dfa.c dfa.c.save trans.c trans.c.save incalls.c incalls.c.save
-all: libopt.a
+all: $(LIBOPT)
-NOFILES=nopt.o dfa.o trans.o incalls.o pseudo.o aux.o mkcalls.o
+install: all
+ $(INSTALL) lib/$(LIBOPT)
-libopt.a: dfadummy $(NOFILES)
- rm -f libopt.a
- ar rc libopt.a $(NOFILES)
- ranlib libopt.a
-
-dfadummy: patterns parser
- -mv dfa.c dfa.c.save
- -mv trans.c trans.c.save
- -mv incalls.c incalls.c.save
- -/lib/cpp patterns | $(HOWMUCH) >/tmp/patts
- parser </tmp/patts
- -rm /tmp/patts
- -if cmp -s dfa.c dfa.c.save; then mv dfa.c.save dfa.c; else exit 0; fi
- -if cmp -s trans.c trans.c.save; then mv trans.c.save trans.c; else exit 0; fi
- -if cmp -s incalls.c incalls.c.save; then mv incalls.c.save incalls.c; else exit 0; fi
- touch dfadummy
+cmp: all
+ $(COMPARE) lib/$(LIBOPT)
-POFILES=parser.o syntax.o outputdfa.o outcalls.o findworst.o initlex.o Lpars.o
+pr:
+ @pr $(SRCS)
-PARSERLIB=$(EMHOME)/lib/em_data.a $(MODLIB)/libprint.a $(MODLIB)/liballoc.a\
- $(MODLIB)/libstring.a $(MODLIB)/libsystem.a
+opr:
+ make pr | opr
-parser: parserdummy $(POFILES) $(PARSERLIB)
- $(CC) -o parser $(LDFLAGS) $(POFILES) $(PARSERLIB) $(LEXLIB)
-
-GFILES=parser.g
+clean:
+ rm -f $(NOFILES) $(POFILES) $(GENFILES) parser core makerror
-parserdummy: $(GFILES)
- LLgen $(LLOPT) $(GFILES)
- touch parserdummy
+# set HOWMUCH to head -20 to limit number of patterns used
+#HOWMUCH=head -20
+HOWMUCH=cat
-clean:
- rm -f $(NOFILES) $(POFILES) $(GENFILES) parser
+LEXLIB=-ll
+INCLDIR=-I$(EMHOME)/h -I$(EMHOME)/modules/h -I$(EMHOME)/modules/pkg
+PREFLAGS=$(INCLDIR) -DPRIVATE=static
+PROFFLAG=-O
+CFLAGS=$(PREFLAGS) $(PROFFLAG)
+LLOPT=
-nopt.o: nopt.h
-dfa.o: nopt.h
-aux.o: nopt.h
+$(LIBOPT): dfadummy $(NOFILES)
+ rm -f $(LIBOPT)
+ ar rc $(LIBOPT) $(NOFILES)
+ -sh -c 'ranlib $(LIBOPT)'
+
+dfadummy: patterns parser
+ -mv dfa.c dfa.c.save
+ -mv trans.c trans.c.save
+ -mv incalls.c incalls.c.save
+ -/lib/cpp patterns | $(HOWMUCH) >/tmp/patts
+ parser </tmp/patts
+ -rm /tmp/patts
+ -if cmp -s dfa.c dfa.c.save; then mv dfa.c.save dfa.c; else exit 0; fi
+ -if cmp -s trans.c trans.c.save; then mv trans.c.save trans.c; else exit 0; fi
+ -if cmp -s incalls.c incalls.c.save; then mv incalls.c.save incalls.c; else exit 0; fi
+ touch dfadummy
+
+# How to build program to parse patterns table and build c files.
+
+PARSERLIB=$(EMHOME)/lib/em_data.a\
+ $(EMHOME)/modules/lib/libprint.a\
+ $(EMHOME)/modules/lib/liballoc.a\
+ $(EMHOME)/modules/lib/libstring.a\
+ $(EMHOME)/modules/lib/libsystem.a
+
+parser: parserdummy $(POFILES) $(PARSERLIB)
+ $(CC) -o parser $(LDFLAGS) $(POFILES) $(PARSERLIB) $(LEXLIB)
+
+parserdummy: parser.g
+ LLgen $(LLOPT) parser.g
+ touch parserdummy
+
+nopt.o: nopt.h
+dfa.o: nopt.h
+aux.o: nopt.h
trans.o: nopt.h
pseudo.o: nopt.h
incalls.o: nopt.h