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