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)
11 AM_INIT_AUTOMAKE(mc, ${VERSION} )
13 AM_CONFIG_HEADER(config.h)
18 AC_USE_SYSTEM_EXTENSIONS
36 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
38 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
41 dnl First try glib 2.x.
42 dnl Keep this check close to the beginning, so that the users
43 dnl without any glib won't have their time wasted by other checks.
46 AC_ARG_WITH([glib_static],
47 [ --with-glib-static Link glib statically [[no]]])
51 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6], [glib_found=yes], [:])
53 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
54 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
56 if test "x$gmodule_found" = "xyes" ; then
57 dnl Check if the gmodule functionality supported on this system.
66 AC_CHECK_TOOL(AR, ar, ar)
68 dnl Only list browsers here that can be run in background (i.e. with `&')
69 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
72 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
73 dnl We use only part of the functionality of mmap, so on AIX,
74 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
77 [ --with-mmap Use the mmap call [[yes if found]]])
78 if test x$with_mmap != xno; then
79 if test x$with_mmap = x; then
82 AC_DEFINE(HAVE_MMAP, 1)
87 dnl Internationalization
89 AM_GNU_GETTEXT(no-libtool, need-ngettext)
90 AM_GNU_GETTEXT_VERSION(0.14.3)
92 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
93 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
96 dnl Determine which help translations we want to install.
97 ALL_DOC_LINGUAS="es hu it pl ru sr"
100 if test "x$USE_NLS" = xyes; then
101 if test -z "$LINGUAS"; then
102 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
110 for h_lang in $ALL_DOC_LINGUAS; do
111 for lang in $langs; do
112 if test "$lang" = "$h_lang"; then
113 DOC_LINGUAS="$DOC_LINGUAS $lang"
118 AC_SUBST(DOC_LINGUAS)
121 dnl OS specific flags.
127 AC_DEFINE(_POSIX_SOURCE)
131 dnl Extended Character Sets
133 AC_ARG_ENABLE([extcharset],
134 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
135 if test x"$enable_extcharset" = x"yes"; then
136 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
140 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
141 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
142 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
143 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
144 sys/mkdev.h wchar.h wctype.h])
151 dnl Missing structure components
152 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
156 dnl Check availability of some functions
162 getegid geteuid getgid getsid getuid \
166 setreuid setuid statfs strerror strftime sysconf \
167 tcgetattr tcsetattr truncate \
171 dnl getpt is a GNU Extension (glibc 2.1.x)
173 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
174 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
176 dnl replacing lstat with statlstat on sco makes it more portable between
178 AC_CHECK_FUNCS(statlstat)
181 dnl If running under AIX, AC_AIX does not tell us that
183 AC_MSG_CHECKING([for AIX defines])
185 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
189 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
191 ], [AC_MSG_RESULT(no)])
194 dnl This is from GNU fileutils, check aclocal.m4 for more information
199 dnl Missing typedefs and replacements
202 AC_CHECK_SIZEOF(long)
203 AC_CHECK_SIZEOF(long long)
206 AC_CHECK_SIZEOF(off_t)
209 AC_CHECK_TYPE(nlink_t, unsigned int)
210 AC_CHECK_TYPES([socklen_t],,,
212 #include <sys/types.h>
213 #include <sys/socket.h>
216 dnl This is needed for regex.c only
217 AC_CHECK_TYPE(uintptr_t,
218 [AC_DEFINE(HAVE_UINTPTR_T, 1,
219 [Define if you have the `uintptr_t' type.])
227 dnl Used to read keyboard modifiers when running under X11.
231 if test "x$no_x" = xyes; then
232 textmode_x11_support="no"
234 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
235 if test "x$mc_cv_g_module_supported" = "xyes" ; then
236 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
237 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
238 dnl functionality is supported on the system. This way, mc will be
239 dnl linked against the gmodule library only when it's really required.
240 GLIB_CFLAGS="$GMODULE_CFLAGS"
241 GLIB_LIBS="$GMODULE_LIBS"
243 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
245 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
246 [Define to enable getting events from X Window System])
247 textmode_x11_support="yes"
251 dnl Try to find static libraries for glib and gmodule.
253 if test x$with_glib_static = xyes; then
255 for i in $GLIB_LIBS; do
266 if test -n "$lib"; then
267 lib1=`echo $i | sed 's/^-l//'`
268 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
269 add="$GLIB_LIBDIR/lib${lib1}.a"
271 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
272 add="$GLIB_LIBDIR/lib${lib}.a"
274 AC_MSG_ERROR([Cannot find static $lib])
278 new_GLIB_LIBS="$new_GLIB_LIBS $add"
280 GLIB_LIBS="$new_GLIB_LIBS"
285 dnl Network related functions
288 AC_SEARCH_LIBS([socket], [socket])
289 AC_SEARCH_LIBS([gethostbyname], [nsl])
292 dnl Sequent wants getprocessstats
294 AC_CHECK_LIB(seq, get_process_stats, [
296 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
297 [Define if you have function `get_process_stats' and
298 have to use that instead of gettimeofday])])
303 if test x$use_vfs = xyes; then
304 AC_MSG_NOTICE([enabling VFS code])
305 vfs_type="Midnight Commander Virtual File System"
309 dnl Check for gpm mouse support (Linux only)
311 mouse_lib="xterm only"
312 AC_ARG_WITH(gpm-mouse,
313 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
318 if test x$with_gpm_mouse != xno; then
319 AC_CHECK_LIB(gpm, Gpm_Repeat,
320 [AC_DEFINE(HAVE_LIBGPM, 1,
321 [Define to enable gpm mouse support on Linux])
322 mouse_lib="gpm and xterm"
323 MCLIBS="$MCLIBS -lgpm"],
324 [AC_MSG_WARN([libgpm is missing or older than 0.18])
330 $PKG_CONFIG --max-version 2.14 glib-2.0
337 dnl Check nroff and the options it supports
339 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
346 AC_MSG_CHECKING([for manual formatting macros])
347 AC_CACHE_VAL(mc_cv_mandoc, [
348 nroff -mandoc < /dev/null > /dev/null 2>&1
356 AC_MSG_RESULT([$MANDOC])
358 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
359 AC_CACHE_VAL(mc_cv_man_nocolor, [
360 nroff -c < /dev/null > /dev/null 2>&1
367 MAN_FLAGS=$mc_cv_man_nocolor
368 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
370 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
371 AC_CACHE_VAL(mc_cv_nroff_tascii, [
373 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
375 mc_cv_nroff_tascii=-Tlatin1
377 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
379 mc_cv_nroff_tascii=-Tascii
383 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
384 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
392 dnl Check for -L option to file
394 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
395 if $HAVE_FILECMD; then
396 AC_MSG_CHECKING([for -L option to file command])
397 AC_CACHE_VAL(mc_cv_filel, [
398 file -L . > /dev/null 2>&1
405 if test x$mc_cv_filel = xyes; then
406 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
409 AC_MSG_RESULT([$filel])
413 AC_MSG_CHECKING([for subshell support])
414 AC_ARG_WITH(subshell,
415 [ --with-subshell Compile in concurrent subshell [[yes]]
416 --with-subshell=optional Don't run concurrent shell by default [[no]]],
418 if test x$withval = xoptional
420 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
421 [Define to make subshell support optional])
424 if test x$withval = xyes
428 [dnl Default: enable the subshell support
431 if test "x$result" != xno; then
432 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
433 [Define to enable subshell support])
435 AC_MSG_RESULT([$result])
440 dnl Select the screen library.
443 [ --with-screen=LIB Compile with screen library: slang or
444 ncurses [[slang if found]]])
446 case x$with_screen in
448 MC_WITH_SLANG(strict)
460 AC_MSG_ERROR([Value of the screen library is incorrect])
466 dnl Internal editor support.
469 [ --with-edit Enable internal editor [[yes]]])
471 if test x$with_edit != xno; then
472 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
475 AC_MSG_NOTICE([using internal editor])
481 dnl Check if the OS is supported by the console saver.
489 dnl Support for background operations
490 AC_ARG_ENABLE([background],
491 [ --enable-background Support for background file operations [[yes]]])
492 if test "x$enable_background" != xno; then
493 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
498 dnl User visible support for charset conversion.
500 AC_ARG_ENABLE([charset],
501 [ --enable-charset Support for charset selection and conversion [[no]]])
504 if test "x$enable_charset" = xyes; then
505 if test "x$am_cv_func_iconv" != xyes; then
506 AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
508 AC_DEFINE(HAVE_CHARSET, 1,
509 [Define to enable charset selection and conversion])
515 if test "$GLIBC21" != yes; then
516 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
519 dnl If default CFLAGS is used with gcc, add -Wall
520 if test -z "$ac_env_CFLAGS_set"; then
521 if test -n "$GCC"; then
522 CFLAGS="$CFLAGS -Wall"
531 dnl Libraries used only when building the mc binary
534 dnl Version for the RedHat package, without dashes
535 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
536 AC_SUBST(RPM_VERSION)
538 if test -n "$use_smbfs"; then
539 AC_CONFIG_SUBDIRS([vfs/samba])
542 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
543 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
544 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
545 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
546 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
547 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
548 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
549 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
555 contrib/dist/Makefile
556 contrib/dist/debian/Makefile
557 contrib/dist/gentoo/Makefile
558 contrib/dist/redhat/Makefile
559 contrib/dist/redhat/mc.spec
562 contrib/dist/prototype
568 src/mcconfig/Makefile
603 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
604 doc/man/es/mc.1 doc/man/es/Makefile
605 doc/man/hu/mc.1 doc/man/hu/Makefile
606 doc/man/it/mc.1 doc/man/it/Makefile
607 doc/man/pl/mc.1 doc/man/pl/Makefile
608 doc/man/ru/mc.1 doc/man/ru/Makefile
609 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
628 Source code location: ${srcdir}
630 Compiler flags: ${CFLAGS}
631 File system: ${vfs_type}
633 Screen library: ${screen_msg}
634 Mouse support: ${mouse_lib}
635 X11 events support: ${textmode_x11_support}
636 With subshell support: ${subshell}
637 Internal editor: ${edit_msg}
638 Support for charset: ${charset_msg}