diff -up ./java/libsvm/svm_problem.java.orig ./java/libsvm/svm_problem.java --- ./java/libsvm/svm_problem.java.orig 2007-12-03 09:36:06.000000000 +1000 +++ ./java/libsvm/svm_problem.java 2007-12-03 10:00:40.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_problem implements java.io.Serializable { + static final long serialVersionUID = -4451389443706847272L; public int l; public double[] y; public svm_node[][] x; diff -up ./java/libsvm/svm_node.java.orig ./java/libsvm/svm_node.java --- ./java/libsvm/svm_node.java.orig 2007-12-03 09:35:56.000000000 +1000 +++ ./java/libsvm/svm_node.java 2007-12-03 10:00:40.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_node implements java.io.Serializable { + static final long serialVersionUID = 2709444323471798245L; public int index; public double value; } diff -up ./java/libsvm/svm_parameter.java.orig ./java/libsvm/svm_parameter.java --- ./java/libsvm/svm_parameter.java.orig 2007-12-03 09:35:45.000000000 +1000 +++ ./java/libsvm/svm_parameter.java 2007-12-03 10:00:40.000000000 +1000 @@ -1,6 +1,7 @@ package libsvm; public class svm_parameter implements Cloneable,java.io.Serializable { + static final long serialVersionUID = 2709444323471798245L; /* svm_type */ public static final int C_SVC = 0; public static final int NU_SVC = 1; diff -up ./java/libsvm/svm_model.java.orig ./java/libsvm/svm_model.java --- ./java/libsvm/svm_model.java.orig 2007-12-03 09:35:34.000000000 +1000 +++ ./java/libsvm/svm_model.java 2007-12-03 10:00:40.000000000 +1000 @@ -4,6 +4,7 @@ package libsvm; public class svm_model implements java.io.Serializable { + static final long serialVersionUID = 2709444323471798245L; svm_parameter param; // parameter int nr_class; // number of classes, = 2 in regression/one class svm int l; // total #SV diff -up ./java/libsvm/svm.java.orig ./java/libsvm/svm.java diff -up ./java/libsvm/svm.m4.orig ./java/libsvm/svm.m4 diff -up ./java/svm_toy.java.orig ./java/svm_toy.java --- ./java/svm_toy.java.orig 2007-12-03 09:34:36.000000000 +1000 +++ ./java/svm_toy.java 2007-12-03 10:31:03.000000000 +1000 @@ -6,7 +6,7 @@ import java.awt.event.*; import java.io.*; public class svm_toy extends Applet { - + static final long serialVersionUID = -8325676470152687806L; static final String DEFAULT_PARAM="-t 2 -c 100"; int XLEN; int YLEN; @@ -453,6 +453,7 @@ public class svm_toy extends Applet { } class AppletFrame extends Frame { + static final long serialVersionUID = -8428435143024670779L; AppletFrame(String title, Applet applet, int width, int height) { super(title); diff -up ./java/svm_predict.java.orig ./java/svm_predict.java diff -up ./java/Makefile.orig ./java/Makefile --- ./java/Makefile.orig 2007-12-03 09:33:44.000000000 +1000 +++ ./java/Makefile 2007-12-04 09:38:06.000000000 +1000 @@ -1,15 +1,18 @@ .SUFFIXES: .class .java -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 -#JAVAC = jikes -#JAVAC_FLAGS = -target 1.1 -source 1.3 -JAVAC = javac -JAVAC_FLAGS = +JAVA_TARGETDIR=${INSTDIR}/share/libsvm/java +JAVA_DOCDIR=${INSTDIR}/share/javadoc/libsvm-${LIBSVM_VER} +JAVAC = ecj +#JAVAC_FLAGS = -target 1.3 -source 1.3 +CLASSPATH = . +#JAVAC_FLAGS = --classpath=${CLASSPATH} +JAVAC_FLAGS = -classpath ${CLASSPATH} -all: $(FILES) - jar cvf libsvm.jar *.class libsvm/*.class +all: $(FILES) + gjar cvf libsvm.jar *.class libsvm/*.class .java.class: $(JAVAC) $(JAVAC_FLAGS) $< @@ -17,8 +20,22 @@ all: $(FILES) libsvm/svm.java: libsvm/svm.m4 m4 libsvm/svm.m4 > libsvm/svm.java +javadoc: + javadoc -d docs *.java libsvm/*.java + +install: + mkdir -p ${JAVA_TARGETDIR} + install -m 644 libsvm.jar ${JAVA_TARGETDIR} + install -m 644 test_applet.html ${JAVA_TARGETDIR} + mkdir -p ${JAVA_DOCDIR} +# cd docs; cp -R * ${JAVA_DOCDIR} +uninstall: + rm -fr ${JAVA_TARGETDIR} + rm -fr ${JAVA_DOCDIR} + clean: rm -f libsvm/*.class *.class *.jar libsvm/*~ *~ libsvm/svm.java + rm -rf docs dist: clean all rm *.class libsvm/*.class diff -up ./java/test_applet.html.orig ./java/test_applet.html --- ./java/test_applet.html.orig 2007-12-03 09:35:06.000000000 +1000 +++ ./java/test_applet.html 2007-12-03 10:00:40.000000000 +1000 @@ -1 +1,3 @@ - + + + diff -up ./java/svm_train.java.orig ./java/svm_train.java diff -up ./Makefile.orig ./Makefile --- ./Makefile.orig 2007-12-03 09:33:37.000000000 +1000 +++ ./Makefile 2007-12-03 15:16:15.000000000 +1000 @@ -1,8 +1,39 @@ CXXC = g++ CFLAGS = -Wall -O3 +MAKE = make +LIBSVM_VER =2.84 +export LIBSVM_VER -all: svm-train svm-predict svm-scale +ifndef DESTDIR +INSTDIR=/usr +else +INSTDIR=${DESTDIR}/usr +endif +export INSTDIR + +PROCESSOR=$(shell /bin/uname -p) +ifeq "${PROCESSOR}" "x86_64" +X86_64=64 +else +X86_64= +endif + +ifndef LIBDIR +LIB_INSTDIR=${INSTDIR}/lib${X86_64} +else +LIB_INSTDIR=${INSTDIR}/..${LIBDIR} +endif + +export LIB_INSTDIR + +all: svm-train svm-predict svm-scale svm-python svm-java svm-lib + +svm-lib: svm-share.o + $(CXXC) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER}\ \ + -o libsvm.so.${LIBSVM_VER} svm-share.o -lm +svm-share.o: svm.cpp svm.h + $(CXXC) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o svm-predict: svm-predict.c svm.o $(CXXC) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm svm-train: svm-train.c svm.o @@ -11,5 +42,56 @@ svm-scale: svm-scale.c $(CXXC) $(CFLAGS) svm-scale.c -o svm-scale svm.o: svm.cpp svm.h $(CXXC) $(CFLAGS) -c svm.cpp +svm-python: + ${MAKE} -C python +svm-java: + ${MAKE} -C java + +install: all + mkdir -p ${INSTDIR}/bin + install -m 755 svm-train ${INSTDIR}/bin + install -m 755 svm-predict ${INSTDIR}/bin + install -m 755 svm-scale ${INSTDIR}/bin + mkdir -p ${LIB_INSTDIR}/libsvm + install -m 755 libsvm.so.2.84 ${LIB_INSTDIR}/libsvm + cd ${LIB_INSTDIR}/libsvm; ln -s libsvm.so.${LIBSVM_VER} libsvm.so +# install package libsvm-devel + install -m 644 svm.o ${LIB_INSTDIR}/libsvm + mkdir -p ${INSTDIR}/include/libsvm + install -m 644 svm.h ${INSTDIR}/include/libsvm + mkdir -p ${INSTDIR}/share/libsvm/src/java/libsvm + install -m 644 *.h ${INSTDIR}/share/libsvm/src + install -m 644 *.c ${INSTDIR}/share/libsvm/src + install -m 644 *.cpp ${INSTDIR}/share/libsvm/src + install -m 644 Makefile ${INSTDIR}/share/libsvm/src + install -m 644 java/*.java ${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/*.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 + ${MAKE} -C python install + ${MAKE} -C java install + +uninstall: + rm -f ${INSTDIR}/bin/svm-train + rm -f ${INSTDIR}/bin/svm-predict + rm -f ${INSTDIR}/bin/svm-scale + rm -fr ${INSTDIR}/libsvm/examples + rm -f ${INSTDIR}/include/libsvm/svm.h + rm -f ${LIB_INSTDIR}/libsvm/svm.o + rm -fr ${INSTDIR}/libsvm/src + rm -fr ${INSTDIR}/libsvm + ${MAKE} -C python uninstall + ${MAKE} -C java uninstall + clean: rm -f *~ svm.o svm-train svm-predict svm-scale + ${MAKE} -C python clean + ${MAKE} -C java clean + diff -up ./python/Makefile.orig ./python/Makefile --- ./python/Makefile.orig 2007-12-03 11:13:21.000000000 +1000 +++ ./python/Makefile 2007-12-03 11:14:48.000000000 +1000 @@ -2,7 +2,14 @@ CC = g++ SWIG ?= swig #Windows: see ../README ../Makefile.win -PYTHON_INCLUDEDIR ?= /usr/include/python2.4 +PYTHON_TEMP:=${shell mktemp} +PYTHON_VERSION:=${shell python -V 2> ${PYTHON_TEMP} ; cat ${PYTHON_TEMP} | awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f ${PYTHON_TEMP}} +ifndef PYTHON_INCLUDEDIR + +PYTHON_INCLUDEDIR?= /usr/include/python${PYTHON_VERSION} + +endif +PYTHON_TARGETDIR=${LIB_INSTDIR}/python${PYTHON_VERSION}/site-packages/libsvm CFLAGS = -O3 -I$(PYTHON_INCLUDEDIR) -I.. LDFLAGS = -shared @@ -28,3 +35,19 @@ clean: moreclean: clean rm -f svmc_wrap.c + +install: all + mkdir -p ${PYTHON_TARGETDIR} + install -m 755 cross_validation.py ${PYTHON_TARGETDIR} + install -m 644 svm.py ${PYTHON_TARGETDIR} + install -m 755 svm_test.py ${PYTHON_TARGETDIR} + install -m 755 test_cross_validation.py ${PYTHON_TARGETDIR} + install -m 644 *.i ${PYTHON_TARGETDIR} + install -m 755 *.so ${PYTHON_TARGETDIR} + install -m 755 ../tools/*.py ${PYTHON_TARGETDIR} + +uninstall: + rm -fr ${LIBDIR}/python${PYTHON_VERSION}/site-packages/libsvm + + + diff -up ./tools/easy.py.orig ./tools/easy.py diff -up ./tools/grid.py.orig ./tools/grid.py diff -up ./tools/subset.py.orig ./tools/subset.py