Add SCons configure checks
g0dil [Mon, 8 Feb 2010 22:25:21 +0000 (22:25 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1573 270642c3-0616-0410-b53a-bc976706d245

230 files changed:
.gitignore
SConstruct
boost_ext/boost/bimap.hpp [moved from boost/bimap.hpp with 100% similarity]
boost_ext/boost/bimap/bimap.hpp [moved from boost/bimap/bimap.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/associative_container_adaptor.hpp [moved from boost/bimap/container_adaptor/associative_container_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/container_adaptor.hpp [moved from boost/bimap/container_adaptor/container_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/detail/comparison_adaptor.hpp [moved from boost/bimap/container_adaptor/detail/comparison_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/detail/functor_bag.hpp [moved from boost/bimap/container_adaptor/detail/functor_bag.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/detail/identity_converters.hpp [moved from boost/bimap/container_adaptor/detail/identity_converters.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/detail/key_extractor.hpp [moved from boost/bimap/container_adaptor/detail/key_extractor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/detail/non_unique_container_helper.hpp [moved from boost/bimap/container_adaptor/detail/non_unique_container_helper.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/list_adaptor.hpp [moved from boost/bimap/container_adaptor/list_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/list_map_adaptor.hpp [moved from boost/bimap/container_adaptor/list_map_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/map_adaptor.hpp [moved from boost/bimap/container_adaptor/map_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/multimap_adaptor.hpp [moved from boost/bimap/container_adaptor/multimap_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/multiset_adaptor.hpp [moved from boost/bimap/container_adaptor/multiset_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/ordered_associative_container_adaptor.hpp [moved from boost/bimap/container_adaptor/ordered_associative_container_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/sequence_container_adaptor.hpp [moved from boost/bimap/container_adaptor/sequence_container_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/set_adaptor.hpp [moved from boost/bimap/container_adaptor/set_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/support/iterator_facade_converters.hpp [moved from boost/bimap/container_adaptor/support/iterator_facade_converters.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp [moved from boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/unordered_map_adaptor.hpp [moved from boost/bimap/container_adaptor/unordered_map_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/unordered_multimap_adaptor.hpp [moved from boost/bimap/container_adaptor/unordered_multimap_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/unordered_multiset_adaptor.hpp [moved from boost/bimap/container_adaptor/unordered_multiset_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/unordered_set_adaptor.hpp [moved from boost/bimap/container_adaptor/unordered_set_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/vector_adaptor.hpp [moved from boost/bimap/container_adaptor/vector_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/container_adaptor/vector_map_adaptor.hpp [moved from boost/bimap/container_adaptor/vector_map_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/detail/bimap_core.hpp [moved from boost/bimap/detail/bimap_core.hpp with 100% similarity]
boost_ext/boost/bimap/detail/concept_tags.hpp [moved from boost/bimap/detail/concept_tags.hpp with 100% similarity]
boost_ext/boost/bimap/detail/debug/static_error.hpp [moved from boost/bimap/detail/debug/static_error.hpp with 100% similarity]
boost_ext/boost/bimap/detail/generate_index_binder.hpp [moved from boost/bimap/detail/generate_index_binder.hpp with 100% similarity]
boost_ext/boost/bimap/detail/generate_relation_binder.hpp [moved from boost/bimap/detail/generate_relation_binder.hpp with 100% similarity]
boost_ext/boost/bimap/detail/generate_view_binder.hpp [moved from boost/bimap/detail/generate_view_binder.hpp with 100% similarity]
boost_ext/boost/bimap/detail/is_set_type_of.hpp [moved from boost/bimap/detail/is_set_type_of.hpp with 100% similarity]
boost_ext/boost/bimap/detail/manage_additional_parameters.hpp [moved from boost/bimap/detail/manage_additional_parameters.hpp with 100% similarity]
boost_ext/boost/bimap/detail/manage_bimap_key.hpp [moved from boost/bimap/detail/manage_bimap_key.hpp with 100% similarity]
boost_ext/boost/bimap/detail/map_view_base.hpp [moved from boost/bimap/detail/map_view_base.hpp with 100% similarity]
boost_ext/boost/bimap/detail/map_view_iterator.hpp [moved from boost/bimap/detail/map_view_iterator.hpp with 100% similarity]
boost_ext/boost/bimap/detail/modifier_adaptor.hpp [moved from boost/bimap/detail/modifier_adaptor.hpp with 100% similarity]
boost_ext/boost/bimap/detail/non_unique_views_helper.hpp [moved from boost/bimap/detail/non_unique_views_helper.hpp with 100% similarity]
boost_ext/boost/bimap/detail/set_view_base.hpp [moved from boost/bimap/detail/set_view_base.hpp with 100% similarity]
boost_ext/boost/bimap/detail/set_view_iterator.hpp [moved from boost/bimap/detail/set_view_iterator.hpp with 100% similarity]
boost_ext/boost/bimap/detail/test/check_metadata.hpp [moved from boost/bimap/detail/test/check_metadata.hpp with 100% similarity]
boost_ext/boost/bimap/detail/user_interface_config.hpp [moved from boost/bimap/detail/user_interface_config.hpp with 100% similarity]
boost_ext/boost/bimap/list_of.hpp [moved from boost/bimap/list_of.hpp with 100% similarity]
boost_ext/boost/bimap/multiset_of.hpp [moved from boost/bimap/multiset_of.hpp with 100% similarity]
boost_ext/boost/bimap/property_map/set_support.hpp [moved from boost/bimap/property_map/set_support.hpp with 100% similarity]
boost_ext/boost/bimap/property_map/unordered_set_support.hpp [moved from boost/bimap/property_map/unordered_set_support.hpp with 100% similarity]
boost_ext/boost/bimap/relation/detail/access_builder.hpp [moved from boost/bimap/relation/detail/access_builder.hpp with 100% similarity]
boost_ext/boost/bimap/relation/detail/metadata_access_builder.hpp [moved from boost/bimap/relation/detail/metadata_access_builder.hpp with 100% similarity]
boost_ext/boost/bimap/relation/detail/mutant.hpp [moved from boost/bimap/relation/detail/mutant.hpp with 100% similarity]
boost_ext/boost/bimap/relation/detail/static_access_builder.hpp [moved from boost/bimap/relation/detail/static_access_builder.hpp with 100% similarity]
boost_ext/boost/bimap/relation/detail/to_mutable_relation_functor.hpp [moved from boost/bimap/relation/detail/to_mutable_relation_functor.hpp with 100% similarity]
boost_ext/boost/bimap/relation/member_at.hpp [moved from boost/bimap/relation/member_at.hpp with 100% similarity]
boost_ext/boost/bimap/relation/mutant_relation.hpp [moved from boost/bimap/relation/mutant_relation.hpp with 100% similarity]
boost_ext/boost/bimap/relation/pair_layout.hpp [moved from boost/bimap/relation/pair_layout.hpp with 100% similarity]
boost_ext/boost/bimap/relation/structured_pair.hpp [moved from boost/bimap/relation/structured_pair.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/data_extractor.hpp [moved from boost/bimap/relation/support/data_extractor.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/get.hpp [moved from boost/bimap/relation/support/get.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/get_pair_functor.hpp [moved from boost/bimap/relation/support/get_pair_functor.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/is_tag_of_member_at.hpp [moved from boost/bimap/relation/support/is_tag_of_member_at.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/member_with_tag.hpp [moved from boost/bimap/relation/support/member_with_tag.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/opposite_tag.hpp [moved from boost/bimap/relation/support/opposite_tag.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/pair_by.hpp [moved from boost/bimap/relation/support/pair_by.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/pair_type_by.hpp [moved from boost/bimap/relation/support/pair_type_by.hpp with 100% similarity]
boost_ext/boost/bimap/relation/support/value_type_of.hpp [moved from boost/bimap/relation/support/value_type_of.hpp with 100% similarity]
boost_ext/boost/bimap/relation/symmetrical_base.hpp [moved from boost/bimap/relation/symmetrical_base.hpp with 100% similarity]
boost_ext/boost/bimap/set_of.hpp [moved from boost/bimap/set_of.hpp with 100% similarity]
boost_ext/boost/bimap/support/data_type_by.hpp [moved from boost/bimap/support/data_type_by.hpp with 100% similarity]
boost_ext/boost/bimap/support/iterator_type_by.hpp [moved from boost/bimap/support/iterator_type_by.hpp with 100% similarity]
boost_ext/boost/bimap/support/key_type_by.hpp [moved from boost/bimap/support/key_type_by.hpp with 100% similarity]
boost_ext/boost/bimap/support/lambda.hpp [moved from boost/bimap/support/lambda.hpp with 100% similarity]
boost_ext/boost/bimap/support/map_by.hpp [moved from boost/bimap/support/map_by.hpp with 100% similarity]
boost_ext/boost/bimap/support/map_type_by.hpp [moved from boost/bimap/support/map_type_by.hpp with 100% similarity]
boost_ext/boost/bimap/support/value_type_by.hpp [moved from boost/bimap/support/value_type_by.hpp with 100% similarity]
boost_ext/boost/bimap/tags/support/apply_to_value_type.hpp [moved from boost/bimap/tags/support/apply_to_value_type.hpp with 100% similarity]
boost_ext/boost/bimap/tags/support/default_tagged.hpp [moved from boost/bimap/tags/support/default_tagged.hpp with 100% similarity]
boost_ext/boost/bimap/tags/support/is_tagged.hpp [moved from boost/bimap/tags/support/is_tagged.hpp with 100% similarity]
boost_ext/boost/bimap/tags/support/overwrite_tagged.hpp [moved from boost/bimap/tags/support/overwrite_tagged.hpp with 100% similarity]
boost_ext/boost/bimap/tags/support/tag_of.hpp [moved from boost/bimap/tags/support/tag_of.hpp with 100% similarity]
boost_ext/boost/bimap/tags/support/value_type_of.hpp [moved from boost/bimap/tags/support/value_type_of.hpp with 100% similarity]
boost_ext/boost/bimap/tags/tagged.hpp [moved from boost/bimap/tags/tagged.hpp with 100% similarity]
boost_ext/boost/bimap/unconstrained_set_of.hpp [moved from boost/bimap/unconstrained_set_of.hpp with 100% similarity]
boost_ext/boost/bimap/unordered_multiset_of.hpp [moved from boost/bimap/unordered_multiset_of.hpp with 100% similarity]
boost_ext/boost/bimap/unordered_set_of.hpp [moved from boost/bimap/unordered_set_of.hpp with 100% similarity]
boost_ext/boost/bimap/vector_of.hpp [moved from boost/bimap/vector_of.hpp with 100% similarity]
boost_ext/boost/bimap/views/list_map_view.hpp [moved from boost/bimap/views/list_map_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/list_set_view.hpp [moved from boost/bimap/views/list_set_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/map_view.hpp [moved from boost/bimap/views/map_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/multimap_view.hpp [moved from boost/bimap/views/multimap_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/multiset_view.hpp [moved from boost/bimap/views/multiset_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/set_view.hpp [moved from boost/bimap/views/set_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/unconstrained_map_view.hpp [moved from boost/bimap/views/unconstrained_map_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/unconstrained_set_view.hpp [moved from boost/bimap/views/unconstrained_set_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/unordered_map_view.hpp [moved from boost/bimap/views/unordered_map_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/unordered_multimap_view.hpp [moved from boost/bimap/views/unordered_multimap_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/unordered_multiset_view.hpp [moved from boost/bimap/views/unordered_multiset_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/unordered_set_view.hpp [moved from boost/bimap/views/unordered_set_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/vector_map_view.hpp [moved from boost/bimap/views/vector_map_view.hpp with 100% similarity]
boost_ext/boost/bimap/views/vector_set_view.hpp [moved from boost/bimap/views/vector_set_view.hpp with 100% similarity]
boost_ext/boost/multi_index/composite_key.hpp [moved from boost/multi_index/composite_key.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/access_specifier.hpp [moved from boost/multi_index/detail/access_specifier.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/adl_swap.hpp [moved from boost/multi_index/detail/adl_swap.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/archive_constructed.hpp [moved from boost/multi_index/detail/archive_constructed.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/auto_space.hpp [moved from boost/multi_index/detail/auto_space.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/base_type.hpp [moved from boost/multi_index/detail/base_type.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/bidir_node_iterator.hpp [moved from boost/multi_index/detail/bidir_node_iterator.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/bucket_array.hpp [moved from boost/multi_index/detail/bucket_array.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/converter.hpp [moved from boost/multi_index/detail/converter.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/copy_map.hpp [moved from boost/multi_index/detail/copy_map.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/duplicates_iterator.hpp [moved from boost/multi_index/detail/duplicates_iterator.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/has_tag.hpp [moved from boost/multi_index/detail/has_tag.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/hash_index_args.hpp [moved from boost/multi_index/detail/hash_index_args.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/hash_index_iterator.hpp [moved from boost/multi_index/detail/hash_index_iterator.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/hash_index_node.hpp [moved from boost/multi_index/detail/hash_index_node.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/header_holder.hpp [moved from boost/multi_index/detail/header_holder.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/index_base.hpp [moved from boost/multi_index/detail/index_base.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/index_loader.hpp [moved from boost/multi_index/detail/index_loader.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/index_matcher.hpp [moved from boost/multi_index/detail/index_matcher.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/index_node_base.hpp [moved from boost/multi_index/detail/index_node_base.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/index_saver.hpp [moved from boost/multi_index/detail/index_saver.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/invariant_assert.hpp [moved from boost/multi_index/detail/invariant_assert.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/is_index_list.hpp [moved from boost/multi_index/detail/is_index_list.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/iter_adaptor.hpp [moved from boost/multi_index/detail/iter_adaptor.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/modify_key_adaptor.hpp [moved from boost/multi_index/detail/modify_key_adaptor.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/msvc_index_specifier.hpp [moved from boost/multi_index/detail/msvc_index_specifier.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/no_duplicate_tags.hpp [moved from boost/multi_index/detail/no_duplicate_tags.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/node_type.hpp [moved from boost/multi_index/detail/node_type.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/ord_index_args.hpp [moved from boost/multi_index/detail/ord_index_args.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/ord_index_node.hpp [moved from boost/multi_index/detail/ord_index_node.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/ord_index_ops.hpp [moved from boost/multi_index/detail/ord_index_ops.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/prevent_eti.hpp [moved from boost/multi_index/detail/prevent_eti.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/rnd_index_loader.hpp [moved from boost/multi_index/detail/rnd_index_loader.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/rnd_index_node.hpp [moved from boost/multi_index/detail/rnd_index_node.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/rnd_index_ops.hpp [moved from boost/multi_index/detail/rnd_index_ops.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/rnd_index_ptr_array.hpp [moved from boost/multi_index/detail/rnd_index_ptr_array.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/rnd_node_iterator.hpp [moved from boost/multi_index/detail/rnd_node_iterator.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/safe_ctr_proxy.hpp [moved from boost/multi_index/detail/safe_ctr_proxy.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/safe_mode.hpp [moved from boost/multi_index/detail/safe_mode.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/scope_guard.hpp [moved from boost/multi_index/detail/scope_guard.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/seq_index_node.hpp [moved from boost/multi_index/detail/seq_index_node.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/seq_index_ops.hpp [moved from boost/multi_index/detail/seq_index_ops.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/uintptr_type.hpp [moved from boost/multi_index/detail/uintptr_type.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/unbounded.hpp [moved from boost/multi_index/detail/unbounded.hpp with 100% similarity]
boost_ext/boost/multi_index/detail/value_compare.hpp [moved from boost/multi_index/detail/value_compare.hpp with 100% similarity]
boost_ext/boost/multi_index/global_fun.hpp [moved from boost/multi_index/global_fun.hpp with 100% similarity]
boost_ext/boost/multi_index/hashed_index.hpp [moved from boost/multi_index/hashed_index.hpp with 100% similarity]
boost_ext/boost/multi_index/hashed_index_fwd.hpp [moved from boost/multi_index/hashed_index_fwd.hpp with 100% similarity]
boost_ext/boost/multi_index/identity.hpp [moved from boost/multi_index/identity.hpp with 100% similarity]
boost_ext/boost/multi_index/identity_fwd.hpp [moved from boost/multi_index/identity_fwd.hpp with 100% similarity]
boost_ext/boost/multi_index/indexed_by.hpp [moved from boost/multi_index/indexed_by.hpp with 100% similarity]
boost_ext/boost/multi_index/key_extractors.hpp [moved from boost/multi_index/key_extractors.hpp with 100% similarity]
boost_ext/boost/multi_index/mem_fun.hpp [moved from boost/multi_index/mem_fun.hpp with 100% similarity]
boost_ext/boost/multi_index/member.hpp [moved from boost/multi_index/member.hpp with 100% similarity]
boost_ext/boost/multi_index/ordered_index.hpp [moved from boost/multi_index/ordered_index.hpp with 100% similarity]
boost_ext/boost/multi_index/ordered_index_fwd.hpp [moved from boost/multi_index/ordered_index_fwd.hpp with 100% similarity]
boost_ext/boost/multi_index/random_access_index.hpp [moved from boost/multi_index/random_access_index.hpp with 100% similarity]
boost_ext/boost/multi_index/random_access_index_fwd.hpp [moved from boost/multi_index/random_access_index_fwd.hpp with 100% similarity]
boost_ext/boost/multi_index/safe_mode_errors.hpp [moved from boost/multi_index/safe_mode_errors.hpp with 100% similarity]
boost_ext/boost/multi_index/sequenced_index.hpp [moved from boost/multi_index/sequenced_index.hpp with 100% similarity]
boost_ext/boost/multi_index/sequenced_index_fwd.hpp [moved from boost/multi_index/sequenced_index_fwd.hpp with 100% similarity]
boost_ext/boost/multi_index/tag.hpp [moved from boost/multi_index/tag.hpp with 100% similarity]
boost_ext/boost/multi_index_container.hpp [moved from boost/multi_index_container.hpp with 100% similarity]
boost_ext/boost/multi_index_container_fwd.hpp [moved from boost/multi_index_container_fwd.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/arg_list.hpp [moved from boost/parameter/aux_/arg_list.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/default.hpp [moved from boost/parameter/aux_/default.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/overloads.hpp [moved from boost/parameter/aux_/overloads.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/parameter_requirements.hpp [moved from boost/parameter/aux_/parameter_requirements.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/result_of0.hpp [moved from boost/parameter/aux_/result_of0.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/tag.hpp [moved from boost/parameter/aux_/tag.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/tagged_argument.hpp [moved from boost/parameter/aux_/tagged_argument.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/unwrap_cv_reference.hpp [moved from boost/parameter/aux_/unwrap_cv_reference.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/void.hpp [moved from boost/parameter/aux_/void.hpp with 100% similarity]
boost_ext/boost/parameter/aux_/yesno.hpp [moved from boost/parameter/aux_/yesno.hpp with 100% similarity]
boost_ext/boost/parameter/binding.hpp [moved from boost/parameter/binding.hpp with 100% similarity]
boost_ext/boost/parameter/config.hpp [moved from boost/parameter/config.hpp with 100% similarity]
boost_ext/boost/parameter/keyword.hpp [moved from boost/parameter/keyword.hpp with 100% similarity]
boost_ext/boost/parameter/macros.hpp [moved from boost/parameter/macros.hpp with 100% similarity]
boost_ext/boost/parameter/match.hpp [moved from boost/parameter/match.hpp with 100% similarity]
boost_ext/boost/parameter/parameters.hpp [moved from boost/parameter/parameters.hpp with 100% similarity]
boost_ext/boost/typeof/encode_decode.hpp [moved from boost/typeof/encode_decode.hpp with 100% similarity]
boost_ext/boost/typeof/encode_decode_params.hpp [moved from boost/typeof/encode_decode_params.hpp with 100% similarity]
boost_ext/boost/typeof/incr_registration_group.hpp [moved from boost/typeof/incr_registration_group.hpp with 100% similarity]
boost_ext/boost/typeof/int_encoding.hpp [moved from boost/typeof/int_encoding.hpp with 100% similarity]
boost_ext/boost/typeof/integral_template_param.hpp [moved from boost/typeof/integral_template_param.hpp with 100% similarity]
boost_ext/boost/typeof/message.hpp [moved from boost/typeof/message.hpp with 100% similarity]
boost_ext/boost/typeof/modifiers.hpp [moved from boost/typeof/modifiers.hpp with 100% similarity]
boost_ext/boost/typeof/msvc/typeof_impl.hpp [moved from boost/typeof/msvc/typeof_impl.hpp with 100% similarity]
boost_ext/boost/typeof/native.hpp [moved from boost/typeof/native.hpp with 100% similarity]
boost_ext/boost/typeof/pointers_data_members.hpp [moved from boost/typeof/pointers_data_members.hpp with 100% similarity]
boost_ext/boost/typeof/register_functions.hpp [moved from boost/typeof/register_functions.hpp with 100% similarity]
boost_ext/boost/typeof/register_functions_iterate.hpp [moved from boost/typeof/register_functions_iterate.hpp with 100% similarity]
boost_ext/boost/typeof/register_fundamental.hpp [moved from boost/typeof/register_fundamental.hpp with 100% similarity]
boost_ext/boost/typeof/register_mem_functions.hpp [moved from boost/typeof/register_mem_functions.hpp with 100% similarity]
boost_ext/boost/typeof/std/bitset.hpp [moved from boost/typeof/std/bitset.hpp with 100% similarity]
boost_ext/boost/typeof/std/complex.hpp [moved from boost/typeof/std/complex.hpp with 100% similarity]
boost_ext/boost/typeof/std/deque.hpp [moved from boost/typeof/std/deque.hpp with 100% similarity]
boost_ext/boost/typeof/std/fstream.hpp [moved from boost/typeof/std/fstream.hpp with 100% similarity]
boost_ext/boost/typeof/std/functional.hpp [moved from boost/typeof/std/functional.hpp with 100% similarity]
boost_ext/boost/typeof/std/iostream.hpp [moved from boost/typeof/std/iostream.hpp with 100% similarity]
boost_ext/boost/typeof/std/istream.hpp [moved from boost/typeof/std/istream.hpp with 100% similarity]
boost_ext/boost/typeof/std/iterator.hpp [moved from boost/typeof/std/iterator.hpp with 100% similarity]
boost_ext/boost/typeof/std/list.hpp [moved from boost/typeof/std/list.hpp with 100% similarity]
boost_ext/boost/typeof/std/locale.hpp [moved from boost/typeof/std/locale.hpp with 100% similarity]
boost_ext/boost/typeof/std/map.hpp [moved from boost/typeof/std/map.hpp with 100% similarity]
boost_ext/boost/typeof/std/memory.hpp [moved from boost/typeof/std/memory.hpp with 100% similarity]
boost_ext/boost/typeof/std/ostream.hpp [moved from boost/typeof/std/ostream.hpp with 100% similarity]
boost_ext/boost/typeof/std/queue.hpp [moved from boost/typeof/std/queue.hpp with 100% similarity]
boost_ext/boost/typeof/std/set.hpp [moved from boost/typeof/std/set.hpp with 100% similarity]
boost_ext/boost/typeof/std/sstream.hpp [moved from boost/typeof/std/sstream.hpp with 100% similarity]
boost_ext/boost/typeof/std/stack.hpp [moved from boost/typeof/std/stack.hpp with 100% similarity]
boost_ext/boost/typeof/std/streambuf.hpp [moved from boost/typeof/std/streambuf.hpp with 100% similarity]
boost_ext/boost/typeof/std/string.hpp [moved from boost/typeof/std/string.hpp with 100% similarity]
boost_ext/boost/typeof/std/utility.hpp [moved from boost/typeof/std/utility.hpp with 100% similarity]
boost_ext/boost/typeof/std/valarray.hpp [moved from boost/typeof/std/valarray.hpp with 100% similarity]
boost_ext/boost/typeof/std/vector.hpp [moved from boost/typeof/std/vector.hpp with 100% similarity]
boost_ext/boost/typeof/template_encoding.hpp [moved from boost/typeof/template_encoding.hpp with 100% similarity]
boost_ext/boost/typeof/template_template_param.hpp [moved from boost/typeof/template_template_param.hpp with 100% similarity]
boost_ext/boost/typeof/type_encoding.hpp [moved from boost/typeof/type_encoding.hpp with 100% similarity]
boost_ext/boost/typeof/type_template_param.hpp [moved from boost/typeof/type_template_param.hpp with 100% similarity]
boost_ext/boost/typeof/typeof.hpp [moved from boost/typeof/typeof.hpp with 100% similarity]
boost_ext/boost/typeof/typeof_impl.hpp [moved from boost/typeof/typeof_impl.hpp with 100% similarity]
boost_ext/boost/typeof/vector.hpp [moved from boost/typeof/vector.hpp with 100% similarity]
boost_ext/boost/typeof/vector100.hpp [moved from boost/typeof/vector100.hpp with 100% similarity]
boost_ext/boost/typeof/vector150.hpp [moved from boost/typeof/vector150.hpp with 100% similarity]
boost_ext/boost/typeof/vector200.hpp [moved from boost/typeof/vector200.hpp with 100% similarity]
boost_ext/boost/typeof/vector50.hpp [moved from boost/typeof/vector50.hpp with 100% similarity]
site_scons/senfconf.py [new file with mode: 0644]
site_scons/senfutil.py
site_scons/site_tools/Boost.py

index ba35e05..3bc81f9 100644 (file)
@@ -20,6 +20,8 @@ doc/
 .test.bin
 .test.stamp
 .test-valgrind.stamp
+.sconf_temp/
+config.log
 
 # Local files (files in this directory)
 /SConscript.local
index 045c091..33f2dec 100644 (file)
@@ -1,7 +1,10 @@
 # -*- python -*-
 
+from __future__ import with_statement
+
 import sys, os.path, fnmatch
-import SENFSCons, senfutil
+import SENFSCons, senfutil, senfconf
+
 
 ###########################################################################
 # Load utilities and setup libraries and configure build
@@ -65,12 +68,12 @@ env.Append(
    CLEAN_PATTERNS         = [ '*~', '#*#', '*.pyc', 'semantic.cache', '.sconsign*' ],
 
    BUILDDIR               = '${FLAVOR and "#/build/$FLAVOR" or "#"}',
-   CPPPATH                = [ '$BUILDDIR', '#' ],
+   CPPPATH                = [ '#', '$BUILDDIR',
+                              '${NEED_BOOST_EXT and "#/boost_ext" or None}' ],
    LOCALLIBDIR            = '$BUILDDIR',
    LIBPATH                = [ '$LOCALLIBDIR' ],
-   LIBS                   = [ '$LIBSENF$LIBADDSUFFIX', '$EXTRA_LIBS' ],
-   EXTRA_LIBS             = [ 'rt', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', 
-                              '$BOOSTFSLIB' ], 
+   LIBS                   = [ '$EXTRA_LIBS' ],
+   EXTRA_LIBS             = [ 'rt' ],
    TEST_EXTRA_LIBS        = [  ],
    VALGRINDARGS           = [ '--num-callers=50' ],
 
@@ -122,6 +125,7 @@ env.SetDefault(
     LIBSENF           = "senf",
     LCOV              = "lcov",
     GENHTML           = "genhtml",
+    VALGRIND          = "valgrind",
     SCONSBIN          = env.File("#/tools/scons"),
     SCONSARGS         = [ '-Q', '-j$CONCURRENCY_LEVEL', 'debug=$debug', 'final=$final' ] + \
         [ '%s=%s' % (k,v) for k,v in ARGUMENTS.iteritems() ],
@@ -133,11 +137,6 @@ env.SetDefault(
     FLAVOR            = '',
 )
 
-# ugly hack for ubuntu karmic 
-# ToDo: auto-configure alike support
-if os.path.exists('/usr/lib/libboost_regex-mt.so'):
-    env.Append( BOOST_VARIANT = '-mt' )
-
 # Set variables from command line
 senfutil.parseArguments(
     env,
@@ -154,6 +153,42 @@ if 'test_changes' in COMMAND_LINE_TARGETS and not env.has_key('only_tests'):
 if env.has_key('only_tests') : env['sparse_tests'] = True
 Export('env')
 
+###########################################################################
+# Configure
+
+# Default configuration (boost stuff)
+senfutil.Configure(env)
+
+@senfconf.Test
+def CheckValgrind(context):
+    context.Message( "Checking for valgrind... " )
+    ret = context.TryAction(['valgrind --version >$TARGET'])
+    context.Result( ret[1].strip() or False )
+    return ret[0]
+
+@senfconf.Test
+def CheckValgrindWildcards(context):
+    context.Message( "Checking whether valgrind supports '...' wildcards in suppressions... " )
+    ret = context.TryAction(['valgrind --suppressions=$SOURCE /bin/true'],
+                            "{\n test_suppression\n Memcheck:Addr4\n ...\n fun:foo\n}\n",
+                            ".sup")
+    context.Result( ret[0] )
+    return ret[0]
+
+conf = env.Configure(clean=False, help=False, custom_tests = senfconf.Tests())
+env.Replace(
+    HAVE_VALGRIND  = conf.CheckValgrind() and conf.CheckValgrindWildcards()
+)
+conf.Finish()
+
+# Only add this here, after all configure checks have run
+
+env.Append(LIBS = '$LIBSENF$LIBADDSUFFIX',
+           EXTRA_LIBS = [ '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', 
+                          '$BOOSTFSLIB' ])
+
+###########################################################################
+
 # Create Doxyfile.local otherwise doxygen will barf on this non-existent file
 # Create it even when cleaning, to silence the doxygen builder warnings
 if not os.path.exists("doclib/Doxyfile.local"):
@@ -204,18 +239,20 @@ env.Alias('all', [ 'default', 'all_tests', 'examples', 'all_docs' ])
 env.PhonyTarget('prepare', [], [])
 
 #### valgrind
-for test in env.FindAllBoostUnitTests():
-    stamp = env.Command(test[0].dir.File('.test-valgrind.stamp'), 
-                        [ test[0].dir.File('.test.bin'), 'tools/valgrind.sup' ],
-                        [ """valgrind --tool=memcheck 
-                                      --error-exitcode=99 
-                                      --suppressions=${SOURCES[1]}
-                                      $VALGRINDARGS
-                                          ${SOURCES[0]} $BOOSTTESTARGS;
-                             [ $$? -ne 99 ] || exit 1""".replace("\n"," "),
-                          Touch("$TARGET") ])
-    alias = env.Command(test[0].dir.File('valgrind'), stamp, [ env.NopAction() ])
-    env.Alias('all_valgrinds', alias)
+env.Alias('all_valgrinds')
+if env['HAVE_VALGRIND']:
+    for test in env.FindAllBoostUnitTests():
+        stamp = env.Command(test[0].dir.File('.test-valgrind.stamp'), 
+                            [ test[0].dir.File('.test.bin'), 'tools/valgrind.sup' ],
+                            [ """$VALGRIND --tool=memcheck 
+                                          --error-exitcode=1
+                                          --suppressions=${SOURCES[1]}
+                                          $VALGRINDARGS
+                                              ${SOURCES[0]} --result_code=no $BOOSTTESTARGS
+                              """.replace("\n"," "),
+                              Touch("$TARGET") ])
+        alias = env.Command(test[0].dir.File('valgrind'), stamp, [ env.NopAction() ])
+        env.Alias('all_valgrinds', alias)
 
 ### lcov
 env.PhonyTarget('lcov', [], [
similarity index 100%
rename from boost/bimap.hpp
rename to boost_ext/boost/bimap.hpp
diff --git a/site_scons/senfconf.py b/site_scons/senfconf.py
new file mode 100644 (file)
index 0000000..bf32926
--- /dev/null
@@ -0,0 +1,60 @@
+from __future__ import with_statement
+
+_configTests = {}
+
+def Tests():
+    global _configTests
+    return _configTests
+
+def Test(func):
+    global _configTests
+    _configTests[func.__name__] = func
+
+class TemporaryContext:
+    def __init__(self, context):
+        self._context = context
+        self._env = self._context.env.Clone()
+
+    def __enter__(self):
+        return None
+
+    def __exit__(self,*args):
+        self._context.env.Replace(**self._env.Dictionary())
+        return False
+
+@Test
+def CheckBoostVersion(context):
+    context.Message( "Checking boost version... " )
+    ret = context.TryRun("#include <boost/version.hpp>\n"
+                         "#include <iostream>\n"
+                         "int main(int, char **) { std::cout << BOOST_LIB_VERSION << std::endl; }",
+                         ".cc")[1].strip()
+    if not ret:
+        context.Result("no boost includes found")
+        return None
+    else:
+        context.Result(ret)
+        return ret
+
+@Test
+def CheckBoostVariants(context, *variants):
+    useVariant = None
+    with TemporaryContext(context):
+        for variant in variants:
+            if variant : variantStr = "'%s'" % variant
+            else       : variantStr = "default"
+            context.Message( "Checking boost %s variant... " % variantStr )
+            context.env.Replace( BOOST_VARIANT=variant )
+            context.env.Append( _LIBFLAGS = ' -Wl,-Bstatic -l$BOOSTTESTLIB  -Wl,-Bdynamic' )
+            ret = context.TryLink("#define BOOST_AUTO_TEST_MAIN\n"
+                                  "#include <boost/test/auto_unit_test.hpp>\n"
+                                  "#include <boost/test/test_tools.hpp>\n"
+                                  "BOOST_AUTO_TEST_CASE(test) { BOOST_CHECK(true); }\n",
+                                  ".cc")
+            context.Result( ret )
+            if ret and useVariant is None:
+                useVariant = variant
+    if useVariant is not None and not context.env.GetOption('no_progress'):
+        print  "Using %s boost variant." % (
+            useVariant and "'%s'" % useVariant or "default")
+    return useVariant
index 275ea1d..38c82b6 100644 (file)
@@ -1,5 +1,6 @@
 import os.path, glob, site_tools.Yaptu
 from SCons.Script import *
+import senfconf
 
 senfutildir = os.path.dirname(__file__)
 
@@ -66,7 +67,8 @@ Special command line parameters:
 # This looks much more complicated than it is: We do three things here:
 # a) switch between final or debug options
 # b) parse the LOGLEVELS parameter into the correct SENF_LOG_CONF syntax
-# c) check for a local SENF, set options accordingly and update that SENF if needed
+# c) check for a local SENF, set options accordingly
+# d) check, wether the boost extensions are needed
 
 def SetupForSENF(env, senf_path = []):
     global senfutildir
@@ -75,9 +77,7 @@ def SetupForSENF(env, senf_path = []):
     loadTools(env)
 
     env.Append(
-        LIBS              = [ 'senf', 'rt', '$BOOSTREGEXLIB',
-                              '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB',
-                              '$BOOSTFSLIB' ],
+        LIBS              = [ 'rt' ],
         
         CXXFLAGS          = [ '-Wno-long-long', '$CXXFLAGS_' ],
         CXXFLAGS_         = BuildTypeOptions('CXXFLAGS'),
@@ -156,6 +156,15 @@ def SetupForSENF(env, senf_path = []):
         if not env.GetOption('no_progress'):
             print "\nSENF library not found .. trying build anyway !!\n"
 
+    Configure(env)
+
+    # Only add senf after all configure checks have run
+    env.Append(
+        CPPPATH = '${NEED_BOOST_EXT and "$SENFDIR/boost_ext" or None}',
+        LIBS = [ 'senf', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB',
+                 '$BOOSTFSLIB' ],
+        )
+
     env.Alias('all', '#')
 
 
@@ -169,10 +178,6 @@ def DefaultOptions(env):
         LINKFLAGS_normal = [ '-Wl,-S' ],
         LINKFLAGS_debug  = [ '-g' ],
     )
-    # ugly hack for ubuntu karmic 
-    # ToDo: auto-configure alike support
-    if os.path.exists('/usr/lib/libboost_regex-mt.so'):
-        env.Append( BOOST_VARIANT = '-mt' )
 
 
 def Glob(env, exclude=[], subdirs=[]):
@@ -189,6 +194,17 @@ def Glob(env, exclude=[], subdirs=[]):
     testSources.sort()
     return (sources, testSources)
 
+
+def Configure(env):
+    conf = env.Configure(clean=False, help=False, custom_tests = senfconf.Tests())
+    env.Replace(
+        BOOST_VERSION  =  conf.CheckBoostVersion(),
+        BOOST_VARIANT  = conf.CheckBoostVariants( '', 'mt' ),
+        NEED_BOOST_EXT = not conf.CheckCXXHeader("boost/bimap.hpp"),
+    )
+    conf.Finish()
+
+
 tagfiles = None
 
 def Doxygen(env, doxyheader=None, doxyfooter=None, doxycss=None, mydoxyfile=False, senfdoc_path=[],
index c0dbce4..8df9c6b 100644 (file)
@@ -119,12 +119,13 @@ def NopAction(env, target, source):
 def generate(env):
     env.SetDefault(
         BOOST_VARIANT     = '',
+        _BOOST_VARIANT    = '${BOOST_VARIANT and "-" or None}$BOOST_VARIANT',
 
-        BOOSTTESTLIB      = 'boost_unit_test_framework$BOOST_VARIANT',
-        BOOSTREGEXLIB     = 'boost_regex$BOOST_VARIANT',
-        BOOSTFSLIB        = 'boost_filesystem$BOOST_VARIANT',
-        BOOSTIOSTREAMSLIB = 'boost_iostreams$BOOST_VARIANT',
-        BOOSTSIGNALSLIB   = 'boost_signals$BOOST_VARIANT',
+        BOOSTTESTLIB      = 'boost_unit_test_framework$_BOOST_VARIANT',
+        BOOSTREGEXLIB     = 'boost_regex$_BOOST_VARIANT',
+        BOOSTFSLIB        = 'boost_filesystem$_BOOST_VARIANT',
+        BOOSTIOSTREAMSLIB = 'boost_iostreams$_BOOST_VARIANT',
+        BOOSTSIGNALSLIB   = 'boost_signals$_BOOST_VARIANT',
 
         BOOSTTESTARGS     = [ '--build_info=yes', '--log_level=test_suite' ],
     )