Merge branch 'upstream'
[hcoop/debian/courier-authlib.git] / liblock / configure.in
CommitLineData
84870c69 1dnl $Id: configure.in,v 1.15 2007/10/11 01:46:34 mrsam Exp $
d9898ee8 2dnl
3dnl Copyright 1998 - 2004 Double Precision, Inc. See COPYING for
4dnl distribution information.
84870c69 5dnl $Id: configure.in,v 1.15 2007/10/11 01:46:34 mrsam Exp $
d9898ee8 6
7AC_PREREQ(2.59)
8AC_INIT(liblock, 0.60, courier-users@lists.sourceforge.net)
9
10>confdefs.h # Kill PACKAGE_ macros
11
12AC_CONFIG_SRCDIR([liblock.h])
13AM_CONFIG_HEADER([config.h])
14AM_INIT_AUTOMAKE([foreign no-define])
15
16dnl Checks for programs.
17AC_PROG_AWK
18AC_PROG_CC
19AC_PROG_INSTALL
20AC_PROG_LN_S
21AC_PROG_LIBTOOL
22
23dnl Checks for libraries.
24
25dnl Checks for header files.
26AC_CHECK_HEADERS(errno.h fcntl.h sys/fcntl.h sys/ioctl.h sys/file.h unistd.h sysexits.h)
27AC_HEADER_STDC
28AC_HEADER_SYS_WAIT
29
30dnl Checks for typedefs, structures, and compiler characteristics.
31
32AC_C_CONST
33AC_TYPE_OFF_T
34AC_TYPE_PID_T
35AC_TYPE_SIGNAL
36
37AC_CACHE_CHECK( [for off64_t], liblock_cv_hasoff64t,
38
39liblock_cv_hasoff64t="no"
40AC_TRY_COMPILE([
41#include <sys/types.h>
42],[
43off64_t n;
44
45 n=0;
46], liblock_cv_hasoff64t="yes")
47
48)
49
50if test "$liblock_cv_hasoff64t" = "yes"
51then
52 LL_OFFSET_TYPE=off64_t
53else
54 LL_OFFSET_TYPE=off_t
55fi
56AC_DEFINE_UNQUOTED(LL_OFFSET_TYPE,$LL_OFFSET_TYPE,
57 [ Either off64_t or off_t ])
58
59AC_CACHE_CHECK( [for flock_t], liblock_cv_hasflock_t,
60liblock_cv_hasflock_t="no"
61AC_TRY_COMPILE([
62#if HAVE_CONFIG_H
63#include "config.h"
64#endif
65#include <sys/types.h>
66#if HAVE_FCNTL_H
67#include <fcntl.h>
68#endif
69#if HAVE_SYS_FCNTL_H
70#include <sys/fcntl.h>
71#endif
72],[
73flock_t t;
74], liblock_cv_hasflock_t="yes"))
75
76if test "$liblock_cv_hasflock_t" = "yes"
77then
78 AC_DEFINE_UNQUOTED(HAS_FLOCK_T,1,[ Whether flock_t is defined ])
79fi
80
81dnl Checks for library functions.
82
84870c69 83AC_CHECK_FUNCS(getdtablesize setpgrp sysconf)
d9898ee8 84AC_CHECK_FUNC(setpgrp,
85 [
86 AC_FUNC_SETPGRP
87 ]
88)
89
90AC_CACHE_CHECK( [for fcntl], liblock_cv_hasfcntl,
91liblock_cv_hasfcntl="no"
92AC_TRY_LINK([
93#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
94#include "${srcdir}/lockfcntl.c"
95],[
96int n;
97], liblock_cv_hasfcntl="yes"))
98if test "$liblock_cv_hasfcntl" = "yes"
99then
100 AC_DEFINE_UNQUOTED(HAS_FCNTL,1,
101 [ Whether fcntl() available ])
102fi
103
104AC_CACHE_CHECK( [for flock], liblock_cv_hasflock,
105liblock_cv_hasflock="no"
106AC_TRY_LINK([
107#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
108#include "${srcdir}/lockflock.c"
109],[
110int n;
111], liblock_cv_hasflock="yes"))
112if test "$liblock_cv_hasflock" = "yes"
113then
114 AC_DEFINE_UNQUOTED(HAS_FLOCK,1,
115 [ Whether flock() is available ])
116fi
117
118AC_CACHE_CHECK( [for lockf], liblock_cv_haslockf,
119liblock_cv_haslockf="no"
120AC_TRY_LINK([
121#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
122#include "${srcdir}/locklockf.c"
123],[
124int n;
125], liblock_cv_haslockf="yes"))
126if test "$liblock_cv_haslockf" = "yes"
127then
128 AC_DEFINE_UNQUOTED(HAS_LOCKF,1,
129 [ Whether lockf() is available ])
130fi
131
132AC_MSG_CHECKING(for locking method)
133AC_ARG_WITH(locking-method, [], lockmethod="$withval", lockmethod="")
134
135case x$lockmethod in
136xfcntl)
137 AC_TRY_RUN([
138#define USE_FCNTL 1
139#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
140#include "${srcdir}/locktest.c"
141], , AC_MSG_ERROR(fcntl test failed.),
142 :
143 )
144 ;;
145x)
146 AC_TRY_RUN([
147#define USE_FCNTL 1
148#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
149#include "${srcdir}/locktest.c"
150], lockmethod=fcntl, ,AC_MSG_ERROR(--with-locking-method option required))
151 ;;
152esac
153
154case x$lockmethod in
155xlockf)
156 AC_TRY_RUN([
157#define USE_LOCKF 1
158#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
159#include "${srcdir}/locktest.c"
160], , AC_MSG_ERROR(lockf test failed.),
161 :
162 )
163 ;;
164x)
165 AC_TRY_RUN([
166#define USE_LOCKF 1
167#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
168#include "${srcdir}/locktest.c"
169], lockmethod=lockf, , AC_MSG_ERROR(--with-locking-method option required))
170 ;;
171esac
172
173
174case x$lockmethod in
175xflock)
176 AC_TRY_RUN([
177#define USE_FLOCK 1
178#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
179#include "${srcdir}/locktest.c"
180], , AC_MSG_ERROR(flock test failed.),
181 :
182 )
183 ;;
184x)
185 AC_TRY_RUN([
186#define USE_FLOCK 1
187#define LL_OFFSET_TYPE $LL_OFFSET_TYPE
188#include "${srcdir}/locktest.c"
189], lockmethod=flock, , AC_MSG_ERROR(--with-locking-method option required))
190 ;;
191esac
192
193case x$lockmethod in
194xlockf)
195 ;;
196xflock)
197 ;;
198xfcntl)
199 ;;
200*)
201 AC_MSG_ERROR(must specify --with-locking-method option)
202 ;;
203esac
204
205AC_MSG_RESULT($lockmethod)
206
207AM_CONDITIONAL(USE_FCNTL, test "$lockmethod" = "fcntl")
208AM_CONDITIONAL(USE_FLOCK, test "$lockmethod" = "flock")
209AM_CONDITIONAL(USE_LOCKF, test "$lockmethod" = "lockf")
210
211AM_CONDITIONAL(HAVE_SGML, test -d ${srcdir}/../docbook)
212
213AC_DEFINE_UNQUOTED(liblock_config_h,1, [liblock/config.h has been read])
214
215AC_OUTPUT(Makefile)