VERSION := 0.1.0 PREFIX ?= $(CURDIR)/out DESTDIR ?= LUA_PC ?= lua-5.3 CFLAGS := $(shell pkg-config --cflags $(LUA_PC) jack) -MMD -Iinclude -O3 LDFLAGS := $(shell pkg-config --libs $(LUA_PC) jack) -rdynamic -flto -ldl -Wl,--version-script=melisma.map SOURCES := $(wildcard src/*.c) OBJECTS := $(SOURCES:%.c=%.o) DEPENDS := $(SOURCES:%.c=%.d) melisma: $(OBJECTS) @ printf "CCLD\t%s\n" $(@) @ $(CC) -o $(@) $(^) $(LDFLAGS) -include $(DEPENDS) .c.o: @ printf "CC\t%s\n" $(@) @ $(CC) -o $(@) -c $(<) $(CFLAGS) install: melisma bash melisma.h.pc.sh $(PREFIX) $(VERSION) $(LUA_PC) >melisma.h.pc install -Dm755 melisma $(DESTDIR)$(PREFIX)/bin/melisma install -Dm644 include/melisma.h $(DESTDIR)$(PREFIX)/include/melisma.h install -Dm644 -t $(DESTDIR)$(PREFIX)/include/melisma include/melisma/*.h install -Dm644 melisma.h.pc $(DESTDIR)$(PREFIX)/share/pkgconfig/melisma.h.pc clean: rm -rf src/*.o src/*.d melisma.h.pc melisma debug: CFLAGS += -Wno-cpp -O0 -g debug: melisma sanitize: CFLAGS += -fsanitize=address sanitize: LDFLAGS += -fsanitize=address sanitize: debug .PHONY: install clean debug