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 dnl Enable silent rules by default (if yes)
15 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
17 AM_CONFIG_HEADER(config.h)
21 AC_USE_SYSTEM_EXTENSIONS
41 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
43 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
46 dnl First try glib 2.x.
47 dnl Keep this check close to the beginning, so that the users
48 dnl without any glib won't have their time wasted by other checks.
51 AC_ARG_WITH([glib_static],
52 [ --with-glib-static Link glib statically [[no]]])
56 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.8], [glib_found=yes], [:])
57 if test x"$glib_found" = xno; then
58 AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.8)])
61 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
62 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
64 if test "x$gmodule_found" = "xyes" ; then
65 dnl Check if the gmodule functionality supported on this system.
74 AC_CHECK_TOOL(AR, ar, ar)
76 dnl Only list browsers here that can be run in background (i.e. with `&')
77 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
80 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
81 dnl We use only part of the functionality of mmap, so on AIX,
82 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
85 [ --with-mmap Use the mmap call [[yes if found]]])
86 if test x$with_mmap != xno; then
87 if test x$with_mmap = x; then
90 AC_DEFINE(HAVE_MMAP, 1)
95 dnl Internationalization
97 AM_GNU_GETTEXT(no-libtool, need-ngettext)
98 AM_GNU_GETTEXT_VERSION(0.14.3)
100 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
101 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
104 dnl Determine which help translations we want to install.
105 ALL_DOC_LINGUAS="es hu it pl ru sr"
108 if test "x$USE_NLS" = xyes; then
109 if test -z "$LINGUAS"; then
110 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
118 for h_lang in $ALL_DOC_LINGUAS; do
119 for lang in $langs; do
120 if test "$lang" = "$h_lang"; then
121 DOC_LINGUAS="$DOC_LINGUAS $lang"
126 AC_SUBST(DOC_LINGUAS)
129 dnl OS specific flags.
135 AC_DEFINE(_POSIX_SOURCE)
140 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
141 utime.h fcntl.h sys/statfs.h sys/vfs.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])
150 dnl Missing structure components
151 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
155 dnl Check availability of some functions
162 setreuid statfs sysconf \
163 tcgetattr tcsetattr truncate \
170 dnl getpt is a GNU Extension (glibc 2.1.x)
172 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
173 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
175 dnl replacing lstat with statlstat on sco makes it more portable between
177 AC_CHECK_FUNCS(statlstat)
180 dnl If running under AIX, AC_AIX does not tell us that
182 AC_MSG_CHECKING([for AIX defines])
184 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
188 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
190 ], [AC_MSG_RESULT(no)])
193 dnl This is from GNU fileutils, check aclocal.m4 for more information
198 dnl Missing typedefs and replacements
201 AC_CHECK_SIZEOF(long)
202 AC_CHECK_SIZEOF(long long)
205 AC_CHECK_SIZEOF(off_t)
208 AC_CHECK_TYPE(nlink_t, unsigned int)
209 AC_CHECK_TYPES([socklen_t],,,
211 #include <sys/types.h>
212 #include <sys/socket.h>
215 dnl This is needed for regex.c only
216 AC_CHECK_TYPE(uintptr_t,
217 [AC_DEFINE(HAVE_UINTPTR_T, 1,
218 [Define if you have the `uintptr_t' type.])
226 dnl Used to read keyboard modifiers when running under X11.
230 if test "x$no_x" = xyes; then
231 textmode_x11_support="no"
233 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
234 if test "x$mc_cv_g_module_supported" = "xyes" ; then
235 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
236 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
237 dnl functionality is supported on the system. This way, mc will be
238 dnl linked against the gmodule library only when it's really required.
239 GLIB_CFLAGS="$GMODULE_CFLAGS"
240 GLIB_LIBS="$GMODULE_LIBS"
242 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
244 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
245 [Define to enable getting events from X Window System])
246 textmode_x11_support="yes"
250 dnl Try to find static libraries for glib and gmodule.
252 if test x$with_glib_static = xyes; then
254 for i in $GLIB_LIBS; do
265 if test -n "$lib"; then
266 lib1=`echo $i | sed 's/^-l//'`
267 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
268 add="$GLIB_LIBDIR/lib${lib1}.a"
270 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
271 add="$GLIB_LIBDIR/lib${lib}.a"
273 AC_MSG_ERROR([Cannot find static $lib])
277 new_GLIB_LIBS="$new_GLIB_LIBS $add"
279 GLIB_LIBS="$new_GLIB_LIBS"
284 dnl Network related functions
287 AC_SEARCH_LIBS([socket], [socket])
288 AC_SEARCH_LIBS([gethostbyname], [nsl])
291 dnl Sequent wants getprocessstats
293 AC_CHECK_LIB(seq, get_process_stats, [
295 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
296 [Define if you have function `get_process_stats' and
297 have to use that instead of gettimeofday])])
302 if test x$enable_vfs = xyes; then
303 AC_MSG_NOTICE([enabling VFS code])
304 vfs_type="Midnight Commander Virtual File System"
308 dnl Check for gpm mouse support (Linux only)
310 mouse_lib="xterm only"
311 AC_ARG_WITH(gpm-mouse,
312 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
317 if test x$with_gpm_mouse != xno; then
318 AC_CHECK_LIB(gpm, Gpm_Repeat,
319 [AC_DEFINE(HAVE_LIBGPM, 1,
320 [Define to enable gpm mouse support on Linux])
321 mouse_lib="gpm and xterm"
322 MCLIBS="$MCLIBS -lgpm"],
323 if test "x$with_gpm_mouse" = "xyes"; then
324 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
326 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
336 dnl Check nroff and the options it supports
338 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
345 AC_MSG_CHECKING([for manual formatting macros])
346 AC_CACHE_VAL(mc_cv_mandoc, [
347 nroff -mandoc < /dev/null > /dev/null 2>&1
355 AC_MSG_RESULT([$MANDOC])
357 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
358 AC_CACHE_VAL(mc_cv_man_nocolor, [
359 nroff -c < /dev/null > /dev/null 2>&1
366 MAN_FLAGS=$mc_cv_man_nocolor
367 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
369 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
370 AC_CACHE_VAL(mc_cv_nroff_tascii, [
372 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
374 mc_cv_nroff_tascii=-Tlatin1
376 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
378 mc_cv_nroff_tascii=-Tascii
382 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
383 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
391 dnl Check for -L option to file
393 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
394 if $HAVE_FILECMD; then
395 AC_MSG_CHECKING([for -L option to file command])
396 AC_CACHE_VAL(mc_cv_filel, [
397 file -L . > /dev/null 2>&1
404 if test x$mc_cv_filel = xyes; then
405 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
408 AC_MSG_RESULT([$filel])
412 AC_MSG_CHECKING([for subshell support])
413 AC_ARG_WITH(subshell,
414 [ --with-subshell Compile in concurrent subshell [[yes]]
415 --with-subshell=optional Don't run concurrent shell by default [[no]]],
417 if test x$withval = xoptional
419 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
420 [Define to make subshell support optional])
423 if test x$withval = xyes
427 [dnl Default: enable the subshell support
430 if test "x$result" != xno; then
431 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
432 [Define to enable subshell support])
434 AC_MSG_RESULT([$result])
439 dnl Select the screen library.
442 [ --with-screen=LIB Compile with screen library: slang or
443 ncurses [[slang if found]]])
445 case x$with_screen in
447 MC_WITH_SLANG(strict)
459 AC_MSG_ERROR([Value of the screen library is incorrect])
465 dnl Internal editor support.
468 [ --with-edit Enable internal editor [[yes]]])
470 if test x$with_edit != xno; then
471 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
474 AC_MSG_NOTICE([using internal editor])
480 dnl Diff viewer support.
482 AC_ARG_WITH(diff_viewer,
483 [ --with-diff-viewer Compile with diff viewer [[yes]]])
485 if test x$with_diff_viewer != xno; then
486 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
489 AC_MSG_NOTICE([using diff viewer])
495 dnl Check if the OS is supported by the console saver.
503 dnl Support for background operations
504 AC_ARG_ENABLE([background],
505 [ --enable-background Support for background file operations [[yes]]])
506 if test "x$enable_background" != xno; then
507 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
512 dnl User visible support for charset conversion.
514 AC_ARG_ENABLE([charset],
515 [ --enable-charset Support for charset selection and conversion [[yes]]])
518 if test "x$enable_charset" != "xno"; then
519 AC_DEFINE(HAVE_CHARSET, 1,
520 [Define to enable charset selection and conversion])
525 if test "$GLIBC21" != yes; then
526 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
533 if test "x$CFLAGS" = "x"; then
537 if test x$USE_MAINTAINER_MODE = xyes; then
538 CFLAGS_OPTS="-g3 -O -ggdb"
539 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
544 AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
547 if test "x$enable_werror" = xyes; then
548 MC_CHECK_ONE_CFLAG([-Werror])
550 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
557 dnl Libraries used only when building the mc binary
560 if test -n "$use_smbfs"; then
561 AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
564 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
565 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
566 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
567 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
568 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
569 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
570 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
571 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
572 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
579 chmod +x src/man2hlp/man2hlp
586 contrib/dist/Makefile
587 contrib/dist/debian/Makefile
588 contrib/dist/gentoo/Makefile
589 contrib/dist/redhat/Makefile
590 contrib/dist/redhat/mc.spec
593 contrib/dist/prototype
600 src/consaver/Makefile
604 src/diffviewer/Makefile
607 lib/filehighlight/Makefile
608 lib/mcconfig/Makefile
614 lib/vfs/mc-vfs/Makefile
615 lib/vfs/mc-vfs/extfs/Makefile
616 lib/vfs/mc-vfs/extfs/a+
617 lib/vfs/mc-vfs/extfs/apt+
618 lib/vfs/mc-vfs/extfs/audio
619 lib/vfs/mc-vfs/extfs/deb
620 lib/vfs/mc-vfs/extfs/deba
621 lib/vfs/mc-vfs/extfs/debd
622 lib/vfs/mc-vfs/extfs/dpkg+
623 lib/vfs/mc-vfs/extfs/iso9660
624 lib/vfs/mc-vfs/extfs/hp48+
625 lib/vfs/mc-vfs/extfs/lslR
626 lib/vfs/mc-vfs/extfs/mailfs
627 lib/vfs/mc-vfs/extfs/patchfs
628 lib/vfs/mc-vfs/extfs/rpms+
629 lib/vfs/mc-vfs/extfs/s3+
630 lib/vfs/mc-vfs/extfs/uace
631 lib/vfs/mc-vfs/extfs/ualz
632 lib/vfs/mc-vfs/extfs/uar
633 lib/vfs/mc-vfs/extfs/uarc
634 lib/vfs/mc-vfs/extfs/uarj
635 lib/vfs/mc-vfs/extfs/uc1541
636 lib/vfs/mc-vfs/extfs/uha
637 lib/vfs/mc-vfs/extfs/ulha
638 lib/vfs/mc-vfs/extfs/urar
639 lib/vfs/mc-vfs/extfs/uzip
640 lib/vfs/mc-vfs/extfs/uzoo
646 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
647 doc/man/es/mc.1 doc/man/es/Makefile
648 doc/man/hu/mc.1 doc/man/hu/Makefile
649 doc/man/it/mc.1 doc/man/it/Makefile
650 doc/man/pl/mc.1 doc/man/pl/Makefile
651 doc/man/ru/mc.1 doc/man/ru/Makefile
652 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
668 if test x$enable_mcserver = x; then
675 Source code location: ${srcdir}
677 Compiler flags: ${CFLAGS}
678 File system: ${vfs_type}
680 Screen library: ${screen_msg}
681 Mouse support: ${mouse_lib}
682 X11 events support: ${textmode_x11_support}
683 With subshell support: ${subshell}
684 Internal editor: ${edit_msg}
685 Diff viewer: ${diff_msg}
686 Support for charset: ${charset_msg}
687 Search type: ${SEARCH_TYPE}