]> Pileus Git - ~andy/ct/blob - common.mk
Add timestamp checking
[~andy/ct] / common.mk
1 # Utilities
2 GCC      ?= gcc
3 LEX      ?= flex
4 YACC     ?= bison
5 CT       ?= ct
6
7 CFLAGS   ?= -Wall -Werror -g --std=c99
8
9 ifdef PKGS
10 CPPFLAGS += $(shell pkg-config --cflags $(PKGS))
11 LDFLAGS  += $(shell pkg-config --libs   $(PKGS))
12 endif
13
14 # Targets
15 all: $(PROG)
16
17 clean:
18         rm -f $(PROG) *.o *.a parse.h parse.c scan.c
19
20 # C Rules
21 $(PROG): $(SOURCES:%.c=%.o)
22         $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
23
24 %.o: %.c makefile
25         $(GCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
26
27 # Lex / Yacc rules
28 %.c: %.l parse.h makefile
29         $(LEX) -o $@ $<
30
31 %.c %.h: %.y makefile
32         $(YACC) -d -o $*.c $*.y
33
34 # CT Rules
35 %.c: %.ct makefile
36         $(CT) -o $@ $<
37
38 # Miscellaneous
39 .SECONDARY:
40
41 # vim: ft=make