PREFIX?=/usr/local
LOCALBASE?=/usr/local/

DESTDIR?=/
DEST=${DESTDIR}${PREFIX}/bin
MANDIR=${DESTDIR}${PREFIX}/man/man3/
INCDIR=${DESTDIR}${PREFIX}/include
LIBDIR=${DESTDIR}${PREFIX}/lib
ETCDIR=${DESTDIR}${PREFIX}/etc/

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

CC=clang
RM?=/bin/rm -f
CP?=/bin/cp
MKDIR?=/bin/mkdir -p
RMDIR?=/bin/rmdir
CHMOD?=/bin/chmod
GZIP_CMD?=/usr/bin/gzip
SED?=/usr/bin/sed
LN?=/bin/ln -f

VERSION=1.13

CFLAGS+= -Wall -DVERSION=\"${VERSION}\"
IFLAGS= -I${LOCALBASE}/include
DLFLAGS= -fpic -shared -Wl,-soname,libstringstack.so.${VERSION}

.PHONY: all
all: libstringstack.so

libstringstack.so: stringstack.c
	${CC} ${CFLAGS} ${DLFLAGS} -o $@ stringstack.c

test: test.c
	${CC} -ggdb ${CFLAGS} -O0 -o test test.c stringstack.c

.PHONY: install
install: all
	${INSTALL_PROGRAM} libstringstack.so ${LIBDIR}/libstringstack.so.${VERSION}
	${LN} -s libstringstack.so.${VERSION} ${LIBDIR}/libstringstack.so
	${INSTALL_DATA} stringstack.h ${INCDIR}
	${CP} stringstack.man libstringstack.3
	${GZIP_CMD} -f libstringstack.3
	${INSTALL_MAN} libstringstack.3.gz ${MANDIR}

.PHONY: deinstall
deinstall:
	${RM} ${LIBDIR}/libstringstack.so*
	${RM} ${MANDIR}/libstringstack*
	${RM} ${INCDIR}/stringstack.h

.PHONY: clean
clean:
	rm -f test *.rc *.o *.core *tmp *backup *gz *.so
