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.1-pre1a)
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 dnl Used in src/glibcompat.c
65 AC_CHECK_FUNCS([strlcpy])
67 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
68 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
71 if test "x$gmodule_found" = "xyes" ; then
72 dnl Check if the gmodule functionality supported on this system.
81 AC_CHECK_TOOL(AR, ar, ar)
83 dnl Only list browsers here that can be run in background (i.e. with `&')
84 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
87 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
88 dnl We use only part of the functionality of mmap, so on AIX,
89 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
92 [ --with-mmap Use the mmap call [[yes if found]]])
93 if test x$with_mmap != xno; then
94 if test x$with_mmap = x; then
97 AC_DEFINE(HAVE_MMAP, 1)
102 dnl Internationalization
106 AM_GNU_GETTEXT_VERSION(0.11.5)
108 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
109 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
112 dnl Determine which help translations we want to install.
113 ALL_DOC_LINGUAS="es hu it pl ru sr"
116 if test "x$USE_NLS" = xyes; then
117 if test -z "$LINGUAS"; then
118 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
126 for h_lang in $ALL_DOC_LINGUAS; do
127 for lang in $langs; do
128 if test "$lang" = "$h_lang"; then
129 DOC_LINGUAS="$DOC_LINGUAS $lang"
134 AC_SUBST(DOC_LINGUAS)
137 dnl Enforce coding standards
139 if test "x$GCC" = xyes; then
140 CFLAGS="$CFLAGS -Wall"
144 dnl OS specific flags.
150 AC_DEFINE(_POSIX_SOURCE)
156 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
157 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
158 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
165 dnl Missing structure components
166 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
170 dnl Check availability of some functions
173 AC_CHECK_FUNCS([cfgetospeed getsid initgroups memcpy memmove memset \
174 putenv setreuid setuid statfs strerror strftime \
175 sysconf tcgetattr tcsetattr truncate])
177 dnl S-Lang needs all four functions to be defined to use POSIX signal API
178 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
179 if test x$slang_signals != xno; then
180 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
184 dnl getpt is a GNU Extension (glibc 2.1.x)
186 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
187 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
189 dnl replacing lstat with statlstat on sco makes it more portable between
191 AC_CHECK_FUNCS(statlstat)
194 dnl If running under AIX, AC_AIX does not tell us that
196 AC_MSG_CHECKING([for AIX defines])
198 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
202 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
204 ], [AC_MSG_RESULT(no)])
207 dnl This is from GNU fileutils, check aclocal.m4 for more information
212 dnl Missing typedefs and replacements
216 AC_CHECK_TYPE(umode_t, int)
217 AC_CHECK_TYPE(off_t, long)
220 AC_CHECK_TYPE(nlink_t, unsigned int)
222 dnl This is needed for regex.c only
223 AC_CHECK_TYPE(uintptr_t,
224 [AC_DEFINE(HAVE_UINTPTR_T, 1,
225 [Define if you have the `uintptr_t' type.])
233 dnl Used to read keyboard modifiers when running under X11.
237 if test "x$no_x" = xyes; then
238 textmode_x11_support="no"
240 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
241 if test "x$mc_cv_g_module_supported" = "xyes" ; then
242 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
243 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
244 dnl functionality is supported on the system. This way, mc will be
245 dnl linked against the gmodule library only when it's really required.
246 GLIB_CFLAGS="$GMODULE_CFLAGS"
247 GLIB_LIBS="$GMODULE_LIBS"
249 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
251 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
252 [Define to enable getting events from X Window System])
253 textmode_x11_support="yes"
257 dnl Try to find static libraries for glib and gmodule.
259 if test x$with_glib_static = xyes; then
261 for i in $GLIB_LIBS; do
272 if test -n "$lib"; then
273 lib1=`echo $i | sed 's/^-l//'`
274 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
275 add="$GLIB_LIBDIR/lib${lib1}.a"
277 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
278 add="$GLIB_LIBDIR/lib${lib}.a"
280 AC_MSG_ERROR([Cannot find static $lib])
284 new_GLIB_LIBS="$new_GLIB_LIBS $add"
286 GLIB_LIBS="$new_GLIB_LIBS"
291 dnl Network related functions
294 AC_CHECK_LIB(nsl, t_accept)
295 AC_CHECK_LIB(socket, socket)
298 AC_CHECK_FUNCS(socket, have_socket=yes)
299 if test $have_socket = no; then
300 # socket is not in the default libraries. See if it's in some other.
301 for lib in bsd socket inet; do
302 AC_CHECK_LIB($lib, socket, [
305 AC_DEFINE(HAVE_SOCKET)
310 have_gethostbyname=no
311 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
312 if test $have_gethostbyname = no; then
313 # gethostbyname is not in the default libraries. See if it's in some other.
314 for lib in bsd socket inet; do
315 AC_CHECK_LIB([$lib], [gethostbyname],
316 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
321 dnl Sequent wants getprocessstats
323 AC_CHECK_LIB(seq, get_process_stats, [
325 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
326 [Define if you have function `get_process_stats' and
327 have to use that instead of gettimeofday])])
332 if test x$use_vfs = xyes; then
333 AC_MSG_NOTICE([enabling VFS code])
334 vfs_type="Midnight Commander Virtual File System"
338 dnl Check for gpm mouse support (Linux only)
340 mouse_lib="xterm only"
341 AC_ARG_WITH(gpm-mouse,
342 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
347 if test x$with_gpm_mouse != xno; then
348 AC_CHECK_LIB(gpm, Gpm_Repeat,
349 [AC_DEFINE(HAVE_LIBGPM, 1,
350 [Define to enable gpm mouse support on Linux])
351 mouse_lib="gpm and xterm"
352 MCLIBS="$MCLIBS -lgpm"],
353 [AC_MSG_WARN([libgpm is missing or older than 0.18])
360 dnl Check nroff and the options it supports
362 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
369 AC_MSG_CHECKING([for manual formatting macros])
370 AC_CACHE_VAL(mc_cv_mandoc, [
371 nroff -mandoc < /dev/null > /dev/null 2>&1
379 AC_MSG_RESULT([$MANDOC])
381 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
382 AC_CACHE_VAL(mc_cv_man_nocolor, [
383 nroff -c < /dev/null > /dev/null 2>&1
390 MAN_FLAGS=$mc_cv_man_nocolor
391 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
393 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
394 AC_CACHE_VAL(mc_cv_nroff_tascii, [
396 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
398 mc_cv_nroff_tascii=-Tlatin1
400 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
402 mc_cv_nroff_tascii=-Tascii
406 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
407 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
415 dnl Check for -L option to file
417 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
418 if $HAVE_FILECMD; then
419 AC_MSG_CHECKING([for -L option to file command])
420 AC_CACHE_VAL(mc_cv_filel, [
421 file -L . > /dev/null 2>&1
428 if test x$mc_cv_filel = xyes; then
429 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
432 AC_MSG_RESULT([$filel])
436 AC_MSG_CHECKING([for subshell support])
437 AC_ARG_WITH(subshell,
438 [ --with-subshell Compile in concurrent subshell [[yes]]
439 --with-subshell=optional Don't run concurrent shell by default [[no]]],
441 if test x$withval = xoptional
443 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
444 [Define to make subshell support optional])
447 if test x$withval = xyes
451 [dnl Default: enable the subshell support
454 if test "x$result" != xno; then
455 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
456 [Define to enable subshell support])
458 AC_MSG_RESULT([$result])
463 dnl Select the screen library. mcslang is the included S-Lang library.
466 [ --with-screen=LIB Compile with screen library: slang, mcslang or
467 ncurses [[slang if found, else mcslang]]])
469 case x$with_screen in
471 MC_WITH_SLANG(strict)
483 AC_MSG_ERROR([Value of the screen library is incorrect])
489 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
490 dnl Report an error if this option is not applicable.
493 [ --with-termcap Try using termcap database [[only if no terminfo]]],
494 [if test x$with_screen != xmcslang; then
495 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
501 dnl Internal editor support.
504 [ --with-edit Enable internal editor [[yes]]])
506 if test x$with_edit != xno; then
507 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
510 AC_MSG_NOTICE([using internal editor])
516 dnl Check if the OS is supported by the console saver.
524 dnl Support for background operations
525 AC_ARG_ENABLE([background],
526 [ --enable-background Support for background file operations [[yes]]])
527 if test "x$enable_background" != xno; then
528 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
533 dnl User visible support for charset conversion.
535 AC_ARG_ENABLE([charset],
536 [ --enable-charset Support for charset selection and conversion [[no]]])
538 if test "x$enable_charset" = xyes; then
539 if test "x$am_cv_func_iconv" != xyes; then
540 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
542 AC_DEFINE(HAVE_CHARSET, 1,
543 [Define to enable charset selection and conversion])
548 if test "$GLIBC21" != yes; then
549 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
557 dnl Libraries used only when building the mc binary
560 dnl Version for the RedHat package, without dashes
561 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
562 AC_SUBST(RPM_VERSION)
564 if test -n "$use_smbfs"; then
565 AC_CONFIG_SUBDIRS([vfs/samba])
568 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
569 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
570 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
571 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
572 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
573 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
574 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
575 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
576 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
614 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
615 doc/es/mc.1 doc/es/Makefile
616 doc/hu/mc.1 doc/hu/Makefile
617 doc/it/mc.1 doc/it/Makefile
618 doc/pl/mc.1 doc/pl/Makefile
619 doc/ru/mc.1 doc/ru/Makefile
620 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
631 Source code location: ${srcdir}
633 Compiler flags: ${CFLAGS}
634 File system: ${vfs_type}
636 Screen library: ${screen_msg}
637 Mouse support: ${mouse_lib}
638 X11 events support: ${textmode_x11_support}
639 With subshell support: ${subshell}
640 Internal editor: ${edit_msg}