1 |
commit: 3413ca5341ea5ea6e4a39c228f684ee351534a56 |
2 |
Author: David Seifert <soap <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat May 14 21:30:24 2022 +0000 |
4 |
Commit: David Seifert <soap <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat May 14 21:30:24 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3413ca53 |
7 |
|
8 |
sci-libs/libsvm: [QA] tc-has-openmp → tc-check-openmp |
9 |
|
10 |
Signed-off-by: David Seifert <soap <AT> gentoo.org> |
11 |
|
12 |
...4-makefile.patch => libsvm-3.25-makefile.patch} | 38 ++++++++++------------ |
13 |
...{3.11-openmp.patch => libsvm-3.25-openmp.patch} | 12 +++---- |
14 |
.../{libsvm-3.25.ebuild => libsvm-3.25-r1.ebuild} | 33 +++++++++---------- |
15 |
3 files changed, 39 insertions(+), 44 deletions(-) |
16 |
|
17 |
diff --git a/sci-libs/libsvm/files/3.14-makefile.patch b/sci-libs/libsvm/files/libsvm-3.25-makefile.patch |
18 |
similarity index 63% |
19 |
rename from sci-libs/libsvm/files/3.14-makefile.patch |
20 |
rename to sci-libs/libsvm/files/libsvm-3.25-makefile.patch |
21 |
index e38dafc10b20..ea48368b27a5 100644 |
22 |
--- a/sci-libs/libsvm/files/3.14-makefile.patch |
23 |
+++ b/sci-libs/libsvm/files/libsvm-3.25-makefile.patch |
24 |
@@ -3,15 +3,13 @@ |
25 |
* propagate and respect user's LDFLAGS |
26 |
* PIC only used for the library |
27 |
* link the shared version library |
28 |
-nov 2012 - bicatali@g.o |
29 |
|
30 |
---- a/Makefile.orig 2012-11-29 10:39:07.149421728 -0800 |
31 |
-+++ b/Makefile 2012-11-29 10:57:19.727766521 -0800 |
32 |
-@@ -1,9 +1,12 @@ |
33 |
- CXX ?= g++ |
34 |
+--- a/Makefile |
35 |
++++ b/Makefile |
36 |
+@@ -1,9 +1,10 @@ |
37 |
+-CXX ?= g++ |
38 |
-CFLAGS = -Wall -Wconversion -O3 -fPIC |
39 |
-+CC ?= gcc |
40 |
-+CFLAGS ?= -Wall -Wconversion -O3 |
41 |
++CFLAGS ?= -Wall -Wconversion |
42 |
+CXXFLAGS ?= $(CFLAGS) |
43 |
SHVER = 2 |
44 |
OS = $(shell uname) |
45 |
@@ -22,30 +20,30 @@ nov 2012 - bicatali@g.o |
46 |
|
47 |
lib: svm.o |
48 |
if [ "$(OS)" = "Darwin" ]; then \ |
49 |
-@@ -11,15 +14,20 @@ |
50 |
+@@ -11,15 +12,17 @@ |
51 |
else \ |
52 |
SHARED_LIB_FLAG="-shared -Wl,-soname,libsvm.so.$(SHVER)"; \ |
53 |
fi; \ |
54 |
- $(CXX) $${SHARED_LIB_FLAG} svm.o -o libsvm.so.$(SHVER) |
55 |
-+ $(CXX) $(LDFLAGS) $${SHARED_LIB_FLAG} svm.o -o libsvm.so.$(SHVER) ; \ |
56 |
++ $(CXX) $(LDFLAGS) $${SHARED_LIB_FLAG} svm.o -o libsvm.so.$(SHVER) $(OPENMP_LIBS) ; \ |
57 |
+ ln -s libsvm.so.$(SHVER) libsvm.so |
58 |
++ |
59 |
++svm-predict: svm-predict.o lib |
60 |
++ $(CXX) $(LDFLAGS) $< -o $@ $(LIBS) -L. -lsvm -lm |
61 |
++svm-train: svm-train.o lib |
62 |
++ $(CXX) $(LDFLAGS) $< -o $@ $(LIBS) -L. -lsvm -lm |
63 |
++svm-scale: svm-scale.o |
64 |
++ $(CXX) $(LDFLAGS) $< -o $@ $(LIBS) |
65 |
|
66 |
- svm-predict: svm-predict.c svm.o |
67 |
+-svm-predict: svm-predict.c svm.o |
68 |
- $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm |
69 |
-+ $(CC) $(CFLAGS) -c $@.c -o $@.o |
70 |
-+ $(CXX) $(LDFLAGS) $@.o svm.o -lm -o $@ |
71 |
- svm-train: svm-train.c svm.o |
72 |
+-svm-train: svm-train.c svm.o |
73 |
- $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm |
74 |
-+ $(CC) $(CFLAGS) -c $@.c -o $@.o |
75 |
-+ $(CXX) $(LDFLAGS) $@.o svm.o -lm -o $@ |
76 |
- svm-scale: svm-scale.c |
77 |
+-svm-scale: svm-scale.c |
78 |
- $(CXX) $(CFLAGS) svm-scale.c -o svm-scale |
79 |
-+ $(CC) $(CFLAGS) -c $@.c -o $@.o |
80 |
-+ $(CXX) $(LDFLAGS) $@.o -o $@ |
81 |
-+ |
82 |
svm.o: svm.cpp svm.h |
83 |
- $(CXX) $(CFLAGS) -c svm.cpp |
84 |
-+ $(CXX) $(CXXFLAGS) $(PICFLAGS) -c svm.cpp -o $@ |
85 |
++ $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(PICFLAGS) $(OPENMP_CFLAGS) -c svm.cpp -o $@ |
86 |
clean: |
87 |
- rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER) |
88 |
+ rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER) libsvm.so |
89 |
|
90 |
diff --git a/sci-libs/libsvm/files/3.11-openmp.patch b/sci-libs/libsvm/files/libsvm-3.25-openmp.patch |
91 |
similarity index 81% |
92 |
rename from sci-libs/libsvm/files/3.11-openmp.patch |
93 |
rename to sci-libs/libsvm/files/libsvm-3.25-openmp.patch |
94 |
index e07b03e57380..1d12e198648e 100644 |
95 |
--- a/sci-libs/libsvm/files/3.11-openmp.patch |
96 |
+++ b/sci-libs/libsvm/files/libsvm-3.25-openmp.patch |
97 |
@@ -1,6 +1,6 @@ |
98 |
---- a/svm.cpp.orig 2011-05-27 04:32:19.000000000 +0100 |
99 |
-+++ b/svm.cpp 2011-12-29 19:17:07.000000000 +0000 |
100 |
-@@ -1281,6 +1281,9 @@ |
101 |
+--- a/svm.cpp |
102 |
++++ b/svm.cpp |
103 |
+@@ -1282,6 +1282,9 @@ |
104 |
int start, j; |
105 |
if((start = cache->get_data(i,&data,len)) < len) |
106 |
{ |
107 |
@@ -10,7 +10,7 @@ |
108 |
for(j=start;j<len;j++) |
109 |
data[j] = (Qfloat)(y[i]*y[j]*(this->*kernel_function)(i,j)); |
110 |
} |
111 |
-@@ -2463,7 +2466,10 @@ |
112 |
+@@ -2506,7 +2509,10 @@ |
113 |
model->param.svm_type == NU_SVR) |
114 |
{ |
115 |
double *sv_coef = model->sv_coef[0]; |
116 |
@@ -22,9 +22,9 @@ |
117 |
for(i=0;i<model->l;i++) |
118 |
sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param); |
119 |
sum -= model->rho[0]; |
120 |
-@@ -2480,6 +2486,9 @@ |
121 |
+@@ -2523,6 +2529,9 @@ |
122 |
int l = model->l; |
123 |
- |
124 |
+ |
125 |
double *kvalue = Malloc(double,l); |
126 |
+#ifdef OPENMP |
127 |
+#pragma omp parallel for private(i) |
128 |
|
129 |
diff --git a/sci-libs/libsvm/libsvm-3.25.ebuild b/sci-libs/libsvm/libsvm-3.25-r1.ebuild |
130 |
similarity index 82% |
131 |
rename from sci-libs/libsvm/libsvm-3.25.ebuild |
132 |
rename to sci-libs/libsvm/libsvm-3.25-r1.ebuild |
133 |
index fb3107631476..78e21cefa8d4 100644 |
134 |
--- a/sci-libs/libsvm/libsvm-3.25.ebuild |
135 |
+++ b/sci-libs/libsvm/libsvm-3.25-r1.ebuild |
136 |
@@ -27,27 +27,16 @@ RDEPEND=" |
137 |
" |
138 |
|
139 |
PATCHES=( |
140 |
- "${FILESDIR}/3.11-openmp.patch" |
141 |
- "${FILESDIR}/3.14-makefile.patch" |
142 |
+ "${FILESDIR}"/${PN}-3.25-openmp.patch |
143 |
+ "${FILESDIR}"/${PN}-3.25-makefile.patch |
144 |
) |
145 |
|
146 |
-pkg_setup() { |
147 |
- if use openmp; then |
148 |
- if ! tc-has-openmp; then |
149 |
- ewarn "OpenMP is not supported by your currently selected compiler" |
150 |
- |
151 |
- if tc-is-clang; then |
152 |
- ewarn "OpenMP support in sys-devel/clang is provided by sys-libs/libomp," |
153 |
- ewarn "which you will need to build ${CATEGORY}/${PN} for USE=\"openmp\"" |
154 |
- fi |
155 |
- |
156 |
- die "need openmp capable compiler" |
157 |
- fi |
158 |
+pkg_pretend() { |
159 |
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp |
160 |
+} |
161 |
|
162 |
- append-cflags -fopenmp |
163 |
- append-cxxflags -fopenmp |
164 |
- append-cppflags -DOPENMP |
165 |
- fi |
166 |
+pkg_setup() { |
167 |
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp |
168 |
} |
169 |
|
170 |
src_prepare() { |
171 |
@@ -66,6 +55,14 @@ src_prepare() { |
172 |
-e "s/JAVAC_FLAGS =/JAVAC_FLAGS=${JAVAC_FLAGS}/g" \ |
173 |
java/Makefile || die "Failed to fix java makefile" |
174 |
fi |
175 |
+} |
176 |
+ |
177 |
+src_configure() { |
178 |
+ if use openmp; then |
179 |
+ export OPENMP_CFLAGS="-fopenmp -DOPENMP" |
180 |
+ export OPENMP_LIBS="-fopenmp" |
181 |
+ fi |
182 |
+ |
183 |
tc-export CXX CC |
184 |
} |