diff -up ./Makefile.packageMain ./Makefile --- ./Makefile.packageMain 2010-09-12 22:11:10.000000000 +1000 +++ ./Makefile 2010-12-14 16:00:15.269681221 +1000 @@ -1,11 +1,40 @@ 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 + +ifndef DESTDIR + INSTDIR=/usr +else + INSTDIR=${DESTDIR}/usr +endif + +export INSTDIR + +IS_64=$(shell /bin/uname -i | awk '/64/ {print 64}') + +ifndef LIBDIR + LIB_INSTDIR=${INSTDIR}/lib${IS_64} +else + LIB_INSTDIR=${INSTDIR}/..${LIBDIR} +endif + +ifndef LIBDIR + LIBDIR=/usr/lib${IS_64} +endif + +export LIBDIR +export LIB_INSTDIR + +all: lib svm-train svm-predict svm-scale svm-python svm-java svm-toy-gtk svm-toy-qt -all: svm-train svm-predict svm-scale lib: svm.o - $(CXX) -shared -dynamiclib svm.o -o libsvm.so.$(SHVER) + $(CXX) -shared -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 +45,65 @@ 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 ${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} + install -m 755 libsvm.so.$(SHVER) ${LIB_INSTDIR} +# install package libsvm-devel + 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 +ifneq ("${NO_JAVA}","NO_JAVA") + 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 +# 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 ${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: + 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 +ifneq ("${NO_JAVA}","NO_JAVA") + ${MAKE} -C java uninstall +endif + rm -f ${INSTDIR}/bin/svm-toy-gtk + rm -f ${INSTDIR}/bin/svm-toy-qt