Makefile (1153B)
1 .POSIX: 2 3 BIN := dwmblocks 4 BUILD_DIR := build 5 SRC_DIR := src 6 INC_DIR := include 7 8 DEBUG := 0 9 VERBOSE := 0 10 LIBS := xcb-atom 11 12 PREFIX := /usr/local 13 CFLAGS := -Ofast -I. -I$(INC_DIR) -std=c99 14 CFLAGS += -DBINARY=\"$(BIN)\" -D_POSIX_C_SOURCE=200809L 15 CFLAGS += -Wall -Wpedantic -Wextra -Wswitch-enum 16 CFLAGS += $(shell pkg-config --cflags $(LIBS)) 17 LDLIBS := $(shell pkg-config --libs $(LIBS)) 18 19 SRCS := $(wildcard $(SRC_DIR)/*.c) 20 OBJS := $(subst $(SRC_DIR)/,$(BUILD_DIR)/,$(SRCS:.c=.o)) 21 22 INSTALL_DIR := $(DESTDIR)$(PREFIX)/bin 23 24 # Prettify output 25 PRINTF := @printf "%-8s %s\n" 26 ifeq ($(VERBOSE), 0) 27 Q := @ 28 endif 29 30 ifeq ($(DEBUG), 1) 31 CFLAGS += -g 32 endif 33 34 all: $(BUILD_DIR)/$(BIN) 35 36 $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c config.h 37 $Qmkdir -p $(@D) 38 $(PRINTF) "CC" $@ 39 $Q$(COMPILE.c) -o $@ $< 40 41 $(BUILD_DIR)/$(BIN): $(OBJS) 42 $(PRINTF) "LD" $@ 43 $Q$(LINK.o) $^ $(LDLIBS) -o $@ 44 45 clean: 46 $(PRINTF) "CLEAN" $(BUILD_DIR) 47 $Q$(RM) $(BUILD_DIR)/* 48 49 install: $(BUILD_DIR)/$(BIN) 50 $(PRINTF) "INSTALL" $(INSTALL_DIR)/$(BIN) 51 $Qinstall -D -m 755 $< $(INSTALL_DIR)/$(BIN) 52 53 uninstall: 54 $(PRINTF) "RM" $(INSTALL_DIR)/$(BIN) 55 $Q$(RM) $(INSTALL_DIR)/$(BIN) 56 57 .PHONY: all clean install uninstall