VERSION=0.5.4
OBJECTS=session.o queries.o parsing.o format.o objects.o
DFLAGS=EBUG
WFLAGS="-DWIN32"
FLAGS=-Wall -g
RM=rm -f

#
all : lib test
	echo ""
	cat README
obj :
	gcc $(FLAGS) -c format.c
	gcc $(FLAGS) -c objects.c
	gcc $(FLAGS) -c parsing.c
	gcc $(FLAGS) -c queries.c
	gcc $(FLAGS) -c session.c

#win32
win32 :
	gcc -o poptest1 -g $(FLAGS) examples/winpoptest1.c -L. -lspopc -lwsock32
	echo "==> poptest1: a simple example to use low-level API of libspopc"
	gcc -o poptest2 -g $(FLAGS)  examples/winpoptest2.c -L. -lspopc -lwsock32
	echo "==> poptest2: a simple example to use high-level API of libspopc"
#end win32
# debugging:
debobj : distclean
	gcc -g -c $(FLAGS) -D$(DFLAGS) *.c -lefence
debug : debobj
	ar r libspopc-$(VERSION)-$(DFLAGS).a $(OBJECTS)
	ranlib libspopc-$(VERSION)-$(DFLAGS).a
	ln -s libspopc-$(VERSION)-$(DFLAGS).a libspopc.a
#end debugging
lib : obj
	$(RM) libspopc*.a
	ar r libspopc-$(VERSION).a $(OBJECTS)
	ranlib libspopc-$(VERSION).a
	ln -s libspopc-$(VERSION).a libspopc.a
test : lib
	gcc -o poptest1 -g $(FLAGS) examples/poptest1.c -L. -lspopc 
	gcc -o poptest2 -g $(FLAGS)  examples/poptest2.c -L. -lspopc 
	gcc -o butcher -g $(FLAGS) examples/butcher.c -L. -lspopc
uninstall :
	$(RM) /usr/lib/libspopc*.a
	$(RM) /usr/lib/libspopc*.h
install : uninstall lib
	cp libspopc-$(VERSION).a /usr/lib
	ln -s /usr/lib/libspopc-$(VERSION).a /usr/lib/libspopc.a
	cp libspopc.h /usr/include/
clean :
	echo "==> Removing objects and cleaning"
	$(RM) *~ *.o poptest* butcher
distclean : clean
	echo "==> cleaning everything, just keeps sources"
	$(RM) libspopc*.a

