Fix linking problems

epel8
Ding-Yi Chen 17 years ago
parent fe7c948b65
commit 7e0dcdf9f1

@ -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

@ -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 <dchen@redhat.com> - 2.85-3
- Fix linker name (libsvm.so)
- Linked to dynamic libraries
* Tue Feb 05 2008 Ding-Yi Chen <dchen@redhat.com> - 2.85-2
- Fix svm-toy-qt build error

Loading…
Cancel
Save