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 for the -mandoc package
286 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
288 AC_MSG_CHECKING([for manual formatting macros])
289 AC_CACHE_VAL(ac_cv_mandoc, [
290 nroff -mandoc < /dev/null > /dev/null 2>&1
299 AC_MSG_RESULT([$MANDOC])
306 dnl Check if nroff accepts -Tlatin1 or -Tascii
309 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
310 AC_CACHE_VAL(ac_cv_nroff_tascii, [
311 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
314 ac_cv_nroff_tascii=" -Tlatin1"
316 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
319 ac_cv_nroff_tascii=" -Tascii"
321 ac_cv_nroff_tascii=""
325 if test "x$ac_cv_nroff_tascii" = x; then
328 AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
331 TROFFASCII="$ac_cv_nroff_tascii"
335 dnl Check for - option to file
337 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
338 if $HAVE_FILECMD; then
339 AC_MSG_CHECKING([for - option to file command])
340 AC_CACHE_VAL(ac_cv_filestdin, [[
341 cat > conftest.c <<\EOF
348 cat > conftest.sed <<\EOF
352 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
353 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
354 if test "x$filehyphen_1" = "x$filehyphen_2"; then
359 rm conftest.c conftest.sed
362 if test x$ac_cv_filestdin = xyes; then
363 AC_DEFINE(FILE_STDIN, 1,
364 [Define if the file command accepts - for stdin])
366 filestdin=$ac_cv_filestdin
367 AC_MSG_RESULT([$filestdin])
370 dnl Check for -L option to file
373 AC_MSG_CHECKING([for -L option to file command])
374 AC_CACHE_VAL(ac_cv_filel, [
375 file -L . > /dev/null 2>&1
383 if test x$ac_cv_filel = xyes; then
384 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
387 AC_MSG_RESULT([$filel])
391 AC_MSG_CHECKING([for subshell support])
392 AC_ARG_WITH(subshell,
393 [ --with-subshell Compile in concurrent subshell [[yes]]
394 --with-subshell=optional Don't run concurrent shell by default [[no]]],
396 if test x$withval = xoptional
398 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
399 [Define to make subshell support optional])
402 if test x$withval = xyes
406 [dnl Default: enable the subshell support
409 if test "x$result" != xno; then
410 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
411 [Define to enable subshell support])
413 AC_MSG_RESULT([$result])
418 dnl Select the screen library. mcslang is the included S-Lang library.
421 [ --with-screen=LIB Compile with screen library: slang, mcslang or
422 ncurses [[slang if found, else mcslang]]])
424 case x$with_screen in
426 MC_WITH_SLANG(strict)
438 AC_MSG_ERROR([Value of the screen library is incorrect])
444 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
445 dnl Report an error if this option is not applicable.
448 [ --with-termcap Try using termcap database [[only if no terminfo]]],
449 [if test x$with_screen != xmcslang; then
450 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
456 dnl Internal editor support.
459 [ --with-edit Enable internal editor [[yes]]])
461 if test x$with_edit != xno; then
462 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
465 AC_MSG_NOTICE([using internal editor])
471 if test $use_vfs = yes; then
472 AC_ARG_WITH(ext2undel,
473 [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
474 [if test x$withval != xno; then
475 if test x$withval != xyes; then
476 LDFLAGS="$LDFLAGS -L$withval/lib"
477 CPPFLAGS="$CPPFLAGS -I$withval/include"
482 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
488 dnl The variables used for expanding the auto saver.
495 cons_saver="cons.saver"
499 dnl On Linux, check for PAM authentication available
501 AC_CHECK_LIB(pam, pam_start, [
502 AC_DEFINE(HAVE_PAM, 1,
503 [Define if PAM (Pluggable Authentication Modules) is available])
512 dnl User visible support for charset conversion.
514 AC_ARG_ENABLE([charset],
515 [ --enable-charset Support for charset selection and conversion [[no]]])
517 if test "x$enable_charset" = xyes; then
518 if test "x$am_cv_func_iconv" != xyes; then
519 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
521 AC_DEFINE(HAVE_CHARSET, 1,
522 [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 LIBS="$LIBS $posix_libs"
538 dnl Libraries used only when building the mc binary
541 dnl Version for the RedHat package, without dashes
542 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
543 AC_SUBST(RPM_VERSION)
545 if test -n "$use_smbfs"; then
546 AC_CONFIG_SUBDIRS([vfs/samba])
549 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
550 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
551 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
552 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
553 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
554 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
555 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
556 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
557 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
559 AH_BOTTOM([#include <extraconf.h>])
589 doc/mc.1 doc/mcedit.1 doc/mcserv.8
590 doc/es/mc.1 doc/es/Makefile
591 doc/hu/Makefile doc/hu/mc.hlp.hu
592 doc/it/mc.1 doc/it/Makefile
593 doc/pl/mc.1 doc/pl/Makefile
594 doc/ru/mc.1 doc/ru/Makefile
602 # Expand $bindir and $datadir to show the user.
603 # Two levels of expansion should be enough.
604 bindir_msg=`eval echo "$bindir"`
605 bindir_msg=`eval echo "$bindir_msg"`
606 datadir_msg=`eval echo "$datadir"`
607 datadir_msg=`eval echo "$datadir_msg"`
612 Source code location: ${srcdir}
614 Compiler flags: ${CFLAGS}
615 File system: ${vfs_type}
617 Screen library: ${screen_msg}
618 Install console saver: ${install_saver}
619 Mouse support: ${mouse_lib}
620 X11 events support: ${textmode_x11_support}
621 With subshell support: ${subshell}
622 Internal editor: ${edit_msg}
623 Install path for binaries: ${bindir_msg}
624 Install path for data: ${datadir_msg}