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)
19 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.6], [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.6)])
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 grp.h limits.h malloc.h \
145 stdlib.h termios.h utime.h fcntl.h pwd.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])
155 dnl Missing structure components
156 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
160 dnl Check availability of some functions
166 getegid geteuid getgid getsid getuid \
170 setreuid setuid statfs strerror strftime sysconf \
171 tcgetattr tcsetattr truncate \
175 dnl getpt is a GNU Extension (glibc 2.1.x)
177 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
178 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
180 dnl replacing lstat with statlstat on sco makes it more portable between
182 AC_CHECK_FUNCS(statlstat)
185 dnl If running under AIX, AC_AIX does not tell us that
187 AC_MSG_CHECKING([for AIX defines])
189 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
193 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
195 ], [AC_MSG_RESULT(no)])
198 dnl This is from GNU fileutils, check aclocal.m4 for more information
203 dnl Missing typedefs and replacements
206 AC_CHECK_SIZEOF(long)
207 AC_CHECK_SIZEOF(long long)
210 AC_CHECK_SIZEOF(off_t)
213 AC_CHECK_TYPE(nlink_t, unsigned int)
214 AC_CHECK_TYPES([socklen_t],,,
216 #include <sys/types.h>
217 #include <sys/socket.h>
220 dnl This is needed for regex.c only
221 AC_CHECK_TYPE(uintptr_t,
222 [AC_DEFINE(HAVE_UINTPTR_T, 1,
223 [Define if you have the `uintptr_t' type.])
231 dnl Used to read keyboard modifiers when running under X11.
235 if test "x$no_x" = xyes; then
236 textmode_x11_support="no"
238 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
239 if test "x$mc_cv_g_module_supported" = "xyes" ; then
240 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
241 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
242 dnl functionality is supported on the system. This way, mc will be
243 dnl linked against the gmodule library only when it's really required.
244 GLIB_CFLAGS="$GMODULE_CFLAGS"
245 GLIB_LIBS="$GMODULE_LIBS"
247 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
249 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
250 [Define to enable getting events from X Window System])
251 textmode_x11_support="yes"
255 dnl Try to find static libraries for glib and gmodule.
257 if test x$with_glib_static = xyes; then
259 for i in $GLIB_LIBS; do
270 if test -n "$lib"; then
271 lib1=`echo $i | sed 's/^-l//'`
272 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
273 add="$GLIB_LIBDIR/lib${lib1}.a"
275 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
276 add="$GLIB_LIBDIR/lib${lib}.a"
278 AC_MSG_ERROR([Cannot find static $lib])
282 new_GLIB_LIBS="$new_GLIB_LIBS $add"
284 GLIB_LIBS="$new_GLIB_LIBS"
289 dnl Network related functions
292 AC_SEARCH_LIBS([socket], [socket])
293 AC_SEARCH_LIBS([gethostbyname], [nsl])
296 dnl Sequent wants getprocessstats
298 AC_CHECK_LIB(seq, get_process_stats, [
300 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
301 [Define if you have function `get_process_stats' and
302 have to use that instead of gettimeofday])])
307 if test x$use_vfs = xyes; then
308 AC_MSG_NOTICE([enabling VFS code])
309 vfs_type="Midnight Commander Virtual File System"
313 dnl Check for gpm mouse support (Linux only)
315 mouse_lib="xterm only"
316 AC_ARG_WITH(gpm-mouse,
317 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
322 if test x$with_gpm_mouse != xno; then
323 AC_CHECK_LIB(gpm, Gpm_Repeat,
324 [AC_DEFINE(HAVE_LIBGPM, 1,
325 [Define to enable gpm mouse support on Linux])
326 mouse_lib="gpm and xterm"
327 MCLIBS="$MCLIBS -lgpm"],
328 if test "x$with_gpm_mouse" = "xyes"; then
329 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
331 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
341 dnl Check nroff and the options it supports
343 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
350 AC_MSG_CHECKING([for manual formatting macros])
351 AC_CACHE_VAL(mc_cv_mandoc, [
352 nroff -mandoc < /dev/null > /dev/null 2>&1
360 AC_MSG_RESULT([$MANDOC])
362 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
363 AC_CACHE_VAL(mc_cv_man_nocolor, [
364 nroff -c < /dev/null > /dev/null 2>&1
371 MAN_FLAGS=$mc_cv_man_nocolor
372 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
374 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
375 AC_CACHE_VAL(mc_cv_nroff_tascii, [
377 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
379 mc_cv_nroff_tascii=-Tlatin1
381 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
383 mc_cv_nroff_tascii=-Tascii
387 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
388 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
396 dnl Check for -L option to file
398 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
399 if $HAVE_FILECMD; then
400 AC_MSG_CHECKING([for -L option to file command])
401 AC_CACHE_VAL(mc_cv_filel, [
402 file -L . > /dev/null 2>&1
409 if test x$mc_cv_filel = xyes; then
410 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
413 AC_MSG_RESULT([$filel])
417 AC_MSG_CHECKING([for subshell support])
418 AC_ARG_WITH(subshell,
419 [ --with-subshell Compile in concurrent subshell [[yes]]
420 --with-subshell=optional Don't run concurrent shell by default [[no]]],
422 if test x$withval = xoptional
424 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
425 [Define to make subshell support optional])
428 if test x$withval = xyes
432 [dnl Default: enable the subshell support
435 if test "x$result" != xno; then
436 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
437 [Define to enable subshell support])
439 AC_MSG_RESULT([$result])
444 dnl Select the screen library.
447 [ --with-screen=LIB Compile with screen library: slang or
448 ncurses [[slang if found]]])
450 case x$with_screen in
452 MC_WITH_SLANG(strict)
464 AC_MSG_ERROR([Value of the screen library is incorrect])
470 dnl Internal editor support.
473 [ --with-edit Enable internal editor [[yes]]])
475 if test x$with_edit != xno; then
476 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
479 AC_MSG_NOTICE([using internal editor])
485 dnl Check if the OS is supported by the console saver.
493 dnl Support for background operations
494 AC_ARG_ENABLE([background],
495 [ --enable-background Support for background file operations [[yes]]])
496 if test "x$enable_background" != xno; then
497 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
502 dnl User visible support for charset conversion.
504 AC_ARG_ENABLE([charset],
505 [ --enable-charset Support for charset selection and conversion [[yes]]])
508 if test "x$enable_charset" != "xno"; then
509 AC_DEFINE(HAVE_CHARSET, 1,
510 [Define to enable charset selection and conversion])
515 if test "$GLIBC21" != yes; then
516 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
519 dnl If default CFLAGS is used with gcc, add -Wall
520 if test -z "$ac_env_CFLAGS_set"; then
521 if test -n "$GCC"; then
522 CFLAGS="$CFLAGS -Wall"
531 dnl Libraries used only when building the mc binary
534 dnl Version for the RedHat package, without dashes
535 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
536 AC_SUBST(RPM_VERSION)
538 if test -n "$use_smbfs"; then
539 AC_CONFIG_SUBDIRS([vfs/samba])
542 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
543 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
544 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
545 AM_CONDITIONAL(USE_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"])
555 contrib/dist/Makefile
556 contrib/dist/debian/Makefile
557 contrib/dist/gentoo/Makefile
558 contrib/dist/redhat/Makefile
559 contrib/dist/redhat/mc.spec
562 contrib/dist/prototype
569 src/filehighlight/Makefile
570 src/mcconfig/Makefile
608 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
609 doc/man/es/mc.1 doc/man/es/Makefile
610 doc/man/hu/mc.1 doc/man/hu/Makefile
611 doc/man/it/mc.1 doc/man/it/Makefile
612 doc/man/pl/mc.1 doc/man/pl/Makefile
613 doc/man/ru/mc.1 doc/man/ru/Makefile
614 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
633 Source code location: ${srcdir}
635 Compiler flags: ${CFLAGS}
636 File system: ${vfs_type}
638 Screen library: ${screen_msg}
639 Mouse support: ${mouse_lib}
640 X11 events support: ${textmode_x11_support}
641 With subshell support: ${subshell}
642 Internal editor: ${edit_msg}
643 Support for charset: ${charset_msg}
644 Search type: ${SEARCH_TYPE}