codeb: init von codea
[uebersetzerbau-ss10.git] / codeb / Makefile
1 SHELL := bash
2 NAME := codeb
3 CFLAGS := -ansi -pedantic -D_GNU_SOURCE -g
4 OBJS := scanner.o parser.o symtable.o code.o chelper.o tree.o
5
6 all: $(NAME)
7
8 $(NAME): $(OBJS)
9         @echo "  LINK    $@"
10         @gcc -o $@ $(OBJS) -lfl
11
12 scanner.c: oxout.l
13         @echo "  FLEX    $<"
14         @flex -o$@ $<
15
16 #dirty deps ;)
17 %.o: %.c parser.h symtable.h chelper.h tree.h
18         @echo "  CC      $<"
19         @cp $< tmp.c
20         @gcc -c $(CFLAGS) $< #-Wall
21         @rm tmp.c
22
23 parser.c: oxout.y chelper.h tree.h
24         @echo "  YACC    $<"
25         @yacc -t -v -d $< -o $@
26
27 parser.h: parser.c
28
29 oxout.y oxout.l: parser.y scanner.lex
30         @echo "  OX      $^"
31         @ox $^
32
33 %.c: %.bfe chelper.h tree.h
34         @echo "  IBURG   $<"
35         @bfe < $< | iburg > $@
36
37 .PHONY: clean
38 clean:
39         rm -f $(NAME) $(OBJS) scanner.c parser.{h,c,output} oxout.{y,l,h} code.c
40
41 1test:
42         ~/test/scripts/modlvatest_codeb.sh 2>&1
43
44 lvatest:
45         /usr/ftp/pub/ublu/test/$(NAME)/test 2>&1
46
47 bench:
48         ~/test/scripts/bench.sh $(NAME)