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