]> git.armaanb.net Git - stagit.git/blob - Makefile
improve Makefile
[stagit.git] / Makefile
1 include config.mk
2
3 NAME = stagit
4 VERSION = 0.1
5 SRC = \
6         stagit.c\
7         stagit-index.c
8 COMPATSRC = \
9         strlcat.c\
10         strlcpy.c
11 BIN = \
12         stagit\
13         stagit-index
14 MAN1 = \
15         stagit.1\
16         stagit-index.1
17 DOC = \
18         LICENSE\
19         README\
20         TODO
21 HDR = compat.h
22
23 OBJ = ${SRC:.c=.o} ${COMPATOBJ}
24
25 all: $(BIN)
26
27 .c.o:
28         ${CC} -c ${CFLAGS} $<
29
30 dist: $(BIN)
31         rm -rf release/${VERSION}
32         mkdir -p release/${VERSION}
33         cp -f ${MAN1} ${HDR} ${SCRIPTS} ${SRC} ${COMPATSRC} ${DOC} \
34                 Makefile config.def.h config.mk \
35                 favicon.png logo.png style.css \
36                 example.sh \
37                 release/${VERSION}/
38         # make tarball
39         rm -f stagit-${VERSION}.tar.gz
40         (cd release/${VERSION}; \
41         tar -czf ../../stagit-${VERSION}.tar.gz .)
42
43 ${OBJ}: config.h config.mk ${HDR}
44
45 config.h:
46         @echo creating $@ from config.def.h
47         @cp config.def.h $@
48
49 stagit: stagit.o ${COMPATOBJ}
50         ${CC} -o $@ stagit.o ${COMPATOBJ} ${LDFLAGS}
51
52 stagit-index: stagit-index.o ${COMPATOBJ}
53         ${CC} -o $@ stagit-index.o ${COMPATOBJ} ${LDFLAGS}
54
55 clean:
56         rm -f ${BIN} ${OBJ}
57
58 install: all
59         # installing executable files.
60         mkdir -p ${DESTDIR}${PREFIX}/bin
61         cp -f ${BIN} ${SCRIPTS} ${DESTDIR}${PREFIX}/bin
62         for f in $(BIN) $(SCRIPTS); do chmod 755 ${DESTDIR}${PREFIX}/bin/$$f; done
63         # installing example files.
64         mkdir -p ${DESTDIR}${PREFIX}/share/${NAME}
65         cp -f style.css\
66                 favicon.png\
67                 logo.png\
68                 example.sh\
69                 README\
70                 ${DESTDIR}${PREFIX}/share/${NAME}
71         # installing manual pages.
72         mkdir -p ${DESTDIR}${MANPREFIX}/man1
73         cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1
74         for m in $(MAN1); do chmod 644 ${DESTDIR}${MANPREFIX}/man1/$$m; done
75
76 uninstall:
77         # removing executable files and scripts.
78         for f in $(BIN) $(SCRIPTS); do rm -f ${DESTDIR}${PREFIX}/bin/$$f; done
79         # removing example files.
80         rm -f \
81                 ${DESTDIR}${PREFIX}/share/${NAME}/style.css\
82                 ${DESTDIR}${PREFIX}/share/${NAME}/favicon.png\
83                 ${DESTDIR}${PREFIX}/share/${NAME}/logo.png\
84                 ${DESTDIR}${PREFIX}/share/${NAME}/example.sh\
85                 ${DESTDIR}${PREFIX}/share/${NAME}/README
86         -rmdir ${DESTDIR}${PREFIX}/share/${NAME}
87         # removing manual pages.
88         for m in $(MAN1); do rm -f ${DESTDIR}${MANPREFIX}/man1/$$m; done
89
90 .PHONY: all clean dist install uninstall