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 OS specific flags.
143 AC_DEFINE(_POSIX_SOURCE)
149 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
150 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
151 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
152 security/pam_misc.h])
159 dnl Missing structure components
160 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
164 dnl Check availability of some functions
167 AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
168 putenv setreuid setuid statfs strerror strftime \
169 sysconf tcgetattr tcsetattr truncate])
171 dnl S-Lang needs all four functions to be defined to use POSIX signal API
172 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
173 if test x$slang_signals != xno; then
174 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
178 dnl getpt is a GNU Extension (glibc 2.1.x)
180 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
181 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
183 dnl replacing lstat with statlstat on sco makes it more portable between
185 AC_CHECK_FUNCS(statlstat)
188 dnl If running under AIX, AC_AIX does not tell us that
190 AC_MSG_CHECKING([for AIX defines])
192 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
196 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
198 ], [AC_MSG_RESULT(no)])
201 dnl This is from GNU fileutils, check aclocal.m4 for more information
206 dnl Missing typedefs and replacements
210 AC_CHECK_TYPE(umode_t, int)
211 AC_CHECK_TYPE(off_t, long)
214 AC_CHECK_TYPE(nlink_t, unsigned int)
216 dnl This is needed for regex.c only
217 AC_CHECK_TYPE(uintptr_t,
218 [AC_DEFINE(HAVE_UINTPTR_T, 1,
219 [Define if you have the `uintptr_t' type.])
227 dnl Used to read keyboard modifiers when running under X11.
231 if test "x$no_x" = xyes; then
232 textmode_x11_support="no"
234 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
235 if test "x$mc_cv_g_module_supported" = "xyes" ; then
236 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
237 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
238 dnl functionality is supported on the system. This way, mc will be
239 dnl linked against the gmodule library only when it's really required.
240 GLIB_CFLAGS="$GMODULE_CFLAGS"
241 GLIB_LIBS="$GMODULE_LIBS"
243 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
245 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
246 [Define to enable getting events from X Window System])
247 textmode_x11_support="yes"
251 dnl Try to find static libraries for glib and gmodule.
253 if test x$with_glib_static = xyes; then
255 for i in $GLIB_LIBS; do
266 if test -n "$lib"; then
267 lib1=`echo $i | sed 's/^-l//'`
268 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
269 add="$GLIB_LIBDIR/lib${lib1}.a"
271 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
272 add="$GLIB_LIBDIR/lib${lib}.a"
274 AC_MSG_ERROR([Cannot find static $lib])
278 new_GLIB_LIBS="$new_GLIB_LIBS $add"
280 GLIB_LIBS="$new_GLIB_LIBS"
285 dnl Network related functions
288 AC_CHECK_LIB(nsl, t_accept)
289 AC_CHECK_LIB(socket, socket)
292 AC_CHECK_FUNCS(socket, have_socket=yes)
293 if test $have_socket = no; then
294 # socket is not in the default libraries. See if it's in some other.
295 for lib in bsd socket inet; do
296 AC_CHECK_LIB($lib, socket, [
299 AC_DEFINE(HAVE_SOCKET)
304 have_gethostbyname=no
305 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
306 if test $have_gethostbyname = no; then
307 # gethostbyname 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], [gethostbyname],
310 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
315 dnl Sequent wants getprocessstats
317 AC_CHECK_LIB(seq, get_process_stats, [
319 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
320 [Define if you have function `get_process_stats' and
321 have to use that instead of gettimeofday])])
326 if test x$use_vfs = xyes; then
327 AC_MSG_NOTICE([enabling VFS code])
328 vfs_type="Midnight Commander Virtual File System"
332 dnl Check for gpm mouse support (Linux only)
334 mouse_lib="xterm only"
335 AC_ARG_WITH(gpm-mouse,
336 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
341 if test x$with_gpm_mouse != xno; then
342 AC_CHECK_LIB(gpm, Gpm_Repeat,
343 [AC_DEFINE(HAVE_LIBGPM, 1,
344 [Define to enable gpm mouse support on Linux])
345 mouse_lib="gpm and xterm"
346 MCLIBS="$MCLIBS -lgpm"],
347 [AC_MSG_WARN([libgpm is missing or older than 0.18])
354 dnl Check nroff and the options it supports
356 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
363 AC_MSG_CHECKING([for manual formatting macros])
364 AC_CACHE_VAL(mc_cv_mandoc, [
365 nroff -mandoc < /dev/null > /dev/null 2>&1
373 AC_MSG_RESULT([$MANDOC])
375 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
376 AC_CACHE_VAL(mc_cv_man_nocolor, [
377 nroff -c < /dev/null > /dev/null 2>&1
384 MAN_FLAGS=$mc_cv_man_nocolor
385 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
387 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
388 AC_CACHE_VAL(mc_cv_nroff_tascii, [
390 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
392 mc_cv_nroff_tascii=-Tlatin1
394 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
396 mc_cv_nroff_tascii=-Tascii
400 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
401 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
409 dnl Check for -L option to file
411 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
412 if $HAVE_FILECMD; then
413 AC_MSG_CHECKING([for -L option to file command])
414 AC_CACHE_VAL(mc_cv_filel, [
415 file -L . > /dev/null 2>&1
422 if test x$mc_cv_filel = xyes; then
423 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
426 AC_MSG_RESULT([$filel])
430 AC_MSG_CHECKING([for subshell support])
431 AC_ARG_WITH(subshell,
432 [ --with-subshell Compile in concurrent subshell [[yes]]
433 --with-subshell=optional Don't run concurrent shell by default [[no]]],
435 if test x$withval = xoptional
437 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
438 [Define to make subshell support optional])
441 if test x$withval = xyes
445 [dnl Default: enable the subshell support
448 if test "x$result" != xno; then
449 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
450 [Define to enable subshell support])
452 AC_MSG_RESULT([$result])
457 dnl Select the screen library. mcslang is the included S-Lang library.
460 [ --with-screen=LIB Compile with screen library: slang, mcslang or
461 ncurses [[slang if found, else mcslang]]])
463 case x$with_screen in
465 MC_WITH_SLANG(strict)
477 AC_MSG_ERROR([Value of the screen library is incorrect])
483 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
484 dnl Report an error if this option is not applicable.
487 [ --with-termcap Try using termcap database [[only if no terminfo]]],
488 [if test x$with_screen != xmcslang; then
489 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
495 dnl Internal editor support.
498 [ --with-edit Enable internal editor [[yes]]])
500 if test x$with_edit != xno; then
501 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
504 AC_MSG_NOTICE([using internal editor])
510 dnl Check if the OS is supported by the console saver.
518 dnl Support for background operations
519 AC_ARG_ENABLE([background],
520 [ --enable-background Support for background file operations [[yes]]])
521 if test "x$enable_background" != xno; then
522 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
527 dnl User visible support for charset conversion.
529 AC_ARG_ENABLE([charset],
530 [ --enable-charset Support for charset selection and conversion [[no]]])
532 if test "x$enable_charset" = xyes; then
533 if test "x$am_cv_func_iconv" != xyes; then
534 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
536 AC_DEFINE(HAVE_CHARSET, 1,
537 [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 if test x"$USE_MAINTAINER_MODE" = x"yes"; then
547 if test x"${enable_gcc_warnings+set}" != x"set"; then
548 CFLAGS="-Wall $CFLAGS"
559 dnl Libraries used only when building the mc binary
562 dnl Version for the RedHat package, without dashes
563 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
564 AC_SUBST(RPM_VERSION)
566 if test -n "$use_smbfs"; then
567 AC_CONFIG_SUBDIRS([vfs/samba])
570 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
571 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
572 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
573 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
574 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
575 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
576 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
577 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
578 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
616 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
617 doc/es/mc.1 doc/es/Makefile
618 doc/hu/mc.1 doc/hu/Makefile
619 doc/it/mc.1 doc/it/Makefile
620 doc/pl/mc.1 doc/pl/Makefile
621 doc/ru/mc.1 doc/ru/Makefile
622 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
633 Source code location: ${srcdir}
635 Compiler flags: ${CFLAGS}
636 File system: ${vfs_type}
638 Screen library: ${screen_msg}
639 Mouse support: ${mouse_lib}
640 X11 events support: ${textmode_x11_support}
641 With subshell support: ${subshell}
642 Internal editor: ${edit_msg}