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
181 getegid geteuid getgid getsid getuid \
183 memcpy memmove memset \
185 setreuid setuid statfs strerror strftime sysconf \
186 tcgetattr tcsetattr truncate \
189 dnl S-Lang needs all four functions to be defined to use POSIX signal API
190 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
191 if test x$slang_signals != xno; then
192 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
196 dnl getpt is a GNU Extension (glibc 2.1.x)
198 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
199 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
201 dnl replacing lstat with statlstat on sco makes it more portable between
203 AC_CHECK_FUNCS(statlstat)
206 dnl If running under AIX, AC_AIX does not tell us that
208 AC_MSG_CHECKING([for AIX defines])
210 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
214 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
216 ], [AC_MSG_RESULT(no)])
219 dnl This is from GNU fileutils, check aclocal.m4 for more information
224 dnl Missing typedefs and replacements
228 AC_CHECK_TYPE(off_t, long)
231 AC_CHECK_TYPE(nlink_t, unsigned int)
232 AC_CHECK_TYPES([socklen_t],,,
234 #include <sys/types.h>
235 #include <sys/socket.h>
238 dnl This is needed for regex.c only
239 AC_CHECK_TYPE(uintptr_t,
240 [AC_DEFINE(HAVE_UINTPTR_T, 1,
241 [Define if you have the `uintptr_t' type.])
249 dnl Used to read keyboard modifiers when running under X11.
253 if test "x$no_x" = xyes; then
254 textmode_x11_support="no"
256 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
257 if test "x$mc_cv_g_module_supported" = "xyes" ; then
258 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
259 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
260 dnl functionality is supported on the system. This way, mc will be
261 dnl linked against the gmodule library only when it's really required.
262 GLIB_CFLAGS="$GMODULE_CFLAGS"
263 GLIB_LIBS="$GMODULE_LIBS"
265 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
267 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
268 [Define to enable getting events from X Window System])
269 textmode_x11_support="yes"
273 dnl Try to find static libraries for glib and gmodule.
275 if test x$with_glib_static = xyes; then
277 for i in $GLIB_LIBS; do
288 if test -n "$lib"; then
289 lib1=`echo $i | sed 's/^-l//'`
290 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
291 add="$GLIB_LIBDIR/lib${lib1}.a"
293 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
294 add="$GLIB_LIBDIR/lib${lib}.a"
296 AC_MSG_ERROR([Cannot find static $lib])
300 new_GLIB_LIBS="$new_GLIB_LIBS $add"
302 GLIB_LIBS="$new_GLIB_LIBS"
307 dnl Network related functions
310 AC_SEARCH_LIBS([socket], [socket])
311 AC_SEARCH_LIBS([gethostbyname], [nsl])
314 dnl Sequent wants getprocessstats
316 AC_CHECK_LIB(seq, get_process_stats, [
318 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
319 [Define if you have function `get_process_stats' and
320 have to use that instead of gettimeofday])])
325 if test x$use_vfs = xyes; then
326 AC_MSG_NOTICE([enabling VFS code])
327 vfs_type="Midnight Commander Virtual File System"
331 dnl Check for gpm mouse support (Linux only)
333 mouse_lib="xterm only"
334 AC_ARG_WITH(gpm-mouse,
335 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
340 if test x$with_gpm_mouse != xno; then
341 AC_CHECK_LIB(gpm, Gpm_Repeat,
342 [AC_DEFINE(HAVE_LIBGPM, 1,
343 [Define to enable gpm mouse support on Linux])
344 mouse_lib="gpm and xterm"
345 MCLIBS="$MCLIBS -lgpm"],
346 [AC_MSG_WARN([libgpm is missing or older than 0.18])
353 dnl Check nroff and the options it supports
355 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
362 AC_MSG_CHECKING([for manual formatting macros])
363 AC_CACHE_VAL(mc_cv_mandoc, [
364 nroff -mandoc < /dev/null > /dev/null 2>&1
372 AC_MSG_RESULT([$MANDOC])
374 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
375 AC_CACHE_VAL(mc_cv_man_nocolor, [
376 nroff -c < /dev/null > /dev/null 2>&1
383 MAN_FLAGS=$mc_cv_man_nocolor
384 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
386 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
387 AC_CACHE_VAL(mc_cv_nroff_tascii, [
389 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
391 mc_cv_nroff_tascii=-Tlatin1
393 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
395 mc_cv_nroff_tascii=-Tascii
399 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
400 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
408 dnl Check for -L option to file
410 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
411 if $HAVE_FILECMD; then
412 AC_MSG_CHECKING([for -L option to file command])
413 AC_CACHE_VAL(mc_cv_filel, [
414 file -L . > /dev/null 2>&1
421 if test x$mc_cv_filel = xyes; then
422 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
425 AC_MSG_RESULT([$filel])
429 AC_MSG_CHECKING([for subshell support])
430 AC_ARG_WITH(subshell,
431 [ --with-subshell Compile in concurrent subshell [[yes]]
432 --with-subshell=optional Don't run concurrent shell by default [[no]]],
434 if test x$withval = xoptional
436 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
437 [Define to make subshell support optional])
440 if test x$withval = xyes
444 [dnl Default: enable the subshell support
447 if test "x$result" != xno; then
448 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
449 [Define to enable subshell support])
451 AC_MSG_RESULT([$result])
456 dnl Select the screen library. mcslang is the included S-Lang library.
459 [ --with-screen=LIB Compile with screen library: slang, mcslang or
460 ncurses [[slang if found, else mcslang]]])
462 case x$with_screen in
464 MC_WITH_SLANG(strict)
476 AC_MSG_ERROR([Value of the screen library is incorrect])
482 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
483 dnl Report an error if this option is not applicable.
486 [ --with-termcap Try using termcap database [[only if no terminfo]]],
487 [if test x$with_screen != xmcslang; then
488 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
494 dnl Internal editor support.
497 [ --with-edit Enable internal editor [[yes]]])
499 if test x$with_edit != xno; then
500 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
503 AC_MSG_NOTICE([using internal editor])
509 dnl Check if the OS is supported by the console saver.
517 dnl Support for background operations
518 AC_ARG_ENABLE([background],
519 [ --enable-background Support for background file operations [[yes]]])
520 if test "x$enable_background" != xno; then
521 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
526 dnl User visible support for charset conversion.
528 AC_ARG_ENABLE([charset],
529 [ --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])
543 if test "$GLIBC21" != yes; then
544 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
547 dnl If default CFLAGS is used with gcc, add -Wall
548 if test -z "$ac_env_CFLAGS_set"; then
549 if test -n "$GCC"; then
550 CFLAGS="$CFLAGS -Wall"
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"])
618 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
619 doc/es/mc.1 doc/es/Makefile
620 doc/hu/mc.1 doc/hu/Makefile
621 doc/it/mc.1 doc/it/Makefile
622 doc/pl/mc.1 doc/pl/Makefile
623 doc/ru/mc.1 doc/ru/Makefile
624 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
635 Source code location: ${srcdir}
637 Compiler flags: ${CFLAGS}
638 File system: ${vfs_type}
640 Screen library: ${screen_msg}
641 Mouse support: ${mouse_lib}
642 X11 events support: ${textmode_x11_support}
643 With subshell support: ${subshell}
644 Internal editor: ${edit_msg}
645 Support for charset: ${charset_msg}