-CFLAGS:=-Wall -Wextra -Werror -std=c99 -pedantic-errors -D_XOPEN_SOURCE=700 -ggdb
-YFLAGS:=-d
-LFLAGS:=-t
+CFLAGS+=-Wall -Wextra -std=c99 -pedantic -ggdb
+YFLAGS+=-d --locations -v --defines=parse.h
+LFLAGS+=--header-file=scan.h
-OBJECTS:=scan.o parse.o ast.o util.o
+OBJECTS:=scan.o parse.o ast.o type.o util.o list.o sem.o genc.o \
+ sem/scc.o\
+ $(addprefix sem/hm, .o /gamma.o /subst.o /scheme.o)
-all: expr
-
-scan.c: scan.l y.tab.h
-y.tab.h: parse.c
+all: splc
+splc: $(OBJECTS)
+scan.c: scan.l parse.h
+parse.h: parse.c
expr.c: y.tab.h
-expr: $(OBJECTS)
+scan.o: CFLAGS+=-D_XOPEN_SOURCE=700
+
+.PHONY: test
+
+test:
+ CFLAGS="$(CFLAGS)" $(MAKE) -C test test
clean:
- $(RM) $(OBJECTS) y.tab.h scan.c parse.c expr
+ $(RM) $(OBJECTS) y.output parse.h scan.h scan.c parse.c expr a.c
+ $(MAKE) -C test clean