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.0a)
11 AM_CONFIG_HEADER(config.h)
23 dnl First try glib 2.x. If it's not found, use glib 1.2.x.
24 dnl Keep this check close to the beginning, so that the users
25 dnl without any glib won't have their time wasted by other checks.
29 [ --with-glib12 Force using glib 1.2.x [[no]]])
31 AC_ARG_WITH([glib_static],
32 [ --with-glib-static Link glib statically [[no]]])
35 if test "x$with_glib12" != "xyes"; then
36 PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib_found=yes], [:])
39 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
40 if test "x$glib_found" != "xyes" ; then
41 dnl This temporary variable is a workaround for a bug in Autoconf-2.53
42 glib_path=$PATH:/usr/local/bin
44 dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
45 AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
47 AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
48 AM_PATH_GLIB(1.2.6, , [AC_MSG_ERROR([Test for glib failed.
49 GNU Midnight Commander requires glib 1.2.6 or above.])])
50 dnl Save GLIB_CFLAGS and GLIB_LIBS, since the following call to
51 dnl AM_PATH_GLIB will overwrite them.
52 save_GLIB_CFLAGS="$GLIB_CFLAGS"
53 save_GLIB_LIBS="$GLIB_LIBS"
54 dnl Check for gmodule. Store the flags necessary to compile and
55 dnl link programs using gmodule functionality in GMODULE_CFLAGS
57 AM_PATH_GLIB(1.2.6, [gmodule_found=yes], , [gmodule])
58 GMODULE_CFLAGS="$GLIB_CFLAGS"
59 GMODULE_LIBS="$GLIB_LIBS"
60 GLIB_CFLAGS="$save_GLIB_CFLAGS"
61 GLIB_LIBS="$save_GLIB_LIBS"
62 GLIB_LIBDIR="`$GLIB_CONFIG --exec-prefix`/lib"
64 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
65 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
68 if test "x$gmodule_found" = "xyes" ; then
69 dnl Check if the gmodule functionality supported on this system.
78 AC_CHECK_TOOL(AR, ar, ar)
80 dnl Only list browsers here that can be run in background (i.e. with `&')
81 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
84 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
85 dnl We use only part of the functionality of mmap, so on AIX,
86 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
89 [ --with-mmap Force using the mmap call (only useful on AIX)],
92 ac_cv_func_mmap_fixed_mapped=yes
93 AC_MSG_NOTICE([forcing MMAP support])
96 ac_cv_func_mmap_fixed_mapped=no
97 AC_MSG_NOTICE([disabling MMAP support])
103 dnl Internationalization
107 AM_GNU_GETTEXT_VERSION(0.11.5)
109 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
110 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
113 dnl Determine which help translations we want to install.
114 ALL_DOC_LINGUAS="es hu it pl ru"
117 if test "x$USE_NLS" = xyes; then
118 if test -z "$LINGUAS"; then
119 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
127 for h_lang in $ALL_DOC_LINGUAS; do
128 for lang in $langs; do
129 if test "$lang" = "$h_lang"; then
130 DOC_LINGUAS="$DOC_LINGUAS $lang"
135 AC_SUBST(DOC_LINGUAS)
138 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
140 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
143 dnl Enforce coding standards
145 if test "x$GCC" = xyes; then
146 CFLAGS="$CFLAGS -Wall"
150 dnl OS specific flags.
156 AC_DEFINE(_POSIX_SOURCE)
162 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
163 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
164 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
171 dnl Missing structure components
177 dnl Check availability of some functions
180 AC_CHECK_FUNCS([strerror statfs strftime getsid \
181 memmove truncate initgroups putenv \
182 memset memcpy tcsetattr tcgetattr cfgetospeed \
183 sigaction sigemptyset sigprocmask sigaddset \
184 sysconf setuid setreuid telldir seekdir])
187 dnl getpt is a GNU Extension (glibc 2.1.x)
189 AC_CHECK_FUNCS(getpt)
190 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
192 dnl replacing lstat with statlstat on sco makes it more portable between
194 AC_CHECK_FUNCS(statlstat)
197 dnl If running under AIX, AC_AIX does not tell us that
199 AC_MSG_CHECKING([for AIX defines])
201 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
205 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
207 ], [AC_MSG_RESULT(no)])
210 dnl This is from GNU fileutils, check aclocal.m4 for more information
215 dnl Missing typedefs and replacements
219 AC_CHECK_TYPE(umode_t, int)
220 AC_CHECK_TYPE(off_t, long)
223 AC_CHECK_TYPE(nlink_t, unsigned int)
225 dnl This is needed for regex.c only
226 AC_CHECK_TYPE(uintptr_t,
227 [AC_DEFINE(HAVE_UINTPTR_T, 1,
228 [Define if you have the `uintptr_t' type.])
236 dnl Used to read keyboard modifiers when running under X11.
240 if test "x$no_x" = xyes; then
241 textmode_x11_support="no"
243 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
244 if test "x$mc_cv_g_module_supported" = "xyes" ; then
245 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
246 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
247 dnl functionality is supported on the system. This way, mc will be
248 dnl linked against the gmodule library only when it's really required.
249 GLIB_CFLAGS="$GMODULE_CFLAGS"
250 GLIB_LIBS="$GMODULE_LIBS"
252 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
254 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
255 [Define to enable getting events from X Window System])
256 textmode_x11_support="yes"
260 dnl Try to find static libraries for glib and gmodule.
262 if test x$with_glib_static = xyes; then
264 for i in $GLIB_LIBS; do
275 if test -n "$lib"; then
276 lib1=`echo $i | sed 's/^-l//'`
277 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
278 add="$GLIB_LIBDIR/lib${lib1}.a"
280 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
281 add="$GLIB_LIBDIR/lib${lib}.a"
283 AC_MSG_ERROR([Cannot find static $lib])
287 new_GLIB_LIBS="$new_GLIB_LIBS $add"
289 GLIB_LIBS="$new_GLIB_LIBS"
294 dnl Network related functions
297 AC_CHECK_LIB(nsl, t_accept)
298 AC_CHECK_LIB(socket, socket)
301 AC_CHECK_FUNCS(socket, have_socket=yes)
302 if test $have_socket = no; then
303 # socket is not in the default libraries. See if it's in some other.
304 for lib in bsd socket inet; do
305 AC_CHECK_LIB($lib, socket, [
308 AC_DEFINE(HAVE_SOCKET)
313 have_gethostbyname=no
314 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
315 if test $have_gethostbyname = no; then
316 # gethostbyname is not in the default libraries. See if it's in some other.
317 for lib in bsd socket inet; do
318 AC_CHECK_LIB([$lib], [gethostbyname],
319 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
323 AC_CHECK_FUNCS(socketpair)
326 dnl Sequent wants getprocessstats
328 AC_CHECK_LIB(seq, get_process_stats, [
330 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
331 [Define if you have function `get_process_stats' and
332 have to use that instead of gettimeofday])])
337 if test x$use_vfs = xyes; then
338 AC_MSG_NOTICE([enabling VFS code])
339 vfs_type="Midnight Commander Virtual File System"
343 dnl Check for gpm mouse support (Linux only)
345 mouse_lib="xterm only"
346 AC_ARG_WITH(gpm-mouse,
347 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
352 if test x$with_gpm_mouse != xno; then
353 AC_CHECK_LIB(gpm, Gpm_Repeat,
354 [AC_DEFINE(HAVE_LIBGPM, 1,
355 [Define to enable gpm mouse support on Linux])
356 mouse_lib="gpm and xterm"
357 MCLIBS="$MCLIBS -lgpm"],
358 [AC_MSG_WARN([libgpm is missing or older than 0.18])
365 dnl Check nroff and the options it supports
367 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
374 AC_MSG_CHECKING([for manual formatting macros])
375 AC_CACHE_VAL(ac_cv_mandoc, [
376 nroff -mandoc < /dev/null > /dev/null 2>&1
384 AC_MSG_RESULT([$MANDOC])
386 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
387 AC_CACHE_VAL(ac_cv_man_nocolor, [
388 nroff -c < /dev/null > /dev/null 2>&1
395 MAN_FLAGS=$ac_cv_man_nocolor
396 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
398 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
399 AC_CACHE_VAL(ac_cv_nroff_tascii, [
401 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
403 ac_cv_nroff_tascii=-Tlatin1
405 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
407 ac_cv_nroff_tascii=-Tascii
411 AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
412 MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
420 dnl Check for - option to file
422 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
423 if $HAVE_FILECMD; then
424 AC_MSG_CHECKING([for - option to file command])
425 AC_CACHE_VAL(ac_cv_filestdin, [[
426 cat > conftest.c <<\EOF
433 cat > conftest.sed <<\EOF
437 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
438 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
439 if test "x$filehyphen_1" = "x$filehyphen_2"; then
444 rm conftest.c conftest.sed
447 if test x$ac_cv_filestdin = xyes; then
448 AC_DEFINE(FILE_STDIN, 1,
449 [Define if the file command accepts - for stdin])
451 filestdin=$ac_cv_filestdin
452 AC_MSG_RESULT([$filestdin])
455 dnl Check for -L option to file
458 AC_MSG_CHECKING([for -L option to file command])
459 AC_CACHE_VAL(ac_cv_filel, [
460 file -L . > /dev/null 2>&1
468 if test x$ac_cv_filel = xyes; then
469 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
472 AC_MSG_RESULT([$filel])
476 AC_MSG_CHECKING([for subshell support])
477 AC_ARG_WITH(subshell,
478 [ --with-subshell Compile in concurrent subshell [[yes]]
479 --with-subshell=optional Don't run concurrent shell by default [[no]]],
481 if test x$withval = xoptional
483 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
484 [Define to make subshell support optional])
487 if test x$withval = xyes
491 [dnl Default: enable the subshell support
494 if test "x$result" != xno; then
495 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
496 [Define to enable subshell support])
498 AC_MSG_RESULT([$result])
503 dnl Select the screen library. mcslang is the included S-Lang library.
506 [ --with-screen=LIB Compile with screen library: slang, mcslang or
507 ncurses [[slang if found, else mcslang]]])
509 case x$with_screen in
511 MC_WITH_SLANG(strict)
523 AC_MSG_ERROR([Value of the screen library is incorrect])
529 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
530 dnl Report an error if this option is not applicable.
533 [ --with-termcap Try using termcap database [[only if no terminfo]]],
534 [if test x$with_screen != xmcslang; then
535 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
541 dnl Internal editor support.
544 [ --with-edit Enable internal editor [[yes]]])
546 if test x$with_edit != xno; then
547 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
550 AC_MSG_NOTICE([using internal editor])
556 if test $use_vfs = yes; then
557 AC_ARG_WITH(ext2undel,
558 [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
559 [if test x$withval != xno; then
560 if test x$withval != xyes; then
561 LDFLAGS="$LDFLAGS -L$withval/lib"
562 CPPFLAGS="$CPPFLAGS -I$withval/include"
567 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
572 dnl Check if the OS is supported by the console saver.
581 dnl User visible support for charset conversion.
583 AC_ARG_ENABLE([charset],
584 [ --enable-charset Support for charset selection and conversion [[no]]])
586 if test "x$enable_charset" = xyes; then
587 if test "x$am_cv_func_iconv" != xyes; then
588 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
590 AC_DEFINE(HAVE_CHARSET, 1,
591 [Define to enable charset selection and conversion])
596 if test "$GLIBC21" != yes; then
597 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
605 dnl Libraries used only when building the mc binary
608 dnl Version for the RedHat package, without dashes
609 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
610 AC_SUBST(RPM_VERSION)
612 if test -n "$use_smbfs"; then
613 AC_CONFIG_SUBDIRS([vfs/samba])
616 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
617 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
618 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
619 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
620 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
621 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
622 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
623 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
624 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
626 AH_BOTTOM([#include <extraconf.h>])
665 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
666 doc/es/mc.1 doc/es/Makefile
667 doc/hu/mc.1 doc/hu/Makefile
668 doc/it/mc.1 doc/it/Makefile
669 doc/pl/mc.1 doc/pl/Makefile
670 doc/ru/mc.1 doc/ru/Makefile
681 Source code location: ${srcdir}
683 Compiler flags: ${CFLAGS}
684 File system: ${vfs_type}
686 Screen library: ${screen_msg}
687 Mouse support: ${mouse_lib}
688 X11 events support: ${textmode_x11_support}
689 With subshell support: ${subshell}
690 Internal editor: ${edit_msg}