CC?=cc LIBS:=`pkg-config --libs xcb xcb-xkb cairo pangocairo xkbcommon xkbcommon-x11` -lm CFLAGS:=$(CFLAGS) -pipe -Wall -Wextra -Wshadow -std=gnu99 -pedantic `pkg-config --cflags xcb xcb-xkb cairo pangocairo xkbcommon xkbcommon-x11` BUILD=build OBJ=$(BUILD) BINDIR=$(BUILD) SRC=src BIN=$(BINDIR)/main SRCS=$(wildcard $(SRC)/*.c) OBJS=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SRCS)) DEPS=$(OBJS:%.o=%.d) all: CFLAGS+=-Og -ggdb all: $(BUILD) $(BIN) release: CFLAGS+=-O2 -flto=auto -DNDEBUG -ggdb release: clean $(BUILD) $(BIN) $(BIN): $(OBJS) $(CC) $(CFLAGS) $(LIBS) $(OBJS) -o $@ -include $(DEPS) $(OBJ)/%.o: $(SRC)/%.c $(CC) $(CFLAGS) -MMD -c $< -o $@ $(BUILD): mkdir -p $(BUILD) clean: $(RM) $(BUILD)/* compile_flags.txt: echo "$(CFLAGS)" | tr " " "\n" > compile_flags.txt .PHONY: all release clean