TARGET=click FCGI_TARGET=click-fcgi default: $(TARGET) $(FCGI_TARGET) SRCS= \ MainLoop.cpp \ main.cpp \ MIDI.cpp \ PCM.cpp \ config.cpp \ UI.cpp \ Timer.cpp \ debug.cpp \ cpuload.cpp \ log.cpp \ NoteClick.cpp \ ClockClick.cpp \ InternalClick.cpp \ BPMDetect.cpp \ Touchpad.cpp \ PIDFile.cpp \ Temperature.cpp \ StatusLED.cpp \ HEADERS=$(SRCS:.cpp=.h) OBJS=$(SRCS:.cpp=.o) FCGI_SRCS=\ click-fcgi.cpp \ config.cpp \ log.cpp \ debug.cpp \ FCGI_OBJS=$(FCGI_SRCS:.cpp=.o) CXX=clang++ ifeq ($(CXXFLAGS),) CXXFLAGS=-O2 -g endif CXXFLAGS+=-std=c++20 -Wall -Wpedantic # workaround for Debian dh_dwz: CXXFLAGS+=-gdwarf-4 CXXFLAGS+=-I/usr/include/libevdev-1.0 CXXLIBS=$(shell pkg-config --libs alsa) -lreichwein -lfmt -lasound -levdev -lfcgi $(TARGET): $(OBJS) $(CXX) $^ -o $@ $(CXXLIBS) $(FCGI_TARGET): $(FCGI_OBJS) $(CXX) $^ -o $@ $(CXXLIBS) %.o: %.cpp $(CXX) $(CXXFLAGS) -o $@ -c $< run-fcgi: spawn-fcgi -a 127.0.0.1 -p 9090 -n -- ./click-fcgi install: mkdir -p $(DESTDIR)/usr/bin cp $(TARGET) $(DESTDIR)/usr/bin mkdir -p $(DESTDIR)/usr/lib/click/media cp media/click.s16le $(DESTDIR)/usr/lib/click/media mkdir -p $(DESTDIR)/usr/lib/click cp $(FCGI_TARGET) $(DESTDIR)/usr/lib/click cp -r html $(DESTDIR)/usr/lib/click mkdir -p $(DESTDIR)/etc/nginx/sites-available cp debian/nginx-sites-available $(DESTDIR)/etc/nginx/sites-available/click clean: rm -f $(TARGET) $(FCGI_TARGET) $(OBJS) $(FCGI_OBJS) sound: ffmpeg -i media/click.wav -f s16le media/click.s16le