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 -lcmark
|
||
|
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
|