2 dnl Configure.in file for the Midnight Commander
5 AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
8 AC_CONFIG_SRCDIR(src/main.c)
9 AC_CONFIG_AUX_DIR(config)
10 AM_INIT_AUTOMAKE(mc, 4.6.2)
12 AM_CONFIG_HEADER(config.h)
17 AC_USE_SYSTEM_EXTENSIONS
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
104 AM_GNU_GETTEXT(no-libtool, need-ngettext)
105 AM_GNU_GETTEXT_VERSION(0.14.3)
107 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
108 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
111 dnl Determine which help translations we want to install.
112 ALL_DOC_LINGUAS="es hu it pl ru sr"
115 if test "x$USE_NLS" = xyes; then
116 if test -z "$LINGUAS"; then
117 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
125 for h_lang in $ALL_DOC_LINGUAS; do
126 for lang in $langs; do
127 if test "$lang" = "$h_lang"; then
128 DOC_LINGUAS="$DOC_LINGUAS $lang"
133 AC_SUBST(DOC_LINGUAS)
136 dnl OS specific flags.
142 AC_DEFINE(_POSIX_SOURCE)
146 dnl Extended Character Sets
148 AC_ARG_ENABLE([extcharset],
149 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
150 if test x"$enable_extcharset" = x"yes"; then
151 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
155 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
156 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
157 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
158 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
159 sys/mkdev.h wchar.h wctype.h])
166 dnl Missing structure components
167 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
171 dnl Check availability of some functions
177 getegid geteuid getgid getsid getuid \
179 memcpy memmove memset \
181 setreuid setuid statfs strerror strftime sysconf \
182 tcgetattr tcsetattr truncate \
185 dnl S-Lang needs all four functions to be defined to use POSIX signal API
186 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
187 if test x$slang_signals != xno; then
188 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
192 dnl getpt is a GNU Extension (glibc 2.1.x)
194 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
195 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
197 dnl replacing lstat with statlstat on sco makes it more portable between
199 AC_CHECK_FUNCS(statlstat)
202 dnl If running under AIX, AC_AIX does not tell us that
204 AC_MSG_CHECKING([for AIX defines])
206 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
210 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
212 ], [AC_MSG_RESULT(no)])
215 dnl This is from GNU fileutils, check aclocal.m4 for more information
220 dnl Missing typedefs and replacements
223 AC_CHECK_SIZEOF(long)
224 AC_CHECK_SIZEOF(long long)
227 AC_CHECK_SIZEOF(off_t)
230 AC_CHECK_TYPE(nlink_t, unsigned int)
231 AC_CHECK_TYPES([socklen_t],,,
233 #include <sys/types.h>
234 #include <sys/socket.h>
237 dnl This is needed for regex.c only
238 AC_CHECK_TYPE(uintptr_t,
239 [AC_DEFINE(HAVE_UINTPTR_T, 1,
240 [Define if you have the `uintptr_t' type.])
248 dnl Used to read keyboard modifiers when running under X11.
252 if test "x$no_x" = xyes; then
253 textmode_x11_support="no"
255 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
256 if test "x$mc_cv_g_module_supported" = "xyes" ; then
257 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
258 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
259 dnl functionality is supported on the system. This way, mc will be
260 dnl linked against the gmodule library only when it's really required.
261 GLIB_CFLAGS="$GMODULE_CFLAGS"
262 GLIB_LIBS="$GMODULE_LIBS"
264 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
266 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
267 [Define to enable getting events from X Window System])
268 textmode_x11_support="yes"
272 dnl Try to find static libraries for glib and gmodule.
274 if test x$with_glib_static = xyes; then
276 for i in $GLIB_LIBS; do
287 if test -n "$lib"; then
288 lib1=`echo $i | sed 's/^-l//'`
289 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
290 add="$GLIB_LIBDIR/lib${lib1}.a"
292 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
293 add="$GLIB_LIBDIR/lib${lib}.a"
295 AC_MSG_ERROR([Cannot find static $lib])
299 new_GLIB_LIBS="$new_GLIB_LIBS $add"
301 GLIB_LIBS="$new_GLIB_LIBS"
306 dnl Network related functions
309 AC_SEARCH_LIBS([socket], [socket])
310 AC_SEARCH_LIBS([gethostbyname], [nsl])
313 dnl Sequent wants getprocessstats
315 AC_CHECK_LIB(seq, get_process_stats, [
317 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
318 [Define if you have function `get_process_stats' and
319 have to use that instead of gettimeofday])])
324 if test x$use_vfs = xyes; then
325 AC_MSG_NOTICE([enabling VFS code])
326 vfs_type="Midnight Commander Virtual File System"
330 dnl Check for gpm mouse support (Linux only)
332 mouse_lib="xterm only"
333 AC_ARG_WITH(gpm-mouse,
334 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
339 if test x$with_gpm_mouse != xno; then
340 AC_CHECK_LIB(gpm, Gpm_Repeat,
341 [AC_DEFINE(HAVE_LIBGPM, 1,
342 [Define to enable gpm mouse support on Linux])
343 mouse_lib="gpm and xterm"
344 MCLIBS="$MCLIBS -lgpm"],
345 [AC_MSG_WARN([libgpm is missing or older than 0.18])
352 dnl Check nroff and the options it supports
354 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
361 AC_MSG_CHECKING([for manual formatting macros])
362 AC_CACHE_VAL(mc_cv_mandoc, [
363 nroff -mandoc < /dev/null > /dev/null 2>&1
371 AC_MSG_RESULT([$MANDOC])
373 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
374 AC_CACHE_VAL(mc_cv_man_nocolor, [
375 nroff -c < /dev/null > /dev/null 2>&1
382 MAN_FLAGS=$mc_cv_man_nocolor
383 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
385 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
386 AC_CACHE_VAL(mc_cv_nroff_tascii, [
388 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
390 mc_cv_nroff_tascii=-Tlatin1
392 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
394 mc_cv_nroff_tascii=-Tascii
398 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
399 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
407 dnl Check for -L option to file
409 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
410 if $HAVE_FILECMD; then
411 AC_MSG_CHECKING([for -L option to file command])
412 AC_CACHE_VAL(mc_cv_filel, [
413 file -L . > /dev/null 2>&1
420 if test x$mc_cv_filel = xyes; then
421 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
424 AC_MSG_RESULT([$filel])
428 AC_MSG_CHECKING([for subshell support])
429 AC_ARG_WITH(subshell,
430 [ --with-subshell Compile in concurrent subshell [[yes]]
431 --with-subshell=optional Don't run concurrent shell by default [[no]]],
433 if test x$withval = xoptional
435 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
436 [Define to make subshell support optional])
439 if test x$withval = xyes
443 [dnl Default: enable the subshell support
446 if test "x$result" != xno; then
447 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
448 [Define to enable subshell support])
450 AC_MSG_RESULT([$result])
455 dnl Select the screen library. mcslang is the included S-Lang library.
458 [ --with-screen=LIB Compile with screen library: slang, mcslang or
459 ncurses [[slang if found, else mcslang]]])
461 case x$with_screen in
463 MC_WITH_SLANG(strict)
475 AC_MSG_ERROR([Value of the screen library is incorrect])
481 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
482 dnl Report an error if this option is not applicable.
485 [ --with-termcap Try using termcap database [[only if no terminfo]]],
486 [if test x$with_screen != xmcslang; then
487 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
493 dnl Internal editor support.
496 [ --with-edit Enable internal editor [[yes]]])
498 if test x$with_edit != xno; then
499 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
502 AC_MSG_NOTICE([using internal editor])
508 dnl Check if the OS is supported by the console saver.
516 dnl Support for background operations
517 AC_ARG_ENABLE([background],
518 [ --enable-background Support for background file operations [[yes]]])
519 if test "x$enable_background" != xno; then
520 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
525 dnl User visible support for charset conversion.
527 AC_ARG_ENABLE([charset],
528 [ --enable-charset Support for charset selection and conversion [[no]]])
531 if test "x$enable_charset" = xyes; then
532 if test "x$am_cv_func_iconv" != xyes; then
533 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
535 AC_DEFINE(HAVE_CHARSET, 1,
536 [Define to enable charset selection and conversion])
542 if test "$GLIBC21" != yes; then
543 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
546 dnl If default CFLAGS is used with gcc, add -Wall
547 if test -z "$ac_env_CFLAGS_set"; then
548 if test -n "$GCC"; then
549 CFLAGS="$CFLAGS -Wall"
558 dnl Libraries used only when building the mc binary
561 dnl Version for the RedHat package, without dashes
562 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
563 AC_SUBST(RPM_VERSION)
565 if test -n "$use_smbfs"; then
566 AC_CONFIG_SUBDIRS([vfs/samba])
569 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
570 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
571 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
572 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
573 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
574 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
575 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
576 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
577 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
617 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
618 doc/es/mc.1 doc/es/Makefile
619 doc/hu/mc.1 doc/hu/Makefile
620 doc/it/mc.1 doc/it/Makefile
621 doc/pl/mc.1 doc/pl/Makefile
622 doc/ru/mc.1 doc/ru/Makefile
623 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
634 Source code location: ${srcdir}
636 Compiler flags: ${CFLAGS}
637 File system: ${vfs_type}
639 Screen library: ${screen_msg}
640 Mouse support: ${mouse_lib}
641 X11 events support: ${textmode_x11_support}
642 With subshell support: ${subshell}
643 Internal editor: ${edit_msg}
644 Support for charset: ${charset_msg}