VERSION != git describe --tags 2>/dev/null || echo "0.1" PROG := hktool MANPAGE := $(PROG).1 WARNINGS := -Wall -Wcast-align -Wcast-qual -Wextra -Wpedantic -Wformat=2 \ -Winit-self -Wmissing-prototypes -Wpointer-arith -Wshadow \ -Wstrict-prototypes -Wsuggest-attribute=format \ -Wsuggest-attribute=noreturn PKG_CONFIG ?= pkg-config LIBS := libusb-1.0 CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_POSIX_C_SOURCE=200112L -DDATADIR=\"$(datarootdir)/$(PROG)\" CFLAGS = -std=c11 -O2 -flto $(WARNINGS) -MMD -MP $(shell $(PKG_CONFIG) --cflags $(LIBS)) LDFLAGS = -Wl,--as-needed -O2 -flto LDLIBS = $(shell $(PKG_CONFIG) --libs $(LIBS)) OBJ := hktool.o halfkay.o params.o util.o eprintf.o prefix ?= /usr/local exec_prefix ?= $(prefix) bindir = $(exec_prefix)/bin datarootdir = $(prefix)/share mandir = $(datarootdir)/man man1dir = $(mandir)/man1 all: $(PROG) $(MANPAGE) $(PROG): $(OBJ) %: %.in $(CPP) $(CPPFLAGS) $< > $@ debug: all debug: CFLAGS += -ggdb -Og -Werror debug: LDFLAGS += -ggdb -Og install: $(PROG) $(MANPAGE) install -Dm755 -s $(PROG) -t $(DESTDIR)$(bindir) install -Dm644 ./data/* -t $(DESTDIR)$(datarootdir)/$(PROG) install -Dm644 $(MANPAGE) -t $(DESTDIR)$(man1dir) clean: $(RM) $(OBJ) $(OBJ:.o=.d) $(PROG) $(MANPAGE) -include $(OBJ:.o=.d) .PHONY: all debug install clean