raven/Makefile

39 lines
816 B
Makefile

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 -DNDEBUG
all: $(BUILD) $(BIN)
release: CFLAGS+=-O2 -flto=auto -DNDEBUG
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