]> git.armaanb.net Git - stagit.git/blob - Makefile
Use /usr/local/share
[stagit.git] / Makefile
1 .POSIX:
2
3 NAME = stagit
4 VERSION = 0.9.3
5
6 # paths
7 PREFIX = /usr/local
8 MANPREFIX = ${PREFIX}/man
9 DOCPREFIX = ${PREFIX}/share/doc/${NAME}
10 SHAREPREFIX = ${PREFIX}/share/${NAME}
11
12 LIBGIT_INC = -I/usr/local/include
13 LIBGIT_LIB = -L/usr/local/lib -lgit2
14
15 # use system flags.
16 STAGIT_CFLAGS = ${LIBGIT_INC} ${CFLAGS}
17 STAGIT_LDFLAGS = ${LIBGIT_LIB} ${LDFLAGS}
18 STAGIT_CPPFLAGS = -D_XOPEN_SOURCE=700 -D_DEFAULT_SOURCE -D_BSD_SOURCE
19
20 SRC = \
21         stagit.c\
22         stagit-index.c
23 COMPATSRC = \
24         reallocarray.c\
25         strlcat.c\
26         strlcpy.c
27 BIN = \
28         stagit\
29         stagit-index
30 MAN1 = \
31         stagit.1\
32         stagit-index.1
33 DOC = \
34         LICENSE\
35         README
36 HDR = compat.h
37
38 COMPATOBJ = \
39         reallocarray.o\
40         strlcat.o\
41         strlcpy.o
42
43 OBJ = ${SRC:.c=.o} ${COMPATOBJ}
44
45 all: ${BIN}
46
47 .o:
48         ${CC} -o $@ ${LDFLAGS}
49
50 .c.o:
51         ${CC} -o $@ -c $< ${STAGIT_CFLAGS} ${STAGIT_CPPFLAGS}
52
53 dist:
54         rm -rf ${NAME}-${VERSION}
55         mkdir -p ${NAME}-${VERSION}
56         cp -f ${MAN1} ${HDR} ${SRC} ${COMPATSRC} ${DOC} \
57                 Makefile favicon.png logo.png style.min.css syntax.css highlight.py \
58                 example_create.sh example_post-receive.sh \
59                 ${NAME}-${VERSION}
60         # make tarball
61         tar -cf - ${NAME}-${VERSION} | \
62                 gzip -c > ${NAME}-${VERSION}.tar.gz
63         rm -rf ${NAME}-${VERSION}
64
65 ${OBJ}: ${HDR}
66
67 stagit: stagit.o ${COMPATOBJ} requirements.txt
68         pip3 install -r requirements.txt
69         ${CC} -o $@ stagit.o ${COMPATOBJ} ${STAGIT_LDFLAGS}
70
71 stagit-index: stagit-index.o ${COMPATOBJ}
72         ${CC} -o $@ stagit-index.o ${COMPATOBJ} ${STAGIT_LDFLAGS}
73
74 clean:
75         rm -f ${BIN} ${OBJ} ${NAME}-${VERSION}.tar.gz
76
77 install: all
78         # installing executable files.
79         mkdir -p ${DESTDIR}${PREFIX}/bin
80         cp -f ${BIN} ${DESTDIR}${PREFIX}/bin
81         for f in ${BIN}; do chmod 755 ${DESTDIR}${PREFIX}/bin/$$f; done
82         # installing example files.
83         mkdir -p ${DESTDIR}${DOCPREFIX}
84         cp -f favicon.png\
85                 logo.png\
86                 example_create.sh\
87                 example_post-receive.sh\
88                 README\
89                 ${DESTDIR}${DOCPREFIX}
90         mkdir -p ${DESTDIR}${SHAREPREFIX}
91         cp -f style.min.css\
92                 syntax.css\
93                 highlight.py\
94                 ${DESTDIR}${SHAREPREFIX}
95         # installing manual pages.
96         mkdir -p ${DESTDIR}${MANPREFIX}/man1
97         cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1
98         for m in ${MAN1}; do chmod 644 ${DESTDIR}${MANPREFIX}/man1/$$m; done
99
100 uninstall:
101         # removing executable files.
102         for f in ${BIN}; do rm -f ${DESTDIR}${PREFIX}/bin/$$f; done
103         # removing example files.
104         rm -f \
105                 ${DESTDIR}${SHAREPREFIX}/style.min.css\
106                 ${DESTDIR}${SHAREPREFIX}/syntax.css\
107                 ${DESTDIR}${SHAREPREFIX}/highlight.py\
108                 ${DESTDIR}${DOCPREFIX}/favicon.png\
109                 ${DESTDIR}${DOCPREFIX}/logo.png\
110                 ${DESTDIR}${DOCPREFIX}/example_create.sh\
111                 ${DESTDIR}${DOCPREFIX}/example_post-receive.sh\
112                 ${DESTDIR}${DOCPREFIX}/README
113         -rmdir ${DESTDIR}${DOCPREFIX}
114         # removing manual pages.
115         for m in ${MAN1}; do rm -f ${DESTDIR}${MANPREFIX}/man1/$$m; done
116
117 .PHONY: all clean dist install uninstall