Squashed 'third_party/boostorg/config/' content from commit bb3c8a2

Change-Id: I20e82d188260045e00478e35813b54ca7fda6eaf
git-subtree-dir: third_party/boostorg/config
git-subtree-split: bb3c8a20dcb3a97e0c999a5869305398fa6d8a11
diff --git a/tools/configure.in b/tools/configure.in
new file mode 100644
index 0000000..3e1425c
--- /dev/null
+++ b/tools/configure.in
@@ -0,0 +1,463 @@
+# copyright John Maddock 2003
+# Use, modification and distribution are subject to the 
+# Boost Software License, Version 1.0. (See accompanying file 
+# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# the following variables contain our macro definitions:
+#
+required_defs=""
+required_undefs=""
+
+dnl Process this file with autoconf to produce a configure script.
+dnl disable cache processing, it has no effect here:
+define([AC_CACHE_LOAD], )dnl
+define([AC_CACHE_SAVE], )dnl
+AC_INIT(./tools/configure.in)
+
+
+AC_ARG_ENABLE(test,   --enable-test             tests current settings rather than defining new ones)
+
+if test "foo"$enable_test = "foo"; then
+   enable_test="no"
+fi
+
+cat << EOF
+*** $0: boost configuration utility ***
+
+Please stand by while exploring compiler capabilities...
+Be patient - this could take some time...
+
+Note that this test script only gives an approximate
+configuration - you will need to test the results carefully
+using the boost regression test suite before using the results.
+EOF
+
+if test $enable_test = 'yes'; then
+
+cat << EOF
+
+This script reports only the difference between the detected
+configuration, and the existing boost configuration.  Its 
+primary aim is to quickly report how well boost is configured
+for one compiler.
+
+***
+
+EOF
+
+else
+
+cat << EOF
+
+***
+
+EOF
+fi
+
+AC_ARG_ENABLE(extension,[--enable-extension=<ext>],
+[
+case "$enableval" in
+   no) AC_MSG_RESULT(Info :.cpp used as extension for tests) 
+       ac_ext=cpp 
+         ;;
+    *) AC_MSG_RESULT(Argument : .$enableval used as extension) 
+   ac_ext=$enableval
+esac
+],
+[AC_MSG_RESULT(Info : .cpp used as extension for tests) 
+   ac_ext=cpp
+]
+)
+
+dnl figure out which version of sed to use, on some platforms
+dnl the version in the path is not Unix conforming (MacOS X ? )
+
+if test -f /bin/sed ; then
+   SED=/bin/sed
+else
+   if test -f /usr/bin/sed ; then
+      SED=/usr/bin/sed
+   else
+      SED=sed
+   fi
+fi
+
+dnl Set the boost main directory.
+AC_MSG_CHECKING(for boost main tree)
+boost_base=
+AC_ARG_WITH(boost,
+  AC_HELP_STRING([--with-boost=DIR],[path to the boost main tree]),
+  [
+  #echo "--with boost is set"
+  if test "x$withval" != "x"; then
+    if test "x$withval" != no; then
+      boost_base=`echo "$withval" | $SED 's,//*,/,g' | $SED 's,/$,,'`
+      #echo boost_base=$boost_base
+      if test -f "$boost_base/boost/config.hpp"; then
+        if test -f "$boost_base/libs/config/configure"; then :; else
+          boost_base=
+          #echo "$boost_base/libs/config/configure" not found
+        fi
+      else
+        #echo "$boost_base/boost/config.hpp" not found
+        boost_base=
+      fi
+    fi
+  fi
+  ]
+)
+if test "x$boost_base" = "x"; then
+  #echo '$0 = ' $0
+  boost_base=`expr "x$0" : 'x\(.*\)/@<:@/@:>@*' \| '.'`
+  boost_base="$boost_base/../.."
+  #echo boost_base=$boost_base
+  if test -f "$boost_base/boost/config.hpp"; then
+    if test -f "$boost_base/libs/config/configure"; then :; else
+      boost_base=
+    fi
+  else
+    boost_base=
+  fi
+fi
+if test "x$boost_base" != "x"; then
+  AC_MSG_RESULT([$boost_base])
+else
+  AC_MSG_RESULT([not found])
+  AC_MSG_ERROR([The boost main tree was not found.
+  Specify its location by the --with-boost option.])
+fi
+  
+
+
+# Save that, as it is being redefined several times 
+use_ac_ext=$ac_ext
+
+AC_PROG_CXX
+ac_ext=$use_ac_ext
+
+AC_LANG_CPLUSPLUS
+
+OLD_CXXFLAGS="$CXXFLAGS"
+
+
+if test $enable_test = 'yes'; then
+   CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS"
+else
+   CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS -DBOOST_NO_CONFIG"
+fi
+
+# add the -AA conformance option to CXXFLAGS for HP aCC only
+if test $CXX = 'aCC'; then
+   CXXFLAGS="-AA $CXXFLAGS"
+fi
+
+dnl check for some standard libraries
+dnl without these some of the tests may fail:
+
+AC_CHECK_LIB(pthread, pthread_exit)
+AC_CHECK_LIB(m, cos)
+AC_CHECK_LIB(rt, clock)
+
+#
+# enumerate test files and test each one:
+#
+for file in $boost_base/libs/config/test/boost_no*.ipp; do
+
+   basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
+   macroname=`cat $file | grep '^//[[ 	]]*MACRO:' | $SED 's/.*MACRO:[[ 	]]*\([[_A-Z0-9]]*\).*/\1/'`
+   title=`cat $file | grep '^//[[ 	]]*TITLE:' | $SED 's/.*TITLE:[[ 	]]*\([[^ 	]].*\)/\1/'`
+   namespace=`echo $macroname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+
+#echo file      = $file
+#echo basename  = $basename
+#echo macroname = $macroname
+#echo title     = $title
+#echo namespace = $namespace
+
+   ac_ext=$use_ac_ext
+   if test $enable_test = 'yes'; then
+      AC_MSG_CHECKING($title (pass expected) )
+   else
+      AC_MSG_CHECKING($title )
+   fi
+   AC_TRY_RUN(
+   [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#if !defined($macroname) || defined(BOOST_NO_CONFIG)
+#include "boost_$basename.ipp"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int main(){ return ${namespace}::test(); } ]
+   ,
+   [AC_MSG_RESULT(OK)]
+   ,
+   [AC_MSG_RESULT(Failed)
+   required_defs="$macroname $required_defs"]
+   )
+
+   if test $enable_test = 'yes'; then
+   
+   ac_ext=$use_ac_ext
+   AC_MSG_CHECKING($title (fail expected) )
+   AC_TRY_RUN(
+   [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main() { return ${namespace}::test(); }]
+   ,
+   [AC_MSG_RESULT(failed)
+   required_undefs="$macroname $required_undefs"]
+   ,
+   [AC_MSG_RESULT(OK)]
+   )
+   
+   fi
+
+done
+
+#
+# enumerate optional test files and test each one:
+#
+for file in $boost_base/libs/config/test/boost_has*.ipp; do
+
+   basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
+   macroname=`cat $file | grep '^//[[ 	]]*MACRO:' | $SED 's/.*MACRO:[[ 	]]*\([[_A-Z0-9]]*\).*/\1/'`
+   title=`cat $file | grep '^//[[ 	]]*TITLE:' | $SED 's/.*TITLE:[[ 	]]*\([[^ 	]].*\)/\1/'`
+   namespace=`echo $macroname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+
+#  echo $file
+#  echo $basename
+#  echo $macroname
+#  echo $title
+
+   ac_ext=$use_ac_ext
+   if test $enable_test = 'yes'; then
+   AC_MSG_CHECKING($title (pass expected) )
+   AC_TRY_RUN(
+   [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.ipp"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int main(){ return ${namespace}::test(); }]
+   ,
+   [AC_MSG_RESULT(OK)]
+   ,
+   [AC_MSG_RESULT(Failed)
+   required_undefs="$macroname $required_undefs"]
+   )
+   
+   AC_MSG_CHECKING($title (fail expected) )
+   AC_TRY_RUN(
+   [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef $macroname
+#include "boost_$basename.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main(){ return ${namespace}::test(); }]
+   ,
+   [
+   AC_MSG_RESULT(failed)
+   required_defs="$macroname $required_defs"
+   ]
+   ,
+   [
+   AC_MSG_RESULT(OK)
+   ]
+   )
+
+   else
+
+   ac_ext=$use_ac_ext
+   AC_MSG_CHECKING($title)
+   AC_TRY_RUN(
+   [
+#include <boost/config.hpp>
+#include "test.hpp"
+
+#include "boost_$basename.ipp"
+
+int main(){ return ${namespace}::test(); }]
+   ,
+   [
+      AC_MSG_RESULT(Yes)
+      required_defs="$macroname $required_defs"
+   ]
+   ,
+   [
+      AC_MSG_RESULT(no)
+   ]
+   )
+   
+   fi
+
+done
+
+
+#echo $required_defs
+#echo $required_undefs
+
+if test $enable_test = 'yes'; then
+
+if test "$required_defs" = ""; then
+echo no boost macros need to be defined
+echo no boost macros need to be defined >&5
+else
+echo the following macros need to be defined
+echo    $required_defs
+echo the following macros need to be defined >&5
+echo    $required_defs >&5
+fi
+if test "$required_undefs" = ""; then
+echo no boost macros need to be undefined
+echo no boost macros need to be undefined >&5
+else
+echo "the following macros need to be undef'ed"
+echo    $required_undefs
+echo "the following macros need to be undef'ed" >&5
+echo    $required_undefs >&5
+fi
+
+else
+
+date_string=`date`
+
+echo boost_base=$boost_base
+
+cat > user.hpp << EOF
+//  (C) Copyright Boost.org 2001.
+//  Do not check in modified versions of this file,
+//  This file may be customised by the end user, but not by boost.
+
+//
+//  Use this file to define a site and compiler specific
+//  configuration policy, this version was auto-generated by
+//  configure on ${date_string}
+//  With the following options:
+//    CXX      = ${CXX}
+//    CXXFLAGS = ${CXXFLAGS}
+//    LDFLAGS  = ${LDFLAGS}
+//    LIBS     = ${LIBS}
+//
+
+// define this to disable all config options,
+// excluding the user config.  Use if your
+// setup is fully ISO complient, and has no
+// useful extentions, or for autoconf generated
+// setups:
+#ifndef BOOST_NO_CONFIG
+#  define BOOST_NO_CONFIG
+#endif
+
+
+// define if you want to disable threading support, even
+// when available:
+// #define BOOST_DISABLE_THREADS
+
+// define if you want the regex library to use the C locale
+// even on Win32:
+// #define BOOST_REGEX_USE_C_LOCALE
+
+// define this is you want the regex library to use the C++
+// locale:
+// #define BOOST_REGEX_USE_CPP_LOCALE
+
+
+//
+// options added by configure:
+//
+EOF
+
+for name in $required_defs; do
+echo '#define '"$name" >> user.hpp
+done
+
+cat_conts=`cat user.hpp`
+
+#
+# post configuration step:
+#   
+AC_MSG_CHECKING(original configuration )
+rm -f conftest$ac_exeext
+$CXX -I$boost_base $OLD_CXXFLAGS -DBOOST_NO_USER_CONFIG -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
+./conftest >&5 2>&1
+AC_MSG_RESULT(done)
+AC_MSG_CHECKING(new configuration )
+rm -f conftest$ac_exeext
+$CXX -I$boost_base -I$boost_base/libs/config $OLD_CXXFLAGS -DBOOST_USER_CONFIG='"user.hpp"' -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
+./conftest >&5 2>&1
+AC_MSG_RESULT(done)
+
+AC_OUTPUT(
+[],
+[
+cat > user.hpp << EEEOF
+${cat_conts}
+EEEOF
+cat << EEEOF
+
+Adjustments to boost configuration have been written to
+user.hpp.  Copy this to boost/config/user.hpp to use "as is",
+or define BOOST_SITE_CONFIG to point to its location.
+
+TREAT THIS FILE WITH CARE.
+Autoconf generated options are not infallible!
+
+EEEOF
+],
+[
+cat_conts="$cat_conts"
+]
+)
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+