1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
From: George McCollister <george.mccollister@gmail.com>
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 <george.mccollister@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
configure.ac | 46 +++++++++++++++++++++++++---------------------
1 files 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 <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
-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
|