ag: paulchen init
[uebersetzerbau-ss10.git] / ag / Makefile
1 SHELL := bash
2 NAME := ag
3 CFLAGS := -ansi -pedantic -D_GNU_SOURCE
4 OBJS := scanner.o parser.o symbol_table.o
5 TARGETS := parser.y scanner.lex
6
7 all: $(NAME)
8
9 $(NAME): $(OBJS)
10         @echo "  LINK    $<"
11         @gcc -o $@ $(OBJS) -lfl
12
13 scanner.c: oxout.l
14         @echo "  FLEX    $<"
15         @flex -o$@ $<
16
17 %.o: %.c parser.h symbol_table.h
18         @echo "  CC      $<"
19         @gcc -c $(CFLAGS) $< #-Wall
20
21 parser.c: oxout.y
22         @echo "  YACC    $<"
23         @yacc -t -v -d $< -o $@
24
25 parser.h: parser.c
26
27 oxout.y oxout.l: $(TARGETS)
28         @echo "  OX      $(TARGETS)"
29         @ox parser.y scanner.lex
30
31 .PHONY: clean
32 clean:
33         rm -f $(NAME) $(OBJS) scanner.c parser.{h,c,output} oxout.{y,l}
34
35 1test: 2test
36
37 2test:
38         /usr/ftp/pub/ublu/test/$(NAME)/test 2>&1