]> git.lizzy.rs Git - bspwm.git/blob - Makefile
Don't pass the same processor macro multiple times
[bspwm.git] / Makefile
1 VERSION = 0.3
2
3 CC      = gcc
4 LIBS    = -lm -lxcb -lxcb-keysyms -lxcb-icccm -lxcb-ewmh -lxcb-xinerama
5 CFLAGS  = -std=c99 -pedantic -Wall -Wextra -D_POSIX_C_SOURCE=2 -DVERSION=\"$(VERSION)\"
6 LDFLAGS = $(LIBS)
7
8 PREFIX    ?= /usr/local
9 BINPREFIX = $(PREFIX)/bin
10 MANPREFIX = $(PREFIX)/share/man
11
12 WM_SRC = bspwm.c events.c messages.c buttons.c ewmh.c settings.c helpers.c tree.c types.c rules.c window.c
13 CL_SRC = bspc.c helpers.c
14
15 WM_OBJ = $(WM_SRC:.c=.o)
16 CL_OBJ = $(CL_SRC:.c=.o)
17
18 all: CFLAGS += -Os
19 all: LDFLAGS += -s
20 all: options bspwm bspc
21
22 debug: CFLAGS += -O0 -g -DDEBUG
23 debug: options bspwm bspc
24
25 options:
26         @echo "bspwm build options:"
27         @echo "CC      = $(CC)"
28         @echo "CFLAGS  = $(CFLAGS)"
29         @echo "LDFLAGS = $(LDFLAGS)"
30         @echo "PREFIX  = $(PREFIX)"
31
32 .c.o:
33         @echo "CC $<"
34         @$(CC) $(CFLAGS) -c -o $@ $<
35
36 bspwm: $(WM_OBJ)
37         @echo CC -o $@
38         @$(CC) -o $@ $(WM_OBJ) $(LDFLAGS)
39
40 bspc: $(CL_OBJ)
41         @echo CC -o $@
42         @$(CC) -o $@ $(CL_OBJ) $(LDFLAGS)
43
44 clean:
45         @echo "cleaning"
46         @rm -f $(WM_OBJ) $(CL_OBJ) bsp{wm,c}
47
48 install:
49         @echo "installing executable files to $(DESTDIR)$(BINPREFIX)"
50         @install -D -m 755 bspwm $(DESTDIR)$(BINPREFIX)/bspwm
51         @install -D -m 755 bspc $(DESTDIR)$(BINPREFIX)/bspc
52         @echo "installing manual page to $(DESTDIR)$(MANPREFIX)/man1"
53         @install -D -m 644 bspwm.1 $(DESTDIR)$(MANPREFIX)/man1/bspwm.1
54
55 uninstall:
56         @echo "removing executable files from $(DESTDIR)$(BINPREFIX)"
57         @rm -f $(DESTDIR)$(BINPREFIX)/bsp{wm,c}
58         @echo "removing manual page from $(DESTDIR)$(MANPREFIX)/man1"
59         @rm -f $(DESTDIR)$(MANPREFIX)/man1/bspwm.1
60
61 .PHONY: all debug options clean install uninstall