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)
18 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.8], [glib_found=yes], [:])
53 if test x"$glib_found" = xno; then
54 AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.8)])
57 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
58 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
60 if test "x$gmodule_found" = "xyes" ; then
61 dnl Check if the gmodule functionality supported on this system.
70 AC_CHECK_TOOL(AR, ar, ar)
72 dnl Only list browsers here that can be run in background (i.e. with `&')
73 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
76 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
77 dnl We use only part of the functionality of mmap, so on AIX,
78 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
81 [ --with-mmap Use the mmap call [[yes if found]]])
82 if test x$with_mmap != xno; then
83 if test x$with_mmap = x; then
86 AC_DEFINE(HAVE_MMAP, 1)
91 dnl Internationalization
93 AM_GNU_GETTEXT(no-libtool, need-ngettext)
94 AM_GNU_GETTEXT_VERSION(0.14.3)
96 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
97 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
100 dnl Determine which help translations we want to install.
101 ALL_DOC_LINGUAS="es hu it pl ru sr"
104 if test "x$USE_NLS" = xyes; then
105 if test -z "$LINGUAS"; then
106 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
114 for h_lang in $ALL_DOC_LINGUAS; do
115 for lang in $langs; do
116 if test "$lang" = "$h_lang"; then
117 DOC_LINGUAS="$DOC_LINGUAS $lang"
122 AC_SUBST(DOC_LINGUAS)
125 dnl OS specific flags.
131 AC_DEFINE(_POSIX_SOURCE)
135 dnl Extended Character Sets
137 AC_ARG_ENABLE([extcharset],
138 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
139 if test x"$enable_extcharset" = x"yes"; then
140 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
144 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
145 utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
146 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
147 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
148 sys/mkdev.h wchar.h wctype.h])
154 dnl Missing structure components
155 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
159 dnl Check availability of some functions
167 setreuid statfs sysconf \
168 tcgetattr tcsetattr truncate \
173 dnl getpt is a GNU Extension (glibc 2.1.x)
175 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
176 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
178 dnl replacing lstat with statlstat on sco makes it more portable between
180 AC_CHECK_FUNCS(statlstat)
183 dnl If running under AIX, AC_AIX does not tell us that
185 AC_MSG_CHECKING([for AIX defines])
187 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
191 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
193 ], [AC_MSG_RESULT(no)])
196 dnl This is from GNU fileutils, check aclocal.m4 for more information
201 dnl Missing typedefs and replacements
204 AC_CHECK_SIZEOF(long)
205 AC_CHECK_SIZEOF(long long)
208 AC_CHECK_SIZEOF(off_t)
211 AC_CHECK_TYPE(nlink_t, unsigned int)
212 AC_CHECK_TYPES([socklen_t],,,
214 #include <sys/types.h>
215 #include <sys/socket.h>
218 dnl This is needed for regex.c only
219 AC_CHECK_TYPE(uintptr_t,
220 [AC_DEFINE(HAVE_UINTPTR_T, 1,
221 [Define if you have the `uintptr_t' type.])
229 dnl Used to read keyboard modifiers when running under X11.
233 if test "x$no_x" = xyes; then
234 textmode_x11_support="no"
236 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
237 if test "x$mc_cv_g_module_supported" = "xyes" ; then
238 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
239 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
240 dnl functionality is supported on the system. This way, mc will be
241 dnl linked against the gmodule library only when it's really required.
242 GLIB_CFLAGS="$GMODULE_CFLAGS"
243 GLIB_LIBS="$GMODULE_LIBS"
245 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
247 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
248 [Define to enable getting events from X Window System])
249 textmode_x11_support="yes"
253 dnl Try to find static libraries for glib and gmodule.
255 if test x$with_glib_static = xyes; then
257 for i in $GLIB_LIBS; do
268 if test -n "$lib"; then
269 lib1=`echo $i | sed 's/^-l//'`
270 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
271 add="$GLIB_LIBDIR/lib${lib1}.a"
273 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
274 add="$GLIB_LIBDIR/lib${lib}.a"
276 AC_MSG_ERROR([Cannot find static $lib])
280 new_GLIB_LIBS="$new_GLIB_LIBS $add"
282 GLIB_LIBS="$new_GLIB_LIBS"
287 dnl Network related functions
290 AC_SEARCH_LIBS([socket], [socket])
291 AC_SEARCH_LIBS([gethostbyname], [nsl])
294 dnl Sequent wants getprocessstats
296 AC_CHECK_LIB(seq, get_process_stats, [
298 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
299 [Define if you have function `get_process_stats' and
300 have to use that instead of gettimeofday])])
305 if test x$enable_vfs = xyes; then
306 AC_MSG_NOTICE([enabling VFS code])
307 vfs_type="Midnight Commander Virtual File System"
311 dnl Check for gpm mouse support (Linux only)
313 mouse_lib="xterm only"
314 AC_ARG_WITH(gpm-mouse,
315 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
320 if test x$with_gpm_mouse != xno; then
321 AC_CHECK_LIB(gpm, Gpm_Repeat,
322 [AC_DEFINE(HAVE_LIBGPM, 1,
323 [Define to enable gpm mouse support on Linux])
324 mouse_lib="gpm and xterm"
325 MCLIBS="$MCLIBS -lgpm"],
326 if test "x$with_gpm_mouse" = "xyes"; then
327 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
329 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
339 dnl Check nroff and the options it supports
341 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
348 AC_MSG_CHECKING([for manual formatting macros])
349 AC_CACHE_VAL(mc_cv_mandoc, [
350 nroff -mandoc < /dev/null > /dev/null 2>&1
358 AC_MSG_RESULT([$MANDOC])
360 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
361 AC_CACHE_VAL(mc_cv_man_nocolor, [
362 nroff -c < /dev/null > /dev/null 2>&1
369 MAN_FLAGS=$mc_cv_man_nocolor
370 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
372 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
373 AC_CACHE_VAL(mc_cv_nroff_tascii, [
375 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
377 mc_cv_nroff_tascii=-Tlatin1
379 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
381 mc_cv_nroff_tascii=-Tascii
385 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
386 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
394 dnl Check for -L option to file
396 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
397 if $HAVE_FILECMD; then
398 AC_MSG_CHECKING([for -L option to file command])
399 AC_CACHE_VAL(mc_cv_filel, [
400 file -L . > /dev/null 2>&1
407 if test x$mc_cv_filel = xyes; then
408 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
411 AC_MSG_RESULT([$filel])
415 AC_MSG_CHECKING([for subshell support])
416 AC_ARG_WITH(subshell,
417 [ --with-subshell Compile in concurrent subshell [[yes]]
418 --with-subshell=optional Don't run concurrent shell by default [[no]]],
420 if test x$withval = xoptional
422 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
423 [Define to make subshell support optional])
426 if test x$withval = xyes
430 [dnl Default: enable the subshell support
433 if test "x$result" != xno; then
434 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
435 [Define to enable subshell support])
437 AC_MSG_RESULT([$result])
442 dnl Select the screen library.
445 [ --with-screen=LIB Compile with screen library: slang or
446 ncurses [[slang if found]]])
448 case x$with_screen in
450 MC_WITH_SLANG(strict)
462 AC_MSG_ERROR([Value of the screen library is incorrect])
468 dnl Internal editor support.
471 [ --with-edit Enable internal editor [[yes]]])
473 if test x$with_edit != xno; then
474 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
477 AC_MSG_NOTICE([using internal editor])
483 dnl Check if the OS is supported by the console saver.
491 dnl Support for background operations
492 AC_ARG_ENABLE([background],
493 [ --enable-background Support for background file operations [[yes]]])
494 if test "x$enable_background" != xno; then
495 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
500 dnl User visible support for charset conversion.
502 AC_ARG_ENABLE([charset],
503 [ --enable-charset Support for charset selection and conversion [[yes]]])
506 if test "x$enable_charset" != "xno"; then
507 AC_DEFINE(HAVE_CHARSET, 1,
508 [Define to enable charset selection and conversion])
513 if test "$GLIBC21" != yes; then
514 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
521 if test "x$CFLAGS" = "x"; then
525 if test x$USE_MAINTAINER_MODE = xyes; then
526 CFLAGS_OPTS="-g3 -O -ggdb"
527 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
532 AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
535 if test "x$enable_werror" = xyes; then
536 MC_CHECK_ONE_CFLAG([-Werror])
538 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
545 dnl Libraries used only when building the mc binary
548 if test -n "$use_smbfs"; then
549 AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
552 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
553 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
554 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
555 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
556 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
557 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
558 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
559 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
565 contrib/dist/Makefile
566 contrib/dist/debian/Makefile
567 contrib/dist/gentoo/Makefile
568 contrib/dist/redhat/Makefile
569 contrib/dist/redhat/mc.spec
572 contrib/dist/prototype
579 src/consaver/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
623 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
624 doc/man/es/mc.1 doc/man/es/Makefile
625 doc/man/hu/mc.1 doc/man/hu/Makefile
626 doc/man/it/mc.1 doc/man/it/Makefile
627 doc/man/pl/mc.1 doc/man/pl/Makefile
628 doc/man/ru/mc.1 doc/man/ru/Makefile
629 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
645 if test x$enable_mcserver = x; then
652 Source code location: ${srcdir}
654 Compiler flags: ${CFLAGS}
655 File system: ${vfs_type}
657 Screen library: ${screen_msg}
658 Mouse support: ${mouse_lib}
659 X11 events support: ${textmode_x11_support}
660 With subshell support: ${subshell}
661 Internal editor: ${edit_msg}
662 Support for charset: ${charset_msg}
663 Search type: ${SEARCH_TYPE}