2 dnl Configure.in file for the Midnight Commander
5 AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
7 AC_CONFIG_SRCDIR(src/main.c)
8 AC_CONFIG_AUX_DIR(config)
9 AM_INIT_AUTOMAKE(mc, 4.6.0-pre1a)
11 AM_CONFIG_HEADER(config.h)
24 dnl Find glib 1.2.x. This check should be kept close to the beginning,
25 dnl as it tends to fail often.
28 dnl This temporary variable is a workaround for a bug in Autoconf-2.53
29 glib_path=$PATH:/usr/local/bin
31 dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
32 AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
34 AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config])
35 AM_PATH_GLIB(1.2.0,,[AC_MSG_ERROR([Test for GLIB failed. MC requires GLIB.])])
44 AC_CHECK_TOOL(AR, ar, ar)
46 dnl Only list browsers here that can be run in background (i.e. with `&')
47 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
50 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
51 dnl We use only part of the functionality of mmap, so on AIX,
52 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
55 [--with-mmap To force using the mmap call (AIX)],
58 ac_cv_func_mmap_fixed_mapped=yes
59 AC_MSG_NOTICE([forcing MMAP support])
62 ac_cv_func_mmap_fixed_mapped=no
63 AC_MSG_NOTICE([disabling MMAP support])
68 if test "x$ALL_LINGUAS" = x; then
69 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"
73 dnl Internationalization
76 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
77 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
81 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
83 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
86 dnl Enforce coding standards
88 if test "x$GCC" = xyes; then
89 CFLAGS="$CFLAGS -Wall"
93 dnl OS specific flags.
101 AC_DEFINE(_POSIX_SOURCE)
104 AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
105 AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
110 AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
111 malloc.h stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h \
112 sys/time.h sys/timeb.h sys/select.h sys/ioctl.h stropts.h])
119 dnl Missing structure components
125 dnl Check availability of some functions
128 AC_CHECK_FUNCS([strerror statfs strftime \
129 memmove pwdauth truncate initgroups putenv \
130 memset memcpy tcsetattr tcgetattr cfgetospeed \
131 sigaction sigemptyset sigprocmask sigaddset \
132 sysconf setuid setreuid telldir seekdir])
135 dnl getpt is a GNU Extension (glibc 2.1.x)
137 AC_CHECK_FUNCS(getpt)
140 dnl Password encryption support for mcserv
141 dnl Check if function crypt needs a prototype
143 NEED_CRYPT_PROTOTYPE=yes
144 if test x$ac_cv_header_crypt_h = xyes; then
145 AC_TRY_WARNINGS([#include <crypt.h>], [char *p = crypt("xxx", "yyy");
148 NEED_CRYPT_PROTOTYPE=no])
150 if test x$ac_cv_header_unistd_h = xyes; then
151 AC_TRY_WARNINGS([#include <unistd.h>], [char *p = crypt("xxx", "yyy");
154 NEED_CRYPT_PROTOTYPE=no])
157 if test x$NEED_CRYPT_PROTOTYPE = xyes; then
158 AC_DEFINE(NEED_CRYPT_PROTOTYPE, 1,
159 [Define if function `crypt' needs a prototype])
163 dnl On SCO and some SVR4, crypt is on libcrypt.a
164 dnl grantpt in libpt.a
167 AC_CHECK_FUNCS(crypt, , [
168 AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
169 AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
172 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
174 dnl replacing lstat with statlstat on sco makes it more portable between
176 AC_CHECK_FUNCS(statlstat)
179 dnl If running under AIX, AC_AIX does not tell us that
181 AC_MSG_CHECKING([for AIX defines])
183 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
187 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
189 ], [AC_MSG_RESULT(no)])
192 dnl This is from GNU fileutils, check aclocal.m4 for more information
197 dnl Missing typedefs and replacements
201 AC_CHECK_TYPE(umode_t, int)
202 AC_CHECK_TYPE(off_t, long)
205 AC_CHECK_TYPE(nlink_t, unsigned int)
214 dnl These variables are only used when building the MC binary
220 textmode_x11_support="no"
221 AC_ARG_WITH(tm-x-support,
222 [--with-tm-x-support Try getting events from X Window System],
223 [if test x$withval = xyes; then
226 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
227 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
228 [Define to enable getting events from X Window System])
229 textmode_x11_support="yes"
234 dnl Network related functions
237 AC_CHECK_LIB(nsl, t_accept)
238 AC_CHECK_LIB(socket, socket)
241 AC_CHECK_FUNCS(socket, have_socket=yes)
242 if test $have_socket = no; then
243 # socket is not in the default libraries. See if it's in some other.
244 for lib in bsd socket inet; do
245 AC_CHECK_LIB($lib, socket, [
248 AC_DEFINE(HAVE_SOCKET)
253 have_gethostbyname=no
254 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
255 if test $have_gethostbyname = no; then
256 # gethostbyname is not in the default libraries. See if it's in some other.
257 for lib in bsd socket inet; do
258 AC_CHECK_LIB([$lib], [gethostbyname],
259 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
263 AC_CHECK_FUNCS(socketpair)
266 dnl Sequent wants getprocessstats
268 AC_CHECK_LIB(seq, get_process_stats, [
270 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
271 [Define if you have function `get_process_stats' and
272 have to use that instead of gettimeofday])])
277 dnl Install mcserv only if explicitly enabled
279 AC_ARG_ENABLE([mcserv-install],
280 [--enable-mcserv-install Install mcserv - Midnight Commander file server])
283 if test $have_socket = yes; then
284 NETFILES="\$(NETFILES)"
289 if test $use_vfs = yes
291 AC_MSG_NOTICE([enabling VFS code])
292 vfs_type="Midnight Commander Virtual File System"
295 dnl This should be unadorned "slang" or "ncurses"
298 dnl Screen manager name (for the output only)
299 screen_manager=unknown
301 mouse_lib="xterm only"
304 AC_ARG_WITH(gpm-mouse,
305 [--with-gpm-mouse[[=base-dir]] Compile with gpm mouse support (Linux only)],
306 [if test x$withval != xno
308 if test x$withval != xyes
310 LIBS="$LIBS -L$withval/lib"
311 CPPFLAGS="$CPPFLAGS -I$withval/include"
313 AC_DEFINE(HAVE_LIBGPM, 1,
314 [Define to enable gpm mouse support on Linux])
315 mouse_lib="GPM and xterm"
316 MCLIBS="-lgpm $MCLIBS"
318 [AC_CHECK_LIB(gpm, Gpm_Repeat,
319 [AC_DEFINE(HAVE_LIBGPM)
320 mouse_lib="GPM and xterm"
321 MCLIBS="-lgpm $MCLIBS"],
322 [AC_MSG_WARN([libgpm is missing or older than 0.18])],
329 [--with-ncurses[[=base-dir]] Compile with ncurses/locate base dir],
330 [if test x$withval != xno; then
331 if test x$withval != xyes; then
332 MCLIBS="$MCLIBS -L$withval/lib"
333 CPPFLAGS="$CPPFLAGS -I$withval/include"
336 AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],
337 [ncurses_h_found=yes; break])
338 if test -z "$ncurses_h_found"; then
339 AC_MSG_ERROR([Could not find ncurses header])
342 dnl curses_version is specific to ncurses, it's not in old curses
343 AC_CHECK_LIB(ncurses, has_colors, [MCLIBS="$MCLIBS -lncurses"],
344 [AC_MSG_ERROR([Could not find ncurses library])])
346 screen_type="ncurses"
347 screen_manager="ncurses"
348 AC_DEFINE(USE_NCURSES, 1,
349 [Define to use ncurses for screen management])
354 [--with-hsc Compile with support for the HSC firewall],
355 [if test x$withval = xyes; then
356 AC_DEFINE(HSC_PROXY, 1,
357 [Define if you want to use the HSC firewall])
362 dnl Check for the -mandoc package
364 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
366 AC_MSG_CHECKING([for manual formatting macros])
367 AC_CACHE_VAL(ac_cv_mandoc, [
368 nroff -mandoc < /dev/null > /dev/null 2>&1
377 AC_MSG_RESULT([$MANDOC])
384 dnl Check if nroff accepts -Tlatin1 or -Tascii
387 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
388 AC_CACHE_VAL(ac_cv_nroff_tascii, [
389 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
392 ac_cv_nroff_tascii=" -Tlatin1"
394 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
397 ac_cv_nroff_tascii=" -Tascii"
399 ac_cv_nroff_tascii=""
403 if test "x$ac_cv_nroff_tascii" = x; then
406 AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
409 TROFFASCII="$ac_cv_nroff_tascii"
413 dnl Check for - option to file
415 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
416 if $HAVE_FILECMD; then
417 AC_MSG_CHECKING([for - option to file command])
418 AC_CACHE_VAL(ac_cv_filestdin, [[
419 cat > conftest.c <<\EOF
426 cat > conftest.sed <<\EOF
430 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
431 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
432 if test "x$filehyphen_1" = "x$filehyphen_2"; then
437 rm conftest.c conftest.sed
440 if test x$ac_cv_filestdin = xyes; then
441 AC_DEFINE(FILE_STDIN, 1,
442 [Define if the file command accepts - for stdin])
444 filestdin=$ac_cv_filestdin
445 AC_MSG_RESULT([$filestdin])
448 dnl Check for -L option to file
451 AC_MSG_CHECKING([for -L option to file command])
452 AC_CACHE_VAL(ac_cv_filel, [
453 file -L . > /dev/null 2>&1
461 if test x$ac_cv_filel = xyes; then
462 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
465 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])
480 if test x$withval = xyes
484 [dnl Default: enable the subshell support
487 if test "x$result" != xno; then
488 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
489 [Define to enable subshell support])
491 AC_MSG_RESULT([$result])
494 if test "x$screen_type" != xncurses; then
497 slang_use_system_installed_lib=false
498 AC_CHECK_LIB(slang,SLang_init_tty,
499 [AC_CHECK_HEADERS([slang.h slang/slang.h],
500 [slang_h_found=yes; break])
501 if test "x$slang_h_found" = xyes; then
502 slang_use_system_installed_lib=true
503 slang_check_lib=false
508 AC_ARG_WITH(terminfo,
509 [--with-terminfo SLANG: Force usage of terminfo],[
510 if test x$withval = xyes; then
512 slang_check_lib=false
513 slang_use_system_installed_lib=false
518 [--with-termcap SLANG: Force usage of termcap],[
519 if test x$withval = xyes; then
521 slang_check_lib=false
522 slang_use_system_installed_lib=false
526 AC_ARG_WITH(included-slang,
527 [--with-included-slang SLANG: use the SLang library included here],[
528 if test x$withval = xyes; then
529 slang_use_system_installed_lib=false
535 [--with-slang Compile with the slang screen manager],[
536 if test x$withval = xyes; then
546 [--with-edit Enable internal editor],
547 [if test x$withval = xyes
553 [dnl Default: provide the internal editor
562 if test $use_vfs = yes; then
563 AC_ARG_WITH(ext2undel,
564 [--with-ext2undel Compile with ext2 undelete code],[
565 if test x$withval != xno;
567 if test x$withval != xyes
569 LIBS="$LIBS -L$withval/lib"
570 CPPFLAGS="$CPPFLAGS -I$withval/include"
575 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
582 dnl Ncurses specific checks
584 dnl If ncurses exports the ESCDELAY variable it should be set to 0
585 dnl or you'll have to press Esc three times to dismiss a dialog box.
587 if test "x$screen_type" = xncurses; then
590 AC_CACHE_CHECK([for ESCDELAY variable],
591 [mc_cv_ncurses_escdelay],
592 [AC_TRY_COMPILE([], [
599 [mc_cv_ncurses_escdelay=yes],
600 [mc_cv_ncurses_escdelay=no]
603 if test "$mc_cv_ncurses_escdelay" = yes; then
604 AC_DEFINE(HAVE_ESCDELAY, 1,
605 [Define if ncurses has ESCDELAY variable])
608 AC_CHECK_FUNCS(resizeterm)
612 if test "x$screen_type" = "x"; then
617 dnl The variables used for expanding the auto saver.
624 cons_saver="cons.saver"
628 dnl On Linux, check for PAM authentication available
630 AC_CHECK_LIB(pam, pam_start, [
631 AC_DEFINE(HAVE_PAM, 1,
632 [Define if PAM (Pluggable Authentication Modules) is available])
641 dnl User visible support for charset conversion.
643 AC_ARG_ENABLE([charset],
644 [--enable-charset Support for charset selection and conversion])
646 if test "x$enable_charset" = xyes; then
647 if test "x$am_cv_func_iconv" != xyes; then
648 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
650 AC_DEFINE(HAVE_CHARSET, 1,
651 [Define to enable charset selection and conversion])
656 if test "$GLIBC21" != yes; then
657 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
661 dnl This code should be moved to the ac_WITH_SLANG
663 dnl We check for the existance of setupterm on curses library
664 dnl this is required to load certain definitions on some termcaps
665 dnl editions (AIX and OSF/1 I seem to remember).
666 dnl Note that we avoid using setupterm
667 if test "x$screen_type" = xslang; then
672 AC_CHECK_LIB(curses,setupterm,
676 if (key_end == parm_insert_line)
680 [MCLIBS="$MCLIBS -lcurses"
681 AC_DEFINE(USE_SETUPTERM, 1,
682 [Define to use function `setupterm'
683 from `curses' library in S-Lang])])
688 LIBS="$LIBS $posix_libs"
695 dnl Version for the RedHat package, without dashes
696 RH_VERSION=`echo $VERSION | sed 's/-//'`
699 if test "x$SAMBAFILES" != x; then
700 AC_CONFIG_SUBDIRS([vfs/samba])
703 AM_CONDITIONAL(USE_EDIT, [test -n "$LIBEDIT_A"])
704 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
705 AM_CONDITIONAL(USE_VFS_NET, [test -n "$NETFILES"])
706 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$undelfs_o"])
707 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$SAMBAFILES"])
708 AM_CONDITIONAL(MCSERV_INSTALL,
709 [test "x$enable_mcserv_install$mcserv" = xyesmcserv])
710 AM_CONDITIONAL(INCLUDED_SLANG,
711 [test "x$slang_use_system_installed_lib" = xfalse])
712 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
713 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
715 AH_BOTTOM([#include <extraconf.h>])
746 doc/mc.1 doc/mcedit.1 doc/mcserv.8
747 doc/es/mc.1 doc/es/Makefile
749 doc/it/mc.1 doc/it/Makefile
750 doc/pl/mc.1 doc/pl/Makefile
751 doc/ru/mc.1 doc/ru/Makefile
753 intl/Makefile po/Makefile.in
756 AC_CONFIG_COMMANDS(potfiles,
757 [grep ^top_builddir po/Makefile.in >/dev/null && sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
761 if test "x$screen_type" = xslang; then
762 screen_manager="${screen_manager}${slang_term}"
768 Source code location: ${srcdir}
770 Compiler flags: ${CFLAGS}
771 File system: ${vfs_type}
773 Screen manager: ${screen_manager}
774 Install console saver: ${install_saver}
775 Mouse support: ${mouse_lib}
776 X11 events support: ${textmode_x11_support}
777 Debugger code: ${mem_debug}
778 With subshell support: ${subshell}
779 Internal editor: ${EDIT_msg}
780 Install path: ${prefix}/bin, ${prefix}/lib/mc