-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
47 lines (36 loc) · 1.26 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
CC = gcc
CFLAGS = -Wextra -Wshadow -Wunreachable-code -Wcast-align -Wuninitialized -finline-functions -finline-small-functions
LDFLAGS = -lxcb -lxcb-util -lxcb-keysyms -lxcb-ewmh -lxcb-icccm -lxcb-randr -lxcb-xinerama -lxcb-cursor
SRC_FILES = ./src/zwm.c ./src/logger.c ./src/tree.c ./src/config_parser.c ./src/queue.c
HEADER_FILES = ./src/logger.h ./src/tree.h ./src/type.h ./src/zwm.h ./src/config_parser.h ./src/helper.h ./src/queue.h
OBJ_FILES = $(SRC_FILES:.c=.o)
DEBUG_FLAGS = -g -D_DEBUG__=1
GDB_FLAGS = -ggdb3
LOCAL_TEST = -D__LTEST__=1
TARGET = zwm
PREFIX = /usr
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/share/man/man1
MANPAGE = zwm.1
$(TARGET): $(OBJ_FILES)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
%.o: %.c $(HEADER_FILES)
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(TARGET) $(OBJ_FILES)
install: $(TARGET)
mkdir -p "$(DESTDIR)$(BINDIR)"
cp -pf $(TARGET) "$(DESTDIR)$(BINDIR)"
mkdir -p "$(DESTDIR)$(MANDIR)"
cp -pf $(MANPAGE) "$(DESTDIR)$(MANDIR)"
uninstall:
rm -f "$(DESTDIR)$(BINDIR)/$(TARGET)"
rm -f "$(DESTDIR)$(MANDIR)/$(MANPAGE)"
debug: CFLAGS += $(DEBUG_FLAGS)
debug: clean $(TARGET)
for_gdb: CFLAGS += $(GDB_FLAGS)
for_gdb: clean $(TARGET)
test: CFLAGS += $(LOCAL_TEST)
test: clean $(TARGET)
all: clean $(TARGET)
.PHONY: all clean install uninstall debug