# begin_html
# <b>Up:</b> <a href="index.html">Index</a>
# end_html

CC = gcc
CCFLAGS = -fPIC -I. -DMAXILL_EXPORTS -O3 -DNDEBUG
CCP = g++
CCPFLAGS = -fPIC -I. -DMAXILL_EXPORTS -O3 -DNDEBUG
LN = g++
LNFLAGS = -shared -fPIC -lm -g
ARCH = $(shell uname -m | sed -e s/i.86/i386/)
OBJ = obj_${ARCH}


OBJS =  ${OBJ}/max_inter_ll.o \
	${OBJ}/max_subi_ll.o \
	${OBJ}/max_ll_util.o \
	${OBJ}/matrixutil.o \
	${OBJ}/ublas_matrixutil.o \
	${OBJ}/milutil.o

default: ${ARCH}/libmaxill.so

${ARCH}/libmaxill.so: ${OBJS}
	${LN} ${LNFLAGS} -o ${ARCH}/libmaxill.so ${OBJS}

clean:
	rm -f ${OBJ}/* ${ARCH}/libmaxill.so


install: ${ARCH}/libmaxill.so
	cp ${ARCH}/libmaxill.so /usr/lib


${OBJ}/max_inter_ll.o: max_inter_ll.cpp max_inter_ll.h
	${CCP} ${CCPFLAGS} -c max_inter_ll.cpp -o ${OBJ}/max_inter_ll.o
${OBJ}/max_subi_ll.o: max_subi_ll.cpp max_subi_ll.h
	${CCP} ${CCPFLAGS} -c max_subi_ll.cpp -o ${OBJ}/max_subi_ll.o
${OBJ}/max_ll_util.o: max_ll_util.cpp max_ll_util.h
	${CCP} ${CCPFLAGS} -c max_ll_util.cpp -o ${OBJ}/max_ll_util.o
${OBJ}/matrixutil.o: matrixutil.cpp matrixutil.h
	${CCP} ${CCPFLAGS} -c matrixutil.cpp -o ${OBJ}/matrixutil.o
${OBJ}/ublas_matrixutil.o: ublas_matrixutil.cpp ublas_matrixutil.h
	${CCP} ${CCPFLAGS} -c ublas_matrixutil.cpp -o ${OBJ}/ublas_matrixutil.o
${OBJ}/milutil.o: milutil.cpp milutil.h
	${CCP} ${CCPFLAGS} -c milutil.cpp -o ${OBJ}/milutil.o



# comments and math
# test app
# publishing and packaging
# web announcement; relevent listings with mil, mip, mac
# idealize with i=f(v)
# output callback everywhere, for the future?
# errors and exceptions
# gradients
# error limits
# n-channel
# mproc and/or openmp, mil and msl
