fix widget and icons layouts installation
[awesome.git] / Makefile
blob8e683c6a16c7f0384e209187cab0ebeb6b9e649f
1 # awesome
2 # © 2007-2008 Julien Danjou <julien@danjou.info>
4 include config.mk
6 SRC = focus.c client.c draw.c event.c layout.c awesome.c tag.c util.c xutil.c config.c screen.c statusbar.c uicb.c window.c rules.c mouse.c awesome-client-common.c widget.c ewmh.c
7 OBJ = ${SRC:.c=.o} ${LAYOUTS:.c=.o} ${WIDGETS:.c=.o}
8 DOCS = awesome.1.txt awesome-client.1.txt awesomerc.1.txt
10 SRCCLIENT = awesome-client.c awesome-client-common.c util.c
11 OBJCLIENT = ${SRCCLIENT:.c=.o}
13 all: options awesome awesome-client
15 options:
16 @echo awesome build options:
17 @echo "LAYOUTS = ${LAYOUTS}"
18 @echo "WIDGETS = ${WIDGETS}"
19 @echo "CFLAGS = ${CFLAGS}"
20 @echo "LDFLAGS = ${LDFLAGS}"
21 @echo "CC = ${CC}"
23 .c.o:
24 @echo -e "\t(CC) $<"
25 @${CC} -c ${CFLAGS} $< -o $@
27 ${OBJ}: awesome.h config.mk
29 ${OBJCLIENT}: config.mk
31 man: ${DOCS}
32 asciidoc -d manpage -b docbook awesome.1.txt
33 asciidoc -d manpage -b docbook awesome-client.1.txt
34 asciidoc -d manpage -b docbook awesomerc.1.txt
35 xmlto man awesome.1.xml
36 xmlto man awesome-client.1.xml
37 xmlto man awesomerc.1.xml
39 awesome-client: ${OBJCLIENT}
40 @echo -e "\t(CC) ${OBJCLIENT} -o $@"
41 @${CC} -o $@ ${OBJCLIENT} ${CLIENTLDFLAGS}
43 defconfig.h: awesomerc
44 @echo generating defconfig.h from awesomerc
45 @echo "#define AWESOME_DEFAULT_CONFIG \\" > defconfig.h
46 @echo -n "\"" >> defconfig.h
47 @sed 's,\\,\\\\,g;s/$$/ \\/;s/"/\\"/g' awesomerc >> defconfig.h
48 @echo "\"" >> defconfig.h
50 awesome: defconfig.h ${OBJ}
51 @echo -e "\t(CC) ${OBJ} -o $@"
52 @${CC} -o $@ ${OBJ} ${LDFLAGS}
54 clean:
55 @echo cleaning
56 @rm -f awesome awesome-client defconfig.h ${DOCS:.txt=} ${DOCS:.txt=.xml} ${OBJCLIENT} ${OBJ} awesome-${VERSION}.tar.gz
57 @rm -rf doc
59 dist: clean
60 @echo creating dist tarball
61 @mkdir awesome-${VERSION}
62 @mkdir awesome-${VERSION}/layouts
63 @mkdir awesome-${VERSION}/widgets
64 @mkdir awesome-${VERSION}/icons
65 @mkdir awesome-${VERSION}/icons/layouts
66 @cp -fR STYLE LICENSE AUTHORS Makefile README awesomerc config.mk \
67 awesome-client.1.txt awesome.1.txt awesomerc.1.txt ${SRCCLIENT} ${SRCCLIENT:.c=.h} ${SRC} ${SRC:.c=.h} \
68 awesome-${VERSION} || true
69 @cp -R ${LAYOUTS} ${LAYOUTS:.c=.h} awesome-${VERSION}/layouts
70 @cp -R ${WIDGETS} awesome-${VERSION}/widgets
71 @cp -R icons/layouts/* awesome-${VERSION}/icons/layouts
72 @tar -cf awesome-${VERSION}.tar awesome-${VERSION}
73 @gzip -9 awesome-${VERSION}.tar
74 @rm -rf awesome-${VERSION}
76 strip: awesome awesome-client
77 strip awesome
78 strip awesome-client
80 install: strip install-unstrip
82 install-unstrip: awesome awesome-client man
83 @echo installing executable file to ${DESTDIR}${PREFIX}/bin
84 @install -d ${DESTDIR}${PREFIX}/bin
85 @install -m 755 awesome awesome-client ${DESTDIR}${PREFIX}/bin
86 @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
87 @install -d ${DESTDIR}${MANPREFIX}/man1
88 @install -m 644 ${DOCS:.txt=} ${DESTDIR}${MANPREFIX}/man1
89 @echo installing shared data to ${DESTDIR}${PREFIX}/share
90 @install -d ${DESTDIR}${PREFIX}/share/awesome/icons/layouts
91 @install icons/layouts/* ${DESTDIR}${PREFIX}/share/awesome/icons/layouts/
93 uninstall:
94 @echo removing executable file from ${DESTDIR}${PREFIX}/bin
95 @rm ${DESTDIR}${PREFIX}/bin/awesome ${DESTDIR}${PREFIX}/bin/awesome-client
96 @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
97 @rm ${DESTDIR}${MANPREFIX}/man1/awesome.1 ${DESTDIR}${MANPREFIX}/man1/awesome-client.1 ${DESTDIR}${MANPREFIX}/man1/awesomerc.1
98 @echo removing shared data from ${DESTDIR}${PREFIX}/share
99 @rm -rf ${DESTDIR}${PREFIX}/share/awesome
101 doc:
102 @echo generating documentation
103 @doxygen awesome.doxygen
105 .PHONY: all options clean dist install uninstall doc man