File: rules

package info (click to toggle)
libsvm 3.21%2Bds-1.1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 864 kB
  • ctags: 1,108
  • sloc: cpp: 3,987; java: 3,666; ansic: 2,259; python: 1,051; makefile: 154; sh: 24
file content (80 lines) | stat: -rwxr-xr-x 2,572 bytes parent folder | download | duplicates (2)
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-*