sfeed

simple feed reader - forked from git.codemadness.org/sfeed
git clone git://src.gearsix.net/sfeedsfeed.zip
Log | Files | Refs | Atom | README | LICENSE

Makefile (raw) (4415B)


   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 	sfeed_read
  67 
  68 SRC = ${BIN:=.c}
  69 HDR = \
  70 	minicurses.h\
  71 	util.h\
  72 	xml.h
  73 
  74 LIBUTIL = libutil.a
  75 LIBUTILSRC = \
  76 	util.c
  77 LIBUTILOBJ = ${LIBUTILSRC:.c=.o}
  78 
  79 LIBXML = libxml.a
  80 LIBXMLSRC = \
  81 	xml.c
  82 LIBXMLOBJ = ${LIBXMLSRC:.c=.o}
  83 
  84 COMPATSRC = \
  85 	strlcat.c\
  86 	strlcpy.c
  87 COMPATOBJ =\
  88 	strlcat.o\
  89 	strlcpy.o
  90 
  91 LIB = ${LIBUTIL} ${LIBXML} ${COMPATOBJ}
  92 
  93 MAN1 = ${BIN:=.1}\
  94 	${SCRIPTS:=.1}
  95 MAN5 = \
  96 	sfeed.5\
  97 	sfeedrc.5
  98 DOC = \
  99 	LICENSE\
 100 	README\
 101 	README.xml
 102 
 103 all: ${BIN}
 104 
 105 ${BIN}: ${LIB} ${@:=.o}
 106 
 107 OBJ = ${SRC:.c=.o} ${LIBXMLOBJ} ${LIBUTILOBJ} ${COMPATOBJ}
 108 
 109 ${OBJ}: ${HDR}
 110 
 111 .o:
 112 	${CC} -o $@ $< ${LIB} ${SFEED_LDFLAGS}
 113 
 114 .c.o:
 115 	${CC} -o $@ -c $< ${SFEED_CFLAGS} ${SFEED_CPPFLAGS}
 116 
 117 sfeed_curses.o: sfeed_curses.c themes/${SFEED_THEME}.h
 118 	${CC} -o $@ -c sfeed_curses.c ${SFEED_CURSES_CFLAGS} ${SFEED_CURSES_CPPFLAGS}
 119 
 120 sfeed_curses: ${LIB} sfeed_curses.o
 121 	${CC} -o $@ sfeed_curses.o ${LIB} ${SFEED_CURSES_LDFLAGS}
 122 
 123 ${LIBUTIL}: ${LIBUTILOBJ}
 124 	${AR} -rc $@ $?
 125 	${RANLIB} $@
 126 
 127 ${LIBXML}: ${LIBXMLOBJ}
 128 	${AR} -rc $@ $?
 129 	${RANLIB} $@
 130 
 131 dist:
 132 	rm -rf "${NAME}-${VERSION}"
 133 	mkdir -p "${NAME}-${VERSION}"
 134 	cp -fR ${MAN1} ${MAN5} ${DOC} ${HDR} \
 135 		${SRC} ${LIBXMLSRC} ${LIBUTILSRC} ${COMPATSRC} ${SCRIPTS} \
 136 		themes Makefile \
 137 		sfeedrc.example style.css \
 138 		"${NAME}-${VERSION}"
 139 	# make tarball
 140 	tar cf - "${NAME}-${VERSION}" | \
 141 		gzip -c > "${NAME}-${VERSION}.tar.gz"
 142 	rm -rf "${NAME}-${VERSION}"
 143 
 144 clean:
 145 	rm -f ${BIN} ${OBJ} ${LIB}
 146 
 147 install: all
 148 	# installing executable files and scripts.
 149 	mkdir -p "${DESTDIR}${PREFIX}/bin"
 150 	cp -fRP ${BIN} ${SCRIPTS} "${DESTDIR}${PREFIX}/bin"
 151 	for f in ${BIN} ${SCRIPTS}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
 152 	# installing example files.
 153 	mkdir -p "${DESTDIR}${DOCPREFIX}"
 154 	cp -f sfeedrc.example\
 155 		style.css\
 156 		README\
 157 		README.xml\
 158 		"${DESTDIR}${DOCPREFIX}"
 159 	# installing manual pages for general commands: section 1.
 160 	mkdir -p "${DESTDIR}${MANPREFIX}/man1"
 161 	cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
 162 	for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
 163 	# installing manual pages for file formats: section 5.
 164 	mkdir -p "${DESTDIR}${MANPREFIX}/man5"
 165 	cp -f ${MAN5} "${DESTDIR}${MANPREFIX}/man5"
 166 	for m in ${MAN5}; do chmod 644 "${DESTDIR}${MANPREFIX}/man5/$$m"; done
 167 
 168 uninstall:
 169 	# removing executable files and scripts.
 170 	for f in ${BIN} ${SCRIPTS}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
 171 	# removing example files.
 172 	rm -f \
 173 		"${DESTDIR}${DOCPREFIX}/sfeedrc.example"\
 174 		"${DESTDIR}${DOCPREFIX}/style.css"\
 175 		"${DESTDIR}${DOCPREFIX}/README"\
 176 		"${DESTDIR}${DOCPREFIX}/README.xml"
 177 	-rmdir "${DESTDIR}${DOCPREFIX}"
 178 	# removing manual pages.
 179 	for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
 180 	for m in ${MAN5}; do rm -f "${DESTDIR}${MANPREFIX}/man5/$$m"; done
 181 
 182 .PHONY: all clean dist install uninstall