Mercurial > forge
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"