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 \
172 dnl getpt is a GNU Extension (glibc 2.1.x)
174 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
175 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
177 dnl replacing lstat with statlstat on sco makes it more portable between
179 AC_CHECK_FUNCS(statlstat)
182 dnl If running under AIX, AC_AIX does not tell us that
184 AC_MSG_CHECKING([for AIX defines])
186 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
190 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
192 ], [AC_MSG_RESULT(no)])
195 dnl This is from GNU fileutils, check aclocal.m4 for more information
200 dnl Missing typedefs and replacements
203 AC_CHECK_SIZEOF(long)
204 AC_CHECK_SIZEOF(long long)
207 AC_CHECK_SIZEOF(off_t)
210 AC_CHECK_TYPE(nlink_t, unsigned int)
211 AC_CHECK_TYPES([socklen_t],,,
213 #include <sys/types.h>
214 #include <sys/socket.h>
217 dnl This is needed for regex.c only
218 AC_CHECK_TYPE(uintptr_t,
219 [AC_DEFINE(HAVE_UINTPTR_T, 1,
220 [Define if you have the `uintptr_t' type.])
228 dnl Used to read keyboard modifiers when running under X11.
232 if test "x$no_x" = xyes; then
233 textmode_x11_support="no"
235 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
236 if test "x$mc_cv_g_module_supported" = "xyes" ; then
237 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
238 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
239 dnl functionality is supported on the system. This way, mc will be
240 dnl linked against the gmodule library only when it's really required.
241 GLIB_CFLAGS="$GMODULE_CFLAGS"
242 GLIB_LIBS="$GMODULE_LIBS"
244 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
246 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
247 [Define to enable getting events from X Window System])
248 textmode_x11_support="yes"
252 dnl Try to find static libraries for glib and gmodule.
254 if test x$with_glib_static = xyes; then
256 for i in $GLIB_LIBS; do
267 if test -n "$lib"; then
268 lib1=`echo $i | sed 's/^-l//'`
269 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
270 add="$GLIB_LIBDIR/lib${lib1}.a"
272 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
273 add="$GLIB_LIBDIR/lib${lib}.a"
275 AC_MSG_ERROR([Cannot find static $lib])
279 new_GLIB_LIBS="$new_GLIB_LIBS $add"
281 GLIB_LIBS="$new_GLIB_LIBS"
286 dnl Network related functions
289 AC_SEARCH_LIBS([socket], [socket])
290 AC_SEARCH_LIBS([gethostbyname], [nsl])
293 dnl Sequent wants getprocessstats
295 AC_CHECK_LIB(seq, get_process_stats, [
297 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
298 [Define if you have function `get_process_stats' and
299 have to use that instead of gettimeofday])])
304 if test x$enable_vfs = xyes; then
305 AC_MSG_NOTICE([enabling VFS code])
306 vfs_type="Midnight Commander Virtual File System"
310 dnl Check for gpm mouse support (Linux only)
312 mouse_lib="xterm only"
313 AC_ARG_WITH(gpm-mouse,
314 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
319 if test x$with_gpm_mouse != xno; then
320 AC_CHECK_LIB(gpm, Gpm_Repeat,
321 [AC_DEFINE(HAVE_LIBGPM, 1,
322 [Define to enable gpm mouse support on Linux])
323 mouse_lib="gpm and xterm"
324 MCLIBS="$MCLIBS -lgpm"],
325 if test "x$with_gpm_mouse" = "xyes"; then
326 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
328 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
338 dnl Check nroff and the options it supports
340 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
347 AC_MSG_CHECKING([for manual formatting macros])
348 AC_CACHE_VAL(mc_cv_mandoc, [
349 nroff -mandoc < /dev/null > /dev/null 2>&1
357 AC_MSG_RESULT([$MANDOC])
359 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
360 AC_CACHE_VAL(mc_cv_man_nocolor, [
361 nroff -c < /dev/null > /dev/null 2>&1
368 MAN_FLAGS=$mc_cv_man_nocolor
369 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
371 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
372 AC_CACHE_VAL(mc_cv_nroff_tascii, [
374 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
376 mc_cv_nroff_tascii=-Tlatin1
378 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
380 mc_cv_nroff_tascii=-Tascii
384 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
385 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
393 dnl Check for -L option to file
395 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
396 if $HAVE_FILECMD; then
397 AC_MSG_CHECKING([for -L option to file command])
398 AC_CACHE_VAL(mc_cv_filel, [
399 file -L . > /dev/null 2>&1
406 if test x$mc_cv_filel = xyes; then
407 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
410 AC_MSG_RESULT([$filel])
414 AC_MSG_CHECKING([for subshell support])
415 AC_ARG_WITH(subshell,
416 [ --with-subshell Compile in concurrent subshell [[yes]]
417 --with-subshell=optional Don't run concurrent shell by default [[no]]],
419 if test x$withval = xoptional
421 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
422 [Define to make subshell support optional])
425 if test x$withval = xyes
429 [dnl Default: enable the subshell support
432 if test "x$result" != xno; then
433 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
434 [Define to enable subshell support])
436 AC_MSG_RESULT([$result])
441 dnl Select the screen library.
444 [ --with-screen=LIB Compile with screen library: slang or
445 ncurses [[slang if found]]])
447 case x$with_screen in
449 MC_WITH_SLANG(strict)
461 AC_MSG_ERROR([Value of the screen library is incorrect])
467 dnl Internal editor support.
470 [ --with-edit Enable internal editor [[yes]]])
472 if test x$with_edit != xno; then
473 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
476 AC_MSG_NOTICE([using internal editor])
482 dnl Check if the OS is supported by the console saver.
490 dnl Support for background operations
491 AC_ARG_ENABLE([background],
492 [ --enable-background Support for background file operations [[yes]]])
493 if test "x$enable_background" != xno; then
494 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
499 dnl User visible support for charset conversion.
501 AC_ARG_ENABLE([charset],
502 [ --enable-charset Support for charset selection and conversion [[yes]]])
505 if test "x$enable_charset" != "xno"; then
506 AC_DEFINE(HAVE_CHARSET, 1,
507 [Define to enable charset selection and conversion])
512 if test "$GLIBC21" != yes; then
513 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
520 if test "x$CFLAGS" = "x"; then
524 if test x$USE_MAINTAINER_MODE = xyes; then
525 CFLAGS_OPTS="-g3 -O -ggdb"
526 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
531 AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
534 if test "x$enable_werror" = xyes; then
535 MC_CHECK_ONE_CFLAG([-Werror])
537 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
544 dnl Libraries used only when building the mc binary
547 if test -n "$use_smbfs"; then
548 AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
551 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
552 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
553 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
554 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
555 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
556 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
557 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
558 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
564 contrib/dist/Makefile
565 contrib/dist/debian/Makefile
566 contrib/dist/gentoo/Makefile
567 contrib/dist/redhat/Makefile
568 contrib/dist/redhat/mc.spec
571 contrib/dist/prototype
578 src/consaver/Makefile
583 lib/filehighlight/Makefile
584 lib/mcconfig/Makefile
590 lib/vfs/mc-vfs/Makefile
591 lib/vfs/mc-vfs/extfs/Makefile
592 lib/vfs/mc-vfs/extfs/a+
593 lib/vfs/mc-vfs/extfs/apt+
594 lib/vfs/mc-vfs/extfs/audio
595 lib/vfs/mc-vfs/extfs/deb
596 lib/vfs/mc-vfs/extfs/deba
597 lib/vfs/mc-vfs/extfs/debd
598 lib/vfs/mc-vfs/extfs/dpkg+
599 lib/vfs/mc-vfs/extfs/iso9660
600 lib/vfs/mc-vfs/extfs/hp48+
601 lib/vfs/mc-vfs/extfs/lslR
602 lib/vfs/mc-vfs/extfs/mailfs
603 lib/vfs/mc-vfs/extfs/patchfs
604 lib/vfs/mc-vfs/extfs/rpms+
605 lib/vfs/mc-vfs/extfs/s3+
606 lib/vfs/mc-vfs/extfs/uace
607 lib/vfs/mc-vfs/extfs/ualz
608 lib/vfs/mc-vfs/extfs/uar
609 lib/vfs/mc-vfs/extfs/uarc
610 lib/vfs/mc-vfs/extfs/uarj
611 lib/vfs/mc-vfs/extfs/uc1541
612 lib/vfs/mc-vfs/extfs/uha
613 lib/vfs/mc-vfs/extfs/ulha
614 lib/vfs/mc-vfs/extfs/urar
615 lib/vfs/mc-vfs/extfs/uzip
616 lib/vfs/mc-vfs/extfs/uzoo
622 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
623 doc/man/es/mc.1 doc/man/es/Makefile
624 doc/man/hu/mc.1 doc/man/hu/Makefile
625 doc/man/it/mc.1 doc/man/it/Makefile
626 doc/man/pl/mc.1 doc/man/pl/Makefile
627 doc/man/ru/mc.1 doc/man/ru/Makefile
628 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
644 if test x$enable_mcserver = x; then
651 Source code location: ${srcdir}
653 Compiler flags: ${CFLAGS}
654 File system: ${vfs_type}
656 Screen library: ${screen_msg}
657 Mouse support: ${mouse_lib}
658 X11 events support: ${textmode_x11_support}
659 With subshell support: ${subshell}
660 Internal editor: ${edit_msg}
661 Support for charset: ${charset_msg}
662 Search type: ${SEARCH_TYPE}