f36f7e4
diff -up Makefile.orig Makefile
a906061
--- Makefile.orig	2023-02-28 01:31:32.000000000 -0700
a906061
+++ Makefile	2023-02-28 13:56:21.696052600 -0700
a906061
@@ -1,7 +1,14 @@
56c7459
 CXX ?= g++
56c7459
-CFLAGS = -Wall -Wconversion -O3 -fPIC
e6b06f5
+CFLAGS = ${RPM_CFLAGS} -Wconversion -fPIC
f36f7e4
 SHVER = 3
c8f3ad5
+export SHVER
c8f3ad5
 OS = $(shell uname)
f36f7e4
+DOT_LIBS = .
f36f7e4
+LIBS = -L${DOT_LIBS} -lsvm
d766271
+export LIBSVM_VER
f36f7e4
+IS_64 := $(shell /bin/uname -i | awk '/64/ {print 64}')
f36f7e4
+PREFIXDIR ?= /usr
921d062
+export PREFIXDIR
a906061
 ifeq ($(OS),Darwin)
a906061
 	SHARED_LIB_FLAG = -dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)
a906061
 else
a906061
@@ -9,20 +16,80 @@ else
a906061
 endif
a906061
 
a906061
 # Uncomment the following lines to enable parallelization with OpenMP
a906061
-# CFLAGS += -fopenmp
a906061
-# SHARED_LIB_FLAG += -fopenmp
a906061
+CFLAGS += -fopenmp
a906061
+SHARED_LIB_FLAG += -fopenmp
f36f7e4
 
0f3e08b
-all: svm-train svm-predict svm-scale
f36f7e4
+LIBDIR ?= ${PREFIXDIR}/lib${IS_64}
921d062
+export LIBDIR
f36f7e4
 
0f3e08b
-lib: svm.o
921d062
+DATADIR?=${PREFIXDIR}/share
921d062
+export DATADIR
56c7459
+
921d062
+BINDIR?=${PREFIXDIR}/bin
921d062
+export BINDIR
921d062
+
921d062
+INCLUDEDIR_INSTALL:=${DESTDIR}/${PREFIXDIR}/include
921d062
+export INCLUDEDIR_INSTALL
921d062
+
921d062
+LIBDIR_INSTALL:=${DESTDIR}/${LIBDIR}
921d062
+export LIBDIR_INSTALL
921d062
+
921d062
+DATADIR_INSTALL:=${DESTDIR}/${DATADIR}
921d062
+export DATA_INSTALL
921d062
+
921d062
+BINDIR_INSTALL:=${DESTDIR}/${BINDIR}
921d062
+export BINDIR_INSTALL
56c7459
+
e6b06f5
+all: lib svm-train svm-predict svm-scale svm-python svm-toy-qt
c8f3ad5
+
c8f3ad5
+lib: libsvm.so.$(SHVER) libsvm.so
c8f3ad5
+
c8f3ad5
+libsvm.so: libsvm.so.$(SHVER)
56c7459
+	ln -sf libsvm.so.$(SHVER) libsvm.so
0b558ee
+
c8f3ad5
+libsvm.so.$(SHVER): svm.o
a906061
 	$(CXX) $(SHARED_LIB_FLAG) svm.o -o libsvm.so.$(SHVER)
56c7459
 svm-predict: svm-predict.c svm.o
c8f3ad5
-	$(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
c8f3ad5
+	$(CXX) $(CFLAGS) svm-predict.c $(LIBS) -o svm-predict -lm
c8f3ad5
 svm-train: svm-train.c svm.o
c8f3ad5
-	$(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm
c8f3ad5
+	$(CXX) $(CFLAGS) svm-train.c $(LIBS) -o svm-train -lm
c8f3ad5
 svm-scale: svm-scale.c
c8f3ad5
 	$(CXX) $(CFLAGS) svm-scale.c -o svm-scale
56c7459
 svm.o: svm.cpp svm.h
56c7459
 	$(CXX) $(CFLAGS) -c svm.cpp
56c7459
 clean:
56c7459
-	rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER)
e6b06f5
+	rm -f *~ svm.o svm-train svm-predict svm-scale   svm-toy/qt/svm-toy-qt
56c7459
+	${MAKE} -C python clean
56c7459
+	${MAKE} -C java clean
56c7459
+svm-python:
56c7459
+	${MAKE} -C python
56c7459
+
56c7459
+svm-toy-qt:
56c7459
+	${MAKE} -C svm-toy/qt
d766271
+
56c7459
+install: all
921d062
+	mkdir -p ${BINDIR_INSTALL}
921d062
+	install -m 755 svm-train ${BINDIR_INSTALL}
921d062
+	install -m 755 svm-predict ${BINDIR_INSTALL}
921d062
+	install -m 755 svm-scale ${BINDIR_INSTALL}
921d062
+	mkdir -p ${LIBDIR_INSTALL}
921d062
+	install -m 755 libsvm.so.$(SHVER) ${LIBDIR_INSTALL}
56c7459
+# install package libsvm-devel
921d062
+	mkdir -p ${INCLUDEDIR_INSTALL}/libsvm
921d062
+	install -m 644 svm.h ${INCLUDEDIR_INSTALL}/libsvm
56c7459
+# install package svm-toy
921d062
+	install -m 755 svm-toy/qt/svm-toy-qt ${BINDIR_INSTALL}
56c7459
+# install examples
921d062
+	mkdir -p ${DATADIR_INSTALL}/libsvm/examples
921d062
+	install -m 644 heart_scale ${DATADIR_INSTALL}/libsvm/examples
56c7459
+uninstall:
921d062
+	rm -f ${BINDIR_INSTALL}/svm-train
921d062
+	rm -f ${BINDIR_INSTALL}/svm-predict
921d062
+	rm -f ${BINDIR_INSTALL}/svm-scale
921d062
+	rm -fr ${DATADIR_INSTALL}/libsvm
921d062
+	rm -f ${INCLUDEDIR_INSTALL}/libsvm/svm.h
921d062
+	rm -f ${LIBDIR_INSTALL}/libsvm.so*
56c7459
+	${MAKE} -C python uninstall
56c7459
+	${MAKE} -C java uninstall
921d062
+	rm -f ${BINDIR_INSTALL}/svm-toy-qt
921d062
+