CC = gcc CFLAGS = -Wall -Wextra -std=c99 -D_POSIX_C_SOURCE=200809L -I. -Ilib -fsanitize=thread LDFLAGS = -ljack -lm -lncurses -lpthread all: jack-looper test_engine test_tui test_gui test_cli test_stress test_wav_io test_audio_routing jack-looper: main.o engine.o tui.o gui.o cli.o transport.o dispatcher.o lib/microui.o wav_io.o carla.o fs.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_engine: test_engine.o engine.o transport.o wav_io.o dispatcher.o carla.o fs.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_tui: test_tui.o engine.o transport.o wav_io.o dispatcher.o carla.o fs.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_gui: test_gui.o gui.o engine.o transport.o lib/microui.o wav_io.o dispatcher.o carla.o fs.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_cli: test_cli.o engine.o cli.o transport.o wav_io.o dispatcher.o carla.o fs.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_stress: test_stress.o engine.o wav_io.o dispatcher.o carla.o fs.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_wav_io: test_wav_io.o wav_io.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_audio_routing: test_audio_routing.o logging.o $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) test_stress.o: test_stress.c dispatcher.h engine.h wav_io.h $(CC) $(CFLAGS) -c -o $@ $< main.o: main.c engine.h tui.h transport.h $(CC) $(CFLAGS) -c -o $@ $< engine.o: engine.c engine.h transport.h wav_io.h carla.h $(CC) $(CFLAGS) -c -o $@ $< wav_io.o: wav_io.c wav_io.h $(CC) $(CFLAGS) -c -o $@ $< tui.o: tui.c tui.h engine.h transport.h carla.h $(CC) $(CFLAGS) -c -o $@ $< gui.o: gui.c gui.h engine.h transport.h lib/microui.h $(CC) $(CFLAGS) -c -o $@ $< lib/microui.o: lib/microui.c lib/microui.h $(CC) $(CFLAGS) -c -o $@ $< transport.o: transport.c transport.h $(CC) $(CFLAGS) -c -o $@ $< carla.o: carla.c carla.h $(CC) $(CFLAGS) -c -o $@ $< dispatcher.o: dispatcher.c dispatcher.h carla.h fs.h $(CC) $(CFLAGS) -c -o $@ $< fs.o: fs.c fs.h dispatcher.h wav_io.h $(CC) $(CFLAGS) -c -o $@ $< logging.o: logging.c logging.h $(CC) $(CFLAGS) -c -o $@ $< test_engine.o: test_engine.c engine.h transport.h dispatcher.h $(CC) $(CFLAGS) -c -o $@ $< test_tui.o: test_tui.c engine.h tui.h transport.h dispatcher.h $(CC) $(CFLAGS) -c -o $@ $< test_gui.o: test_gui.c gui.h engine.h transport.h $(CC) $(CFLAGS) -c -o $@ $< test_cli.o: test_cli.c engine.h transport.h dispatcher.h $(CC) $(CFLAGS) -c -o $@ $< test_wav_io.o: test_wav_io.c wav_io.h $(CC) $(CFLAGS) -c -o $@ $< test_audio_routing.o: test_audio_routing.c $(CC) $(CFLAGS) -c -o $@ $< cli.o: cli.c cli.h engine.h transport.h $(CC) $(CFLAGS) -c -o $@ $< .PHONY: all clean test clean: rm -f *.o lib/microui.o wav_io.o jack-looper test_engine test_tui test_gui test_cli test_stress test_wav_io test: test_engine test_tui test_cli test_wav_io test_audio_routing ./test_engine ./test_tui ./test_cli ./test_wav_io ./test_audio_routing