JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
added gmake compliance
[dwm.git] / Makefile
1 # dwm - dynamic window manager
2 #   (C)opyright MMVI Anselm R. Garbe
3
4 include config.mk
5
6 SRC = client.c draw.c event.c main.c tag.c util.c
7 OBJ = ${SRC:.c=.o}
8 CONFIG ?= config.default.h
9
10 all: options dwm
11         @echo finished
12
13 options:
14         @echo dwm build options:
15         @echo "CFLAGS   = ${CFLAGS}"
16         @echo "LDFLAGS  = ${LDFLAGS}"
17         @echo "CC       = ${CC}"
18
19 .c.o:
20         @echo CC $<
21         @${CC} -c ${CFLAGS} $<
22
23 ${OBJ}: dwm.h config.h
24
25 config.h: ${CONFIG}
26         @echo creating $@ from ${CONFIG}
27         @cp ${CONFIG} $@
28
29 dwm: ${OBJ}
30         @echo LD $@
31         @${CC} -o $@ ${OBJ} ${LDFLAGS}
32
33 clean:
34         @echo cleaning
35         @rm -f dwm ${OBJ} config.h dwm-${VERSION}.tar.gz
36
37 dist: clean
38         @echo creating dist tarball
39         @mkdir -p dwm-${VERSION}
40         @cp -R LICENSE Makefile README config.*.h config.mk \
41                 dwm.1 dwm.h ${SRC} dwm-${VERSION}
42         @tar -cf dwm-${VERSION}.tar dwm-${VERSION}
43         @gzip dwm-${VERSION}.tar
44         @rm -rf dwm-${VERSION}
45
46 install: all
47         @echo installing executable file to ${DESTDIR}${PREFIX}/bin
48         @mkdir -p ${DESTDIR}${PREFIX}/bin
49         @cp -f dwm ${DESTDIR}${PREFIX}/bin
50         @chmod 755 ${DESTDIR}${PREFIX}/bin/dwm
51         @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
52         @mkdir -p ${DESTDIR}${MANPREFIX}/man1
53         @cp -f dwm.1 ${DESTDIR}${MANPREFIX}/man1
54         @chmod 644 ${DESTDIR}${MANPREFIX}/man1/dwm.1
55
56 uninstall:
57         @echo removing executable file from ${DESTDIR}${PREFIX}/bin
58         @rm -f ${DESTDIR}${PREFIX}/bin/dwm
59         @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
60         @rm -f ${DESTDIR}${MANPREFIX}/man1/dwm.1
61
62 .PHONY: all options clean dist install uninstall