#
# Change the following four lines for local installation
#

CHASM_ROOT  = ../../..
PY_INCLUDE  = -I/System/Library/Frameworks/Python.framework/Headers
NUM_INCLUDE = ${PY_INCLUDE}/Numeric
SHLIB_LDFLAGS = -dynamic -flat_namespace -undefined suppress -bundle

include ${CHASM_ROOT}/include/MakeIncl.chasm

CXX      = ${CHASM_CXX}
F90      = ${CHASM_F90}
MFLAG    = ${CHASM_F90MFLAG}
F90FLAGS = ${CHASM_F90FLAGS}
SHLIB_LD = ${CHASM_CC}

LOCALFLAGS = -g -I${CHASM_ROOT}/include ${PY_INCLUDE} ${NUM_INCLUDE}
F90LOCALFLAGS = -g ${F90FLAGS}
LD_LOCALFLAGS = -L${CHASM_ROOT}/src/farray

# targets

all: F90Matrix.so FArray.so
	@echo
	@echo
	@echo "Running matrix multiply test:"
	@python test-F90Matrix.py
	@echo
	@echo "Running Fortran array test:"
	@python test-FArray.py

FArray.so: FArray_F.o FArray_C.o FArray_py.o
	${SHLIB_LD} ${SHLIB_LDFLAGS} ${LD_LOCALFLAGS} -o FArray.so FArray_py.o FArray_F.o FArray_C.o

FArray_py.o: FArray_py.c
	cc -c $(CFLAGS) $(LOCALFLAGS) FArray_py.c

FArray_F.o: FArray_F.f90
	$(F90) -c $(F90FLAGS) FArray_F.f90

FArray_C.o: ../src/FArray_C.c
	cc -c $(CFLAGS) $(LOCALFLAGS) ../src/FArray_C.c

F90Matrix.o: F90Matrix.f90
	${F90} -c ${F90LOCALFLAGS} F90Matrix.f90

F90Matrix_py.o: F90Matrix_py.c
	cc -c $(CFLAGS) $(LOCALFLAGS) F90Matrix_py.c

F90Matrix.so: F90Matrix_py.o F90Matrix.o
	${SHLIB_LD} ${SHLIB_LDFLAGS} ${LD_LOCALFLAGS} -o F90Matrix.so F90Matrix_py.o F90Matrix.o -lchasm ${CHASM_F90_LIBS}

clean:
	${RM} -f *.pyc *~ *.o *.mod *.so

