PREFIX ?= /usr BINDIR ?= $(PREFIX)/bin CC ?= gcc CFLAGS ?= -O2 -Wall -Wextra -Wpedantic -std=gnu99 -I./include LDFLAGS ?= -Wl,-z,relro,-z,now -Wl,-z,noexecstack -Wl,-z,separate-code -pie LDLIBS ?= -lsystemd SRCDIR = src OBJDIR = obj SRCS = $(wildcard $(SRCDIR)/*.c) OBJS = $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SRCS)) BIN = sin .PHONY: all clean install test dirs all: dirs $(BIN) dirs: @mkdir -p $(OBJDIR) fmt: clang-format -i src/*.c $(BIN): $(OBJS) $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(OBJDIR)/%.o: $(SRCDIR)/%.c $(CC) $(CFLAGS) -c -o $@ $< install: $(BIN) install -d $(DESTDIR)$(BINDIR) install -m 0755 $(BIN) $(DESTDIR)$(BINDIR)/$(BIN) clean: -rm -rf $(OBJDIR) $(BIN) test: $(BIN) ./$(BIN) --version