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)
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])
162 dnl Missing structure components
163 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
167 dnl Check availability of some functions
170 AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
171 putenv setreuid setuid statfs strerror strftime \
172 sysconf tcgetattr tcsetattr truncate])
174 dnl S-Lang needs all four functions to be defined to use POSIX signal API
175 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
176 if test x$slang_signals != xno; then
177 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
181 dnl getpt is a GNU Extension (glibc 2.1.x)
183 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
184 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
186 dnl replacing lstat with statlstat on sco makes it more portable between
188 AC_CHECK_FUNCS(statlstat)
191 dnl If running under AIX, AC_AIX does not tell us that
193 AC_MSG_CHECKING([for AIX defines])
195 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
199 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
201 ], [AC_MSG_RESULT(no)])
204 dnl This is from GNU fileutils, check aclocal.m4 for more information
209 dnl Missing typedefs and replacements
213 AC_CHECK_TYPE(umode_t, int)
214 AC_CHECK_TYPE(off_t, long)
215 AC_CHECK_TYPE(socklen_t, int)
218 AC_CHECK_TYPE(nlink_t, unsigned int)
220 dnl This is needed for regex.c only
221 AC_CHECK_TYPE(uintptr_t,
222 [AC_DEFINE(HAVE_UINTPTR_T, 1,
223 [Define if you have the `uintptr_t' type.])
231 dnl Used to read keyboard modifiers when running under X11.
235 if test "x$no_x" = xyes; then
236 textmode_x11_support="no"
238 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
239 if test "x$mc_cv_g_module_supported" = "xyes" ; then
240 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
241 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
242 dnl functionality is supported on the system. This way, mc will be
243 dnl linked against the gmodule library only when it's really required.
244 GLIB_CFLAGS="$GMODULE_CFLAGS"
245 GLIB_LIBS="$GMODULE_LIBS"
247 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
249 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
250 [Define to enable getting events from X Window System])
251 textmode_x11_support="yes"
255 dnl Try to find static libraries for glib and gmodule.
257 if test x$with_glib_static = xyes; then
259 for i in $GLIB_LIBS; do
270 if test -n "$lib"; then
271 lib1=`echo $i | sed 's/^-l//'`
272 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
273 add="$GLIB_LIBDIR/lib${lib1}.a"
275 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
276 add="$GLIB_LIBDIR/lib${lib}.a"
278 AC_MSG_ERROR([Cannot find static $lib])
282 new_GLIB_LIBS="$new_GLIB_LIBS $add"
284 GLIB_LIBS="$new_GLIB_LIBS"
289 dnl Network related functions
292 AC_CHECK_LIB(nsl, t_accept)
293 AC_CHECK_LIB(socket, socket)
296 AC_CHECK_FUNCS(socket, have_socket=yes)
297 if test $have_socket = no; then
298 # socket is not in the default libraries. See if it's in some other.
299 for lib in bsd socket inet; do
300 AC_CHECK_LIB($lib, socket, [
303 AC_DEFINE(HAVE_SOCKET)
308 have_gethostbyname=no
309 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
310 if test $have_gethostbyname = no; then
311 # gethostbyname is not in the default libraries. See if it's in some other.
312 for lib in bsd socket inet; do
313 AC_CHECK_LIB([$lib], [gethostbyname],
314 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
319 dnl Sequent wants getprocessstats
321 AC_CHECK_LIB(seq, get_process_stats, [
323 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
324 [Define if you have function `get_process_stats' and
325 have to use that instead of gettimeofday])])
330 if test x$use_vfs = xyes; then
331 AC_MSG_NOTICE([enabling VFS code])
332 vfs_type="Midnight Commander Virtual File System"
336 dnl Check for gpm mouse support (Linux only)
338 mouse_lib="xterm only"
339 AC_ARG_WITH(gpm-mouse,
340 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
345 if test x$with_gpm_mouse != xno; then
346 AC_CHECK_LIB(gpm, Gpm_Repeat,
347 [AC_DEFINE(HAVE_LIBGPM, 1,
348 [Define to enable gpm mouse support on Linux])
349 mouse_lib="gpm and xterm"
350 MCLIBS="$MCLIBS -lgpm"],
351 [AC_MSG_WARN([libgpm is missing or older than 0.18])
358 dnl Check nroff and the options it supports
360 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
367 AC_MSG_CHECKING([for manual formatting macros])
368 AC_CACHE_VAL(mc_cv_mandoc, [
369 nroff -mandoc < /dev/null > /dev/null 2>&1
377 AC_MSG_RESULT([$MANDOC])
379 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
380 AC_CACHE_VAL(mc_cv_man_nocolor, [
381 nroff -c < /dev/null > /dev/null 2>&1
388 MAN_FLAGS=$mc_cv_man_nocolor
389 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
391 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
392 AC_CACHE_VAL(mc_cv_nroff_tascii, [
394 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
396 mc_cv_nroff_tascii=-Tlatin1
398 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
400 mc_cv_nroff_tascii=-Tascii
404 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
405 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
413 dnl Check for -L option to file
415 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
416 if $HAVE_FILECMD; then
417 AC_MSG_CHECKING([for -L option to file command])
418 AC_CACHE_VAL(mc_cv_filel, [
419 file -L . > /dev/null 2>&1
426 if test x$mc_cv_filel = xyes; then
427 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
430 AC_MSG_RESULT([$filel])
434 AC_MSG_CHECKING([for subshell support])
435 AC_ARG_WITH(subshell,
436 [ --with-subshell Compile in concurrent subshell [[yes]]
437 --with-subshell=optional Don't run concurrent shell by default [[no]]],
439 if test x$withval = xoptional
441 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
442 [Define to make subshell support optional])
445 if test x$withval = xyes
449 [dnl Default: enable the subshell support
452 if test "x$result" != xno; then
453 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
454 [Define to enable subshell support])
456 AC_MSG_RESULT([$result])
461 dnl Select the screen library. mcslang is the included S-Lang library.
464 [ --with-screen=LIB Compile with screen library: slang, mcslang or
465 ncurses [[slang if found, else mcslang]]])
467 case x$with_screen in
469 MC_WITH_SLANG(strict)
481 AC_MSG_ERROR([Value of the screen library is incorrect])
487 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
488 dnl Report an error if this option is not applicable.
491 [ --with-termcap Try using termcap database [[only if no terminfo]]],
492 [if test x$with_screen != xmcslang; then
493 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
499 dnl Internal editor support.
502 [ --with-edit Enable internal editor [[yes]]])
504 if test x$with_edit != xno; then
505 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
508 AC_MSG_NOTICE([using internal editor])
514 dnl Check if the OS is supported by the console saver.
522 dnl Support for background operations
523 AC_ARG_ENABLE([background],
524 [ --enable-background Support for background file operations [[yes]]])
525 if test "x$enable_background" != xno; then
526 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
531 dnl User visible support for charset conversion.
533 AC_ARG_ENABLE([charset],
534 [ --enable-charset Support for charset selection and conversion [[no]]])
536 if test "x$enable_charset" = xyes; then
537 if test "x$am_cv_func_iconv" != xyes; then
538 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
540 AC_DEFINE(HAVE_CHARSET, 1,
541 [Define to enable charset selection and conversion])
546 if test "$GLIBC21" != yes; then
547 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
550 if test "x$with_screen" = xmcslang; then
551 AC_DEFINE(USE_INCLUDED_SLANG, 1, [Use the S-Lang included here])
554 if test x"$USE_MAINTAINER_MODE" = x"yes"; then
555 if test x"${enable_gcc_warnings+set}" != x"set"; then
556 if test x"${GCC}" = x"yes"; then
557 CFLAGS="-Wall $CFLAGS"
569 dnl Libraries used only when building the mc binary
572 dnl Version for the RedHat package, without dashes
573 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
574 AC_SUBST(RPM_VERSION)
576 if test -n "$use_smbfs"; then
577 AC_CONFIG_SUBDIRS([vfs/samba])
580 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
581 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
582 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
583 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
584 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
585 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
586 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
587 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
588 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
625 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
626 doc/es/mc.1 doc/es/Makefile
627 doc/hu/mc.1 doc/hu/Makefile
628 doc/it/mc.1 doc/it/Makefile
629 doc/pl/mc.1 doc/pl/Makefile
630 doc/ru/mc.1 doc/ru/Makefile
631 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
642 Source code location: ${srcdir}
644 Compiler flags: ${CFLAGS}
645 File system: ${vfs_type}
647 Screen library: ${screen_msg}
648 Mouse support: ${mouse_lib}
649 X11 events support: ${textmode_x11_support}
650 With subshell support: ${subshell}
651 Internal editor: ${edit_msg}