summaryrefslogtreecommitdiff
path: root/dwmblocks/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'dwmblocks/Makefile')
-rw-r--r--dwmblocks/Makefile70
1 files changed, 47 insertions, 23 deletions
diff --git a/dwmblocks/Makefile b/dwmblocks/Makefile
index 159a71a..3e07f93 100644
--- a/dwmblocks/Makefile
+++ b/dwmblocks/Makefile
@@ -1,36 +1,60 @@
-PREFIX := /usr/local
-CC := cc
-CFLAGS := -pedantic -Wall -Wno-deprecated-declarations -Os
-LDFLAGS := -lX11
+.POSIX:
-# FreeBSD (uncomment)
-#LDFLAGS += -L/usr/local/lib -I/usr/local/include
-# # OpenBSD (uncomment)
-#LDFLAGS += -L/usr/X11R6/lib -I/usr/X11R6/include
+BIN := dwmblocks
+BUILD_DIR := build
+SRC_DIR := src
+INC_DIR := include
-all: options dwmblocks
+DEBUG := 0
+VERBOSE := 0
+LIBS := xcb-atom
-options:
- @echo dwmblocks build options:
- @echo "CFLAGS = ${CFLAGS}"
- @echo "LDFLAGS = ${LDFLAGS}"
- @echo "CC = ${CC}"
+PREFIX := /usr/local
+CFLAGS := -Ofast -I. -I$(INC_DIR) -std=c99
+CFLAGS += -DBINARY=\"$(BIN)\" -D_POSIX_C_SOURCE=200809L
+CFLAGS += -Wall -Wpedantic -Wextra -Wswitch-enum
+CFLAGS += $(shell pkg-config --cflags $(LIBS))
+LDLIBS := $(shell pkg-config --libs $(LIBS))
-dwmblocks: dwmblocks.c config.def.h config.h
- ${CC} -o dwmblocks dwmblocks.c ${CFLAGS} ${LDFLAGS}
+SRCS := $(wildcard $(SRC_DIR)/*.c)
+OBJS := $(subst $(SRC_DIR)/,$(BUILD_DIR)/,$(SRCS:.c=.o))
+
+INSTALL_DIR := $(DESTDIR)$(PREFIX)/bin
+
+# Prettify output
+PRINTF := @printf "%-8s %s\n"
+ifeq ($(VERBOSE), 0)
+ Q := @
+endif
+
+ifeq ($(DEBUG), 1)
+ CFLAGS += -g
+endif
+
+all: $(BUILD_DIR)/$(BIN)
+
+$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c config.def.h config.h
+ $Qmkdir -p $(@D)
+ $(PRINTF) "CC" $@
+ $Q$(COMPILE.c) -o $@ $<
+
+$(BUILD_DIR)/$(BIN): $(OBJS)
+ $(PRINTF) "LD" $@
+ $Q$(LINK.o) $^ $(LDLIBS) -o $@
config.h:
cp config.def.h $@
clean:
- rm -f *.o *.gch dwmblocks
+ $(PRINTF) "CLEAN" $(BUILD_DIR)
+ $Q$(RM) $(BUILD_DIR)/*
-install: dwmblocks
- mkdir -p ${DESTDIR}${PREFIX}/bin
- cp -f dwmblocks ${DESTDIR}${PREFIX}/bin
- chmod 755 ${DESTDIR}${PREFIX}/bin/dwmblocks
+install: $(BUILD_DIR)/$(BIN)
+ $(PRINTF) "INSTALL" $(INSTALL_DIR)/$(BIN)
+ $Qinstall -D -m 755 $< $(INSTALL_DIR)/$(BIN)
uninstall:
- rm -f ${DESTDIR}${PREFIX}/bin/dwmblocks
+ $(PRINTF) "RM" $(INSTALL_DIR)/$(BIN)
+ $Q$(RM) $(INSTALL_DIR)/$(BIN)
-.PHONY: all options clean install uninstall
+.PHONY: all clean install uninstall