1 |
dirtyepic 10/05/30 06:51:41 |
2 |
|
3 |
Modified: ChangeLog |
4 |
Added: boost-1.42.0-r1.ebuild |
5 |
Log: |
6 |
Add patch from upstream to fix broken MPL library when built with |
7 |
GCC 4.5. Revision bumped due to this being a runtime error. |
8 |
(Portage version: 2.2_rc67/cvs/Linux x86_64) |
9 |
|
10 |
Revision Changes Path |
11 |
1.197 dev-libs/boost/ChangeLog |
12 |
|
13 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/ChangeLog?rev=1.197&view=markup |
14 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/ChangeLog?rev=1.197&content-type=text/plain |
15 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/ChangeLog?r1=1.196&r2=1.197 |
16 |
|
17 |
Index: ChangeLog |
18 |
=================================================================== |
19 |
RCS file: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v |
20 |
retrieving revision 1.196 |
21 |
retrieving revision 1.197 |
22 |
diff -u -r1.196 -r1.197 |
23 |
--- ChangeLog 25 Apr 2010 18:28:14 -0000 1.196 |
24 |
+++ ChangeLog 30 May 2010 06:51:41 -0000 1.197 |
25 |
@@ -1,6 +1,13 @@ |
26 |
# ChangeLog for dev-libs/boost |
27 |
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 |
28 |
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.196 2010/04/25 18:28:14 arfrever Exp $ |
29 |
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.197 2010/05/30 06:51:41 dirtyepic Exp $ |
30 |
+ |
31 |
+*boost-1.42.0-r1 (30 May 2010) |
32 |
+ |
33 |
+ 30 May 2010; Ryan Hill <dirtyepic@g.o> +boost-1.42.0-r1.ebuild, |
34 |
+ +files/boost-1.42.0-template_arity-gcc45.patch: |
35 |
+ Add patch from upstream to fix broken MPL library when built with |
36 |
+ GCC 4.5. Revision bumped due to this being a runtime error. |
37 |
|
38 |
25 Apr 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@g.o> |
39 |
boost-1.35.0-r2.ebuild, boost-1.35.0-r5.ebuild, boost-1.37.0-r1.ebuild, |
40 |
|
41 |
|
42 |
|
43 |
1.1 dev-libs/boost/boost-1.42.0-r1.ebuild |
44 |
|
45 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.42.0-r1.ebuild?rev=1.1&view=markup |
46 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.42.0-r1.ebuild?rev=1.1&content-type=text/plain |
47 |
|
48 |
Index: boost-1.42.0-r1.ebuild |
49 |
=================================================================== |
50 |
# Copyright 1999-2010 Gentoo Foundation |
51 |
# Distributed under the terms of the GNU General Public License v2 |
52 |
# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.42.0-r1.ebuild,v 1.1 2010/05/30 06:51:41 dirtyepic Exp $ |
53 |
|
54 |
EAPI="2" |
55 |
|
56 |
inherit python flag-o-matic multilib toolchain-funcs versionator check-reqs |
57 |
|
58 |
MY_P=${PN}_$(replace_all_version_separators _) |
59 |
|
60 |
DESCRIPTION="Boost Libraries for C++" |
61 |
HOMEPAGE="http://www.boost.org/" |
62 |
SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2" |
63 |
LICENSE="Boost-1.0" |
64 |
SLOT="$(get_version_component_range 1-2)" |
65 |
IUSE="debug doc +eselect icu mpi python static-libs test tools" |
66 |
|
67 |
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" |
68 |
|
69 |
RDEPEND="icu? ( >=dev-libs/icu-3.3 ) |
70 |
mpi? ( || ( >=sys-cluster/openmpi-1.2.9[cxx] <sys-cluster/openmpi-1.2.9[-nocxx] sys-cluster/mpich2[cxx,threads] sys-cluster/lam-mpi ) ) |
71 |
sys-libs/zlib |
72 |
python? ( virtual/python ) |
73 |
!!<=dev-libs/boost-1.35.0-r2 |
74 |
>=app-admin/eselect-boost-0.3" |
75 |
DEPEND="${RDEPEND} |
76 |
dev-util/boost-build:${SLOT}" |
77 |
|
78 |
S=${WORKDIR}/${MY_P} |
79 |
|
80 |
MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) |
81 |
BJAM="bjam-${MAJOR_PV}" |
82 |
|
83 |
# Usage: |
84 |
# _add_line <line-to-add> <profile> |
85 |
# ... to add to specific profile |
86 |
# or |
87 |
# _add_line <line-to-add> |
88 |
# ... to add to all profiles for which the use flag set |
89 |
|
90 |
_add_line() { |
91 |
if [ -z "$2" ] ; then |
92 |
echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" |
93 |
use debug && echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" |
94 |
else |
95 |
echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/${SLOT}/${2}" |
96 |
fi |
97 |
} |
98 |
|
99 |
pkg_setup() { |
100 |
# It doesn't compile with USE="python mpi" and python-3 (bug 295705) |
101 |
if use python && use mpi ; then |
102 |
if [[ "$(python_get_version --major)" != "2" ]]; then |
103 |
eerror "The Boost.MPI python bindings do not support any other python version" |
104 |
eerror "than 2.x. Please either use eselect to select a python 2.x version or" |
105 |
eerror "disable the python and/or mpi use flag for =${CATEGORY}/${PF}." |
106 |
die "unsupported python version" |
107 |
fi |
108 |
fi |
109 |
|
110 |
if use test ; then |
111 |
CHECKREQS_DISK_BUILD="1024" |
112 |
check_reqs |
113 |
|
114 |
ewarn "The tests may take several hours on a recent machine" |
115 |
ewarn "but they will not fail (unless something weird happens ;-)" |
116 |
ewarn "This is because the tests depend on the used compiler/-version" |
117 |
ewarn "and the platform and upstream says that this is normal." |
118 |
ewarn "If you are interested in the results, please take a look at the" |
119 |
ewarn "generated results page:" |
120 |
ewarn " ${ROOT}usr/share/doc/${PF}/status/cs-$(uname).html" |
121 |
ebeep 5 |
122 |
|
123 |
fi |
124 |
|
125 |
if use debug ; then |
126 |
ewarn "The debug USE-flag means that a second set of the boost libraries" |
127 |
ewarn "will be built containing debug-symbols. You'll be able to select them" |
128 |
ewarn "using the boost-eselect module. But even though the optimization flags" |
129 |
ewarn "you might have set are not stripped, there will be a performance" |
130 |
ewarn "penalty and linking other packages against the debug version" |
131 |
ewarn "of boost is _not_ recommended." |
132 |
fi |
133 |
} |
134 |
|
135 |
src_prepare() { |
136 |
epatch "${FILESDIR}/remove-toolset-${PV}.patch" |
137 |
|
138 |
# bug 291660 |
139 |
epatch "${FILESDIR}/boost-${PV}-parameter-needs-python.patch" |
140 |
epatch "${FILESDIR}"/${P}-template_arity-gcc45.patch |
141 |
|
142 |
# This enables building the boost.random library with /dev/urandom support |
143 |
if [[ -e /dev/urandom ]] ; then |
144 |
mkdir -p libs/random/build |
145 |
cp "${FILESDIR}/random-Jamfile" libs/random/build/Jamfile.v2 |
146 |
# yeah, we WANT it to work on non-Linux too |
147 |
sed -i -e 's/#ifdef __linux__/#if 1/' libs/random/random_device.cpp || die |
148 |
fi |
149 |
} |
150 |
|
151 |
src_configure() { |
152 |
einfo "Writing new user-config.jam" |
153 |
|
154 |
local compiler compilerVersion compilerExecutable mpi |
155 |
if [[ ${CHOST} == *-darwin* ]] ; then |
156 |
compiler=darwin |
157 |
compilerVersion=$(gcc-fullversion) |
158 |
compilerExecutable=$(tc-getCXX) |
159 |
# we need to add the prefix, and in two cases this exceeds, so prepare |
160 |
# for the largest possible space allocation |
161 |
append-ldflags -Wl,-headerpad_max_install_names |
162 |
else |
163 |
compiler=gcc |
164 |
compilerVersion=$(gcc-version) |
165 |
compilerExecutable=$(tc-getCXX) |
166 |
fi |
167 |
|
168 |
# Using -fno-strict-aliasing to prevent possible creation of invalid code. |
169 |
append-flags -fno-strict-aliasing |
170 |
|
171 |
# bug 298489 |
172 |
if use ppc || use ppc64 ; then |
173 |
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec |
174 |
fi; |
175 |
|
176 |
use mpi && mpi="using mpi ;" |
177 |
|
178 |
if use python ; then |
179 |
pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" |
180 |
fi |
181 |
|
182 |
cat > "${S}/user-config.jam" << __EOF__ |
183 |
|
184 |
variant gentoorelease : release : <optimization>none <debug-symbols>none ; |
185 |
variant gentoodebug : debug : <optimization>none ; |
186 |
|
187 |
using ${compiler} : ${compilerVersion} : ${compilerExecutable} : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ; |
188 |
|
189 |
${pystring} |
190 |
|
191 |
${mpi} |
192 |
|
193 |
__EOF__ |
194 |
|
195 |
# Maintainer information: |
196 |
# The debug-symbols=none and optimization=none |
197 |
# are not official upstream flags but a Gentoo |
198 |
# specific patch to make sure that all our |
199 |
# CXXFLAGS/LDFLAGS are being respected. |
200 |
# Using optimization=off would for example add |
201 |
# "-O0" and override "-O2" set by the user. |
202 |
# Please take a look at the boost-build ebuild |
203 |
# for more infomration. |
204 |
|
205 |
use icu && OPTIONS="-sICU_PATH=/usr" |
206 |
use mpi || OPTIONS="${OPTIONS} --without-mpi" |
207 |
use python || OPTIONS="${OPTIONS} --without-python" |
208 |
|
209 |
# https://svn.boost.org/trac/boost/attachment/ticket/2597/add-disable-long-double.patch |
210 |
if use sparc || use mips || use hppa || use arm || use x86-fbsd || use sh; then |
211 |
OPTIONS="${OPTIONS} --disable-long-double" |
212 |
fi |
213 |
|
214 |
OPTIONS="${OPTIONS} pch=off --user-config=\"${S}/user-config.jam\" --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=\"${D}/usr\" --layout=versioned" |
215 |
|
216 |
if use static-libs ; then |
217 |
LINK_OPTS="link=shared,static" |
218 |
LIBRARY_TARGETS="*.a *$(get_libname)" |
219 |
else |
220 |
LINK_OPTS="link=shared" |
221 |
#there is no dynamicly linked version of libboost_test_exec_monitor |
222 |
LIBRARY_TARGETS="libboost_test_exec_monitor*.a *$(get_libname)" |
223 |
fi |
224 |
} |
225 |
|
226 |
src_compile() { |
227 |
jobs=$( echo " ${MAKEOPTS} " | \ |
228 |
sed -e 's/ --jobs[= ]/ -j /g' \ |
229 |
-e 's/ -j \([1-9][0-9]*\)/ -j\1/g' \ |
230 |
-e 's/ -j\>/ -j1/g' | \ |
231 |
( while read -d ' ' j ; do if [[ "${j#-j}" = "$j" ]]; then continue; fi; jobs="${j#-j}"; done; echo ${jobs} ) ) |
232 |
if [[ "${jobs}" != "" ]]; then NUMJOBS="-j"${jobs}; fi; |
233 |
|
234 |
export BOOST_ROOT="${S}" |
235 |
|
236 |
einfo "Using the following command to build: " |
237 |
einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared" |
238 |
|
239 |
${BJAM} ${NUMJOBS} -q -d+2 \ |
240 |
gentoorelease \ |
241 |
${OPTIONS} \ |
242 |
threading=single,multi ${LINK_OPTS} runtime-link=shared \ |
243 |
|| die "building boost failed" |
244 |
|
245 |
# ... and do the whole thing one more time to get the debug libs |
246 |
if use debug ; then |
247 |
einfo "Using the following command to build: " |
248 |
einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoodebug ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --buildid=debug" |
249 |
|
250 |
${BJAM} ${NUMJOBS} -q -d+2 \ |
251 |
gentoodebug \ |
252 |
${OPTIONS} \ |
253 |
threading=single,multi ${LINK_OPTS} runtime-link=shared \ |
254 |
--buildid=debug \ |
255 |
|| die "building boost failed" |
256 |
fi |
257 |
|
258 |
if use tools; then |
259 |
cd "${S}/tools/" |
260 |
einfo "Using the following command to build the tools: " |
261 |
einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease ${OPTIONS}" |
262 |
|
263 |
${BJAM} ${NUMJOBS} -q -d+2\ |
264 |
gentoorelease \ |
265 |
${OPTIONS} \ |
266 |
|| die "building tools failed" |
267 |
fi |
268 |
|
269 |
} |
270 |
|
271 |
src_install () { |
272 |
export BOOST_ROOT="${S}" |
273 |
|
274 |
einfo "Using the following command to install: " |
275 |
einfo "${BJAM} -q -d+2 gentoorelease ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}/usr/include\" --libdir=\"${D}/usr/$(get_libdir)\" install" |
276 |
|
277 |
${BJAM} -q -d+2 \ |
278 |
gentoorelease \ |
279 |
${OPTIONS} \ |
280 |
threading=single,multi ${LINK_OPTS} runtime-link=shared \ |
281 |
--includedir="${D}/usr/include" \ |
282 |
--libdir="${D}/usr/$(get_libdir)" \ |
283 |
install || die "install failed for options '${OPTIONS}'" |
284 |
|
285 |
if use debug ; then |
286 |
einfo "Using the following command to install: " |
287 |
einfo "${BJAM} -q -d+2 gentoodebug ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}/usr/include\" --libdir=\"${D}/usr/$(get_libdir)\" --buildid=debug" |
288 |
|
289 |
${BJAM} -q -d+2 \ |
290 |
gentoodebug \ |
291 |
${OPTIONS} \ |
292 |
threading=single,multi ${LINK_OPTS} runtime-link=shared \ |
293 |
--includedir="${D}/usr/include" \ |
294 |
--libdir="${D}/usr/$(get_libdir)" \ |
295 |
--buildid=debug \ |
296 |
install || die "install failed for options '${OPTIONS}'" |
297 |
fi |
298 |
|
299 |
use python || rm -rf "${D}/usr/include/boost-${MAJOR_PV}/boost"/python* || die |
300 |
|
301 |
dodir /usr/share/boost-eselect/profiles/${SLOT} || die |
302 |
touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" || die |
303 |
if use debug ; then |
304 |
touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" || die |
305 |
fi |
306 |
|
307 |
# Move the mpi.so to the right place and make sure it's slotted |
308 |
if use mpi && use python; then |
309 |
mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die |
310 |
mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die |
311 |
touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die |
312 |
_add_line "python=\"$(python_get_sitedir)/boost_${MAJOR_PV}/mpi.so\"" |
313 |
fi |
314 |
|
315 |
if use doc ; then |
316 |
find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf |
317 |
dohtml \ |
318 |
-A pdf,txt,cpp,hpp \ |
319 |
*.{htm,html,png,css} \ |
320 |
-r doc more people wiki || die |
321 |
dohtml \ |
322 |
-A pdf,txt \ |
323 |
-r tools || die |
324 |
insinto /usr/share/doc/${PF}/html |
325 |
doins -r libs || die |
326 |
|
327 |
# To avoid broken links |
328 |
insinto /usr/share/doc/${PF}/html |
329 |
doins LICENSE_1_0.txt || die |
330 |
|
331 |
dosym /usr/include/boost-${MAJOR_PV}/boost /usr/share/doc/${PF}/html/boost || die |
332 |
fi |
333 |
|
334 |
cd "${D}/usr/$(get_libdir)" || die |
335 |
|
336 |
# Remove (unversioned) symlinks |
337 |
# And check for what we remove to catch bugs |
338 |
# got a better idea how to do it? tell me! |
339 |
for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v "${MAJOR_PV}") ; do |
340 |
if [ ! -h "${f}" ] ; then |
341 |
eerror "Ups, tried to remove '${f}' which is a a real file instead of a symlink" |
342 |
die "slotting/naming of the libs broken!" |
343 |
fi |
344 |
rm "${f}" || die |
345 |
done |
346 |
|
347 |
# The threading libs obviously always gets the "-mt" (multithreading) tag |
348 |
# some packages seem to have a problem with it. Creating symlinks... |
349 |
|
350 |
if use static-libs ; then |
351 |
THREAD_LIBS="libboost_thread-mt-${MAJOR_PV}.a libboost_thread-mt-${MAJOR_PV}$(get_libname)" |
352 |
else |
353 |
THREAD_LIBS="libboost_thread-mt-${MAJOR_PV}$(get_libname)" |
354 |
fi |
355 |
for lib in ${THREAD_LIBS} ; do |
356 |
dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die |
357 |
done |
358 |
|
359 |
# The same goes for the mpi libs |
360 |
if use mpi ; then |
361 |
if use static-libs ; then |
362 |
MPI_LIBS="libboost_mpi-mt-${MAJOR_PV}.a libboost_mpi-mt-${MAJOR_PV}$(get_libname)" |
363 |
else |
364 |
MPI_LIBS="libboost_mpi-mt-${MAJOR_PV}$(get_libname)" |
365 |
fi |
366 |
for lib in ${MPI_LIBS} ; do |
367 |
dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die |
368 |
done |
369 |
fi |
370 |
|
371 |
if use debug ; then |
372 |
if use static-libs ; then |
373 |
THREAD_DEBUG_LIBS="libboost_thread-mt-${MAJOR_PV}-debug$(get_libname) libboost_thread-mt-${MAJOR_PV}-debug.a" |
374 |
else |
375 |
THREAD_DEBUG_LIBS="libboost_thread-mt-${MAJOR_PV}-debug$(get_libname)" |
376 |
fi |
377 |
|
378 |
for lib in ${THREAD_DEBUG_LIBS} ; do |
379 |
dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die |
380 |
done |
381 |
|
382 |
if use mpi ; then |
383 |
if use static-libs ; then |
384 |
MPI_DEBUG_LIBS="libboost_mpi-mt-${MAJOR_PV}-debug.a libboost_mpi-mt-${MAJOR_PV}-debug$(get_libname)" |
385 |
else |
386 |
MPI_DEBUG_LIBS="libboost_mpi-mt-${MAJOR_PV}-debug$(get_libname)" |
387 |
fi |
388 |
|
389 |
for lib in ${MPI_DEBUG_LIBS} ; do |
390 |
dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die |
391 |
done |
392 |
fi |
393 |
fi |
394 |
|
395 |
# Create a subdirectory with completely unversioned symlinks |
396 |
# and store the names in the profiles-file for eselect |
397 |
dodir /usr/$(get_libdir)/boost-${MAJOR_PV} || die |
398 |
|
399 |
_add_line "libs=\"" default |
400 |
for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug) ; do |
401 |
dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} || die |
402 |
_add_line "/usr/$(get_libdir)/${f}" default |
403 |
done |
404 |
_add_line "\"" default |
405 |
|
406 |
if use debug ; then |
407 |
_add_line "libs=\"" debug |
408 |
dodir /usr/$(get_libdir)/boost-${MAJOR_PV}-debug || die |
409 |
for f in $(ls -1 ${LIBRARY_TARGETS} | grep debug) ; do |
410 |
dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}-debug/${f/-${MAJOR_PV}-debug} || die |
411 |
_add_line "/usr/$(get_libdir)/${f}" debug |
412 |
done |
413 |
_add_line "\"" debug |
414 |
|
415 |
_add_line "includes=\"/usr/include/boost-${MAJOR_PV}/boost\"" debug |
416 |
_add_line "suffix=\"-debug\"" debug |
417 |
fi |
418 |
|
419 |
_add_line "includes=\"/usr/include/boost-${MAJOR_PV}/boost\"" default |
420 |
|
421 |
if use tools; then |
422 |
cd "${S}/dist/bin" || die |
423 |
# Append version postfix to binaries for slotting |
424 |
_add_line "bins=\"" |
425 |
for b in * ; do |
426 |
newbin "${b}" "${b}-${MAJOR_PV}" || die |
427 |
_add_line "/usr/bin/${b}-${MAJOR_PV}" |
428 |
done |
429 |
_add_line "\"" |
430 |
|
431 |
cd "${S}/dist" || die |
432 |
insinto /usr/share || die |
433 |
doins -r share/boostbook || die |
434 |
# Append version postfix for slotting |
435 |
mv "${D}/usr/share/boostbook" "${D}/usr/share/boostbook-${MAJOR_PV}" || die |
436 |
_add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" |
437 |
fi |
438 |
|
439 |
cd "${S}/status" || die |
440 |
if [ -f regress.log ] ; then |
441 |
docinto status || die |
442 |
dohtml *.html ../boost.png || die |
443 |
dodoc regress.log || die |
444 |
fi |
445 |
|
446 |
use python && python_need_rebuild |
447 |
|
448 |
# boost's build system truely sucks for not having a destdir. Because for |
449 |
# this reason we are forced to build with a prefix that includes the |
450 |
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the |
451 |
# DESTROOT instread of the actual EPREFIX. There is no way out of here |
452 |
# but to do it the dirty way of manually setting the right install_names. |
453 |
[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/ |
454 |
if [[ ${CHOST} == *-darwin* ]] ; then |
455 |
einfo "Working around completely broken build-system(tm)" |
456 |
for d in "${ED}"usr/lib/*.dylib ; do |
457 |
if [[ -f ${d} ]] ; then |
458 |
# fix the "soname" |
459 |
ebegin " correcting install_name of ${d#${ED}}" |
460 |
install_name_tool -id "/${d#${D}}" "${d}" |
461 |
eend $? |
462 |
# fix references to other libs |
463 |
refs=$(otool -XL "${d}" | \ |
464 |
sed -e '1d' -e 's/^\t//' | \ |
465 |
grep "^libboost_" | \ |
466 |
cut -f1 -d' ') |
467 |
for r in ${refs} ; do |
468 |
ebegin " correcting reference to ${r}" |
469 |
install_name_tool -change \ |
470 |
"${r}" \ |
471 |
"${EPREFIX}/usr/lib/${r}" \ |
472 |
"${d}" |
473 |
eend $? |
474 |
done |
475 |
fi |
476 |
done |
477 |
fi |
478 |
} |
479 |
|
480 |
src_test() { |
481 |
export BOOST_ROOT=${S} |
482 |
|
483 |
cd "${S}/tools/regression/build" || die |
484 |
einfo "Using the following command to build test helpers: " |
485 |
einfo "${BJAM} -q -d+2 gentoorelease ${OPTIONS} process_jam_log compiler_status" |
486 |
|
487 |
${BJAM} -q -d+2 \ |
488 |
gentoorelease \ |
489 |
${OPTIONS} \ |
490 |
process_jam_log compiler_status \ |
491 |
|| die "building regression test helpers failed" |
492 |
|
493 |
cd "${S}/status" || die |
494 |
|
495 |
# Some of the test-checks seem to rely on regexps |
496 |
export LC_ALL="C" |
497 |
|
498 |
# The following is largely taken from tools/regression/run_tests.sh, |
499 |
# but adapted to our needs. |
500 |
|
501 |
# Run the tests & write them into a file for postprocessing |
502 |
einfo "Using the following command to test: " |
503 |
einfo "${BJAM} ${OPTIONS} --dump-tests" |
504 |
|
505 |
${BJAM} \ |
506 |
${OPTIONS} \ |
507 |
--dump-tests 2>&1 | tee regress.log || die |
508 |
|
509 |
# Postprocessing |
510 |
cat regress.log | "${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/pch-off/process_jam_log" --v2 |
511 |
if test $? != 0 ; then |
512 |
die "Postprocessing the build log failed" |
513 |
fi |
514 |
|
515 |
cat > "${S}/status/comment.html" <<- __EOF__ |
516 |
<p>Tests are run on a <a href="http://www.gentoo.org">Gentoo</a> system.</p> |
517 |
__EOF__ |
518 |
|
519 |
# Generate the build log html summary page |
520 |
"${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/pch-off/compiler_status" --v2 \ |
521 |
--comment "${S}/status/comment.html" "${S}" \ |
522 |
cs-$(uname).html cs-$(uname)-links.html |
523 |
if test $? != 0 ; then |
524 |
die "Generating the build log html summary page failed" |
525 |
fi |
526 |
|
527 |
# And do some cosmetic fixes :) |
528 |
sed -i -e 's|http://www.boost.org/boost.png|boost.png|' *.html || die |
529 |
} |
530 |
|
531 |
pkg_postinst() { |
532 |
if use eselect ; then |
533 |
eselect boost update || ewarn "eselect boost update failed." |
534 |
fi |
535 |
|
536 |
if [ ! -h "${ROOT}/etc/eselect/boost/active" ] ; then |
537 |
elog "No active boost version found. Calling eselect to select one..." |
538 |
eselect boost update || ewarn "eselect boost update failed." |
539 |
fi |
540 |
} |