# Created by the script create_makefile
# This is the makefile for compiling a CGAL application.

#---------------------------------------------------------------------#
#                    include platform specific settings
#---------------------------------------------------------------------#
# Choose the right include file from the <cgalroot>/make directory.

# CGAL_MAKEFILE = ENTER_YOUR_INCLUDE_MAKEFILE_HERE
#CGAL_MAKEFILE = /usr/local/CGAL-3.2.1/make/makefile_i686_Linux-2.6_g++-4.2.3
#CGAL_MAKEFILE = /usr/local/CGAL-3.3.1/make/makefile_i686_Linux-2.6_g++-4.2.3
CGAL_MAKEFILE = /usr/local/CGAL-3.3.1/make/makefile_i686_Linux-2.6_g++-4.1-4.1.3

include $(CGAL_MAKEFILE)


MATLAB_INC_DIR = /usr/local/matlab/extern/include
MATLAB_LIB_DIR1 = /usr/local/matlab/bin/glnx86
MATLAB_LIB_DIR2 = /usr/local/matlab/sys/os/glnx86

#---------------------------------------------------------------------#
#                    compiler flags
#---------------------------------------------------------------------#
MATLAB_CXXFLAGS = \
					-I$(MATLAB_INC_DIR)

CXXFLAGS = \
		-fPIC  \
      $(CGAL_CXXFLAGS) \
      $(LONG_NAME_PROBLEM_CXXFLAGS) \
		$(MATLAB_CXXFLAGS)	\
	   -O2

#---------------------------------------------------------------------#
#                    linker flags
#---------------------------------------------------------------------#

LIBPATH = \
#          $(CGAL_LIBPATH) 

LDFLAGS = \
         	$(LONG_NAME_PROBLEM_LDFLAGS) \
          	$(CGAL_LDFLAGS) \
			  -lXmu -lXi  -lXt -lXext -lICE \
			  -llapack \
			  -L$(MATLAB_LIB_DIR1) -lmat -leng -lut -lmx  -licuuc -licudata -licui18n -licuio -lhdf5 \
			  -lpthread  

LDFLAGS_CGAL = \
         	$(LONG_NAME_PROBLEM_LDFLAGS) \
          	$(CGAL_LDFLAGS) \
			  -lXmu -lXi  -lXt -lXext -lICE \
			  -llapack  \
			  -lpthread  -static

LDFLAGS_SO = \
				/usr/local/CGAL-3.3.1/lib/i686_Linux-2.6_g++-4.1-4.1.3/libCGAL.a \
				/usr/lib/liblapack.a 

LDFLAGS_MAT = \
			  -L./ -llpmatrix \
			  -L$(MATLAB_LIB_DIR1) -lmat -leng -lut -lmx  -licuuc -licudata -licui18n -licuio -lhdf5 \
			  -lpthread 



#--------------------------------------------------------------------#
#                    target entries
#---------------------------------------------------------------------#

AR = ar
ARFLAGS = cru
LIBEXT = .a
SOBJ_EXT = .so

MEX        = mex
MEXSUFFIX  = .mexglx
MEXFLAGS   = -cxx CC='$(CGAL_CXX)' CXX='$(CGAL_CXX)' LD='$(CGAL_CXX)'

all:  \
		lpbmatrix$(MEXSUFFIX)  \
		glpmatrix$(MEXSUFFIX)  \
		glpmatrix_kernel$(MEXSUFFIX) \
		glpmatrix_arbdst$(MEXSUFFIX) 

liblpmatrix: \
		liblpmatrix$(SOBJ_EXT)
		
OBJ	=  \
   			point_cloud$(OBJ_EXT)     		\
				comp_llpmatrix$(OBJ_EXT)		\
				lpmatrix$(OBJ_EXT)

liblpmatrix$(SOBJ_EXT): $(OBJ) 
	$(CGAL_CXX)$  -shared -Wl,-soname,liblpmatrix$(SOBJ_EXT) -o liblpmatrix$(SOBJ_EXT).1 $(OBJ) $(LDFLAGS_SO)  

lpbOBJ   =  \
				lpbmatrix$(OBJ_EXT)          
lpbmatrix$(MEXSUFFIX): $(lpbOBJ)  
	mex $(LDFLAGS_MAT) $(MEXFLAGS) $(lpbOBJ)  

glpOBJ   =  \
				glpmatrix$(OBJ_EXT)          
glpmatrix$(MEXSUFFIX): $(glpOBJ) 
	mex $(LDFLAGS_MAT) $(MEXFLAGS) $(glpOBJ) 
	

glpOBJ_kernel   =  \
				glpmatrix_kernel$(OBJ_EXT)         
glpmatrix_kernel$(MEXSUFFIX): $(glpOBJ_kernel)
	mex $(LDFLAGS_MAT) $(MEXFLAGS) $(glpOBJ_kernel)


glpOBJ_arbdst   =  \
				glpmatrix_arbdst$(OBJ_EXT) 
glpmatrix_arbdst$(MEXSUFFIX): $(glpOBJ_arbdst)
	mex $(LDFLAGS_MAT) $(MEXFLAGS) $(glpOBJ_arbdst)

clean:	
		rm -f  $(OBJ) $(lpbOBJ) $(glpOBJ) $(glpOBJ_arbdst) $(glpOBJ_kernel)
#---------------------------------------------------------------------#
#                    suffix rules
#---------------------------------------------------------------------#


.C$(OBJ_EXT):
	$(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) $<

