gmqcc/Makefile
2015-01-13 21:27:36 -05:00

44 lines
851 B
Makefile

CC ?= clang
CFLAGS = -MD -std=gnu99 -Wall -Wextra -pedantic-errors -g3
LDFLAGS = -lm
CSRCS = ast.c code.c conout.c fold.c ftepp.c intrin.c ir.c lexer.c main.c opts.c parser.c stat.c utf8.c util.c
TSRCS = conout.c opts.c stat.c test.c util.c
VSRCS = exec.c stat.c util.c
COBJS = $(CSRCS:.c=.o)
TOBJS = $(TSRCS:.c=.o)
VOBJS = $(VSRCS:.c=.o)
CDEPS = $(CSRCS:.c=.d)
TDEPS = $(TSRCS:.c=.d)
VDEPS = $(VSRCS:.c=.d)
CBIN = gmqcc
TBIN = testsuite
VBIN = qcvm
all: $(CBIN) $(TBIN) $(VBIN)
$(CBIN): $(COBJS)
$(CC) $(COBJS) $(LDFLAGS) -o $@
$(TBIN): $(TOBJS)
$(CC) $(TOBJS) $(LDFLAGS) -o $@
$(VBIN): $(VOBJS)
$(CC) $(VOBJS) $(LDFLAGS) -o $@
.c.o:
$(CC) -c $(CFLAGS) $< -o $@
test: $(CBIN) $(TBIN) $(VBIN)
@./$(TBIN)
clean:
rm -f *.d
rm -f $(COBJS) $(CDEPS) $(CBIN)
rm -f $(TOBJS) $(TDEPS) $(TBIN)
rm -f $(VOBJS) $(VDEPS) $(VBIN)
-include *.d