| # Copyright 1999-2013 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI="5" |
| |
| inherit eutils versionator toolchain-funcs multilib |
| |
| PATCH_V="2" |
| |
| DESCRIPTION="C++ STL library" |
| HOMEPAGE="http://stlport.sourceforge.net/" |
| SRC_URI="mirror://sourceforge/stlport/${P}.tar.bz2 |
| https://dev.gentoo.org/~xarthisius/distfiles/${PN}-patches-${PV}-${PATCH_V}.tbz2" |
| |
| LICENSE="boehm-gc HPND" |
| SLOT="0" |
| KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" |
| IUSE="boost debug static static-libs threads" |
| |
| DEPEND="boost? ( >=dev-libs/boost-1.35.0-r5 )" |
| RDEPEND="${DEPEND}" |
| |
| DOCS=( README etc/ChangeLog doc/FAQ doc/README.utf8 ) |
| |
| pkg_setup() { |
| # make sure OSNAME is not in the environment (bug #305399) |
| unset OSNAME |
| } |
| |
| src_prepare() { |
| EPATCH_SOURCE="${WORKDIR}/patches" |
| EPATCH_SUFFIX="diff" |
| epatch |
| |
| # We have to add this to host.h to make sure |
| # that dependencies of STLport use the same settings |
| cat <<- EOF >> stlport/stl/config/host.h |
| #define _STLP_NATIVE_INCLUDE_PATH ../g++-v$(gcc-major-version) |
| /* use pthreads for threading */ |
| #define _PTHREADS |
| /* enable largefile support */ |
| #define _FILE_OFFSET_BITS 64 |
| #define _LARGEFILE_SOURCE |
| #define _LARGEFILE64_SOURCE |
| EOF |
| |
| epatch_user |
| } |
| |
| src_configure() { |
| local myconf |
| |
| if use boost ; then |
| BOOST_PKG="$(best_version ">=dev-libs/boost-1.35.0-r5")" |
| BOOST_VER="$(get_version_component_range 1-2 "${BOOST_PKG/*boost-/}")" |
| BOOST_VER="$(replace_all_version_separators _ "${BOOST_VER}")" |
| BOOST_INC="${EPREFIX}/usr/include/boost-${BOOST_VER}" |
| |
| myconf+="--with-boost=${BOOST_INC} --with-system-boost " |
| # make sure user apps (e.g. other packges using STLport) use boost as well |
| sed -i \ |
| -e 'N;N;N;s:/\**\n\(#define _STLP_USE_BOOST_SUPPORT 1\)*\n\*/:\1:' \ |
| stlport/stl/config/user_config.h || die |
| fi |
| |
| # It's not an autoconf script |
| ./configure \ |
| --prefix="${EPREFIX}/usr" \ |
| --libdir="${EPREFIX}/usr/$(get_libdir)" \ |
| --use-compiler-family=gcc \ |
| $(use debug || echo "--without-debug") \ |
| $(use static && echo "--use-static-gcc") \ |
| $(use static-libs && echo "--enable-static") \ |
| $(use threads && echo "--without-thread") \ |
| ${myconf} \ |
| --with-cc="$(tc-getCC)" \ |
| --with-cxx="$(tc-getCXX)" \ |
| --with-extra-cflags="${CFLAGS}" \ |
| --with-extra-cxxflags="${CXXFLAGS}" \ |
| --with-extra-ldflags="${LDFLAGS}" || die "configure failed" |
| } |
| |
| src_install() { |
| # precreate some directories |
| dodir /usr/$(get_libdir) |
| |
| default |
| dodoc etc/*.txt doc/*.txt |
| } |
| |
| src_test() { |
| if use static ; then |
| ewarn "Tests don't work when building with USE=static. Skipping..." |
| else |
| default |
| fi |
| } |