extractjson

extract embedded JSON metadata from HTML pages
git clone git://git.codemadness.org/extractjson
Log | Files | Refs | README | LICENSE

commit 44593668820d73cad338f948e9e46ebc7ce37e90
parent ca6dbc057f9c2370476eef735ac8506c45a0958f
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Sun, 14 Aug 2022 12:07:31 +0200

Makefile: add a more proper Makefile

Diffstat:
MMakefile | 78+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 75 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,5 +1,77 @@ -build: clean - ${CC} -o extractjson extractjson.c ${CFLAGS} ${LDFLAGS} +.POSIX: + +NAME = extractjson +VERSION = 0.1 + +# paths +PREFIX = /usr/local +MANPREFIX = ${PREFIX}/man +DOCPREFIX = ${PREFIX}/share/doc/${NAME} + +RANLIB = ranlib + +# use system flags. +EXTRACTJSON_CFLAGS = ${CFLAGS} +EXTRACTJSON_LDFLAGS = ${LDFLAGS} +EXTRACTJSON_CPPFLAGS = -D_DEFAULT_SOURCE + +# uncomment for conservative locked I/O. +#EXTRACTJSON_CPPFLAGS = -D_DEFAULT_SOURCE -DGETNEXT=getchar + +BIN = ${NAME} +SRC = ${BIN:=.c} +MAN1 = ${BIN:=.1} +DOC = \ + LICENSE\ + README + +all: ${BIN} + +${BIN}: ${@:=.o} + +OBJ = ${SRC:.c=.o} + +${OBJ}: ${HDR} + +.o: + ${CC} ${EXTRACTJSON_LDFLAGS} -o $@ $< + +.c.o: + ${CC} ${EXTRACTJSON_CFLAGS} ${EXTRACTJSON_CPPFLAGS} -o $@ -c $< + +dist: + rm -rf "${NAME}-${VERSION}" + mkdir -p "${NAME}-${VERSION}" + cp -f ${MAN1} ${DOC} ${HDR} \ + ${SRC} Makefile "${NAME}-${VERSION}" + # make tarball + tar cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz" + rm -rf "${NAME}-${VERSION}" clean: - rm -f *.o extractjson + rm -f ${BIN} ${OBJ} + +install: all + # installing executable files. + mkdir -p "${DESTDIR}${PREFIX}/bin" + cp -f ${BIN} "${DESTDIR}${PREFIX}/bin" + for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done + # installing example files. + mkdir -p "${DESTDIR}${DOCPREFIX}" + cp -f ${DOC} "${DESTDIR}${DOCPREFIX}" + for d in ${DOC}; do chmod 644 "${DESTDIR}${DOCPREFIX}/$$d"; done + # installing manual pages for general commands: section 1. + mkdir -p "${DESTDIR}${MANPREFIX}/man1" + cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1" + for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done + +uninstall: + # removing executable files. + for f in ${BIN}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done + # removing example files. + for d in ${DOC}; do rm -f "${DESTDIR}${DOCPREFIX}/$$d"; done + -rmdir "${DESTDIR}${DOCPREFIX}" + # removing manual pages. + for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done + +.PHONY: all clean dist install uninstall