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.0-pre1b)
11 AM_CONFIG_HEADER(config.h)
23 dnl Check if the user requested to compile with glib 2.x. If not, use
24 dnl glib 1.2.x. This check should be kept close to the beginning, as it
25 dnl fails for the users without any glib.
27 AC_ARG_WITH(glib2, [ --with-glib2 Use glib 2.x [[no]]])
29 if test "x$with_glib2" = "xyes" ; then
30 PKG_CHECK_MODULES(GLIB, "glib-2.0")
32 dnl This temporary variable is a workaround for a bug in Autoconf-2.53
33 glib_path=$PATH:/usr/local/bin
35 dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
36 AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
38 AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
39 AM_PATH_GLIB(1.2.6,,[AC_MSG_ERROR([Test for glib failed.
40 GNU Midnight Commander requires glib 1.2.6 or above.])])
49 AC_CHECK_TOOL(AR, ar, ar)
51 dnl Only list browsers here that can be run in background (i.e. with `&')
52 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
55 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
56 dnl We use only part of the functionality of mmap, so on AIX,
57 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
60 [ --with-mmap Force using the mmap call (only useful on AIX)],
63 ac_cv_func_mmap_fixed_mapped=yes
64 AC_MSG_NOTICE([forcing MMAP support])
67 ac_cv_func_mmap_fixed_mapped=no
68 AC_MSG_NOTICE([disabling MMAP support])
73 ALL_LINGUAS="az be bg ca cs da de el es es_ES eu fi fr hu it ja ko lv \
74 nl no pl pt pt_BR ro ru sk sl sv uk ta tr wa zh_CN zh_TW"
77 dnl Internationalization
80 AM_GNU_GETTEXT_VERSION(0.11.5)
82 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
83 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
87 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
89 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
92 dnl Enforce coding standards
94 if test "x$GCC" = xyes; then
95 CFLAGS="$CFLAGS -Wall"
99 dnl OS specific flags.
107 AC_DEFINE(_POSIX_SOURCE)
110 AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
111 AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
116 AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
117 malloc.h stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h \
118 sys/time.h sys/timeb.h sys/select.h sys/ioctl.h stropts.h \
126 dnl Missing structure components
132 dnl Check availability of some functions
135 AC_CHECK_FUNCS([strerror statfs strftime \
136 memmove pwdauth truncate initgroups putenv \
137 memset memcpy tcsetattr tcgetattr cfgetospeed \
138 sigaction sigemptyset sigprocmask sigaddset \
139 sysconf setuid setreuid telldir seekdir])
142 dnl getpt is a GNU Extension (glibc 2.1.x)
144 AC_CHECK_FUNCS(getpt)
148 dnl On SCO and some SVR4, crypt is on libcrypt.a
149 dnl grantpt in libpt.a
152 AC_CHECK_FUNCS(crypt, , [
153 AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
154 AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
157 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
159 dnl replacing lstat with statlstat on sco makes it more portable between
161 AC_CHECK_FUNCS(statlstat)
164 dnl If running under AIX, AC_AIX does not tell us that
166 AC_MSG_CHECKING([for AIX defines])
168 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
172 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
174 ], [AC_MSG_RESULT(no)])
177 dnl This is from GNU fileutils, check aclocal.m4 for more information
182 dnl Missing typedefs and replacements
186 AC_CHECK_TYPE(umode_t, int)
187 AC_CHECK_TYPE(off_t, long)
190 AC_CHECK_TYPE(nlink_t, unsigned int)
199 textmode_x11_support="no"
200 AC_ARG_WITH(tm-x-support,
201 [ --with-tm-x-support Get keyboard events from X Window System [[no]]],
202 [if test x$withval = xyes; then
204 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
205 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
206 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
207 [Define to enable getting events from X Window System])
208 textmode_x11_support="yes"
213 dnl Network related functions
216 AC_CHECK_LIB(nsl, t_accept)
217 AC_CHECK_LIB(socket, socket)
220 AC_CHECK_FUNCS(socket, have_socket=yes)
221 if test $have_socket = no; then
222 # socket is not in the default libraries. See if it's in some other.
223 for lib in bsd socket inet; do
224 AC_CHECK_LIB($lib, socket, [
227 AC_DEFINE(HAVE_SOCKET)
232 have_gethostbyname=no
233 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
234 if test $have_gethostbyname = no; then
235 # gethostbyname is not in the default libraries. See if it's in some other.
236 for lib in bsd socket inet; do
237 AC_CHECK_LIB([$lib], [gethostbyname],
238 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
242 AC_CHECK_FUNCS(socketpair)
245 dnl Sequent wants getprocessstats
247 AC_CHECK_LIB(seq, get_process_stats, [
249 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
250 [Define if you have function `get_process_stats' and
251 have to use that instead of gettimeofday])])
256 if test x$use_vfs = xyes; then
257 AC_MSG_NOTICE([enabling VFS code])
258 vfs_type="Midnight Commander Virtual File System"
262 dnl Check for gpm mouse support (Linux only)
264 mouse_lib="xterm only"
265 AC_ARG_WITH(gpm-mouse,
266 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
271 if test x$with_gpm_mouse != xno; then
272 AC_CHECK_LIB(gpm, Gpm_Repeat,
273 [AC_DEFINE(HAVE_LIBGPM, 1,
274 [Define to enable gpm mouse support on Linux])
275 mouse_lib="gpm and xterm"
276 MCLIBS="$MCLIBS -lgpm"],
277 [AC_MSG_WARN([libgpm is missing or older than 0.18])
284 dnl Check nroff and the options it supports
286 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
293 AC_MSG_CHECKING([for manual formatting macros])
294 AC_CACHE_VAL(ac_cv_mandoc, [
295 nroff -mandoc < /dev/null > /dev/null 2>&1
303 AC_MSG_RESULT([$MANDOC])
305 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
306 AC_CACHE_VAL(ac_cv_man_nocolor, [
307 nroff -c < /dev/null > /dev/null 2>&1
314 MAN_FLAGS=$ac_cv_man_nocolor
315 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
317 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
318 AC_CACHE_VAL(ac_cv_nroff_tascii, [
320 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
322 ac_cv_nroff_tascii=-Tlatin1
324 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
326 ac_cv_nroff_tascii=-Tascii
330 AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
331 MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
339 dnl Check for - option to file
341 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
342 if $HAVE_FILECMD; then
343 AC_MSG_CHECKING([for - option to file command])
344 AC_CACHE_VAL(ac_cv_filestdin, [[
345 cat > conftest.c <<\EOF
352 cat > conftest.sed <<\EOF
356 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
357 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
358 if test "x$filehyphen_1" = "x$filehyphen_2"; then
363 rm conftest.c conftest.sed
366 if test x$ac_cv_filestdin = xyes; then
367 AC_DEFINE(FILE_STDIN, 1,
368 [Define if the file command accepts - for stdin])
370 filestdin=$ac_cv_filestdin
371 AC_MSG_RESULT([$filestdin])
374 dnl Check for -L option to file
377 AC_MSG_CHECKING([for -L option to file command])
378 AC_CACHE_VAL(ac_cv_filel, [
379 file -L . > /dev/null 2>&1
387 if test x$ac_cv_filel = xyes; then
388 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
391 AC_MSG_RESULT([$filel])
395 AC_MSG_CHECKING([for subshell support])
396 AC_ARG_WITH(subshell,
397 [ --with-subshell Compile in concurrent subshell [[yes]]
398 --with-subshell=optional Don't run concurrent shell by default [[no]]],
400 if test x$withval = xoptional
402 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
403 [Define to make subshell support optional])
406 if test x$withval = xyes
410 [dnl Default: enable the subshell support
413 if test "x$result" != xno; then
414 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
415 [Define to enable subshell support])
417 AC_MSG_RESULT([$result])
422 dnl Select the screen library. mcslang is the included S-Lang library.
425 [ --with-screen=LIB Compile with screen library: slang, mcslang or
426 ncurses [[slang if found, else mcslang]]])
428 case x$with_screen in
430 MC_WITH_SLANG(strict)
442 AC_MSG_ERROR([Value of the screen library is incorrect])
448 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
449 dnl Report an error if this option is not applicable.
452 [ --with-termcap Try using termcap database [[only if no terminfo]]],
453 [if test x$with_screen != xmcslang; then
454 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
460 dnl Internal editor support.
463 [ --with-edit Enable internal editor [[yes]]])
465 if test x$with_edit != xno; then
466 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
469 AC_MSG_NOTICE([using internal editor])
475 if test $use_vfs = yes; then
476 AC_ARG_WITH(ext2undel,
477 [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
478 [if test x$withval != xno; then
479 if test x$withval != xyes; then
480 LDFLAGS="$LDFLAGS -L$withval/lib"
481 CPPFLAGS="$CPPFLAGS -I$withval/include"
486 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
492 dnl The variables used for expanding the auto saver.
499 cons_saver="cons.saver"
503 dnl On Linux, check for PAM authentication available
505 AC_CHECK_LIB(pam, pam_start, [
506 AC_DEFINE(HAVE_PAM, 1,
507 [Define if PAM (Pluggable Authentication Modules) is available])
516 dnl User visible support for charset conversion.
518 AC_ARG_ENABLE([charset],
519 [ --enable-charset Support for charset selection and conversion [[no]]])
521 if test "x$enable_charset" = xyes; then
522 if test "x$am_cv_func_iconv" != xyes; then
523 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
525 AC_DEFINE(HAVE_CHARSET, 1,
526 [Define to enable charset selection and conversion])
531 if test "$GLIBC21" != yes; then
532 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
535 LIBS="$LIBS $posix_libs"
542 dnl Libraries used only when building the mc binary
545 dnl Version for the RedHat package, without dashes
546 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
547 AC_SUBST(RPM_VERSION)
549 if test -n "$use_smbfs"; then
550 AC_CONFIG_SUBDIRS([vfs/samba])
553 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
554 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
555 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
556 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
557 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
558 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
559 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
560 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
561 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
563 AH_BOTTOM([#include <extraconf.h>])
591 doc/mc.1 doc/mcedit.1 doc/mcserv.8
592 doc/es/mc.1 doc/es/Makefile
593 doc/hu/mc.1 doc/hu/Makefile
594 doc/it/mc.1 doc/it/Makefile
595 doc/pl/mc.1 doc/pl/Makefile
596 doc/ru/mc.1 doc/ru/Makefile
607 Source code location: ${srcdir}
609 Compiler flags: ${CFLAGS}
610 File system: ${vfs_type}
612 Screen library: ${screen_msg}
613 Install console saver: ${install_saver}
614 Mouse support: ${mouse_lib}
615 X11 events support: ${textmode_x11_support}
616 With subshell support: ${subshell}
617 Internal editor: ${edit_msg}