File indexing completed on 2025-08-02 08:21:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 AC_DEFUN([AC_FIND_FILE],
0015 [
0016 $3=NO
0017 for i in $2;
0018 do
0019 for j in $1;
0020 do
0021 if test -r "$i/$j"; then
0022 $3=$i
0023 break 2
0024 fi
0025 done
0026 done
0027 ])
0028
0029
0030
0031
0032 AC_DEFUN([AC_CHECK_CXX_STL],
0033 [
0034 AC_LANG_SAVE
0035 AC_LANG_CPLUSPLUS
0036 AC_MSG_CHECKING([whether STL is available])
0037 AC_CACHE_VAL(ac_cv_cxx_stl,
0038 [
0039 AC_TRY_COMPILE([
0040
0041 ],[
0042 std::set<int> t;
0043 t.insert(t.begin(),1);
0044 std::set<int>::iterator i=t.find(1);
0045 ],
0046 ac_cv_cxx_stl=yes,
0047 ac_cv_cxx_stl=no)
0048 ])
0049 AC_MSG_RESULT($ac_cv_cxx_stl)
0050 if test "x$ac_cv_cxx_stl" = "xyes"
0051 then
0052 AC_DEFINE(HAVE_CXX_STL)
0053 fi
0054 AC_LANG_RESTORE
0055 ])
0056
0057
0058
0059
0060
0061
0062 AC_DEFUN([AC_CHECK_CXX_EH],
0063 [
0064 AC_LANG_SAVE
0065 AC_LANG_CPLUSPLUS
0066 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS) has correct exception handling])
0067 AC_CACHE_VAL(ac_cv_cxx_eh,
0068 [
0069 AC_TRY_RUN(
0070 [
0071
0072
0073
0074 using namespace std;
0075
0076 struct test : public exception {
0077 virtual const char* what() { return "test"; }
0078 };
0079
0080 static void func() { throw test(); }
0081 int main(void)
0082 {
0083 try {
0084 func();
0085 } catch(exception& e) {
0086 return (strcmp(e.what(),"test")==0);
0087 } catch(...) { return 1; }
0088 return 1;
0089 }
0090 ],
0091 ac_cv_cxx_eh=yes,
0092 ac_cv_cxx_eh=no)
0093 ])
0094 AC_MSG_RESULT([$ac_cv_cxx_eh])
0095 if test "x$ac_cv_cxx_eh" = "xyes"
0096 then
0097 AC_DEFINE(HAVE_CXX_EH)
0098 fi
0099 AC_LANG_RESTORE
0100 ])
0101
0102
0103
0104
0105
0106
0107
0108 AC_DEFUN([AC_CHECK_CXX_NS],
0109 [
0110 AC_LANG_SAVE
0111 AC_LANG_CPLUSPLUS
0112 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS) supports namespaces])
0113 AC_CACHE_VAL(ac_cv_cxx_ns,
0114 [
0115 AC_TRY_COMPILE([
0116 namespace A {
0117 namespace B {
0118 struct X {};
0119 };
0120 };
0121 ],[
0122 A::B::X x;
0123 ],
0124 ac_cv_cxx_ns=yes,
0125 ac_cv_cxx_ns=no)
0126 ])
0127
0128 AC_MSG_RESULT([$ac_cv_cxx_ns])
0129
0130 if test "x$ac_cv_cxx_ns" = "xyes"
0131 then
0132 AC_DEFINE(HAVE_CXX_NS)
0133 fi
0134 AC_LANG_RESTORE
0135 ])
0136
0137
0138
0139
0140 AC_DEFUN([AC_CHECK_THREADS],
0141 [
0142 AC_MSG_CHECKING([whether to enable threads])
0143
0144 enable_threads=yes
0145
0146 if test "x$enable_threads" = "xyes"
0147 then
0148 AC_MSG_RESULT(yes)
0149
0150
0151 AC_CHECK_HEADER(pthread.h,[
0152 AC_DEFINE(HAVE_PTHREAD_H)
0153 ],[AC_MSG_ERROR([pthread.h not found. Consider not using --enable-threads])])
0154
0155
0156 AC_CHECK_FUNCS(pthread_create,pthreads_ok=yes,pthreads_ok=no)
0157 THREAD_LIBS=""
0158
0159 if test "x$pthreads_ok" != xyes
0160 then
0161
0162 AC_CHECK_LIB(pthread,pthread_create,
0163 pthreads_ok=yes
0164 THREAD_LIBS="-lpthread",pthreads_ok=no)
0165 fi
0166
0167 if test "x$pthreads_ok" != xyes
0168 then
0169
0170
0171 AC_CHECK_LIB(c_r,pthread_create,
0172 pthreads_ok=yes
0173 THREAD_LIBS="-lc_r",pthreads_ok=no)
0174 fi
0175
0176 if test "x$pthreads_ok" = xyes
0177 then
0178
0179 AC_DEFINE(ENABLE_THREADS)
0180 CXXFLAGS="-D_REENTRANT $CXXFLAGS"
0181 CFLAGS="-D_REENTRANT $CFLAGS"
0182 else
0183 AC_MSG_ERROR([Unable to find a POSIX threads environment.])
0184 fi
0185 else
0186 AC_MSG_RESULT(no)
0187 fi
0188 AC_SUBST(THREAD_LIBS)
0189 ])
0190
0191
0192
0193
0194
0195
0196
0197 AC_DEFUN([AC_CHECK_IODBC],
0198 [
0199 AC_LANG_SAVE
0200 AC_LANG_C
0201 AC_ARG_WITH(iodbc,
0202 [ --with-iodbc[=DIR] Use iodbc, optionally installed in DIR],
0203 [
0204 if test "x$withval" != "xyes"
0205 then
0206 iodbc_dir=$withval
0207 else
0208 iodbc_dir="/usr/local"
0209 fi
0210 ])
0211
0212 if test "x$iodbc_dir" = "x"
0213 then
0214 iodbc_dir="/usr/local"
0215 fi
0216
0217 AC_ARG_WITH(iodbc-includes,
0218 [ --with-iodbc-includes=DIR Find iodbc headers in DIR],
0219 [iodbc_includes_dir=$withval],
0220 [iodbc_includes_dir="$iodbc_dir/include"]
0221 )
0222
0223 AC_ARG_WITH(iodbc-libraries,
0224 [ --with-iodbc-libs=DIR Find iodbc libraries in DIR],
0225 [iodbc_libraries_dir=$withval],
0226 [iodbc_libraries_dir="$iodbc_dir/lib"]
0227 )
0228
0229 save_CFLAGS="$CFLAGS"
0230 save_LIBS="$LIBS"
0231
0232 CFLAGS="$CFLAGS -I$iodbc_includes_dir"
0233 LIBS="$LIBS -L$iodbc_libraries_dir"
0234
0235 AC_CHECK_HEADERS([isql.h isqlext.h],
0236 [iodbc_ok=yes; odbc_headers="$odbc_headers $ac_hdr"],
0237 [iodbc_ok=no; break])
0238
0239 if test "x$iodbc_ok" = "xyes"
0240 then
0241 AC_CHECK_LIB(iodbc,SQLConnect,[iodbc_ok=yes],[iodbc_ok=no])
0242 fi
0243
0244 if test "x$iodbc_ok" = "xyes"
0245 then
0246 LIBS="$LIBS -liodbc"
0247 AC_DEFINE(HAVE_LIBIODBC)
0248 AC_DEFINE(HAVE_ISQL_H)
0249 AC_DEFINE(HAVE_ISQLEXT_H)
0250 else
0251 CFLAGS="$save_CFLAGS"
0252 LIBS="$save_LIBS"
0253 fi
0254 AC_LANG_RESTORE
0255 ])
0256
0257
0258 AC_DEFUN([AC_CHECK_ODBC],
0259 [
0260 AC_LANG_SAVE
0261 AC_LANG_C
0262 AC_MSG_CHECKING([whether unixODBC should be used])
0263
0264 AC_ARG_WITH(odbc,
0265 [ --with-odbc[=DIR] Use unixODBC, optionally installed in DIR],
0266 [
0267 if test "x$withval" != "xyes"
0268 then
0269 odbc_dir=$withval
0270 else
0271 odbc_dir="/usr/local"
0272 fi
0273 ])
0274
0275 if test "x$odbc_dir" = "x"
0276 then
0277 AC_MSG_RESULT(no)
0278 else
0279 AC_MSG_RESULT(yes)
0280
0281 AC_ARG_WITH(odbc-includes,
0282 [ --with-odbc-includes=DIR Find unixODBC headers in DIR],
0283 [odbc_includes_dir=$withval],
0284 [odbc_includes_dir="$odbc_dir/include"]
0285 )
0286
0287 AC_ARG_WITH(odbc-libraries,
0288 [ --with-odbc-libs=DIR Find unixODBC libraries in DIR],
0289 [odbc_libraries_dir=$withval],
0290 [odbc_libraries_dir="$odbc_dir/lib"]
0291 )
0292
0293
0294 odbc_libraries_dir="$odbc_dir/lib"
0295
0296 save_CPPFLAGS="$CPPFLAGS"
0297 save_LIBS="$LIBS"
0298
0299 CPPFLAGS="$CPPFLAGS -I$odbc_includes_dir"
0300 LIBS="$LIBS -L$odbc_libraries_dir"
0301
0302 AC_CHECK_HEADERS([sql.h sqlext.h],
0303 [odbc_ok=yes; odbc_headers="$odbc_headers $ac_hdr"],
0304 [odbc_ok=no; break]
0305 )
0306
0307 if test "x$odbc_ok" = "xyes"
0308 then
0309 AC_CHECK_LIB(odbc,SQLConnect,[odbc_ok=yes],[odbc_ok=no])
0310 fi
0311
0312 if test "x$odbc_ok" = "xyes"
0313 then
0314 LIBS="$LIBS -lodbc"
0315 AC_DEFINE(HAVE_LIBODBC)
0316 AC_DEFINE(HAVE_SQL_H)
0317 AC_DEFINE(HAVE_SQLEXT_H)
0318 else
0319 CPPFLAGS="$save_CPPFLAGS"
0320 LIBS="$save_LIBS"
0321 fi
0322 fi
0323 AC_LANG_RESTORE
0324 ])
0325
0326
0327
0328
0329
0330 AC_DEFUN([AC_CHECK_ODBC_TYPE],
0331 [
0332
0333 AC_MSG_CHECKING([for $1])
0334 AC_CACHE_VAL(ac_cv_odbc_$1,
0335 [
0336 AC_LANG_SAVE
0337 AC_LANG_C
0338 echo > conftest.c
0339
0340 for i in $odbc_headers
0341 do
0342 echo "#include <$i>" >> conftest.c
0343 done
0344
0345 echo "int main(void) { $1 x; return 0; }" >> conftest.c
0346
0347 if $CC -c $CFLAGS $CPPFLAGS conftest.c > /dev/null 2> /dev/null
0348 then
0349 eval ac_cv_odbc_$1=yes
0350 else
0351 eval ac_cv_odbc_$2=no
0352 fi
0353 rm -f conftest*
0354 AC_LANG_RESTORE
0355 ])
0356
0357 eval ac_odbc_check_res=$ac_cv_odbc_$1
0358 if test "x$ac_odbc_check_res" = "xyes"
0359 then
0360 AC_MSG_RESULT(yes)
0361 else
0362 AC_MSG_RESULT([no ($2)])
0363 AC_DEFINE($1,$2)
0364 fi
0365 ])
0366
0367
0368
0369
0370 AC_DEFUN([AC_CHECK_ROOT],
0371 [
0372 AC_LANG_SAVE
0373 AC_LANG_CPLUSPLUS
0374
0375 ROOT_CPPFLAGS="`root-config --cflags`"
0376 ROOT_LIBS="`root-config --libs`"
0377 ROOTCINT=rootcint
0378 ROOT_GLIBS="`root-config --glibs`"
0379 ROOT_VER="`root-config --version | sed 's/\//\./'`"
0380
0381 AC_SUBST(ROOT_VER)
0382 AC_SUBST(ROOTSYS)
0383
0384 if test "$GCC" = "yes"; then
0385 GCC_VER="`g++ --version | perl -n -e 'if (($l) = m/(\d+\.\d+(\.\d+)?)/) {print $l;}'`"
0386 AC_SUBST(GCC_VER)
0387 fi
0388
0389 LIBS="$LIBS $ROOT_LIBS"
0390 CPPFLAGS="$CPPFLAGS $ROOT_CPPFLAGS"
0391
0392 AC_SUBST(ROOT_CPPFLAGS)
0393 AC_SUBST(ROOT_LIBS)
0394 AC_SUBST(ROOTCINT)
0395
0396 AC_LANG_RESTORE
0397 ])
0398
0399
0400
0401
0402
0403
0404
0405 ODBCXX_DIR="/usr/local"
0406 AC_SUBST(ODBCXX_DIR)
0407
0408
0409