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])
442 dnl Internal editor support.
445 [ --with-edit Enable internal editor [[yes]]])
447 if test x$with_edit != xno; then
448 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
451 AC_MSG_NOTICE([using internal editor])
457 dnl Diff viewer support.
459 AC_ARG_WITH(diff_viewer,
460 [ --with-diff-viewer Compile with diff viewer [[yes]]])
462 if test x$with_diff_viewer != xno; then
463 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
466 AC_MSG_NOTICE([using diff viewer])
472 dnl Check if the OS is supported by the console saver.
480 dnl Support for background operations
481 AC_ARG_ENABLE([background],
482 [ --enable-background Support for background file operations [[yes]]])
483 if test "x$enable_background" != xno; then
484 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
489 dnl User visible support for charset conversion.
491 AC_ARG_ENABLE([charset],
492 [ --enable-charset Support for charset selection and conversion [[yes]]])
495 if test "x$enable_charset" != "xno"; then
496 AC_DEFINE(HAVE_CHARSET, 1,
497 [Define to enable charset selection and conversion])
502 if test "$GLIBC21" != yes; then
503 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
510 if test "x$CFLAGS" = "x"; then
514 if test x$USE_MAINTAINER_MODE = xyes; then
515 CFLAGS_OPTS="-g3 -O -ggdb"
516 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
521 AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
524 if test "x$enable_werror" = xyes; then
525 MC_CHECK_ONE_CFLAG([-Werror])
527 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
534 dnl Libraries used only when building the mc binary
537 if test -n "$use_smbfs"; then
538 AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
541 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
542 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
543 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
544 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
545 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
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"])
556 chmod +x src/man2hlp/man2hlp
563 contrib/dist/Makefile
564 contrib/dist/debian/Makefile
565 contrib/dist/gentoo/Makefile
566 contrib/dist/redhat/Makefile
567 contrib/dist/redhat/mc.spec
570 contrib/dist/prototype
577 src/consaver/Makefile
581 src/diffviewer/Makefile
584 lib/filehighlight/Makefile
585 lib/mcconfig/Makefile
591 lib/vfs/mc-vfs/Makefile
592 lib/vfs/mc-vfs/extfs/Makefile
593 lib/vfs/mc-vfs/extfs/a+
594 lib/vfs/mc-vfs/extfs/apt+
595 lib/vfs/mc-vfs/extfs/audio
596 lib/vfs/mc-vfs/extfs/deb
597 lib/vfs/mc-vfs/extfs/deba
598 lib/vfs/mc-vfs/extfs/debd
599 lib/vfs/mc-vfs/extfs/dpkg+
600 lib/vfs/mc-vfs/extfs/iso9660
601 lib/vfs/mc-vfs/extfs/hp48+
602 lib/vfs/mc-vfs/extfs/lslR
603 lib/vfs/mc-vfs/extfs/mailfs
604 lib/vfs/mc-vfs/extfs/patchfs
605 lib/vfs/mc-vfs/extfs/rpms+
606 lib/vfs/mc-vfs/extfs/s3+
607 lib/vfs/mc-vfs/extfs/uace
608 lib/vfs/mc-vfs/extfs/ualz
609 lib/vfs/mc-vfs/extfs/uar
610 lib/vfs/mc-vfs/extfs/uarc
611 lib/vfs/mc-vfs/extfs/uarj
612 lib/vfs/mc-vfs/extfs/uc1541
613 lib/vfs/mc-vfs/extfs/uha
614 lib/vfs/mc-vfs/extfs/ulha
615 lib/vfs/mc-vfs/extfs/urar
616 lib/vfs/mc-vfs/extfs/uzip
617 lib/vfs/mc-vfs/extfs/uzoo
619 lib/vfs/mc-vfs/fish/Makefile
625 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
626 doc/man/es/mc.1 doc/man/es/Makefile
627 doc/man/hu/mc.1 doc/man/hu/Makefile
628 doc/man/it/mc.1 doc/man/it/Makefile
629 doc/man/pl/mc.1 doc/man/pl/Makefile
630 doc/man/ru/mc.1 doc/man/ru/Makefile
631 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
647 if test x$enable_mcserver = x; then
654 Source code location: ${srcdir}
656 Compiler flags: ${CFLAGS}
657 File system: ${vfs_type}
659 Screen library: ${screen_msg}
660 Mouse support: ${mouse_lib}
661 X11 events support: ${textmode_x11_support}
662 With subshell support: ${subshell}
663 Internal editor: ${edit_msg}
664 Diff viewer: ${diff_msg}
665 Support for charset: ${charset_msg}
666 Search type: ${SEARCH_TYPE}