diff -up ./Makefile.orig ./Makefile --- ./Makefile.orig 2007-08-22 15:23:34.000000000 +1000 +++ ./Makefile 2007-08-27 15:48:58.000000000 +1000 @@ -1,7 +1,31 @@ CXXC = g++ CFLAGS = -Wall -O3 +MAKE = make -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-predict: svm-predict.c svm.o $(CXXC) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm @@ -11,5 +35,45 @@ 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 + +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 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 + 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 + 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 + +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 + clean: rm -f *~ svm.o svm-train svm-predict svm-scale + ${MAKE} -C python clean + diff -up ./python/Makefile.orig ./python/Makefile --- ./python/Makefile.orig 2007-08-27 11:11:38.000000000 +1000 +++ ./python/Makefile 2007-08-29 17:10:28.000000000 +1000 @@ -2,13 +2,19 @@ CC = g++ SWIG ?= swig #Windows: see ../README ../Makefile.win -PYTHON_INCLUDEDIR ?= /usr/include/python2.4 +PYTHON_VERSION=${shell python -V 2> python.ver ; cat python.ver | /bin/awk 'BEGIN {FS= "[ .]"} {printf("%s.%s",$$2,$$3)}'; rm -f python.ver} + +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 # Mac OS # LDFLAGS = -framework Python -bundle - all: svmc.so svmc.so: svmc_wrap.o svm.o @@ -28,3 +34,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/grid.py.orig ./tools/grid.py --- ./tools/grid.py.orig 2007-08-28 11:48:03.000000000 +1000 +++ ./tools/grid.py 2007-08-28 11:58:22.000000000 +1000 @@ -11,7 +11,7 @@ from string import find, split, join, at is_win32 = (sys.platform == 'win32') if not is_win32: - svmtrain_exe = "../svm-train" + svmtrain_exe = "/usr/bin/svm-train" gnuplot_exe = "/usr/bin/gnuplot" else: # example for windows diff -up ./tools/easy.py.orig ./tools/easy.py --- ./tools/easy.py.orig 2007-08-28 11:47:53.000000000 +1000 +++ ./tools/easy.py 2007-08-28 12:13:58.000000000 +1000 @@ -11,10 +11,10 @@ if len(sys.argv) <= 1: is_win32 = (sys.platform == 'win32') if not is_win32: - svmscale_exe = "../svm-scale" - svmtrain_exe = "../svm-train" - svmpredict_exe = "../svm-predict" - grid_py = "./grid.py" + svmscale_exe = "/usr/bin/svm-scale" + svmtrain_exe = "/usr/bin/svm-train" + svmpredict_exe = "/usr/bin/svm-predict" + grid_py = sys.argv[0].replace("easy.py","grid.py") gnuplot_exe = "/usr/bin/gnuplot" else: # example for windows diff -up ./tools/subset.py.orig ./tools/subset.py