
# Makefile for building sfmult MEX
#
# Name of MEX source file

MEXNAME = sfmult

# specify 
# pc = 1, linux, 2: mac
pc = 1
pc = 2

#------------------------------------------------------------
#------------------------------------------------------------
MEX = mex

# Linux
ifeq ($(pc), 1)

	# MATLAB MEX compiler
	MEX = mex
	# MEX = /usr/local/matlab/bin/mex
	#MEX = /global/common/edison/das/matlab/R2015a/bin/mex

	# MKL path
	MKLHOMEINCLUDE = "/opt/intel/mkl/include"
	MKLHOMELIB = "/opt/intel/mkl/lib/intel64"

	# dynamic library
	#
	#LIBS =  -L$(MKLHOMELIB) -lmkl_gf_lp64 -lmkl_core -lmkl_gnu_thread  -liomp5  -lm  -lmwlapack -lmwblas

	# static library
	#LIBS =  $(MKLHOMELIB)/libmkl_gf_lp64.a $(MKLHOMELIB)/libmkl_core.a $(MKLHOMELIB)/libmkl_gnu_thread.a  -liomp5  -lm  -lmwlapack -lmwblas

	LIBS = -Wl,--start-group ${MKLHOMELIB}/libmkl_gf_lp64.a ${MKLHOMELIB}/libmkl_core.a ${MKLHOMELIB}/libmkl_gnu_thread.a  -Wl,--end-group -liomp5 -lm  -lmwlapack -lmwblas


# Mac OS X
else ifeq ($(pc), 2)

	MEX = /Applications/MATLAB_R2014b.app/bin/mex
	# MEX = /Applications/MATLAB_R2014a.app/bin/mex
	# MEX = /Applications/MATLAB_R2015a.app/bin/mex
	# MATLAB MEX compiler

	# MKL path
	MKLHOMELIB = "/opt/intel/composer_xe_2015.3.187/mkl/lib"
	MKLHOMEINCLUDE = "/opt/intel/composer_xe_2015.3.187/mkl/include"

	# dynamic library
	#LIBS =  -L$(MKLHOMELIB) -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread  -liomp5  -lm  -lmwlapack -lmwblas

	# static library
	LIBS =  $(MKLHOMELIB)/libmkl_intel_lp64.a $(MKLHOMELIB)/libmkl_core.a $(MKLHOMELIB)/libmkl_intel_thread.a  -liomp5  -lm  -lmwlapack -lmwblas

endif


# Modify -O as -g to enter debug model
MEXFLAGS += -O -largeArrayDims

INCLUDE = -I${MKLHOMEINCLUDE}

all:
	$(MEX) $(MEXFLAGS) $(LIBS) $(INCLUDE) -output $(MEXNAME) $(MEXNAME).cpp

