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.1a)
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 OS specific flags.
143 AC_DEFINE(_POSIX_SOURCE)
146 AC_DEFINE(_GNU_SOURCE,, [Define to request GNU feature set on Linux])
152 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
153 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
154 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
155 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
163 dnl Missing structure components
164 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
168 dnl Check availability of some functions
171 AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
172 putenv setreuid setuid statfs strerror strftime \
173 sysconf tcgetattr tcsetattr truncate getgrouplist])
175 dnl S-Lang needs all four functions to be defined to use POSIX signal API
176 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
177 if test x$slang_signals != xno; then
178 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
182 dnl getpt is a GNU Extension (glibc 2.1.x)
184 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
185 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
187 dnl replacing lstat with statlstat on sco makes it more portable between
189 AC_CHECK_FUNCS(statlstat)
192 dnl If running under AIX, AC_AIX does not tell us that
194 AC_MSG_CHECKING([for AIX defines])
196 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
200 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
202 ], [AC_MSG_RESULT(no)])
205 dnl This is from GNU fileutils, check aclocal.m4 for more information
210 dnl Missing typedefs and replacements
214 AC_CHECK_TYPE(umode_t, int)
215 AC_CHECK_TYPE(off_t, long)
218 AC_CHECK_TYPE(nlink_t, unsigned int)
219 AC_CHECK_TYPES([socklen_t],
220 AC_DEFINE([HAVE_C_TYPE_SOCKLEN_T], [1], [Define to 1 if socklen_t is defined by <sys/socket.h>]),,
221 [#include <sys/types.h>
222 #include <sys/socket.h>])
224 dnl This is needed for regex.c only
225 AC_CHECK_TYPE(uintptr_t,
226 [AC_DEFINE(HAVE_UINTPTR_T, 1,
227 [Define if you have the `uintptr_t' type.])
235 dnl Used to read keyboard modifiers when running under X11.
239 if test "x$no_x" = xyes; then
240 textmode_x11_support="no"
242 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
243 if test "x$mc_cv_g_module_supported" = "xyes" ; then
244 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
245 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
246 dnl functionality is supported on the system. This way, mc will be
247 dnl linked against the gmodule library only when it's really required.
248 GLIB_CFLAGS="$GMODULE_CFLAGS"
249 GLIB_LIBS="$GMODULE_LIBS"
251 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
253 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
254 [Define to enable getting events from X Window System])
255 textmode_x11_support="yes"
259 dnl Try to find static libraries for glib and gmodule.
261 if test x$with_glib_static = xyes; then
263 for i in $GLIB_LIBS; do
274 if test -n "$lib"; then
275 lib1=`echo $i | sed 's/^-l//'`
276 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
277 add="$GLIB_LIBDIR/lib${lib1}.a"
279 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
280 add="$GLIB_LIBDIR/lib${lib}.a"
282 AC_MSG_ERROR([Cannot find static $lib])
286 new_GLIB_LIBS="$new_GLIB_LIBS $add"
288 GLIB_LIBS="$new_GLIB_LIBS"
293 dnl Network related functions
296 AC_CHECK_LIB(nsl, t_accept)
297 AC_CHECK_LIB(socket, socket)
300 AC_CHECK_FUNCS(socket, have_socket=yes)
301 if test $have_socket = no; then
302 # socket is not in the default libraries. See if it's in some other.
303 for lib in bsd socket inet; do
304 AC_CHECK_LIB($lib, socket, [
307 AC_DEFINE(HAVE_SOCKET)
312 have_gethostbyname=no
313 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
314 if test $have_gethostbyname = no; then
315 # gethostbyname is not in the default libraries. See if it's in some other.
316 for lib in bsd socket inet; do
317 AC_CHECK_LIB([$lib], [gethostbyname],
318 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
323 dnl Sequent wants getprocessstats
325 AC_CHECK_LIB(seq, get_process_stats, [
327 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
328 [Define if you have function `get_process_stats' and
329 have to use that instead of gettimeofday])])
334 if test x$use_vfs = xyes; then
335 AC_MSG_NOTICE([enabling VFS code])
336 vfs_type="Midnight Commander Virtual File System"
340 dnl Check for gpm mouse support (Linux only)
342 mouse_lib="xterm only"
343 AC_ARG_WITH(gpm-mouse,
344 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
349 if test x$with_gpm_mouse != xno; then
350 AC_CHECK_LIB(gpm, Gpm_Repeat,
351 [AC_DEFINE(HAVE_LIBGPM, 1,
352 [Define to enable gpm mouse support on Linux])
353 mouse_lib="gpm and xterm"
354 MCLIBS="$MCLIBS -lgpm"],
355 [AC_MSG_WARN([libgpm is missing or older than 0.18])
362 dnl Check nroff and the options it supports
364 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
371 AC_MSG_CHECKING([for manual formatting macros])
372 AC_CACHE_VAL(mc_cv_mandoc, [
373 nroff -mandoc < /dev/null > /dev/null 2>&1
381 AC_MSG_RESULT([$MANDOC])
383 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
384 AC_CACHE_VAL(mc_cv_man_nocolor, [
385 nroff -c < /dev/null > /dev/null 2>&1
392 MAN_FLAGS=$mc_cv_man_nocolor
393 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
395 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
396 AC_CACHE_VAL(mc_cv_nroff_tascii, [
398 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
400 mc_cv_nroff_tascii=-Tlatin1
402 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
404 mc_cv_nroff_tascii=-Tascii
408 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
409 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
417 dnl Check for -L option to file
419 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
420 if $HAVE_FILECMD; then
421 AC_MSG_CHECKING([for -L option to file command])
422 AC_CACHE_VAL(mc_cv_filel, [
423 file -L . > /dev/null 2>&1
430 if test x$mc_cv_filel = xyes; then
431 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
434 AC_MSG_RESULT([$filel])
438 AC_MSG_CHECKING([for subshell support])
439 AC_ARG_WITH(subshell,
440 [ --with-subshell Compile in concurrent subshell [[yes]]
441 --with-subshell=optional Don't run concurrent shell by default [[no]]],
443 if test x$withval = xoptional
445 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
446 [Define to make subshell support optional])
449 if test x$withval = xyes
453 [dnl Default: enable the subshell support
456 if test "x$result" != xno; then
457 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
458 [Define to enable subshell support])
460 AC_MSG_RESULT([$result])
465 dnl Select the screen library. mcslang is the included S-Lang library.
468 [ --with-screen=LIB Compile with screen library: slang, mcslang or
469 ncurses [[slang if found, else mcslang]]])
471 case x$with_screen in
473 MC_WITH_SLANG(strict)
485 AC_MSG_ERROR([Value of the screen library is incorrect])
491 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
492 dnl Report an error if this option is not applicable.
495 [ --with-termcap Try using termcap database [[only if no terminfo]]],
496 [if test x$with_screen != xmcslang; then
497 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
503 dnl Internal editor support.
506 [ --with-edit Enable internal editor [[yes]]])
508 if test x$with_edit != xno; then
509 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
512 AC_MSG_NOTICE([using internal editor])
518 dnl Check if the OS is supported by the console saver.
526 dnl Support for background operations
527 AC_ARG_ENABLE([background],
528 [ --enable-background Support for background file operations [[yes]]])
529 if test "x$enable_background" != xno; then
530 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
535 dnl User visible support for charset conversion.
537 AC_ARG_ENABLE([charset],
538 [ --enable-charset Support for charset selection and conversion [[no]]])
541 if test "x$enable_charset" = xyes; then
542 if test "x$am_cv_func_iconv" != xyes; then
543 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
545 AC_DEFINE(HAVE_CHARSET, 1,
546 [Define to enable charset selection and conversion])
552 if test "$GLIBC21" != yes; then
553 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
556 MC_ARG_ENABLE_DEVELOPER_MODE()
563 dnl Libraries used only when building the mc binary
566 dnl Version for the RedHat package, without dashes
567 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
568 AC_SUBST(RPM_VERSION)
570 if test -n "$use_smbfs"; then
571 AC_CONFIG_SUBDIRS([vfs/samba])
574 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
575 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
576 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
577 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
578 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
579 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
580 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
581 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
582 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
619 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
620 doc/es/mc.1 doc/es/Makefile
621 doc/hu/mc.1 doc/hu/Makefile
622 doc/it/mc.1 doc/it/Makefile
623 doc/pl/mc.1 doc/pl/Makefile
624 doc/ru/mc.1 doc/ru/Makefile
625 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
636 Source code location: ${srcdir}
638 Compiler flags: ${CFLAGS}
639 File system: ${vfs_type}
641 Screen library: ${screen_msg}
642 Mouse support: ${mouse_lib}
643 X11 events support: ${textmode_x11_support}
644 With subshell support: ${subshell}
645 Internal editor: ${edit_msg}
646 Support for charset: ${charset_msg}