Upgrade to 2.85, add svm-toy-gtk, svm-toy-qt

epel8
Ding-Yi Chen 17 years ago
parent 278c449214
commit 085b892bdd

@ -1 +1,2 @@
libsvm-2.84.tar.gz guide.pdf
libsvm-2.85.tar.gz

@ -1,6 +1,6 @@
diff -up ./java/test_applet.html.orig ./java/test_applet.html diff -up ./java/test_applet.html.orig ./java/test_applet.html
--- ./java/test_applet.html.orig 2008-01-02 09:37:14.000000000 +1000 --- ./java/test_applet.html.orig 2008-02-04 10:11:00.000000000 +1000
+++ ./java/test_applet.html 2008-01-02 09:43:19.000000000 +1000 +++ ./java/test_applet.html 2008-02-04 10:13:02.000000000 +1000
@@ -1 +1,3 @@ @@ -1 +1,3 @@
-<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET> -<APPLET code="svm_toy.class" archive="libsvm.jar" width=300 height=350></APPLET>
+<html> +<html>
@ -8,8 +8,8 @@ diff -up ./java/test_applet.html.orig ./java/test_applet.html
+</html> +</html>
diff -up ./java/svm_train.java.orig ./java/svm_train.java diff -up ./java/svm_train.java.orig ./java/svm_train.java
diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java
--- ./java/libsvm/svm_parameter.java.orig 2006-03-04 01:44:14.000000000 +1000 --- ./java/libsvm/svm_parameter.java.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./java/libsvm/svm_parameter.java 2008-01-02 09:43:19.000000000 +1000 +++ ./java/libsvm/svm_parameter.java 2008-02-04 10:13:02.000000000 +1000
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
package libsvm; package libsvm;
public class svm_parameter implements Cloneable,java.io.Serializable public class svm_parameter implements Cloneable,java.io.Serializable
@ -19,8 +19,8 @@ diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java
public static final int C_SVC = 0; public static final int C_SVC = 0;
public static final int NU_SVC = 1; public static final int NU_SVC = 1;
diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java
--- ./java/libsvm/svm_problem.java.orig 2003-10-11 22:30:47.000000000 +1000 --- ./java/libsvm/svm_problem.java.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./java/libsvm/svm_problem.java 2008-01-02 09:43:19.000000000 +1000 +++ ./java/libsvm/svm_problem.java 2008-02-04 10:13:02.000000000 +1000
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
package libsvm; package libsvm;
public class svm_problem implements java.io.Serializable public class svm_problem implements java.io.Serializable
@ -30,8 +30,8 @@ diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java
public double[] y; public double[] y;
public svm_node[][] x; public svm_node[][] x;
diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java
--- ./java/libsvm/svm_node.java.orig 2003-10-11 22:30:47.000000000 +1000 --- ./java/libsvm/svm_node.java.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./java/libsvm/svm_node.java 2008-01-02 09:43:19.000000000 +1000 +++ ./java/libsvm/svm_node.java 2008-02-04 10:13:02.000000000 +1000
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
package libsvm; package libsvm;
public class svm_node implements java.io.Serializable public class svm_node implements java.io.Serializable
@ -41,8 +41,8 @@ diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java
public double value; public double value;
} }
diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java
--- ./java/libsvm/svm_model.java.orig 2007-01-13 08:23:39.000000000 +1000 --- ./java/libsvm/svm_model.java.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./java/libsvm/svm_model.java 2008-01-02 09:43:19.000000000 +1000 +++ ./java/libsvm/svm_model.java 2008-02-04 10:13:02.000000000 +1000
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
package libsvm; package libsvm;
public class svm_model implements java.io.Serializable public class svm_model implements java.io.Serializable
@ -53,36 +53,37 @@ diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java
int l; // total #SV int l; // total #SV
diff -up ./java/libsvm/svm.java.orig ./java/libsvm/svm.java diff -up ./java/libsvm/svm.java.orig ./java/libsvm/svm.java
diff -up ./java/Makefile.orig ./java/Makefile diff -up ./java/Makefile.orig ./java/Makefile
--- ./java/Makefile.orig 2008-01-02 09:32:55.000000000 +1000 --- ./java/Makefile.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./java/Makefile 2008-01-02 09:43:19.000000000 +1000 +++ ./java/Makefile 2008-02-04 14:26:38.000000000 +1000
@@ -1,15 +1,18 @@ @@ -3,13 +3,22 @@ FILES = libsvm/svm.class libsvm/svm_mode
.SUFFIXES: .class .java libsvm/svm_parameter.class libsvm/svm_problem.class \
-FILES = libsvm/svm.class libsvm/svm_model.class libsvm/svm_node.class \
- libsvm/svm_parameter.class libsvm/svm_problem.class \
+FILES = libsvm/svm_node.class libsvm/svm_parameter.class \
+ libsvm/svm_model.class libsvm/svm_problem.class libsvm/svm.class\
svm_train.class svm_predict.class svm_toy.class svm_train.class svm_predict.class svm_toy.class
-#JAVAC = jikes -#JAVAC = jikes
-#JAVAC_FLAGS = -target 1.1 -source 1.3 -JAVAC_FLAGS = -target 1.5 -source 1.5
-JAVAC = javac -JAVAC = javac
-JAVAC_FLAGS = -# JAVAC_FLAGS =
+JAVA_TARGETDIR=${INSTDIR}/share/libsvm/java +JAVA_TARGETDIR=${INSTDIR}/share/libsvm/java
+JAVA_DOCDIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER} +JAVA_DOCDIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER}
+JAVAC = ecj
+#JAVAC_FLAGS = -target 1.3 -source 1.3
+CLASSPATH = . +CLASSPATH = .
+#JAVAC_FLAGS = --classpath=${CLASSPATH} +JAVAC_FLAGS = -target 1.5 -source 1.5 -classpath ${CLASSPATH}
+JAVAC_FLAGS = -classpath ${CLASSPATH} +
+ifndef JAVAC
+JAVAC=javac
+endif
+
+ifndef JAR
+JAR=jar
+endif
+
-all: $(FILES) all: $(FILES)
- jar cvf libsvm.jar *.class libsvm/*.class - jar cvf libsvm.jar *.class libsvm/*.class
+all: $(FILES) + ${JAR} cvf libsvm.jar *.class libsvm/*.class
+ gjar cvf libsvm.jar *.class libsvm/*.class
.java.class: .java.class:
$(JAVAC) $(JAVAC_FLAGS) $< $(JAVAC) $(JAVAC_FLAGS) $<
@@ -17,8 +20,22 @@ all: $(FILES) @@ -17,8 +26,22 @@ all: $(FILES)
libsvm/svm.java: libsvm/svm.m4 libsvm/svm.java: libsvm/svm.m4
m4 libsvm/svm.m4 > libsvm/svm.java m4 libsvm/svm.m4 > libsvm/svm.java
@ -106,8 +107,8 @@ diff -up ./java/Makefile.orig ./java/Makefile
dist: clean all dist: clean all
rm *.class libsvm/*.class rm *.class libsvm/*.class
diff -up ./java/svm_toy.java.orig ./java/svm_toy.java diff -up ./java/svm_toy.java.orig ./java/svm_toy.java
--- ./java/svm_toy.java.orig 2006-03-04 17:40:11.000000000 +1000 --- ./java/svm_toy.java.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./java/svm_toy.java 2008-01-02 09:43:19.000000000 +1000 +++ ./java/svm_toy.java 2008-02-04 10:13:02.000000000 +1000
@@ -6,7 +6,7 @@ import java.awt.event.*; @@ -6,7 +6,7 @@ import java.awt.event.*;
import java.io.*; import java.io.*;
@ -129,9 +130,9 @@ diff -up ./java/svm_predict.java.orig ./java/svm_predict.java
diff -up ./python/cross_validation.py.orig ./python/cross_validation.py diff -up ./python/cross_validation.py.orig ./python/cross_validation.py
diff -up ./python/svm_test.py.orig ./python/svm_test.py diff -up ./python/svm_test.py.orig ./python/svm_test.py
diff -up ./python/Makefile.orig ./python/Makefile diff -up ./python/Makefile.orig ./python/Makefile
--- ./python/Makefile.orig 2008-01-02 09:38:18.000000000 +1000 --- ./python/Makefile.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./python/Makefile 2008-01-02 11:26:08.000000000 +1000 +++ ./python/Makefile 2008-02-04 16:49:05.000000000 +1000
@@ -2,9 +2,16 @@ CC = g++ @@ -2,9 +2,16 @@ CXX? = g++
SWIG ?= swig SWIG ?= swig
#Windows: see ../README ../Makefile.win #Windows: see ../README ../Makefile.win
@ -150,22 +151,22 @@ diff -up ./python/Makefile.orig ./python/Makefile
LDFLAGS = -shared LDFLAGS = -shared
# Mac OS # Mac OS
# LDFLAGS = -framework Python -bundle # LDFLAGS = -framework Python -bundle
@@ -15,16 +22,35 @@ svmc.so: svmc_wrap.o svm.o @@ -15,16 +22,34 @@ svmc.so: svmc_wrap.o svm.o
$(CC) $(LDFLAGS) -o svmc.so svmc_wrap.o svm.o $(CXX) $(LDFLAGS) -o svmc.so svmc_wrap.o svm.o
svmc_wrap.o: svmc_wrap.c ../svm.h svmc_wrap.o: svmc_wrap.c ../svm.h
- $(CC) $(CFLAGS) -fPIC -c svmc_wrap.c - $(CXX) $(CFLAGS) -fPIC -c svmc_wrap.c
+ echo "PYTHON_VERSION=${PYTHON_VERSION}" +# echo "PYTHON_VERSION=${PYTHON_VERSION}"
+ echo "CFLAGS=${CFLAGS}" +# echo "CFLAGS=${CFLAGS}"
+ echo "CFLAGS_PYTHON=${CFLAGS_PYTHON}" +# echo "CFLAGS_PYTHON=${CFLAGS_PYTHON}"
+ $(CC) $(CFLAGS_PYTHON) -fPIC -c svmc_wrap.c + $(CXX) $(CFLAGS_PYTHON) -fPIC -c svmc_wrap.c
svmc_wrap.c: svmc.i svmc_wrap.c: svmc.i
$(SWIG) -python -noproxy svmc.i $(SWIG) -python -noproxy svmc.i
svm.o: ../svm.cpp ../svm.h svm.o: ../svm.cpp ../svm.h
- $(CC) $(CFLAGS) -fPIC -c ../svm.cpp - $(CXX) $(CFLAGS) -fPIC -c ../svm.cpp
+ $(CC) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp + $(CXX) $(CFLAGS_PYTHON) -fPIC -c ../svm.cpp
clean: clean:
rm -f *~ *.o *.so *.pyc *.pyo svm.o rm -f *~ *.o *.so *.pyc *.pyo svm.o
@ -173,6 +174,7 @@ diff -up ./python/Makefile.orig ./python/Makefile
moreclean: clean moreclean: clean
rm -f svmc_wrap.c rm -f svmc_wrap.c
+ +
+
+install: all +install: all
+ mkdir -p ${PYTHON_TARGETDIR} + mkdir -p ${PYTHON_TARGETDIR}
+ install -m 755 cross_validation.py ${PYTHON_TARGETDIR} + install -m 755 cross_validation.py ${PYTHON_TARGETDIR}
@ -186,23 +188,22 @@ diff -up ./python/Makefile.orig ./python/Makefile
+uninstall: +uninstall:
+ rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm + rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm
+ +
+
+
diff -up ./python/test_cross_validation.py.orig ./python/test_cross_validation.py diff -up ./python/test_cross_validation.py.orig ./python/test_cross_validation.py
diff -up ./python/svm.py.orig ./python/svm.py diff -up ./python/svm.py.orig ./python/svm.py
diff -up ./tools/subset.py.orig ./tools/subset.py diff -up ./tools/subset.py.orig ./tools/subset.py
diff -up ./tools/checkdata.py.orig ./tools/checkdata.py
diff -up ./tools/easy.py.orig ./tools/easy.py diff -up ./tools/easy.py.orig ./tools/easy.py
--- ./tools/easy.py.orig 2004-06-26 23:42:52.000000000 +1000 --- ./tools/easy.py.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./tools/easy.py 2008-01-03 11:31:31.000000000 +1000 +++ ./tools/easy.py 2008-02-04 10:23:49.000000000 +1000
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
import sys import sys
import os import os
+from distutils.sysconfig import get_python_lib +from distutils.sysconfig import get_python_lib
from subprocess import *
if len(sys.argv) <= 1: if len(sys.argv) <= 1:
print 'Usage: %s training_file [testing_file]' % sys.argv[0] @@ -12,10 +13,10 @@ if len(sys.argv) <= 1:
@@ -11,10 +12,10 @@ if len(sys.argv) <= 1:
is_win32 = (sys.platform == 'win32') is_win32 = (sys.platform == 'win32')
if not is_win32: if not is_win32:
@ -218,9 +219,9 @@ diff -up ./tools/easy.py.orig ./tools/easy.py
else: else:
# example for windows # example for windows
diff -up ./tools/grid.py.orig ./tools/grid.py diff -up ./tools/grid.py.orig ./tools/grid.py
--- ./tools/grid.py.orig 2006-11-30 03:24:59.000000000 +1000 --- ./tools/grid.py.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./tools/grid.py 2008-01-03 13:03:06.000000000 +1000 +++ ./tools/grid.py 2008-02-04 10:13:02.000000000 +1000
@@ -11,7 +11,7 @@ from string import find, split, join, at @@ -11,7 +11,7 @@ from subprocess import *
is_win32 = (sys.platform == 'win32') is_win32 = (sys.platform == 'win32')
if not is_win32: if not is_win32:
@ -238,15 +239,15 @@ diff -up ./tools/grid.py.orig ./tools/grid.py
assert os.path.exists(gnuplot_exe),"gnuplot executable not found" assert os.path.exists(gnuplot_exe),"gnuplot executable not found"
assert os.path.exists(dataset_pathname),"dataset not found" assert os.path.exists(dataset_pathname),"dataset not found"
diff -up ./Makefile.orig ./Makefile diff -up ./Makefile.orig ./Makefile
--- ./Makefile.orig 2008-01-02 09:36:22.000000000 +1000 --- ./Makefile.orig 2007-11-06 23:32:49.000000000 +1000
+++ ./Makefile 2008-01-02 09:43:19.000000000 +1000 +++ ./Makefile 2008-02-04 17:22:47.000000000 +1000
@@ -1,8 +1,41 @@ @@ -1,8 +1,46 @@
CXXC = g++ CXX? = g++
CFLAGS = -Wall -O3 CFLAGS = -Wall -O3
+MAKE = make +MAKE = make
+LIBSVM_VER_MAJOR=2 +LIBSVM_VER_MAJOR=2
+LIBSVM_VER_MINOR=84 +LIBSVM_VER_MINOR=85
+LIBSVM_VER =${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR} +LIBSVM_VER=${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR}
+export LIBSVM_VER +export LIBSVM_VER
-all: svm-train svm-predict svm-scale -all: svm-train svm-predict svm-scale
@ -271,42 +272,51 @@ diff -up ./Makefile.orig ./Makefile
+LIB_INSTDIR=${INSTDIR}/..${LIBDIR} +LIB_INSTDIR=${INSTDIR}/..${LIBDIR}
+endif +endif
+ +
+ifndef LIBDIR
+LIBDIR=/usr/lib${X86_64}
+endif
+
+export LIBDIR
+export LIB_INSTDIR +export LIB_INSTDIR
+ +
+all: svm-train svm-predict svm-scale svm-python svm-java svm-lib +all: svm-train svm-predict svm-scale svm-python svm-java svm-lib svm-toy-gtk svm-toy-qt
+ +
+svm-lib: svm-share.o +svm-lib: svm-share.o
+ $(CXXC) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER_MAJOR}\ + $(CXX) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER_MAJOR}\
+ -o libsvm.so.${LIBSVM_VER} svm-share.o -lm + -o libsvm.so.${LIBSVM_VER} svm-share.o -lm
+svm-share.o: svm.cpp svm.h +svm-share.o: svm.cpp svm.h
+ $(CXXC) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o + $(CXX) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o
svm-predict: svm-predict.c svm.o svm-predict: svm-predict.c svm.o
$(CXXC) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
svm-train: svm-train.c svm.o svm-train: svm-train.c svm.o
@@ -11,5 +44,61 @@ svm-scale: svm-scale.c @@ -12,4 +50,61 @@ svm-scale: svm-scale.c
$(CXXC) $(CFLAGS) svm-scale.c -o svm-scale
svm.o: svm.cpp svm.h svm.o: svm.cpp svm.h
$(CXXC) $(CFLAGS) -c svm.cpp $(CXX) $(CFLAGS) -c svm.cpp
clean:
- rm -f *~ svm.o svm-train svm-predict svm-scale
+ rm -f *~ svm.o svm-train svm-predict svm-scale svm-toy/gtk/svm-toy-gtk svm-toy/qt/svm-toy-qt
+ ${MAKE} -C python clean
+ ${MAKE} -C java clean
+svm-python: +svm-python:
+ ${MAKE} -C python + ${MAKE} -C python
+svm-java: +svm-java:
+ ${MAKE} -C java + ${MAKE} -C java
+ +svm-toy-gtk:
+ ${MAKE} -C svm-toy/gtk
+svm-toy-qt:
+ ${MAKE} -C svm-toy/qt
+
+install: all +install: all
+ mkdir -p ${INSTDIR}/bin + mkdir -p ${INSTDIR}/bin
+ install -m 755 svm-train ${INSTDIR}/bin + install -m 755 svm-train ${INSTDIR}/bin
+ install -m 755 svm-predict ${INSTDIR}/bin + install -m 755 svm-predict ${INSTDIR}/bin
+ install -m 755 svm-scale ${INSTDIR}/bin + install -m 755 svm-scale ${INSTDIR}/bin
+# mkdir -p ${LIB_INSTDIR}/libsvm + mkdir -p ${LIB_INSTDIR}/libsvm
+ mkdir -p ${LIB_INSTDIR} + mkdir -p ${LIB_INSTDIR}
+# install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}/libsvm + install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}/libsvm
+ install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}
+# cd ${LIB_INSTDIR}/libsvm; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so +# cd ${LIB_INSTDIR}/libsvm; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so
+# cd ${LIB_INSTDIR}; ln -fs libsvm.so.${LIBSVM_VER} libsvm.so.${LIBSVM_VER_MAJOR} ;ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so + /sbin/ldconfig -n ${LIB_INSTDIR}/libsvm/
+ /sbin/ldconfig -n ${LIB_INSTDIR}
+ cd ${LIB_INSTDIR}; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so
+# install package libsvm-devel +# install package libsvm-devel
+# install -m 644 svm.o ${LIB_INSTDIR}/libsvm
+ mkdir -p ${INSTDIR}/include/libsvm + mkdir -p ${INSTDIR}/include/libsvm
+ install -m 644 svm.h ${INSTDIR}/include/libsvm + install -m 644 svm.h ${INSTDIR}/include/libsvm
+ mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm + mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm
@ -318,16 +328,16 @@ diff -up ./Makefile.orig ./Makefile
+ install -m 644 java/Makefile ${INSTDIR}/share/libsvm/src/java + install -m 644 java/Makefile ${INSTDIR}/share/libsvm/src/java
+ install -m 644 java/libsvm/*.java ${INSTDIR}/share/libsvm/src/java/libsvm + install -m 644 java/libsvm/*.java ${INSTDIR}/share/libsvm/src/java/libsvm
+ install -m 644 java/libsvm/*.m4 ${INSTDIR}/share/libsvm/src/java/libsvm + install -m 644 java/libsvm/*.m4 ${INSTDIR}/share/libsvm/src/java/libsvm
+# cp -R java ${INSTDIR}/share/libsvm/src
+# cp -R svm-toy ${INSTDIR}/share/libsvm/src
+# cp -R tools ${INSTDIR}/share/libsvm/src
+# cp -R windows ${INSTDIR}/share/libsvm/src
+ mkdir -p ${INSTDIR}/share/libsvm/examples
+ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples
+# install package libsvm-python +# install package libsvm-python
+ ${MAKE} -C python install + ${MAKE} -C python install
+# install package libsvm-java
+ ${MAKE} -C java install + ${MAKE} -C java install
+ +# install package svm-toy
+ install -m 755 svm-toy/gtk/svm-toy-gtk ${INSTDIR}/bin
+ install -m 755 svm-toy/qt/svm-toy-qt ${INSTDIR}/bin
+# install examples
+ mkdir -p ${INSTDIR}/share/libsvm/examples
+ install -m 644 heart_scale ${INSTDIR}/share/libsvm/examples
+uninstall: +uninstall:
+ rm -f ${INSTDIR}/bin/svm-train + rm -f ${INSTDIR}/bin/svm-train
+ rm -f ${INSTDIR}/bin/svm-predict + rm -f ${INSTDIR}/bin/svm-predict
@ -339,10 +349,77 @@ diff -up ./Makefile.orig ./Makefile
+ rm -fr ${INSTDIR}/libsvm + rm -fr ${INSTDIR}/libsvm
+ ${MAKE} -C python uninstall + ${MAKE} -C python uninstall
+ ${MAKE} -C java uninstall + ${MAKE} -C java uninstall
+ rm -f ${INSTDIR}/bin/svm-toy-gtk
+ rm -f ${INSTDIR}/bin/svm-toy-qt
+ +
clean: diff -up ./svm-toy/qt/Makefile.orig ./svm-toy/qt/Makefile
rm -f *~ svm.o svm-train svm-predict svm-scale --- ./svm-toy/qt/Makefile.orig 2008-02-04 15:59:51.000000000 +1000
+ ${MAKE} -C python clean +++ ./svm-toy/qt/Makefile 2008-02-04 17:19:43.000000000 +1000
+ ${MAKE} -C java clean @@ -1,5 +1,6 @@
CXX? = g++
CFLAGS = -Wall -O3 -DQT_THREAD_SUPPORT
+QTDIR = $(LIBDIR)/qt-3.3
BIN = $(QTDIR)/bin
INCLUDE = $(QTDIR)/include
LIB = $(QTDIR)/lib
@@ -7,13 +8,17 @@ LIB = $(QTDIR)/lib
#INCLUDE = /usr/include/qt3
#LIB = /usr/lib/qt3
-svm-toy: svm-toy.cpp svm-toy.moc ../../svm.o
- $(CXX) -I$(INCLUDE) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy -L$(LIB) -lqt-mt
+all: svm-toy-qt
+ +
+svm-toy-qt: svm-toy.cpp svm-toy.moc ../../svm.o
+ $(CXX) -I$(INCLUDE) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy-qt -L$(LIB) -lqt-mt
# add -pthread for bsd
svm-toy.moc: svm-toy.cpp
+ echo "LIBDIR=${LIBDIR}"
+ echo "QTDIR=${QTDIR}"
$(BIN)/moc svm-toy.cpp -o svm-toy.moc
-../../svm.o:
- cd ../..; make svm.o
+#../../svm.o:
+# cd ../..; make svm.o
clean:
rm -f *~ svm-toy svm-toy.moc ../../svm.o
diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile
--- ./svm-toy/gtk/Makefile.orig 2008-02-04 15:44:19.000000000 +1000
+++ ./svm-toy/gtk/Makefile 2008-02-04 17:19:37.000000000 +1000
@@ -1,22 +1,25 @@
CC? = gcc
CXX? = g++
-CFLAGS = -Wall -O3 -g `gtk-config --cflags`
-LIBS = `gtk-config --libs`
+#CFLAGS = -Wall -O3 -g `gtk-config --cflags`
+#LIBS = `gtk-config --libs`
+COPT = `pkg-config --cflags --libs gtk+-2.0`
-svm-toy: main.o interface.o callbacks.o ../../svm.o
- $(CXX) $(CFLAGS) main.o interface.o callbacks.o ../../svm.o -o svm-toy $(LIBS)
+all: svm-toy-gtk
+
+svm-toy-gtk: main.o interface.o callbacks.o ../../svm.o
+ $(CXX) $(COPT) main.o interface.o callbacks.o ../../svm.o -o svm-toy-gtk
main.o: main.c
- $(CC) $(CFLAGS) -c main.c
+ $(CC) $(COPT) -c main.c
interface.o: interface.c interface.h
- $(CC) $(CFLAGS) -c interface.c
+ $(CC) $(COPT) -c interface.c
callbacks.o: callbacks.cpp callbacks.h
- $(CXX) $(CFLAGS) -c callbacks.cpp
+ $(CXX) $(COPT) -c callbacks.cpp
-../../svm.o:
- cd ../..; make svm.o
+#../../svm.o:
+# cd ../..; make svm.o
clean:
- rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o ../../svm.o
+ rm -f *~ callbacks.o svm-toy main.o interface.o callbacks.o

@ -1,6 +1,6 @@
Name: libsvm Name: libsvm
Version: 2.84 Version: 2.85
Release: 9%{?dist} Release: 0%{?dist}
Summary: A Library for Support Vector Machines Summary: A Library for Support Vector Machines
Group: Development/Libraries Group: Development/Libraries
@ -8,17 +8,20 @@ License: BSD
URL: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ URL: http://www.csie.ntu.edu.tw/~cjlin/libsvm/
Source0: %{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
#Source0: http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/%{name}+tar.gz #Source0: http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/%{name}+tar.gz
Source1: ChangeLog Source1: http://www.csie.ntu.edu.tw/~cjlin/libsvm/log
#Source1: http://www.csie.ntu.edu.tw/~cjlin/libsvm/log Source2: http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
Patch0: %{name}-%{version}.patch Patch0: %{name}-%{version}.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
#BuildRequires: glibc-devel
%define libsvm_ver_major 2 %define libsvm_ver_major 2
%{!?pyver: %define pyver %(python -c 'import sys; print(sys.version[0:3])')}%{!?pyver: %define pyver %(python -c 'import sys; print(sys.version[0:3])')} %{!?pyver: %define pyver %(python -c 'import sys; print(sys.version[0:3])')}
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%define libsvm_python_dir %{python_sitearch}/libsvm %define libsvm_python_dir %{python_sitearch}/libsvm
%define javac javac
%define jar jar
%define libdir_libsvm %{_libdir}/libsvm
%description %description
LIBSVM is an integrated software for support vector classification, LIBSVM is an integrated software for support vector classification,
@ -51,8 +54,9 @@ programs with libsvm in Python.
%package java %package java
Summary: Java tools and interfaces for libsvm Summary: Java tools and interfaces for libsvm
Group: Development/Libraries Group: Development/Libraries
BuildRequires: eclipse-ecj >= 3 BuildRequires: java-1.5.0-gcj-devel >= 1.5.0.0
Requires: eclipse-ecj >= 3 #Client doesn't necessory use gcj
#Requires: java-1.5.0-gcj >= 1.5.0.0
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description java %description java
@ -60,29 +64,58 @@ Java tools and interfaces for libsvm.
Install this package if you want to develop Install this package if you want to develop
programs with libsvm in Java. programs with libsvm in Java.
%package svm-toy-gtk
Summary: GTK version of svm-toy (libsvm demostration program)
Group: Development/Libraries
BuildRequires: gtk2-devel
BuildRequires: gtk2
Requires: %{name} = %{version}-%{release}
%description svm-toy-gtk
svm-toy is a libsvm demostration program which has a gtk-GUI to
display the derived separating hyperplane.
%package svm-toy-qt
Summary: QT version of svm-toy (libsvm demostration program)
Group: Development/Libraries
BuildRequires: qt-devel
BuildRequires: qt
Requires: %{name} = %{version}-%{release}
%description svm-toy-qt
svm-toy is a libsvm demostration program which has a qt-GUI to
display the derived separating hyperplane.
%prep %prep
%setup -q %setup -q
%patch0 -p0 -b .bak %patch0 -p0 -b .bak
cp ../../SOURCES/log ChangeLog
cp ../../SOURCES/guide.pdf .
%build %build
make all CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" make all CFLAGS="$RPM_OPT_FLAGS" PYTHON_VERSION="%{pyver}" JAVAC="%{javac}" JAR="%{jar}"
%{__sed} -i 's/\r//' FAQ.html %{__sed} -i 's/\r//' FAQ.html
%{__sed} -i 's/\r//' ChangeLog
mv python/README python/README-Python mv python/README python/README-Python
mv tools/README tools/README-Tools mv tools/README tools/README-Tools
cp README java/README-Java cp README java/README-Java
cp README svm-toy/gtk
cp README svm-toy/qt
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}"
#cd ${RPM_BUILD_ROOT}%{libdir_libsvm}; ln -sf %{name}.so.%{version} %{name}.so
rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src
%post -p /sbin/ldconfig %post
/sbin/ldconfig %{libdir_libsvm}
%postun -p /sbin/ldconfig %postun
/sbin/ldconfig %{libdir_libsvm}
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
@ -90,21 +123,22 @@ rm -rf $RPM_BUILD_ROOT
%files %files
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc COPYRIGHT FAQ.html %doc COPYRIGHT FAQ.html ChangeLog guide.pdf
%{_bindir}/svm-predict %{_bindir}/svm-predict
%{_bindir}/svm-scale %{_bindir}/svm-scale
%{_bindir}/svm-train %{_bindir}/svm-train
%dir %{_datadir}/%{name} %dir %{_datadir}/%{name}
%{_datadir}/%{name}/examples %{_datadir}/%{name}/examples
%{_libdir}/%{name}.so.%{version} %dir %{libdir_libsvm}
%{_libdir}/%{name}.so.%{libsvm_ver_major} %{libdir_libsvm}/%{name}.so.%{version}
%{libdir_libsvm}/%{name}.so.%{libsvm_ver_major}
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc README %doc README
%{_includedir}/%{name}/ %{_includedir}/%{name}/
%{_libdir}/%{name}.so #%{libdir_libsvm}/%{name}.so
%files python %files python
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -117,7 +151,25 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/%{name}/java %{_datadir}/%{name}/java
#%{_datadir}/javadoc/%{name}-%{version} #%{_datadir}/javadoc/%{name}-%{version}
%files svm-toy-gtk
%defattr(-,root,root,-)
%doc svm-toy/gtk/README
%{_bindir}/svm-toy-gtk
%files svm-toy-qt
%defattr(-,root,root,-)
%doc svm-toy/qt/README
%{_bindir}/svm-toy-qt
%changelog %changelog
* Mon Feb 04 2008 Ding-Yi Chen <dchen@redhat.com> - 2.85-0
- Upgrade to 2.85
- Include guide.pdf in main package
- Change the dependent from eclipse-ecj to java-1.5.0-gcj
- Add svm-toy-gtk
- Add svm-toy-qt
* Wed Dec 20 2007 Ding-Yi Chen <dchen@redhat.com> - 2.84-9 * Wed Dec 20 2007 Ding-Yi Chen <dchen@redhat.com> - 2.84-9
- [Bug 254091] Comment 19 - [Bug 254091] Comment 19
- Fix python/Makefile - Fix python/Makefile

@ -123,5 +123,13 @@ file updated.
Modify do_shrinking() so variable names are the same as libsvm Modify do_shrinking() so variable names are the same as libsvm
document document
2.85: 2007/11/? 2.85: 2007/11/6
fix minor memory leak in svm-predict.c fix minor memory leak in svm-predict.c
add tools/checkdata.py
java to 1.5
Makefile: CXX?
Makefile.win: avoid warning from .net 2005
avoid warning of gcc 4.2
sigma 0.001 to 1e-12; in Newton direction of prob output
2 * (long int) l avoid warning of old Visual C++
grid.py: avoid gnuplot problem

@ -1 +1,2 @@
a7bd21b21510e9634950715c2b4a4ce9 libsvm-2.84.tar.gz aae7a8f7e357e86e1c893b706bb02a63 guide.pdf
c839d919cc6fa7b5ad86ea37b7cebcc3 libsvm-2.85.tar.gz

Loading…
Cancel
Save