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 fi fr hu it ja ko lv nl no pl pt_BR ro ru sk sl sv uk ta tr wa zh_TW zh_CN.GB2312"
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 If you want to use a concurrent shell],
462 if test x$withval = xoptional
464 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
465 [Define to make subshell support optional])
466 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
467 [Define to enable subshell support])
470 if test x$withval = xyes
472 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
475 [dnl Default: provide the subshell support on non-ultrix machines
481 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
486 AC_MSG_RESULT([$result])
490 dnl Memory Allocation Debugger
494 [--with-mad Developers only: activates MAD (memory debugger)],
495 [if test x$withval = xyes; then
496 mem_debug="Janne's MAD library"
497 AC_DEFINE(HAVE_MAD, 1,
498 [Define to use Memory Allocation Debugger (MAD)])
499 AC_MSG_NOTICE([compiling with memory leak detector])
503 dnl Electric Fence - another memory debugger
506 [--with-efence Developers only: activates Electric Fence],
507 [if test x$withval = xyes; then
508 LIBS="$LIBS -lefence"
509 AC_MSG_NOTICE([compiling with Electric fence])
510 mem_debug="Electric Fence"
515 slang_use_system_installed_lib=false
516 AC_CHECK_LIB(slang,SLang_init_tty,
517 [AC_CHECK_HEADERS(slang.h)
518 if test x$ac_cv_header_slang_h = xyes
520 slang_use_system_installed_lib=true
521 slang_check_lib=false
523 AC_CHECK_HEADERS(slang/slang.h)
524 if test x$ac_cv_header_slang_slang_h = xyes
526 slang_use_system_installed_lib=true
527 slang_check_lib=false
532 AC_ARG_WITH(terminfo,
533 [--with-terminfo SLANG: Force usage of terminfo],[
534 if test x$withval = xyes; then
536 slang_check_lib=false
537 slang_use_system_installed_lib=false
542 [--with-termcap SLANG: Force usage of termcap],[
543 if test x$withval = xyes; then
545 slang_check_lib=false
546 slang_use_system_installed_lib=false
550 AC_ARG_WITH(included-slang,
551 [--with-included-slang SLANG: use the SLang library included here],[
552 if test x$withval = xyes; then
553 slang_use_system_installed_lib=false
559 [--with-slang Compile with the slang screen manager],[
560 if test x$withval = xyes; then
570 [--with-edit Enable internal editpr],
571 [if test x$withval = xyes
577 [dnl Default: provide the internal editor
585 [--with-netrc Compile with ftp .netrc support],[
586 if test x$withval = xyes; then
587 AC_DEFINE(USE_NETRC, 1,
588 [Define to use .netrc for FTP connections])
589 AC_MSG_NOTICE([ftpfs will use .netrc])
595 if test $use_vfs = yes; then
596 AC_ARG_WITH(ext2undel,
597 [--with-ext2undel Compile with ext2 undelete code],[
598 if test x$withval != xno;
600 if test x$withval != xyes
602 LIBS="$LIBS -L$withval/lib"
603 CPPFLAGS="$CPPFLAGS -I$withval/include"
608 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
616 AC_MSG_NOTICE([checking location of ncurses.h file])
618 AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
619 AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
620 AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
621 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")
623 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")
625 AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
629 dnl Ncurses specific checks
631 dnl If ncurses exports the ESCDELAY variable it should be set to 0
632 dnl or you'll have to press Esc three times to dismiss a dialog box.
634 if test -n "$ncurses_version"; then
637 AC_CACHE_CHECK([for ESCDELAY variable],
638 [mc_cv_ncurses_escdelay],
639 [AC_TRY_COMPILE([], [
646 [mc_cv_ncurses_escdelay=yes],
647 [mc_cv_ncurses_escdelay=no]
650 if test "$mc_cv_ncurses_escdelay" = yes; then
651 AC_DEFINE(HAVE_ESCDELAY, 1,
652 [Define if ncurses has ESCDELAY variable])
655 AC_CHECK_FUNCS(resizeterm)
659 if test "x$screen_manager" = "xunknown"; then
664 dnl The variables used for expanding the auto saver.
671 cons_saver="cons.saver"
675 dnl On Linux, check for PAM authentication available
677 AC_CHECK_LIB(pam, pam_start, [
678 AC_DEFINE(HAVE_PAM, 1,
679 [Define if PAM (Pluggable Authentication Modules) is available])
688 dnl User visible support for charset conversion.
690 AC_ARG_ENABLE([charset],
691 [--enable-charset Support for charset selection and conversion])
693 if test "x$enable_charset" = xyes; then
694 if test -z "$am_cv_func_iconv"; then
695 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
697 AC_DEFINE(HAVE_CHARSET, 1,
698 [Define to enable charset selection and conversion])
705 dnl This code should be moved to the ac_WITH_SLANG
707 dnl We check for the existance of setupterm on curses library
708 dnl this is required to load certain definitions on some termcaps
709 dnl editions (AIX and OSF/1 I seem to remember).
710 dnl Note that we avoid using setupterm
711 case $screen_manager in
717 AC_CHECK_LIB(curses,setupterm,
721 if (key_end == parm_insert_line)
725 [MCLIBS="$MCLIBS -lcurses"
726 AC_DEFINE(USE_SETUPTERM, 1,
727 [Define to use function `setupterm'
728 from `curses' library in S-Lang])])
734 LIBS="$LIBS $posix_libs"
741 if test "x$SAMBAFILES" != x; then
742 AC_CONFIG_SUBDIRS([vfs/samba])
745 AM_CONDITIONAL(USE_EDIT, [test -n "$LIBEDIT_A"])
746 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
747 AM_CONDITIONAL(USE_VFS_NET, [test -n "$NETFILES"])
748 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$undelfs_o"])
749 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$SAMBAFILES"])
750 AM_CONDITIONAL(MCSERV_INSTALL,
751 [test "x$enable_mcserv_install$mcserv" = xyesmcserv])
752 AM_CONDITIONAL(INCLUDED_SLANG,
753 [test "x$slang_use_system_installed_lib" = xfalse])
754 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
755 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
757 AH_BOTTOM([#include <extraconf.h>])
763 vfs/Makefile:vfs/Make-mc.in
788 doc/mc.1 doc/mcedit.1 doc/mcserv.8
790 intl/Makefile po/Makefile.in
793 AC_CONFIG_COMMANDS(potfiles,
794 [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
798 case $screen_manager in
800 screen_manager="${screen_manager}${slang_term}" ;;
806 Source code location: ${srcdir}
808 Compiler flags: ${CFLAGS}
809 File system: ${vfs_type}
811 Screen manager: ${screen_manager}
812 Install console saver: ${install_saver}
813 Mouse support: ${mouse_lib}
814 X11 events support: ${textmode_x11_support}
815 Debugger code: ${mem_debug}
816 With subshell support: ${subshell}
817 Internal editor: ${EDIT_msg}
818 Install path: ${prefix}/bin, ${prefix}/lib/mc