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 be bg 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 strftime \
120 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 shadow/shadow.h],
136 [shadow_header=yes; break])
137 if test -n "$shadow_header"; then
138 AC_DEFINE(LINUX_SHADOW, 1,
139 [Define to use shadow passwords on Linux])
146 NEED_CRYPT_PROTOTYPE=yes
147 if test x$ac_cv_header_crypt_h = xyes; then
148 AC_TRY_WARNINGS([#include <crypt.h>], [char *p = crypt("xxx", "yyy");
151 NEED_CRYPT_PROTOTYPE=no])
153 if test x$ac_cv_header_unistd_h = xyes; then
154 AC_TRY_WARNINGS([#include <unistd.h>], [char *p = crypt("xxx", "yyy");
157 NEED_CRYPT_PROTOTYPE=no])
160 if test x$NEED_CRYPT_PROTOTYPE = xyes; then
161 AC_DEFINE(NEED_CRYPT_PROTOTYPE, 1,
162 [Define if function `crypt' needs a prototype])
166 dnl On SCO and some SVR4, crypt is on libcrypt.a
167 dnl grantpt in libpt.a
170 AC_CHECK_FUNCS(crypt, , [
171 AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
172 AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
175 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
177 dnl replacing lstat with statlstat on sco makes it more portable between
179 AC_CHECK_FUNCS(statlstat)
182 dnl If running under AIX, AC_AIX does not tell us that
184 AC_MSG_CHECKING([for AIX defines])
186 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
190 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
192 ], [AC_MSG_RESULT(no)])
195 dnl This is from GNU fileutils, check aclocal.m4 for more information
200 dnl Missing typedefs and replacements
204 AC_CHECK_TYPE(umode_t, int)
205 AC_CHECK_TYPE(off_t, long)
208 AC_CHECK_TYPE(nlink_t, unsigned int)
217 dnl These variables are only used when building the MC binary
223 textmode_x11_support="no"
224 AC_ARG_WITH(tm-x-support,
225 [--with-tm-x-support Try getting events from X Window System],
226 [if test x$withval = xyes; then
229 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
230 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
231 [Define to enable getting events from X Window System])
232 textmode_x11_support="yes"
237 dnl Network related functions
240 AC_CHECK_LIB(nsl, t_accept)
241 AC_CHECK_LIB(socket, socket)
244 AC_CHECK_FUNCS(socket, have_socket=yes)
245 if test $have_socket = no; then
246 # socket is not in the default libraries. See if it's in some other.
247 for lib in bsd socket inet; do
248 AC_CHECK_LIB($lib, socket, [
251 AC_DEFINE(HAVE_SOCKET)
256 have_gethostbyname=no
257 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
258 if test $have_gethostbyname = no; then
259 # gethostbyname is not in the default libraries. See if it's in some other.
260 for lib in bsd socket inet; do
261 AC_CHECK_LIB([$lib], [gethostbyname],
262 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
266 AC_CHECK_FUNCS(socketpair)
269 dnl Sequent wants getprocessstats
271 AC_CHECK_LIB(seq, get_process_stats, [
273 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
274 [Define if you have function `get_process_stats' and
275 have to use that instead of gettimeofday])])
280 dnl Install mcserv only if explicitly enabled
282 AC_ARG_ENABLE([mcserv-install],
283 [--enable-mcserv-install Install mcserv - Midnight Commander file server])
286 if test $have_socket = yes; then
287 NETFILES="\$(NETFILES)"
292 if test $use_vfs = yes
294 AC_MSG_NOTICE([enabling VFS code])
295 vfs_type="Midnight Commander Virtual File System"
298 dnl This should be unadorned "slang" or "ncurses"
301 dnl Screen manager name (for the output only)
302 screen_manager=unknown
304 mouse_lib="xterm only"
307 AC_ARG_WITH(gpm-mouse,
308 [--with-gpm-mouse[=base-dir] Compile with gpm mouse support (Linux only)],
309 [if test x$withval != xno
311 if test x$withval != xyes
313 LIBS="$LIBS -L$withval/lib"
314 CPPFLAGS="$CPPFLAGS -I$withval/include"
316 AC_DEFINE(HAVE_LIBGPM, 1,
317 [Define to enable gpm mouse support on Linux])
318 mouse_lib="GPM and xterm"
319 MCLIBS="-lgpm $MCLIBS"
321 [AC_CHECK_LIB(gpm, Gpm_Repeat,
322 [AC_DEFINE(HAVE_LIBGPM)
323 mouse_lib="GPM and xterm"
324 MCLIBS="-lgpm $MCLIBS"],
325 [AC_MSG_WARN([libgpm is missing or older than 0.18])],
332 [--with-ncurses[=base-dir] Compile with ncurses/locate base dir],
333 [if test x$withval != xyes; then
334 MCLIBS="$MCLIBS -L$withval/lib"
335 CPPFLAGS="$CPPFLAGS -I$withval/include"
338 AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],
339 [ncurses_h_found=yes; break])
340 if test -z "$ncurses_h_found"; then
341 AC_MSG_ERROR([Could not find ncurses header])
344 dnl curses_version is specific to ncurses, it's not in old curses
345 AC_CHECK_LIB(ncurses, has_colors, [MCLIBS="$MCLIBS -lncurses"],
346 [AC_MSG_ERROR([Could not find ncurses library])])
348 screen_type="ncurses"
349 screen_manager="ncurses"
350 AC_DEFINE(USE_NCURSES, 1,
351 [Define to use ncurses for screen management])
355 [--with-hsc Compile with support for the HSC firewall],
356 [if test x$withval = xyes; then
357 AC_DEFINE(HSC_PROXY, 1,
358 [Define if you want to use the HSC firewall])
363 dnl Check for the -mandoc package
365 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
367 AC_MSG_CHECKING([for manual formatting macros])
368 AC_CACHE_VAL(ac_cv_mandoc, [
369 nroff -mandoc < /dev/null > /dev/null 2>&1
378 AC_MSG_RESULT([$MANDOC])
385 dnl Check if nroff accepts -Tlatin1 or -Tascii
388 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
389 AC_CACHE_VAL(ac_cv_nroff_tascii, [
390 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
393 ac_cv_nroff_tascii=" -Tlatin1"
395 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
398 ac_cv_nroff_tascii=" -Tascii"
400 ac_cv_nroff_tascii=""
404 if test "x$ac_cv_nroff_tascii" = x; then
407 AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
410 TROFFASCII="$ac_cv_nroff_tascii"
414 dnl Check for - option to file
416 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
417 if $HAVE_FILECMD; then
418 AC_MSG_CHECKING([for - option to file command])
419 AC_CACHE_VAL(ac_cv_filestdin, [[
420 cat > conftest.c <<\EOF
427 cat > conftest.sed <<\EOF
431 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
432 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
433 if test "x$filehyphen_1" = "x$filehyphen_2"; then
438 rm conftest.c conftest.sed
441 if test x$ac_cv_filestdin = xyes; then
442 AC_DEFINE(FILE_STDIN, 1,
443 [Define if the file command accepts - for stdin])
445 filestdin=$ac_cv_filestdin
446 AC_MSG_RESULT([$filestdin])
449 dnl Check for -L option to file
452 AC_MSG_CHECKING([for -L option to file command])
453 AC_CACHE_VAL(ac_cv_filel, [
454 file -L . > /dev/null 2>&1
462 if test x$ac_cv_filel = xyes; then
463 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
466 AC_MSG_RESULT([$filel])
469 AC_MSG_CHECKING([for subshell support])
470 AC_ARG_WITH(subshell,
471 [--with-subshell=optional To disable concurrent shell by default
472 --without-subshell To disable concurrent shell completely],
474 if test x$withval = xoptional
476 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
477 [Define to make subshell support optional])
478 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
479 [Define to enable subshell support])
482 if test x$withval = xyes
484 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
487 [dnl Default: provide the subshell support on non-ultrix machines
493 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
498 AC_MSG_RESULT([$result])
501 AC_DEFINE(REGEX_MALLOC, 1, [Define to make regex use malloc(), not alloca()])
503 if test "x$screen_type" != xncurses; then
506 slang_use_system_installed_lib=false
507 AC_CHECK_LIB(slang,SLang_init_tty,
508 [AC_CHECK_HEADERS([slang.h slang/slang.h],
509 [slang_h_found=yes; break])
510 if test "x$slang_h_found" = xyes; then
511 slang_use_system_installed_lib=true
512 slang_check_lib=false
517 AC_ARG_WITH(terminfo,
518 [--with-terminfo SLANG: Force usage of terminfo],[
519 if test x$withval = xyes; then
521 slang_check_lib=false
522 slang_use_system_installed_lib=false
527 [--with-termcap SLANG: Force usage of termcap],[
528 if test x$withval = xyes; then
530 slang_check_lib=false
531 slang_use_system_installed_lib=false
535 AC_ARG_WITH(included-slang,
536 [--with-included-slang SLANG: use the SLang library included here],[
537 if test x$withval = xyes; then
538 slang_use_system_installed_lib=false
544 [--with-slang Compile with the slang screen manager],[
545 if test x$withval = xyes; then
555 [--with-edit Enable internal editor],
556 [if test x$withval = xyes
562 [dnl Default: provide the internal editor
571 if test $use_vfs = yes; then
572 AC_ARG_WITH(ext2undel,
573 [--with-ext2undel Compile with ext2 undelete code],[
574 if test x$withval != xno;
576 if test x$withval != xyes
578 LIBS="$LIBS -L$withval/lib"
579 CPPFLAGS="$CPPFLAGS -I$withval/include"
584 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
591 dnl Ncurses specific checks
593 dnl If ncurses exports the ESCDELAY variable it should be set to 0
594 dnl or you'll have to press Esc three times to dismiss a dialog box.
596 if test "x$screen_type" = xncurses; then
599 AC_CACHE_CHECK([for ESCDELAY variable],
600 [mc_cv_ncurses_escdelay],
601 [AC_TRY_COMPILE([], [
608 [mc_cv_ncurses_escdelay=yes],
609 [mc_cv_ncurses_escdelay=no]
612 if test "$mc_cv_ncurses_escdelay" = yes; then
613 AC_DEFINE(HAVE_ESCDELAY, 1,
614 [Define if ncurses has ESCDELAY variable])
617 AC_CHECK_FUNCS(resizeterm)
621 if test "x$screen_type" = "x"; then
626 dnl The variables used for expanding the auto saver.
633 cons_saver="cons.saver"
637 dnl On Linux, check for PAM authentication available
639 AC_CHECK_LIB(pam, pam_start, [
640 AC_DEFINE(HAVE_PAM, 1,
641 [Define if PAM (Pluggable Authentication Modules) is available])
650 dnl User visible support for charset conversion.
652 AC_ARG_ENABLE([charset],
653 [--enable-charset Support for charset selection and conversion])
655 if test "x$enable_charset" = xyes; then
656 if test -z "$am_cv_func_iconv"; then
657 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
659 AC_DEFINE(HAVE_CHARSET, 1,
660 [Define to enable charset selection and conversion])
665 if test "$GLIBC21" != yes; then
666 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
670 dnl This code should be moved to the ac_WITH_SLANG
672 dnl We check for the existance of setupterm on curses library
673 dnl this is required to load certain definitions on some termcaps
674 dnl editions (AIX and OSF/1 I seem to remember).
675 dnl Note that we avoid using setupterm
676 if test "x$screen_type" = xslang; then
681 AC_CHECK_LIB(curses,setupterm,
685 if (key_end == parm_insert_line)
689 [MCLIBS="$MCLIBS -lcurses"
690 AC_DEFINE(USE_SETUPTERM, 1,
691 [Define to use function `setupterm'
692 from `curses' library in S-Lang])])
697 LIBS="$LIBS $posix_libs"
704 if test "x$SAMBAFILES" != x; then
705 AC_CONFIG_SUBDIRS([vfs/samba])
708 AM_CONDITIONAL(USE_EDIT, [test -n "$LIBEDIT_A"])
709 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
710 AM_CONDITIONAL(USE_VFS_NET, [test -n "$NETFILES"])
711 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$undelfs_o"])
712 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$SAMBAFILES"])
713 AM_CONDITIONAL(MCSERV_INSTALL,
714 [test "x$enable_mcserv_install$mcserv" = xyesmcserv])
715 AM_CONDITIONAL(INCLUDED_SLANG,
716 [test "x$slang_use_system_installed_lib" = xfalse])
717 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
718 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
720 AH_BOTTOM([#include <extraconf.h>])
751 doc/mc.1 doc/mcedit.1 doc/mcserv.8 doc/ru/mc.1 doc/ru/Makefile
754 intl/Makefile po/Makefile.in
757 AC_CONFIG_COMMANDS(potfiles,
758 [grep ^top_builddir po/Makefile.in >/dev/null && sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
762 if test "x$screen_type" = xslang; then
763 screen_manager="${screen_manager}${slang_term}"
769 Source code location: ${srcdir}
771 Compiler flags: ${CFLAGS}
772 File system: ${vfs_type}
774 Screen manager: ${screen_manager}
775 Install console saver: ${install_saver}
776 Mouse support: ${mouse_lib}
777 X11 events support: ${textmode_x11_support}
778 Debugger code: ${mem_debug}
779 With subshell support: ${subshell}
780 Internal editor: ${EDIT_msg}
781 Install path: ${prefix}/bin, ${prefix}/lib/mc