54 lines
1.1 KiB
Makefile
54 lines
1.1 KiB
Makefile
DEBUG=1
|
|
LLVM_SAN=0
|
|
|
|
ifeq ($(DEBUG),1)
|
|
DEBUG_CFLAGS=-g
|
|
else
|
|
DEBUG_CFLAGS=-D_NDEBUG
|
|
endif
|
|
|
|
ifeq ($(LLVM_SAN),1)
|
|
LLVM_SAN_FLAGS=-fsanitize=address,undefined
|
|
else
|
|
LLVM_SAN_FLAGS=
|
|
endif
|
|
|
|
CC=gcc
|
|
CFLAGS=$(DEBUG_CFLAGS) $(LLVM_SAN_FLAGS) -std=c11 -Wall -Wpedantic $\
|
|
-D_POSIX_C_SOURCE=199309L
|
|
LD=gcc
|
|
LDFLAGS=$(LLVM_SAN_FLAGS)
|
|
|
|
SRCS:=$(wildcard src/*.c)
|
|
OBJS:=$(SRCS:src/%.c=bin/%.o)
|
|
DEPS:=$(SRCS:src/%.c=bin/deps/%.d)
|
|
|
|
SRCS += bin/init_globals.c
|
|
OBJS += bin/init_globals.o
|
|
DEPS += bin/deps/init_globals.o
|
|
|
|
HEADERS=$(wildcard src/*.h)
|
|
SRCS_WITH_HEADERS=$(filter $(HEADERS:src/%.h=src/%.c),$(SRCS))
|
|
|
|
glisp: $(OBJS)
|
|
$(LD) $(LDFLAGS) -o $@ $^
|
|
|
|
bin/init_globals.c: $(filter-out bin/init_globals.c,$(SRCS_WITH_HEADERS)) src/gen-init-globals.awk
|
|
@mkdir -p bin/
|
|
awk -f src/gen-init-globals.awk $(filter-out src/gen-init-globals.awk,$^) >$@
|
|
|
|
bin/%.o: src/%.c
|
|
@mkdir -p bin/deps
|
|
$(CC) $(CFLAGS) -c -MMD -MF $(<:src/%.c=bin/deps/%.d) -o $@ $<
|
|
|
|
bin/init_globals.o: bin/init_globals.c
|
|
@mkdir -p bin/deps
|
|
$(CC) $(CFLAGS) -Isrc/ -c -MMD -MF bin/deps/init_globals.d -o $@ $<
|
|
|
|
clean:
|
|
rm -rf glisp bin/
|
|
|
|
.PHONY: clean
|
|
|
|
-include $(DEPS)
|