CXX = g++
CXXFLAGS = -std=c++23 -Wall -g -fno-omit-frame-pointer -gdwarf-4 -Og -Wnarrowing -DLIBREMIDI_ALSA=1 -DLIBREMIDI_HEADER_ONLY=1
CXXINC = -isysteminclude

LDLIBS = -lraylib -lasound -llibremidi -pthread 
LDFLAGS = -Llib -L/usr/lib -L/usr/local/lib

hdr_files = ${wildcard src/*.h}

src_files = ${wildcard src/*.cpp}
#src_files += ${wildcard include/libremidi/*.cpp}

all: viseq
	
viseq: $(src_files) $(hdr_files)
	mkdir -p build
	$(CXX) ${wildcard build/*.o} -o viseq $(LDFLAGS) $(LDLIBS)
	
$(src_files): %.cpp : %_src
	$(CXX) -c $@ -o build/$(*F).o $(CXXFLAGS) $(CXXINC)

$(hdr_files): %.h : %_hdr
	$(NOECHO) $(NOOP)

%_src:
	$(NOECHO) $(NOOP)

%_hdr:
	$(NOECHO) $(NOOP)

clean:
	rm -f build/*
	rm -f viseq
