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])
150 dnl Extended Character Sets
152 AC_ARG_ENABLE([extcharset],
153 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
154 if test x"$enable_extcharset" = x"yes"; then
155 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
159 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
160 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
161 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
162 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
163 sys/mkdev.h wchar.h wctype.h])
170 dnl Missing structure components
171 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
175 dnl Check availability of some functions
178 AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
179 putenv setreuid setuid statfs strerror strftime \
180 sysconf tcgetattr tcsetattr truncate getgrouplist])
182 dnl S-Lang needs all four functions to be defined to use POSIX signal API
183 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
184 if test x$slang_signals != xno; then
185 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
189 dnl getpt is a GNU Extension (glibc 2.1.x)
191 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
192 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
194 dnl replacing lstat with statlstat on sco makes it more portable between
196 AC_CHECK_FUNCS(statlstat)
199 dnl If running under AIX, AC_AIX does not tell us that
201 AC_MSG_CHECKING([for AIX defines])
203 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
207 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
209 ], [AC_MSG_RESULT(no)])
212 dnl This is from GNU fileutils, check aclocal.m4 for more information
217 dnl Missing typedefs and replacements
221 AC_CHECK_TYPE(off_t, long)
224 AC_CHECK_TYPE(nlink_t, unsigned int)
225 AC_CHECK_TYPES([socklen_t],,,
227 #include <sys/types.h>
228 #include <sys/socket.h>
231 dnl This is needed for regex.c only
232 AC_CHECK_TYPE(uintptr_t,
233 [AC_DEFINE(HAVE_UINTPTR_T, 1,
234 [Define if you have the `uintptr_t' type.])
242 dnl Used to read keyboard modifiers when running under X11.
246 if test "x$no_x" = xyes; then
247 textmode_x11_support="no"
249 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
250 if test "x$mc_cv_g_module_supported" = "xyes" ; then
251 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
252 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
253 dnl functionality is supported on the system. This way, mc will be
254 dnl linked against the gmodule library only when it's really required.
255 GLIB_CFLAGS="$GMODULE_CFLAGS"
256 GLIB_LIBS="$GMODULE_LIBS"
258 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
260 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
261 [Define to enable getting events from X Window System])
262 textmode_x11_support="yes"
266 dnl Try to find static libraries for glib and gmodule.
268 if test x$with_glib_static = xyes; then
270 for i in $GLIB_LIBS; do
281 if test -n "$lib"; then
282 lib1=`echo $i | sed 's/^-l//'`
283 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
284 add="$GLIB_LIBDIR/lib${lib1}.a"
286 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
287 add="$GLIB_LIBDIR/lib${lib}.a"
289 AC_MSG_ERROR([Cannot find static $lib])
293 new_GLIB_LIBS="$new_GLIB_LIBS $add"
295 GLIB_LIBS="$new_GLIB_LIBS"
300 dnl Network related functions
303 AC_SEARCH_LIBS([socket], [socket])
304 AC_SEARCH_LIBS([gethostbyname], [nsl])
307 dnl Sequent wants getprocessstats
309 AC_CHECK_LIB(seq, get_process_stats, [
311 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
312 [Define if you have function `get_process_stats' and
313 have to use that instead of gettimeofday])])
318 if test x$use_vfs = xyes; then
319 AC_MSG_NOTICE([enabling VFS code])
320 vfs_type="Midnight Commander Virtual File System"
324 dnl Check for gpm mouse support (Linux only)
326 mouse_lib="xterm only"
327 AC_ARG_WITH(gpm-mouse,
328 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
333 if test x$with_gpm_mouse != xno; then
334 AC_CHECK_LIB(gpm, Gpm_Repeat,
335 [AC_DEFINE(HAVE_LIBGPM, 1,
336 [Define to enable gpm mouse support on Linux])
337 mouse_lib="gpm and xterm"
338 MCLIBS="$MCLIBS -lgpm"],
339 [AC_MSG_WARN([libgpm is missing or older than 0.18])
346 dnl Check nroff and the options it supports
348 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
355 AC_MSG_CHECKING([for manual formatting macros])
356 AC_CACHE_VAL(mc_cv_mandoc, [
357 nroff -mandoc < /dev/null > /dev/null 2>&1
365 AC_MSG_RESULT([$MANDOC])
367 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
368 AC_CACHE_VAL(mc_cv_man_nocolor, [
369 nroff -c < /dev/null > /dev/null 2>&1
376 MAN_FLAGS=$mc_cv_man_nocolor
377 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
379 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
380 AC_CACHE_VAL(mc_cv_nroff_tascii, [
382 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
384 mc_cv_nroff_tascii=-Tlatin1
386 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
388 mc_cv_nroff_tascii=-Tascii
392 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
393 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
401 dnl Check for -L option to file
403 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
404 if $HAVE_FILECMD; then
405 AC_MSG_CHECKING([for -L option to file command])
406 AC_CACHE_VAL(mc_cv_filel, [
407 file -L . > /dev/null 2>&1
414 if test x$mc_cv_filel = xyes; then
415 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
418 AC_MSG_RESULT([$filel])
422 AC_MSG_CHECKING([for subshell support])
423 AC_ARG_WITH(subshell,
424 [ --with-subshell Compile in concurrent subshell [[yes]]
425 --with-subshell=optional Don't run concurrent shell by default [[no]]],
427 if test x$withval = xoptional
429 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
430 [Define to make subshell support optional])
433 if test x$withval = xyes
437 [dnl Default: enable the subshell support
440 if test "x$result" != xno; then
441 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
442 [Define to enable subshell support])
444 AC_MSG_RESULT([$result])
449 dnl Select the screen library. mcslang is the included S-Lang library.
452 [ --with-screen=LIB Compile with screen library: slang, mcslang or
453 ncurses [[slang if found, else mcslang]]])
455 case x$with_screen in
457 MC_WITH_SLANG(strict)
469 AC_MSG_ERROR([Value of the screen library is incorrect])
475 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
476 dnl Report an error if this option is not applicable.
479 [ --with-termcap Try using termcap database [[only if no terminfo]]],
480 [if test x$with_screen != xmcslang; then
481 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
487 dnl Internal editor support.
490 [ --with-edit Enable internal editor [[yes]]])
492 if test x$with_edit != xno; then
493 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
496 AC_MSG_NOTICE([using internal editor])
502 dnl Check if the OS is supported by the console saver.
510 dnl Support for background operations
511 AC_ARG_ENABLE([background],
512 [ --enable-background Support for background file operations [[yes]]])
513 if test "x$enable_background" != xno; then
514 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
519 dnl User visible support for charset conversion.
521 AC_ARG_ENABLE([charset],
522 [ --enable-charset Support for charset selection and conversion [[no]]])
525 if test "x$enable_charset" = xyes; then
526 if test "x$am_cv_func_iconv" != xyes; then
527 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
529 AC_DEFINE(HAVE_CHARSET, 1,
530 [Define to enable charset selection and conversion])
536 if test "$GLIBC21" != yes; then
537 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
540 dnl If default CFLAGS is used with gcc, add -Wall
541 if test -z "$ac_env_CFLAGS_set"; then
542 if test -n "$GCC"; then
543 CFLAGS="$CFLAGS -Wall"
552 dnl Libraries used only when building the mc binary
555 dnl Version for the RedHat package, without dashes
556 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
557 AC_SUBST(RPM_VERSION)
559 if test -n "$use_smbfs"; then
560 AC_CONFIG_SUBDIRS([vfs/samba])
563 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
564 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
565 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
566 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
567 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
568 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
569 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
570 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
571 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
611 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
612 doc/es/mc.1 doc/es/Makefile
613 doc/hu/mc.1 doc/hu/Makefile
614 doc/it/mc.1 doc/it/Makefile
615 doc/pl/mc.1 doc/pl/Makefile
616 doc/ru/mc.1 doc/ru/Makefile
617 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
628 Source code location: ${srcdir}
630 Compiler flags: ${CFLAGS}
631 File system: ${vfs_type}
633 Screen library: ${screen_msg}
634 Mouse support: ${mouse_lib}
635 X11 events support: ${textmode_x11_support}
636 With subshell support: ${subshell}
637 Internal editor: ${edit_msg}
638 Support for charset: ${charset_msg}