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