2 dnl Configure.in file for the Midnight Commander
5 AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
8 AC_CONFIG_MACRO_DIR([m4])
9 AC_CONFIG_SRCDIR(src/main.c)
10 AC_CONFIG_AUX_DIR(config)
12 AM_INIT_AUTOMAKE(mc, ${VERSION} )
14 AM_CONFIG_HEADER(config.h)
19 AC_USE_SYSTEM_EXTENSIONS
37 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
39 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
42 dnl First try glib 2.x.
43 dnl Keep this check close to the beginning, so that the users
44 dnl without any glib won't have their time wasted by other checks.
47 AC_ARG_WITH([glib_static],
48 [ --with-glib-static Link glib statically [[no]]])
52 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6], [glib_found=yes], [:])
54 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
55 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
57 if test "x$gmodule_found" = "xyes" ; then
58 dnl Check if the gmodule functionality supported on this system.
67 AC_CHECK_TOOL(AR, ar, ar)
69 dnl Only list browsers here that can be run in background (i.e. with `&')
70 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
73 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
74 dnl We use only part of the functionality of mmap, so on AIX,
75 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
78 [ --with-mmap Use the mmap call [[yes if found]]])
79 if test x$with_mmap != xno; then
80 if test x$with_mmap = x; then
83 AC_DEFINE(HAVE_MMAP, 1)
88 dnl Internationalization
90 AM_GNU_GETTEXT(no-libtool, need-ngettext)
91 AM_GNU_GETTEXT_VERSION(0.14.3)
93 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
94 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
97 dnl Determine which help translations we want to install.
98 ALL_DOC_LINGUAS="es hu it pl ru sr"
101 if test "x$USE_NLS" = xyes; then
102 if test -z "$LINGUAS"; then
103 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
111 for h_lang in $ALL_DOC_LINGUAS; do
112 for lang in $langs; do
113 if test "$lang" = "$h_lang"; then
114 DOC_LINGUAS="$DOC_LINGUAS $lang"
119 AC_SUBST(DOC_LINGUAS)
122 dnl OS specific flags.
128 AC_DEFINE(_POSIX_SOURCE)
132 dnl Extended Character Sets
134 AC_ARG_ENABLE([extcharset],
135 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
136 if test x"$enable_extcharset" = x"yes"; then
137 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
141 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
142 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/vfs.h sys/time.h \
143 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
144 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
145 sys/mkdev.h wchar.h wctype.h])
152 dnl Missing structure components
153 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
157 dnl Check availability of some functions
163 getegid geteuid getgid getsid getuid \
167 setreuid setuid statfs strerror strftime sysconf \
168 tcgetattr tcsetattr truncate \
172 dnl getpt is a GNU Extension (glibc 2.1.x)
174 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
175 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
177 dnl replacing lstat with statlstat on sco makes it more portable between
179 AC_CHECK_FUNCS(statlstat)
182 dnl If running under AIX, AC_AIX does not tell us that
184 AC_MSG_CHECKING([for AIX defines])
186 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
190 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
192 ], [AC_MSG_RESULT(no)])
195 dnl This is from GNU fileutils, check aclocal.m4 for more information
200 dnl Missing typedefs and replacements
203 AC_CHECK_SIZEOF(long)
204 AC_CHECK_SIZEOF(long long)
207 AC_CHECK_SIZEOF(off_t)
210 AC_CHECK_TYPE(nlink_t, unsigned int)
211 AC_CHECK_TYPES([socklen_t],,,
213 #include <sys/types.h>
214 #include <sys/socket.h>
217 dnl This is needed for regex.c only
218 AC_CHECK_TYPE(uintptr_t,
219 [AC_DEFINE(HAVE_UINTPTR_T, 1,
220 [Define if you have the `uintptr_t' type.])
228 dnl Used to read keyboard modifiers when running under X11.
232 if test "x$no_x" = xyes; then
233 textmode_x11_support="no"
235 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
236 if test "x$mc_cv_g_module_supported" = "xyes" ; then
237 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
238 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
239 dnl functionality is supported on the system. This way, mc will be
240 dnl linked against the gmodule library only when it's really required.
241 GLIB_CFLAGS="$GMODULE_CFLAGS"
242 GLIB_LIBS="$GMODULE_LIBS"
244 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
246 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
247 [Define to enable getting events from X Window System])
248 textmode_x11_support="yes"
252 dnl Try to find static libraries for glib and gmodule.
254 if test x$with_glib_static = xyes; then
256 for i in $GLIB_LIBS; do
267 if test -n "$lib"; then
268 lib1=`echo $i | sed 's/^-l//'`
269 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
270 add="$GLIB_LIBDIR/lib${lib1}.a"
272 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
273 add="$GLIB_LIBDIR/lib${lib}.a"
275 AC_MSG_ERROR([Cannot find static $lib])
279 new_GLIB_LIBS="$new_GLIB_LIBS $add"
281 GLIB_LIBS="$new_GLIB_LIBS"
286 dnl Network related functions
289 AC_SEARCH_LIBS([socket], [socket])
290 AC_SEARCH_LIBS([gethostbyname], [nsl])
293 dnl Sequent wants getprocessstats
295 AC_CHECK_LIB(seq, get_process_stats, [
297 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
298 [Define if you have function `get_process_stats' and
299 have to use that instead of gettimeofday])])
304 if test x$use_vfs = xyes; then
305 AC_MSG_NOTICE([enabling VFS code])
306 vfs_type="Midnight Commander Virtual File System"
310 dnl Check for gpm mouse support (Linux only)
312 mouse_lib="xterm only"
313 AC_ARG_WITH(gpm-mouse,
314 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
319 if test x$with_gpm_mouse != xno; then
320 AC_CHECK_LIB(gpm, Gpm_Repeat,
321 [AC_DEFINE(HAVE_LIBGPM, 1,
322 [Define to enable gpm mouse support on Linux])
323 mouse_lib="gpm and xterm"
324 MCLIBS="$MCLIBS -lgpm"],
325 [AC_MSG_WARN([libgpm is missing or older than 0.18])
334 dnl Check nroff and the options it supports
336 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
343 AC_MSG_CHECKING([for manual formatting macros])
344 AC_CACHE_VAL(mc_cv_mandoc, [
345 nroff -mandoc < /dev/null > /dev/null 2>&1
353 AC_MSG_RESULT([$MANDOC])
355 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
356 AC_CACHE_VAL(mc_cv_man_nocolor, [
357 nroff -c < /dev/null > /dev/null 2>&1
364 MAN_FLAGS=$mc_cv_man_nocolor
365 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
367 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
368 AC_CACHE_VAL(mc_cv_nroff_tascii, [
370 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
372 mc_cv_nroff_tascii=-Tlatin1
374 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
376 mc_cv_nroff_tascii=-Tascii
380 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
381 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
389 dnl Check for -L option to file
391 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
392 if $HAVE_FILECMD; then
393 AC_MSG_CHECKING([for -L option to file command])
394 AC_CACHE_VAL(mc_cv_filel, [
395 file -L . > /dev/null 2>&1
402 if test x$mc_cv_filel = xyes; then
403 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
406 AC_MSG_RESULT([$filel])
410 AC_MSG_CHECKING([for subshell support])
411 AC_ARG_WITH(subshell,
412 [ --with-subshell Compile in concurrent subshell [[yes]]
413 --with-subshell=optional Don't run concurrent shell by default [[no]]],
415 if test x$withval = xoptional
417 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
418 [Define to make subshell support optional])
421 if test x$withval = xyes
425 [dnl Default: enable the subshell support
428 if test "x$result" != xno; then
429 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
430 [Define to enable subshell support])
432 AC_MSG_RESULT([$result])
437 dnl Select the screen library.
440 [ --with-screen=LIB Compile with screen library: slang or
441 ncurses [[slang if found]]])
443 case x$with_screen in
445 MC_WITH_SLANG(strict)
457 AC_MSG_ERROR([Value of the screen library is incorrect])
463 dnl Internal editor support.
466 [ --with-edit Enable internal editor [[yes]]])
468 if test x$with_edit != xno; then
469 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
472 AC_MSG_NOTICE([using internal editor])
478 dnl Check if the OS is supported by the console saver.
486 dnl Support for background operations
487 AC_ARG_ENABLE([background],
488 [ --enable-background Support for background file operations [[yes]]])
489 if test "x$enable_background" != xno; then
490 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
495 dnl User visible support for charset conversion.
497 AC_ARG_ENABLE([charset],
498 [ --enable-charset Support for charset selection and conversion [[no]]])
501 if test "x$enable_charset" = xyes; then
502 AC_DEFINE(HAVE_CHARSET, 1,
503 [Define to enable charset selection and conversion])
508 if test "$GLIBC21" != yes; then
509 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
512 dnl If default CFLAGS is used with gcc, add -Wall
513 if test -z "$ac_env_CFLAGS_set"; then
514 if test -n "$GCC"; then
515 CFLAGS="$CFLAGS -Wall"
524 dnl Libraries used only when building the mc binary
527 dnl Version for the RedHat package, without dashes
528 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
529 AC_SUBST(RPM_VERSION)
531 if test -n "$use_smbfs"; then
532 AC_CONFIG_SUBDIRS([vfs/samba])
535 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
536 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
537 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
538 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
539 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$enable_vfs_undelfs"])
540 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
541 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
542 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
543 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
549 contrib/dist/Makefile
550 contrib/dist/debian/Makefile
551 contrib/dist/gentoo/Makefile
552 contrib/dist/redhat/Makefile
553 contrib/dist/redhat/mc.spec
556 contrib/dist/prototype
562 src/mcconfig/Makefile
598 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
599 doc/man/es/mc.1 doc/man/es/Makefile
600 doc/man/hu/mc.1 doc/man/hu/Makefile
601 doc/man/it/mc.1 doc/man/it/Makefile
602 doc/man/pl/mc.1 doc/man/pl/Makefile
603 doc/man/ru/mc.1 doc/man/ru/Makefile
604 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
623 Source code location: ${srcdir}
625 Compiler flags: ${CFLAGS}
626 File system: ${vfs_type}
628 Screen library: ${screen_msg}
629 Mouse support: ${mouse_lib}
630 X11 events support: ${textmode_x11_support}
631 With subshell support: ${subshell}
632 Internal editor: ${edit_msg}
633 Support for charset: ${charset_msg}
634 Search type: ${SEARCH_TYPE}