Mercurial > forge
changeset 12383:a06636a6401d octave-forge
nan: avoid spurios error messages when no Matlab is installed
author | schloegl |
---|---|
date | Wed, 26 Feb 2014 17:26:20 +0000 |
parents | 5c506ea5f24f |
children | 5d1eadad45d4 |
files | extra/NaN/src/Makefile |
diffstat | 1 files changed, 23 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/NaN/src/Makefile Wed Feb 26 17:21:20 2014 +0000 +++ b/extra/NaN/src/Makefile Wed Feb 26 17:26:20 2014 +0000 @@ -31,8 +31,8 @@ # Instead of building "mex shortpath.c" and "mex uigetpath.c", I used empty m-functions within argout=argin; #################################################### -CC = gcc -CXX = g++ +CC = gcc +CXX = g++ CFLAGS = -fopenmp -Wall -Wextra -Wconversion -O2 -fPIC OCTMEX = mkoctfile$(OCTAVE_VERSION) --mex RM = rm @@ -48,18 +48,18 @@ ### Matlab configuration - search for a matlab directory if not defined above ifndef MATLABDIR - ifneq ('',$(shell ls -1 /usr/local/MATLAB)) + ifneq (,$(shell ls -1 /usr/local/ |grep MATLAB)) # use oldest, typically mex-files a compatible with newer Matlab versions - MATLABDIR=$(shell ls -dt1 /usr/local/MATLAB/R* |tail -1) + MATLABDIR=$(shell ls -1t /usr/local/MATLAB/ |grep "^R*" |head -1) # alternatively, use latest matlab version #MATLABDIR=$(shell ls -dt1 /usr/local/MATLAB/R* |head -1) endif endif ### if the MATLABDIR has been found or defined -ifneq ('',MATLABDIR) - ifneq ('',$(lshell ls -1 $(MATLABDIR))) - MEX_EXT = $(shell $(MATLABDIR)/bin/mexext) +ifneq (,MATLABDIR) + ifneq (,$(shell ls -1 $(MATLABDIR)/bin/mexext)) + MEX_EXT=$(shell $(MATLABDIR)/bin/mexext) mex4m matlab: $(patsubst %.mex, %.$(MEX_EXT), $(PROGS)) endif endif @@ -78,14 +78,14 @@ # Octave, MATLAB on Linux ######################################################### %.oct: %.cc - mkoctfile$(OCTAVE_VERSION) $< + mkoctfile$(OCTAVE_VERSION) "$<" %.mex: %.cpp - $(OCTMEX) $< -lgomp ## Octave + $(OCTMEX) "$<" -lgomp ## Octave %.$(MEX_EXT): %.cpp - $(MATMEX) $< -lgomp ## Matlab + $(MATMEX) "$<" -lgomp ## Matlab -svmtrain_mex.mex svmpredict_mex.mex: svmtrain_mex.cpp svm.h svm.cpp svm_model_matlab.c svmpredict_mex.cpp +svmtrain_mex.mex svmpredict_mex.mex: svmtrain_mex.cpp svm.h svm.cpp svm_model_matlab.c svmpredict_mex.cpp $(CXX) $(CFLAGS) -c svm.cpp #$(CC) $(CFLAGS) $(INCOCTAVE) -c svm_model_matlab.c env CC=$(CXX) $(OCTMEX) svmtrain_mex.cpp svm.o svm_model_matlab.c @@ -117,20 +117,20 @@ # 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 "$@" -I$(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 "$@" -I$(W32MAT_INC) -O2 -DMX_COMPAT_32 "$<" train.mexw32 predict.mexw32: train.obj linear.obj linear_model_matlab.obj tron.obj - $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< linear_model_matlab.obj linear.obj tron.obj -llibmx -llibmex -llibmat -lcholmod -lblas + $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o "$@" -L$(GNUMEX) -s "$<" linear_model_matlab.obj linear.obj tron.obj -llibmx -llibmex -llibmat -lcholmod -lblas svmpredict_mex.mexw32 : svmpredict_mex.obj svm.obj svm_model_matlab.obj - $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< svm_model_matlab.obj svm.obj -llibmx -llibmex -llibmat -lcholmod + $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o "$@" -L$(GNUMEX) -s "$<" svm_model_matlab.obj svm.obj -llibmx -llibmex -llibmat -lcholmod svmtrain_mex.mexw32 : svmtrain_mex.obj svm.obj svm_model_matlab.obj - $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< svm_model_matlab.obj svm.obj -llibmx -llibmex -llibmat -lcholmod + $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o "$@" -L$(GNUMEX) -s "$<" svm_model_matlab.obj svm.obj -llibmx -llibmex -llibmat -lcholmod %.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 @@ -140,18 +140,18 @@ ## 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 "$@" -I$(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 "$@" -I$(W64MAT_INC) -O2 "$<" train.mexw64 predict.mexw64: train.o64 linear.o64 linear_model_matlab.o64 tron.o64 - $(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o $@ -L$(GNUMEX64) -s $< linear_model_matlab.o64 linear.o64 tron.o64 -llibmx -llibmex -llibmat -lcholmod -lblas + $(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o "$@" -L$(GNUMEX64) -s "$<" linear_model_matlab.o64 linear.o64 tron.o64 -llibmx -llibmex -llibmat -lcholmod -lblas svmpredict_mex.mexw64 : svmpredict_mex.o64 svm.o64 svm_model_matlab.o64 - $(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o $@ -L$(GNUMEX64) -s $< svm_model_matlab.o64 svm.o64 -llibmx -llibmex -llibmat -lcholmod + $(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o "$@" -L$(GNUMEX64) -s "$<" svm_model_matlab.o64 svm.o64 -llibmx -llibmex -llibmat -lcholmod svmtrain_mex.mexw64 : svmtrain_mex.o64 svm.o64 svm_model_matlab.o64 - $(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o $@ -L$(GNUMEX64) -s $< svm_model_matlab.o64 svm.o64 -llibmx -llibmex -llibmat -lcholmod + $(CROSS64)$(CXX) -shared $(GNUMEX64)/mex.def -o "$@" -L$(GNUMEX64) -s "$<" svm_model_matlab.o64 svm.o64 -llibmx -llibmex -llibmat -lcholmod %.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