annotate extra/NaN/src/Makefile @ 8037:6a419bec96bb octave-forge

update contact e-mail and www address
author schloegl
date Wed, 20 Apr 2011 09:16:06 +0000
parents eec1e8c2f373
children 8d8da31799c0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
1 ####################################################
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
2 # Copyright 2010, 2011 Alois Schloegl
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
3 # This is part of the NaN-toolbox - a statistics and machine learning toolbox for data with and without missing values.
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
4 # http://pub.ist.ac.at/~schloegl/matlab/NaN/
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
5 ####################################################
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
6
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
7 ### modify directories according to your needs
7993
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
8
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
9 # Octave - global install (e.g. from debian package)
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
10 OCTAVE_VERSION =
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
11 INCOCTAVE = -I /usr/include/octave
7993
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
12 # Octave - local install (e.g. compiled from sources)
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
13 OCTAVE_VERSION = -3.4.0
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
14 INCOCTAVE = -I /usr/local/include/octave$(OCTAVE_VERSION)/octave
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
15
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
16 # Matlab configuration
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
17 MATLABDIR = /usr/local/MATLAB/R2010b
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
18 # comment the following line if you use MATLAB on 32-bit operating system
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
19 MEX_OPTION += -largeArrayDims
7993
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
20
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
21 # Mingw crosscompiler: available at http://www.nongnu.org/mingw-cross-env/
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
22 CROSS = $(HOME)/src/mingw-cross-env/usr/bin/i686-pc-mingw32-
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
23 # include directory for Win32-Matlab include
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
24 W32MAT_INC = $(HOME)/bin/Matlab/R2010/extern/include/
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
25 # path to GNUMEX libraries, available from here http://sourceforge.net/projects/gnumex/
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
26 GNUMEX = $(HOME)/bin/gnumex
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
27 ####################################################
6547
schloegl
parents: 5579
diff changeset
28
schloegl
parents: 5579
diff changeset
29 CC = gcc
schloegl
parents: 5579
diff changeset
30 CXX = g++
8037
6a419bec96bb update contact e-mail and www address
schloegl
parents: 8032
diff changeset
31 CFLAGS = -fopenmp -Wall -Wconversion -O2 -fPIC
7993
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
32 OCTMEX = mkoctfile$(OCTAVE_VERSION) --mex
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
33 RM = rm
3901
0c83673d2cbe Fix broken Makefile
adb014
parents: 2968
diff changeset
34
8037
6a419bec96bb update contact e-mail and www address
schloegl
parents: 8032
diff changeset
35 MEX_OPTION += -lz -lgomp CC\#$(CXX) CXX\#$(CXX) CFLAGS\#"$(CFLAGS)" CXXFLAGS\#"$(CFLAGS)"
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
36 MATMEX = $(MATLABDIR)/bin/mex $(MEX_OPTION)
6560
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
37
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
38 PROGS = histo_mex.mex covm_mex.mex kth_element.mex sumskipnan_mex.mex str2array.mex train.mex svmtrain_mex.mex svmpredict_mex.mex xptopen.mex
6547
schloegl
parents: 5579
diff changeset
39
6560
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
40 MEX_EXT = $(shell $(MATLABDIR)/bin/mexext)
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
41 octave: $(PROGS)
6563
4b3ccb63b4cf fix for ML*
schloegl
parents: 6562
diff changeset
42 matlab: $(patsubst %.mex, %.$(MEX_EXT), $(PROGS))
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
43 mexw32 win32: $(patsubst %.mex, %.mexw32, $(PROGS))
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
44 all: octave matlab win32
3901
0c83673d2cbe Fix broken Makefile
adb014
parents: 2968
diff changeset
45
0c83673d2cbe Fix broken Makefile
adb014
parents: 2968
diff changeset
46 $(PROGS): Makefile
2414
19251cd2753b Latest package manager mega patch, but not the last
adb014
parents:
diff changeset
47
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
48 #########################################################
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
49 # Octave, MATLAB on Linux
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
50 #########################################################
2414
19251cd2753b Latest package manager mega patch, but not the last
adb014
parents:
diff changeset
51 %.oct: %.cc
7993
b670af56dd9d octave version support included
schloegl
parents: 7992
diff changeset
52 mkoctfile$(OCTAVE_VERSION) $<
2968
e49fc39e8ee0 Add "clean" rules to makefiles and discard exit status
goffioul
parents: 2414
diff changeset
53
6549
41e9854fe26d use *.cpp instead of *.c
schloegl
parents: 6547
diff changeset
54 %.mex: %.cpp
8032
eec1e8c2f373 gomp (gnu openmp) support included in Makefile
schloegl
parents: 7993
diff changeset
55 $(OCTMEX) $< -lz -lgomp ## Octave
6549
41e9854fe26d use *.cpp instead of *.c
schloegl
parents: 6547
diff changeset
56 %.$(MEX_EXT): %.cpp
8032
eec1e8c2f373 gomp (gnu openmp) support included in Makefile
schloegl
parents: 7993
diff changeset
57 $(MATMEX) $< -lz -lgomp ## Matlab
6547
schloegl
parents: 5579
diff changeset
58
6562
57fddcbc3d15 weighted libLinear supported
schloegl
parents: 6561
diff changeset
59 svmtrain_mex.mex svmpredict_mex.mex: svmtrain_mex.cpp svm.h svm.cpp svm_model_matlab.c
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
60 $(CXX) $(CFLAGS) $(INCOCTAVE) -c svm.cpp
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
61 $(CC) $(CFLAGS) $(INCOCTAVE) -c svm_model_matlab.c
6549
41e9854fe26d use *.cpp instead of *.c
schloegl
parents: 6547
diff changeset
62 env CC=$(CXX) $(OCTMEX) svmtrain_mex.cpp svm.o svm_model_matlab.o
6554
7fa067e9944d add support for non-linear SVM and 1-1 scheme
schloegl
parents: 6552
diff changeset
63 env CC=$(CXX) $(OCTMEX) svmpredict_mex.cpp svm.o svm_model_matlab.o
6549
41e9854fe26d use *.cpp instead of *.c
schloegl
parents: 6547
diff changeset
64
6562
57fddcbc3d15 weighted libLinear supported
schloegl
parents: 6561
diff changeset
65 svmtrain_mex.$(MEX_EXT) svmpredict_mex.$(MEX_EXT): svmtrain_mex.cpp svm.h svm.cpp svm_model_matlab.c
6555
9bd1a8fcffd7 libSVM: fix for Matlab
schloegl
parents: 6554
diff changeset
66 $(CXX) $(CFLAGS) -I $(MATLABDIR)/extern/include -c svm.cpp
6586
f1e5407f7bd1 compilation of SVMTRAIN fixed
schloegl
parents: 6563
diff changeset
67 $(CC) $(CFLAGS) -I $(MATLABDIR)/extern/include -c svm_model_matlab.c
6552
37ebea0d2428 build for octave must be the default, matlab build is optional
schloegl
parents: 6549
diff changeset
68 $(MATMEX) svmtrain_mex.cpp svm.o svm_model_matlab.o
6554
7fa067e9944d add support for non-linear SVM and 1-1 scheme
schloegl
parents: 6552
diff changeset
69 $(MATMEX) svmpredict_mex.cpp svm.o svm_model_matlab.o
6547
schloegl
parents: 5579
diff changeset
70
6588
98a8d8e4dd44 fix make liblinear svm
schloegl
parents: 6586
diff changeset
71 train.$(MEX_EXT) predict.$(MEX_EXT): train.c linear.h tron.o linear.o linear_model_matlab.c
6563
4b3ccb63b4cf fix for ML*
schloegl
parents: 6562
diff changeset
72 $(CC) $(CFLAGS) -I $(MATLABDIR)/extern/include -c linear_model_matlab.c
6588
98a8d8e4dd44 fix make liblinear svm
schloegl
parents: 6586
diff changeset
73 $(MATMEX) -lblas train.c tron.o linear.o linear_model_matlab.o
6563
4b3ccb63b4cf fix for ML*
schloegl
parents: 6562
diff changeset
74 #$(MATMEX) -lblas predict.c tron.o linear.o linear_model_matlab.o
6560
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
75
6588
98a8d8e4dd44 fix make liblinear svm
schloegl
parents: 6586
diff changeset
76 train.mex predict.mex: train.c linear.h tron.o linear.o linear_model_matlab.c
7802
03cd0c75b7ac docu for ML72; highlight user-specific configuration in Makefile
schloegl
parents: 7376
diff changeset
77 $(CC) $(CFLAGS) $(INCOCTAVE) -c linear_model_matlab.c
6588
98a8d8e4dd44 fix make liblinear svm
schloegl
parents: 6586
diff changeset
78 env CC=$(CXX) $(OCTMEX) -lblas train.c tron.o linear.o linear_model_matlab.o
6563
4b3ccb63b4cf fix for ML*
schloegl
parents: 6562
diff changeset
79 #env CC=$(CXX) $(OCTMEX) -lblas predict.c tron.o linear.o linear_model_matlab.o
6560
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
80
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
81 linear.o: linear.cpp linear.h
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
82 $(CXX) $(CFLAGS) -c linear.cpp
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
83
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
84 tron.o: tron.cpp tron.h
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
85 $(CXX) $(CFLAGS) -c tron.cpp
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
86
1170c9d6d1c4 method LibLinear is included
schloegl
parents: 6556
diff changeset
87
7992
db5092052107 OpenMP support included
schloegl
parents: 7912
diff changeset
88 clean: ; -$(RM) *.o core octave-core *.oct *~ *.mex*
db5092052107 OpenMP support included
schloegl
parents: 7912
diff changeset
89
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
90 #########################################################
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
91 # MATLAB/WIN32
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
92 #########################################################
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
93 %.obj: %.cpp
8037
6a419bec96bb update contact e-mail and www address
schloegl
parents: 8032
diff changeset
94 $(CROSS)$(CXX) -fopenmp -c -DMATLAB_MEX_FILE -x c++ -o $@ -I$(W32MAT_INC) -O2 -DMX_COMPAT_32 $<
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
95 %.obj: %.c
8037
6a419bec96bb update contact e-mail and www address
schloegl
parents: 8032
diff changeset
96 $(CROSS)$(CXX) -fopenmp -c -DMATLAB_MEX_FILE -x c++ -o $@ -I$(W32MAT_INC) -O2 -DMX_COMPAT_32 $<
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
97 #%.obj: LAPACK/%.f
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
98 # $(CROSS)$(CXX) -c -DMATLAB_MEX_FILE -o$@ -I$(W32MAT_INC) -O3 -DMX_COMPAT_32 $<
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
99
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
100 train.mexw32 predict.mexw32: train.obj linear.obj linear_model_matlab.obj tron.obj
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
101 $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< linear_model_matlab.obj linear.obj tron.obj -llibmx -llibmex -llibmat -lz -lcholmod -lblas
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
102
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
103 svmpredict_mex.mexw32 : svmpredict_mex.obj svm.obj svm_model_matlab.obj
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
104 $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< svm_model_matlab.obj svm.obj -llibmx -llibmex -llibmat -lz -lcholmod
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
105 svmtrain_mex.mexw32 : svmtrain_mex.obj svm.obj svm_model_matlab.obj
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
106 $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< svm_model_matlab.obj svm.obj -llibmx -llibmex -llibmat -lz -lcholmod
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
107
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
108 %.mexw32: %.obj
8037
6a419bec96bb update contact e-mail and www address
schloegl
parents: 8032
diff changeset
109 $(CROSS)$(CXX) -shared $(GNUMEX)/mex.def -o $@ -L$(GNUMEX) -s $< -llibmx -llibmex -llibmat -lz -lcholmod -lgomp -lpthread
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
110
7912
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
111 clean:
14021a3f31a6 fix (cross-)compilation for MEXW32 target
schloegl
parents: 7899
diff changeset
112 -$(RM) *.o *.obj core octave-core *.oct *~ *.mex*
7899
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
113
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
114
07e96b66779f add support for WIN32 cross-compilation
schloegl
parents: 7802
diff changeset
115