38 lines
861 B
Makefile
38 lines
861 B
Makefile
CC=gcc
|
|
CFLAGS=-g -std=c11 -Wall -Wpedantic
|
|
LD=gcc
|
|
LDFLAGS=-g
|
|
|
|
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)
|