Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I023a29897332377c4e8c116ab4d0a67b6a6a6964
41 lines
730 B
Makefile
41 lines
730 B
Makefile
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
|