ag: paulchen init
[uebersetzerbau-ss10.git] / ag / Makefile
diff --git a/ag/Makefile b/ag/Makefile
new file mode 100644 (file)
index 0000000..236f3ae
--- /dev/null
@@ -0,0 +1,38 @@
+SHELL := bash
+NAME := ag
+CFLAGS := -ansi -pedantic -D_GNU_SOURCE
+OBJS := scanner.o parser.o symbol_table.o
+TARGETS := parser.y scanner.lex
+
+all: $(NAME)
+
+$(NAME): $(OBJS)
+       @echo "  LINK    $<"
+       @gcc -o $@ $(OBJS) -lfl
+
+scanner.c: oxout.l
+       @echo "  FLEX    $<"
+       @flex -o$@ $<
+
+%.o: %.c parser.h symbol_table.h
+       @echo "  CC      $<"
+       @gcc -c $(CFLAGS) $< #-Wall
+
+parser.c: oxout.y
+       @echo "  YACC    $<"
+       @yacc -t -v -d $< -o $@
+
+parser.h: parser.c
+
+oxout.y oxout.l: $(TARGETS)
+       @echo "  OX      $(TARGETS)"
+       @ox parser.y scanner.lex
+
+.PHONY: clean
+clean:
+       rm -f $(NAME) $(OBJS) scanner.c parser.{h,c,output} oxout.{y,l}
+
+1test: 2test
+
+2test:
+       /usr/ftp/pub/ublu/test/$(NAME)/test 2>&1