X-Git-Url: https://git.armaanb.net/?p=stagit.git;a=blobdiff_plain;f=Makefile;h=0681a85682a4f6c306bb6a8199748561bd1991b9;hp=43c6e565d1e34646fbba364e27d930ffc1877a1e;hb=HEAD;hpb=fb0ec82a615db929d100f6bed2f7299f91afbb5d diff --git a/Makefile b/Makefile index 43c6e56..0681a85 100644 --- a/Makefile +++ b/Makefile @@ -1,59 +1,86 @@ -include config.mk +.POSIX: NAME = stagit -VERSION = 0.7.2 +VERSION = 0.9.3 + +# paths +PREFIX = /usr/local +MANPREFIX = ${PREFIX}/man +DOCPREFIX = ${PREFIX}/share/doc/${NAME} +SHAREPREFIX = ${PREFIX}/share/${NAME} + +LIBCMARK = $(shell pkg-config --silence-errors --libs libcmark-gfm > /dev/null; echo $$?) +CHROMA = $(shell which chroma > /dev/null; echo $$?) +LIBGIT_INC = -I/usr/local/include +LIBS = -L/usr/local/lib `pkg-config --libs libgit2` + +ifeq (${CHROMA}, 0) + STAGIT_CPPFLAGS := ${STAGIT_CPPFLAGS} -DHAS_CHROMA +endif + +ifeq (${LIBCMARK}, 0) + LIBS := ${LIBS} -lcmark-gfm + STAGIT_CPPFLAGS := ${STAGIT_CPPFLAGS} -DHAS_CMARK +endif + +# use system flags. +STAGIT_CFLAGS = ${LIBGIT_INC} ${CFLAGS} +STAGIT_LDFLAGS = ${LIBS} ${LDFLAGS} +STAGIT_CPPFLAGS := ${STAGIT_CPPFLAGS} -D_XOPEN_SOURCE=700 -D_DEFAULT_SOURCE -D_BSD_SOURCE + SRC = \ - stagit.c\ - stagit-index.c + src/stagit.c\ + src/stagit-index.c COMPATSRC = \ - reallocarray.c\ - strlcat.c\ - strlcpy.c + src/reallocarray.c\ + src/strlcat.c\ + src/strlcpy.c\ + src/cp.c BIN = \ stagit\ stagit-index MAN1 = \ - stagit.1\ - stagit-index.1 + man/stagit.1\ + man/stagit-index.1 DOC = \ LICENSE\ - README -HDR = compat.h + README.md +HDR = src/compat.h COMPATOBJ = \ - reallocarray.o\ - strlcat.o\ - strlcpy.o + src/reallocarray.o\ + src/strlcat.o\ + src/strlcpy.o\ + src/cp.o OBJ = ${SRC:.c=.o} ${COMPATOBJ} all: ${BIN} .o: - ${CC} ${LDFLAGS} -o $@ ${LIBS} + ${CC} -o $@ ${LDFLAGS} .c.o: - ${CC} -c ${CFLAGS} ${CPPFLAGS} -o $@ -c $< + ${CC} -o $@ -c $< ${STAGIT_CFLAGS} ${STAGIT_CPPFLAGS} dist: rm -rf ${NAME}-${VERSION} mkdir -p ${NAME}-${VERSION} cp -f ${MAN1} ${HDR} ${SRC} ${COMPATSRC} ${DOC} \ - Makefile config.mk favicon.png logo.png style.css \ - example_create.sh example_post-receive.sh \ + Makefile resources/* contrib/* \ ${NAME}-${VERSION} # make tarball tar -cf - ${NAME}-${VERSION} | \ gzip -c > ${NAME}-${VERSION}.tar.gz rm -rf ${NAME}-${VERSION} -${OBJ}: config.mk ${HDR} +${OBJ}: ${HDR} -stagit: stagit.o ${COMPATOBJ} - ${CC} -o $@ stagit.o ${COMPATOBJ} ${LDFLAGS} +stagit: src/stagit.o ${COMPATOBJ} + ${CC} -o $@ src/stagit.o ${COMPATOBJ} ${STAGIT_LDFLAGS} -stagit-index: stagit-index.o ${COMPATOBJ} - ${CC} -o $@ stagit-index.o ${COMPATOBJ} ${LDFLAGS} +stagit-index: src/stagit-index.o ${COMPATOBJ} + ${CC} -o $@ src/stagit-index.o ${COMPATOBJ} ${STAGIT_LDFLAGS} clean: rm -f ${BIN} ${OBJ} ${NAME}-${VERSION}.tar.gz @@ -64,31 +91,26 @@ install: all cp -f ${BIN} ${DESTDIR}${PREFIX}/bin for f in ${BIN}; do chmod 755 ${DESTDIR}${PREFIX}/bin/$$f; done # installing example files. - mkdir -p ${DESTDIR}${PREFIX}/share/${NAME} - cp -f style.css\ - favicon.png\ - logo.png\ - example_create.sh\ - example_post-receive.sh\ - README\ - ${DESTDIR}${PREFIX}/share/${NAME} + mkdir -p ${DESTDIR}${DOCPREFIX} + cp -f contrib/*\ + README.md\ + ${DESTDIR}${DOCPREFIX} + mkdir -p ${DESTDIR}${SHAREPREFIX} + cp -f resources/*\ + ${DESTDIR}${SHAREPREFIX} # installing manual pages. mkdir -p ${DESTDIR}${MANPREFIX}/man1 cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1 - for m in ${MAN1}; do chmod 644 ${DESTDIR}${MANPREFIX}/man1/$$m; done + install -Dm644 man/* ${DESTDIR}${MANPREFIX}/man1 uninstall: # removing executable files. for f in ${BIN}; do rm -f ${DESTDIR}${PREFIX}/bin/$$f; done # removing example files. - rm -f \ - ${DESTDIR}${PREFIX}/share/${NAME}/style.css\ - ${DESTDIR}${PREFIX}/share/${NAME}/favicon.png\ - ${DESTDIR}${PREFIX}/share/${NAME}/logo.png\ - ${DESTDIR}${PREFIX}/share/${NAME}/example_create.sh\ - ${DESTDIR}${PREFIX}/share/${NAME}/example_post-receive.sh\ - ${DESTDIR}${PREFIX}/share/${NAME}/README - -rmdir ${DESTDIR}${PREFIX}/share/${NAME} + rm -f ${DESTDIR}${SHAREPREFIX}/* + rm -f ${DESTDIR}${DOCPREFIX}/* + rmdir ${DESTDIR}${SHAREPREFIX} + rmdir ${DESTDIR}${DOCPREFIX} # removing manual pages. for m in ${MAN1}; do rm -f ${DESTDIR}${MANPREFIX}/man1/$$m; done