Makefile - json2tsv - JSON to TSV converter
 (HTM) git clone git://git.codemadness.org/json2tsv
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       Makefile (2148B)
       ---
            1 .POSIX:
            2 
            3 NAME = json2tsv
            4 VERSION = 1.2
            5 
            6 # paths
            7 PREFIX = /usr/local
            8 MANPREFIX = ${PREFIX}/man
            9 DOCPREFIX = ${PREFIX}/share/doc/${NAME}
           10 
           11 RANLIB = ranlib
           12 
           13 # use system flags.
           14 JSON2TSV_CFLAGS = ${CFLAGS}
           15 JSON2TSV_LDFLAGS = ${LDFLAGS}
           16 JSON2TSV_CPPFLAGS = -D_DEFAULT_SOURCE
           17 
           18 # uncomment for conservative locked I/O.
           19 #JSON2TSV_CPPFLAGS = -D_DEFAULT_SOURCE -DGETNEXT=getchar
           20 
           21 BIN = ${NAME}
           22 SCRIPTS = jaq
           23 SRC = ${BIN:=.c}
           24 HDR = json.h
           25 MAN1 = ${BIN:=.1}\
           26         ${SCRIPTS:=.1}
           27 DOC = \
           28         LICENSE\
           29         README
           30 
           31 LIBJSON = libjson.a
           32 LIBJSONSRC = json.c
           33 LIBJSONOBJ = ${LIBJSONSRC:.c=.o}
           34 
           35 LIB = ${LIBJSON}
           36 
           37 all: ${BIN}
           38 
           39 ${BIN}: ${LIB} ${@:=.o}
           40 
           41 OBJ = ${SRC:.c=.o} ${LIBJSONOBJ}
           42 
           43 ${OBJ}: ${HDR}
           44 
           45 .o:
           46         ${CC} ${JSON2TSV_LDFLAGS} -o $@ $< ${LIB}
           47 
           48 .c.o:
           49         ${CC} ${JSON2TSV_CFLAGS} ${JSON2TSV_CPPFLAGS} -o $@ -c $<
           50 
           51 ${LIBJSON}: ${LIBJSONOBJ}
           52         ${AR} -rc $@ $?
           53         ${RANLIB} $@
           54 
           55 dist:
           56         rm -rf "${NAME}-${VERSION}"
           57         mkdir -p "${NAME}-${VERSION}"
           58         cp -f ${MAN1} ${DOC} ${HDR} ${SCRIPTS} \
           59                 ${SRC} ${LIBJSONSRC} Makefile "${NAME}-${VERSION}"
           60         # make tarball
           61         tar cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz"
           62         rm -rf "${NAME}-${VERSION}"
           63 
           64 clean:
           65         rm -f ${BIN} ${OBJ} ${LIB}
           66 
           67 install: all
           68         # installing executable files and scripts.
           69         mkdir -p "${DESTDIR}${PREFIX}/bin"
           70         cp -f ${BIN} ${SCRIPTS} "${DESTDIR}${PREFIX}/bin"
           71         for f in ${BIN} ${SCRIPTS}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
           72         # installing example files.
           73         mkdir -p "${DESTDIR}${DOCPREFIX}"
           74         cp -f ${DOC} "${DESTDIR}${DOCPREFIX}"
           75         for d in ${DOC}; do chmod 644 "${DESTDIR}${DOCPREFIX}/$$d"; done
           76         # installing manual pages for general commands: section 1.
           77         mkdir -p "${DESTDIR}${MANPREFIX}/man1"
           78         cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
           79         for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
           80 
           81 uninstall:
           82         # removing executable files and scripts.
           83         for f in ${BIN} ${SCRIPTS}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
           84         # removing example files.
           85         for d in ${DOC}; do rm -f "${DESTDIR}${DOCPREFIX}/$$d"; done
           86         -rmdir "${DESTDIR}${DOCPREFIX}"
           87         # removing manual pages.
           88         for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
           89 
           90 .PHONY: all clean dist install uninstall