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.1a)
12 AM_CONFIG_HEADER(config.h)
25 dnl First try glib 2.x. If it's not found, use glib 1.2.x.
26 dnl Keep this check close to the beginning, so that the users
27 dnl without any glib won't have their time wasted by other checks.
31 [ --with-glib12 Force using glib 1.2.x [[no]]])
33 AC_ARG_WITH([glib_static],
34 [ --with-glib-static Link glib statically [[no]]])
37 if test "x$with_glib12" != "xyes"; then
38 PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib_found=yes], [:])
41 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
42 if test "x$glib_found" != "xyes" ; then
43 dnl This temporary variable is a workaround for a bug in Autoconf-2.53
44 glib_path=$PATH:/usr/local/bin
46 dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
47 AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
49 AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
50 AM_PATH_GLIB(1.2.6, , [AC_MSG_ERROR([Test for glib failed.
51 GNU Midnight Commander requires glib 1.2.6 or above.])])
52 dnl Save GLIB_CFLAGS and GLIB_LIBS, since the following call to
53 dnl AM_PATH_GLIB will overwrite them.
54 save_GLIB_CFLAGS="$GLIB_CFLAGS"
55 save_GLIB_LIBS="$GLIB_LIBS"
56 dnl Check for gmodule. Store the flags necessary to compile and
57 dnl link programs using gmodule functionality in GMODULE_CFLAGS
59 AM_PATH_GLIB(1.2.6, [gmodule_found=yes], , [gmodule])
60 GMODULE_CFLAGS="$GLIB_CFLAGS"
61 GMODULE_LIBS="$GLIB_LIBS"
62 GLIB_CFLAGS="$save_GLIB_CFLAGS"
63 GLIB_LIBS="$save_GLIB_LIBS"
64 GLIB_LIBDIR="`$GLIB_CONFIG --exec-prefix`/lib"
66 dnl Used in src/glibcompat.c
67 AC_CHECK_FUNCS([strlcpy])
69 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
70 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
73 if test "x$gmodule_found" = "xyes" ; then
74 dnl Check if the gmodule functionality supported on this system.
83 AC_CHECK_TOOL(AR, ar, ar)
85 dnl Only list browsers here that can be run in background (i.e. with `&')
86 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
89 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
90 dnl We use only part of the functionality of mmap, so on AIX,
91 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
94 [ --with-mmap Use the mmap call [[yes if found]]])
95 if test x$with_mmap != xno; then
96 if test x$with_mmap = x; then
99 AC_DEFINE(HAVE_MMAP, 1)
104 dnl Internationalization
106 AM_GNU_GETTEXT(no-libtool, need-ngettext)
107 AM_GNU_GETTEXT_VERSION(0.14.3)
109 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
110 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
113 dnl Determine which help translations we want to install.
114 ALL_DOC_LINGUAS="es hu it pl ru sr"
117 if test "x$USE_NLS" = xyes; then
118 if test -z "$LINGUAS"; then
119 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
127 for h_lang in $ALL_DOC_LINGUAS; do
128 for lang in $langs; do
129 if test "$lang" = "$h_lang"; then
130 DOC_LINGUAS="$DOC_LINGUAS $lang"
135 AC_SUBST(DOC_LINGUAS)
138 dnl OS specific flags.
144 AC_DEFINE(_POSIX_SOURCE)
148 dnl Extended Character Sets
150 AC_ARG_ENABLE([extcharset],
151 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
152 if test x"$enable_extcharset" = x"yes"; then
153 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
157 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
158 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
159 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
160 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
161 sys/mkdev.h wchar.h wctype.h])
168 dnl Missing structure components
169 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
173 dnl Check availability of some functions
179 getegid geteuid getgid getsid getuid \
181 memcpy memmove memset \
183 setreuid setuid statfs strerror strftime sysconf \
184 tcgetattr tcsetattr truncate \
187 dnl S-Lang needs all four functions to be defined to use POSIX signal API
188 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
189 if test x$slang_signals != xno; then
190 AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
194 dnl getpt is a GNU Extension (glibc 2.1.x)
196 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
197 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
199 dnl replacing lstat with statlstat on sco makes it more portable between
201 AC_CHECK_FUNCS(statlstat)
204 dnl If running under AIX, AC_AIX does not tell us that
206 AC_MSG_CHECKING([for AIX defines])
208 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
212 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
214 ], [AC_MSG_RESULT(no)])
217 dnl This is from GNU fileutils, check aclocal.m4 for more information
222 dnl Missing typedefs and replacements
226 AC_CHECK_TYPE(off_t, long)
229 AC_CHECK_TYPE(nlink_t, unsigned int)
230 AC_CHECK_TYPES([socklen_t],,,
232 #include <sys/types.h>
233 #include <sys/socket.h>
236 dnl This is needed for regex.c only
237 AC_CHECK_TYPE(uintptr_t,
238 [AC_DEFINE(HAVE_UINTPTR_T, 1,
239 [Define if you have the `uintptr_t' type.])
247 dnl Used to read keyboard modifiers when running under X11.
251 if test "x$no_x" = xyes; then
252 textmode_x11_support="no"
254 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
255 if test "x$mc_cv_g_module_supported" = "xyes" ; then
256 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
257 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
258 dnl functionality is supported on the system. This way, mc will be
259 dnl linked against the gmodule library only when it's really required.
260 GLIB_CFLAGS="$GMODULE_CFLAGS"
261 GLIB_LIBS="$GMODULE_LIBS"
263 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
265 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
266 [Define to enable getting events from X Window System])
267 textmode_x11_support="yes"
271 dnl Try to find static libraries for glib and gmodule.
273 if test x$with_glib_static = xyes; then
275 for i in $GLIB_LIBS; do
286 if test -n "$lib"; then
287 lib1=`echo $i | sed 's/^-l//'`
288 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
289 add="$GLIB_LIBDIR/lib${lib1}.a"
291 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
292 add="$GLIB_LIBDIR/lib${lib}.a"
294 AC_MSG_ERROR([Cannot find static $lib])
298 new_GLIB_LIBS="$new_GLIB_LIBS $add"
300 GLIB_LIBS="$new_GLIB_LIBS"
305 dnl Network related functions
308 AC_SEARCH_LIBS([socket], [socket])
309 AC_SEARCH_LIBS([gethostbyname], [nsl])
312 dnl Sequent wants getprocessstats
314 AC_CHECK_LIB(seq, get_process_stats, [
316 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
317 [Define if you have function `get_process_stats' and
318 have to use that instead of gettimeofday])])
323 if test x$use_vfs = xyes; then
324 AC_MSG_NOTICE([enabling VFS code])
325 vfs_type="Midnight Commander Virtual File System"
329 dnl Check for gpm mouse support (Linux only)
331 mouse_lib="xterm only"
332 AC_ARG_WITH(gpm-mouse,
333 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
338 if test x$with_gpm_mouse != xno; then
339 AC_CHECK_LIB(gpm, Gpm_Repeat,
340 [AC_DEFINE(HAVE_LIBGPM, 1,
341 [Define to enable gpm mouse support on Linux])
342 mouse_lib="gpm and xterm"
343 MCLIBS="$MCLIBS -lgpm"],
344 [AC_MSG_WARN([libgpm is missing or older than 0.18])
351 dnl Check nroff and the options it supports
353 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
360 AC_MSG_CHECKING([for manual formatting macros])
361 AC_CACHE_VAL(mc_cv_mandoc, [
362 nroff -mandoc < /dev/null > /dev/null 2>&1
370 AC_MSG_RESULT([$MANDOC])
372 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
373 AC_CACHE_VAL(mc_cv_man_nocolor, [
374 nroff -c < /dev/null > /dev/null 2>&1
381 MAN_FLAGS=$mc_cv_man_nocolor
382 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
384 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
385 AC_CACHE_VAL(mc_cv_nroff_tascii, [
387 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
389 mc_cv_nroff_tascii=-Tlatin1
391 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
393 mc_cv_nroff_tascii=-Tascii
397 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
398 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
406 dnl Check for -L option to file
408 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
409 if $HAVE_FILECMD; then
410 AC_MSG_CHECKING([for -L option to file command])
411 AC_CACHE_VAL(mc_cv_filel, [
412 file -L . > /dev/null 2>&1
419 if test x$mc_cv_filel = xyes; then
420 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
423 AC_MSG_RESULT([$filel])
427 AC_MSG_CHECKING([for subshell support])
428 AC_ARG_WITH(subshell,
429 [ --with-subshell Compile in concurrent subshell [[yes]]
430 --with-subshell=optional Don't run concurrent shell by default [[no]]],
432 if test x$withval = xoptional
434 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
435 [Define to make subshell support optional])
438 if test x$withval = xyes
442 [dnl Default: enable the subshell support
445 if test "x$result" != xno; then
446 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
447 [Define to enable subshell support])
449 AC_MSG_RESULT([$result])
454 dnl Select the screen library. mcslang is the included S-Lang library.
457 [ --with-screen=LIB Compile with screen library: slang, mcslang or
458 ncurses [[slang if found, else mcslang]]])
460 case x$with_screen in
462 MC_WITH_SLANG(strict)
474 AC_MSG_ERROR([Value of the screen library is incorrect])
480 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
481 dnl Report an error if this option is not applicable.
484 [ --with-termcap Try using termcap database [[only if no terminfo]]],
485 [if test x$with_screen != xmcslang; then
486 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
492 dnl Internal editor support.
495 [ --with-edit Enable internal editor [[yes]]])
497 if test x$with_edit != xno; then
498 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
501 AC_MSG_NOTICE([using internal editor])
507 dnl Check if the OS is supported by the console saver.
515 dnl Support for background operations
516 AC_ARG_ENABLE([background],
517 [ --enable-background Support for background file operations [[yes]]])
518 if test "x$enable_background" != xno; then
519 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
524 dnl User visible support for charset conversion.
526 AC_ARG_ENABLE([charset],
527 [ --enable-charset Support for charset selection and conversion [[no]]])
530 if test "x$enable_charset" = xyes; then
531 if test "x$am_cv_func_iconv" != xyes; then
532 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
534 AC_DEFINE(HAVE_CHARSET, 1,
535 [Define to enable charset selection and conversion])
541 if test "$GLIBC21" != yes; then
542 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
545 dnl If default CFLAGS is used with gcc, add -Wall
546 if test -z "$ac_env_CFLAGS_set"; then
547 if test -n "$GCC"; then
548 CFLAGS="$CFLAGS -Wall"
557 dnl Libraries used only when building the mc binary
560 dnl Version for the RedHat package, without dashes
561 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
562 AC_SUBST(RPM_VERSION)
564 if test -n "$use_smbfs"; then
565 AC_CONFIG_SUBDIRS([vfs/samba])
568 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
569 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
570 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
571 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
572 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
573 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
574 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
575 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
576 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}
643 Support for charset: ${charset_msg}