LIB = /u/ksos/ksos32/lib
CFLAGS = -O -DM2M2 -DSTRICT

OBJECTS = main.o module.o block.o type.o formalparam.o statement.o\
ctexpression.o ctterm.o expression.o term.o variable.o uconstant.o\
ident.o keyword.o symtab.o inseek.o output.o getopt.o Filbuf.o Flsbuf.o

m2m2: $(OBJECTS)
	$(CC) $(OBJECTS) -o $@

test: test01 test02 test03 test04 test05 test06 test07 test08 test09 test10
test: test11 test12 test13 test14 test15

test01: m2m2 tests/test01.m1 tests/test01.mod
	m2m2 tests/test01.m1 | cmp - tests/test01.mod

test02: m2m2 tests/test02.m1 tests/test02.mod
	m2m2 tests/test02.m1 | cmp - tests/test02.mod

test03: m2m2 tests/test03.m1 tests/test03.mod
	m2m2 tests/test03.m1 | cmp - tests/test03.mod

test04: m2m2 tests/test04.m1 tests/test04.mod
	m2m2 tests/test04.m1 | cmp - tests/test04.mod

test05: m2m2 tests/test05.m1 tests/test05.mod
	m2m2 tests/test05.m1 | cmp - tests/test05.mod

test06: m2m2 tests/test06.m1 tests/test06.mod
	m2m2 tests/test06.m1 | cmp - tests/test06.mod

test07: m2m2 tests/test07.m1 tests/test07.mod
	m2m2 tests/test07.m1 | cmp - tests/test07.mod

test08: m2m2 tests/test08.m1 tests/test08.mod
	m2m2 tests/test08.m1 | cmp - tests/test08.mod

test09: m2m2 tests/test09.m1 tests/test09.mod
	m2m2 tests/test09.m1 | cmp - tests/test09.mod

test10: m2m2 tests/test10.m1 tests/test10.mod
	m2m2 tests/test10.m1 | cmp - tests/test10.mod

test11: m2m2 tests/test11.m1 tests/test11.mod
	m2m2 tests/test11.m1 | cmp - tests/test11.mod

test12: m2m2 tests/test12.m1 tests/test12.mod
	m2m2 tests/test12.m1 | cmp - tests/test12.mod

test13: m2m2 tests/test13.m1 tests/test13.mod
	m2m2 tests/test13.m1 | cmp - tests/test13.mod

test14: m2m2 tests/test14.m1 tests/test14.mod
	m2m2 tests/test14.m1 | cmp - tests/test14.mod

test15: m2m2 tests/test15.m1 tests/test15.mod
	m2m2 tests/test15.m1 | cmp - tests/test15.mod

$(OBJECTS): /usr/include/stdio.h /usr/include/ctype.h parse.h
Flsbuf.o: /usr/include/sys/types.h /usr/include/sys/stat.h

$(LIB)/m2m2_idents: RCS/m2m2_idents,v
	co -q m2m2_idents
	mv m2m2_idents $(LIB)

Filbuf.c: RCS/Filbuf.c,v
	co -q Filbuf.c

Flsbuf.c: RCS/Flsbuf.c,v
	co -q Flsbuf.c

block.c: RCS/block.c,v
	co -q block.c

ctexpression.c: RCS/ctexpression.c,v
	co -q ctexpression.c

ctterm.c: RCS/ctterm.c,v
	co -q ctterm.c

expression.c: RCS/expression.c,v
	co -q expression.c

formalparam.c: RCS/formalparam.c,v
	co -q formalparam.c

getopt.c: RCS/getopt.c,v
	co -q getopt.c

ident.c: RCS/ident.c,v
	co -q ident.c

inseek.c: RCS/inseek.c,v
	co -q inseek.c

keyword.c: RCS/keyword.c,v
	co -q keyword.c

main.c: RCS/main.c,v
	co -q main.c

module.c: RCS/module.c,v
	co -q module.c

output.c: RCS/output.c,v
	co -q output.c

parse.h: RCS/parse.h,v
	co -q parse.h

statement.c: RCS/statement.c,v
	co -q statement.c

symtab.c: RCS/symtab.c,v
	co -q symtab.c

term.c: RCS/term.c,v
	co -q term.c

type.c: RCS/type.c,v
	co -q type.c

uconstant.c: RCS/uconstant.c,v
	co -q uconstant.c

variable.c: RCS/variable.c,v
	co -q variable.c
