34 lines
683 B
Makefile
34 lines
683 B
Makefile
.PHONY: all clean build zip
|
|
|
|
CC := gcc
|
|
CFLAGS := -MD -Wall -g -lm -lX11 -I ./inc/
|
|
TARGETS := pm3-lvgl
|
|
EXES := $(patsubst %,bin/%,$(TARGETS))
|
|
SRCS := $(shell find src inc -type f -iname '*.c')
|
|
OBJS := $(patsubst src/%.c,obj/%.o,$(patsubst inc/%.c,obj/lib/%.o,$(SRCS)))
|
|
NO_BUILD := $(patsubst %,obj/%.o,$(TARGETS))
|
|
|
|
all: build
|
|
|
|
build: $(EXES)
|
|
|
|
$(EXES): bin/%: obj/%.o $(filter-out $(NO_BUILD), $(OBJS))
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
obj/%.o: src/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
obj/lib/%.o: inc/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
clean:
|
|
rm -rf bin
|
|
rm -rf obj
|
|
rm -rf .artifacts
|
|
rm -rf $(PROJ).zip
|
|
|
|
-include $(OBJS:.o=.d)
|