Changeset 2326
- Timestamp:
- Sep 26, 2010, 4:27:32 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/configure.ac
r2309 r2326 196 196 boost_version=1.35 197 197 AC_SUBST(boost_version) 198 AX_BOOST_BASE(["$boost_version"]) 199 boost_version_check=$succeeded; 198 AX_BOOST_BASE(["$boost_version"], [boost_ok=yes], [boost_ok=no]) 200 199 YAT_CPP_ADD_FLAG([CPPFLAGS], [$BOOST_CPPFLAGS]) 201 200 … … 325 324 if test "x$want_boost" = "xyes"; then 326 325 # Too old Boost is fatal -- sub-sequent compilation will fail. 327 if test "${boost_ version_check}" != "yes" ; then326 if test "${boost_ok}" != "yes" ; then 328 327 all_reqs_ok="false" 329 328 AC_MSG_WARN([ 330 Boost found but not the required version. Please install331 Boost version ${boost_version} or later])329 Boost ${boost_version} (or newer) not found. Please make sure Boost 330 is installed.]) 332 331 fi 333 332 fi -
trunk/m4/ax_boost_base.m4
r2202 r2326 1 1 # =========================================================================== 2 # http://autoconf-archive.cryp.to/ax_boost_base.html2 # http://www.gnu.org/software/autoconf-archive/ax_boost_base.html 3 3 # =========================================================================== 4 4 # 5 5 # SYNOPSIS 6 6 # 7 # AX_BOOST_BASE([MINIMUM-VERSION] )7 # AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 8 8 # 9 9 # DESCRIPTION … … 24 24 # HAVE_BOOST 25 25 # 26 # LAST MODIFICATION 27 # 28 # 2008-04-12 29 # 30 # COPYLEFT 26 # LICENSE 31 27 # 32 28 # Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de> 29 # Copyright (c) 2009 Peter Adolphs 33 30 # 34 31 # Copying and distribution of this file, with or without modification, are 35 32 # permitted in any medium without royalty provided the copyright notice 36 # and this notice are preserved. 33 # and this notice are preserved. This file is offered as-is, without any 34 # warranty. 35 36 #serial 17 37 37 38 38 AC_DEFUN([AX_BOOST_BASE], 39 39 [ 40 40 AC_ARG_WITH([boost], 41 AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is yes) - it is possible to specify the root directory for boost (optional)]), 42 [ 41 [AS_HELP_STRING([--with-boost@<:@=ARG@:>@], 42 [use Boost library from a standard location (ARG=yes), 43 from the specified location (ARG=<path>), 44 or disable it (ARG=no) 45 @<:@ARG=yes@:>@ ])], 46 [ 43 47 if test "$withval" = "no"; then 44 48 want_boost="no" 45 49 elif test "$withval" = "yes"; then 46 50 want_boost="yes" 47 51 ac_boost_path="" 48 52 else 49 53 want_boost="yes" 50 54 ac_boost_path="$withval" 51 55 fi 52 56 ], 53 57 [want_boost="yes"]) … … 58 62 [Force given directory for boost libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]), 59 63 [ 60 if test -d $withval64 if test -d "$withval" 61 65 then 62 66 ac_boost_lib_path="$withval" … … 69 73 70 74 if test "x$want_boost" = "xyes"; then 71 boost_lib_version_req=ifelse([$1], ,1.20.0,$1) 72 boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` 73 boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'` 74 boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` 75 boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` 76 if test "x$boost_lib_version_req_sub_minor" = "x" ; then 77 boost_lib_version_req_sub_minor="0" 78 fi 79 WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor` 80 AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req) 81 succeeded=no 82 83 dnl first we check the system location for boost libraries 84 dnl this location ist chosen if boost libraries are installed with the --layout=system option 85 dnl or if you install boost with RPM 86 if test "$ac_boost_path" != ""; then 87 BOOST_LDFLAGS="-L$ac_boost_path/lib" 88 BOOST_CPPFLAGS="-I$ac_boost_path/include" 89 else 90 for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do 91 if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then 92 BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib" 93 BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" 94 break; 95 fi 96 done 97 fi 75 boost_lib_version_req=ifelse([$1], ,1.20.0,$1) 76 boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` 77 boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'` 78 boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` 79 boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` 80 if test "x$boost_lib_version_req_sub_minor" = "x" ; then 81 boost_lib_version_req_sub_minor="0" 82 fi 83 WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor` 84 AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req) 85 succeeded=no 86 87 dnl On x86_64 systems check for system libraries in both lib64 and lib. 88 dnl The former is specified by FHS, but e.g. Debian does not adhere to 89 dnl this (as it rises problems for generic multi-arch support). 90 dnl The last entry in the list is chosen by default when no libraries 91 dnl are found, e.g. when only header-only libraries are installed! 92 libsubdirs="lib" 93 if test `uname -m` = x86_64; then 94 libsubdirs="lib64 lib lib64" 95 fi 96 97 dnl first we check the system location for boost libraries 98 dnl this location ist chosen if boost libraries are installed with the --layout=system option 99 dnl or if you install boost with RPM 100 if test "$ac_boost_path" != ""; then 101 BOOST_LDFLAGS="-L$ac_boost_path/$libsubdir" 102 BOOST_CPPFLAGS="-I$ac_boost_path/include" 103 elif test "$cross_compiling" != yes; then 104 for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do 105 if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then 106 for libsubdir in $libsubdirs ; do 107 if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi 108 done 109 BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir" 110 BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" 111 break; 112 fi 113 done 114 fi 98 115 99 116 dnl overwrite ld flags if we have required special directory with … … 103 120 fi 104 121 105 CPPFLAGS_SAVED="$CPPFLAGS" 106 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" 107 export CPPFLAGS 108 109 LDFLAGS_SAVED="$LDFLAGS" 110 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" 111 export LDFLAGS 112 113 AC_LANG_PUSH(C++) 114 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 115 @%:@include <boost/version.hpp> 116 ]], [[ 117 #if BOOST_VERSION >= $WANT_BOOST_VERSION 118 // Everything is okay 119 #else 120 # error Boost version is too old 121 #endif 122 ]])],[ 122 CPPFLAGS_SAVED="$CPPFLAGS" 123 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" 124 export CPPFLAGS 125 126 LDFLAGS_SAVED="$LDFLAGS" 127 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" 128 export LDFLAGS 129 130 AC_REQUIRE([AC_PROG_CXX]) 131 AC_LANG_PUSH(C++) 132 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 133 @%:@include <boost/version.hpp> 134 ]], [[ 135 #if BOOST_VERSION >= $WANT_BOOST_VERSION 136 // Everything is okay 137 #else 138 # error Boost version is too old 139 #endif 140 ]])],[ 123 141 AC_MSG_RESULT(yes) 124 succeeded=yes 125 found_system=yes 126 ],[ 127 ]) 128 AC_LANG_POP([C++]) 129 130 131 132 dnl if we found no boost with system layout we search for boost libraries 133 dnl built and installed without the --layout=system option or for a staged(not installed) version 134 if test "x$succeeded" != "xyes"; then 135 _version=0 136 if test "$ac_boost_path" != ""; then 137 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then 138 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do 139 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` 140 V_CHECK=`expr $_version_tmp \> $_version` 141 if test "$V_CHECK" = "1" ; then 142 _version=$_version_tmp 143 fi 144 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` 145 BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE" 146 done 147 fi 148 else 149 for ac_boost_path in /usr /usr/local /opt /opt/local ; do 150 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then 151 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do 152 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` 153 V_CHECK=`expr $_version_tmp \> $_version` 154 if test "$V_CHECK" = "1" ; then 155 _version=$_version_tmp 156 best_path=$ac_boost_path 157 fi 158 done 159 fi 160 done 161 162 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` 163 BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" 164 if test "$ac_boost_lib_path" = "" 165 then 166 BOOST_LDFLAGS="-L$best_path/lib" 167 fi 168 169 if test "x$BOOST_ROOT" != "x"; then 170 if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then 171 version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` 172 stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` 173 stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` 174 V_CHECK=`expr $stage_version_shorten \>\= $_version` 142 succeeded=yes 143 found_system=yes 144 ],[ 145 ]) 146 AC_LANG_POP([C++]) 147 148 149 150 dnl if we found no boost with system layout we search for boost libraries 151 dnl built and installed without the --layout=system option or for a staged(not installed) version 152 if test "x$succeeded" != "xyes"; then 153 _version=0 154 if test "$ac_boost_path" != ""; then 155 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then 156 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do 157 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` 158 V_CHECK=`expr $_version_tmp \> $_version` 159 if test "$V_CHECK" = "1" ; then 160 _version=$_version_tmp 161 fi 162 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` 163 BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE" 164 done 165 fi 166 else 167 if test "$cross_compiling" != yes; then 168 for ac_boost_path in /usr /usr/local /opt /opt/local ; do 169 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then 170 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do 171 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` 172 V_CHECK=`expr $_version_tmp \> $_version` 173 if test "$V_CHECK" = "1" ; then 174 _version=$_version_tmp 175 best_path=$ac_boost_path 176 fi 177 done 178 fi 179 done 180 181 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` 182 BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" 183 if test "$ac_boost_lib_path" = ""; then 184 for libsubdir in $libsubdirs ; do 185 if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi 186 done 187 BOOST_LDFLAGS="-L$best_path/$libsubdir" 188 fi 189 fi 190 191 if test "x$BOOST_ROOT" != "x"; then 192 for libsubdir in $libsubdirs ; do 193 if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi 194 done 195 if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then 196 version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` 197 stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` 198 stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` 199 V_CHECK=`expr $stage_version_shorten \>\= $_version` 175 200 if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then 176 AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) 177 BOOST_CPPFLAGS="-I$BOOST_ROOT" 178 BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib" 179 fi 180 fi 181 fi 182 fi 183 184 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" 185 export CPPFLAGS 186 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" 187 export LDFLAGS 188 189 AC_LANG_PUSH(C++) 190 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 191 @%:@include <boost/version.hpp> 192 ]], [[ 193 #if BOOST_VERSION >= $WANT_BOOST_VERSION 194 // Everything is okay 195 #else 196 # error Boost version is too old 197 #endif 198 ]])],[ 199 AC_MSG_RESULT(yes) 200 succeeded=yes 201 found_system=yes 202 ],[ 203 ]) 204 AC_LANG_POP([C++]) 205 fi 206 207 if test "$succeeded" != "yes" ; then 208 if test "$_version" = "0" ; then 209 AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]]) 210 else 211 AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) 212 fi 213 else 214 AC_SUBST(BOOST_CPPFLAGS) 215 AC_SUBST(BOOST_LDFLAGS) 216 AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) 217 fi 218 219 CPPFLAGS="$CPPFLAGS_SAVED" 220 LDFLAGS="$LDFLAGS_SAVED" 201 AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) 202 BOOST_CPPFLAGS="-I$BOOST_ROOT" 203 BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" 204 fi 205 fi 206 fi 207 fi 208 209 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" 210 export CPPFLAGS 211 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" 212 export LDFLAGS 213 214 AC_LANG_PUSH(C++) 215 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 216 @%:@include <boost/version.hpp> 217 ]], [[ 218 #if BOOST_VERSION >= $WANT_BOOST_VERSION 219 // Everything is okay 220 #else 221 # error Boost version is too old 222 #endif 223 ]])],[ 224 AC_MSG_RESULT(yes) 225 succeeded=yes 226 found_system=yes 227 ],[ 228 ]) 229 AC_LANG_POP([C++]) 230 fi 231 232 if test "$succeeded" != "yes" ; then 233 if test "$_version" = "0" ; then 234 AC_MSG_NOTICE([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]]) 235 else 236 AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) 237 fi 238 # execute ACTION-IF-NOT-FOUND (if present): 239 ifelse([$3], , :, [$3]) 240 else 241 AC_SUBST(BOOST_CPPFLAGS) 242 AC_SUBST(BOOST_LDFLAGS) 243 AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) 244 # execute ACTION-IF-FOUND (if present): 245 ifelse([$2], , :, [$2]) 246 fi 247 248 CPPFLAGS="$CPPFLAGS_SAVED" 249 LDFLAGS="$LDFLAGS_SAVED" 221 250 fi 222 251
Note: See TracChangeset
for help on using the changeset viewer.