0
|
1 AC_PREREQ(2.52)
|
|
2 AC_INIT(memcached, 1.2.3, brad@danga.com)
|
|
3 AC_CANONICAL_SYSTEM
|
|
4 AC_CONFIG_SRCDIR(memcached.c)
|
|
5 AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
|
|
6 AM_CONFIG_HEADER(config.h)
|
|
7
|
|
8 AC_PROG_CC
|
|
9 AC_PROG_INSTALL
|
|
10
|
|
11 trylibeventdir=""
|
|
12 AC_ARG_WITH(libevent,
|
|
13 [ --with-libevent=PATH Specify path to libevent installation ],
|
|
14 [
|
|
15 if test "x$withval" != "xno" ; then
|
|
16 trylibeventdir=$withval
|
|
17 fi
|
|
18 ]
|
|
19 )
|
|
20
|
|
21 dnl ------------------------------------------------------
|
|
22 dnl libevent detection. swiped from Tor. modified a bit.
|
|
23
|
|
24 LIBEVENT_URL=http://www.monkey.org/~provos/libevent/
|
|
25
|
|
26 AC_CACHE_CHECK([for libevent directory], ac_cv_libevent_dir, [
|
|
27 saved_LIBS="$LIBS"
|
|
28 saved_LDFLAGS="$LDFLAGS"
|
|
29 saved_CPPFLAGS="$CPPFLAGS"
|
|
30 le_found=no
|
|
31 for ledir in $trylibeventdir "" $prefix /usr/local ; do
|
|
32 LDFLAGS="$saved_LDFLAGS"
|
|
33 LIBS="$saved_LIBS -levent"
|
|
34
|
|
35 # Skip the directory if it isn't there.
|
|
36 if test ! -z "$ledir" -a ! -d "$ledir" ; then
|
|
37 continue;
|
|
38 fi
|
|
39 if test ! -z "$ledir" ; then
|
|
40 if test -d "$ledir/lib" ; then
|
|
41 LDFLAGS="-L$ledir/lib $LDFLAGS"
|
|
42 else
|
|
43 LDFLAGS="-L$ledir $LDFLAGS"
|
|
44 fi
|
|
45 if test -d "$ledir/include" ; then
|
|
46 CPPFLAGS="-I$ledir/include $CPPFLAGS"
|
|
47 else
|
|
48 CPPFLAGS="-I$ledir $CPPFLAGS"
|
|
49 fi
|
|
50 fi
|
|
51 # Can I compile and link it?
|
|
52 AC_TRY_LINK([#include <sys/time.h>
|
|
53 #include <sys/types.h>
|
|
54 #include <event.h>], [ event_init(); ],
|
|
55 [ libevent_linked=yes ], [ libevent_linked=no ])
|
|
56 if test $libevent_linked = yes; then
|
|
57 if test ! -z "$ledir" ; then
|
|
58 ac_cv_libevent_dir=$ledir
|
|
59 else
|
|
60 ac_cv_libevent_dir="(system)"
|
|
61 fi
|
|
62 le_found=yes
|
|
63 break
|
|
64 fi
|
|
65 done
|
|
66 LIBS="$saved_LIBS"
|
|
67 LDFLAGS="$saved_LDFLAGS"
|
|
68 CPPFLAGS="$saved_CPPFLAGS"
|
|
69 if test $le_found = no ; then
|
|
70 AC_MSG_ERROR([libevent is required. You can get it from $LIBEVENT_URL
|
|
71
|
|
72 If it's already installed, specify its path using --with-libevent=/dir/
|
|
73 ])
|
|
74 fi
|
|
75 ])
|
|
76 LIBS="$LIBS -levent"
|
|
77 if test $ac_cv_libevent_dir != "(system)"; then
|
|
78 if test -d "$ac_cv_libevent_dir/lib" ; then
|
|
79 LDFLAGS="-L$ac_cv_libevent_dir/lib $LDFLAGS"
|
|
80 le_libdir="$ac_cv_libevent_dir/lib"
|
|
81 else
|
|
82 LDFLAGS="-L$ac_cv_libevent_dir $LDFLAGS"
|
|
83 le_libdir="$ac_cv_libevent_dir"
|
|
84 fi
|
|
85 if test -d "$ac_cv_libevent_dir/include" ; then
|
|
86 CPPFLAGS="-I$ac_cv_libevent_dir/include $CPPFLAGS"
|
|
87 else
|
|
88 CPPFLAGS="-I$ac_cv_libevent_dir $CPPFLAGS"
|
|
89 fi
|
|
90 fi
|
|
91
|
|
92 dnl ----------------------------------------------------------------------------
|
|
93
|
|
94 AC_SEARCH_LIBS(socket, socket)
|
|
95 AC_SEARCH_LIBS(gethostbyname, nsl)
|
|
96 AC_SEARCH_LIBS(mallinfo, malloc)
|
|
97 AC_SEARCH_LIBS(pthread_create, pthread)
|
|
98
|
|
99 AC_CHECK_FUNC(daemon,AC_DEFINE([HAVE_DAEMON],,[Define this if you have daemon()]),[AC_LIBOBJ(daemon)])
|
|
100
|
|
101 AC_HEADER_STDBOOL
|
|
102 AC_C_CONST
|
|
103 AC_CHECK_HEADER(malloc.h, AC_DEFINE(HAVE_MALLOC_H,,[do we have malloc.h?]))
|
|
104 AC_CHECK_MEMBER([struct mallinfo.arena], [
|
|
105 AC_DEFINE(HAVE_STRUCT_MALLINFO,,[do we have stuct mallinfo?])
|
|
106 ], ,[
|
|
107 # include <malloc.h>
|
|
108 ]
|
|
109 )
|
|
110
|
|
111 dnl From licq: Copyright (c) 2000 Dirk Mueller
|
|
112 dnl Check if the type socklen_t is defined anywhere
|
|
113 AC_DEFUN([AC_C_SOCKLEN_T],
|
|
114 [AC_CACHE_CHECK(for socklen_t, ac_cv_c_socklen_t,
|
|
115 [
|
|
116 AC_TRY_COMPILE([
|
|
117 #include <sys/types.h>
|
|
118 #include <sys/socket.h>
|
|
119 ],[
|
|
120 socklen_t foo;
|
|
121 ],[
|
|
122 ac_cv_c_socklen_t=yes
|
|
123 ],[
|
|
124 ac_cv_c_socklen_t=no
|
|
125 ])
|
|
126 ])
|
|
127 if test $ac_cv_c_socklen_t = no; then
|
|
128 AC_DEFINE(socklen_t, int, [define to int if socklen_t not available])
|
|
129 fi
|
|
130 ])
|
|
131
|
|
132 AC_C_SOCKLEN_T
|
|
133
|
|
134 dnl Check if we're a little-endian or a big-endian system, needed by hash code
|
|
135 AC_DEFUN([AC_C_ENDIAN],
|
|
136 [AC_CACHE_CHECK(for endianness, ac_cv_c_endian,
|
|
137 [
|
|
138 AC_RUN_IFELSE(
|
|
139 [AC_LANG_PROGRAM([], [dnl
|
|
140 long val = 1;
|
|
141 char *c = (char *) &val;
|
|
142 exit(*c == 1);
|
|
143 ])
|
|
144 ],[
|
|
145 ac_cv_c_endian=big
|
|
146 ],[
|
|
147 ac_cv_c_endian=little
|
|
148 ])
|
|
149 ])
|
|
150 if test $ac_cv_c_endian = big; then
|
|
151 AC_DEFINE(ENDIAN_BIG, 1, [machine is bigendian])
|
|
152 fi
|
|
153 if test $ac_cv_c_endian = little; then
|
|
154 AC_DEFINE(ENDIAN_LITTLE, 1, [machine is littleendian])
|
|
155 fi
|
|
156 ])
|
|
157
|
|
158 AC_C_ENDIAN
|
|
159
|
|
160 dnl Check whether the user wants threads or not
|
|
161 AC_ARG_ENABLE(threads,
|
|
162 [AS_HELP_STRING([--enable-threads],[support multithreaded execution])],
|
|
163 [if test "$ac_cv_search_pthread_create" != "no"; then
|
|
164 AC_DEFINE([USE_THREADS],,[Define this if you want to use pthreads])
|
|
165 else
|
|
166 AC_MSG_ERROR([Can't enable threads without the POSIX thread library.])
|
|
167 fi])
|
|
168
|
|
169 AC_CHECK_FUNCS(mlockall)
|
|
170
|
|
171 AC_CONFIG_FILES(Makefile doc/Makefile)
|
|
172 AC_OUTPUT
|