wm/Makefile

33 lines
648 B
Makefile

CC=gcc
EXT=.c
FLAGS=-O0 -g -fsanitize=undefined -fsanitize=address
DEPFLAGS=-MD -MP
LIBS=$(shell pkg-config --libs xcb x11 xinerama)
EXEC_NAME=wm
OBJDIR=obj
SRCDIR=src
SRC=$(wildcard $(SRCDIR)/*$(EXT))
OBJS=$(patsubst %,$(OBJDIR)/%.o, $(basename $(notdir $(SRC))))
$(shell mkdir -p $(dir $(OBJS)) > /dev/null)
test: cmocka $(OBJS)
$(CC) $(FLAGS) $(LIBS) -lcmocka $(OBJS) -o test
cmocka:
$(eval OBJS=$(filter-out obj/main.o, $(OBJS)))
$(EXEC_NAME): $(OBJS)
$(CC) $(FLAGS) $(LIBS) $^ -o $(EXEC_NAME)
$(OBJDIR)/%.o: $(SRCDIR)/%$(EXT)
$(CC) $(FLAGS) $(DEPFLAGS) -c -o $@ $<
.PHONY: clean
clean:
rm -rf $(OBJDIR)
-include $(SRC:$(EXT)=.d)