CC = gcc CFLAGS = -Wall -Wextra -O2 -Iinclude $(shell pkg-config --cflags libpulse) LDFLAGS = $(shell pkg-config --libs libpulse) -lrt -lpthread PULSE = src/pulse.c .PHONY: all clean serve blog test test-all all: tx rx chat bt carrier test: test/unit @./test/unit test-all: test/unit test/integration test/functional @echo "--- unit ---" @./test/unit @echo "--- integration ---" @./test/integration @echo "--- functional ---" @./test/functional test/unit: test/unit.c include/zebra.h include/modem.h test/test.h $(CC) $(CFLAGS) -o $@ test/unit.c test/integration: test/integration.c src/pulse.c include/zebra.h include/modem.h test/test.h $(CC) $(CFLAGS) -o $@ test/integration.c src/pulse.c $(LDFLAGS) test/functional: test/functional.c src/pulse.c include/zebra.h include/modem.h test/test.h $(CC) $(CFLAGS) -o $@ test/functional.c src/pulse.c $(LDFLAGS) tx: src/tx.c $(PULSE) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) rx: src/rx.c $(PULSE) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) chat: src/chat.c $(PULSE) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) bt: src/bt.c $(PULSE) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) carrier: src/carrier.c $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) blog: python3 blog/build.py serve: blog cd web && python3 -m http.server 8765 clean: rm -f tx rx chat bt carrier test/unit test/integration test/functional rm -rf web/blog/001-volume-modem web/blog/002-sse-chatroom web/blog/index.html