36 lines
701 B
Makefile
36 lines
701 B
Makefile
# dirs
|
|
DIRS = $(shell find src/* -type d)
|
|
DISTDIR = dist
|
|
OUTDIRS = $(patsubst src/%,$(DISTDIR)/%,$(DIRS))
|
|
|
|
# sources
|
|
HSRCS = $(wildcard inc/*.h)
|
|
CSRCS = $(shell find -type f -name '*.c')
|
|
OBJS = $(patsubst ./src/%.c,./$(DISTDIR)/%.o,$(CSRCS))
|
|
|
|
# compiler flags
|
|
CFLAGS = -O3 -fstack-protector-strong -fcf-protection=full -fstack-clash-protection
|
|
LIBS = -lctorm -lcjson
|
|
INCLUDE = -I./inc
|
|
|
|
all: doc.elf
|
|
|
|
doc.elf: $(OBJS)
|
|
echo $(OBJS) $(OUTDIRS)
|
|
gcc $(CFLAGS) -o $@ $^ $(LIBS)
|
|
|
|
$(DISTDIR)/%.o: src/%.c
|
|
@mkdir -pv $(OUTDIRS)
|
|
gcc $(CFLAGS) $(INCLUDE) -c -o $@ $^ $(LIBS)
|
|
|
|
format:
|
|
clang-format -i -style=file $(CSRCS) $(HSRCS)
|
|
|
|
clean:
|
|
rm -rf $(DISTDIR)
|
|
|
|
run:
|
|
./doc.elf
|
|
|
|
.PHONY: format clean run
|