diff --git a/libsvm-2.85.patch b/libsvm-2.85.patch index 0e58eee..dc68a3d 100644 --- a/libsvm-2.85.patch +++ b/libsvm-2.85.patch @@ -240,23 +240,34 @@ diff -up ./tools/grid.py.orig ./tools/grid.py assert os.path.exists(dataset_pathname),"dataset not found" diff -up ./Makefile.orig ./Makefile --- ./Makefile.orig 2007-11-06 23:32:49.000000000 +1000 -+++ ./Makefile 2008-02-05 11:00:21.000000000 +1000 -@@ -1,8 +1,41 @@ ++++ ./Makefile 2008-02-06 15:12:25.000000000 +1000 +@@ -1,15 +1,111 @@ CXX? = g++ CFLAGS = -Wall -O3 +MAKE = make +LIBSVM_VER_MAJOR=2 +LIBSVM_VER_MINOR=85 +LIBSVM_VER=${LIBSVM_VER_MAJOR}.${LIBSVM_VER_MINOR} -+export LIBSVM_VER ++DOT_LIBS=.libs ++LIBS= -L${DOT_LIBS} -lsvm -all: svm-train svm-predict svm-scale ++export LIBSVM_VER + +-svm-predict: svm-predict.c svm.o +- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm +-svm-train: svm-train.c svm.o +- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm +-svm-scale: svm-scale.c +- $(CXX) $(CFLAGS) svm-scale.c -o svm-scale +-svm.o: svm.cpp svm.h +- $(CXX) $(CFLAGS) -c svm.cpp +ifndef DESTDIR +INSTDIR=/usr +else +INSTDIR=${DESTDIR}/usr +endif - ++ +export INSTDIR + +IS_64=$(shell /bin/uname -i | awk '/64/ {print 64}') @@ -276,17 +287,23 @@ diff -up ./Makefile.orig ./Makefile + +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: %{DOT_LIBS}/libsvm.so ++ ++%{DOT_LIBS}/libsvm.so: svm-share.o + $(CXX) -shared -Wl,-soname,libsvm.so.${LIBSVM_VER_MAJOR}\ + -o libsvm.so.${LIBSVM_VER} svm-share.o -lm ++ mkdir -p .libs ++ cd ${DOT_LIBS}; ln -sf ../libsvm.so.${LIBSVM_VER} libsvm.so +svm-share.o: svm.cpp svm.h + $(CXX) -g -fPIC $(CFLAGS) -c svm.cpp -o svm-share.o - svm-predict: svm-predict.c svm.o - $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm - svm-train: svm-train.c svm.o -@@ -12,4 +45,61 @@ svm-scale: svm-scale.c - svm.o: svm.cpp svm.h - $(CXX) $(CFLAGS) -c svm.cpp ++svm-predict: svm-predict.c %{DOT_LIBS}/libsvm.so ++ $(CXX) $(CFLAGS) svm-predict.c -o svm-predict $(LIBS) -lm ++svm-train: svm-train.c %{DOT_LIBS}/libsvm.so ++ $(CXX) $(CFLAGS) svm-train.c -o svm-train $(LIBS) -lm ++svm-scale: svm-scale.c %{DOT_LIBS}/libsvm.so ++ $(CXX) $(CFLAGS) svm-scale.c -o svm-scale $(LIBS) ++#svm.o: svm.cpp svm.h ++# $(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 @@ -306,11 +323,10 @@ diff -up ./Makefile.orig ./Makefile + 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 + mkdir -p ${LIB_INSTDIR} -+ install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR}/libsvm -+# cd ${LIB_INSTDIR}/libsvm; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so -+ /sbin/ldconfig -n ${LIB_INSTDIR}/libsvm/ ++ install -m 755 libsvm.so.${LIBSVM_VER} ${LIB_INSTDIR} ++ /sbin/ldconfig -n ${LIB_INSTDIR} ++ cd ${LIB_INSTDIR}; ln -fs libsvm.so.${LIBSVM_VER_MAJOR} libsvm.so +# install package libsvm-devel + mkdir -p ${INSTDIR}/include/libsvm + install -m 644 svm.h ${INSTDIR}/include/libsvm @@ -349,24 +365,26 @@ diff -up ./Makefile.orig ./Makefile + diff -up ./svm-toy/qt/Makefile.orig ./svm-toy/qt/Makefile --- ./svm-toy/qt/Makefile.orig 2008-02-04 15:59:51.000000000 +1000 -+++ ./svm-toy/qt/Makefile 2008-02-04 17:19:43.000000000 +1000 -@@ -1,5 +1,6 @@ ++++ ./svm-toy/qt/Makefile 2008-02-06 15:08:55.000000000 +1000 +@@ -1,19 +1,23 @@ 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 +-#BIN = /usr/bin +-#INCLUDE = /usr/include/qt3 +-#LIB = /usr/lib/qt3 ++DOT_LIBS=../../.libs ++LIBS= -L${DOT_LIBS} -lsvm -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 ++ $(CXX) -I$(INCLUDE) $(CFLAGS) svm-toy.cpp ../../svm.o -o svm-toy-qt -L$(LIB) $(LIBS) -lqt-mt # add -pthread for bsd svm-toy.moc: svm-toy.cpp @@ -381,8 +399,8 @@ diff -up ./svm-toy/qt/Makefile.orig ./svm-toy/qt/Makefile rm -f *~ svm-toy svm-toy.moc ../../svm.o 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-05 09:33:08.000000000 +1000 -@@ -1,22 +1,25 @@ ++++ ./svm-toy/gtk/Makefile 2008-02-06 15:08:10.000000000 +1000 +@@ -1,22 +1,28 @@ CC? = gcc CXX? = g++ -CFLAGS = -Wall -O3 -g `gtk-config --cflags` @@ -390,13 +408,16 @@ diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile +#CFLAGS = -Wall -O3 -g `gtk-config --cflags` +#LIBS = `gtk-config --libs` +COPT = `pkg-config --cflags --libs gtk+-2.0` ++DOT_LIBS=../../.libs ++LIBS= -L${DOT_LIBS} -lsvm -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 ++svm-toy-gtk: main.o interface.o callbacks.o ++ $(CXX) $(COPT) main.o interface.o callbacks.o ${LIBS} -o svm-toy-gtk main.o: main.c - $(CC) $(CFLAGS) -c main.c @@ -410,8 +431,10 @@ diff -up ./svm-toy/gtk/Makefile.orig ./svm-toy/gtk/Makefile - $(CXX) $(CFLAGS) -c callbacks.cpp + $(CXX) $(COPT) -c callbacks.cpp - ../../svm.o: - cd ../..; make svm.o +-../../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 diff --git a/libsvm.spec b/libsvm.spec index f199549..d1cbfc4 100644 --- a/libsvm.spec +++ b/libsvm.spec @@ -1,6 +1,6 @@ Name: libsvm Version: 2.85 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A Library for Support Vector Machines Group: Development/Libraries @@ -111,11 +111,9 @@ make install DESTDIR=$RPM_BUILD_ROOT LIBDIR=%{_libdir} PYTHON_VERSION="%{pyver}" rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/src -%post -/sbin/ldconfig %{libdir_libsvm} +%post -p /sbin/ldconfig -%postun -/sbin/ldconfig %{libdir_libsvm} +%postun -p /sbin/ldconfig %clean rm -rf $RPM_BUILD_ROOT @@ -129,16 +127,15 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/svm-train %dir %{_datadir}/%{name} %{_datadir}/%{name}/examples -%dir %{libdir_libsvm} -%{libdir_libsvm}/%{name}.so.%{version} -%{libdir_libsvm}/%{name}.so.%{libsvm_ver_major} +%{_libdir}/%{name}.so.%{version} +%{_libdir}/%{name}.so.%{libsvm_ver_major} %files devel %defattr(-,root,root,-) %doc README %{_includedir}/%{name}/ -#%{libdir_libsvm}/%{name}.so +%{_libdir}/%{name}.so %files python %defattr(-,root,root,-) @@ -163,6 +160,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Feb 07 2008 Ding-Yi Chen - 2.85-3 +- Fix linker name (libsvm.so) +- Linked to dynamic libraries + * Tue Feb 05 2008 Ding-Yi Chen - 2.85-2 - Fix svm-toy-qt build error