summaryrefslogtreecommitdiffstats
path: root/patches/libmemcache-1.4.0.rc2/0002-use-cached-for-setsockopt-in-configure.ac.patch
blob: 4f5fb116533532736b6d4553f2b089e45e30655b (plain)
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