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 Force using the mmap call (only useful on 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 ALL_LINGUAS="az be bg ca cs da de el es es_ES eu fi fr hu it ja ko lv \
69 nl no pl pt pt_BR ro ru sk sl sv uk ta tr wa zh_CN zh_TW"
72 dnl Internationalization
75 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
76 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
80 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
82 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
85 dnl Enforce coding standards
87 if test "x$GCC" = xyes; then
88 CFLAGS="$CFLAGS -Wall"
92 dnl OS specific flags.
100 AC_DEFINE(_POSIX_SOURCE)
103 AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
104 AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
109 AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
110 malloc.h stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h \
111 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 textmode_x11_support="no"
215 AC_ARG_WITH(tm-x-support,
216 [ --with-tm-x-support Get keyboard events from X Window System [[no]]],
217 [if test x$withval = xyes; then
219 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
220 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
221 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
222 [Define to enable getting events from X Window System])
223 textmode_x11_support="yes"
228 dnl Network related functions
231 AC_CHECK_LIB(nsl, t_accept)
232 AC_CHECK_LIB(socket, socket)
235 AC_CHECK_FUNCS(socket, have_socket=yes)
236 if test $have_socket = no; then
237 # socket is not in the default libraries. See if it's in some other.
238 for lib in bsd socket inet; do
239 AC_CHECK_LIB($lib, socket, [
242 AC_DEFINE(HAVE_SOCKET)
247 have_gethostbyname=no
248 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
249 if test $have_gethostbyname = no; then
250 # gethostbyname is not in the default libraries. See if it's in some other.
251 for lib in bsd socket inet; do
252 AC_CHECK_LIB([$lib], [gethostbyname],
253 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
257 AC_CHECK_FUNCS(socketpair)
260 dnl Sequent wants getprocessstats
262 AC_CHECK_LIB(seq, get_process_stats, [
264 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
265 [Define if you have function `get_process_stats' and
266 have to use that instead of gettimeofday])])
271 dnl Install mcserv only if explicitly enabled
273 AC_ARG_ENABLE([mcserv-install],
274 [ --enable-mcserv-install Install mcserv - Midnight Commander file server [[no]]])
277 if test $use_vfs = yes
279 AC_MSG_NOTICE([enabling VFS code])
280 vfs_type="Midnight Commander Virtual File System"
283 dnl This should be unadorned "slang" or "ncurses"
286 dnl Screen manager name (for the output only)
287 screen_manager=unknown
289 mouse_lib="xterm only"
292 AC_ARG_WITH(gpm-mouse,
293 [ --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 [[no]]],
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 HSC firewall instead
344 of FTP proxy [[no]]],
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])
459 AC_MSG_CHECKING([for subshell support])
460 AC_ARG_WITH(subshell,
461 [ --with-subshell Compile in concurrent subshell [[yes]]
462 --with-subshell=optional Don't run concurrent shell by default [[no]]],
464 if test x$withval = xoptional
466 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
467 [Define to make subshell support optional])
470 if test x$withval = xyes
474 [dnl Default: enable the subshell support
477 if test "x$result" != xno; then
478 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
479 [Define to enable subshell support])
481 AC_MSG_RESULT([$result])
484 if test "x$screen_type" != xncurses; then
487 slang_use_system_installed_lib=false
488 AC_CHECK_LIB(slang,SLang_init_tty,
489 [AC_CHECK_HEADERS([slang.h slang/slang.h],
490 [slang_h_found=yes; break])
491 if test "x$slang_h_found" = xyes; then
492 slang_use_system_installed_lib=true
493 slang_check_lib=false
499 [ --with-slang Compile with S-Lang screen manager [[yes]]],
500 [if test x$withval = xyes; then
505 AC_ARG_WITH(included-slang,
506 [ --with-included-slang Use S-Lang library included with mc sources
507 [[use installed library if found]]],
508 [if test x$withval = xyes; then
509 slang_use_system_installed_lib=false
515 [ --with-termcap Same as above, and try using termcap database [[no]]],
516 [if test x$withval = xyes; then
518 slang_check_lib=false
519 slang_use_system_installed_lib=false
528 [ --with-edit Enable internal editor [[yes]]],
529 [if test x$withval = xyes
535 [dnl Default: provide the internal editor
544 if test $use_vfs = yes; then
545 AC_ARG_WITH(ext2undel,
546 [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
547 [if test x$withval != xno; then
548 if test x$withval != xyes; then
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 [[no]]])
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