#!/usr/bin/env -S gmake -f export MKDIR ?= mkdir -p libs := SDL2 z CFLAGS ?= -Wall -Wpedantic -g -Og cflags := -I lib/ -I . ${CFLAGS} ldflags := $(addprefix -l,${libs}) ${LDFLAGS} srcs := $(wildcard src/*.c) objs := $(addprefix out/${NS}/,$(notdir ${srcs:.c=.o})) deps := $(addprefix out/${NS}/,$(notdir $(patsubst %.c,%.d,$(wildcard src/*.c)))) .PHONY: all run clean lib all: out/${NS}/a.out run: out/${NS}/a.out ./$< clean: ${RM} -r out/${NS}/ # ${MAKE} -C lib clean #lib: # ${MAKE} -C $@ out/${NS}/: ${MKDIR} $@ out/: ${MKDIR} $@ out/${NS}/%.o: src/%.c out/${NS}/%.d | out/${NS}/ ${CC} -c -o $@ $< ${cflags} out/${NS}/%.d: src/%.c | out/${NS}/ ${CC} ${cflags} ${CPPFLAGS} -MM -MG -MF $@ -MT "${@:.d=.o} $@" $< out/${NS}/a.out: ${objs} | out/${NS}/ #lib ${CC} -o $@ $^ $(wildcard lib/out/*.o) ${cflags} ${ldflags} out/%: utl/%.c | out/${NS}/ ${CC} -g -Og -o $@ $^ # i have no idea how im supposed to handle CFLAGS include ${deps}