Makefile (2588B)
1 .POSIX: 2 3 NAME = stagit 4 VERSION = 1.2 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 # Uncomment to enable workaround for older libgit2 which don't support this 20 # option. This workaround will be removed in the future *pinky promise*. 21 #STAGIT_CFLAGS += -DGIT_OPT_SET_OWNER_VALIDATION=-1 22 23 SRC = \ 24 stagit.c\ 25 stagit-index.c 26 COMPATSRC = \ 27 reallocarray.c\ 28 strlcat.c\ 29 strlcpy.c 30 BIN = \ 31 stagit\ 32 stagit-index 33 MAN1 = \ 34 stagit.1\ 35 stagit-index.1 36 DOC = \ 37 LICENSE\ 38 README 39 HDR = compat.h 40 41 COMPATOBJ = \ 42 reallocarray.o\ 43 strlcat.o\ 44 strlcpy.o 45 46 OBJ = ${SRC:.c=.o} ${COMPATOBJ} 47 48 all: ${BIN} 49 50 .o: 51 ${CC} -o $@ ${LDFLAGS} 52 53 .c.o: 54 ${CC} -o $@ -c $< ${STAGIT_CFLAGS} ${STAGIT_CPPFLAGS} 55 56 dist: 57 rm -rf ${NAME}-${VERSION} 58 mkdir -p ${NAME}-${VERSION} 59 cp -f ${MAN1} ${HDR} ${SRC} ${COMPATSRC} ${DOC} \ 60 Makefile logo.png style.css example_create.sh example_post-receive.sh \ 61 ${NAME}-${VERSION} 62 # make tarball 63 tar -cf - ${NAME}-${VERSION} | \ 64 gzip -c > ${NAME}-${VERSION}.tar.gz 65 rm -rf ${NAME}-${VERSION} 66 67 ${OBJ}: ${HDR} 68 69 stagit: stagit.o ${COMPATOBJ} 70 ${CC} -o $@ stagit.o ${COMPATOBJ} ${STAGIT_LDFLAGS} 71 72 stagit-index: stagit-index.o ${COMPATOBJ} 73 ${CC} -o $@ stagit-index.o ${COMPATOBJ} ${STAGIT_LDFLAGS} 74 75 clean: 76 rm -f ${BIN} ${OBJ} ${NAME}-${VERSION}.tar.gz 77 78 install: all 79 # installing executable files. 80 mkdir -p ${DESTDIR}${PREFIX}/bin 81 cp -f ${BIN} ${DESTDIR}${PREFIX}/bin 82 for f in ${BIN}; do chmod 755 ${DESTDIR}${PREFIX}/bin/$$f; done 83 # installing example files. 84 mkdir -p ${DESTDIR}${DOCPREFIX} 85 cp -f style.css\ 86 logo.png\ 87 example_create.sh\ 88 example_post-receive.sh\ 89 README\ 90 ${DESTDIR}${DOCPREFIX} 91 # installing manual pages. 92 mkdir -p ${DESTDIR}${MANPREFIX}/man1 93 cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1 94 for m in ${MAN1}; do chmod 644 ${DESTDIR}${MANPREFIX}/man1/$$m; done 95 96 uninstall: 97 # removing executable files. 98 for f in ${BIN}; do rm -f ${DESTDIR}${PREFIX}/bin/$$f; done 99 # removing example files. 100 rm -f \ 101 ${DESTDIR}${DOCPREFIX}/style.css\ 102 ${DESTDIR}${DOCPREFIX}/logo.png\ 103 ${DESTDIR}${DOCPREFIX}/example_create.sh\ 104 ${DESTDIR}${DOCPREFIX}/example_post-receive.sh\ 105 ${DESTDIR}${DOCPREFIX}/README 106 -rmdir ${DESTDIR}${DOCPREFIX} 107 # removing manual pages. 108 for m in ${MAN1}; do rm -f ${DESTDIR}${MANPREFIX}/man1/$$m; done 109 110 .PHONY: all clean dist install uninstall