change info in copyright
[awesome.git] / Makefile
blobf6a3acd2fb90145b6599934cf8f45f32e41129b0
1 # awesome
2 # © 2007 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
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 @cp -fR STYLE LICENSE AUTHORS Makefile README awesomerc config.mk \
65 awesome-client.1.txt awesome.1.txt awesomerc.1.txt ${SRCCLIENT} ${SRCCLIENT:.c=.h} ${SRC} ${SRC:.c=.h} \
66 common.h awesome-${VERSION} || true
67 @cp -R ${LAYOUTS} ${LAYOUTS:.c=.h} awesome-${VERSION}/layouts
68 @cp -R ${WIDGETS} ${WIDGETS:.c=.h} awesome-${VERSION}/layouts
69 @tar -cf awesome-${VERSION}.tar awesome-${VERSION}
70 @gzip -9 awesome-${VERSION}.tar
71 @rm -rf awesome-${VERSION}
73 strip: awesome awesome-client
74 strip awesome
75 strip awesome-client
77 install: strip install-unstrip
79 install-unstrip: awesome awesome-client man
80 @echo installing executable file to ${DESTDIR}${PREFIX}/bin
81 @install -d ${DESTDIR}${PREFIX}/bin
82 @install -m 755 awesome awesome-client ${DESTDIR}${PREFIX}/bin
83 @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
84 @install -d ${DESTDIR}${MANPREFIX}/man1
85 @install -m 644 ${DOCS:.txt=} ${DESTDIR}${MANPREFIX}/man1
87 uninstall:
88 @echo removing executable file from ${DESTDIR}${PREFIX}/bin
89 @rm ${DESTDIR}${PREFIX}/bin/awesome ${DESTDIR}${PREFIX}/bin/awesome-client
90 @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
91 @rm ${DESTDIR}${MANPREFIX}/man1/awesome.1 ${DESTDIR}${MANPREFIX}/man1/awesome-client.1 ${DESTDIR}${MANPREFIX}/man1/awesomerc.1
93 doc:
94 @echo generating documentation
95 @doxygen awesome.doxygen
97 .PHONY: all options clean dist install uninstall doc man