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)
159 AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
160 AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
166 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
167 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
168 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
175 dnl Missing structure components
181 dnl Check availability of some functions
184 AC_CHECK_FUNCS([strerror statfs strftime getsid \
185 memmove truncate initgroups putenv \
186 memset memcpy tcsetattr tcgetattr cfgetospeed \
187 sigaction sigemptyset sigprocmask sigaddset \
188 sysconf setuid setreuid telldir seekdir])
191 dnl getpt is a GNU Extension (glibc 2.1.x)
193 AC_CHECK_FUNCS(getpt)
194 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
196 dnl replacing lstat with statlstat on sco makes it more portable between
198 AC_CHECK_FUNCS(statlstat)
201 dnl If running under AIX, AC_AIX does not tell us that
203 AC_MSG_CHECKING([for AIX defines])
205 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
209 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
211 ], [AC_MSG_RESULT(no)])
214 dnl This is from GNU fileutils, check aclocal.m4 for more information
219 dnl Missing typedefs and replacements
223 AC_CHECK_TYPE(umode_t, int)
224 AC_CHECK_TYPE(off_t, long)
227 AC_CHECK_TYPE(nlink_t, unsigned int)
229 dnl This is needed for regex.c only
230 AC_CHECK_TYPE(uintptr_t,
231 [AC_DEFINE(HAVE_UINTPTR_T, 1,
232 [Define if you have the `uintptr_t' type.])
240 dnl Used to read keyboard modifiers when running under X11.
244 if test "x$no_x" = xyes; then
245 textmode_x11_support="no"
247 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
248 if test "x$mc_cv_g_module_supported" = "xyes" ; then
249 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
250 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
251 dnl functionality is supported on the system. This way, mc will be
252 dnl linked against the gmodule library only when it's really required.
253 GLIB_CFLAGS="$GMODULE_CFLAGS"
254 GLIB_LIBS="$GMODULE_LIBS"
256 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
258 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
259 [Define to enable getting events from X Window System])
260 textmode_x11_support="yes"
264 dnl Try to find static libraries for glib and gmodule.
266 if test x$with_glib_static = xyes; then
268 for i in $GLIB_LIBS; do
279 if test -n "$lib"; then
280 lib1=`echo $i | sed 's/^-l//'`
281 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
282 add="$GLIB_LIBDIR/lib${lib1}.a"
284 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
285 add="$GLIB_LIBDIR/lib${lib}.a"
287 AC_MSG_ERROR([Cannot find static $lib])
291 new_GLIB_LIBS="$new_GLIB_LIBS $add"
293 GLIB_LIBS="$new_GLIB_LIBS"
298 dnl Network related functions
301 AC_CHECK_LIB(nsl, t_accept)
302 AC_CHECK_LIB(socket, socket)
305 AC_CHECK_FUNCS(socket, have_socket=yes)
306 if test $have_socket = no; then
307 # socket is not in the default libraries. See if it's in some other.
308 for lib in bsd socket inet; do
309 AC_CHECK_LIB($lib, socket, [
312 AC_DEFINE(HAVE_SOCKET)
317 have_gethostbyname=no
318 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
319 if test $have_gethostbyname = no; then
320 # gethostbyname is not in the default libraries. See if it's in some other.
321 for lib in bsd socket inet; do
322 AC_CHECK_LIB([$lib], [gethostbyname],
323 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
327 AC_CHECK_FUNCS(socketpair)
330 dnl Sequent wants getprocessstats
332 AC_CHECK_LIB(seq, get_process_stats, [
334 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
335 [Define if you have function `get_process_stats' and
336 have to use that instead of gettimeofday])])
341 if test x$use_vfs = xyes; then
342 AC_MSG_NOTICE([enabling VFS code])
343 vfs_type="Midnight Commander Virtual File System"
347 dnl Check for gpm mouse support (Linux only)
349 mouse_lib="xterm only"
350 AC_ARG_WITH(gpm-mouse,
351 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
356 if test x$with_gpm_mouse != xno; then
357 AC_CHECK_LIB(gpm, Gpm_Repeat,
358 [AC_DEFINE(HAVE_LIBGPM, 1,
359 [Define to enable gpm mouse support on Linux])
360 mouse_lib="gpm and xterm"
361 MCLIBS="$MCLIBS -lgpm"],
362 [AC_MSG_WARN([libgpm is missing or older than 0.18])
369 dnl Check nroff and the options it supports
371 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
378 AC_MSG_CHECKING([for manual formatting macros])
379 AC_CACHE_VAL(ac_cv_mandoc, [
380 nroff -mandoc < /dev/null > /dev/null 2>&1
388 AC_MSG_RESULT([$MANDOC])
390 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
391 AC_CACHE_VAL(ac_cv_man_nocolor, [
392 nroff -c < /dev/null > /dev/null 2>&1
399 MAN_FLAGS=$ac_cv_man_nocolor
400 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
402 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
403 AC_CACHE_VAL(ac_cv_nroff_tascii, [
405 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
407 ac_cv_nroff_tascii=-Tlatin1
409 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
411 ac_cv_nroff_tascii=-Tascii
415 AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
416 MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
424 dnl Check for - option to file
426 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
427 if $HAVE_FILECMD; then
428 AC_MSG_CHECKING([for - option to file command])
429 AC_CACHE_VAL(ac_cv_filestdin, [[
430 cat > conftest.c <<\EOF
437 cat > conftest.sed <<\EOF
441 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
442 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
443 if test "x$filehyphen_1" = "x$filehyphen_2"; then
448 rm conftest.c conftest.sed
451 if test x$ac_cv_filestdin = xyes; then
452 AC_DEFINE(FILE_STDIN, 1,
453 [Define if the file command accepts - for stdin])
455 filestdin=$ac_cv_filestdin
456 AC_MSG_RESULT([$filestdin])
459 dnl Check for -L option to file
462 AC_MSG_CHECKING([for -L option to file command])
463 AC_CACHE_VAL(ac_cv_filel, [
464 file -L . > /dev/null 2>&1
472 if test x$ac_cv_filel = xyes; then
473 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
476 AC_MSG_RESULT([$filel])
480 AC_MSG_CHECKING([for subshell support])
481 AC_ARG_WITH(subshell,
482 [ --with-subshell Compile in concurrent subshell [[yes]]
483 --with-subshell=optional Don't run concurrent shell by default [[no]]],
485 if test x$withval = xoptional
487 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
488 [Define to make subshell support optional])
491 if test x$withval = xyes
495 [dnl Default: enable the subshell support
498 if test "x$result" != xno; then
499 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
500 [Define to enable subshell support])
502 AC_MSG_RESULT([$result])
507 dnl Select the screen library. mcslang is the included S-Lang library.
510 [ --with-screen=LIB Compile with screen library: slang, mcslang or
511 ncurses [[slang if found, else mcslang]]])
513 case x$with_screen in
515 MC_WITH_SLANG(strict)
527 AC_MSG_ERROR([Value of the screen library is incorrect])
533 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
534 dnl Report an error if this option is not applicable.
537 [ --with-termcap Try using termcap database [[only if no terminfo]]],
538 [if test x$with_screen != xmcslang; then
539 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
545 dnl Internal editor support.
548 [ --with-edit Enable internal editor [[yes]]])
550 if test x$with_edit != xno; then
551 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
554 AC_MSG_NOTICE([using internal editor])
560 if test $use_vfs = yes; then
561 AC_ARG_WITH(ext2undel,
562 [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
563 [if test x$withval != xno; then
564 if test x$withval != xyes; then
565 LDFLAGS="$LDFLAGS -L$withval/lib"
566 CPPFLAGS="$CPPFLAGS -I$withval/include"
571 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
576 dnl Check if the OS is supported by the console saver.
585 dnl User visible support for charset conversion.
587 AC_ARG_ENABLE([charset],
588 [ --enable-charset Support for charset selection and conversion [[no]]])
590 if test "x$enable_charset" = xyes; then
591 if test "x$am_cv_func_iconv" != xyes; then
592 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
594 AC_DEFINE(HAVE_CHARSET, 1,
595 [Define to enable charset selection and conversion])
600 if test "$GLIBC21" != yes; then
601 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
609 dnl Libraries used only when building the mc binary
612 dnl Version for the RedHat package, without dashes
613 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
614 AC_SUBST(RPM_VERSION)
616 if test -n "$use_smbfs"; then
617 AC_CONFIG_SUBDIRS([vfs/samba])
620 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
621 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
622 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
623 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
624 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
625 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
626 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
627 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
628 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
630 AH_BOTTOM([#include <extraconf.h>])
668 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
669 doc/es/mc.1 doc/es/Makefile
670 doc/hu/mc.1 doc/hu/Makefile
671 doc/it/mc.1 doc/it/Makefile
672 doc/pl/mc.1 doc/pl/Makefile
673 doc/ru/mc.1 doc/ru/Makefile
684 Source code location: ${srcdir}
686 Compiler flags: ${CFLAGS}
687 File system: ${vfs_type}
689 Screen library: ${screen_msg}
690 Mouse support: ${mouse_lib}
691 X11 events support: ${textmode_x11_support}
692 With subshell support: ${subshell}
693 Internal editor: ${edit_msg}