summaryrefslogtreecommitdiff
path: root/devel/boost-jam
diff options
context:
space:
mode:
authorjmmv <jmmv@pkgsrc.org>2008-01-04 19:58:39 +0000
committerjmmv <jmmv@pkgsrc.org>2008-01-04 19:58:39 +0000
commit106f6e10a540663e81edcf0839ada919bf2d150b (patch)
tree9b9bd7d108a9bed0659b3ba8104a217cbf9c19d5 /devel/boost-jam
parentf3ff9a627fcbd371c3969c7770e0ae8ee559c394 (diff)
downloadpkgsrc-106f6e10a540663e81edcf0839ada919bf2d150b.tar.gz
Update boost to 1.34.1. This is based on the patches provided by Brook Milligan
in PR pkg/36558. Committing it right after the freeze so that we have enough time to resolve the problems that this will surely cause. New Libraries * Foreach Library: BOOST_FOREACH macro for easily iterating over the elements of a sequence, from Eric Niebler. * Statechart Library: Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code, from Andreas Huber. * TR1 Library: An implementation of the C++ Technical Report on Standard Library Extensions, from John Maddock. This library does not itself implement the TR1 components, rather it's a thin wrapper that will include your standard library's TR1 implementation (if it has one), otherwise it will include the Boost Library equivalents, and import them into namespace std::tr1. Highlights include: Reference Wrappers, Smart Pointers, result_of, Function Object Binders, Polymorphic function wrappers, Type Traits, Random Number Generators and Distributions, Tuples, Fixed Size Array, Hash Function Objects, Regular Expressions and Complex Number Additional Algorithms. * Typeof Library: Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt. * Xpressive Library: Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler. Updated Libraries * Assign Library: o Support for ptr_map<key,T> via the new function ptr_map_insert() o Support for initialization of Pointer Containers when the containers hold pointers to an abstract base class. * Date_time library: o Support for new US/Canada timezone rules and other bug fixes. See Change History for details. * Filesystem Library: Major upgrade in preparation for submission to the C++ Standards Committee for TR2. Changes include: o Internationalization, provided by class templates basic_path, basic_filesystem_error, basic_directory_iterator and basic_directory_entry. o Simplification of the path interface by eliminating special constructors to identify native formats. o Rationalization of predicate function design, including the addition of several new functions. o Clearer specification by reference to POSIX, the ISO/IEEE Single Unix Standard, with provisions for Windows and other operating systems. o Preservation of existing user code whenever possible. o More efficient directory iteration. o Addition of a recursive directory iterator. * Function Library: Boost.Function now implements a small buffer optimization, which can drastically improve the performance when copying or constructing Boost.Function objects storing small function objects. For instance, bind(&X:foo, &x, _1, _2) requires no heap allocation when placed into a Boost.Function object. * Functional/Hash Library o Use declarations for standard classes, so that the library doesn't need to include all of their headers o Deprecated the <boost/functional/hash/*.hpp> headers. o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which disables the extensions to TR1 o Minor improvements to the hash functions for floating point numbers. * Graph Library: o edmonds_maximum_cardinality_matching, from Aaron Windsor. o lengauer_tarjan_dominator_tree, from JongSoo Park. o compressed_sparse_row_graph, from Jeremiah Willcock and Douglas Gregor of Indiana University. o sorted_erdos_renyi_iterator, from Jeremiah Willcock of Indiana University. o biconnected_components now supports a visitor and named parameters, from Janusz Piwowarski. o adjacency_matrix now models the Bidirectional Graph concept. o dijkstra_shortest_paths now calls vis.initialize_vertex for each vertex during initialization. o Note: the name of the compiled library for the GraphViz reader has changed to boost_graph (from bgl-viz) to match Boost conventions. o See the complete revision history for more information. * MultiArray Library: Boost.MultiArray now by default provides range-checking for operator[]. Range checking can be disabled by defining the macro BOOST_DISABLE_ASSERTS before including multi_array.hpp. A bug in multi_array::resize() related to storage orders was fixed. * Multi-index Containers Library: o New random access indices. o Non key-based indices feature new rearrange facilities. o This version also includes a number of optimizations and usage improvements. For a complete list of changes, see the library release notes. * Optional Library: o boost::none_t and boost::none now added to Optional's documentation o Relational operators now directly support arguments of type 'T' and 'none_t' o operator->() now also works with reference types. o Helper functions make_optional(val), make_optional(cond,val) and get_optional_value_or(opt,alternative_value) added. o Constructor taking a boolean condition (as well as a value) added. o Member function get_value_or(alternative_value) added. o Incompatbility bug with mpl::apply<> fixed. o Converting assignment bug with uninitialized lvalues fixed. * Parameter Library: o Every ArgumentPack is now a valid MPL Forward Sequence. o Support for unnamed arguments (those whose keyword is deduced from their types) is added. o Support for named and unnamed template arguments is added. o New overload generation macros solve the forwarding problem directly. o See also the Python library changes, below. * Pointer Container Library: o Support for serialization via Boost.Serialization. o Exceptions can be disabled by defining the macro BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header. This macro is defined by default if BOOST_NO_EXCEPTIONS is defined. o Additional std::auto_ptr<T> overloads added s.t. one can also pass std::auto_ptr<T> instead of only T* arguments to member functions. o transfer() now has weaker requirements s.t. one can transfer objects from ptr_container<Derived> to ptr_container<Base>, * Python Library: o Boost.Python now automatically appends C++ signatures to docstrings. The new docstring_options.hpp header is available to control the content of docstrings. o stl_input_iterator, for turning a Python iterable object into an STL input iterator, from Eric Niebler. o Support for void* conversions is added. o Integrated support for wrapping C++ functions built with the parameter library; keyword names are automatically known to docsstrings. o Enhancements to the API for better embedding support (boost::python::import(), boost::python::exec() and boost::python::exec_file()). * Signals Library: More improvements to signal invocation performance from Robert Zeh. * Smart Pointers Library: o Allocator support as proposed in N1851 (162 Kb PDF). o pointer_cast and pointer_to_other utilities to allow pointer-independent code, from Ion Gaztanaga. * String Algorithm Library: o lexicographical_compare o join o New comparison predicates is_less, is_not_greater. o Negative indexes support (like Perl) in various algorihtms (*_head/tail, *_nth). * Wave Library: o Wave now correctly recognizes pp-number tokens as mandated by the C++ Standard, which are converted to C++ tokens right before they are returned from the library. o Several new preprocessing hooks have been added. For a complete description please refer to the related documentation page: The Context Policy. o Shared library (dll) support has been added for the generated Wave libraries. o The overall error handling has been improved. It is now possible to recover and continue after an error or a warning was issued. o Support for optional comment and/or full whitespace preservation in the generated output stream has been added. o The Wave library now performs automatic include guard detection to avoid accessing header files more than once, if appropriate. o Full interactive mode has been added to the Wave tool. Now the Wave tool can be used just like Python or Perl for instance to interactively try out your BOOST_PP macros. Additionally it is now possible to load and save the current state of an interactive session (macro tables et.al.). o The overall performance has been improved by upto 40-60%, depending on the concrete files to process. o Support for new pragmas has been added allowing to control certain library features from inside the preprocessed sources (partial output redirection, control of generated whitespace and #line directives). o Optional support for #pragma message "..." has been added. o This version also includes a number of bug fixes and usage improvements. For a complete list of changes, see the libraries change log.
Diffstat (limited to 'devel/boost-jam')
-rw-r--r--devel/boost-jam/Makefile11
-rw-r--r--devel/boost-jam/bjam.mk30
-rw-r--r--devel/boost-jam/buildlink3.mk4
3 files changed, 27 insertions, 18 deletions
diff --git a/devel/boost-jam/Makefile b/devel/boost-jam/Makefile
index 93f32b8a6a4..be7680d3d43 100644
--- a/devel/boost-jam/Makefile
+++ b/devel/boost-jam/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2007/11/29 22:27:13 heinz Exp $
+# $NetBSD: Makefile,v 1.3 2008/01/04 19:58:40 jmmv Exp $
#
PKG_DESTDIR_SUPPORT= user-destdir
@@ -14,22 +14,19 @@ CONFLICTS+= boost-build<=1.33.1
SUBST_CLASSES+= bb
SUBST_MESSAGE.bb= Fixing path to Boost.Build files.
SUBST_STAGE.bb= pre-build
-SUBST_FILES.bb= tools/build/jam_src/Jambase
+SUBST_FILES.bb= tools/jam/src/Jambase
SUBST_SED.bb= -e 's,/usr/share/boost-build,${PREFIX}/share/boost-build,g'
.include "../../devel/boost-build/toolset.mk"
INSTALLATION_DIRS= bin
-pre-build:
- rm ${WRKSRC}/tools/build/jam_src/jambase.c
-
do-build:
- cd ${WRKSRC}/tools/build/jam_src && \
+ cd ${WRKSRC}/tools/jam/src && \
${SETENV} ${MAKE_ENV} ${SH} ./build.sh ${BOOST_TOOLSET}
do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/tools/build/jam_src/bin.*/bjam \
+ ${INSTALL_PROGRAM} ${WRKSRC}/tools/jam/src/bin.*/bjam \
${DESTDIR:Q}${PREFIX}/bin
.include "../../mk/bsd.pkg.mk"
diff --git a/devel/boost-jam/bjam.mk b/devel/boost-jam/bjam.mk
index 7cee298fc77..7b58f1630f5 100644
--- a/devel/boost-jam/bjam.mk
+++ b/devel/boost-jam/bjam.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bjam.mk,v 1.1.1.1 2007/06/02 17:48:51 jmmv Exp $
+# $NetBSD: bjam.mk,v 1.2 2008/01/04 19:58:40 jmmv Exp $
#
.include "../../devel/boost-jam/buildlink3.mk"
@@ -7,24 +7,36 @@
.include "../../mk/bsd.prefs.mk"
BJAM= ${BUILDLINK_PREFIX.boost-jam}/bin/bjam
+
BJAM_ARGS+= --builddir=${WRKSRC}/build
BJAM_ARGS+= --layout=system
BJAM_ARGS+= --prefix=${PREFIX}
-BJAM_ARGS+= -sBUILD=${BJAM_BUILD:Q}
-BJAM_ARGS+= -sTOOLS=${BOOST_TOOLSET}
+BJAM_ARGS+= --toolset=${BOOST_TOOLSET}
.if ${OPSYS} == "Darwin"
BJAM_ARGS+= -sTARGET_LIBDIR=${PREFIX}/lib
.endif
-.if defined(BOOST_DEBUG) && !empty(BOOST_DEBUG:M[Yy][Ee][Ss])
+BJAM_ARGS+= ${BJAM_BUILD}
+
BJAM_BUILD+= debug
-.endif
-BJAM_BUILD+= <linkflags>${COMPILER_RPATH_FLAG}${PREFIX}/lib
-BJAM_BUILD+= <threading>multi
BJAM_BUILD+= release
+BJAM_BUILD+= threading=multi
+BJAM_BUILD+= link=shared,static
+
BJAM_CMD= ${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_ARGS}
+PKG_OPTIONS_VAR= PKG_OPTIONS.boost
+PKG_SUPPORTED_OPTIONS= debug
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_SRC+= PLIST
+
+UNLIMIT_RESOURCES+= datasize
+
bjam-build:
- @cd ${WRKSRC} && ${BJAM_CMD} stage
+ @${_ULIMIT_CMD} \
+ cd ${WRKSRC} && ${BJAM_CMD} stage
bjam-install:
- @cd ${WRKSRC} && ${BJAM_CMD} install
+ @${_ULIMIT_CMD} \
+ cd ${WRKSRC} && ${BJAM_CMD} install
diff --git a/devel/boost-jam/buildlink3.mk b/devel/boost-jam/buildlink3.mk
index 2d4ce89e76c..f99a5a50c80 100644
--- a/devel/boost-jam/buildlink3.mk
+++ b/devel/boost-jam/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.1.1.1 2007/06/02 17:48:51 jmmv Exp $
+# $NetBSD: buildlink3.mk,v 1.2 2008/01/04 19:58:40 jmmv Exp $
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
BOOST_JAM_BUILDLINK3_MK:= ${BOOST_JAM_BUILDLINK3_MK}+
@@ -12,7 +12,7 @@ BUILDLINK_PACKAGES+= boost-jam
BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}boost-jam
.if !empty(BOOST_JAM_BUILDLINK3_MK:M+)
-BUILDLINK_API_DEPENDS.boost-jam+= boost-jam-1.33.*
+BUILDLINK_API_DEPENDS.boost-jam+= boost-jam-1.34.*
BUILDLINK_DEPMETHOD.boost-jam?= build
BUILDLINK_PKGSRCDIR.boost-jam?= ../../devel/boost-jam
.endif # BOOST_JAM_BUILDLINK3_MK