## Available defines for building chm_lib with particular options
# CHM_MT:        build thread-safe version of chm_lib
# CHM_USE_PREAD: build chm_lib to use pread/pread64 for all I/O
# CHM_USE_IO64:  build chm_lib to support 64-bit file I/O
#
# Note: LDFLAGS must contain -lpthread if you are using -DCHM_MT.
#
#CFLAGS=-DCHM_MT -DCHM_USE_PREAD -DCHM_USE_IO64
CFLAGS=-DCHM_MT -DCHM_USE_PREAD -DCHM_USE_IO64 -g -DDMALLOC_DISABLE
LDFLAGS=-lpthread
INSTALLPREFIX=/usr/local/
CC=gcc-3.2
LD=gcc-3.2
LIBTOOL=libtool
CP=/bin/cp
EXAMPLES=test_chmLib enum_chmLib enumdir_chmLib chm_http extract_chmLib

PYTHON_INCLUDES=/usr/include/python2.2

all: _chm.so

examples: ${EXAMPLES}

%.lo: %.c
	${LIBTOOL} ${CC} -c -o $@ $^ ${CFLAGS}

libchm.la: chm_lib.lo lzx.lo
	${LIBTOOL} ${LD} -o $@ $^ ${LDFLAGS} -rpath ${INSTALLPREFIX}/lib

install: libchm.la
	chmod a+r libchm.la
	${LIBTOOL} --mode=install ${CP} libchm.la ${INSTALLPREFIX}/lib
	${CP} chm_lib.h ${INSTALLPREFIX}/include

clean:
	rm -fr *.py* chmlib_wrap.c libchm.la *.o *.so *.lo .libs ${EXAMPLES}

test_chmLib: test_chmLib.c
	${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}

enum_chmLib: enum_chmLib.c
	${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}

enumdir_chmLib: enumdir_chmLib.c
	${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}

extract_chmLib: extract_chmLib.c
	${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm ${CFLAGS}

chm_http: chm_http.c
	${CC} -o $@ $^ -I${INSTALLPREFIX}/include -L${INSTALLPREFIX}/lib -lchm -lpthread ${CFLAGS}

_chm.so: wrapper.c
	gcc -g -shared az_chmlib_add.c wrapper.c lzx.c chm_lib.c -o _chmlib.so -I$(PYTHON_INCLUDES)
	strip _chmlib.so

#chmlib_wrap.c: chmlib_wrap.i chm_lib.c
#	swig -python -o chmlib_wrap.c chmlib_wrap.i