Makefile - sfeed - RSS and Atom parser
 (HTM) git clone git://git.codemadness.org/sfeed
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       Makefile (4402B)
       ---
            1 .POSIX:
            2 
            3 NAME = sfeed
            4 VERSION = 2.2
            5 
            6 # curses theme, see themes/ directory.
            7 SFEED_THEME = mono
            8 
            9 # paths
           10 PREFIX = /usr/local
           11 MANPREFIX = ${PREFIX}/man
           12 DOCPREFIX = ${PREFIX}/share/doc/${NAME}
           13 
           14 RANLIB = ranlib
           15 
           16 # use system flags.
           17 SFEED_CFLAGS = ${CFLAGS}
           18 SFEED_LDFLAGS = ${LDFLAGS}
           19 SFEED_CPPFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE
           20 
           21 # uncomment for conservative locked I/O.
           22 #SFEED_CPPFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE \
           23 #        -DGETNEXT=getchar
           24 
           25 # set $SFEED_CURSES to empty to not build sfeed_curses.
           26 SFEED_CURSES = sfeed_curses
           27 SFEED_CURSES_CFLAGS = ${CFLAGS}
           28 SFEED_CURSES_CPPFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE \
           29          -DSFEED_THEME=\"themes/${SFEED_THEME}.h\"
           30 SFEED_CURSES_LDFLAGS = ${LDFLAGS} -lcurses
           31 
           32 # Linux: some distros use ncurses and require -lncurses.
           33 #SFEED_CURSES_LDFLAGS = ${LDFLAGS} -lncurses
           34 
           35 # Gentoo Linux: some distros might also require -ltinfo and -D_DEFAULT_SOURCE
           36 # to prevent warnings about feature test macros.
           37 #SFEED_CURSES_LDFLAGS = ${LDFLAGS} -lncurses -ltinfo
           38 
           39 # FreeBSD: unset feature test macros for SIGWINCH etc.
           40 #SFEED_CURSES_CPPFLAGS =
           41 
           42 # use minicurses with hardcoded escape sequences (not the system curses).
           43 #SFEED_CURSES_CPPFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE \
           44 #        -DSFEED_THEME=\"themes/${SFEED_THEME}.h\" -DSFEED_MINICURSES
           45 #SFEED_CURSES_LDFLAGS = ${LDFLAGS}
           46 
           47 BIN = \
           48         sfeed\
           49         sfeed_atom\
           50         ${SFEED_CURSES}\
           51         sfeed_frames\
           52         sfeed_gopher\
           53         sfeed_html\
           54         sfeed_json\
           55         sfeed_mbox\
           56         sfeed_opml_import\
           57         sfeed_plain\
           58         sfeed_twtxt\
           59         sfeed_web\
           60         sfeed_xmlenc
           61 SCRIPTS = \
           62         sfeed_content\
           63         sfeed_markread\
           64         sfeed_opml_export\
           65         sfeed_update
           66 
           67 SRC = ${BIN:=.c}
           68 HDR = \
           69         minicurses.h\
           70         util.h\
           71         xml.h
           72 
           73 LIBUTIL = libutil.a
           74 LIBUTILSRC = \
           75         util.c
           76 LIBUTILOBJ = ${LIBUTILSRC:.c=.o}
           77 
           78 LIBXML = libxml.a
           79 LIBXMLSRC = \
           80         xml.c
           81 LIBXMLOBJ = ${LIBXMLSRC:.c=.o}
           82 
           83 COMPATSRC = \
           84         strlcat.c\
           85         strlcpy.c
           86 COMPATOBJ =\
           87         strlcat.o\
           88         strlcpy.o
           89 
           90 LIB = ${LIBUTIL} ${LIBXML} ${COMPATOBJ}
           91 
           92 MAN1 = ${BIN:=.1}\
           93         ${SCRIPTS:=.1}
           94 MAN5 = \
           95         sfeed.5\
           96         sfeedrc.5
           97 DOC = \
           98         LICENSE\
           99         README\
          100         README.xml
          101 
          102 all: ${BIN}
          103 
          104 ${BIN}: ${LIB} ${@:=.o}
          105 
          106 OBJ = ${SRC:.c=.o} ${LIBXMLOBJ} ${LIBUTILOBJ} ${COMPATOBJ}
          107 
          108 ${OBJ}: ${HDR}
          109 
          110 .o:
          111         ${CC} -o $@ $< ${LIB} ${SFEED_LDFLAGS}
          112 
          113 .c.o:
          114         ${CC} -o $@ -c $< ${SFEED_CFLAGS} ${SFEED_CPPFLAGS}
          115 
          116 sfeed_curses.o: sfeed_curses.c themes/${SFEED_THEME}.h
          117         ${CC} -o $@ -c sfeed_curses.c ${SFEED_CURSES_CFLAGS} ${SFEED_CURSES_CPPFLAGS}
          118 
          119 sfeed_curses: ${LIB} sfeed_curses.o
          120         ${CC} -o $@ sfeed_curses.o ${LIB} ${SFEED_CURSES_LDFLAGS}
          121 
          122 ${LIBUTIL}: ${LIBUTILOBJ}
          123         ${AR} -rc $@ $?
          124         ${RANLIB} $@
          125 
          126 ${LIBXML}: ${LIBXMLOBJ}
          127         ${AR} -rc $@ $?
          128         ${RANLIB} $@
          129 
          130 dist:
          131         rm -rf "${NAME}-${VERSION}"
          132         mkdir -p "${NAME}-${VERSION}"
          133         cp -fR ${MAN1} ${MAN5} ${DOC} ${HDR} \
          134                 ${SRC} ${LIBXMLSRC} ${LIBUTILSRC} ${COMPATSRC} ${SCRIPTS} \
          135                 themes Makefile \
          136                 sfeedrc.example style.css \
          137                 "${NAME}-${VERSION}"
          138         # make tarball
          139         tar cf - "${NAME}-${VERSION}" | \
          140                 gzip -c > "${NAME}-${VERSION}.tar.gz"
          141         rm -rf "${NAME}-${VERSION}"
          142 
          143 clean:
          144         rm -f ${BIN} ${OBJ} ${LIB}
          145 
          146 install: all
          147         # installing executable files and scripts.
          148         mkdir -p "${DESTDIR}${PREFIX}/bin"
          149         cp -fRP ${BIN} ${SCRIPTS} "${DESTDIR}${PREFIX}/bin"
          150         for f in ${BIN} ${SCRIPTS}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
          151         # installing example files.
          152         mkdir -p "${DESTDIR}${DOCPREFIX}"
          153         cp -f sfeedrc.example\
          154                 style.css\
          155                 README\
          156                 README.xml\
          157                 "${DESTDIR}${DOCPREFIX}"
          158         # installing manual pages for general commands: section 1.
          159         mkdir -p "${DESTDIR}${MANPREFIX}/man1"
          160         cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
          161         for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
          162         # installing manual pages for file formats: section 5.
          163         mkdir -p "${DESTDIR}${MANPREFIX}/man5"
          164         cp -f ${MAN5} "${DESTDIR}${MANPREFIX}/man5"
          165         for m in ${MAN5}; do chmod 644 "${DESTDIR}${MANPREFIX}/man5/$$m"; done
          166 
          167 uninstall:
          168         # removing executable files and scripts.
          169         for f in ${BIN} ${SCRIPTS}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
          170         # removing example files.
          171         rm -f \
          172                 "${DESTDIR}${DOCPREFIX}/sfeedrc.example"\
          173                 "${DESTDIR}${DOCPREFIX}/style.css"\
          174                 "${DESTDIR}${DOCPREFIX}/README"\
          175                 "${DESTDIR}${DOCPREFIX}/README.xml"
          176         -rmdir "${DESTDIR}${DOCPREFIX}"
          177         # removing manual pages.
          178         for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
          179         for m in ${MAN5}; do rm -f "${DESTDIR}${MANPREFIX}/man5/$$m"; done
          180 
          181 .PHONY: all clean dist install uninstall