#!/usr/bin/env -S gmake -f # if need be, set these variables to whatever you need them to be MKDIR ?= mkdir -p EXTENSION ?= out CFLAGS ?= -Wall -Wpedantic -Wextra -g -Og CXXFLAGS ?= -Wall -Wpedantic -Wextra -g -Og LDFLAGS ?= NAME := suwi libs := m portaudio SDL3 includes := src/ cflags := $(addprefix -I,${includes}) ${CFLAGS} cxxflags := $(addprefix -I,${includes}) ${CXXFLAGS} ldflags := $(addprefix -l,${libs}) ${LDFLAGS} LD := ${CXX} ns := out/${NS} csrcs := $(wildcard src/*.c) cxxsrcs := $(wildcard src/*.c++) objs := ${csrcs:src/%.c=${ns}/%.o} ${cxxsrcs:src/%.c++=${ns}/%.o} deps := $(wildcard out/*.d) .PHONY: all res bin run clean all: res bin bin: ${ns}/${NAME}.${EXTENSION} run: ${ns}/${NAME}.${EXTENSION} $< clean: ${RM} -r ${ns}/ ${ns}/${NAME}.${EXTENSION}: ${objs} ${LD} ${ldflags} -o $@ $^ ${ns}/%.o: src/%.c | ${ns}/ ${CC} ${cflags} -c -o $@ -MMD -MP -MF ${@:.o=.d} $< ${ns}/%.o: src/%.c++ | ${ns}/ ${CXX} ${cxxflags} -c -o $@ -MMD -MP -MF ${@:.o=.d} $< %/: @${MKDIR} $@ #include assets.mk ifeq ($(filter clean mostlyclean,${MAKECMDGOALS}),) include ${deps} endif