2 dnl configure.in -- autoconf template for nmh
8 AC_CONFIG_HEADER(config.h)
10 dnl What version of nmh are we building?
11 VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION`
12 echo "configuring for nmh-$VERSION"
15 dnl -------------------------
16 dnl CHECK COMMAND LINE OPTION
17 dnl -------------------------
18 dnl What method of posting should post use?
21 [ --with-mts=MTS specify the mail transport agent])
23 if test x$with_mts = xsmtp; then
25 MTSLIB="mts/smtp/libsmtp.a"
27 elif test x$with_mts = xsendmail; then
29 MTSLIB="mts/sendmail/libsend.a"
33 MTSLIB="mts/smtp/libsmtp.a"
40 dnl What should be the default editor?
43 [ --with-editor=EDITOR specify the default editor])
45 if test -n "$with_editor"; then
46 editorpath="$with_editor"
49 dnl What should be the default pager?
52 [ --with-pager=PAGER specify the default pager])
54 if test -n "$with_pager"; then
55 pagerpath="$with_pager"
58 dnl Do you want mhe support?
59 undefine([nmh-mhe])dnl
60 AC_ARG_ENABLE(nmh-mhe,
61 [ --enable-nmh-mhe enable mhe support (DEFAULT)])
63 dnl mhe support is on by default, so define it unless
64 dnl explicitly disabled.
65 if test x$enable_nmh_mhe != xno; then
69 dnl Do you want client-side support for pop
70 undefine([nmh-pop])dnl
71 AC_ARG_ENABLE(nmh-pop,
72 [ --enable-nmh-pop enable client-side support for pop])
73 if test x$enable_nmh_pop = xyes; then
76 POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d'
78 POPSED='/^%nmhbeginpop%/,/^%nmhendpop%/d'
83 dnl Do you want client-side support for kpop
85 [ --with-krb4=PREFIX specify location of Kerberos V4 for kpop support])
86 if test x$with_krb4 != x -a x$with_krb4 != xno; then
88 AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl
91 dnl Do you want support for hesiod
93 [ --with-hesiod=PREFIX specify location of Hesiod])
94 if test x$with_hesiod != x -a x$with_hesiod != xno; then
98 dnl Do you want to debug nmh?
99 undefine([nmh-debug])dnl
100 AC_ARG_ENABLE(nmh-debug,
101 [ --enable-nmh-debug enable nmh code debugging])
103 dnl ----------------------------------------------------
104 dnl Default location is /usr/local/nmh/{bin,etc,lib,man}
105 dnl ----------------------------------------------------
106 AC_PREFIX_DEFAULT(/usr/local/nmh)
108 dnl ------------------
109 dnl CHECK THE COMPILER
110 dnl ------------------
111 dnl We want these before the checks,
112 dnl so the checks can modify their values.
113 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
114 if test x$enable_nmh_debug = xyes; then
115 test -z "$LDFLAGS" && LDFLAGS=-g
120 dnl if the user hasn't specified CFLAGS, then
121 dnl if compiler is gcc, then
122 dnl use -O2 and some warning flags
124 if test -n "$auto_cflags"; then
125 if test x$enable_nmh_debug = xyes; then
126 if test -n "$GCC"; then
127 test -z "$CFLAGS" && CFLAGS="-Wall -g" || CFLAGS="$CFLAGS -Wall -g"
129 test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
132 test -z "$LDFLAGS" && LDFLAGS=-s
133 if test -n "$GCC"; then
134 test -z "$CFLAGS" && CFLAGS=-O2 || CFLAGS="$CFLAGS -O2"
136 test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O"
141 AC_C_CONST dnl Does compiler support `const'.
143 dnl ------------------
144 dnl CHECK FOR PROGRAMS
145 dnl ------------------
146 AC_PROG_MAKE_SET dnl Does make define $MAKE
147 AC_PROG_INSTALL dnl Check for BSD compatible `install'
148 AC_PROG_RANLIB dnl Check for `ranlib'
149 AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
150 AC_PROG_LEX dnl Check for lex/flex
152 dnl Check for lorder and tsort commands
153 AC_CHECK_PROG(LORDER, lorder, lorder, no)dnl
154 AC_CHECK_PROG(TSORT, tsort, tsort, no)dnl
156 dnl If either doesn't exist, replace them with echo and cat
157 if test x$ac_cv_prog_LORDER != xlorder -o x$ac_cv_prog_TSORT != xtsort; then
164 dnl Look for `sendmail'
165 pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
166 AC_PATH_PROG(sendmailpath, sendmail, no, [$pathtmp])
169 pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
170 AC_PATH_PROG(morepath, more, no, [$pathtmp])
172 dnl If pager is not specified yet,
173 dnl then use `more' as the default.
174 if test -z "$pagerpath"; then
175 pagerpath="$morepath"
177 AC_SUBST(pagerpath)dnl
180 pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
181 AC_PATH_PROG(vipath, vi, no, [$pathtmp])
183 dnl If editor is not specified yet,
184 dnl then use `vi' as the default.
185 if test -z "$editorpath"; then
188 AC_SUBST(editorpath)dnl
190 dnl Check for broken vi
191 AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug,
192 [if echo 'r /nonexist-file
193 q' | ex > /dev/null 2>&1
200 if test "$nmh_cv_attvibug" = yes; then
207 AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool,
208 [for mailspool in /var/mail dnl
211 /dev/null; dnl Just in case we fall through
213 test -d $mailspool && break
215 nmh_cv_mailspool=$mailspool
217 mailspool=$nmh_cv_mailspool
218 AC_SUBST(mailspool)dnl
220 dnl ------------------
221 dnl CHECK HEADER FILES
222 dnl ------------------
228 AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.h \
229 limits.h crypt.h termcap.h termio.h termios.h locale.h \
230 sys/param.h sys/time.h sys/utsname.h arpa/inet.h \
233 AC_CACHE_CHECK(POSIX termios, nmh_cv_sys_posix_termios,
234 [AC_TRY_LINK([#include <sys/types.h>
236 #include <termios.h>],
237 [/* SunOS 4.0.3 has termios.h but not the library calls. */
239 nmh_cv_sys_posix_termios=yes, nmh_cv_sys_posix_termios=no)])
241 if test $nmh_cv_sys_posix_termios = yes; then
242 AC_CACHE_CHECK(TIOCGWINSZ in termios.h,
243 nmh_cv_header_termios_h_tiocgwinsz,
244 [AC_TRY_LINK([#include <sys/types.h>
245 #include <termios.h>],
246 [int x = TIOCGWINSZ;],
247 nmh_cv_header_termios_h_tiocgwinsz=yes,
248 nmh_cv_header_termios_h_tiocgwinsz=no)])
250 nmh_cv_header_termios_h_tiocgwinsz=no
253 if test $nmh_cv_header_termios_h_tiocgwinsz = no; then
254 AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h,
255 nmh_cv_header_sys_ioctl_h_tiocgwinsz,
256 [AC_TRY_LINK([#include <sys/types.h>
257 #include <sys/ioctl.h>],
258 [int x = TIOCGWINSZ;],
259 nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,
260 nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
261 if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
262 AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
266 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM))
272 AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
273 sighold sigrelse writev lstat uname tzset killpg \
276 AC_REPLACE_FUNCS(snprintf strerror strdup)
278 dnl -------------------
279 dnl CHECK FOR LIBRARIES
280 dnl -------------------
281 dnl Checks for network libraries (nsl, socket)
284 dnl Check for bug in libraries such that ruserpass
285 dnl needs to be linked as _ruserpass.
288 termcap_curses_order="termcap curses ncurses"
289 for lib in $termcap_curses_order; do
290 AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
298 AC_CHECK_FUNC(dbm_open, ,
299 AC_CHECK_LIB(ndbm, dbm_open, ,
300 AC_CHECK_LIB(dbm, dbm_open)))
305 if test x$with_hesiod != x -a x$with_hesiod != xno; then
306 if test x$with_hesiod != xyes; then
307 HESIOD_INCLUDES="-I$with_hesiod/include"
308 HESIOD_LIBS="-L$with_hesiod/lib"
310 AC_CHECK_FUNC(res_send, ,
311 AC_CHECK_LIB(resolv, res_send))
312 AC_CHECK_LIB(hesiod, hes_resolve, [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"],
313 [AC_MSG_ERROR(Hesiod library not found)], $HESIOD_LIBS)
315 AC_SUBST(HESIOD_INCLUDES)dnl
316 AC_SUBST(HESIOD_LIBS)dnl
318 dnl ----------------------------------
319 dnl CHECK FOR KRB4 (Kerberos4 support)
320 dnl ----------------------------------
321 if test x$with_krb4 != x -a x$with_krb4 != xno; then
322 if test x$with_krb4 != xyes; then
323 KRB4_INCLUDES="-I$with_krb4/include"
324 if test -d "$with_krb4/include/kerberosIV"; then
325 KRB4_INCLUDES="$KRB4_INCLUDES -I$with_krb4/include/kerberosIV"
327 KRB4_LIBS="-L$with_krb4/lib"
328 elif test -d /usr/include/kerberosIV; then
329 KRB4_INCLUDES="-I/usr/include/kerberosIV"
331 AC_CHECK_LIB(krb4, krb_rd_req,
332 [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err"],
333 [AC_CHECK_LIB(krb, krb_rd_req,
334 [KRB4_LIBS="-lkrb -ldes"],
335 [AC_MSG_ERROR(Kerberos 4 libraries not found)],
337 $KRB4_LIBS -ldes425 -lkrb5 -lcrypto -lcom_err)
339 AC_SUBST(KRB4_INCLUDES)dnl
340 AC_SUBST(KRB4_LIBS)dnl
342 dnl ---------------------
343 dnl CHECK TERMCAP LIBRARY
344 dnl ---------------------
346 dnl Add the termcap library, so that the following configure
347 dnl tests will find it when it tries to link test programs.
348 nmh_save_LIBS="$LIBS"
349 LIBS="$TERMLIB $LIBS"
351 dnl Checks for external variable ospeed in the termcap library.
352 AC_CACHE_CHECK(if an include file defines ospeed,
353 nmh_cv_decl_ospeed_include_defines,
355 [#include <sys/types.h>
361 #endif], [ospeed = 0;],
362 nmh_cv_decl_ospeed_include_defines=yes,
363 nmh_cv_decl_ospeed_include_defines=no)])
365 if test $nmh_cv_decl_ospeed_include_defines = no; then
366 AC_CACHE_CHECK(if you must define ospeed,
367 nmh_cv_decl_ospeed_must_define,
368 [AC_TRY_LINK( ,[extern short ospeed; ospeed = 0;],
369 nmh_cv_decl_ospeed_must_define=yes,
370 nmh_cv_decl_ospeed_must_define=no)])
373 if test $nmh_cv_decl_ospeed_include_defines = yes; then
374 AC_DEFINE(HAVE_OSPEED)
375 elif test $nmh_cv_decl_ospeed_must_define = yes; then
376 AC_DEFINE(HAVE_OSPEED)
377 AC_DEFINE(MUST_DEFINE_OSPEED)
380 dnl dnl Checks if tgetent accepts NULL and will
381 dnl dnl allocate its own termcap buffer.
382 dnl AC_CACHE_CHECK(if tgetent accepts NULL,
383 dnl nmh_cv_func_tgetent_accepts_null,
384 dnl [AC_TRY_RUN([main(){int i = tgetent((char*)0,"vt100");exit(!i || i == -1);}],
385 dnl nmh_cv_func_tgetent_accepts_null=yes,
386 dnl nmh_cv_func_tgetent_accepts_null=no,
387 dnl nmh_cv_func_tgetent_accepts_null=no)])
388 dnl if test $nmh_cv_func_tgetent_accepts_null = yes; then
389 dnl AC_DEFINE(TGETENT_ACCEPTS_NULL)
392 dnl Now put the libraries back to what it was before we
393 dnl starting checking the termcap library.
394 LIBS="$nmh_save_LIBS"
406 dnl Check for sigset_t. Currently I'm looking in
407 dnl <sys/types.h> and <signal.h>. Others might need
409 AC_CACHE_CHECK(for sigset_t, nmh_cv_type_sigset_t,
411 [#include <sys/types.h>
412 #include <signal.h>], [sigset_t tempsigset;],
413 nmh_cv_type_sigset_t=yes, nmh_cv_type_sigset_t=no)])
414 if test $nmh_cv_type_sigset_t = no; then
415 AC_DEFINE(sigset_t, unsigned int)
423 AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff,
425 [#ifdef TIME_WITH_SYS_TIME
426 # include <sys/time.h>
429 # ifdef TM_IN_SYS_TIME
430 # include <sys/time.h>
435 [struct tm temptm; temptm.tm_gmtoff = 0;],
436 nmh_cv_struct_tm_gmtoff=yes, nmh_cv_struct_tm_gmtoff=no)])
437 if test $nmh_cv_struct_tm_gmtoff = yes; then
438 AC_DEFINE(HAVE_TM_GMTOFF)
444 dnl What style of signal do you have (POSIX, BSD, or SYSV)?
445 AC_MSG_CHECKING(what style of signals to use)
446 if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then
447 signals_style=POSIX_SIGNALS
448 AC_DEFINE(POSIX_SIGNALS)
449 AC_DEFINE(RELIABLE_SIGNALS)
450 elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then
451 signals_style=BSD_SIGNALS
452 AC_DEFINE(BSD_SIGNALS)
453 AC_DEFINE(RELIABLE_SIGNALS)
454 elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then
455 signals_style=SYSV_SIGNALS
456 AC_DEFINE(SYSV_SIGNALS)
458 signals_style=NO_SIGNAL_BLOCKING
459 AC_DEFINE(NO_SIGNAL_BLOCKING)
462 AC_MSG_RESULT($signals_style)
464 dnl Where is <signal.h> located? Needed as input for signames.awk
465 AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h,
466 [for SIGNAL_H in /usr/include/bsd/sys/signal.h dnl Next
467 /usr/include/asm/signal.h dnl Linux 1.3.0 and above
468 /usr/include/asm/signum.h dnl some versions of Linux/Alpha
469 /usr/include/linux/signal.h dnl Linux up to 1.2.11
470 /usr/include/sys/signal.h dnl Almost everybody else
471 /dev/null; dnl Just in case we fall through
473 test -f $SIGNAL_H && \
474 grep '#[ ]*define[ ][ ]*SIG[0-9A-Z]*[ ]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
477 nmh_cv_path_signal_h=$SIGNAL_H
479 SIGNAL_H=$nmh_cv_path_signal_h
480 AC_SUBST(SIGNAL_H)dnl
485 AC_OUTPUT(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
486 zotnet/Makefile zotnet/mts/Makefile zotnet/tws/Makefile \
487 zotnet/mf/Makefile zotnet/bboards/Makefile mts/Makefile \
488 mts/smtp/Makefile mts/sendmail/Makefile mts/mmdf/Makefile \
489 etc/Makefile man/Makefile, \
490 [test -z "$CONFIG_HEADERS" || echo > stamp-h])
492 eval "nmhbin=${bindir}"; eval "nmhbin2=${nmhbin}"
493 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}"
494 eval "nmhlib=${libdir}"; eval "nmhlib2=${nmhlib}"
495 eval "nmhman=${mandir}"
500 nmh version : ${VERSION}
502 compiler flags : ${CFLAGS}
503 linker flags : ${LDFLAGS}
504 source code location : ${srcdir}
505 binary install path : ${nmhbin2}
506 libary install path : ${nmhlib2}
507 config files install path : ${nmhsysconf2}
508 man page install path : ${nmhman}
509 transport system : ${MTS}
510 default editor : ${editorpath}
511 default pager : ${pagerpath}"