Makefile - jfconvert - JSON Feed (subset) to sfeed or Atom converter
(HTM) git clone git://git.codemadness.org/jfconvert
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) 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