Make boost into a usable recipe ...

since apparently it wasn't tested when being merged

* Fixed the _devel package so that it actually contains devel stuff
  (in particular the static libs and shared lib symlinks)

* Fixed all of the REQUIRES/PROVIDES entries

* Enable ICU support

* Enable parallel building

There should probably be a _doc package and we might want to split the
_devel package with a separate package for each of the libs.
This commit is contained in:
Chris Roberts
2013-12-29 01:17:00 -07:00
parent 54479651f4
commit af174e27ca

View File

@@ -9,12 +9,14 @@ SUMMARY="Boost is a set of libraries for the C++ programming language."
HOMEPAGE="http://www.boost.org/"
SRC_URI="http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.bz2"
CHECKSUM_MD5="d6eef4b4cacb2183f2bf265a5a03a354"
REVISION="1"
REVISION="2"
LICENSE="Boost v1.0"
COPYRIGHT="1998-2013 Beman Dawes, David Abrahams, Rene Rivera, et al."
ARCHITECTURES="x86 ?x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
ARCHITECTURES="$ARCHITECTURES x86_gcc2"
else
ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86 ?x86_64"
@@ -23,106 +25,189 @@ SOURCE_DIR="boost_1_55_0"
PATCHES="boost-1.55.0.patchset"
PROVIDES="
lib:boost = 1.55.0
boost$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix >= $haikuVersion
lib:libiconv$secondaryArchSuffix
lib:libbz2$secondaryArchSuffix
lib:libz$secondaryArchSuffix
boost_atomic$secondaryArchSuffix == $portVersion
boost_chrono$secondaryArchSuffix == $portVersion
boost_context$secondaryArchSuffix == $portVersion
boost_coroutine$secondaryArchSuffix == $portVersion
boost_date_time$secondaryArchSuffix == $portVersion
boost_filesystem$secondaryArchSuffix == $portVersion
boost_graph$secondaryArchSuffix == $portVersion
boost_iostreams$secondaryArchSuffix == $portVersion
boost_locale$secondaryArchSuffix == $portVersion
boost_log$secondaryArchSuffix == $portVersion
boost_math$secondaryArchSuffix == $portVersion
boost_program_options$secondaryArchSuffix == $portVersion
boost_random$secondaryArchSuffix == $portVersion
boost_regex$secondaryArchSuffix == $portVersion
boost_serialization$secondaryArchSuffix == $portVersion
boost_signals$secondaryArchSuffix == $portVersion
boost_system$secondaryArchSuffix == $portVersion
boost_test$secondaryArchSuffix == $portVersion
boost_thread$secondaryArchSuffix == $portVersion
boost_timer$secondaryArchSuffix == $portVersion
boost_unit_test_framework$secondaryArchSuffix == $portVersion
boost_wave$secondaryArchSuffix == $portVersion
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
devel:libiconv$secondaryArchSuffix
devel:libbz2$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix
devel:libicui18n$secondaryArchSuffix
devel:libicudata$secondaryArchSuffix
"
BUILD_PREREQUIRES="
boehm_gc
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:jam
cmd:iconv
cmd:make
binutils
"
BUILD()
{
./bootstrap.sh \
--without-icu \
--prefix=$prefix \
--exec-prefix=$binDir \
--libdir=$libDir \
--includedir=$includeDir
./bjam \
-sICU_PATH=$prefix \
-sICONV_PATH=$prefix \
-d2 \
./b2 $jobArgs \
--without-mpi \
--prefix=$prefix \
--exec-prefix=$binDir \
--libdir=$libDir \
--includedir=$includeDir \
--enable-threads=posix \
--enable-thread-local-alloc \
--enable-parallel-mark \
inlining=on \
linkflags=-L$libDir \
threading=multi \
variant=release \
link=shared \
link=static,shared \
runtime-link=shared \
--without-python \
--disable-icu
--without-python
}
INSTALL()
{
mkdir -p $includeDir
mkdir -p $libDir
cp -rf boost $includeDir
cp stage/lib/* $libDir
packageEntries devel $includeDir
packageEntries atomic $libDir/*atomic*
packageEntries chrono $libDir/*chrono*
packageEntries context $libDir/*context*
packageEntries coroutine $libDir/*coroutine*
packageEntries date_time $libDir/*date_time*
packageEntries exception $libDir/*exception*
packageEntries filesystem $libDir/*filesystem*
packageEntries graph $libDir/*graph*
packageEntries iostreams $libDir/*iostreams*
packageEntries locale $libDir/*locale*
packageEntries log $libDir/*log*
packageEntries math $libDir/*math*
packageEntries program_options $libDir/*program_options*
packageEntries random $libDir/*random*
packageEntries regex $libDir/*regex*
packageEntries serialization $libDir/*serialization*
packageEntries signals $libDir/*signals*
packageEntries system $libDir/*system*
packageEntries test $libDir/*test*
packageEntries thread $libDir/*thread*
packageEntries timer $libDir/*timer*
packageEntries wave $libDir/*wave*
./b2 $jobArgs \
--without-mpi \
--enable-threads=posix \
--enable-thread-local-alloc \
--enable-parallel-mark \
inlining=on \
threading=multi \
variant=release \
link=static,shared \
runtime-link=shared \
--without-python \
install
prepareInstalledDevelLibs libboost_atomic \
libboost_chrono libboost_context libboost_coroutine \
libboost_date_time libboost_filesystem libboost_iostreams \
libboost_locale libboost_log libboost_log_setup \
libboost_math_c99 libboost_math_c99f libboost_math_c99l \
libboost_math_tr1 libboost_math_tr1f libboost_math_tr1l \
libboost_program_options libboost_random libboost_regex \
libboost_serialization libboost_signals libboost_system \
libboost_thread libboost_timer libboost_unit_test_framework \
libboost_wave libboost_wserialization libboost_prg_exec_monitor \
libboost_exception libboost_graph libboost_test_exec_monitor
packageEntries devel $developDir
packageEntries atomic $libDir/libboost_atomic*
packageEntries chrono $libDir/libboost_chrono*
packageEntries context $libDir/libboost_context*
packageEntries coroutine $libDir/libboost_coroutine*
packageEntries date_time $libDir/libboost_date_time*
# packageEntries exception $libDir/libboost_exception*
packageEntries filesystem $libDir/libboost_filesystem*
packageEntries graph $libDir/libboost_graph*
packageEntries iostreams $libDir/libboost_iostreams*
packageEntries locale $libDir/libboost_locale*
packageEntries log $libDir/libboost_log*
packageEntries math $libDir/libboost_math*
packageEntries program_options $libDir/libboost_program_options*
packageEntries random $libDir/libboost_random*
packageEntries regex $libDir/libboost_regex*
packageEntries serialization $libDir/libboost_serialization* $libDir/libboost_wserialization*
packageEntries signals $libDir/libboost_signals*
packageEntries system $libDir/libboost_system*
packageEntries test $libDir/libboost_prg_exec_monitor*
packageEntries thread $libDir/libboost_thread*
packageEntries timer $libDir/libboost_timer*
packageEntries unit_test_framework $libDir/libboost_unit_test_framework*
packageEntries wave $libDir/libboost_wave*
}
PROVIDES_devel="
boost_devel$secondaryArchSuffix = $portVersion
devel:libboost_atomic$secondaryArchSuffix = $portVersion
devel:libboost_chrono$secondaryArchSuffix = $portVersion
devel:libboost_context$secondaryArchSuffix = $portVersion
devel:libboost_coroutine$secondaryArchSuffix = $portVersion
devel:libboost_date_time$secondaryArchSuffix = $portVersion
devel:libboost_exception$secondaryArchSuffix = $portVersion
devel:libboost_filesystem$secondaryArchSuffix = $portVersion
devel:libboost_graph$secondaryArchSuffix = $portVersion
devel:libboost_iostreams$secondaryArchSuffix = $portVersion
devel:libboost_locale$secondaryArchSuffix = $portVersion
devel:libboost_log$secondaryArchSuffix = $portVersion
devel:libboost_log_setup$secondaryArchSuffix = $portVersion
devel:libboost_math_c99$secondaryArchSuffix = $portVersion
devel:libboost_math_c99f$secondaryArchSuffix = $portVersion
devel:libboost_math_c99l$secondaryArchSuffix = $portVersion
devel:libboost_math_tr1$secondaryArchSuffix = $portVersion
devel:libboost_math_tr1f$secondaryArchSuffix = $portVersion
devel:libboost_math_tr1l$secondaryArchSuffix = $portVersion
devel:libboost_prg_exec_monitor$secondaryArchSuffix = $portVersion
devel:libboost_program_options$secondaryArchSuffix = $portVersion
devel:libboost_random$secondaryArchSuffix = $portVersion
devel:libboost_regex$secondaryArchSuffix = $portVersion
devel:libboost_serialization$secondaryArchSuffix = $portVersion
devel:libboost_signals$secondaryArchSuffix = $portVersion
devel:libboost_system$secondaryArchSuffix = $portVersion
devel:libboost_test_exec_monitor$secondaryArchSuffix = $portVersion
devel:libboost_thread$secondaryArchSuffix = $portVersion
devel:libboost_timer$secondaryArchSuffix = $portVersion
devel:libboost_unit_test_framework$secondaryArchSuffix = $portVersion
devel:libboost_wave$secondaryArchSuffix = $portVersion
devel:libboost_wserialization$secondaryArchSuffix = $portVersion
"
REQUIRES_devel="
haiku$secondaryArchSuffix >= $haikuVersion
boost$secondaryArchSuffix == $portVersion
boost_atomic$secondaryArchSuffix == $portVersion
boost_chrono$secondaryArchSuffix == $portVersion
boost_context$secondaryArchSuffix == $portVersion
boost_coroutine$secondaryArchSuffix == $portVersion
boost_date_time$secondaryArchSuffix == $portVersion
# boost_exception$secondaryArchSuffix == $portVersion
boost_filesystem$secondaryArchSuffix == $portVersion
boost_graph$secondaryArchSuffix == $portVersion
boost_iostreams$secondaryArchSuffix == $portVersion
boost_locale$secondaryArchSuffix == $portVersion
boost_log$secondaryArchSuffix == $portVersion
boost_math$secondaryArchSuffix == $portVersion
boost_program_options$secondaryArchSuffix == $portVersion
boost_random$secondaryArchSuffix == $portVersion
boost_regex$secondaryArchSuffix == $portVersion
boost_serialization$secondaryArchSuffix == $portVersion
boost_signals$secondaryArchSuffix == $portVersion
boost_system$secondaryArchSuffix == $portVersion
boost_test$secondaryArchSuffix == $portVersion
boost_thread$secondaryArchSuffix == $portVersion
boost_timer$secondaryArchSuffix == $portVersion
boost_unit_test_framework$secondaryArchSuffix == $portVersion
boost_wave$secondaryArchSuffix == $portVersion
"
PROVIDES_atomic="
boost_atomic$secondaryArchSuffix = $portVersion
lib:libboost_atomic$secondaryArchSuffix = $portVersion
"
REQUIRES_atomic="
@@ -131,15 +216,17 @@ REQUIRES_atomic="
PROVIDES_chrono="
boost_chrono$secondaryArchSuffix = $portVersion
lib:libboost_chrono$secondaryArchSuffix = $portVersion
"
REQUIRES_chrono="
haiku$secondaryArchSuffix >= $haikuVersion
boost_system$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
"
PROVIDES_context="
boost_context$secondaryArchSuffix = $portVersion
lib:libboost_context$secondaryArchSuffix = $portVersion
"
REQUIRES_context="
@@ -148,81 +235,107 @@ REQUIRES_context="
PROVIDES_coroutine="
boost_coroutine$secondaryArchSuffix = $portVersion
lib:libboost_coroutine$secondaryArchSuffix = $portVersion
"
REQUIRES_coroutine="
boost_context$secondaryArchSuffix == $portVersion
haiku$secondaryArchSuffix >= $haikuVersion
lib:libboost_context$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
"
PROVIDES_date_time="
boost_date_time$secondaryArchSuffix = $portVersion
lib:libboost_date_time$secondaryArchSuffix = $portVersion
"
REQUIRES_date_time="
haiku$secondaryArchSuffix >= $haikuVersion
"
PROVIDES_exception="
boost_exception$secondaryArchSuffix = $portVersion
"
#PROVIDES_exception="
# boost_exception$secondaryArchSuffix = $portVersion
# lib:libboost_exception$secondaryArchSuffix = $portVersion
# "
REQUIRES_exception="
haiku$secondaryArchSuffix >= $haikuVersion
"
#REQUIRES_exception="
# haiku$secondaryArchSuffix >= $haikuVersion
# "
PROVIDES_filesystem="
boost_filesystem$secondaryArchSuffix = $portVersion
lib:libboost_filesystem$secondaryArchSuffix = $portVersion
"
REQUIRES_filesystem="
haiku$secondaryArchSuffix >= $haikuVersion
boost_system$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
lib:libz$secondaryArchSuffix
lib:libbz2$secondaryArchSuffix
"
PROVIDES_graph="
boost_graph$secondaryArchSuffix = $portVersion
lib:libboost_graph$secondaryArchSuffix = $portVersion
"
REQUIRES_graph="
haiku$secondaryArchSuffix >= $haikuVersion
boost_regex$secondaryArchSuffix == $portVersion
lib:libboost_regex$secondaryArchSuffix == $portVersion
lib:libicuuc$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
"
PROVIDES_iostreams="
boost_iostreams$secondaryArchSuffix = $portVersion
lib:libboost_iostreams$secondaryArchSuffix = $portVersion
"
REQUIRES_iostreams="
haiku$secondaryArchSuffix >= $haikuVersion
lib:libz$secondaryArchSuffix
lib:libbz2$secondaryArchSuffix
"
PROVIDES_locale="
boost_locale$secondaryArchSuffix = $portVersion
lib:libboost_locale$secondaryArchSuffix = $portVersion
"
REQUIRES_locale="
haiku$secondaryArchSuffix >= $haikuVersion
boost_chrono$secondaryArchSuffix == $portVersion
boost_system$secondaryArchSuffix == $portVersion
boost_thread$secondaryArchSuffix == $portVersion
lib:libboost_chrono$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
lib:libboost_thread$secondaryArchSuffix == $portVersion
lib:libicuuc$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
"
PROVIDES_log="
boost_log$secondaryArchSuffix = $portVersion
lib:libboost_log$secondaryArchSuffix = $portVersion
lib:libboost_log_setup$secondaryArchSuffix = $portVersion
"
REQUIRES_log="
haiku$secondaryArchSuffix >= $haikuVersion
boost_chrono$secondaryArchSuffix == $portVersion
boost_system$secondaryArchSuffix == $portVersion
boost_date_time$secondaryArchSuffix == $portVersion
boost_thread$secondaryArchSuffix == $portVersion
lib:libboost_chrono$secondaryArchSuffix == $portVersion
lib:libboost_filesystem$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
lib:libboost_date_time$secondaryArchSuffix == $portVersion
lib:libboost_thread$secondaryArchSuffix == $portVersion
"
PROVIDES_math="
boost_math$secondaryArchSuffix = $portVersion
lib:libboost_math_c99$secondaryArchSuffix = $portVersion
lib:libboost_math_c99f$secondaryArchSuffix = $portVersion
lib:libboost_math_c99l$secondaryArchSuffix = $portVersion
lib:libboost_math_tr1$secondaryArchSuffix = $portVersion
lib:libboost_math_tr1f$secondaryArchSuffix = $portVersion
lib:libboost_math_tr1l$secondaryArchSuffix = $portVersion
"
REQUIRES_math="
@@ -231,6 +344,7 @@ REQUIRES_math="
PROVIDES_program_options="
boost_program_options$secondaryArchSuffix = $portVersion
lib:libboost_program_options$secondaryArchSuffix = $portVersion
"
REQUIRES_program_options="
@@ -239,6 +353,7 @@ REQUIRES_program_options="
PROVIDES_random="
boost_random$secondaryArchSuffix = $portVersion
lib:libboost_random$secondaryArchSuffix = $portVersion
"
REQUIRES_random="
@@ -247,14 +362,20 @@ REQUIRES_random="
PROVIDES_regex="
boost_regex$secondaryArchSuffix = $portVersion
lib:libboost_regex$secondaryArchSuffix = $portVersion
"
REQUIRES_regex="
haiku$secondaryArchSuffix >= $haikuVersion
lib:libicuuc$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
"
PROVIDES_serialization="
boost_serialization$secondaryArchSuffix = $portVersion
lib:libboost_serialization$secondaryArchSuffix = $portVersion
lib:libboost_wserialization$secondaryArchSuffix = $portVersion
"
REQUIRES_serialization="
@@ -263,6 +384,7 @@ REQUIRES_serialization="
PROVIDES_signals="
boost_signals$secondaryArchSuffix = $portVersion
lib:libboost_signals$secondaryArchSuffix = $portVersion
"
REQUIRES_signals="
@@ -271,6 +393,7 @@ REQUIRES_signals="
PROVIDES_system="
boost_system$secondaryArchSuffix = $portVersion
lib:libboost_system$secondaryArchSuffix = $portVersion
"
REQUIRES_system="
@@ -279,6 +402,8 @@ REQUIRES_system="
PROVIDES_test="
boost_test$secondaryArchSuffix = $portVersion
lib:libboost_prg_exec_monitor$secondaryArchSuffix = $portVersion
# lib:libboost_test_exec_monitor$secondaryArchSuffix = $portVersion
"
REQUIRES_test="
@@ -287,33 +412,44 @@ REQUIRES_test="
PROVIDES_thread="
boost_thread$secondaryArchSuffix = $portVersion
lib:libboost_thread$secondaryArchSuffix = $portVersion
"
REQUIRES_thread="
haiku$secondaryArchSuffix >= $haikuVersion
boost_system$secondaryArchSuffix == $portVersion
boost_chrono$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
"
PROVIDES_timer="
boost_timer$secondaryArchSuffix = $portVersion
lib:libboost_timer$secondaryArchSuffix = $portVersion
"
REQUIRES_timer="
haiku$secondaryArchSuffix >= $haikuVersion
boost_chrono$secondaryArchSuffix == $portVersion
boost_system$secondaryArchSuffix == $portVersion
lib:libboost_chrono$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
"
PROVIDES_unit_test_framework="
boost_unit_test_framework$secondaryArchSuffix = $portVersion
lib:libboost_unit_test_framework$secondaryArchSuffix = $portVersion
"
REQUIRES_unit_test_framework="
haiku$secondaryArchSuffix >= $haikuVersion
"
PROVIDES_wave="
boost_wave$secondaryArchSuffix = $portVersion
lib:libboost_wave$secondaryArchSuffix = $portVersion
"
REQUIRES_wave="
haiku$secondaryArchSuffix >= $haikuVersion
boost_chrono$secondaryArchSuffix == $portVersion
boost_date_time$secondaryArchSuffix == $portVersion
boost_filesystem$secondaryArchSuffix == $portVersion
boost_system$secondaryArchSuffix == $portVersion
boost_thread$secondaryArchSuffix == $portVersion
lib:libboost_chrono$secondaryArchSuffix == $portVersion
lib:libboost_date_time$secondaryArchSuffix == $portVersion
lib:libboost_filesystem$secondaryArchSuffix == $portVersion
lib:libboost_system$secondaryArchSuffix == $portVersion
lib:libboost_thread$secondaryArchSuffix == $portVersion
"