33 lines
648 B
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)
|