Linker flags after objects
[xonotic/gmqcc.git] / Makefile
1 CC ?= clang
2 CFLAGS = -MD -Wall -Wextra -pedantic-errors
3 LDFLAGS = -lm
4
5 CSRCS = ansi.c ast.c code.c conout.c fold.c fs.c ftepp.c hash.c intrin.c ir.c lexer.c main.c opts.c parser.c stat.c utf8.c util.c
6 TSRCS = ansi.c conout.c fs.c hash.c opts.c stat.c test.c util.c
7
8 COBJS = $(CSRCS:.c=.o)
9 TOBJS = $(TSRCS:.c=.o)
10
11 CDEPS = $(CSRCS:.c=.d)
12 TDEPS = $(TSRCS:.c=.d)
13
14 CBIN = gmqcc
15 TBIN = testsuite
16
17 all: $(CBIN) $(TBIN)
18
19 $(CBIN): $(COBJS)
20         $(CC) $(COBJS) $(LDFLAGS) -o $@
21
22 $(TBIN): $(TOBJS)
23         $(CC) $(TOBJS) $(LDFLAGS) -o $@
24
25 .c.o:
26         $(CC) -c $(CFLAGS) $< -o $@
27
28 test: $(CBIN) $(TBIN)
29         @./$(TBIN)
30
31 clean:
32         rm -f *.d
33         rm -f $(COBJS) $(CDEPS) $(CBIN)
34         rm -f $(TOBJS) $(TDEPS) $(TBIN)