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
26 dnl First try glib 2.x. If it's not found, use glib 1.2.x.
27 dnl Keep this check close to the beginning, so that the users
28 dnl without any glib won't have their time wasted by other checks.
32 [ --with-glib12 Force using glib 1.2.x [[no]]])
34 AC_ARG_WITH([glib_static],
35 [ --with-glib-static Link glib statically [[no]]])
38 if test "x$with_glib12" != "xyes"; then
39 PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib_found=yes], [:])
42 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
43 if test "x$glib_found" != "xyes" ; then
44 dnl This temporary variable is a workaround for a bug in Autoconf-2.53
45 glib_path=$PATH:/usr/local/bin
47 dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
48 AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
50 AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
51 AM_PATH_GLIB(1.2.6, , [AC_MSG_ERROR([Test for glib failed.
52 GNU Midnight Commander requires glib 1.2.6 or above.])])
53 dnl Save GLIB_CFLAGS and GLIB_LIBS, since the following call to
54 dnl AM_PATH_GLIB will overwrite them.
55 save_GLIB_CFLAGS="$GLIB_CFLAGS"
56 save_GLIB_LIBS="$GLIB_LIBS"
57 dnl Check for gmodule. Store the flags necessary to compile and
58 dnl link programs using gmodule functionality in GMODULE_CFLAGS
60 AM_PATH_GLIB(1.2.6, [gmodule_found=yes], , [gmodule])
61 GMODULE_CFLAGS="$GLIB_CFLAGS"
62 GMODULE_LIBS="$GLIB_LIBS"
63 GLIB_CFLAGS="$save_GLIB_CFLAGS"
64 GLIB_LIBS="$save_GLIB_LIBS"
65 GLIB_LIBDIR="`$GLIB_CONFIG --exec-prefix`/lib"
67 dnl Used in src/glibcompat.c
68 AC_CHECK_FUNCS([strlcpy])
70 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
71 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
74 if test "x$gmodule_found" = "xyes" ; then
75 dnl Check if the gmodule functionality supported on this system.
84 AC_CHECK_TOOL(AR, ar, ar)
86 dnl Only list browsers here that can be run in background (i.e. with `&')
87 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
90 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
91 dnl We use only part of the functionality of mmap, so on AIX,
92 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
95 [ --with-mmap Use the mmap call [[yes if found]]])
96 if test x$with_mmap != xno; then
97 if test x$with_mmap = x; then
100 AC_DEFINE(HAVE_MMAP, 1)
105 dnl Internationalization
107 AM_GNU_GETTEXT(no-libtool, need-ngettext)
108 AM_GNU_GETTEXT_VERSION(0.14.3)
110 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
111 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
114 dnl Determine which help translations we want to install.
115 ALL_DOC_LINGUAS="es hu it pl ru sr"
118 if test "x$USE_NLS" = xyes; then
119 if test -z "$LINGUAS"; then
120 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
128 for h_lang in $ALL_DOC_LINGUAS; do
129 for lang in $langs; do
130 if test "$lang" = "$h_lang"; then
131 DOC_LINGUAS="$DOC_LINGUAS $lang"
136 AC_SUBST(DOC_LINGUAS)
139 dnl OS specific flags.
145 AC_DEFINE(_POSIX_SOURCE)
149 dnl Extended Character Sets
151 AC_ARG_ENABLE([extcharset],
152 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
153 if test x"$enable_extcharset" = x"yes"; then
154 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
158 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
159 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
160 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
161 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
162 sys/mkdev.h wchar.h wctype.h])
169 dnl Missing structure components
170 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
174 dnl Check availability of some functions
180 getegid geteuid getgid getsid getuid \
184 setreuid setuid statfs strerror strftime sysconf \
185 tcgetattr tcsetattr truncate \
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
220 AC_CHECK_SIZEOF(long)
221 AC_CHECK_SIZEOF(long long)
224 AC_CHECK_SIZEOF(off_t)
227 AC_CHECK_TYPE(nlink_t, unsigned int)
228 AC_CHECK_TYPES([socklen_t],,,
230 #include <sys/types.h>
231 #include <sys/socket.h>
234 dnl This is needed for regex.c only
235 AC_CHECK_TYPE(uintptr_t,
236 [AC_DEFINE(HAVE_UINTPTR_T, 1,
237 [Define if you have the `uintptr_t' type.])
245 dnl Used to read keyboard modifiers when running under X11.
249 if test "x$no_x" = xyes; then
250 textmode_x11_support="no"
252 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
253 if test "x$mc_cv_g_module_supported" = "xyes" ; then
254 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
255 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
256 dnl functionality is supported on the system. This way, mc will be
257 dnl linked against the gmodule library only when it's really required.
258 GLIB_CFLAGS="$GMODULE_CFLAGS"
259 GLIB_LIBS="$GMODULE_LIBS"
261 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
263 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
264 [Define to enable getting events from X Window System])
265 textmode_x11_support="yes"
269 dnl Try to find static libraries for glib and gmodule.
271 if test x$with_glib_static = xyes; then
273 for i in $GLIB_LIBS; do
284 if test -n "$lib"; then
285 lib1=`echo $i | sed 's/^-l//'`
286 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
287 add="$GLIB_LIBDIR/lib${lib1}.a"
289 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
290 add="$GLIB_LIBDIR/lib${lib}.a"
292 AC_MSG_ERROR([Cannot find static $lib])
296 new_GLIB_LIBS="$new_GLIB_LIBS $add"
298 GLIB_LIBS="$new_GLIB_LIBS"
303 dnl Network related functions
306 AC_SEARCH_LIBS([socket], [socket])
307 AC_SEARCH_LIBS([gethostbyname], [nsl])
310 dnl Sequent wants getprocessstats
312 AC_CHECK_LIB(seq, get_process_stats, [
314 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
315 [Define if you have function `get_process_stats' and
316 have to use that instead of gettimeofday])])
321 if test x$use_vfs = xyes; then
322 AC_MSG_NOTICE([enabling VFS code])
323 vfs_type="Midnight Commander Virtual File System"
327 dnl Check for gpm mouse support (Linux only)
329 mouse_lib="xterm only"
330 AC_ARG_WITH(gpm-mouse,
331 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
336 if test x$with_gpm_mouse != xno; then
337 AC_CHECK_LIB(gpm, Gpm_Repeat,
338 [AC_DEFINE(HAVE_LIBGPM, 1,
339 [Define to enable gpm mouse support on Linux])
340 mouse_lib="gpm and xterm"
341 MCLIBS="$MCLIBS -lgpm"],
342 [AC_MSG_WARN([libgpm is missing or older than 0.18])
349 dnl Check nroff and the options it supports
351 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
358 AC_MSG_CHECKING([for manual formatting macros])
359 AC_CACHE_VAL(mc_cv_mandoc, [
360 nroff -mandoc < /dev/null > /dev/null 2>&1
368 AC_MSG_RESULT([$MANDOC])
370 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
371 AC_CACHE_VAL(mc_cv_man_nocolor, [
372 nroff -c < /dev/null > /dev/null 2>&1
379 MAN_FLAGS=$mc_cv_man_nocolor
380 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
382 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
383 AC_CACHE_VAL(mc_cv_nroff_tascii, [
385 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
387 mc_cv_nroff_tascii=-Tlatin1
389 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
391 mc_cv_nroff_tascii=-Tascii
395 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
396 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
404 dnl Check for -L option to file
406 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
407 if $HAVE_FILECMD; then
408 AC_MSG_CHECKING([for -L option to file command])
409 AC_CACHE_VAL(mc_cv_filel, [
410 file -L . > /dev/null 2>&1
417 if test x$mc_cv_filel = xyes; then
418 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
421 AC_MSG_RESULT([$filel])
425 AC_MSG_CHECKING([for subshell support])
426 AC_ARG_WITH(subshell,
427 [ --with-subshell Compile in concurrent subshell [[yes]]
428 --with-subshell=optional Don't run concurrent shell by default [[no]]],
430 if test x$withval = xoptional
432 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
433 [Define to make subshell support optional])
436 if test x$withval = xyes
440 [dnl Default: enable the subshell support
443 if test "x$result" != xno; then
444 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
445 [Define to enable subshell support])
447 AC_MSG_RESULT([$result])
452 dnl Select the screen library.
455 [ --with-screen=LIB Compile with screen library: slang or
456 ncurses [[slang if found]]])
458 case x$with_screen in
460 MC_WITH_SLANG(strict)
472 AC_MSG_ERROR([Value of the screen library is incorrect])
478 dnl Internal editor support.
481 [ --with-edit Enable internal editor [[yes]]])
483 if test x$with_edit != xno; then
484 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
487 AC_MSG_NOTICE([using internal editor])
493 dnl Check if the OS is supported by the console saver.
501 dnl Support for background operations
502 AC_ARG_ENABLE([background],
503 [ --enable-background Support for background file operations [[yes]]])
504 if test "x$enable_background" != xno; then
505 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
510 dnl User visible support for charset conversion.
512 AC_ARG_ENABLE([charset],
513 [ --enable-charset Support for charset selection and conversion [[no]]])
516 if test "x$enable_charset" = xyes; then
517 if test "x$am_cv_func_iconv" != xyes; then
518 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
520 AC_DEFINE(HAVE_CHARSET, 1,
521 [Define to enable charset selection and conversion])
527 if test "$GLIBC21" != yes; then
528 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
531 dnl If default CFLAGS is used with gcc, add -Wall
532 if test -z "$ac_env_CFLAGS_set"; then
533 if test -n "$GCC"; then
534 CFLAGS="$CFLAGS -Wall"
543 dnl Libraries used only when building the mc binary
546 dnl Version for the RedHat package, without dashes
547 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
548 AC_SUBST(RPM_VERSION)
550 if test -n "$use_smbfs"; then
551 AC_CONFIG_SUBDIRS([vfs/samba])
554 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
555 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
556 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
557 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
558 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
559 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
560 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
561 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
606 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
607 doc/es/mc.1 doc/es/Makefile
608 doc/hu/mc.1 doc/hu/Makefile
609 doc/it/mc.1 doc/it/Makefile
610 doc/pl/mc.1 doc/pl/Makefile
611 doc/ru/mc.1 doc/ru/Makefile
612 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
623 Source code location: ${srcdir}
625 Compiler flags: ${CFLAGS}
626 File system: ${vfs_type}
628 Screen library: ${screen_msg}
629 Mouse support: ${mouse_lib}
630 X11 events support: ${textmode_x11_support}
631 With subshell support: ${subshell}
632 Internal editor: ${edit_msg}
633 Support for charset: ${charset_msg}