include $(PKGROOT)/Include
PKG_NAME = boost
-PKG_VER = 1.39.0
+PKG_VER = 1.41.0
PKG_REL = 0
PKG_MAINTAINER =
PKG_LICENSE = Boost
PKG_SUMMARY = The Boost C++ Libraries.
-PKG_DEPS += python
+PKG_BUILD_DEPS+= cmake
+PKG_DEPS += zlib
define PKG_DESCRIPTION
Boost provides free peer-reviewed portable C++ source libraries. The \
Standards Committee's upcoming C++ Standard Library Technical Report.)
endef
-PKG_TARBALL = $(PKG_NAME)_$(subst .,_,$(PKG_VER)).tar.bz2
-
-export BOOST_ROOT=$(DIR_APP)
-BUILD_FLAGS = -d2 --layout=system variant=release threading=single,multi \
- debug-symbols=on link=shared runtime-link=shared
-SONAMEVERSION = 5
+PKG_TARBALL = $(THISAPP).cmake0.tar.gz
CFLAGS += -fno-strict-aliasing
+CXXFLAGS += -fno-strict-aliasing
-PARALLELISMFLAGS := -j3
-
-DIR_APP = $(DIR_SRC)/$(PKG_NAME)_$(subst .,_,$(PKG_VER))
+DIR_APP = $(DIR_SRC)/$(THISAPP).cmake0
define STAGE_PREPARE_CMDS
- # Let bjam use our own cflags
- cd $(DIR_APP) && sed -e "s/-O3/$(CFLAGS)/g" -i tools/build/v2/tools/gcc.jam
+ -mkdir -pv $(DIR_APP)/serial
endef
define STAGE_BUILD
- # build jam
- cd $(DIR_APP)/tools/jam/src && ./build.sh
-
- # build libs
- cd $(DIR_APP) && ./bootstrap.sh \
- --with-toolset=gcc \
- --with-icu
-
- cd $(DIR_APP) && \
- ./bjam $(BUILD_FLAGS) $(PARALLELISMFLAGS) stage
+ cd $(DIR_APP)/serial && \
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DBUILD_TESTS="NONE" \
+ -DENABLE_SINGLE_THREADED=YES \
+ -DINSTALL_VERSIONED=OFF \
+ -DWITH_MPI=OFF \
+ -DENABLE_STATIC=OFF \
+ -DENABLE_DEBUG=OFF \
+ ..
+
+ cd $(DIR_APP)/serial && make VERBOSE=1 #$(PARALLELISMFLAGS)
endef
define STAGE_INSTALL
- # install libs
- -mkdir -pv $(BUILDROOT)/usr/lib
- cd $(DIR_APP) && for i in $$(find stage -type f -name "*.so"); do \
- install -v -p -m 755 $$i $(BUILDROOT)/usr/lib/$$(basename $$i).$(PKG_VER); \
- ln -svf $$(basename $$i).$(PKG_VER) $(BUILDROOT)/usr/lib/$$(basename $$i).$(SONAMEVERSION); \
- ln -svf $$(basename $$i).$(SONAMEVERSION) $(BUILDROOT)/usr/lib/$$(basename $$i); \
- done
+ cd $(DIR_APP)/serial && make install DESTDIR=$(BUILDROOT)
+
+ # Kill any debug library versions that may show up un-invited.
+ rm -f $(BUILDROOT)/usr/lib/*-d.*
- # install includes
- -mkdir -pv $(BUILDROOT)/usr/include
- cd $(DIR_APP) && find boost -type d | while read a; do \
- mkdir -pv $(BUILDROOT)/usr/include/$$a; \
- find $$a -mindepth 1 -maxdepth 1 -type f | \
- xargs -r install -v -m 644 -p -t $(BUILDROOT)/usr/include/$$a; \
- done
+ # Remove cmake configuration files used to build the Boost libraries
+ find $(BUILDROOT)/usr/lib -name '*.cmake' -exec rm -f {} \;
endef
+++ /dev/null
-Index: boost/filesystem/operations.hpp
-===================================================================
---- a/boost/filesystem/operations.hpp (revision 52859)
-+++ b/boost/filesystem/operations.hpp (working copy)
-@@ -659,9 +659,9 @@
- { return is_symlink<wpath>( ph ); }
-
- inline bool is_empty( const path & ph )
-- { return is_empty<path>( ph ); }
-+ { return boost::filesystem::is_empty<path>( ph ); }
- inline bool is_empty( const wpath & ph )
-- { return is_empty<wpath>( ph ); }
-+ { return boost::filesystem::is_empty<wpath>( ph ); }
-
- inline bool equivalent( const path & ph1, const path & ph2 )
- { return equivalent<path>( ph1, ph2 ); }
-Index: libs/filesystem/test/path_test.cpp
-===================================================================
---- a/libs/filesystem/test/path_test.cpp (revision 52859)
-+++ b/libs/filesystem/test/path_test.cpp (working copy)
-@@ -27,9 +27,8 @@
-
- namespace fs = boost::filesystem;
- using boost::filesystem::path;
--using boost::next;
--using boost::prior;
-
-+
- #include <boost/detail/lightweight_test.hpp>
-
- #define PATH_CHECK( a, b ) check( a, b, __LINE__ )
-@@ -480,18 +479,18 @@
-
- itr_ck = "foo";
- BOOST_TEST( *itr_ck.begin() == std::string( "foo" ) );
-- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
-- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
-+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
-+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
-
- itr_ck = path( "/foo" );
- BOOST_TEST( *itr_ck.begin() == std::string( "/" ) );
-- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) );
-- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
-- BOOST_TEST( next( itr_ck.begin() ) == prior( itr_ck.end() ) );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
-- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) );
-- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
-+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "foo" ) );
-+ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() );
-+ BOOST_TEST( boost::next( itr_ck.begin() ) == boost::prior( itr_ck.end() ) );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
-+ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "/" ) );
-+ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() );
-
- itr_ck = "/foo/bar";
- itr = itr_ck.begin();
-@@ -1106,65 +1105,65 @@
-
- itr_ck = path( "c:" );
- BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
-- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
-- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "c:" ) );
-+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
-+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "c:" ) );
-
- itr_ck = path( "c:/" );
- BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
-- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
-- BOOST_TEST( next( next( itr_ck.begin() )) == itr_ck.end() );
-- BOOST_TEST( prior( prior( itr_ck.end() )) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "/" ) );
-- BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "c:" ) );
-+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) );
-+ BOOST_TEST( boost::next( boost::next( itr_ck.begin() )) == itr_ck.end() );
-+ BOOST_TEST( boost::prior( boost::prior( itr_ck.end() )) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "/" ) );
-+ BOOST_TEST( *boost::prior( boost::prior( itr_ck.end() )) == std::string( "c:" ) );
-
- itr_ck = path( "c:foo" );
- BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
-- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "foo" ) );
-- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
-- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
-- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "c:" ) );
-+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "foo" ) );
-+ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() );
-+ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
-+ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "c:" ) );
-
- itr_ck = path( "c:/foo" );
- BOOST_TEST( *itr_ck.begin() == std::string( "c:" ) );
-- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
-- BOOST_TEST( *next( next( itr_ck.begin() )) == std::string( "foo" ) );
-- BOOST_TEST( next( next( next( itr_ck.begin() ))) == itr_ck.end() );
-- BOOST_TEST( prior( prior( prior( itr_ck.end() ))) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
-- BOOST_TEST( *prior( prior( itr_ck.end() )) == std::string( "/" ) );
-- BOOST_TEST( *prior( prior( prior( itr_ck.end() ))) == std::string( "c:" ) );
-+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) );
-+ BOOST_TEST( *boost::next( boost::next( itr_ck.begin() )) == std::string( "foo" ) );
-+ BOOST_TEST( boost::next( boost::next( boost::next( itr_ck.begin() ))) == itr_ck.end() );
-+ BOOST_TEST( boost::prior( boost::prior( boost::prior( itr_ck.end() ))) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
-+ BOOST_TEST( *boost::prior( boost::prior( itr_ck.end() )) == std::string( "/" ) );
-+ BOOST_TEST( *boost::prior( boost::prior( boost::prior( itr_ck.end() ))) == std::string( "c:" ) );
-
- itr_ck = path( "//net" );
- BOOST_TEST( *itr_ck.begin() == std::string( "//net" ) );
-- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
-- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "//net" ) );
-+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
-+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "//net" ) );
-
- itr_ck = path( "//net/" );
- CHECK_EQUAL( *itr_ck.begin(), "//net" );
-- CHECK_EQUAL( *next( itr_ck.begin() ), "/" );
-- BOOST_TEST( next(next( itr_ck.begin() )) == itr_ck.end() );
-- BOOST_TEST( prior(prior( itr_ck.end() )) == itr_ck.begin() );
-- CHECK_EQUAL( *prior( itr_ck.end() ), "/" );
-- CHECK_EQUAL( *prior(prior( itr_ck.end() )), "//net" );
-+ CHECK_EQUAL( *boost::next( itr_ck.begin() ), "/" );
-+ BOOST_TEST( boost::next(boost::next( itr_ck.begin() )) == itr_ck.end() );
-+ BOOST_TEST( boost::prior(boost::prior( itr_ck.end() )) == itr_ck.begin() );
-+ CHECK_EQUAL( *boost::prior( itr_ck.end() ), "/" );
-+ CHECK_EQUAL( *boost::prior(boost::prior( itr_ck.end() )), "//net" );
-
- itr_ck = path( "//net/foo" );
- BOOST_TEST( *itr_ck.begin() == std::string( "//net" ) );
-- BOOST_TEST( *next( itr_ck.begin() ) == std::string( "/" ) );
-- BOOST_TEST( *next(next( itr_ck.begin() )) == std::string( "foo" ) );
-- BOOST_TEST( next(next(next( itr_ck.begin() ))) == itr_ck.end() );
-- BOOST_TEST( prior(prior(prior( itr_ck.end() ))) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "foo" ) );
-- BOOST_TEST( *prior(prior( itr_ck.end() )) == std::string( "/" ) );
-- BOOST_TEST( *prior(prior(prior( itr_ck.end() ))) == std::string( "//net" ) );
-+ BOOST_TEST( *boost::next( itr_ck.begin() ) == std::string( "/" ) );
-+ BOOST_TEST( *boost::next(boost::next( itr_ck.begin() )) == std::string( "foo" ) );
-+ BOOST_TEST( boost::next(boost::next(boost::next( itr_ck.begin() ))) == itr_ck.end() );
-+ BOOST_TEST( boost::prior(boost::prior(boost::prior( itr_ck.end() ))) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "foo" ) );
-+ BOOST_TEST( *boost::prior(boost::prior( itr_ck.end() )) == std::string( "/" ) );
-+ BOOST_TEST( *boost::prior(boost::prior(boost::prior( itr_ck.end() ))) == std::string( "//net" ) );
-
- itr_ck = path( "prn:" );
- BOOST_TEST( *itr_ck.begin() == std::string( "prn:" ) );
-- BOOST_TEST( next( itr_ck.begin() ) == itr_ck.end() );
-- BOOST_TEST( prior( itr_ck.end() ) == itr_ck.begin() );
-- BOOST_TEST( *prior( itr_ck.end() ) == std::string( "prn:" ) );
-+ BOOST_TEST( boost::next( itr_ck.begin() ) == itr_ck.end() );
-+ BOOST_TEST( boost::prior( itr_ck.end() ) == itr_ck.begin() );
-+ BOOST_TEST( *boost::prior( itr_ck.end() ) == std::string( "prn:" ) );
- } // Windows
-
- else