Fallback for Solaris.
[beanstalkd.git] / configure.in
blob80a4fdc7788ea4dce3d4454ca977043916cc5227
1 dnl this files has to be processed by autoconf
2 AC_PREREQ(2.61)
4 AC_INIT
5 AC_CONFIG_SRCDIR([README])
6 AC_CONFIG_SRCDIR(job.c)
7 AC_CONFIG_HEADERS(config.h)
8 AC_CONFIG_MACRO_DIR([m4])
10 AM_INIT_AUTOMAKE(beanstalkd,$($srcdir/version.sh))
11 AM_MAINTAINER_MODE
13 AS_COMPILER_FLAGS(CFLAGS, "-Wall -Werror")
15 AC_PROG_CC
16 AC_PROG_INSTALL
18 DEFAULT_INSTALL_PREFIX="/usr/local"
19 STANDARD_PREFIXES="/usr /usr/local /opt /local"
22 dnl {{{ --with-libdir
23 AC_ARG_WITH(libdir,
24   [AS_HELP_STRING([--with-libdir],[look for libraries in .../NAME rather than .../lib])
25   ],
26   [LIBDIR=$with_libdir],
27   [LIBDIR=lib]
29 dnl }}}
31 dnl {{{ --disable-rpath
32 AC_ARG_ENABLE(rpath,
33   [AS_HELP_STRING([--disable-rpath],[disable passing additional runtime library search paths])
34   ],
35   [BEAN_RPATH=no],
36   [BEAN_RPATH=yes]
38 dnl }}}
40 dnl {{{ check for rpath support
41 AC_MSG_CHECKING([if compiler supports -R])
42 AC_CACHE_VAL(bt_cv_cc_dashr,[
43   SAVE_LIBS=$LIBS
44   LIBS="-R /usr/$LIBDIR $LIBS"
45   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[bt_cv_cc_dashr=yes],[bt_cv_cc_dashr=no])
46   LIBS=$SAVE_LIBS])
47 AC_MSG_RESULT([$bt_cv_cc_dashr])
48 if test $bt_cv_cc_dashr = "yes"; then
49   ld_runpath_switch=-R
50 else
51   AC_MSG_CHECKING([if compiler supports -Wl,-rpath,])
52   AC_CACHE_VAL(bt_cv_cc_rpath,[
53     SAVE_LIBS=$LIBS
54     LIBS="-Wl,-rpath,/usr/$LIBDIR $LIBS"
55     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[bt_cv_cc_rpath=yes],[bt_cv_cc_rpath=no])
56     LIBS=$SAVE_LIBS])
57   AC_MSG_RESULT([$bt_cv_cc_rpath])
58   if test $bt_cv_cc_rpath = "yes"; then
59     ld_runpath_switch=-Wl,-rpath,
60   else
61     ld_runpath_switch=-L
62   fi
64 if test "$BEAN_RPATH" = "no"; then
65   ld_runpath_switch=
67 dnl }}}
69 dnl {{{ --with-event
70 AC_ARG_WITH(event,
71   [AS_HELP_STRING([--with-event],[specify libevent install prefix])
72   ],
73   [ ],
74   [with_event=yes]
77 if test "x$with_event" = "xno"; then
78   AC_MSG_ERROR([can't continue without libevent])
79 else
80   AC_MSG_CHECKING([libevent install prefix])
82   if test "x$with_event" = "xyes"; then
83     for i in `echo "$STANDARD_PREFIXES"`; do
84       if test -f "$i/include/event.h"; then
85         LIBEVENT_DIR="$i"
86         break;
87       fi
88     done
89   else
90     if test -f "$with_event/include/event.h"; then
91       LIBEVENT_DIR="$with_event"
92       break;
93     else
94       AC_MSG_ERROR([Can't find libevent headers under $with_event directory])
95     fi
96   fi
98   if test "x$LIBEVENT_DIR" = "x"; then
99     AC_MSG_ERROR([Unable to locate libevent headers, please use --with-event=<DIR>])
100   fi
102   AC_MSG_RESULT([$LIBEVENT_DIR])
103   LDFLAGS="$LDFLAGS -L$LIBEVENT_DIR/$LIBDIR"
104   CFLAGS="$CFLAGS -I$LIBEVENT_DIR/include"
105   LIBS="$LIBS -levent"
107   AC_CHECK_FUNCS([posix_fallocate])
108   AC_CHECK_FUNCS([fdatasync])
110   AC_CHECK_LIB([socket], [bind], [
111     LIBS="$LIBS -lsocket"
112   ])
114   AC_CHECK_LIB([nsl], [inet_aton], [
115     LIBS="$LIBS -lnsl"
116   ])
118   if test "$BEAN_RPATH" != "no"; then
119     LDFLAGS="$LDFLAGS $ld_runpath_switch$LIBEVENT_DIR/$LIBDIR"
120   fi
122   AC_CHECK_LIB([event], [event_get_version], [], [
123     AC_MSG_ERROR([event_get_version() is missing, check config.log for more details])
124   ])
126   AC_CHECK_LIB([event], [event_reinit], [], [
127     AC_MSG_ERROR([beanstalkd requires libevent version 1.4.1 or later.])
128   ])
130   if test -f "$LIBEVENT_DIR/$LIBDIR/libevent.so"; then
131     LIBEVENT="$LIBEVENT_DIR/$LIBDIR/libevent.so";
132   else 
133     if test -f "$LIBEVENT_DIR/lib/libevent.so"; then
134       LIBEVENT="$LIBEVENT_DIR/lib/libevent.so";
135     else 
136       if test -f "$LIBEVENT_DIR/lib64/libevent.so"; then 
137         LIBEVENT="$LIBEVENT_DIR/lib64/libevent.so";
138       fi
139     fi
140   fi
143 dnl }}}
145 dnl {{{ --enable-debug 
146 AC_ARG_ENABLE(debug,
147   [AS_HELP_STRING([--enable-debug],[enable debugging symbols and compile flags])
148   ],
149   [
150   if test x"$enableval" = xyes ; then
151     debug="yes"
152   else
153     debug="no"
154   fi
155   ]
158 if test x"$debug" = xyes ; then
159   AC_DEFINE([BEAN_DEBUG], [], [debug build])
161   if test x"$GCC" = xyes; then
162     dnl Remove any optimization flags from CFLAGS
163     changequote({,})
164     CFLAGS=`echo "$CFLAGS" | sed -e 's/-O[0-9s]*//g'`
165     CFLAGS=`echo "$CFLAGS" | sed -e 's/-g[0-2]\? //g'`
166     changequote([,])
167     CFLAGS="$CFLAGS -g3 -Wall -O0"
168   fi
170   dnl Do not strip symbols from developer object files.
171   INSTALL_STRIP_FLAG=""
172 else
173   dnl Make sure to strip symbols from non-developer object files.
174   INSTALL_STRIP_FLAG="-s"
176 dnl }}}
178 # Checks for typedefs, structures, and compiler characteristics.
179 AC_TYPE_UINT16_T
181 AC_SUBST(INSTALL_STRIP_FLAG)
183 AC_CONFIG_FILES([Makefile])
184 AC_OUTPUT
186 dnl vim700: ts=2 sw=2 et