jfconvert

JSON Feed (subset) to sfeed or Atom converter
git clone git://git.codemadness.org/jfconvert
Log | Files | Refs | README | LICENSE

Makefile (2066B)


      1 .POSIX:
      2 
      3 NAME = jfconvert
      4 VERSION = 0.1
      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 JFCONVERT_CFLAGS = ${CFLAGS}
     15 JFCONVERT_LDFLAGS = ${LDFLAGS}
     16 JFCONVERT_CPPFLAGS = -D_DEFAULT_SOURCE
     17 
     18 # uncomment for conservative locked I/O.
     19 #JFCONVERT_CPPFLAGS = -D_DEFAULT_SOURCE -DGETNEXT=getchar
     20 
     21 BIN = jf2atom jf2sfeed
     22 SRC = ${BIN:=.c}
     23 HDR = json.h
     24 MAN1 = ${BIN:=.1}
     25 DOC = \
     26 	LICENSE\
     27 	README
     28 
     29 LIBJSON = libjson.a
     30 LIBJSONSRC = json.c
     31 LIBJSONOBJ = ${LIBJSONSRC:.c=.o}
     32 
     33 LIB = ${LIBJSON}
     34 
     35 all: ${BIN}
     36 
     37 ${BIN}: ${LIB} ${@:=.o}
     38 
     39 OBJ = ${SRC:.c=.o} ${LIBJSONOBJ}
     40 
     41 ${OBJ}: ${HDR}
     42 
     43 .o:
     44 	${CC} ${JFCONVERT_LDFLAGS} -o $@ $< ${LIB}
     45 
     46 .c.o:
     47 	${CC} ${JFCONVERT_CFLAGS} ${JFCONVERT_CPPFLAGS} -o $@ -c $<
     48 
     49 ${LIBJSON}: ${LIBJSONOBJ}
     50 	${AR} -rc $@ $?
     51 	${RANLIB} $@
     52 
     53 dist:
     54 	rm -rf "${NAME}-${VERSION}"
     55 	mkdir -p "${NAME}-${VERSION}"
     56 	cp -f ${MAN1} ${DOC} ${HDR} \
     57 		${SRC} ${LIBJSONSRC} Makefile "${NAME}-${VERSION}"
     58 	# make tarball
     59 	tar cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz"
     60 	rm -rf "${NAME}-${VERSION}"
     61 
     62 clean:
     63 	rm -f ${BIN} ${OBJ} ${LIB}
     64 
     65 install: all
     66 	# installing executable files.
     67 	mkdir -p "${DESTDIR}${PREFIX}/bin"
     68 	cp -f ${BIN} "${DESTDIR}${PREFIX}/bin"
     69 	for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
     70 	# installing example files.
     71 	mkdir -p "${DESTDIR}${DOCPREFIX}"
     72 	cp -f ${DOC} "${DESTDIR}${DOCPREFIX}"
     73 	for d in ${DOC}; do chmod 644 "${DESTDIR}${DOCPREFIX}/$$d"; done
     74 	# installing manual pages for general commands: section 1.
     75 	mkdir -p "${DESTDIR}${MANPREFIX}/man1"
     76 	cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
     77 	for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
     78 
     79 uninstall:
     80 	# removing executable files.
     81 	for f in ${BIN}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
     82 	# removing example files.
     83 	for d in ${DOC}; do rm -f "${DESTDIR}${DOCPREFIX}/$$d"; done
     84 	-rmdir "${DESTDIR}${DOCPREFIX}"
     85 	# removing manual pages.
     86 	for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
     87 
     88 .PHONY: all clean dist install uninstall