bugfixes, parse initializers
[cparser] / Makefile
1 GOAL = cparser
2
3 CFLAGS += -Wall -W -Werror -std=c99 -pedantic
4 CFLAGS += -DHAVE_CONFIG_H
5 CFLAGS += -I .
6 CFLAGS += -O0 -g3
7 #CFLAGS += -O3 -march=pentium4 -fomit-frame-pointer -DNDEBUG
8
9 LFLAGS =
10
11 SOURCES := \
12         adt/array.c \
13         adt/hashset.c \
14         adt/strset.c \
15         adt/xmalloc.c \
16         ast.c \
17         lexer.c \
18         main.c \
19         parser.c \
20         symbol_table.c \
21         token.c \
22         type.c \
23         type_hash.c \
24         write_fluffy.c
25
26 OBJECTS = $(SOURCES:%.c=build/%.o)
27
28 Q = @
29
30 .PHONY : all clean dirs
31
32 all: $(GOAL)
33
34 ifeq ($(findstring $(MAKECMDGOALS), clean depend),)
35 -include .depend
36 endif
37
38 .depend: $(SOURCES)
39         @echo "===> DEPEND"
40         @rm -f $@ && touch $@ && makedepend -p "$@ build/" -Y -f $@ -- $(CFLAGS) -- $(SOURCES) 2> /dev/null && rm $@.bak
41
42 $(GOAL): build/adt $(OBJECTS)
43         @echo "===> LD $@"
44         $(Q)$(CC) -rdynamic $(OBJECTS) $(LFLAGS) -o $(GOAL)
45
46 build/adt:
47         @echo "===> MKDIR $@"
48         $(Q)mkdir -p $@
49
50 build/%.o: %.c
51         @echo '===> CC $<'
52         $(Q)$(CC) $(CFLAGS) -c $< -o $@
53
54 clean:
55         @echo '===> CLEAN'
56         $(Q)rm -rf build $(GOAL) .depend