2 dnl Configure.in file for the Midnight Commander
5 AC_INIT(GNU Midnight Commander, 4.5.99a, mc-devel@gnome.org)
7 AC_CONFIG_SRCDIR(src/main.c)
8 AC_CONFIG_AUX_DIR(config)
9 AM_INIT_AUTOMAKE(mc, 4.5.99a)
11 AM_CONFIG_HEADER(config.h)
28 AC_CHECK_TOOL(AR, ar, ar)
30 dnl Only list browsers here that can be run in background (i.e. with `&')
31 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
34 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
35 dnl We use only part of the functionality of mmap, so on AIX,
36 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
39 [--with-mmap To force using the mmap call (AIX)],
42 ac_cv_func_mmap_fixed_mapped=yes
43 AC_MSG_NOTICE([forcing MMAP support])
46 ac_cv_func_mmap_fixed_mapped=no
47 AC_MSG_NOTICE([disabling MMAP support])
52 if test "x$ALL_LINGUAS" = x; then
53 ALL_LINGUAS="az ca cs da de el es es_ES eu fi fr hu it ja ko lv nl no pl pt pt_BR ro ru sk sl sv uk ta tr wa zh_CN zh_TW"
57 dnl Internationalization
60 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
61 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
65 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
67 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
70 dnl Enforce coding standards
72 if test "x$GCC" = xyes; then
73 CFLAGS="$CFLAGS -Wall"
79 AM_PATH_GLIB(1.2.0,,[AC_MSG_ERROR([Test for GLIB failed. MC requires GLIB.])])
80 LIBS="$LIBS $GLIB_LIBS"
83 dnl OS specific flags.
91 AC_DEFINE(_POSIX_SOURCE)
94 AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
95 AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
100 AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
101 malloc.h stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h \
102 sys/time.h sys/timeb.h sys/select.h sys/ioctl.h stropts.h])
110 dnl Missing structure components
116 dnl Check availability of some functions
119 AC_CHECK_FUNCS([strerror statfs strcasecmp strncasecmp strftime \
120 strdup memmove pwdauth truncate initgroups putenv \
121 memset memcpy tcsetattr tcgetattr cfgetospeed \
122 sigaction sigemptyset sigprocmask sigaddset \
123 sysconf setuid setreuid telldir seekdir])
126 dnl getpt is a GNU Extension (glibc 2.1.x)
128 AC_CHECK_FUNCS(getpt)
133 AC_CHECK_LIB(shadow,pw_encrypt,
135 AC_CHECK_HEADERS(shadow.h,,
136 [AC_CHECK_HEADERS(shadow/shadow.h,,
137 [shadow_header=no])])
138 if test $shadow_header = yes; then
139 AC_DEFINE(LINUX_SHADOW, 1,
140 [Define to use shadow passwords on Linux])
147 NEED_CRYPT_PROTOTYPE=yes
148 if test x$ac_cv_header_crypt_h = xyes; then
149 AC_TRY_WARNINGS([#include <crypt.h>], [char *p = crypt("xxx", "yyy");
152 NEED_CRYPT_PROTOTYPE=no])
154 if test x$ac_cv_header_unistd_h = xyes; then
155 AC_TRY_WARNINGS([#include <unistd.h>], [char *p = crypt("xxx", "yyy");
158 NEED_CRYPT_PROTOTYPE=no])
161 if test x$NEED_CRYPT_PROTOTYPE = xyes; then
162 AC_DEFINE(NEED_CRYPT_PROTOTYPE, 1,
163 [Define if function `crypt' needs a prototype])
167 dnl On SCO and some SVR4, crypt is on libcrypt.a
168 dnl grantpt in libpt.a
171 AC_CHECK_FUNCS(crypt, , [
172 AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
173 AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
176 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
178 dnl replacing lstat with statlstat on sco makes it more portable between
180 AC_CHECK_FUNCS(statlstat)
183 dnl If running under AIX, AC_AIX does not tell us that
185 AC_MSG_CHECKING([for AIX defines])
187 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
191 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
193 ], [AC_MSG_RESULT(no)])
196 dnl This is from GNU fileutils, check aclocal.m4 for more information
201 dnl Missing typedefs and replacements
205 AC_CHECK_TYPE(umode_t, int)
206 AC_CHECK_TYPE(off_t, long)
209 AC_CHECK_TYPE(nlink_t, unsigned int)
218 dnl These variables are only used when building the MC binary
224 textmode_x11_support="no"
225 AC_ARG_WITH(tm-x-support,
226 [--with-tm-x-support Try getting events from X Window System],
227 [if test x$withval = xyes; then
230 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
231 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
232 [Define to enable getting events from X Window System])
233 textmode_x11_support="yes"
238 dnl Network related functions
241 AC_CHECK_LIB(nsl, t_accept)
242 AC_CHECK_LIB(socket, socket)
245 AC_CHECK_FUNCS(socket, have_socket=yes)
246 if test $have_socket = no; then
247 # socket is not in the default libraries. See if it's in some other.
248 for lib in bsd socket inet; do
249 AC_CHECK_LIB($lib, socket, [
252 AC_DEFINE(HAVE_SOCKET)
257 have_gethostbyname=no
258 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
259 if test $have_gethostbyname = no; then
260 # gethostbyname is not in the default libraries. See if it's in some other.
261 for lib in bsd socket inet; do
262 AC_CHECK_LIB([$lib], [gethostbyname],
263 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
267 AC_CHECK_FUNCS(socketpair)
270 dnl Sequent wants getprocessstats
272 AC_CHECK_LIB(seq, get_process_stats, [
274 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
275 [Define if you have function `get_process_stats' and
276 have to use that instead of gettimeofday])])
281 dnl Install mcserv only if explicitly enabled
283 AC_ARG_ENABLE([mcserv-install],
284 [--enable-mcserv-install Install mcserv - Midnight Commander file server])
287 if test $have_socket = yes; then
288 NETFILES="\$(NETFILES)"
293 if test $use_vfs = yes
295 AC_MSG_NOTICE([enabling VFS code])
296 vfs_type="Midnight Commander Virtual File System"
299 screen_manager=unknown
302 mouse_lib="xterm only"
305 AC_ARG_WITH(gpm-mouse,
306 [--with-gpm-mouse[=base-dir] Compile with gpm mouse support (Linux only)],
307 [if test x$withval != xno
309 if test x$withval != xyes
311 LIBS="$LIBS -L$withval/lib"
312 CPPFLAGS="$CPPFLAGS -I$withval/include"
314 AC_DEFINE(HAVE_LIBGPM, 1,
315 [Define to enable gpm mouse support on Linux])
316 mouse_lib="GPM and xterm"
317 MCLIBS="-lgpm $MCLIBS"
319 [AC_CHECK_LIB(gpm, Gpm_Repeat,
320 [AC_DEFINE(HAVE_LIBGPM)
321 mouse_lib="GPM and xterm"
322 MCLIBS="-lgpm $MCLIBS"],
323 [AC_MSG_WARN([libgpm is missing or older than 0.18])],
330 [--with-ncurses[=base-dir] Compile with ncurses/locate base dir],
331 [if test x$withval = xyes
335 MCLIBS="$MCLIBS -L$withval/lib -lncurses"
336 CPPFLAGS="$CPPFLAGS -I$withval/include"
338 screen_manager="ncurses"
339 AC_DEFINE(USE_NCURSES)
344 [--with-hsc Compile with support for the HSC firewall],
345 [if test x$withval = xyes; then
346 AC_DEFINE(HSC_PROXY, 1,
347 [Define if you want to use the HSC firewall])
352 dnl Check for the -mandoc package
354 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
356 AC_MSG_CHECKING([for manual formatting macros])
357 AC_CACHE_VAL(ac_cv_mandoc, [
358 nroff -mandoc < /dev/null > /dev/null 2>&1
367 AC_MSG_RESULT([$MANDOC])
374 dnl Check if nroff accepts -Tlatin1 or -Tascii
377 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
378 AC_CACHE_VAL(ac_cv_nroff_tascii, [
379 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
382 ac_cv_nroff_tascii=" -Tlatin1"
384 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
387 ac_cv_nroff_tascii=" -Tascii"
389 ac_cv_nroff_tascii=""
393 if test "x$ac_cv_nroff_tascii" = x; then
396 AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
399 TROFFASCII="$ac_cv_nroff_tascii"
403 dnl Check for - option to file
405 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
406 if $HAVE_FILECMD; then
407 AC_MSG_CHECKING([for - option to file command])
408 AC_CACHE_VAL(ac_cv_filestdin, [[
409 cat > conftest.c <<\EOF
416 cat > conftest.sed <<\EOF
420 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
421 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
422 if test "x$filehyphen_1" = "x$filehyphen_2"; then
427 rm conftest.c conftest.sed
430 if test x$ac_cv_filestdin = xyes; then
431 AC_DEFINE(FILE_STDIN, 1,
432 [Define if the file command accepts - for stdin])
434 filestdin=$ac_cv_filestdin
435 AC_MSG_RESULT([$filestdin])
438 dnl Check for -L option to file
441 AC_MSG_CHECKING([for -L option to file command])
442 AC_CACHE_VAL(ac_cv_filel, [
443 file -L . > /dev/null 2>&1
451 if test x$ac_cv_filel = xyes; then
452 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
455 AC_MSG_RESULT([$filel])
458 AC_MSG_CHECKING([for subshell support])
459 AC_ARG_WITH(subshell,
460 [--with-subshell=optional To disable concurrent shell by default
461 --without-subshell To disable concurrent shell completely],
463 if test x$withval = xoptional
465 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
466 [Define to make subshell support optional])
467 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
468 [Define to enable subshell support])
471 if test x$withval = xyes
473 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
476 [dnl Default: provide the subshell support on non-ultrix machines
482 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
487 AC_MSG_RESULT([$result])
491 dnl Memory Allocation Debugger
495 [--with-mad Developers only: activates MAD (memory debugger)],
496 [if test x$withval = xyes; then
497 mem_debug="Janne's MAD library"
498 AC_DEFINE(HAVE_MAD, 1,
499 [Define to use Memory Allocation Debugger (MAD)])
500 AC_MSG_NOTICE([compiling with memory leak detector])
504 dnl Electric Fence - another memory debugger
507 [--with-efence Developers only: activates Electric Fence],
508 [if test x$withval = xyes; then
509 LIBS="$LIBS -lefence"
510 AC_MSG_NOTICE([compiling with Electric fence])
511 mem_debug="Electric Fence"
516 slang_use_system_installed_lib=false
517 AC_CHECK_LIB(slang,SLang_init_tty,
518 [AC_CHECK_HEADERS(slang.h)
519 if test x$ac_cv_header_slang_h = xyes
521 slang_use_system_installed_lib=true
522 slang_check_lib=false
524 AC_CHECK_HEADERS(slang/slang.h)
525 if test x$ac_cv_header_slang_slang_h = xyes
527 slang_use_system_installed_lib=true
528 slang_check_lib=false
533 AC_ARG_WITH(terminfo,
534 [--with-terminfo SLANG: Force usage of terminfo],[
535 if test x$withval = xyes; then
537 slang_check_lib=false
538 slang_use_system_installed_lib=false
543 [--with-termcap SLANG: Force usage of termcap],[
544 if test x$withval = xyes; then
546 slang_check_lib=false
547 slang_use_system_installed_lib=false
551 AC_ARG_WITH(included-slang,
552 [--with-included-slang SLANG: use the SLang library included here],[
553 if test x$withval = xyes; then
554 slang_use_system_installed_lib=false
560 [--with-slang Compile with the slang screen manager],[
561 if test x$withval = xyes; then
571 [--with-edit Enable internal editor],
572 [if test x$withval = xyes
578 [dnl Default: provide the internal editor
586 [--with-netrc Compile with ftp .netrc support],[
587 if test x$withval = xyes; then
588 AC_DEFINE(USE_NETRC, 1,
589 [Define to use .netrc for FTP connections])
590 AC_MSG_NOTICE([ftpfs will use .netrc])
596 if test $use_vfs = yes; then
597 AC_ARG_WITH(ext2undel,
598 [--with-ext2undel Compile with ext2 undelete code],[
599 if test x$withval != xno;
601 if test x$withval != xyes
603 LIBS="$LIBS -L$withval/lib"
604 CPPFLAGS="$CPPFLAGS -I$withval/include"
609 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
617 AC_MSG_NOTICE([checking location of ncurses.h file])
619 AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
620 AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
621 AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
622 AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
624 AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
626 AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
630 dnl Ncurses specific checks
632 dnl If ncurses exports the ESCDELAY variable it should be set to 0
633 dnl or you'll have to press Esc three times to dismiss a dialog box.
635 if test -n "$ncurses_version"; then
638 AC_CACHE_CHECK([for ESCDELAY variable],
639 [mc_cv_ncurses_escdelay],
640 [AC_TRY_COMPILE([], [
647 [mc_cv_ncurses_escdelay=yes],
648 [mc_cv_ncurses_escdelay=no]
651 if test "$mc_cv_ncurses_escdelay" = yes; then
652 AC_DEFINE(HAVE_ESCDELAY, 1,
653 [Define if ncurses has ESCDELAY variable])
656 AC_CHECK_FUNCS(resizeterm)
660 if test "x$screen_manager" = "xunknown"; then
665 dnl The variables used for expanding the auto saver.
672 cons_saver="cons.saver"
676 dnl On Linux, check for PAM authentication available
678 AC_CHECK_LIB(pam, pam_start, [
679 AC_DEFINE(HAVE_PAM, 1,
680 [Define if PAM (Pluggable Authentication Modules) is available])
689 dnl User visible support for charset conversion.
691 AC_ARG_ENABLE([charset],
692 [--enable-charset Support for charset selection and conversion])
694 if test "x$enable_charset" = xyes; then
695 if test -z "$am_cv_func_iconv"; then
696 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
698 AC_DEFINE(HAVE_CHARSET, 1,
699 [Define to enable charset selection and conversion])
706 dnl This code should be moved to the ac_WITH_SLANG
708 dnl We check for the existance of setupterm on curses library
709 dnl this is required to load certain definitions on some termcaps
710 dnl editions (AIX and OSF/1 I seem to remember).
711 dnl Note that we avoid using setupterm
712 case $screen_manager in
718 AC_CHECK_LIB(curses,setupterm,
722 if (key_end == parm_insert_line)
726 [MCLIBS="$MCLIBS -lcurses"
727 AC_DEFINE(USE_SETUPTERM, 1,
728 [Define to use function `setupterm'
729 from `curses' library in S-Lang])])
735 LIBS="$LIBS $posix_libs"
742 if test "x$SAMBAFILES" != x; then
743 AC_CONFIG_SUBDIRS([vfs/samba])
746 AM_CONDITIONAL(USE_EDIT, [test -n "$LIBEDIT_A"])
747 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
748 AM_CONDITIONAL(USE_VFS_NET, [test -n "$NETFILES"])
749 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$undelfs_o"])
750 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$SAMBAFILES"])
751 AM_CONDITIONAL(MCSERV_INSTALL,
752 [test "x$enable_mcserv_install$mcserv" = xyesmcserv])
753 AM_CONDITIONAL(INCLUDED_SLANG,
754 [test "x$slang_use_system_installed_lib" = xfalse])
755 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
756 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
758 AH_BOTTOM([#include <extraconf.h>])
789 doc/mc.1 doc/mcedit.1 doc/mcserv.8
791 intl/Makefile po/Makefile.in
794 AC_CONFIG_COMMANDS(potfiles,
795 [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
799 case $screen_manager in
801 screen_manager="${screen_manager}${slang_term}" ;;
807 Source code location: ${srcdir}
809 Compiler flags: ${CFLAGS}
810 File system: ${vfs_type}
812 Screen manager: ${screen_manager}
813 Install console saver: ${install_saver}
814 Mouse support: ${mouse_lib}
815 X11 events support: ${textmode_x11_support}
816 Debugger code: ${mem_debug}
817 With subshell support: ${subshell}
818 Internal editor: ${EDIT_msg}
819 Install path: ${prefix}/bin, ${prefix}/lib/mc