# This was stolen from here: https://avikdas.com/2019/12/16/makefiles-for-c-cpp-projects.html CFILES = $(wildcard src/*.c) OBJFILES = $(CFILES:.c=.o) TESTFILES = $(wildcard tests/*.c) TESTOUT = $(TESTFILES:.c=) OUT = yaip CFLAGS = -Wall LDLIBS = -lsqlite3 CC = gcc .PHONY: default default: $(OUT) .PHONY: run run: $(OUT) ./$(OUT) $(OUT): $(OBJFILES) $(CC) -o $@ $^ $(LDLIBS) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $^ tests/%.test: tests/%.test.c tests/munit/munit.c $(CC) $? -o $@ test-%: tests/%.test $< .PHONY: clean clean: rm -f $(OBJFILES) $(OUT) $(TESTOUT)