ack/lang/occam/comp/Makefile
1987-03-18 09:50:46 +00:00

54 lines
1.2 KiB
Makefile

EMHOME = ../../..
MODLIB = $(EMHOME)/modules/lib
INCL = -I$(EMHOME)/modules/h
GFILES= occam.g
PRIMARY= occam.o Lpars.o keytab.o lex.yy.o code.o em.o
SECUNDARY= symtab.o expr.o builtin.o
TERTIARY= report.o
LLOPT=
LEXLIB=-ll
LIBRARY= $(MODLIB)/libem_mes.a $(MODLIB)/libemk.a \
$(MODLIB)/libprint.a $(MODLIB)/libstring.a \
$(MODLIB)/libsystem.a $(LEXLIB)
CFLAGS = -Dvoid=int -O $(INCL)
LDFLAGS = -i
# void = int, because some compilers don't understand void
HSRC = code.h em.h expr.h sizes.h symtab.h token.h
CSRC = builtin.c code.c em.c expr.c keytab.c report.c symtab.c
all: dummy
make oc
dummy: $(GFILES)
LLgen $(LLOPT) $(GFILES)
touch dummy
oc: $(PRIMARY) $(SECUNDARY) $(TERTIARY)
$(CC) $(LDFLAGS) -o oc $(PRIMARY) $(SECUNDARY) $(TERTIARY) $(LIBRARY)
lex.yy.c: lex.l
lex lex.l
install: all
rm -f $(EMHOME)/lib/em_occam
cp oc $(EMHOME)/lib/em_occam
cmp: all
-cmp oc $(EMHOME)/lib/em_occam
pr:
@pr Makefile $(HSRC) occam.g lex.l $(CSRC)
opr:
make pr | opr
clean:
rm -f lex.yy.c occam.c *.o oc dummy
$(PRIMARY): Lpars.h
occam.o keytab.o: token.h
occam.o $(SECUNDARY): symtab.h expr.h
$(PRIMARY) $(SECUNDARY): sizes.h
occam.o code.o: code.h
code.o em.o: em.h