changeset 10510:f62d2ea0472d octave-forge

kalman_maar: compilation on x64_86 fixed
author schloegl
date Tue, 26 Jun 2012 23:15:34 +0000
parents 3229e3d4522f
children be2579a004c0
files extra/tsa/src/Makefile extra/tsa/src/kalman_maar.cpp
diffstat 2 files changed, 31 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/extra/tsa/src/Makefile	Mon Jun 25 21:51:50 2012 +0000
+++ b/extra/tsa/src/Makefile	Tue Jun 26 23:15:34 2012 +0000
@@ -15,11 +15,11 @@
 MEX_OPTION += -largeArrayDims
 
 # Mingw crosscompiler: available at http://www.nongnu.org/mingw-cross-env/
-CROSS   = $(HOME)/src/mingw-cross-env/usr/bin/i686-pc-mingw32-
-CROSS64 = $(HOME)/src/mce-w64/usr/bin/x86_64-w64-mingw32-
+CROSS   = $(HOME)/src/mxe/usr/bin/i686-pc-mingw32
+CROSS64 = $(HOME)/src/mce-w64/usr/bin/x86_64-static-mingw32
 # include directory for Win32-Matlab include
-W32MAT_INC = $(HOME)/bin/win32/Matlab/R2010b/extern/include/
-W64MAT_INC = $(HOME)/bin/win64/Matlab/R2010b/extern/include/
+W32MAT_INC = -I$(HOME)/bin/win32/Matlab/R2010b/extern/include/
+W64MAT_INC = -I$(HOME)/bin/win64/Matlab/R2010b/extern/include/
 # path to GNUMEX libraries, available from here http://sourceforge.net/projects/gnumex/
 GNUMEX   = $(HOME)/bin/win32/gnumex
 GNUMEX64 = $(HOME)/bin/win64/gnumex
@@ -27,6 +27,16 @@
 # http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTinZvxgC9ezp2P3UCX_a7TAUYuVsp2U40MQUV6qr%40mail.gmail.com&forum_name=gnumex-users
 # Instead of building "mex shortpath.c" and "mex uigetpath.c", I used empty m-functions within argout=argin; 
 ####################################################
+W32MAT_INC += -I$(subst /usr/bin/,/usr/,$(CROSS))/include/
+W64MAT_INC += -I$(subst /usr/bin/,/usr/,$(CROSS64))/include/
+LDLIBS_W32 = $(subst /usr/bin/,/usr/,$(CROSS))/lib/
+LDLIBS_W64 = $(subst /usr/bin/,/usr/,$(CROSS64))/lib/
+W32_LIBS  = $(LDLIBS_W32)liblapack.a
+W64_LIBS  = $(LDLIBS_W64)liblapack.a
+W32_LIBS += $(LDLIBS_W32)libblas.a
+W64_LIBS += $(LDLIBS_W64)libblas.a
+
+
 
 CC  	= gcc
 CXX 	= g++
@@ -37,7 +47,7 @@
 MEX_OPTION  += -lgomp CC\#$(CXX) CXX\#$(CXX) CFLAGS\#"$(CFLAGS)" CXXFLAGS\#"$(CFLAGS)"
 MATMEX      = $(MATLABDIR)/bin/mex $(MEX_OPTION)
 
-PROGS = covm_mex.mex sumskipnan_mex.mex 
+PROGS = covm_mex.mex sumskipnan_mex.mex kalman_maar.mex
 
 mex4o octave: $(PROGS)
 
@@ -52,30 +62,30 @@
 clean:
 	-$(RM) *.o *.obj *.o64 core octave-core *.oct *~ *.mex* 
 
-$(PROGS): Makefile
 
 #########################################################
+
 #	Octave, MATLAB on Linux 
 #########################################################
 %.oct: %.cc
-	mkoctfile$(OCTAVE_VERSION) $<
+	mkoctfile$(OCTAVE_VERSION) "$<"
 
 %.mex: %.cpp
-	$(OCTMEX) $<  -lgomp         ## Octave
+	$(OCTMEX) "$<"  -lgomp -llapack -lblas     ## Octave
 %.$(MEX_EXT): %.cpp
-	$(MATMEX) $<  -lgomp      ## Matlab
+	$(MATMEX) "$<"  -lgomp -llapack -lblas     ## Matlab
 
 
 #########################################################
 #	MATLAB/WIN32
 #########################################################
 %.obj: %.cpp
-	$(CROSS)$(CXX) -fopenmp -c -DMATLAB_MEX_FILE -x c++ -o $@ -I$(W32MAT_INC) -O2 -DMX_COMPAT_32 $<
+	$(CROSS)-$(CXX) -fopenmp -c -DMATLAB_MEX_FILE -x c++ -o "$@" $(W32MAT_INC) -O2 -DMX_COMPAT_32 "$<"
 %.obj: %.c
-	$(CROSS)$(CXX) -fopenmp -c -DMATLAB_MEX_FILE -x c++ -o $@ -I$(W32MAT_INC) -O2 -DMX_COMPAT_32 $< 
+	$(CROSS)-$(CXX) -fopenmp -c -DMATLAB_MEX_FILE -x c++ -o "$@" $(W32MAT_INC) -O2 -DMX_COMPAT_32 "$<" 
 
 %.mexw32: %.obj
-	$(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< -llibmx -llibmex -llibmat -lcholmod -lgomp -lpthread
+	$(CROSS)-$(CXX) -shared $(GNUMEX)/mex.def -o "$@" -L$(GNUMEX) -s "$<" -llibmx -llibmex -llibmat -lcholmod -lgomp -lpthread -L$(LDLIBS_W32) -lblas -llapack
 
 
 #########################################################
@@ -84,10 +94,12 @@
 
 ## ToDO: fix OpenMP support: currently -fopenmp causes Matlab to crash
 %.o64: %.cpp
-	$(CROSS64)$(CXX) -c -DMATLAB_MEX_FILE -x c++ -o $@ -I$(W64MAT_INC) -O2 $<
+	$(CROSS64)-$(CXX) -c -DMATLAB_MEX_FILE -x c++ -o "$@" $(W64MAT_INC) -O2 "$<"
 %.o64: %.c
-	$(CROSS64)$(CXX) -c -DMATLAB_MEX_FILE -x c++ -o $@ -I$(W64MAT_INC) -O2 $< 
+	$(CROSS64)-$(CXX) -c -DMATLAB_MEX_FILE -x c++ -o "$@" $(W64MAT_INC) -O2 "$<" 
 
 %.mexw64: %.o64
-	$(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o $@ -L$(GNUMEX64) -s $< -llibmx -llibmex -llibmat -lcholmod -lgomp -lpthread
+	$(CROSS64)-$(CXX) -shared $(GNUMEX64)/mex.def -o "$@" -L$(GNUMEX64) -s "$<" -llibmx -llibmex -llibmat -lcholmod -lgomp -lpthread -L$(LDLIBS_W64) -lblas -llapack
+	
+	
 
--- a/extra/tsa/src/kalman_maar.cpp	Mon Jun 25 21:51:50 2012 +0000
+++ b/extra/tsa/src/kalman_maar.cpp	Tue Jun 26 23:15:34 2012 +0000
@@ -13,13 +13,11 @@
 // this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 // Place - Suite 330, Boston, MA  02111-1307, USA.
 
-#include "mex.h"
-#include "memory.h"
+#include <mex.h>
+#include <memory.h>
 
-#ifndef WIN32
-#include "blas.h"
-#include "lapack.h"
-#endif
+#include <blas.h>
+#include <lapack.h>
 
 #include "kalman_maar.h"