# $Id$ PNAME="boost" PVER="1.53.0" PBUILD="r1" SPLIT_PACKAGES="boost-system boost-regex boost-chrono boost-date-time boost-filesystem boost-graph boost-iostreams boost-locale boost-math boost-program-options boost-python boost-random boost-serialization boost-signals boost-test boost-thread boost-timer boost-wave boost-jam boost-build boost boost-doc boost-examples" PCAT="dev-libs" HOMEPAGE="http://www.boost.org/" COMMON_DEPEND=">= sys-libs/libstdc++-4.7" BZIP_DEPEND=">= app-arch/bzip2-1.0.6" ZLIB_DEPEND=">= sys-libs/zlib-1.2" PYTHON_DEPEND=">= dev-lang/python-2.7" ICU_DEPEND=">= dev-libs/icu-50" SDEPEND="${COMMON_DEPEND} ${BZIP_DEPEND} ${ZLIB_DEPEND} ${PYTHON_DEPEND} ${ICU_DEPEND}" SRCFILE="${PNAME}_$(echo ${PVER} | sed "s:\.:_:g").tar.bz2" SRCDIR="${BUILDDIR}/${PNAME}_$(echo ${PVER} | sed "s:\.:_:g")" sminclude python mbuild mtools msetfeature "!check" SRC_URI=( sourceforge://${PNAME}/${SRCFILE} mirror://${PNAME}/${SRCFILE} ) UP2SEPERATOR="_" UP2DATE="updatecmd_sourceforge ${PNAME}" split_info_boost-chrono() { DESCRIPTION="Run-Time component of boost chrono library." DEPEND="${COMMON_DEPEND} == dev-libs/boost-system-${PVER}" } split_info_boost-date-time() { DESCRIPTION="Run-Time component of boost date-time library." DEPEND="${COMMON_DEPEND}" } split_info_boost-filesystem() { DESCRIPTION="Run-Time component of boost filesystem library." DEPEND="${COMMON_DEPEND} == dev-libs/boost-system-${PVER}" } split_info_boost-graph() { DESCRIPTION="Run-Time component of boost graph library." DEPEND="${COMMON_DEPEND} ${ICU_DEPEND} == dev-libs/boost-regex-${PVER}" } split_info_boost-iostreams() { DESCRIPTION="Run-Time component of boost iostreams library." DEPEND="${COMMON_DEPEND} ${BZIP_DEPEND} ${ZLIB_DEPEND}" } split_info_boost-locale() { DESCRIPTION="Run-Time component of boost locale library." DEPEND="${COMMON_DEPEND} ${ICU_DEPEND}" } split_info_boost-math() { DESCRIPTION="Math functions for boost TR1/C99 library." DEPEND="${COMMON_DEPEND}" } split_info_boost-program-options() { DESCRIPTION="Run-Time component of boost program_options library." DEPEND="${COMMON_DEPEND}" } split_info_boost-python() { DESCRIPTION="Run-Time component of boost python library." DEPEND="${COMMON_DEPEND} ${PYTHON_DEPEND}" } split_info_boost-random() { DESCRIPTION="Run-Time component of boost random library." DEPEND="${COMMON_DEPEND}" } split_info_boost-regex() { DESCRIPTION="Run-Time component of boost regex library." DEPEND="${COMMON_DEPEND} ${ICU_DEPEND}" } split_info_boost-serialization() { DESCRIPTION="Run-Time component of boost serialization library." DEPEND="${COMMON_DEPEND}" } split_info_boost-signals() { DESCRIPTION="Run-Time component of boost signals and slots library." DEPEND="${COMMON_DEPEND}" } split_info_boost-system() { DESCRIPTION="Run-Time component of boost system support library." DEPEND="${COMMON_DEPEND}" } split_info_boost-test() { DESCRIPTION="Run-Time component of boost test library." DEPEND="${COMMON_DEPEND}" } split_info_boost-thread() { DESCRIPTION="Run-Time component of boost thead library." DEPEND="${COMMON_DEPEND}" } split_info_boost-timer() { DESCRIPTION="Run-Time component of boost timer library." DEPEND="${COMMON_DEPEND} == dev-libs/boost-system-${PVER} == dev-libs/boost-chrono-${PVER}" } split_info_boost-wave() { DESCRIPTION="Run-Time component of boost C99/C++ pre-processing library." DEPEND="${COMMON_DEPEND} == dev-libs/boost-system-${PVER} == dev-libs/boost-date-time-${PVER} == dev-libs/boost-filesystem-${PVER} == dev-libs/boost-thread-${PVER}" } split_info_boost-doc() { DESCRIPTION="HTML documentation for the Boost C++ libraries." DEPEND="" } split_info_boost-examples() { DESCRIPTION="Source examples for the Boost C++ libraries" DEPEND=">= dev-libs/boost-${PVER}" } split_info_boost-jam() { PCAT="dev-util" DESCRIPTION="Boost.Jam is an alternative to make based on Jam." DEPEND="${COMMON_DEPEND}" } split_info_boost-build() { PCAT="dev-util" DESCRIPTION="Cross platform build system for C++ projects." DEPEND="== dev-util/boost-jam-${PVER}" } split_info_boost() { DESCRIPTION="Boost provides free peer-reviewed portable C++ source libraries." DEPEND="== dev-libs/boost-system-${PVER} == dev-libs/boost-regex-${PVER} == dev-libs/boost-chrono-${PVER} == dev-libs/boost-date-time-${PVER} == dev-libs/boost-filesystem-${PVER} == dev-libs/boost-graph-${PVER} == dev-libs/boost-iostreams-${PVER} == dev-libs/boost-locale-${PVER} == dev-libs/boost-math-${PVER} == dev-libs/boost-program-options-${PVER} == dev-libs/boost-python-${PVER} == dev-libs/boost-random-${PVER} == dev-libs/boost-test-${PVER} == dev-libs/boost-signals-${PVER} == dev-libs/boost-test-${PVER} == dev-libs/boost-thread-${PVER} == dev-libs/boost-timer-${PVER} == dev-libs/boost-wave-${PVER} == dev-util/boost-jam-${PVER} == dev-util/boost-build-${PVER}" } src_compile() { # bjam builded with gcc-4.2 segfaults without '-fno-strict-aliasing' # see: http://svn.boost.org/trac/boost/ticket/977 export CFLAGS="${CFLAGS} -fno-strict-aliasing" export CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing" # first build bjam (must use cc not gcc to use our modified cflags) cd ${SRCDIR}/tools/build/v2/engine ./build.sh cc || die # find bjam exec local bjam=$(find ${SRCDIR}/tools/build/v2/engine -name bjam -a -type f) # build bcp cd ${SRCDIR}/tools/bcp ${bjam} || die # build boost libraries # --layout=tagged will add the "-mt" suffix for multithreaded libraries # and installs includes in /usr/include/boost. # --layout=system no longer adds the -mt suffix for multi-threaded libs. cd ${SRCDIR} ${bjam} \ release \ debug-symbols=off \ runtime-link=shared \ link=shared,static \ threading=single,multi \ -sPYTHON_ROOT=/usr \ -sPYTHON_VERSION=$(get_python_version) \ -sTOOLS=gcc \ --prefix=${BINDIR}/usr \ --layout=tagged \ || die # build pyste cd ${SRCDIR}/libs/python/pyste/install python_docompile || die } src_install_boost-chrono() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-date-time() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-filesystem() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-graph() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-iostreams() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-locale() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-math() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}_c99.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_c99.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_c99.so || die minstallexec stage/lib/lib${PNAME//-/_}_c99-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_c99-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_c99-mt.so || die minstallexec stage/lib/lib${PNAME//-/_}_c99f.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_c99f.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_c99f.so || die minstallexec stage/lib/lib${PNAME//-/_}_c99f-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_c99f-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_c99f-mt.so || die minstallexec stage/lib/lib${PNAME//-/_}_c99l.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_c99l.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_c99l.so || die minstallexec stage/lib/lib${PNAME//-/_}_c99l-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_c99l-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_c99l-mt.so || die minstallexec stage/lib/lib${PNAME//-/_}_tr1.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_tr1.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_tr1.so || die minstallexec stage/lib/lib${PNAME//-/_}_tr1-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_tr1-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_tr1-mt.so || die minstallexec stage/lib/lib${PNAME//-/_}_tr1f.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_tr1f.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_tr1f.so || die minstallexec stage/lib/lib${PNAME//-/_}_tr1f-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_tr1f-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_tr1f-mt.so || die minstallexec stage/lib/lib${PNAME//-/_}_tr1l.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_tr1l.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_tr1l.so || die minstallexec stage/lib/lib${PNAME//-/_}_tr1l-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}_tr1l-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}_tr1l-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-program-options() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-python() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-random() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-regex() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-serialization() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstallexec stage/lib/libboost_wserialization.so.${PVER} /usr/$(mlibdir) || die mlink libboost_wserialization.so.${PVER} /usr/$(mlibdir)/libboost_wserialization.so || die minstallexec stage/lib/libboost_wserialization-mt.so.${PVER} /usr/$(mlibdir) || die mlink libboost_wserialization-mt.so.${PVER} /usr/$(mlibdir)/libboost_wserialization-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-signals() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-system() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-test() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/libboost_prg_exec_monitor.so.${PVER} /usr/$(mlibdir) || die mlink libboost_prg_exec_monitor.so.${PVER} /usr/$(mlibdir)/libboost_prg_exec_monitor.so || die minstallexec stage/lib/libboost_prg_exec_monitor-mt.so.${PVER} /usr/$(mlibdir) || die mlink libboost_prg_exec_monitor-mt.so.${PVER} /usr/$(mlibdir)/libboost_prg_exec_monitor-mt.so || die minstallexec stage/lib/libboost_unit_test_framework.so.${PVER} /usr/$(mlibdir) || die mlink libboost_unit_test_framework.so.${PVER} /usr/$(mlibdir)/libboost_unit_test_framework.so || die minstallexec stage/lib/libboost_unit_test_framework-mt.so.${PVER} /usr/$(mlibdir) || die mlink libboost-unit_test_framework-mt.so.${PVER} /usr/$(mlibdir)/libboost_unit_test_framework-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-thread() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-timer() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-wave() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die minstallexec stage/lib/lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}.so || die minstallexec stage/lib/lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir) || die mlink lib${PNAME//-/_}-mt.so.${PVER} /usr/$(mlibdir)/lib${PNAME//-/_}-mt.so || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-jam() { cd ${SRCDIR} # find bjam exec local bjam=$(find ${SRCDIR}/tools/build/v2/engine -name bjam -a -type f) minstallexec ${bjam} || die minstalldocs LICENSE_1_0.txt || die } src_install_boost-build() { cd ${SRCDIR} minstalldir /usr/share || die mcopy -a tools/build /usr/share/boost-build || die # cleanup things provided by other packages rm -r ${BINDIR}/usr/share/boost-build/v2/doc || die rm -r ${BINDIR}/usr/share/boost-build/v2/example || die # cleanup uneccessary stuff rm -r ${BINDIR}/usr/share/boost-build/v2/debian || die rm -r ${BINDIR}/usr/share/boost-build/v2/notes || die rm ${BINDIR}/usr/share/boost-build/v2/*.txt || die minstalldocs LICENSE_1_0.txt || die minstalldocs tools/build/v2/*.txt || die minstalldocs tools/build/v2/notes/*.txt || die } src_install_boost-doc() { cd ${SRCDIR} minstalldir /usr/share/doc || die mcopy -a doc/html /usr/share/doc/${PNAME}-${PVER} || die } src_install_boost-examples() { cd ${SRCDIR} minstalldir /usr/share/doc || die mcopy -a tools/build/v2/example /usr/share/doc/${PNAME}-${PVER} || die minstalldocs LICENSE_1_0.txt || die } src_install_boost() { cd ${SRCDIR} # find bjam exec local bjam=$(find ${SRCDIR}/tools/build/v2/engine -name bjam -a -type f) # install boost ${bjam} \ release \ debug-symbols=off \ runtime-link=shared \ link=shared,static \ threading=single,multi \ -sPYTHON_ROOT=/usr \ -sPYTHON_VERSION=$(get_python_version) \ -sTOOLS=gcc \ --prefix=${BINDIR}/usr \ --libdir=${BINDIR}/usr/$(mlibdir) \ --layout=tagged \ install \ || die # install bcp executables minstallexec dist/bin/bcp || die # install pyste cd libs/python/pyste/install python_doinstall || die # install docs cd ${SRCDIR} minstalldocs LICENSE_1_0.txt README || die # cleanup things provided by other packages rm ${BINDIR}/usr/$(mlibdir)/libboost*.so* || die }