summaryrefslogtreecommitdiff
blob: 0901cff65fbf8b20db5eec75257a359144f6027a (plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.32.0-r1.ebuild,v 1.8 2005/03/10 04:42:33 morfic Exp $

# This ebuild was generated by Ebuilder v0.4.
inherit python multilib

BOOST_PV1=${PV/./_}
BOOST_PV=${BOOST_PV1/./_}
S="${WORKDIR}/${PN}_${BOOST_PV}"
DESCRIPTION="Boost Libraries for C++"
SRC_URI="mirror://sourceforge/boost/${PN}_${BOOST_PV}.tar.bz2"
HOMEPAGE="http://www.boost.org/"
LICENSE="freedist Boost-1.0"
SLOT="1"
IUSE="icc"

DEPEND="sys-devel/gcc
	dev-lang/python"
KEYWORDS="~x86 ~ppc ~amd64 ~sparc ~ppc64"

pkg_setup() {

	if [ "${ARCH}" == "amd64" ]; then
		arch=
	else
		arch=${ARCH}
	fi

	if use icc ; then
		BOOST_TOOLSET="intel-linux"
		TOOLSET_NAME="icc"
	else
		BOOST_TOOLSET="gcc"
		TOOLSET_NAME="gcc"
	fi

	BOOSTJAM=./tools/build/jam_src/bin.linux${arch}/bjam
}

src_compile() {
		echo ${LAYOUT}
		python_version
		# Build bjam, a jam variant, which is used instead of make
		cd ${S}/tools/build/jam_src
		./build.sh ${BOOST_TOOLSET} || die "Failed to build bjam"
		cd ${S}

}

src_install () {
		# install build tools
		cd tools/build
		#do_whatever is too limiting here, need to move bunch of different stuff recursively
		dodir /usr/share/${PN}
		cp -a b* c* index.html v1/ v2/ ${D}/usr/share/${PN}
		cd ${S}

		if use icc ; then
			export CPLUS_INCLUDE_PATH="/opt/intel/compiler80/include/c++"
			export GXX_INCLUDE="/usr/include"
			${BOOSTJAM} -sBOOST_ROOT=${S} \
			-sPYTHON_ROOT=/usr \
			-sPYTHON_VERSION=${PYVER} \
			-sTOOLS=${BOOST_TOOLSET} \
			-sINTEL_PATH="/opt/intel/compiler80/" \
			--prefix=${D}/usr \
			--layout=system \
			install || die "Install failed"
		else
			${BOOSTJAM}	-sBOOST_ROOT=${S} \
			-sPYTHON_ROOT=/usr \
			-sPYTHON_VERSION=${PYVER} \
			-sTOOLS=${BOOST_TOOLSET} \
			--prefix=${D}/usr \
			--layout=system \
			install || die "Install failed"
		fi

	# Install documentation; seems to be mostly under ${S}/lib
	   # install documentation
	dodoc README
	dohtml index.htm google_logo_40wht.gif c++boost.gif boost.css
	dohtml -A pdf -r more
	dohtml -r people
	dohtml -r doc

	find libs -type f -not -regex '^libs/[^/]*/build/.*' \
		-and -not -regex '^libs/.*/test[^/]?/.*' \
		-and -not -regex '^libs/.*/bench[^/]?/.*' \
		-and -not -regex '^libs/[^/]*/tools/.*' \
		-and -not -name \*.bat \
		-and -not -name Jamfile\* \
		-and -not -regex '^libs/[^/]*/src/.*' \
		-and -not -iname makefile \
		-and -not -name \*.mak \
		-and -not -name .\* \
		-and -not -name \*.dsw \
		-and -not -name \*.dsp \
		-exec \
	install -D -m0644 \{\} ${D}/usr/share/doc/${P}/html/\{\} \;

		#and finally set "default" links to -gcc-mt versions
		cd ${D}/usr/lib

		for fn in `ls -1 *.so|cut -d- -f1|sort|uniq`; do
			if [ -f "$fn.so" ] ; then
				dosym $fn.so /usr/lib/$fn-${TOOLSET_NAME}.so
			fi
			if [ -f "$fn-mt.so" ] ; then
				dosym $fn-mt.so /usr/lib/$fn-${TOOLSET_NAME}-mt.so
			fi
			if [ -f "$fn-d.so" ] ; then
				dosym $fn-d.so /usr/lib/$fn-${TOOLSET_NAME}-d.so
			fi
			if [ -f "$fn-mt-d.so" ] ; then
				dosym $fn-mt-d.so /usr/lib/$fn-${TOOLSET_NAME}-mt-d.so
			fi
		done

		for fn in `ls -1 *.a|cut -d- -f1|sort|uniq`; do
			if [ -f "$fn.a" ] ; then
				dosym $fn.a /usr/lib/$fn-${TOOLSET_NAME}.a
			fi
			if [ -f "$fn-mt.a" ] ; then
				dosym $fn-mt.a /usr/lib/$fn-${TOOLSET_NAME}-mt.a
			fi
			if [ -f "$fn-d.a" ] ; then
				dosym $fn-d.a /usr/lib/$fn-${TOOLSET_NAME}-d.a
			fi
			if [ -f "$fn-mt-d.a" ] ; then
				dosym $fn-mt-d.a /usr/lib/$fn-${TOOLSET_NAME}-mt-d.a
			fi
		done

	[[ $(get_libdir) == "lib" ]] || mv ${D}/usr/lib ${D}/usr/$(get_libdir)
}