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 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.
28 PKG_CHECK_MODULES(GLIB, [glib-2.0], , [glib_found=no])
30 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
31 if test "x$glib_found" = "xno" ; then
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"
86 dnl Determine which help translations we want to install.
87 ALL_DOC_LINGUAS="es hu it pl ru"
90 if test "x$USE_NLS" = xyes; then
91 langs="${LINGUAS-$ALL_LINGUAS}"
96 for h_lang in $ALL_DOC_LINGUAS; do
97 for lang in $langs; do
98 if test "$lang" = "$h_lang"; then
99 DOC_LINGUAS="$DOC_LINGUAS $lang"
104 AC_SUBST(DOC_LINGUAS)
107 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
109 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
112 dnl Enforce coding standards
114 if test "x$GCC" = xyes; then
115 CFLAGS="$CFLAGS -Wall"
119 dnl OS specific flags.
127 AC_DEFINE(_POSIX_SOURCE)
130 AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
131 AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
136 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
137 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
138 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
145 dnl Missing structure components
151 dnl Check availability of some functions
154 AC_CHECK_FUNCS([strerror statfs strftime \
155 memmove truncate initgroups putenv \
156 memset memcpy tcsetattr tcgetattr cfgetospeed \
157 sigaction sigemptyset sigprocmask sigaddset \
158 sysconf setuid setreuid telldir seekdir])
161 dnl getpt is a GNU Extension (glibc 2.1.x)
163 AC_CHECK_FUNCS(getpt)
164 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
166 dnl replacing lstat with statlstat on sco makes it more portable between
168 AC_CHECK_FUNCS(statlstat)
171 dnl If running under AIX, AC_AIX does not tell us that
173 AC_MSG_CHECKING([for AIX defines])
175 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
179 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
181 ], [AC_MSG_RESULT(no)])
184 dnl This is from GNU fileutils, check aclocal.m4 for more information
189 dnl Missing typedefs and replacements
193 AC_CHECK_TYPE(umode_t, int)
194 AC_CHECK_TYPE(off_t, long)
197 AC_CHECK_TYPE(nlink_t, unsigned int)
199 dnl This is needed for regex.c only
200 AC_CHECK_TYPE(uintptr_t,
201 [AC_DEFINE(HAVE_UINTPTR_T, 1,
202 [Define if you have the `uintptr_t' type.])
212 textmode_x11_support="no"
213 AC_ARG_WITH(tm-x-support,
214 [ --with-tm-x-support Get keyboard events from X Window System [[no]]],
215 [if test x$withval = xyes; then
217 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
218 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
219 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
220 [Define to enable getting events from X Window System])
221 textmode_x11_support="yes"
226 dnl Network related functions
229 AC_CHECK_LIB(nsl, t_accept)
230 AC_CHECK_LIB(socket, socket)
233 AC_CHECK_FUNCS(socket, have_socket=yes)
234 if test $have_socket = no; then
235 # socket 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, socket, [
240 AC_DEFINE(HAVE_SOCKET)
245 have_gethostbyname=no
246 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
247 if test $have_gethostbyname = no; then
248 # gethostbyname is not in the default libraries. See if it's in some other.
249 for lib in bsd socket inet; do
250 AC_CHECK_LIB([$lib], [gethostbyname],
251 [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
255 AC_CHECK_FUNCS(socketpair)
258 dnl Sequent wants getprocessstats
260 AC_CHECK_LIB(seq, get_process_stats, [
262 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
263 [Define if you have function `get_process_stats' and
264 have to use that instead of gettimeofday])])
269 if test x$use_vfs = xyes; then
270 AC_MSG_NOTICE([enabling VFS code])
271 vfs_type="Midnight Commander Virtual File System"
275 dnl Check for gpm mouse support (Linux only)
277 mouse_lib="xterm only"
278 AC_ARG_WITH(gpm-mouse,
279 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
284 if test x$with_gpm_mouse != xno; then
285 AC_CHECK_LIB(gpm, Gpm_Repeat,
286 [AC_DEFINE(HAVE_LIBGPM, 1,
287 [Define to enable gpm mouse support on Linux])
288 mouse_lib="gpm and xterm"
289 MCLIBS="$MCLIBS -lgpm"],
290 [AC_MSG_WARN([libgpm is missing or older than 0.18])
297 dnl Check nroff and the options it supports
299 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
306 AC_MSG_CHECKING([for manual formatting macros])
307 AC_CACHE_VAL(ac_cv_mandoc, [
308 nroff -mandoc < /dev/null > /dev/null 2>&1
316 AC_MSG_RESULT([$MANDOC])
318 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
319 AC_CACHE_VAL(ac_cv_man_nocolor, [
320 nroff -c < /dev/null > /dev/null 2>&1
327 MAN_FLAGS=$ac_cv_man_nocolor
328 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
330 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
331 AC_CACHE_VAL(ac_cv_nroff_tascii, [
333 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
335 ac_cv_nroff_tascii=-Tlatin1
337 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
339 ac_cv_nroff_tascii=-Tascii
343 AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
344 MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
352 dnl Check for - option to file
354 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
355 if $HAVE_FILECMD; then
356 AC_MSG_CHECKING([for - option to file command])
357 AC_CACHE_VAL(ac_cv_filestdin, [[
358 cat > conftest.c <<\EOF
365 cat > conftest.sed <<\EOF
369 filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
370 filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
371 if test "x$filehyphen_1" = "x$filehyphen_2"; then
376 rm conftest.c conftest.sed
379 if test x$ac_cv_filestdin = xyes; then
380 AC_DEFINE(FILE_STDIN, 1,
381 [Define if the file command accepts - for stdin])
383 filestdin=$ac_cv_filestdin
384 AC_MSG_RESULT([$filestdin])
387 dnl Check for -L option to file
390 AC_MSG_CHECKING([for -L option to file command])
391 AC_CACHE_VAL(ac_cv_filel, [
392 file -L . > /dev/null 2>&1
400 if test x$ac_cv_filel = xyes; then
401 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
404 AC_MSG_RESULT([$filel])
408 AC_MSG_CHECKING([for subshell support])
409 AC_ARG_WITH(subshell,
410 [ --with-subshell Compile in concurrent subshell [[yes]]
411 --with-subshell=optional Don't run concurrent shell by default [[no]]],
413 if test x$withval = xoptional
415 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
416 [Define to make subshell support optional])
419 if test x$withval = xyes
423 [dnl Default: enable the subshell support
426 if test "x$result" != xno; then
427 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
428 [Define to enable subshell support])
430 AC_MSG_RESULT([$result])
435 dnl Select the screen library. mcslang is the included S-Lang library.
438 [ --with-screen=LIB Compile with screen library: slang, mcslang or
439 ncurses [[slang if found, else mcslang]]])
441 case x$with_screen in
443 MC_WITH_SLANG(strict)
455 AC_MSG_ERROR([Value of the screen library is incorrect])
461 dnl Force using termcap. This option is processed in MC_WITH_MCSLANG.
462 dnl Report an error if this option is not applicable.
465 [ --with-termcap Try using termcap database [[only if no terminfo]]],
466 [if test x$with_screen != xmcslang; then
467 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
473 dnl Internal editor support.
476 [ --with-edit Enable internal editor [[yes]]])
478 if test x$with_edit != xno; then
479 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
482 AC_MSG_NOTICE([using internal editor])
488 if test $use_vfs = yes; then
489 AC_ARG_WITH(ext2undel,
490 [ --with-ext2undel Compile with ext2 undelete code [[yes if found]]],
491 [if test x$withval != xno; then
492 if test x$withval != xyes; then
493 LDFLAGS="$LDFLAGS -L$withval/lib"
494 CPPFLAGS="$CPPFLAGS -I$withval/include"
499 AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
504 dnl Check if the OS is supported by the console saver.
513 dnl User visible support for charset conversion.
515 AC_ARG_ENABLE([charset],
516 [ --enable-charset Support for charset selection and conversion [[no]]])
518 if test "x$enable_charset" = xyes; then
519 if test "x$am_cv_func_iconv" != xyes; then
520 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
522 AC_DEFINE(HAVE_CHARSET, 1,
523 [Define to enable charset selection and conversion])
528 if test "$GLIBC21" != yes; then
529 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
532 LIBS="$LIBS $posix_libs"
539 dnl Libraries used only when building the mc binary
542 dnl Version for the RedHat package, without dashes
543 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
544 AC_SUBST(RPM_VERSION)
546 if test -n "$use_smbfs"; then
547 AC_CONFIG_SUBDIRS([vfs/samba])
550 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
551 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
552 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
553 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
554 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
555 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
556 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
557 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
558 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
560 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/mc.1 doc/hu/Makefile
592 doc/it/mc.1 doc/it/Makefile
593 doc/pl/mc.1 doc/pl/Makefile
594 doc/ru/mc.1 doc/ru/Makefile
605 Source code location: ${srcdir}
607 Compiler flags: ${CFLAGS}
608 File system: ${vfs_type}
610 Screen library: ${screen_msg}
611 Mouse support: ${mouse_lib}
612 X11 events support: ${textmode_x11_support}
613 With subshell support: ${subshell}
614 Internal editor: ${edit_msg}