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
40 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
42 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
45 dnl First try glib 2.x.
46 dnl Keep this check close to the beginning, so that the users
47 dnl without any glib won't have their time wasted by other checks.
50 AC_ARG_WITH([glib_static],
51 [ --with-glib-static Link glib statically [[no]]])
55 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.8], [glib_found=yes], [:])
56 if test x"$glib_found" = xno; then
57 AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.8)])
60 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
61 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
63 if test "x$gmodule_found" = "xyes" ; then
64 dnl Check if the gmodule functionality supported on this system.
73 AC_CHECK_TOOL(AR, ar, ar)
75 dnl Only list browsers here that can be run in background (i.e. with `&')
76 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
79 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
80 dnl We use only part of the functionality of mmap, so on AIX,
81 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
84 [ --with-mmap Use the mmap call [[yes if found]]])
85 if test x$with_mmap != xno; then
86 if test x$with_mmap = x; then
89 AC_DEFINE(HAVE_MMAP, 1)
94 dnl Internationalization
96 AM_GNU_GETTEXT(no-libtool, need-ngettext)
97 AM_GNU_GETTEXT_VERSION(0.14.3)
99 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
100 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
103 dnl Determine which help translations we want to install.
104 ALL_DOC_LINGUAS="es hu it pl ru sr"
107 if test "x$USE_NLS" = xyes; then
108 if test -z "$LINGUAS"; then
109 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
117 for h_lang in $ALL_DOC_LINGUAS; do
118 for lang in $langs; do
119 if test "$lang" = "$h_lang"; then
120 DOC_LINGUAS="$DOC_LINGUAS $lang"
125 AC_SUBST(DOC_LINGUAS)
128 dnl OS specific flags.
134 AC_DEFINE(_POSIX_SOURCE)
138 dnl Extended Character Sets
140 AC_ARG_ENABLE([extcharset],
141 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
142 if test x"$enable_extcharset" = x"yes"; then
143 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
147 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
148 utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
149 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
150 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
151 sys/mkdev.h wchar.h wctype.h])
157 dnl Missing structure components
158 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
162 dnl Check availability of some functions
170 setreuid statfs sysconf \
171 tcgetattr tcsetattr truncate \
176 dnl getpt is a GNU Extension (glibc 2.1.x)
178 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
179 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
181 dnl replacing lstat with statlstat on sco makes it more portable between
183 AC_CHECK_FUNCS(statlstat)
186 dnl If running under AIX, AC_AIX does not tell us that
188 AC_MSG_CHECKING([for AIX defines])
190 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
194 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
196 ], [AC_MSG_RESULT(no)])
199 dnl This is from GNU fileutils, check aclocal.m4 for more information
204 dnl Missing typedefs and replacements
207 AC_CHECK_SIZEOF(long)
208 AC_CHECK_SIZEOF(long long)
211 AC_CHECK_SIZEOF(off_t)
214 AC_CHECK_TYPE(nlink_t, unsigned int)
215 AC_CHECK_TYPES([socklen_t],,,
217 #include <sys/types.h>
218 #include <sys/socket.h>
221 dnl This is needed for regex.c only
222 AC_CHECK_TYPE(uintptr_t,
223 [AC_DEFINE(HAVE_UINTPTR_T, 1,
224 [Define if you have the `uintptr_t' type.])
232 dnl Used to read keyboard modifiers when running under X11.
236 if test "x$no_x" = xyes; then
237 textmode_x11_support="no"
239 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
240 if test "x$mc_cv_g_module_supported" = "xyes" ; then
241 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
242 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
243 dnl functionality is supported on the system. This way, mc will be
244 dnl linked against the gmodule library only when it's really required.
245 GLIB_CFLAGS="$GMODULE_CFLAGS"
246 GLIB_LIBS="$GMODULE_LIBS"
248 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
250 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
251 [Define to enable getting events from X Window System])
252 textmode_x11_support="yes"
256 dnl Try to find static libraries for glib and gmodule.
258 if test x$with_glib_static = xyes; then
260 for i in $GLIB_LIBS; do
271 if test -n "$lib"; then
272 lib1=`echo $i | sed 's/^-l//'`
273 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
274 add="$GLIB_LIBDIR/lib${lib1}.a"
276 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
277 add="$GLIB_LIBDIR/lib${lib}.a"
279 AC_MSG_ERROR([Cannot find static $lib])
283 new_GLIB_LIBS="$new_GLIB_LIBS $add"
285 GLIB_LIBS="$new_GLIB_LIBS"
290 dnl Network related functions
293 AC_SEARCH_LIBS([socket], [socket])
294 AC_SEARCH_LIBS([gethostbyname], [nsl])
297 dnl Sequent wants getprocessstats
299 AC_CHECK_LIB(seq, get_process_stats, [
301 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
302 [Define if you have function `get_process_stats' and
303 have to use that instead of gettimeofday])])
308 if test x$enable_vfs = xyes; then
309 AC_MSG_NOTICE([enabling VFS code])
310 vfs_type="Midnight Commander Virtual File System"
314 dnl Check for gpm mouse support (Linux only)
316 mouse_lib="xterm only"
317 AC_ARG_WITH(gpm-mouse,
318 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
323 if test x$with_gpm_mouse != xno; then
324 AC_CHECK_LIB(gpm, Gpm_Repeat,
325 [AC_DEFINE(HAVE_LIBGPM, 1,
326 [Define to enable gpm mouse support on Linux])
327 mouse_lib="gpm and xterm"
328 MCLIBS="$MCLIBS -lgpm"],
329 if test "x$with_gpm_mouse" = "xyes"; then
330 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
332 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
342 dnl Check nroff and the options it supports
344 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
351 AC_MSG_CHECKING([for manual formatting macros])
352 AC_CACHE_VAL(mc_cv_mandoc, [
353 nroff -mandoc < /dev/null > /dev/null 2>&1
361 AC_MSG_RESULT([$MANDOC])
363 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
364 AC_CACHE_VAL(mc_cv_man_nocolor, [
365 nroff -c < /dev/null > /dev/null 2>&1
372 MAN_FLAGS=$mc_cv_man_nocolor
373 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
375 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
376 AC_CACHE_VAL(mc_cv_nroff_tascii, [
378 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
380 mc_cv_nroff_tascii=-Tlatin1
382 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
384 mc_cv_nroff_tascii=-Tascii
388 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
389 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
397 dnl Check for -L option to file
399 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
400 if $HAVE_FILECMD; then
401 AC_MSG_CHECKING([for -L option to file command])
402 AC_CACHE_VAL(mc_cv_filel, [
403 file -L . > /dev/null 2>&1
410 if test x$mc_cv_filel = xyes; then
411 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
414 AC_MSG_RESULT([$filel])
418 AC_MSG_CHECKING([for subshell support])
419 AC_ARG_WITH(subshell,
420 [ --with-subshell Compile in concurrent subshell [[yes]]
421 --with-subshell=optional Don't run concurrent shell by default [[no]]],
423 if test x$withval = xoptional
425 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
426 [Define to make subshell support optional])
429 if test x$withval = xyes
433 [dnl Default: enable the subshell support
436 if test "x$result" != xno; then
437 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
438 [Define to enable subshell support])
440 AC_MSG_RESULT([$result])
445 dnl Select the screen library.
448 [ --with-screen=LIB Compile with screen library: slang or
449 ncurses [[slang if found]]])
451 case x$with_screen in
453 MC_WITH_SLANG(strict)
465 AC_MSG_ERROR([Value of the screen library is incorrect])
471 dnl Internal editor support.
474 [ --with-edit Enable internal editor [[yes]]])
476 if test x$with_edit != xno; then
477 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
480 AC_MSG_NOTICE([using internal editor])
486 dnl Diff viewer support.
488 AC_ARG_WITH(diff_viewer,
489 [ --with-diff-viewer Compile with diff viewer [[yes]]])
491 if test x$with_diff_viewer != xno; then
492 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
495 AC_MSG_NOTICE([using diff viewer])
501 dnl Check if the OS is supported by the console saver.
509 dnl Support for background operations
510 AC_ARG_ENABLE([background],
511 [ --enable-background Support for background file operations [[yes]]])
512 if test "x$enable_background" != xno; then
513 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
518 dnl User visible support for charset conversion.
520 AC_ARG_ENABLE([charset],
521 [ --enable-charset Support for charset selection and conversion [[yes]]])
524 if test "x$enable_charset" != "xno"; then
525 AC_DEFINE(HAVE_CHARSET, 1,
526 [Define to enable charset selection and conversion])
531 if test "$GLIBC21" != yes; then
532 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
539 if test "x$CFLAGS" = "x"; then
543 if test x$USE_MAINTAINER_MODE = xyes; then
544 CFLAGS_OPTS="-g3 -O -ggdb"
545 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
550 AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
553 if test "x$enable_werror" = xyes; then
554 MC_CHECK_ONE_CFLAG([-Werror])
556 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
563 dnl Libraries used only when building the mc binary
566 if test -n "$use_smbfs"; then
567 AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
570 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
571 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
572 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
573 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
574 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
575 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
576 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
577 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
578 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
584 contrib/dist/Makefile
585 contrib/dist/debian/Makefile
586 contrib/dist/gentoo/Makefile
587 contrib/dist/redhat/Makefile
588 contrib/dist/redhat/mc.spec
591 contrib/dist/prototype
598 src/consaver/Makefile
601 src/diffviewer/Makefile
604 lib/filehighlight/Makefile
605 lib/mcconfig/Makefile
611 lib/vfs/mc-vfs/Makefile
612 lib/vfs/mc-vfs/extfs/Makefile
613 lib/vfs/mc-vfs/extfs/a+
614 lib/vfs/mc-vfs/extfs/apt+
615 lib/vfs/mc-vfs/extfs/audio
616 lib/vfs/mc-vfs/extfs/deb
617 lib/vfs/mc-vfs/extfs/deba
618 lib/vfs/mc-vfs/extfs/debd
619 lib/vfs/mc-vfs/extfs/dpkg+
620 lib/vfs/mc-vfs/extfs/iso9660
621 lib/vfs/mc-vfs/extfs/hp48+
622 lib/vfs/mc-vfs/extfs/lslR
623 lib/vfs/mc-vfs/extfs/mailfs
624 lib/vfs/mc-vfs/extfs/patchfs
625 lib/vfs/mc-vfs/extfs/rpms+
626 lib/vfs/mc-vfs/extfs/s3+
627 lib/vfs/mc-vfs/extfs/uace
628 lib/vfs/mc-vfs/extfs/ualz
629 lib/vfs/mc-vfs/extfs/uar
630 lib/vfs/mc-vfs/extfs/uarc
631 lib/vfs/mc-vfs/extfs/uarj
632 lib/vfs/mc-vfs/extfs/uc1541
633 lib/vfs/mc-vfs/extfs/uha
634 lib/vfs/mc-vfs/extfs/ulha
635 lib/vfs/mc-vfs/extfs/urar
636 lib/vfs/mc-vfs/extfs/uzip
637 lib/vfs/mc-vfs/extfs/uzoo
643 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
644 doc/man/es/mc.1 doc/man/es/Makefile
645 doc/man/hu/mc.1 doc/man/hu/Makefile
646 doc/man/it/mc.1 doc/man/it/Makefile
647 doc/man/pl/mc.1 doc/man/pl/Makefile
648 doc/man/ru/mc.1 doc/man/ru/Makefile
649 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
665 if test x$enable_mcserver = x; then
672 Source code location: ${srcdir}
674 Compiler flags: ${CFLAGS}
675 File system: ${vfs_type}
677 Screen library: ${screen_msg}
678 Mouse support: ${mouse_lib}
679 X11 events support: ${textmode_x11_support}
680 With subshell support: ${subshell}
681 Internal editor: ${edit_msg}
682 Diff viewer: ${diff_msg}
683 Support for charset: ${charset_msg}
684 Search type: ${SEARCH_TYPE}