Chris@16: // Boost compiler configuration selection header file Chris@16: Chris@16: // (C) Copyright John Maddock 2001 - 2003. Chris@16: // (C) Copyright Jens Maurer 2001 - 2002. Chris@16: // Use, modification and distribution are subject to the Chris@16: // Boost Software License, Version 1.0. (See accompanying file Chris@16: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: Chris@16: // See http://www.boost.org for most recent version. Chris@16: Chris@16: // locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: Chris@16: Chris@16: // First include to determine if some version of STLport is in use as the std lib Chris@16: // (do not rely on this header being included since users can short-circuit this header Chris@16: // if they know whose std lib they are using.) Chris@16: #ifdef __cplusplus Chris@16: # include Chris@16: #else Chris@16: # include Chris@16: #endif Chris@16: Chris@16: #if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) Chris@16: // STLPort library; this _must_ come first, otherwise since Chris@16: // STLport typically sits on top of some other library, we Chris@16: // can end up detecting that first rather than STLport: Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" Chris@16: Chris@16: #else Chris@16: Chris@101: // If our std lib was not some version of STLport, and has not otherwise Chris@101: // been detected, then include as it is about Chris@101: // the smallest of the std lib headers that includes real C++ stuff. Chris@101: // Some std libs do not include their C++-related macros in Chris@101: // so this additional include makes sure we get those definitions. Chris@101: // Note: do not rely on this header being included since users can short-circuit this Chris@101: // #include if they know whose std lib they are using. Chris@101: #if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\ Chris@101: && !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\ Chris@101: && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\ Chris@101: && !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER) Chris@101: #include Chris@101: #endif Chris@16: Chris@16: #if defined(__LIBCOMO__) Chris@16: // Comeau STL: Chris@16: #define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" Chris@16: Chris@16: #elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) Chris@16: // Rogue Wave library: Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" Chris@16: Chris@16: #elif defined(_LIBCPP_VERSION) Chris@16: // libc++ Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp" Chris@16: Chris@16: #elif defined(__GLIBCPP__) || defined(__GLIBCXX__) Chris@16: // GNU libstdc++ 3 Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" Chris@16: Chris@16: #elif defined(__STL_CONFIG_H) Chris@16: // generic SGI STL Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp" Chris@16: Chris@16: #elif defined(__MSL_CPP__) Chris@16: // MSL standard lib: Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" Chris@16: Chris@16: #elif defined(__IBMCPP__) Chris@16: // take the default VACPP std lib Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" Chris@16: Chris@16: #elif defined(MSIPL_COMPILE_H) Chris@16: // Modena C++ standard library Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp" Chris@16: Chris@16: #elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) Chris@16: // Dinkumware Library (this has to appear after any possible replacement libraries): Chris@16: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp" Chris@16: Chris@16: #elif defined (BOOST_ASSERT_CONFIG) Chris@16: // this must come last - generate an error if we don't Chris@16: // recognise the library: Chris@16: # error "Unknown standard library - please configure and report the results to boost.org" Chris@16: Chris@16: #endif Chris@16: Chris@16: #endif Chris@16: Chris@101: #if 0 Chris@101: // Chris@101: // This section allows dependency scanners to find all the files we *might* include: Chris@101: // Chris@101: # include "boost/config/stdlib/stlport.hpp" Chris@101: # include "boost/config/stdlib/libcomo.hpp" Chris@101: # include "boost/config/stdlib/roguewave.hpp" Chris@101: # include "boost/config/stdlib/libcpp.hpp" Chris@101: # include "boost/config/stdlib/libstdcpp3.hpp" Chris@101: # include "boost/config/stdlib/sgi.hpp" Chris@101: # include "boost/config/stdlib/msl.hpp" Chris@101: # include "boost/config/stdlib/vacpp.hpp" Chris@101: # include "boost/config/stdlib/modena.hpp" Chris@101: # include "boost/config/stdlib/dinkumware.hpp" Chris@101: #endif Chris@16: