CC ?= gcc CFLAGS ?= -Wall -Wextra -g -Isrc LDFLAGS ?= -ljack -lm SRC = src/main.c src/looper.c src/channel.c src/midi.c src/queue.c src/pipe.c OBJ = $(SRC:.c=.o) looper: $(OBJ) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) src/%.o: src/%.c $(CC) $(CFLAGS) -c -o $@ $< integration: looper tests/integration.c $(CC) $(CFLAGS) -o integration_test tests/integration.c -ljack -lm test_status_fifo: looper tests/test_status_fifo.c $(CC) $(CFLAGS) -o test_status_fifo tests/test_status_fifo.c -ljack -lm test: integration test_status_fifo ./test_status_fifo ./integration_test .PHONY: clean integration test_status_fifo test clean: rm -f looper integration_test test_status_fifo src/*.o check: cppcheck --enable=all --error-exitcode=1 --suppress=missingIncludeSystem --suppress=normalCheckLevelMaxBranches src/*.c --library=posix # Optional: Format code using clang-format format: clang-format -i src/*.c install-hooks: git config core.hooksPath .githooks