| dnl Copyright (C) 1993-2003 Free Software Foundation, Inc. |
| dnl This file is free software, distributed under the terms of the GNU |
| dnl General Public License. As a special exception to the GNU General |
| dnl Public License, this file may be distributed as part of a program |
| dnl that contains a configuration script generated by Autoconf, under |
| dnl the same distribution terms as the rest of that program. |
| |
| dnl From Bruno Haible, Marcus Daniels, Sam Steingold. |
| |
| AC_PREREQ(2.13) |
| |
| dnl without AC_MSG_...: with AC_MSG_... and caching: |
| dnl AC_TRY_CPP CL_CPP_CHECK |
| dnl AC_TRY_COMPILE CL_COMPILE_CHECK |
| dnl AC_TRY_LINK CL_LINK_CHECK |
| dnl AC_TRY_RUN CL_RUN_CHECK - would require cross-compiling support |
| dnl Usage: |
| dnl AC_TRY_CPP(INCLUDES, |
| dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) |
| dnl CL_CPP_CHECK(ECHO-TEXT, CACHE-ID, |
| dnl INCLUDES, |
| dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) |
| dnl AC_TRY_xxx(INCLUDES, FUNCTION-BODY, |
| dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) |
| dnl CL_xxx_CHECK(ECHO-TEXT, CACHE-ID, |
| dnl INCLUDES, FUNCTION-BODY, |
| dnl ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) |
| |
| AC_DEFUN([CL_CPP_CHECK], |
| [AC_MSG_CHECKING(for $1) |
| AC_CACHE_VAL($2,[ |
| AC_TRY_CPP([$3], $2=yes, $2=no) |
| ]) |
| AC_MSG_RESULT([$]$2) |
| if test [$]$2 = yes; then |
| ifelse([$4], , :, [$4]) |
| ifelse([$5], , , [else |
| $5 |
| ])dnl |
| fi |
| ]) |
| |
| AC_DEFUN([CL_COMPILE_CHECK], |
| [AC_MSG_CHECKING(for $1) |
| AC_CACHE_VAL($2,[ |
| AC_TRY_COMPILE([$3],[$4], $2=yes, $2=no) |
| ]) |
| AC_MSG_RESULT([$]$2) |
| if test [$]$2 = yes; then |
| ifelse([$5], , :, [$5]) |
| ifelse([$6], , , [else |
| $6 |
| ])dnl |
| fi |
| ]) |
| |
| AC_DEFUN([CL_LINK_CHECK], |
| [AC_MSG_CHECKING(for $1) |
| AC_CACHE_VAL($2,[ |
| AC_TRY_LINK([$3],[$4], $2=yes, $2=no) |
| ]) |
| AC_MSG_RESULT([$]$2) |
| if test [$]$2 = yes; then |
| ifelse([$5], , :, [$5]) |
| ifelse([$6], , , [else |
| $6 |
| ])dnl |
| fi |
| ]) |
| |
| dnl CL_SILENT(ACTION) |
| dnl performs ACTION, with AC_MSG_CHECKING and AC_MSG_RESULT being defined away. |
| AC_DEFUN([CL_SILENT], |
| [pushdef([AC_MSG_CHECKING],[:])dnl |
| pushdef([AC_CHECKING],[:])dnl |
| pushdef([AC_MSG_RESULT],[:])dnl |
| $1[]dnl |
| popdef([AC_MSG_RESULT])dnl |
| popdef([AC_CHECKING])dnl |
| popdef([AC_MSG_CHECKING])dnl |
| ]) |
| |
| dnl Expands to the "extern ..." prefix used for system declarations. |
| dnl AC_LANG_EXTERN() |
| AC_DEFUN([AC_LANG_EXTERN], |
| [extern |
| #ifdef __cplusplus |
| "C" |
| #endif |
| ]) |
| |
| AC_DEFUN([CL_CC_WORKS], |
| [AC_CACHE_CHECK(whether CC works at all, cl_cv_prog_cc_works, [ |
| AC_LANG_SAVE() |
| AC_LANG_C() |
| AC_TRY_RUN([int main() { exit(0); }], |
| cl_cv_prog_cc_works=yes, cl_cv_prog_cc_works=no, |
| AC_TRY_LINK([], [], cl_cv_prog_cc_works=yes, cl_cv_prog_cc_works=no)) |
| AC_LANG_RESTORE() |
| ]) |
| case "$cl_cv_prog_cc_works" in |
| *no) echo "Installation or configuration problem: C compiler cannot create executables."; exit 1;; |
| *yes) ;; |
| esac |
| ]) |