1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
# install examples
DEB_INSTALL_EXAMPLES_libsvm-dev = svm-train.c svm-predict.c
DEB_INSTALL_EXAMPLES_libsvm-tools = heart_scale
# install documents
DEB_INSTALL_DOCS_libsvm-dev = FAQ.html README
DEB_INSTALL_DOCS_libsvm-tools = FAQ.html
DEB_INSTALL_DOCS_python-libsvm = python/README
# install manpages
DEB_INSTALL_MANPAGES_libsvm-tools = debian/doc/svm-train.1 debian/doc/svm-predict.1 debian/doc/svm-scale.1 debian/doc/svm-grid.1 debian/doc/svm-subset.1 debian/doc/svm-checkdata.1 debian/doc/svm-easy.1
# use pysupport to install files of python-libsvm
#PYVERS=$(shell pyversions -vs)
LVER=3
LSUBVER=21
SOVER=$(LVER).$(LSUBVER)
LIBFILE=libsvm.so.$(SOVER)
export DEB_CFLAGS_MAINT_APPEND+=-fPIE
export DEB_CFLAGS_MAINT_APPEND+=-pie
export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
CXX ?= g++
HARDEN_CFLAGS=$(CFLAGS) $(LDFLAGS) $(CPPFLAGS)
HARDEN_CXXFLAGS=$(CXXFLAGS) $(LDFLAGS) $(CPPFLAGS)
build: build-arch build-indep
build-arch: svm-train svm-predict svm-scale $(LIBFILE) chname
build-indep: .javastuff
.javastuff:
$(MAKE) -C java
$(LIBFILE): svm.o
$(CXX) $(HARDEN_CFLAGS) -fPIC -shared -Wl,-soname,libsvm.so.$(LVER) -o $(LIBFILE) svm.o -lm && \
ln -s $(LIBFILE) libsvm.so.$(LVER) && \
ln -s libsvm.so.$(LVER) libsvm.so
svm-predict: svm-predict.c svm.o
$(CXX) $(HARDEN_CFLAGS) svm-predict.c svm.o -o svm-predict -lm
svm-train: svm-train.c svm.o
$(CXX) $(HARDEN_CFLAGS) svm-train.c svm.o -o svm-train -lm
svm-scale: svm-scale.c
$(CXX) $(HARDEN_CFLAGS) svm-scale.c -o svm-scale
svm.o: svm.cpp svm.h
$(CXX) $(HARDEN_CXXFLAGS) -fPIC -c svm.cpp
chname:
cp tools/checkdata.py tools/svm-checkdata
cp tools/easy.py tools/svm-easy
cp tools/grid.py tools/svm-grid
cp tools/subset.py tools/svm-subset
sed -i 's/..\/svm-train/\/usr\/bin\/svm-train/g' tools/svm-*
sed -i 's/..\/svm-predict/\/usr\/bin\/svm-predict/g' tools/svm-*
sed -i 's/..\/svm-scale/\/usr\/bin\/svm-scale/g' tools/svm-*
sed -i 's/.\/grid.py/\/usr\/bin\/svm-grid/g' tools/svm-easy
sed -i 's/"get no rate"/RuntimeError("get no rate")/g' tools/svm-grid
binary-install/libsvm3-java::
cp java/libsvm.jar $(CURDIR)/debian/libsvm3-java/usr/share/java/libsvm3.jar
binary-install/python-libsvm::
dh_python2 -ppython-libsvm
binary-install/libsvm-tools::
dh_python2 -plibsvm-tools
clean::
$(MAKE) clean
find . -name "*.class" | xargs -r rm
find . -name "*.jar" | xargs -r rm
rm -f libsvm.so libsvm.so.$(LVER) libsvm.so.$(LVER).$(LSUBVER) tools/svm-*
|