VERSION=0.7.5
DIET=
CC=gcc
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 -Wextra -pedantic -pedantic-errors -Os -pipe -DUSE_SSL
#FLAGS=-Wall -Wextra -pedantic -Os -pipe
#
# info: strdup, snprintf.. are not in ANSI versions of stdio.h/string.h
# this could be nice to conform to -ansi or to -std=iso9899:199409
LDFLAGS=-lssl -lcrypto
RM=rm -f

all : libspopc.a libspopc.so examples
	@echo ""
	@cat README
	@echo 'to test programs without install,'
	@echo 'type those commands now:'
	@echo '  LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH'
	@echo '  export LD_LIBRARY_PATH' 

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
	$(DIET) $(CC) $(FLAGS) -c $<
%-dbg.o : %.c
	$(DIET) $(CC) -o $@ -c $(FLAGS) $(DBGFLAGS) $<
libspopc-dbg.a : $(DBGOBJ)
	ar r $@ $(DBGOBJ)
	ranlib $@
%-dbg : examples/%.c
	$(DIET) $(CC) -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
	$(DIET) $(CC) -o libspopc-$(VERSION).so -shared $(OBJECTS)
	ln -s libspopc-$(VERSION).so libspopc.so
%: examples/%.c
	$(DIET) $(CC) -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
	install libspopc-$(VERSION).a $(DESTDIR)/usr/lib/
	cd $(DESTDIR)/usr/lib/ && ln -f -s libspopc-$(VERSION).a libspopc.a
	install libspopc-$(VERSION).so $(DESTDIR)/usr/lib/
	cd $(DESTDIR)/usr/lib/ && ln -f -s libspopc-$(VERSION).so libspopc.so
	install libspopc.h $(DESTDIR)/usr/include/
clean :
	$(RM) *.o poptest* butcher*
distclean : clean
	$(RM) libspopc*.a libspopc*.so
	$(RM) *~ examples/*~ doc/*~

