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 \
120 dnl Missing structure components
126 dnl Check availability of some functions
129 AC_CHECK_FUNCS([strerror statfs strftime \
130 memmove pwdauth truncate initgroups putenv \
131 memset memcpy tcsetattr tcgetattr cfgetospeed \
132 sigaction sigemptyset sigprocmask sigaddset \
133 sysconf setuid setreuid telldir seekdir])
136 dnl getpt is a GNU Extension (glibc 2.1.x)
138 AC_CHECK_FUNCS(getpt)
141 dnl Password encryption support for mcserv
142 dnl Check if function crypt needs a prototype
144 NEED_CRYPT_PROTOTYPE=yes
145 if test x$ac_cv_header_crypt_h = xyes; then
146 AC_TRY_WARNINGS([#include <crypt.h>], [char *p = crypt("xxx", "yyy");
149 NEED_CRYPT_PROTOTYPE=no])
151 if test x$ac_cv_header_unistd_h = xyes; then
152 AC_TRY_WARNINGS([#include <unistd.h>], [char *p = crypt("xxx", "yyy");
155 NEED_CRYPT_PROTOTYPE=no])
158 if test x$NEED_CRYPT_PROTOTYPE = xyes; then
159 AC_DEFINE(NEED_CRYPT_PROTOTYPE, 1,
160 [Define if function `crypt' needs a prototype])
164 dnl On SCO and some SVR4, crypt is on libcrypt.a
165 dnl grantpt in libpt.a
168 AC_CHECK_FUNCS(crypt, , [
169 AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
170 AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
173 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
175 dnl replacing lstat with statlstat on sco makes it more portable between
177 AC_CHECK_FUNCS(statlstat)
180 dnl If running under AIX, AC_AIX does not tell us that
182 AC_MSG_CHECKING([for AIX defines])
184 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
188 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
190 ], [AC_MSG_RESULT(no)])
193 dnl This is from GNU fileutils, check aclocal.m4 for more information
198 dnl Missing typedefs and replacements
202 AC_CHECK_TYPE(umode_t, int)
203 AC_CHECK_TYPE(off_t, long)
206 AC_CHECK_TYPE(nlink_t, unsigned int)
215 textmode_x11_support="no"
216 AC_ARG_WITH(tm-x-support,
217 [--with-tm-x-support Try getting events from X Window System],
218 [if test x$withval = xyes; then
220 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
221 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
222 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
223 [Define to enable getting events from X Window System])
224 textmode_x11_support="yes"
229 dnl Network related functions
232 AC_CHECK_LIB(nsl, t_accept)
233 AC_CHECK_LIB(socket, socket)
236 AC_CHECK_FUNCS(socket, have_socket=yes)
237 if test $have_socket = no; then
238 # socket is not in the default libraries. See if it's in some other.
239 for lib in bsd socket inet; do
240 AC_CHECK_LIB($lib, socket, [
243 AC_DEFINE(HAVE_SOCKET)
248 have_gethostbyname=no
249 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
250 if test $have_gethostbyname = no; then
251 # gethostbyname is not in the default libraries. See if it's in some other.
252 for lib in bsd socket inet; do
253 AC_CHECK_LIB([$lib], [gethostbyname],
254 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
258 AC_CHECK_FUNCS(socketpair)
261 dnl Sequent wants getprocessstats
263 AC_CHECK_LIB(seq, get_process_stats, [
265 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
266 [Define if you have function `get_process_stats' and
267 have to use that instead of gettimeofday])])
272 dnl Install mcserv only if explicitly enabled
274 AC_ARG_ENABLE([mcserv-install],
275 [--enable-mcserv-install Install mcserv - Midnight Commander file server])
278 if test $use_vfs = yes
280 AC_MSG_NOTICE([enabling VFS code])
281 vfs_type="Midnight Commander Virtual File System"
284 dnl This should be unadorned "slang" or "ncurses"
287 dnl Screen manager name (for the output only)
288 screen_manager=unknown
290 mouse_lib="xterm only"
293 AC_ARG_WITH(gpm-mouse,
294 [--with-gpm-mouse[[=base-dir]] Compile with gpm mouse support (Linux only)],
295 [if test x$withval != xno
297 if test x$withval != xyes
299 LDFLAGS="$LDFLAGS -L$withval/lib"
300 CPPFLAGS="$CPPFLAGS -I$withval/include"
302 AC_DEFINE(HAVE_LIBGPM, 1,
303 [Define to enable gpm mouse support on Linux])
304 mouse_lib="GPM and xterm"
305 MCLIBS="-lgpm $MCLIBS"
307 [AC_CHECK_LIB(gpm, Gpm_Repeat,
308 [AC_DEFINE(HAVE_LIBGPM)
309 mouse_lib="GPM and xterm"
310 MCLIBS="-lgpm $MCLIBS"],
311 [AC_MSG_WARN([libgpm is missing or older than 0.18])],
318 [--with-ncurses[[=base-dir]] Compile with ncurses/locate base dir],
319 [if test x$withval != xno; then
320 if test x$withval != xyes; then
321 LDFLAGS="$LDFLAGS -L$withval/lib"
322 CPPFLAGS="$CPPFLAGS -I$withval/include"
325 AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],
326 [ncurses_h_found=yes; break])
327 if test -z "$ncurses_h_found"; then
328 AC_MSG_ERROR([Could not find ncurses header])
331 dnl curses_version is specific to ncurses, it's not in old curses
332 AC_CHECK_LIB(ncurses, has_colors, [MCLIBS="$MCLIBS -lncurses"],
333 [AC_MSG_ERROR([Could not find ncurses library])])
335 screen_type="ncurses"
336 screen_manager="ncurses"
337 AC_DEFINE(USE_NCURSES, 1,
338 [Define to use ncurses for screen management])
343 [--with-hsc Compile with support for the HSC firewall],
344 [if test x$withval = xyes; then
345 AC_DEFINE(HSC_PROXY, 1,
346 [Define if you want to use the HSC firewall])
351 dnl Check for the -mandoc package
353 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
355 AC_MSG_CHECKING([for manual formatting macros])
356 AC_CACHE_VAL(ac_cv_mandoc, [
357 nroff -mandoc < /dev/null > /dev/null 2>&1
366 AC_MSG_RESULT([$MANDOC])
373 dnl Check if nroff accepts -Tlatin1 or -Tascii
376 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
377 AC_CACHE_VAL(ac_cv_nroff_tascii, [
378 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
381 ac_cv_nroff_tascii=" -Tlatin1"
383 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
386 ac_cv_nroff_tascii=" -Tascii"
388 ac_cv_nroff_tascii=""
392 if test "x$ac_cv_nroff_tascii" = x; then
395 AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
398 TROFFASCII="$ac_cv_nroff_tascii"
402 dnl Check for - option to file
404 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
405 if $HAVE_FILECMD; then
406 AC_MSG_CHECKING([for - option to file command])
407 AC_CACHE_VAL(ac_cv_filestdin, [[
408 cat > conftest.c <<\EOF
415 cat > conftest.sed <<\EOF
419 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
420 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
421 if test "x$filehyphen_1" = "x$filehyphen_2"; then
426 rm conftest.c conftest.sed
429 if test x$ac_cv_filestdin = xyes; then
430 AC_DEFINE(FILE_STDIN, 1,
431 [Define if the file command accepts - for stdin])
433 filestdin=$ac_cv_filestdin
434 AC_MSG_RESULT([$filestdin])
437 dnl Check for -L option to file
440 AC_MSG_CHECKING([for -L option to file command])
441 AC_CACHE_VAL(ac_cv_filel, [
442 file -L . > /dev/null 2>&1
450 if test x$ac_cv_filel = xyes; then
451 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
454 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])
469 if test x$withval = xyes
473 [dnl Default: enable the subshell support
476 if test "x$result" != xno; then
477 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
478 [Define to enable subshell support])
480 AC_MSG_RESULT([$result])
483 if test "x$screen_type" != xncurses; then
486 slang_use_system_installed_lib=false
487 AC_CHECK_LIB(slang,SLang_init_tty,
488 [AC_CHECK_HEADERS([slang.h slang/slang.h],
489 [slang_h_found=yes; break])
490 if test "x$slang_h_found" = xyes; then
491 slang_use_system_installed_lib=true
492 slang_check_lib=false
498 [--with-termcap SLANG: Force usage of termcap],[
499 if test x$withval = xyes; then
501 slang_check_lib=false
502 slang_use_system_installed_lib=false
506 AC_ARG_WITH(included-slang,
507 [--with-included-slang SLANG: use the SLang library included here],[
508 if test x$withval = xyes; then
509 slang_use_system_installed_lib=false
515 [--with-slang Compile with the slang screen manager],[
516 if test x$withval = xyes; then
526 [--with-edit Enable internal editor],
527 [if test x$withval = xyes
533 [dnl Default: provide the internal editor
542 if test $use_vfs = yes; then
543 AC_ARG_WITH(ext2undel,
544 [--with-ext2undel Compile with ext2 undelete code],[
545 if test x$withval != xno;
547 if test x$withval != xyes
549 LDFLAGS="$LDFLAGS -L$withval/lib"
550 CPPFLAGS="$CPPFLAGS -I$withval/include"
555 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
562 dnl Ncurses specific checks
564 dnl If ncurses exports the ESCDELAY variable it should be set to 0
565 dnl or you'll have to press Esc three times to dismiss a dialog box.
567 if test "x$screen_type" = xncurses; then
570 AC_CACHE_CHECK([for ESCDELAY variable],
571 [mc_cv_ncurses_escdelay],
572 [AC_TRY_COMPILE([], [
579 [mc_cv_ncurses_escdelay=yes],
580 [mc_cv_ncurses_escdelay=no]
583 if test "$mc_cv_ncurses_escdelay" = yes; then
584 AC_DEFINE(HAVE_ESCDELAY, 1,
585 [Define if ncurses has ESCDELAY variable])
588 AC_CHECK_FUNCS(resizeterm)
592 if test "x$screen_type" = "x"; then
597 dnl The variables used for expanding the auto saver.
604 cons_saver="cons.saver"
608 dnl On Linux, check for PAM authentication available
610 AC_CHECK_LIB(pam, pam_start, [
611 AC_DEFINE(HAVE_PAM, 1,
612 [Define if PAM (Pluggable Authentication Modules) is available])
621 dnl User visible support for charset conversion.
623 AC_ARG_ENABLE([charset],
624 [--enable-charset Support for charset selection and conversion])
626 if test "x$enable_charset" = xyes; then
627 if test "x$am_cv_func_iconv" != xyes; then
628 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
630 AC_DEFINE(HAVE_CHARSET, 1,
631 [Define to enable charset selection and conversion])
636 if test "$GLIBC21" != yes; then
637 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
641 dnl This code should be moved to the ac_WITH_SLANG
643 dnl We check for the existance of setupterm on curses library
644 dnl this is required to load certain definitions on some termcaps
645 dnl editions (AIX and OSF/1 I seem to remember).
646 dnl Note that we avoid using setupterm
647 if test "x$screen_type" = xslang; then
652 AC_CHECK_LIB(curses,setupterm,
656 if (key_end == parm_insert_line)
660 [MCLIBS="$MCLIBS -lcurses"
661 AC_DEFINE(USE_SETUPTERM, 1,
662 [Define to use function `setupterm'
663 from `curses' library in S-Lang])])
668 LIBS="$LIBS $posix_libs"
675 dnl Libraries used only when building the mc binary
678 dnl Version for the RedHat package, without dashes
679 RH_VERSION=`echo $VERSION | sed 's/-//'`
682 if test "x$SAMBAFILES" != x; then
683 AC_CONFIG_SUBDIRS([vfs/samba])
686 AM_CONDITIONAL(USE_EDIT, [test -n "$LIBEDIT_A"])
687 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
688 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
689 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$undelfs_o"])
690 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$SAMBAFILES"])
691 AM_CONDITIONAL(MCSERV_INSTALL,
692 [test "x$enable_mcserv_install$mcserv" = xyesmcserv])
693 AM_CONDITIONAL(INCLUDED_SLANG,
694 [test "x$slang_use_system_installed_lib" = xfalse])
695 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
696 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
698 AH_BOTTOM([#include <extraconf.h>])
727 doc/mc.1 doc/mcedit.1 doc/mcserv.8
728 doc/es/mc.1 doc/es/Makefile
730 doc/it/mc.1 doc/it/Makefile
731 doc/pl/mc.1 doc/pl/Makefile
732 doc/ru/mc.1 doc/ru/Makefile
734 intl/Makefile po/Makefile.in
737 AC_CONFIG_COMMANDS(potfiles,
738 [grep ^top_builddir po/Makefile.in >/dev/null && sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
742 if test "x$screen_type" = xslang; then
743 screen_manager="${screen_manager}${slang_term}"
749 Source code location: ${srcdir}
751 Compiler flags: ${CFLAGS}
752 File system: ${vfs_type}
754 Screen manager: ${screen_manager}
755 Install console saver: ${install_saver}
756 Mouse support: ${mouse_lib}
757 X11 events support: ${textmode_x11_support}
758 Debugger code: ${mem_debug}
759 With subshell support: ${subshell}
760 Internal editor: ${EDIT_msg}
761 Install path: ${prefix}/bin, ${prefix}/lib/mc