PREFIX?=/usr/local
LOCALBASE?=/usr/local/
VER_MAJOR=4
VER_MINOR=143
PORTNAME?=munger
PORTVERSION?=${VER_MAJOR}.${VER_MINOR}
INC=-I${LOCALBASE}/include
LIB= -L./ -lmunger -lcalendar -lcrypt -lm -lcurses -L${LOCALBASE}/lib/
DLIB= -lcalendar -lcrypt -lm -lcurses -L${LOCALBASE}/lib/
MM=options.mm stacks.mm grep.mm cgi.mm fmt.mm
DESTDIR?=/
DATADIR?=${DESTDIR}${PREFIX}/share/${PORTNAME}-${PORTVERSION}
DEST=${DESTDIR}${PREFIX}/bin
LIBDIR=${DESTDIR}${PREFIX}/lib
MANDIR=${DESTDIR}${PREFIX}/man/man1/
SCRIPTS= err.munger cat.munger transform.munger grep.munger view.munger \
client.cgi fmt.munger filter.munger httpd.munger compiler.munger \
mbox2munger.munger mime2munger.munger xml2alist.munger tk.munger \
cal.munger xml2sqlite.munger rss.munger blog.cgi login.cgi incorporation.munger \
msh.munger echo.munger xml2buffer.munger ipdatabase.munger ip2country.munger
DATA=library.munger xmlquery.munger cgi.munger options.munger \
xmlsqlite.munger blog.css login.css
SRC=intrinsics.c lisp.c lisp.h
VERSION=-DVERSION_MAJOR=${VER_MAJOR} -DVERSION_MINOR=${VER_MINOR}
LIB_VERSION=33
MM_VERSION=${VER_MAJOR}.${VER_MINOR}
DFLAGS= -DDATADIR=\"${DATADIR}\" ${VERSION}
.if defined(PROFILE)
CFLAGS+= -pg
LIB= -lmunger -lc_p -lm_p -lcrypt_p -lcalendar_p -lcurses_p
.endif
.if defined(WITH_SQL)
DFLAGS+= -DSQL
LIB+= -pthread -lsqlite3
DLIB+= -pthread -lsqlite3
.endif
.if !defined(WITH_DKNS)
SCRIPTS+= dkns.munger
.endif
CFLAGS+= -Wall -ansi ${DFLAGS}
LFLAGS= -fpic -shared -Wl,-soname,libmunger.so.${LIB_VERSION}
INSTALL_PROGRAM?=/usr/bin/install -o root -g wheel -m555 -c -s
INSTALL_SCRIPT?=/usr/bin/install -o root -g wheel -m555 -c
INSTALL_DATA?=/usr/bin/install -o root -g wheel -m444 -c
INSTALL_MAN?=/usr/bin/install -o root -g wheel -m444 -c
MKDIR?=mkdir -p -m 555
CP?=/bincp
SED?=/usr/bin/sed
RM?=/bin/rm
GZIP_CMD?=/usr/bin/gzip
SHELL=/bin/sh
all: munger libminimunger.a
debug: ${SRC}
${CC} ${CFLAGS} -O0 -ggdb -DDEBUG ${INC} lisp.c ${DLIB} -o munger
libmunger.so: intrinsics.c lisp.h
${CC} ${CFLAGS} -finline-functions ${INC} ${LFLAGS} -o $@ intrinsics.c
munger: libmunger.so ${SRC}
${CC} ${CFLAGS} -finline-functions ${INC} -o $@ lisp.c ${LIB}
runtime.o: runtime.c runtime.h
${CC} ${CFLAGS} ${INC} -c -o $@ runtime.c
libminimunger.a: runtime.o
ar rc $@ runtime.o
mmdebug: runtime.c runtime.h
${CC} ${CFLAGS} -O0 -ggdb -DDEBUG ${INC} -c -o runtime.o runtime.c
ar rc libminimunger.a runtime.o
tags: ${SRC}
ctags ${SRC}
clean:
${RM} -rf munger libminimunger.a libmunger.so* munger.gmon munger.gprof *.o tmp *.core tags *~ *.gz *.1 *.csv
install: all
${MKDIR} ${DATADIR}
.for I in ${SCRIPTS}
${SED} -e "s|MUNGERPATH|${DEST}/munger|1" $I >tmp
${INSTALL_SCRIPT} tmp ${DATADIR}/$I
.endfor
${INSTALL_DATA} ${DATA} ${DATADIR}
${RM} tmp
${INSTALL_PROGRAM} libmunger.so ${LIBDIR}/libmunger.so.${LIB_VERSION}
${INSTALL_PROGRAM} munger ${DEST}
cp munger.man munger.1
${GZIP_CMD} -f munger.1
${INSTALL_MAN} munger.1.gz ${MANDIR}
${INSTALL_DATA} libminimunger.a ${PREFIX}/lib/libminimunger.a
${INSTALL_DATA} runtime.h ${PREFIX}/include/minimunger.h
${INSTALL_DATA} ${MM} ${DATADIR}
${SED} -e "1s|^#!/MUNGERPATH|#!${PREFIX}/bin/munger|1" \
-e "s|%%PREFIX%%|${PREFIX}|" -e "s|%%VERSION%%|${MM_VERSION}|" mm.munger > tmp
${INSTALL_SCRIPT} tmp ${DATADIR}/mm.munger
${SED} -e "s|%%PREFIX%%|${PREFIX}|g" -e "s|%%VERSION%%|${MM_VERSION}|g" minimunger.man > minimunger.1
${GZIP_CMD} -f minimunger.1
${INSTALL_MAN} minimunger.1.gz ${PREFIX}/man/man1
.if defined(WITH_DKNS)
${SED} -e "s|MUNGERPATH|${DEST}/munger|1" dkns.munger >tmp
${INSTALL_SCRIPT} tmp ${DEST}/dkns
cp dkns.man dkns.1
${GZIP_CMD} -f dkns.1
${INSTALL_MAN} dkns.1.gz ${MANDIR}
.endif
uninstall:
${RM} -rf ${DATADIR}
${RM} -f ${DEST}/munger
${RM} -f ${MANDIR}/munger.1.gz
syntax highlighted by Code2HTML, v. 0.9.1