DESTDIR?=/
PREFIX?=/usr/local

BINDIR=${DESTDIR}${PREFIX}/bin
ETCDIR=${DESTDIR}${PREFIX}/etc
MANDIR=${DESTDIR}${PREFIX}/man/man1/
DATADIR=${DESTDIR}${PREFIX}/share/ephemera

INSTALL_PROGRAM?=/usr/bin/install -c -s -m 0550
INSTALL_SCRIPT?=/usr/bin/install -c -m 0550
INSTALL_MAN?=/usr/bin/install -c -m 0444
INSTALL_DATA?=/usr/bin/install -c -m 0444

SUPPORT= ephemera.config ephemera.css \
	      SourceSansPro-Regular.ttf SourceSansPro-Bold.ttf \
	      SourceSansPro-Italic.ttf SourceSansPro-BoldItalic.ttf \
         SourceSansPro-Black.ttf SourceSansPro-BlackItalic.ttf
SCRIPTS= create.munger add.munger replace.munger delete.munger extract.munger \
         edit.munger

# Must not include DESTDIR
MUNGERPATH=${PREFIX}/bin/munger
BINPATH=${PREFIX}/bin

RM?=/bin/rm -f
CP?=/bin/cp
MKDIR?=/bin/mkdir -p
RMDIR?=/bin/rmdir
GZIP_CMD?=/usr/bin/gzip
SED?=/usr/bin/sed

VERSION="6.65"

CFLAGS+= -Wall -finline-functions -DVERSION=\"${VERSION}\"
IFLAGS= -I/usr/local/include
LFLAGS= -lcalendar -lsqlite3 -L/usr/local/lib

.PHONY: all
all: ephemera

ephemera: ephemera.c sqlite.o data.o calendar.o
	${CC} ${CFLAGS} -o ephemera ${IFLAGS} ephemera.c sqlite.o data.o calendar.o ${LFLAGS};

sqlite.o: sqlite.c
	${CC} ${CFLAGS} -c -o sqlite.o ${IFLAGS} sqlite.c

data.o: data.c
	${CC} ${CFLAGS} -c -o data.o ${IFLAGS} data.c

calendar.o: calendar.c
	${CC} ${CFLAGS} -c -o calendar.o ${IFLAGS} calendar.c

.PHONY: start
start:
	/usr/local/etc/rc.d/ephemera forcerestart

.PHONY: stop
stop:
	/usr/local/etc/rc.d/ephemera forcestop

.PHONY: install
install: ephemera
	${MKDIR} ${DATADIR}
	${INSTALL_DATA} ${SUPPORT} ${DATADIR}	
.for I in ${SCRIPTS}
	${SED} -e 's|%%BINPATH%%|${BINPATH}|1' -e 's|%%MUNGERPATH%%|${MUNGERPATH}|1' $I > tmp
	${INSTALL_SCRIPT} tmp ${BINDIR}/$I
.endfor
	${INSTALL_PROGRAM} ephemera ${BINDIR}
	${SED} -e 's|%%PREFIX%%|${PREFIX}|1' ephemera.rcfile > ephemera.rc
	${INSTALL_SCRIPT} ephemera.rc ${ETCDIR}/rc.d/ephemera
	${SED} -e 's|%%PREFIX%%|${PREFIX}|1' ephemera.man > ephemera.1
	${GZIP_CMD} -f ephemera.1
	${INSTALL_MAN} ephemera.1.gz ${MANDIR}

.PHONY: deinstall
deinstall:
	${RM} ${BINDIR}/ephemera
	${RM} -r ${DATADIR}
.for I in ${SCRIPTS}
	${RM} ${BINDIR}/$I
.endfor
	${RM} -r ${DATADIR}
	${RM} ${MANDIR}/ephemera*
	${RM} ${ETCDIR}/rc.d/ephemera

.PHONY: debug
debug:
	${CC} ${DFLAGS} ${CFLAGS} -ggdb -O0 -o ephemera ${IFLAGS} ephemera.c sqlite.c data.c calendar.c ${LFLAGS}

.PHONY: clean
clean:
	rm -f ephemera ephemera.rc ephemera.config.sample *tmp *backup *gz *.o
