stagit

Makefile

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