diff -up ./Makefile.packageMain ./Makefile --- ./Makefile.packageMain 2011-06-26 05:55:06.000000000 +1000 +++ ./Makefile 2011-11-08 09:42:13.106501233 +1000 @@ -1,11 +1,44 @@ CXX ?= g++ -CFLAGS = -Wall -Wconversion -O3 -fPIC +CFLAGS = ${RPM_CFLAGS} -Wall -Wconversion -O3 -fPIC SHVER = 2 +MAKE = make +DOT_LIBS=.libs +LIBS= -L${DOT_LIBS} -lsvm +export LIBSVM_VER -all: svm-train svm-predict svm-scale +IS_64:=$(shell /bin/uname -i | awk '/64/ {print 64}') + +PREFIXDIR?= /usr +export PREFIXDIR + +LIBDIR?=${PREFIXDIR}/lib${IS_64} +export LIBDIR + +DATADIR?=${PREFIXDIR}/share +export DATADIR + +BINDIR?=${PREFIXDIR}/bin +export BINDIR + +INCLUDEDIR_INSTALL:=${DESTDIR}/${PREFIXDIR}/include +export INCLUDEDIR_INSTALL + +LIBDIR_INSTALL:=${DESTDIR}/${LIBDIR} +export LIBDIR_INSTALL + +DATADIR_INSTALL:=${DESTDIR}/${DATADIR} +export DATA_INSTALL + +BINDIR_INSTALL:=${DESTDIR}/${BINDIR} +export BINDIR_INSTALL + + +all: lib svm-train svm-predict svm-scale svm-python svm-java svm-toy-gtk svm-toy-qt lib: svm.o $(CXX) -shared -dynamiclib -Wl,-soname,libsvm.so.$(SHVER) svm.o -o libsvm.so.$(SHVER) + ln -sf libsvm.so.$(SHVER) libsvm.so + svm-predict: svm-predict.c svm.o $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm @@ -16,4 +49,64 @@ svm-scale: svm-scale.c svm.o: svm.cpp svm.h $(CXX) $(CFLAGS) -c svm.cpp clean: - rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER) + 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: + ${MAKE} -C python + +svm-java: +ifneq ("${NO_JAVA}","NO_JAVA") + ${MAKE} -C java +endif +svm-toy-gtk: + ${MAKE} -C svm-toy/gtk + +svm-toy-qt: + ${MAKE} -C svm-toy/qt + +install: all + mkdir -p ${BINDIR_INSTALL} + install -m 755 svm-train ${BINDIR_INSTALL} + install -m 755 svm-predict ${BINDIR_INSTALL} + install -m 755 svm-scale ${BINDIR_INSTALL} + mkdir -p ${LIBDIR_INSTALL} + install -m 755 libsvm.so.$(SHVER) ${LIBDIR_INSTALL} +# install package libsvm-devel + mkdir -p ${INCLUDEDIR_INSTALL}/libsvm + install -m 644 svm.h ${INCLUDEDIR_INSTALL}/libsvm + mkdir -p ${DATADIR_INSTALL}/libsvm/src/java/libsvm + install -m 644 *.h ${DATADIR_INSTALL}/libsvm/src + install -m 644 *.c ${DATADIR_INSTALL}/libsvm/src + install -m 644 *.cpp ${DATADIR_INSTALL}/libsvm/src + install -m 644 Makefile ${DATADIR_INSTALL}/libsvm/src +ifneq ("${NO_JAVA}","NO_JAVA") + install -m 644 java/*.java ${DATADIR_INSTALL}/libsvm/src/java + install -m 644 java/Makefile ${DATADIR_INSTALL}/libsvm/src/java + install -m 644 java/libsvm/*.java ${DATADIR_INSTALL}/libsvm/src/java/libsvm + install -m 644 java/libsvm/*.m4 ${DATADIR_INSTALL}/libsvm/src/java/libsvm +# install package libsvm-java + ${MAKE} -C java install +endif +# install package libsvm-python + ${MAKE} -C python install +# install package svm-toy + install -m 755 svm-toy/gtk/svm-toy-gtk ${BINDIR_INSTALL} + install -m 755 svm-toy/qt/svm-toy-qt ${BINDIR_INSTALL} +# install examples + mkdir -p ${DATADIR_INSTALL}/libsvm/examples + install -m 644 heart_scale ${DATADIR_INSTALL}/libsvm/examples +uninstall: + rm -f ${BINDIR_INSTALL}/svm-train + rm -f ${BINDIR_INSTALL}/svm-predict + rm -f ${BINDIR_INSTALL}/svm-scale + rm -fr ${DATADIR_INSTALL}/libsvm + rm -f ${INCLUDEDIR_INSTALL}/libsvm/svm.h + rm -f ${LIBDIR_INSTALL}/libsvm.so* + ${MAKE} -C python uninstall +ifneq ("${NO_JAVA}","NO_JAVA") + ${MAKE} -C java uninstall +endif + rm -f ${BINDIR_INSTALL}/svm-toy-gtk + rm -f ${BINDIR_INSTALL}/svm-toy-qt +