hcoop release
[hcoop/debian/courier-authlib.git] / configure.ac
CommitLineData
d9898ee8 1dnl Process this file with autoconf to produce a configure script.
2dnl
d9898ee8 3dnl
0e333c05 4dnl Copyright 1998 - 2018 Double Precision, Inc. See COPYING for
d9898ee8 5dnl distribution information.
6
8d138742 7AC_PREREQ(2.63)
0e333c05 8AC_INIT([courier-authlib],[0.69.0],[courier-users@lists.sourceforge.net])
d9898ee8 9
10AC_CONFIG_SRCDIR([courierauth.h])
d9898ee8 11
12AM_INIT_AUTOMAKE
d50284c4 13AC_CONFIG_HEADERS([courier_auth_config.h])
d9898ee8 14>confdefs.h # Kill PACKAGE_ macros
15
16LPATH="$PATH:/usr/local/bin"
17
18dnl Checks for programs.
19AC_PROG_AWK
20AC_PROG_CC
0e333c05 21AC_PROG_CXX
d9898ee8 22AC_PROG_CPP
23AC_PROG_INSTALL
24AC_PROG_LN_S
25AC_PROG_SYSCONFTOOL
8d138742
CE
26LT_INIT(dlopen)
27LTDL_INIT
d9898ee8 28AC_SUBST(LTDLINCL)
29AC_SUBST(LIBLTDL)
30AC_PATH_PROGS(PERL, perl5 perl, perl, $LPATH)
31AC_PATH_PROGS(COURIERCONFIG, courier-config, courier-config, $LPATH)
32
b0322a85
CE
33AC_CHECK_HEADER(ltdl.h, [ : ],
34 AC_MSG_ERROR([Unable to find ltdl.h. Please install Libtool's ltdl library]))
35
d9898ee8 36if test "$PERL" = "perl"
37then
38 AC_MSG_ERROR(Perl is required)
39fi
40
41test "x$prefix" = xNONE && prefix=$ac_default_prefix
42test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
43eval "prefix=$prefix"
44eval "exec_prefix=$exec_prefix"
45eval "sysconfdir=$sysconfdir"
46eval "bindir=$bindir"
47eval "sbindir=$sbindir"
48eval "localstatedir=$localstatedir"
49eval "libexecdir=$libexecdir"
b0322a85
CE
50eval "datarootdir=$datarootdir"
51eval "datedir=$datadir"
d9898ee8 52
d9898ee8 53AC_PATH_PROGS(EXPECT, expect, expect, $LPATH)
54
55if test "$EXPECT" = "expect"
56then
57 AC_MSG_WARN(-----------------------------------------------------)
58 AC_MSG_WARN(expect not found - will not be able to change passwds)
59 AC_MSG_WARN(in webmail)
60 AC_MSG_WARN(-----------------------------------------------------)
61 sleep 5
62else
63 AC_DEFINE_UNQUOTED(HAVE_EXPECT, 1, [ Whether expect(1) is installed ])
64fi
65
66AC_PATH_PROGS(PASSWD, passwd, passwd, $LPATH)
67AC_SUBST(PASSWD)
68
69if test "$GCC" = "yes"
70then
71 CFLAGS="$CFLAGS -Wall"
0e333c05 72 CXXFLAGS="$CXXFLAGS -Wall"
d9898ee8 73fi
74
b0322a85 75CFLAGS="$CFLAGS -Ilibs -I${srcdir}/libs"
0e333c05 76CXXFLAGS="$CXXFLAGS -Ilibs -I${srcdir}/libs"
d9898ee8 77
78AC_MSG_CHECKING(whether -lm is needed for floor)
79AC_TRY_LINK_FUNC(floor,
80 AC_MSG_RESULT(no),
81 LIBM="-lm"
82 AC_MSG_RESULT(yes))
83
84AC_ARG_WITH(pkgconfdir,
85[ --with-pkgconfdir=d Install config files in directory ],
86 [pkgconfdir="$withval"],
87 [pkgconfdir="$sysconfdir/authlib"])
88
d9898ee8 89saveLIBS="$LIBS"
90NETLIBS=""
91USENSL=no
92
93AC_CHECK_LIB(socket,socket,result=yes,result=no)
94if test $result = yes; then
95 NETLIBS="-lsocket"
96else
97 AC_CHECK_LIB(socket,socket,result=yes,result=no,-lnsl)
98 if test $result = yes; then
99 NETLIBS = "-lsocket -lnsl"
100 USENSL=yes
101 else
102 AC_CHECK_LIB(socket,connect,result=yes,result=no)
103 if test $result = yes; then
104 NETLIBS="-lsocket"
105 else
106 AC_CHECK_LIB(socket,connect,result=yes,result=no,-lnsl)
107 if test $result = yes; then
108 NETLIBS="-lsocket -lnsl"
109 USENSL=yes
110 fi
111 fi
112 fi
113fi
114
115if test $USENSL != yes; then
116 LIBS="$LIBS $NETLIBS"
117 AC_TRY_LINK_FUNC(inet_addr, [ : ],
118 [
119 AC_CHECK_LIB(nsl,inet_addr,result=yes,result=no)
120 if test $result = yes; then
121 NETLIBS="$NETLIBS -lnsl"
122 fi
123 ])
124fi
125
126LIBS="$saveLIBS"
127AC_SUBST(NETLIBS)
128
0e333c05 129AX_COURIER_UNICODE_VERSION
d50284c4 130
d9898ee8 131dnl #########################################################################
132
133dnl Prepare authuserdb module if userdb library is available
134
135dnl #########################################################################
136
137
138AC_ARG_WITH(db, [ --with-db=gdbm Use the GDBM library.
139 --with-db=db Use the libdb.a library.],
140 db="$withval", needs_withdb=1)
141
142case "$db" in
143gdbm)
144 ;;
145db)
146 ;;
147"")
148 ;;
149*)
150 AC_MSG_ERROR(Invalid --with-db option.)
151 ;;
152esac
153
154saveLIBS="$LIBS"
155
156if test "$db" != "db"
157then
158 AC_CHECK_LIB(gdbm, gdbm_open,
159 [ LIBGDBM=-lgdbm ; LIBS="-lgdbm $LIBS" ])
160 AC_CHECK_FUNC(gdbm_open, [ HAVE_GDBM=y ])
161fi
162
163LIBS="$saveLIBS"
164
165if test "$db" != "gdbm"
166then
167 AC_CHECK_LIB(db, dbopen, [ LIBDB=-ldb ; LIBS="-ldb $LIBS" ],
168 [ AC_CHECK_LIB(db, db_open, [ LIBDB=-ldb ; LIBS="-ldb $LIBS"],
169 [ AC_CHECK_LIB(db, db_env_create,
170 [ LIBDB=-ldb; LIBS="-ldb $LIBS"]) ]
171 )])
172
173 AC_CHECK_FUNC(dbopen, HAVE_BDB=1)
174 AC_CHECK_FUNC(db_open, HAVE_BDB=1)
175 AC_CHECK_FUNC(db_env_create, HAVE_BDB=1)
176fi
177
178LIBS="$saveLIBS"
179
180if test "$HAVE_GDBM$HAVE_BDB" = ""
181then
182 AC_MSG_ERROR(Cannot find either the gdbm or the db library.)
183fi
184
185USE_GDBM=0
186USE_DB=0
187
188if test "$HAVE_GDBM" = "y"
189then
190 LIBDB=""
191 USE_GDBM=1
d9898ee8 192 if test "$needs_withdb" = 1
193 then
194 ac_configure_args="$ac_configure_args --with-db=gdbm"
195 fi
b0322a85 196 dblibrary=libs/gdbmobj/libgdbmobj.la
d9898ee8 197else
198 LIBGDBM=""
199 USE_DB=1
d9898ee8 200 if test "$needs_withdb" = 1
201 then
202 ac_configure_args="$ac_configure_args --with-db=db"
203 fi
b0322a85 204 dblibrary=libs/bdbobj/libbdbobj.la
d9898ee8 205fi
206
d9898ee8 207AC_SUBST(USE_GDBM)
208AC_SUBST(USE_DB)
d9898ee8 209
210AC_ARG_WITH(authuserdb,
211[ --without-authuserdb Do not include the authuserdb module ],
212 doauthuserdb="$withval",
213 doauthuserdb="no"
214 if test -d ${srcdir}/userdb
215 then
216 doauthuserdb="yes"
217 fi)
218
219if test "$doauthuserdb" = "no"
220then
221 AUTHUSERDB=""
222else
223 AUTHUSERDB="authuserdb"
224 LIBAUTHUSERDB="libauthuserdb.la"
225
226fi
227
228AC_ARG_WITH(makedatprog, [ ], [ : ],
229 [
230 ac_configure_args="$ac_configure_args --with-makedatprog=$libexecdir/courier-authlib/makedatprog"
231 ])
232
233cat >dbobj.config <<EOF
234LIBDB=$LIBDB
235LIBGDBM=$LIBGDBM
236dblibrary=$dblibrary
237EOF
238
239AC_SUBST(USE_GDBM)
240AC_SUBST(USE_DB)
241
242AC_SUBST(dblibrary)
243AC_SUBST(LIBGDBM)
244AC_SUBST(LIBDB)
245AC_SUBST(LIBAUTHUSERDB)
246
247userdb="$pkgconfdir/userdb"
248AC_ARG_WITH(userdb, [], [ userdb="$withval" ], [ac_configure_args="$ac_configure_args '--with-userdb=$userdb'"])
249
250AC_DEFINE_UNQUOTED(USERDB,"$userdb", [ Location of the userdb database ])
251AC_SUBST(userdb)
252
253dnl Checks for header files.
254dnl
255dnl Because autoconf sets macros for C preprocessor where
256dnl AC_CHECK_HEADERS appears first, the first AC_CHECK_HEADERS
257dnl must not place in conditional level but top level.
258dnl This is a dummy AC_CHECK_HEADERS for it.
259dnl
260AC_CHECK_HEADERS(stdio.h)
261
262dnl #########################################################################
263
264dnl Prepare authpam module if libpam is available.
265
266dnl #########################################################################
267
268AC_ARG_WITH(authpam,
269[ --without-authpam Do not include the authpam module ],
270 doauthpam="$withval")
271
272AC_CHECK_HEADERS(security/pam_appl.h Pam/pam_appl.h)
273if test "$doauthpam" = "no"
274then
275 LIBDL=""
276else
277 saveLIBS="$LIBS"
278 LIBDL=""
279 AC_CHECK_LIB(dl, dlopen, [ LIBDL="-ldl" ])
280 LIBS="$saveLIBS"
281
282 AC_CHECK_LIB(pam, pam_start,
283 [ HAVE_PAM=1
284 LIBS="-lpam $LIBDL $LIBS"
285 AC_CHECK_FUNCS(pam_setcred)],
286
287 HAVE_PAM=0,
288 $LIBDL)
289 LIBS="$saveLIBS"
290fi
291AC_SUBST(LIBDL)
292
293LIBAUTHPAM=""
294if test "$HAVE_PAM" = 1
295then
296 LIBAUTHPAM=libauthpam.la
297fi
298
299AC_ARG_WITH(authpam-libraries,
300[ --with-authpam-libraries="libs" Link 'libs' with authpam, this may be
301 required for FreeBSD 3.3],
302 authpamcrypt="$withval")
303
304AUTHPAMCRYPT="$authpamcrypt"
305AC_SUBST(AUTHPAMCRYPT)
306AC_SUBST(LIBAUTHPAM)
307
308dnl #########################################################################
309
310dnl Prepare authldap module if ldap functions are available.
311
312dnl #########################################################################
313
314AC_ARG_WITH(authldap,
315[ --without-authldap Do not include the authldap module ],
316 doauthldap="$withval",
317 doauthldap="yes")
318
319AC_CHECK_HEADERS(lber.h)
320AC_CHECK_HEADERS(ldap.h)
321AC_CHECK_HEADERS(netinet/in.h)
322
323if test "$doauthldap" = "no"
324then
325 HAVE_LDAP=0
326else
327 saveLIBS="$LIBS"
328 LIBS="$NETLIBS $LIBS"
329 LDAPLIBS=""
330
331 AC_MSG_CHECKING(whether -lresolv is needed for res_query)
b0322a85 332 AC_LINK_IFELSE([AC_LANG_PROGRAM([
d9898ee8 333#include <sys/types.h>
334#if HAVE_NETINET_IN_H
335#include <netinet/in.h>
336#endif
337#include <resolv.h>
338
339void (*func)()= (void (*)())res_query;
340],
b0322a85 341 [ (*func)(); ])],
d9898ee8 342 AC_MSG_RESULT(no),
343 [
344 LIBS="-lresolv $LIBS"
345
b0322a85 346 AC_LINK_IFELSE([AC_LANG_PROGRAM([
d9898ee8 347#include <sys/types.h>
348#if HAVE_NETINET_IN_H
349#include <netinet/in.h>
350#endif
351#include <resolv.h>
352
353void (*func)()= (void (*)())res_query;
354],
b0322a85 355 [ (*func)(); ])], [
d9898ee8 356 LDAPLIBS="-lresolv $LDAPLIBS"
357 HAVE_LDAP=1
358 AC_MSG_RESULT(yes)
359 ],
360 AC_MSG_ERROR(Cannot find function res_query))
361 ])
362
363 AC_CHECK_LIB(lber, ber_scanf,
364 [ LDAPLIBS="-llber $LDAPLIBS" LIBS="-llber $LIBS" ])
365 AC_CHECK_LIB(ldap, ldap_open,
366 [ LDAPLIBS="-lldap $LDAPLIBS" ; LIBS="-lldap $LIBS" ])
367 AC_CHECK_FUNC(ldap_search_st, HAVE_LDAP=1, HAVE_LDAP=0)
368 AC_CHECK_FUNC(ldap_start_tls_s, HAVE_LDAP_TLS=1, HAVE_LDAP_TLS=0)
369 AC_CHECK_FUNC(ldap_result2error, HAVE_LDAP_RESULT2ERROR=1, HAVE_LDAP_RESULT2ERROR=0)
370 AC_CHECK_FUNC(ldap_parse_result, HAVE_LDAP_PARSE_RESULT=1, HAVE_LDAP_PARSE_RESULT=0)
371 LIBS="$saveLIBS"
372fi
373
374AC_ARG_WITH(authldaprc,
375[ --with-authldaprc=filename Expect to find authldaprc here ],
376 authldaprc="$withval",
377 authldaprc="$pkgconfdir/authldaprc")
378AC_SUBST(authldaprc)
379
380LIBAUTHLDAP=""
381if test "$HAVE_LDAP" = 1
382then
383 LIBAUTHLDAP="libauthldap.la"
384else
385 authldaprc=""
386fi
387AC_SUBST(LDAPLIBS)
388AC_SUBST(LIBAUTHLDAP)
389
390AM_CONDITIONAL(HAVE_LDAP, test "$HAVE_LDAP" = 1)
391AC_DEFINE_UNQUOTED(HAVE_LDAP_TLS,$HAVE_LDAP_TLS,
392 [ Whether we have ldap_start_tls_s ])
393AC_DEFINE_UNQUOTED(HAVE_LDAP_RESULT2ERROR, $HAVE_LDAP_RESULT2ERROR,
394 [ Whether we have ldap_result2error() function ])
395AC_DEFINE_UNQUOTED(HAVE_LDAP_PARSE_RESULT, $HAVE_LDAP_PARSE_RESULT,
396 [ Whether we have ldap_parse_result() function])
397dnl #########################################################################
398
399dnl Prepare authpwd module
400
401dnl #########################################################################
402
403AC_ARG_WITH(authpwd,
404[ --without-authpwd Do not include the authpwd module ],
405 doauthpwd="$withval",
406 doauthpwd="yes"
407 test "$HAVE_PAM" = 1 && doauthpwd="no"
408 test "$HAVE_LDAP" = 1 && doauthpwd="no"
409 )
410
411HAVE_PWD=1
412if test "$doauthpwd" = "no"
413then
414 HAVE_PWD=0
415fi
416AC_CHECK_FUNCS(endpwent)
417
418dnl #########################################################################
419
420dnl Prepare authshadow module if shadow functions are available.
421
422dnl #########################################################################
423
424AC_ARG_WITH(authshadow,
425[ --without-authshadow Do not include the authshadow module ],
426 doauthshadow="$withval",
427 doauthshadow="yes"
428 test "$HAVE_PAM" = 1 && doauthshadow="no"
429 test "$HAVE_LDAP" = 1 && doauthshadow="no")
430
431AC_CHECK_HEADERS(shadow.h)
432saveLIBS="$LIBS"
433SHADOWLIBS=""
434AC_CHECK_LIB(shadow, getspent,
435 [ SHADOWLIBS="-lshadow" ; LIBS="-lshadow $LIBS" ])
436AC_CHECK_FUNCS(endspent getspent)
437LIBS="$saveLIBS"
438
439if test "$doauthshadow" = "no"
440then
441 HAVE_SHADOW=0
442else
443
444 saveLIBS="$LIBS"
445 AC_CHECK_LIB(shadow, getspent)
446 AC_CHECK_FUNC(getspent, HAVE_SHADOW=1, HAVE_SHADOW=0)
447 LIBS="$saveLIBS"
448fi
449
450LIBAUTHSHADOW=""
451if test "$HAVE_SHADOW" = 1
452then
453 LIBAUTHSHADOW="libauthshadow.la"
454fi
455AC_SUBST(SHADOWLIBS)
456AC_SUBST(LIBAUTHSHADOW)
457
458LIBAUTHPWD=""
459if test "$HAVE_PWD" = 1
460then
461 LIBAUTHPWD="libauthpwd.la"
462fi
463AC_SUBST(LIBAUTHPWD)
464
465dnl #########################################################################
466
d9898ee8 467dnl Prepare authpgsql module
468
469dnl #########################################################################
470
471AC_ARG_WITH(authpgsqlrc,
472[ --with-authpgsqlrc=filename Expect to find authpgsql here ],
473 authpgsqlrc="$withval",
474 authpgsqlrc="$pkgconfdir/authpgsqlrc")
475AC_SUBST(authpgsqlrc)
476
477AC_ARG_WITH(authpgsql,
478[ --without-authpgsql Do not include the authpgsql module ],
479 doauthpgsql="$withval")
480
481AC_PATH_PROGS(PG_CONFIG, pg_config, pg_config, $LPATH)
482
483PGSQL_LIBS="-lpq"
484AC_ARG_WITH(pgsql-libs,
485[ --with-pgsql-libs=DIR Look for pgsql libs in this dir ],
486 PGSQL_LIBS="-L$withval $PGSQL_LIBS",
487 if test -x $PG_CONFIG
488 then
489 PGSQL_LIBS="-L`$PG_CONFIG --libdir` $PGSQL_LIBS"
490 fi
491)
492AC_ARG_WITH(pgsql-includes,
493[ --with-pgsql-includes=DIR Look for pgsql includes in this dir ],
494 PGSQL_CFLAGS="-I$withval",
495 if test -x $PG_CONFIG
496 then
497 PGSQL_CFLAGS="-I`$PG_CONFIG --includedir`"
498 fi
499)
500
501if test "$doauthpgsql" = ""
502then
503 LIBS="$PGSQL_LIBS $LIBS"
504 AC_CHECK_FUNC(PQsetdbLogin,
505 doauthpgsql="yes"
506 )
507 LIBS="$saveLIBS"
508fi
509
510if test "$doauthpgsql" != "yes"
511then
512 LIBAUTHPGSQL=""
513 HAVE_AUTHPGSQL=0
514else
515 saveLIBS="$LIBS"
516 LIBS="$PGSQL_LIBS $LIBS"
517 AC_CHECK_FUNC(PQsetdbLogin,
518 AUTHPGSQL="authpgsql"
519 HAVE_AUTHPGSQL=1,
520 AC_MSG_ERROR([--with-authpgsql specified but no libpq.so]))
521 LIBS="$saveLIBS"
522 HAVE_AUTHPGSQL=1
523 CFLAGS="$PGSQL_CFLAGS $CFLAGS"
0e333c05 524 CXXFLAGS="$PGSQL_CFLAGS $CXXFLAGS"
d9898ee8 525 LIBAUTHPGSQL="libauthpgsql.la"
526fi
527
528AC_SUBST(PGSQL_LIBS)
529AC_SUBST(LIBAUTHPGSQL)
530AM_CONDITIONAL(HAVE_AUTHPGSQL, test "$HAVE_AUTHPGSQL" = 1)
531
532dnl #########################################################################
533
534dnl Prepare authmysql module
535
536dnl #########################################################################
537
538AC_ARG_WITH(authmysqlrc,
539[ --with-authmysqlrc=filename Expect to find authmysql here ],
540 authmysqlrc="$withval",
541 authmysqlrc="$pkgconfdir/authmysqlrc")
542AC_SUBST(authmysqlrc)
543
544AC_ARG_WITH(authmysql,
545[ --without-authmysql Do not include the authmysql module ],
546 doauthmysql="$withval")
547AC_ARG_WITH(mysql-libs,
548[ --with-mysql-libs=DIR Look for mysql libs in this dir ],
549 MYSQL_LIBS="-L$withval -lmysqlclient"
550)
551AC_ARG_WITH(mysql-includes,
552[ --with-mysql-includes=DIR Look for mysql includes in this dir ],
553 MYSQL_CFLAGS="-I$withval"
554)
555
556AC_PATH_PROGS(MYSQL_CONFIG, mysql_config, mysql_config, $LPATH)
557
558if test -x "$MYSQL_CONFIG"
559then
560 MYSQL_CFLAGS="`$MYSQL_CONFIG --cflags`"
561 MYSQL_LIBS="`$MYSQL_CONFIG --libs`"
562
563 eval "MYSQL_CFLAGS=\"\`echo $MYSQL_CFLAGS\`\""
564 eval "MYSQL_LIBS=\"\`echo $MYSQL_LIBS\`\""
565fi
566
567if test "$doauthmysql" = ""
568then
569 LIBS="$MYSQL_LIBS $LIBS"
570 AC_CHECK_FUNC(mysql_connect,
571 doauthmysql="yes"
572 )
573 AC_CHECK_FUNC(mysql_real_connect,
574 doauthmysql="yes"
575 )
576 LIBS="$saveLIBS"
577fi
578
579if test "$doauthmysql" != "yes"
580then
581 LIBAUTHMYSQL=""
582 HAVE_AUTHMYSQL=0
583else
584 saveLIBS="$LIBS"
585 LIBS="$MYSQL_LIBS $LIBS"
586 AC_CHECK_FUNC(mysql_connect,
587 LIBAUTHMYSQL="libauthmysql.la"
588 HAVE_AUTHMYSQL=1,
589 [
590 AC_CHECK_FUNC(mysql_real_connect,
591 LIBAUTHMYSQL="libauthmysql.la"
592 HAVE_AUTHMYSQL=1,
593
594 AC_MSG_ERROR([--with-authmysql specified but no mysqlclient.so])
595 )
596 ]
597)
598 LIBS="$saveLIBS"
599 HAVE_AUTHMYSQL=1
600 CFLAGS="$MYSQL_CFLAGS $CFLAGS"
0e333c05 601 CXXFLAGS="$MYSQL_CFLAGS $CXXFLAGS"
d9898ee8 602fi
603AC_SUBST(LIBAUTHMYSQL)
604AC_SUBST(MYSQL_LIBS)
605AM_CONDITIONAL(HAVE_AUTHMYSQL, test "$HAVE_AUTHMYSQL" = 1)
606
b0322a85
CE
607dnl #########################################################################
608
609dnl Prepare authsqlite module
610
611dnl #########################################################################
612
613AC_ARG_WITH(authsqliterc,
614[ --with-authsqliterc=filename Expect to find authmysql here ],
615 authsqliterc="$withval",
616 authsqliterc="$pkgconfdir/authsqliterc")
617AC_SUBST(authsqliterc)
618
619AC_ARG_WITH(authsqlite,
620[ --without-authsqlite Do not include the authsqlite module ],
621 doauthsqlite="$withval")
622
623AC_ARG_WITH(sqlite-libs,
624[ --with-sqlite-libs=DIR Look for sqlite libs in this dir ],
d50284c4 625
b0322a85
CE
626 SQLITE_LIBS="-lsqlite3"
627)
628AC_ARG_WITH(sqlite-includes,
629[ --with-sqlite-includes=DIR Look for sqlite includes in this dir ],
630 SQLITE_CFLAGS="-I$withval"
631)
632
633if test "$doauthsqlite" = ""
634then
635 SQLITE_CFLAGS="`pkg-config --cflags sqlite3 2>/dev/null`"
636 SQLITE_LIBS="`pkg-config --libs sqlite3 2>/dev/null`"
637 saveLIBS="$LIBS"
638 LIBS="$SQLITE_LIBS $LIBS"
639 AC_CHECK_FUNC(sqlite3_version,
640 doauthsqlite="yes"
641 )
642 LIBS="$saveLIBS"
643fi
644
645if test "$doauthsqlite" != "yes"
646then
647 SQLITE_LIBS=""
648 SQLITE_CFLAGS=""
649 HAVE_AUTHSQLITE=0
650 LIBAUTHSQLITE=""
651else
652 saveLIBS="$LIBS"
653 LIBS="$SQLITE_LIBS $LIBS"
654 AC_CHECK_FUNC(sqlite3_version,
655 [ : ],
656 [ AC_MSG_ERROR([Cannot link with $SQLITE_LIBS]) ]
657 )
658 LIBS="$saveLIBS"
659 HAVE_AUTHSQLITE=1
660 CFLAGS="$SQLITE_CFLAGS $CFLAGS"
0e333c05 661 CXXFLAGS="$SQLITE_CXXFLAGS $CFLAGS"
b0322a85
CE
662 LIBAUTHSQLITE="libauthsqlite.la"
663
664fi
665AC_SUBST(SQLITE_LIBS)
666AC_SUBST(LIBAUTHSQLITE)
667AM_CONDITIONAL(HAVE_AUTHSQLITE, test "$HAVE_AUTHSQLITE" = 1)
d9898ee8 668
669dnl #########################################################################
670
671dnl Prepare authcustom stub module.
672
673dnl #########################################################################
674
675
676AC_ARG_WITH(authcustom,
677[ --without-authcustom Do not include the authcustom module ],
678 doauthcustom="$withval",
679 doauthcustom=yes)
680
681LIBAUTHCUSTOM=""
682
683if test "$doauthcustom" = "yes"
684then
685 LIBAUTHCUSTOM="libauthcustom.la"
686fi
687
688AM_CONDITIONAL(HAVE_CUSTOM, test "$AUTHCUSTOM" != "")
689AC_SUBST(LIBAUTHCUSTOM)
690
691
692dnl #########################################################################
693
694dnl Prepare authpipe module.
695
696dnl #########################################################################
697
698
699AC_ARG_WITH(pipeprog,
700[ --with-pipeprog=filename Expect to find the pipe-prog here ],
701 authProg="$withval",
702 authProg="$pkgconfdir/authProg")
703AC_SUBST(authProg)
704
705AC_ARG_WITH(authpipe,
706[ --without-authpipe Do not include the authpipe module ],
707 doauthpipe="$withval",
708 doauthpipe=yes)
709
710LIBAUTHPIPE=""
711
712if test "$doauthpipe" = "yes"
713then
714 LIBAUTHPIPE="libauthpipe.la"
715fi
716
717AM_CONDITIONAL(HAVE_PIPE, test "$AUTHPIPE" != "")
718AC_SUBST(LIBAUTHPIPE)
719
720
721
722dnl Checks for header files.
723AC_HEADER_STDC
724AC_HEADER_SYS_WAIT
725AC_CHECK_HEADERS(sys/stat.h sys/time.h sys/wait.h sys/select.h unistd.h fcntl.h crypt.h termios.h)
726
727dnl Checks for typedefs, structures, and compiler characteristics.
728AC_C_CONST
8d138742 729AC_TYPE_PID_T
d9898ee8 730AC_TYPE_UID_T
d9898ee8 731dnl Other checks
732AC_CHECK_FUNCS(setsid setlogin)
733AC_CHECK_LIB(crypt, crypt, CRYPTLIBS="-lcrypt")
734saveLIBS="$LIBS"
735LIBS="$CRYPTLIBS $LIBS"
736AC_CHECK_FUNC(crypt, AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1,
737 [ Whether we have the crypt() function ]))
0e333c05
CE
738AC_CHECK_FUNC(bcrypt, AC_DEFINE_UNQUOTED(HAVE_BCRYPT, 1,
739 [ Whether we have the bcrypt() function ]))
d9898ee8 740LIBS="$saveLIBS"
741AC_CACHE_CHECK([for crypt() prototype],userdb_cv_NEED_CRYPT_PROTOTYPE,
742
8d138742 743 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
d9898ee8 744 #if HAVE_CRYPT_H
745 #include <crypt.h>
746 #endif
747 #if HAVE_UNISTD_H
748 #include <unistd.h>
749 #endif
750 int crypt(int, int);
751
8d138742 752 ]], [[]])],[userdb_cv_NEED_CRYPT_PROTOTYPE=1],[userdb_cv_NEED_CRYPT_PROTOTYPE=0 ])
d9898ee8 753
754 )
755
756AC_DEFINE_UNQUOTED(NEED_CRYPT_PROTOTYPE, $userdb_cv_NEED_CRYPT_PROTOTYPE,
757 [ Whether we must a prototype for crypt()] )
758AC_SUBST(CRYPTLIBS)
759
760dnl #########################################################################
761
762dnl Prepare the authdaemon module.
763
764dnl #########################################################################
765
766AC_ARG_WITH(authdaemonrc,
767[ --with-authdaemonrc=filename Expect to find authdaemonrc here ],
768 authdaemonrc="$withval",
769 authdaemonrc="$pkgconfdir/authdaemonrc")
770AC_SUBST(authdaemonrc)
771
772AC_ARG_WITH(authdaemonvar,
773[ --with-authdaemonvar=directory Directory where authdaemon.pid and
774 the listening socket is created],
775 authdaemonvar="$withval",
776 authdaemonvar="$localstatedir/spool/authdaemon")
777
778AC_SUBST(authdaemonvar)
779
780AC_SUBST(LIBM)
781
d9898ee8 782rm -f authdaemonrc.h authldaprc.h authmysqlrc.h authpgsqlrc.h vpopmail_config.h
783
d9898ee8 784dnl
785dnl Need to settle on our uid/gids here
786dnl
787
788result=""
789
790if test -x "$COURIERCONFIG"
791then
792 $COURIERCONFIG >conftest.out || exit 1
793 sed -n '/^mail/p' <conftest.out >conftest2.out || exit 1
ac40fd9e 794 . ./conftest2.out
d9898ee8 795 rm -f conftest.out conftest2.out
796
797 cmailuser="$mailuser"
798 cmailgroup="$mailgroup"
799 result=" (from courier-config)"
800fi
801
802if test -x "$bindir/courierauthconfig"
803then
804 $bindir/courierauthconfig --configfiles >conftest.out || exit 1
805 sed -n '/^mail/p' <conftest.out >conftest2.out || exit 1
ac40fd9e 806 . ./conftest2.out
d9898ee8 807 rm -f conftest.out conftest2.out
808
809 cmailuser="$mailuser"
810 cmailgroup="$mailgroup"
811 result=" (from previous courierauthconfig)"
812fi
813
814changequote()
815
816LB='['
817RB=']'
818
819changequote([,])
820
821AC_MSG_CHECKING(for mail userid)
822
823AC_ARG_WITH(mailuser,[ --with-mailuser=user Specify mail user name (defaults to
824 courier, daemon, admin, bin, or root)],
825 mailuser="$withval",
826
827 if test "$cmailuser" = ""
828 then
8d138742 829 AC_RUN_IFELSE([AC_LANG_SOURCE([[
d9898ee8 830#include <stdio.h>
831#include <pwd.h>
832#include <stdlib.h>
833
834static const char *ids $LB $RB={"courier","daemon","adm","bin","root", 0};
835
836int main()
837{
838int i;
839FILE *f;
840char *p;
841
842 for (i=0; ids $LB i $RB; i++)
843 if (getpwnam(ids $LB i $RB)) break;
844
845 f=fopen("conftest.out", "w");
846 if (f && ids $LB i $RB)
847 {
848 fprintf(f, "%s\n", ids $LB i $RB);
849 fclose(f);
850 exit(0);
851 }
852 fclose(f);
853 exit (1);
854 return (1);
855}
8d138742 856 ]])],[mailuser=`cat conftest.out`],[AC_MSG_ERROR(Cannot determine mail user, use --with-mailuser.)],[AC_MSG_ERROR(Must use --with-mailuser when cross compiling.)])
d9898ee8 857 else
858 mailuser="$cmailuser"
859 fi
860 ac_configure_args="$ac_configure_args --with-mailuser=$mailuser")
861
862AC_MSG_RESULT([$mailuser $result])
863
864AC_MSG_CHECKING(for mail group id)
865
866AC_ARG_WITH(mailgroup, [ --with-mailgroup=group Specify mail group name (defaults to courier,
867 daemon, sys, adm, or root)],
868 mailgroup="$withval",
869
870 if test "$cmailgroup" = ""
871 then
8d138742 872 AC_RUN_IFELSE([AC_LANG_SOURCE([[
d9898ee8 873#include <stdio.h>
874#include <grp.h>
875#include <stdlib.h>
876
877static const char *ids $LB $RB={"courier", "daemon","sys","adm", "root", 0};
878
879int main()
880{
881int i;
882FILE *f;
883
884 for (i=0; ids $LB i $RB; i++)
885 if (getgrnam(ids $LB i $RB)) break;
886
887 f=fopen("conftest.out", "w");
888 if (f && ids $LB i $RB)
889 {
890 fprintf(f, "%s\n", ids $LB i $RB);
891 fclose(f);
892 exit(0);
893 }
894 fclose(f);
895 exit (1);
896 return (1);
897}
8d138742 898 ]])],[mailgroup=`cat conftest.out`],[AC_MSG_ERROR(Cannot determine mail group, use --with-mailgroup.)],[AC_MSG_ERROR(Must use --with-mailgroup when cross compiling.)])
d9898ee8 899 else
900 mailgroup="$cmailgroup"
901 fi
902 ac_configure_args="$ac_configure_args --with-mailgroup=$mailgroup"
903 )
904AC_MSG_RESULT([$mailgroup $result])
905AC_SUBST(mailuser)
906AC_SUBST(mailgroup)
907rm -f conftest.out
908
909AC_ARG_WITH(stdheaderdir,
910[ --without-stdheaderdir Header files will be installed into a directory
911 not in the compiler's default search path.],
912 [
913 if test "$withval" = "no"
914 then
915 AC_DEFINE_UNQUOTED(HAVE_NOSTDHEADERDIR, 1,
916 [ Whether header installation directory is nontstandard ])
917 fi
918 ])
919
920AC_CACHE_CHECK([for socklen_t],
921 authlib_cv_hassocklen_t,
d50284c4 922
b0322a85 923AC_COMPILE_IFELSE([
d9898ee8 924AC_LANG_SOURCE( [
925#include <sys/types.h>
926#include <sys/socket.h>
d50284c4 927
d9898ee8 928socklen_t sl_t;
929],[
930 accept(0, 0, &sl_t);
b0322a85 931])],
d9898ee8 932 authlib_cv_hassocklen_t=yes,
933 authlib_cv_hassocklen_t=no)
934)
d50284c4 935
d9898ee8 936socklen_t="int"
d50284c4 937
d9898ee8 938if test $authlib_cv_hassocklen_t = yes
939then
940 :
941else
942 AC_DEFINE_UNQUOTED(socklen_t, int, [ Default definition for socklen_t ])
943fi
944
d9898ee8 945AC_ARG_WITH(repository, [], REPOSITORY="$withval")
946AC_SUBST(REPOSITORY)
947
b0322a85 948AM_CONDITIONAL(HAVE_SGML, test -d ${srcdir}/libs/docbook)
d50284c4
CE
949
950# This gets built by the make rule, and is not in the git repo
951
952for f in authdaemonrc.in
953do
954 if test ! -f "$srcdir/$f"
955 then
956 cp -p "$srcdir/$f.git" "$srcdir/$f"
957 touch "$srcdir/$f.git"
958 fi
959done
960
961AC_CONFIG_SUBDIRS(libs/bdbobj libs/gdbmobj libs/md5 libs/sha1 libs/libhmac libs/numlib libs/makedat userdb libs/rfc822 libs/random128 libs/liblock liblog)
d9898ee8 962
b0322a85 963AC_CONFIG_FILES(Makefile authdaemond authdaemonrc authsystem.passwd README.authdebug.html dbobj.config dbobj.h authmigrate courier-authlib.spec courier-authlib.lpspec courier-authlib.sysvinit courier-authlib.service userdb-test-cram-md5.pl)
d9898ee8 964AC_OUTPUT