1987-01-15 18:12:26 +00:00
|
|
|
# $Header$
|
1987-01-27 11:42:08 +00:00
|
|
|
EMHOME = ../../..
|
|
|
|
INSTALL = $(EMHOME)/modules/install
|
|
|
|
COMPARE = $(EMHOME)/modules/compare
|
1987-07-07 16:31:16 +00:00
|
|
|
LIBDIR = $(EMHOME)/modules/lib
|
|
|
|
BINDIR = $(EMHOME)/lib
|
|
|
|
LIBOPT = libemopt.a
|
|
|
|
|
|
|
|
# libraries required for standalone em_nopt
|
|
|
|
INK = $(LIBDIR)/libread_emk.a
|
|
|
|
OUTK = $(LIBDIR)/libemk.a
|
|
|
|
SYS = $(LIBDIR)/libsystem.a
|
|
|
|
ALLOC = $(LIBDIR)/liballoc.a $(LIBDIR)/malloc.o
|
|
|
|
DATA = $(EMHOME)/lib/em_data.a
|
|
|
|
LIBS = $(INK) $(OUTK) $(ALLOC) $(DATA) $(SYS)
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-02-06 14:13:22 +00:00
|
|
|
# set HOWMUCH to head -20 to limit number of patterns used
|
1987-07-07 16:31:16 +00:00
|
|
|
#HOWMUCH= head -20
|
|
|
|
HOWMUCH = cat
|
|
|
|
|
|
|
|
LEXLIB = -ll
|
|
|
|
INCLDIR = -I$(EMHOME)/h -I$(EMHOME)/modules/h -I$(EMHOME)/modules/pkg
|
|
|
|
PREFLAGS= $(INCLDIR) -DPRIVATE=static# -DDEBUG
|
1987-02-06 14:13:22 +00:00
|
|
|
|
|
|
|
# Enable the next line to produce a version that output's the line number
|
|
|
|
# from the patterns file each time an optimization is performed.
|
1987-07-07 16:31:16 +00:00
|
|
|
#PREFLAGS= $(PREFLAGS) -DSTATS
|
|
|
|
PROFFLAG= -O
|
1987-07-09 09:02:41 +00:00
|
|
|
CFLAGS = $(PREFLAGS) $(PROFFLAG)
|
1987-07-07 16:31:16 +00:00
|
|
|
LLOPT =
|
|
|
|
CMD = '$(CC) -c $(CFLAGS)'
|
1987-02-06 14:13:22 +00:00
|
|
|
|
|
|
|
.SUFFIXES: .d .r
|
|
|
|
|
|
|
|
.r.d:; CMD=$(CMD); export CMD; awk -f makefuns.awk $*.r | sh
|
|
|
|
touch $@
|
|
|
|
|
1987-07-07 16:31:16 +00:00
|
|
|
CSRC = main.c nopt.c mkstrct.c aux.c outputdfa.c outcalls.c\
|
1987-01-27 11:42:08 +00:00
|
|
|
findworst.c initlex.c
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-02-06 14:13:22 +00:00
|
|
|
SRCS = Makefile nopt.h parser.h parser.g syntax.l pseudo.r patterns $(CSRC)
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-07-07 16:31:16 +00:00
|
|
|
NOFILES = nopt.o dfa.o trans.o aux.o
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-01-27 14:15:23 +00:00
|
|
|
POFILES = parser.o syntax.o outputdfa.o outcalls.o findworst.o initlex.o Lpars.o
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-01-27 14:15:23 +00:00
|
|
|
GENFILES = Lpars.h Lpars.c parserdummy parser.c syntax.c dfadummy\
|
1987-07-09 09:02:41 +00:00
|
|
|
dfa.c dfa.c.new trans.h trans.h.new trans.c trans.c.new\
|
|
|
|
incalls.d incalls.r incalls.r.new pseudo.d
|
1987-01-15 18:12:26 +00:00
|
|
|
|
1987-07-07 16:31:16 +00:00
|
|
|
all: em_nopt $(LIBOPT)
|
1987-01-15 18:12:26 +00:00
|
|
|
|
1987-01-27 11:42:08 +00:00
|
|
|
install: all
|
|
|
|
$(INSTALL) lib/$(LIBOPT)
|
1987-07-07 16:31:16 +00:00
|
|
|
cp em_nopt $(BINDIR)
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-01-27 11:42:08 +00:00
|
|
|
cmp: all
|
|
|
|
$(COMPARE) lib/$(LIBOPT)
|
1987-01-15 18:12:26 +00:00
|
|
|
|
1987-01-27 11:42:08 +00:00
|
|
|
pr:
|
|
|
|
@pr $(SRCS)
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-01-27 11:42:08 +00:00
|
|
|
opr:
|
|
|
|
make pr | opr
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-01-27 11:42:08 +00:00
|
|
|
clean:
|
1987-07-07 16:31:16 +00:00
|
|
|
rm -f O_*.o
|
|
|
|
rm -f O_*.c
|
|
|
|
rm -f $(NOFILES) main.o mkstrct.o $(POFILES)
|
|
|
|
rm -f $(GENFILES) parser libopt.a
|
|
|
|
|
|
|
|
em_nopt: main.o $(NOFILES)
|
|
|
|
$(CC) -o em_nopt main.o $(NOFILES) $(LIBS)
|
1987-01-21 14:27:04 +00:00
|
|
|
|
1987-07-07 16:31:16 +00:00
|
|
|
$(LIBOPT): $(NOFILES) mkstrct.o pseudo.d incalls.d
|
1987-01-27 11:42:08 +00:00
|
|
|
rm -f $(LIBOPT)
|
1987-07-07 16:31:16 +00:00
|
|
|
ar rc $(LIBOPT) O_*.o $(NOFILES) mkstrct.o
|
1987-01-27 11:42:08 +00:00
|
|
|
-sh -c 'ranlib $(LIBOPT)'
|
|
|
|
|
|
|
|
dfadummy: patterns parser
|
|
|
|
-/lib/cpp patterns | $(HOWMUCH) >/tmp/patts
|
|
|
|
parser </tmp/patts
|
|
|
|
-rm /tmp/patts
|
|
|
|
touch dfadummy
|
|
|
|
|
|
|
|
# How to build program to parse patterns table and build c files.
|
|
|
|
|
1987-01-27 14:15:23 +00:00
|
|
|
PARSERLIB = $(EMHOME)/lib/em_data.a\
|
1987-01-27 11:42:08 +00:00
|
|
|
$(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
|
|
|
|
|
1987-07-07 16:31:16 +00:00
|
|
|
main.o: nopt.h
|
1987-01-27 11:42:08 +00:00
|
|
|
nopt.o: nopt.h
|
1987-07-07 16:31:16 +00:00
|
|
|
mkstrct.o: nopt.h
|
1987-01-27 11:42:08 +00:00
|
|
|
aux.o: nopt.h
|
1987-07-07 16:31:16 +00:00
|
|
|
pseudo.d: nopt.h makefuns.awk
|
1987-07-09 09:02:41 +00:00
|
|
|
dfa.o: nopt.h trans.h dfadummy
|
1987-02-06 14:13:22 +00:00
|
|
|
trans.o: nopt.h dfadummy
|
1987-07-07 16:31:16 +00:00
|
|
|
incalls.d: nopt.h makefuns.awk
|
1987-02-06 14:13:22 +00:00
|
|
|
incalls.r: dfadummy
|
1987-01-15 18:12:26 +00:00
|
|
|
|
|
|
|
parser.o: Lpars.h parser.h
|
|
|
|
Lpars.o: Lpars.h
|
|
|
|
syntax.o: syntax.l parser.h Lpars.h
|
|
|
|
outputdfa.o: parser.h Lpars.h
|
|
|
|
outcalls.o: parser.h
|
|
|
|
findworst.o: parser.h
|
|
|
|
initlex.o: parser.h
|