1dnl Process this file with autoconf to produce a configure script.
2
3dnl #########################################################################
4dnl
5dnl This file is part of libESMTP, a library for submission of RFC 2822
6dnl formatted electronic mail messages using the SMTP protocol described
7dnl in RFC 2821.
8dnl
9dnl Copyright (C) 2001  Brian Stafford  <brian@stafford.uklinux.net>
10dnl
11dnl This library is free software; you can redistribute it and/or
12dnl modify it under the terms of the GNU Lesser General Public
13dnl License as published by the Free Software Foundation; either
14dnl version 2.1 of the License, or (at your option) any later version.
15dnl
16dnl This library is distributed in the hope that it will be useful,
17dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
18dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19dnl Lesser General Public License for more details.
20dnl
21dnl You should have received a copy of the GNU Lesser General Public
22dnl License along with this library; if not, write to the Free Software
23dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
24dnl
25dnl #########################################################################
26
27AC_INIT(smtp-api.c)
28AM_CONFIG_HEADER(config.h)
29AM_INIT_AUTOMAKE([libesmtp],[1.0.6])
30AC_CANONICAL_HOST
31AC_CONFIG_MACRO_DIR([m4])
32
33dnl #########################################################################
34dnl Library versioning
35dnl #########################################################################
36
37LIB_CURRENT=7
38LIB_REVISION=6
39LIB_AGE=1
40AC_SUBST(LIB_CURRENT)
41AC_SUBST(LIB_REVISION)
42AC_SUBST(LIB_AGE)
43
44LIBESMTP_VERSION="$LIB_CURRENT:$LIB_REVISION:$LIB_AGE"
45AC_SUBST(LIBESMTP_VERSION)
46subdirs=
47
48dnl #########################################################################
49dnl Checks for programs.
50dnl #########################################################################
51AC_PROG_CC
52AC_PROG_INSTALL
53AC_PROG_MAKE_SET
54AM_PROG_LIBTOOL
55
56dnl #########################################################################
57dnl Miscellaneous stuff
58dnl #########################################################################
59
60EXTRA_CFLAGS=""
61case $host_vendor-$host_os in
62sun*)
63	AC_DEFINE(__EXTENSIONS__,1,[Sun's netdb.h needs this for getaddrinfo])
64	;;
65osf*)
66	AC_DEFINE(_OSF_SOURCE,1,[OSF needs this for getaddrinfo])
67	;;
68*gnu*)
69	AC_DEFINE(_GNU_SOURCE,1,[GNU needs this for strcasecmp etc])
70	;;
71esac
72
73dnl #########################################################################
74dnl turn warnings into errors to enforce clean code
75dnl #########################################################################
76
77AC_ARG_ENABLE([more-warnings],
78              ACX_HELP_STRING([--enable-more-warnings=no/yes/picky],[additional compiler warnings (default=yes)]),
79	      ,
80	      enable_more_warnings=yes)
81
82if test "$GCC" = "yes" -a "$enable_more_warnings" != "no"; then
83        EXTRA_CFLAGS="$EXTRA_CFLAGS \
84        -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
85        -Wstrict-prototypes -Wnested-externs -Wpointer-arith \
86        -Wbad-function-cast -Wcast-align"
87fi
88if test "$GCC" = "yes" -a "$enable_more_warnings" = "picky"; then
89        EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-builtin -W -Werror -Wwrite-strings \
90        		-Wcast-qual"
91fi
92
93AC_ARG_ENABLE([isoc],
94              ACX_HELP_STRING([--disable-isoc],[check ISO C compliance (default=c99)]),
95	      ,
96	      enable_isoc=c99)
97if test "$enable_isoc" != "no"; then
98	if test "$GCC" = "yes"; then
99		CFLAGS="-std=$enable_isoc -pedantic $CFLAGS"
100	fi
101	AC_DEFINE(_ISOC9X_SOURCE,1,[ISO compliant code])
102	AC_DEFINE(_ISOC99_SOURCE,1,[ISO compliant code])
103	AC_DEFINE(_POSIX_C_SOURCE,199506L,[POSIX compliant code])
104	AC_DEFINE(_XOPEN_SOURCE,500,[Single Unix conformance])
105fi
106
107dnl #########################################################################
108dnl Checks for libraries and options.
109dnl #########################################################################
110
111AC_ARG_ENABLE([all],ACX_HELP_STRING([--enable-all], [convenience: enable all experimental features]),
112              ,
113              enable_all=no)
114
115dnl #########################################################################
116dnl Check whether to use SUS functions or libltdl for loading plugins.
117dnl #########################################################################
118
119have_dl=no
120AC_SEARCH_LIBS(dlsym, dl svdl, [
121	AC_DEFINE([HAVE_DLSYM],1,[the dlsym() function is available])
122	have_dl=yes
123])
124if test x$have_dl = xno ; then
125dnl # WARNING: I don't know what libraries ltdl depends on.  I just assume
126dnl #          that if the punter asks for it, then it must be properly
127dnl #          installed and the dynamic linker will sort the dependencies
128dnl #	       at link time.
129
130	AC_SEARCH_LIBS(lt_dlsym, ltdl,
131		have_dl=yes,
132		AC_MSG_ERROR([libltdl not found (available from http://www.gnu.org/software/libtool/)])
133	)
134fi
135
136dnl #########################################################################
137dnl Check if using Posix Threads
138dnl #########################################################################
139
140AC_ARG_ENABLE([pthreads],
141              ACX_HELP_STRING([--enable-pthreads], [build with support for Posix threads  (default=auto)]),
142  	      ,
143  	      enable_pthreads=auto)
144
145if test x"$enable_pthreads" != xno ; then
146	ACX_PTHREAD(enable_pthreads=yes,
147		       if test x"$enable_pthreads" = xyes ; then
148		       		AC_MSG_ERROR([Cannot find the pthread library.])
149		       else
150		       		enable_pthreads=no
151		       fi
152	)
153fi
154
155AC_MSG_CHECKING(whether to use Posix Threads)
156if test x"$enable_pthreads" != xno ; then
157	CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
158	LDFLAGS="$PTHREAD_LDFLAGS $LDFLAGS"
159	LIBS="$PTHREAD_LIBS $LIBS"
160	CC="$PTHREAD_CC"
161	AC_DEFINE([USE_PTHREADS],1,[Build with support for Posix threading])
162	AC_MSG_RESULT([yes])
163else
164	AC_MSG_RESULT([no])
165fi
166
167dnl #########################################################################
168dnl Check if Posix getaddrinfo() is available.  It is also possible to use
169dnl the version from the lwres library distributed with BIND.
170dnl #########################################################################
171AC_ARG_ENABLE([emulate-getaddrinfo],
172              ACX_HELP_STRING([--enable-emulate-getaddrinfo],
173                             [enable getaddrinfo emulation (default=no)]),
174  	      ,
175  	      enable_emulate_getaddrinfo=no)
176AC_ARG_WITH(lwres,
177	    ACX_HELP_STRING([--with-lwres=DIR],
178			   [use lwres library for getaddrinfo (default=no)]),
179	    ,
180	    with_lwres=no)
181
182dnl ## enable force to test getaddrinfo.c
183if test x$enable_emulate_getaddrinfo = xforce ; then
184	enable_emulate_getaddrinfo=yes
185	have_getaddrinfo=no
186else
187
188have_getaddrinfo=no
189if test x$with_lwres != xno ; then
190	if test "$with_lwres" != yes ; then
191                   CPPFLAGS="-I${with_lwres}/include $CPPFLAGS"
192                   LDFLAGS="-L${with_lwres}/lib $LDFLAGS"
193	fi
194        AC_CHECK_HEADERS(lwres/netdb.h, ,
195			[AC_MSG_ERROR([cannot find <lwres/netdb.h>])])
196	AC_CHECK_LIB(lwres, lwres_getaddrinfo, ,
197	             [AC_MSG_ERROR([cannot find the lwres library])],
198	             -lnsl -lpthread)
199	have_getaddrinfo=yes
200fi
201
202if test x$have_getaddrinfo != xyes ; then
203	AC_SEARCH_LIBS(getaddrinfo, socket resolv bind nsl c_r cr, have_getaddrinfo=yes)
204fi
205
206dnl # Special nonsense for systems that actually have getaddrinfo but
207dnl # redefine the name to something else, e.g. OSF
208if test x$have_getaddrinfo != xyes ; then
209	AC_MSG_CHECKING(if getaddrinfo is redefined in netdb.h)
210	AC_TRY_LINK([
211#		include <netdb.h>
212	], [
213  		struct addrinfo hints, *res;
214		int err;
215
216  		err = getaddrinfo ("host", "service", &hints, &res);
217	], [
218		have_getaddrinfo=yes
219		AC_MSG_RESULT(yes)
220	], [AC_MSG_RESULT(no)])
221fi
222
223fi
224
225if test x$have_getaddrinfo != xno ; then
226	if test x$enable_emulate_getaddrinfo != xno ; then
227		AC_MSG_ERROR([getaddrinfo found but emulate-getaddrinfo was enabled])
228	fi
229	AC_DEFINE(HAVE_GETADDRINFO, 1,
230		  [Does system provide RFC 2553/Posix getaddrinfo?])
231else
232	if test x$enable_emulate_getaddrinfo != xyes ; then
233		AC_MSG_ERROR([getaddrinfo not found: try --with-lwres or --enable-emulate-getaddrinfo])
234	fi
235	AC_LIBOBJ(getaddrinfo)
236fi
237
238if test x"$enable_emulate_getaddrinfo" != xno ; then
239    have_resolver=no
240
241  dnl  Try for getipnodebyname
242    AC_SEARCH_LIBS(getipnodebyname, resolv bind nsl c_r cr, have_resolver=yes)
243    if test x"$have_resolver" != xno ; then
244	 AC_DEFINE(HAVE_GETIPNODEBYNAME, 1,
245		   [Set when getipnodebyname is available])
246    fi
247
248  dnl  Try for gethostbyname_r
249    if test x"$have_resolver" = xno ; then
250	AC_SEARCH_LIBS(gethostbyname_r, resolv bind nsl c_r cr,
251		       [have_resolver=yes
252			ACX_WHICH_GETHOSTBYNAME_R])
253    fi
254
255  dnl  Try for gethostbyname
256    if test x"$have_resolver" = xno ; then
257	if test x"$enable_pthreads" != xno ; then
258	    AC_MSG_WARN([using threads but cannot find gethostbyname_r or getipnodebyname])
259	fi
260	AC_SEARCH_LIBS(gethostbyname, resolv bind nsl, ,
261		       [AC_MSG_ERROR([cannot find gethostbyname])])
262    fi
263    AC_LIBOBJ(gethostbyname)
264
265    AC_CACHE_CHECK([for IPv6 support], acx_cv_sys_use_ipv6, [
266	    AC_TRY_COMPILE([
267#		include <netinet/in.h>
268	    ], [
269		struct sockaddr_in6 sin6;
270		void *p;
271
272		sin6.sin6_family = AF_INET6;
273		sin6.sin6_port = 587;
274		p = &sin6.sin6_addr;
275	    ], [acx_cv_sys_use_ipv6=yes], [acx_cv_sys_use_ipv6=no])
276    ])
277    if test x"$acx_cv_sys_use_ipv6" != xno ; then
278	    AC_DEFINE(USE_IPV6,1,[Enable IPv6 support])
279    fi
280fi
281
282dnl #########################################################################
283dnl Check if using OpenSSL
284dnl #########################################################################
285AC_ARG_WITH(openssl,
286	    ACX_HELP_STRING([--with-openssl=DIR],
287			   [build features depending on OpenSSL (default=auto)]),
288	    ,
289	    with_openssl=auto)
290if test x$with_openssl != xno ; then
291	if test "$with_openssl" != yes -a "$with_openssl" != auto ; then
292                   CPPFLAGS="-I${with_openssl}/include $CPPFLAGS"
293                   LDFLAGS="-L${with_openssl}/lib $LDFLAGS"
294                   with_openssl=yes
295	fi
296	dnl *** with_openssl is either "yes" or "auto"
297	AC_CHECK_HEADER(openssl/ssl.h,,
298		        if test x"$with_openssl" = xyes ; then
299	                	AC_MSG_ERROR([cannot find the ssl headers])
300	                else
301		       		with_openssl=no
302	                fi
303	)
304fi
305if test x$with_openssl != xno ; then
306	AC_CHECK_LIB(ssl, SSL_new, [
307				with_openssl=yes
308				LIBS="-lssl -lcrypto $LIBS"
309		     ], [
310		     if test x"$with_openssl" = xyes ; then
311				AC_MSG_ERROR([cannot find the ssl library])
312		     else
313				with_openssl=no
314		     fi],
315		     -lcrypto
316	)
317fi
318
319dnl #########################################################################
320dnl Set OpenSSL dependencies for RPM - this sucks, there must be a better way.
321dnl #########################################################################
322
323RPM_REQUIRES=""
324RPM_BUILDREQUIRES=""
325RPM_OPENSSL=""
326RPM_OPENSSLDEVEL=""
327if test x$with_openssl != xno ; then
328	RPM_REQUIRES="Requires:"
329	RPM_BUILDREQUIRES="BuildRequires:"
330	RPM_OPENSSL="openssl >= %{openssl}"
331	RPM_OPENSSLDEVEL="openssl-devel >= %{openssl}"
332fi
333AC_SUBST(RPM_REQUIRES)
334AC_SUBST(RPM_BUILDREQUIRES)
335AC_SUBST(RPM_OPENSSL)
336AC_SUBST(RPM_OPENSSLDEVEL)
337
338dnl #########################################################################
339dnl Check if using SMTP AUTH using SASL
340dnl #########################################################################
341
342dnl Force use of SMTP AUTH for now.  Eventually it is hoped that
343dnl the SASL API will move into a library of its own.
344
345AC_DEFINE(USE_SASL,1,[Build with support for SMTP AUTH using SASL])
346SASL_PLUGINS="login plain crammd5"
347DIST_PLUGINS="login plain crammd5"
348
349dnl Set up the authentication plugin directory
350
351AC_ARG_WITH(auth-plugin-dir,
352	    ACX_HELP_STRING([--with-auth-plugin-dir=DIR],
353			   [directory for SASL plugins (default=LIBDIR/esmtp-plugins)]),
354	    plugindir=$withval)
355if test x$plugindir = x ; then
356	plugindir=$libdir/esmtp-plugins
357fi
358AC_SUBST(plugindir)
359ACX_DEFINE_DIR([AUTHPLUGINDIR], $plugindir, [location of authentication plugins.])
360
361have_libcrypto=no
362
363dnl Check for md5 functions in OpenSSL.  If these are present, use them
364dnl in preference to the supplied md5.[ch] when building the CRAM-MD5
365dnl SASL plugin.  The assumption is that the OpenSSL functions are optimised
366dnl and actively maintained.
367
368use_local_md5_c=yes
369CRAMMD5_LIBOBJS=""
370if test x$with_openssl != xno ; then
371	AC_CHECK_HEADER(openssl/md5.h, [
372		AC_CHECK_LIB(crypto, MD5_Init, [
373			     have_libcrypto=yes
374			     use_local_md5_c=no
375			     CRAMMD5_LIBS="-lcrypto"
376			     AC_SUBST(CRAMMD5_LIBS)
377		])
378	])
379fi
380if test x$use_local_md5_c != xno ; then
381	CRAMMD5_LIBOBJS="$CRAMMD5_LIBOBJS md5.o"
382fi
383CRAMMD5_LTLIBOBJS=`echo "$CRAMMD5_LIBOBJS" | sed ['s/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/']`
384AC_SUBST(CRAMMD5_LTLIBOBJS)
385
386dnl Check if enabling experimental NTLM authentication.  This requires that
387dnl OpenSSL is available and that it is explicitly requested.
388
389AC_ARG_ENABLE([ntlm],
390              ACX_HELP_STRING([--enable-ntlm],[experimental support for NTLM authentication  (default=no)]),
391  	      ,
392  	      enable_ntlm=$enable_all)
393DIST_PLUGINS="$DIST_PLUGINS ntlm"
394
395AC_MSG_CHECKING(whether to enable NTLM authentication)
396if test x$with_openssl != xno -a x"$enable_ntlm" = xyes ; then
397	AC_MSG_RESULT([yes])
398	AC_CHECK_HEADER(openssl/md4.h, [
399		AC_CHECK_LIB(crypto, MD4_Init, [
400			     have_libcrypto=yes
401			     SASL_PLUGINS="$SASL_PLUGINS ntlm"
402			     NTLM_LIBS="-lcrypto"
403			     AC_SUBST(NTLM_LIBS)
404		])
405	])
406else
407	AC_MSG_RESULT([no])
408fi
409
410if test x$have_libcrypto != xno ; then
411   AC_DEFINE(HAVE_LIBCRYPTO,1,[Set when -lcrypto from OpenSSL is available])
412fi
413
414dnl #########################################################################
415dnl Check if enabling STARTTLS
416dnl #########################################################################
417
418AC_MSG_CHECKING(whether to enable STARTTLS)
419if test x"$with_openssl" != xno ; then
420	AC_MSG_RESULT([yes])
421	AC_DEFINE(USE_TLS,1,[Build with support for SMTP STARTTLS extension])
422else
423	AC_MSG_RESULT([no])
424fi
425
426dnl #########################################################################
427dnl Enable CHUNKING
428dnl #########################################################################
429
430AC_ARG_ENABLE([chunking],
431              ACX_HELP_STRING([--disable-chunking],[support for CHUNKING  (default=yes)]),
432  	      ,
433  	      enable_chunking=yes)
434
435AC_MSG_CHECKING(whether to enable CHUNKING)
436if test x"$enable_chunking" = xyes ; then
437	AC_MSG_RESULT([yes])
438	AC_DEFINE(USE_CHUNKING,1,[Enable experimental support for SMTP CHUNKING extension])
439else
440	AC_MSG_RESULT([no])
441fi
442
443dnl #########################################################################
444dnl Enable ETRN (experimental)
445dnl #########################################################################
446
447AC_ARG_ENABLE([etrn],
448              ACX_HELP_STRING([--enable-etrn],[experimental support for ETRN  (default=no)]),
449  	      ,
450  	      enable_etrn=$enable_all)
451
452AC_MSG_CHECKING(whether to enable ETRN)
453if test x"$enable_etrn" = xyes ; then
454	AC_MSG_RESULT([yes])
455	AC_DEFINE(USE_ETRN,1,[Enable experimental support for SMTP ETRN extension])
456else
457	AC_MSG_RESULT([no])
458fi
459
460dnl #########################################################################
461dnl Enable XUSR
462dnl #########################################################################
463
464AC_ARG_ENABLE([xusr],
465              ACX_HELP_STRING([--disable-xusr],
466                             [support for sendmail XUSR extension (default=yes)]),
467  	      ,
468  	      enable_xusr=yes)
469
470AC_MSG_CHECKING(whether to enable sendmail XUSR)
471if test x"$enable_xusr" = xyes ; then
472	AC_MSG_RESULT([yes])
473	AC_DEFINE(USE_XUSR,1,[Enable support for sendmail XUSR extension])
474else
475	AC_MSG_RESULT([no])
476fi
477
478dnl #########################################################################
479dnl Enable non-standard AUTH= syntax in EHLO response
480dnl #########################################################################
481
482AC_ARG_ENABLE([nsauth],
483              ACX_HELP_STRING([--disable-nsauth],
484                              [support non-standard EHLO AUTH= response (default=yes)]),
485  	      ,
486  	      enable_nsauth=yes)
487
488AC_MSG_CHECKING([whether to enable non-standard EHLO AUTH= response])
489if test x"$enable_nsauth" = xyes ; then
490	AC_MSG_RESULT([yes])
491	AC_DEFINE(AUTH_ID_HACK,1,[support non-standard EHLO AUTH= response])
492else
493	AC_MSG_RESULT([no])
494fi
495
496dnl #########################################################################
497dnl Enable debugging code, e.g. assert()
498dnl #########################################################################
499
500AC_ARG_ENABLE([debug],
501              ACX_HELP_STRING([--enable-debug],
502                             [enable use of debugging code (default=no)]),
503  	      ,
504  	      enable_debug=no)
505
506if test x"$enable_debug" != xno ; then
507  AC_DEFINE(DEBUG,1, [Enable additional debugging code])
508else
509  AC_DEFINE(NDEBUG,1, [Disable assertions])
510fi
511
512dnl #########################################################################
513dnl Checks for header files.
514dnl #########################################################################
515
516AC_HEADER_STDC
517AC_CHECK_HEADERS(sys/ioctl.h unistd.h)
518
519dnl #########################################################################
520dnl Checks for typedefs, structures, and compiler characteristics.
521dnl #########################################################################
522
523AC_C_CONST
524AC_C_INLINE
525AC_C_BIGENDIAN
526AC_STRUCT_TM
527AC_HEADER_TIME
528AC_STRUCT_TIMEZONE
529
530dnl #########################################################################
531dnl Check for types
532dnl #########################################################################
533AC_CHECK_SIZEOF(unsigned short)
534AC_CHECK_SIZEOF(unsigned int)
535AC_CHECK_SIZEOF(unsigned long)
536
537dnl #########################################################################
538dnl Checks for library functions.
539dnl #########################################################################
540
541AC_REPLACE_FUNCS(strdup strcasecmp strncasecmp memrchr)
542AC_CHECK_FUNCS(strtol uname gethostname gettimeofday)
543AC_SEARCH_LIBS(socket, socket)
544
545dnl Conditional check for functions needed in threaded code
546
547if test x"$enable_pthreads" != xno ; then
548	AC_SEARCH_LIBS(localtime_r, c_r cr,
549		       AC_DEFINE(HAVE_LOCALTIME_R,1,[Set when localtime_r is available]),
550		       AC_MSG_ERROR([Cannot find localtime_r.]))
551	AC_CHECK_FUNCS(strerror_r,[
552	    AC_CACHE_CHECK([for working strerror_r],
553	                   acx_cv_sys_working_strerror_r, [
554		AC_TRY_COMPILE([
555#			define _SVID_SOURCE	1
556#			include <string.h>
557		], [
558		    	char *s;
559
560		    	s = strerror_r (0, (char *) 0, 0);
561		],
562		[acx_cv_sys_working_strerror_r=yes],
563		[acx_cv_working_strerror_r=no])
564	    ])
565	    if test x$acx_cv_sys_working_strerror_r = xyes ; then
566	    	AC_DEFINE(HAVE_WORKING_STRERROR_R,1,[strerror_r works!])
567	    fi
568	])
569else
570	AC_CHECK_FUNCS(localtime strerror)
571fi
572
573dnl #########################################################################
574dnl Check that snprintf works correctly.
575dnl #########################################################################
576ACX_SNPRINTF(,[AC_LIBOBJ(snprintf)])
577
578dnl #########################################################################
579dnl Make substitutions
580dnl #########################################################################
581
582AC_SUBST(SASL_PLUGINS)
583AC_SUBST(DIST_PLUGINS)
584AC_SUBST(LIBTOOL_DEPS)
585AC_SUBST(LIBS)
586AC_SUBST(CFLAGS)
587AC_SUBST(EXTRA_CFLAGS)
588AC_SUBST(CC)
589AC_SUBST(RANLIB)
590AC_SUBST(subdirs)
591
592dnl ## LTLIBOBJS=`echo "$LIBOBJS" | sed ['s/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/']`
593AC_SUBST(LTLIBOBJS)
594LTALLOCA=`echo "$ALLOCA" | sed ['s/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/']`
595AC_SUBST(LTALLOCA)
596
597AC_OUTPUT([libesmtp-config libesmtp.spec
598	   Makefile login/Makefile plain/Makefile crammd5/Makefile ntlm/Makefile])
599
600dnl #########################################################################
601dnl Feature synopsis
602dnl #########################################################################
603
604echo
605echo '*************************'
606echo '*** libESMTP features ***'
607echo '*************************'
608d=`eval echo $plugindir`
609ACX_FEATURE([with],[auth-plugin-dir],[`eval echo $d`])
610ACX_FEATURE([with],[lwres])
611ACX_FEATURE([with],[openssl])
612ACX_FEATURE([enable],[pthreads])
613ACX_FEATURE([enable],[etrn])
614ACX_FEATURE([enable],[ntlm])
615ACX_FEATURE([enable],[chunking])
616ACX_FEATURE([enable],[xusr])
617ACX_FEATURE([enable],[nsauth])
618ACX_FEATURE([enable],[debug])
619
620