VERSION=0.7.2
OBJECTS=session.o queries.o parsing.o format.o objects.o
DBGOBJ=session-dbg.o queries-dbg.o parsing-dbg.o format-dbg.o objects-dbg.o
DBGFLAGS=-DEBUG -g
FLAGS=-Wall -DUSE_SSL -Os
LDFLAGS=-lssl -lcrypto
RM=rm -f

all : libspopc.a libspopc.so examples
	@echo ""
	@cat README
list :
	@echo "targets are: all, examples, install, clean, uninstall"
	@echo "devel targets are: debug, distclean"
	@echo "to disable SSL support, type:"
	@echo "$$ make FLAGS='-Wall -Os' LDFLAGS='' all"
	@echo "to build on MS-windows, type:"
	@echo "$$ make FLAGS='-Wall -DWIN32 -0s' LDFLAGS='-lwsock32'"
	@echo "and use examples/winpoptest*.c as examples of use"
%.o : %.c
	gcc ${FLAGS} -c $<
%-dbg.o : %.c
	gcc -o $@ -c ${FLAGS} ${DBGFLAGS} $<
libspopc-dbg.a : $(DBGOBJ)
	ar r $@ $(DBGOBJ)
	ranlib $@
%-dbg : examples/%.c
	gcc -I. -o $@ $(DBGFLAGS) ${FLAGS} \
	$< -L. -lspopc-dbg $(LDFLAGS)
debug: libspopc-dbg.a poptest1-dbg poptest2-dbg butcher-dbg
libspopc.a : $(OBJECTS)
	${RM} libspopc*.a
	ar r libspopc-${VERSION}.a ${OBJECTS}
	ranlib libspopc-${VERSION}.a
	ln -s libspopc-${VERSION}.a libspopc.a
libspopc.so : $(OBJECTS)
	${RM} libspopc*.so
	gcc -o libspopc-${VERSION}.so -shared ${OBJECTS}
	ln -s libspopc-${VERSION}.so libspopc.so
%: examples/%.c
	gcc -o $@ ${FLAGS} $< -L. -lspopc $(LDFLAGS)
examples: libspopc.a poptest1 poptest2 butcher
uninstall :
	${RM} ${DESTDIR}/usr/lib/libspopc*.a
	${RM} ${DESTDIR}/usr/lib/libspopc*.so
	${RM} ${DESTDIR}/usr/include/libspopc*.h
install :
	strip libspopc.a libspopc.so
	cp -f libspopc-${VERSION}.a ${DESTDIR}/usr/lib/
	cd ${DESTDIR}/usr/lib/ && ln -f -s libspopc-${VERSION}.a libspopc.a
	cp -f libspopc-${VERSION}.so ${DESTDIR}/usr/lib/
	cd ${DESTDIR}/usr/lib/ && ln -f -s libspopc-${VERSION}.so libspopc.so
	cp -f libspopc.h ${DESTDIR}/usr/include/
clean :
	${RM} *.o poptest* butcher*
distclean : clean
	${RM} libspopc*.a libspopc*.so
	${RM} *~ examples/*~ doc/*~

