From: George McCollister Date: Wed, 17 Nov 2010 16:20:57 -0600 Subject: [PATCH] use cached for setsockopt in configure.ac Use AC_CACHE_CHECK so we can pass in cached values in for setsockopt checks. Signed-off-by: George McCollister Signed-off-by: Marc Kleine-Budde --- configure.ac | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/configure.ac b/configure.ac index a1c8bf1..827e124 100644 --- a/configure.ac +++ b/configure.ac @@ -224,37 +224,41 @@ fi dnl END debug CFLAGS AC_DEFUN([MCM_CHECK_SETSOCKOPT], [ -AC_MSG_CHECKING(whether to use $1 with setsockopt()) -AC_TRY_RUN([ + AC_CACHE_CHECK(whether to use $1 with setsockopt(), ac_cv_setsockopt_$1, [ + AC_TRY_RUN([ #include #include #include -int -main(void) { - int s; - struct timeval tv; - tv.tv_sec = 3; - tv.tv_usec = 0; + int + main(void) { + int s; + struct timeval tv; + tv.tv_sec = 3; + tv.tv_usec = 0; #ifndef $1 - exit(3); + exit(3); #else - if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) - exit(2); + if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) + exit(2); - /* fails on Solaris 2.6,8,9,10 and some Linuxes because - SO_RCVTIMEO|SO_SNDTIMEO are defined but not implemented */ - if (setsockopt(s, SOL_SOCKET, $1, (const void *)&tv, sizeof(tv)) == -1) - exit(1); + /* fails on Solaris 2.6,8,9,10 and some Linuxes because + SO_RCVTIMEO|SO_SNDTIMEO are defined but not implemented */ + if (setsockopt(s, SOL_SOCKET, $1, (const void *)&tv, sizeof(tv)) == -1) + exit(1); - exit(0); + exit(0); #endif -} -] -, [ AC_MSG_RESULT([yes]) AC_DEFINE(USE_$1, 1, [Define to use $1 with setsockopt()]) ] -, [ AC_MSG_RESULT([no]) ] -) + } + ], ac_cv_setsockopt_$1=yes, ac_cv_setsockopt_$1=no) + ]) + if test $ac_cv_setsockopt_$1 = yes; then + result=1 + else + result=0 + fi + AC_DEFINE_UNQUOTED(USE_$1, [$result], [Define to use $1 with setsockopt()]) ]) dnl check for SO_RCVTIMEO and SO_SNDTIMEO