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
36 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
38 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
41 dnl First try glib 2.x.
42 dnl Keep this check close to the beginning, so that the users
43 dnl without any glib won't have their time wasted by other checks.
46 AC_ARG_WITH([glib_static],
47 [ --with-glib-static Link glib statically [[no]]])
51 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6], [glib_found=yes], [:])
52 if test x"$glib_found" = xno; then
53 AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.6)])
56 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
57 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
59 if test "x$gmodule_found" = "xyes" ; then
60 dnl Check if the gmodule functionality supported on this system.
69 AC_CHECK_TOOL(AR, ar, ar)
71 dnl Only list browsers here that can be run in background (i.e. with `&')
72 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
75 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
76 dnl We use only part of the functionality of mmap, so on AIX,
77 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
80 [ --with-mmap Use the mmap call [[yes if found]]])
81 if test x$with_mmap != xno; then
82 if test x$with_mmap = x; then
85 AC_DEFINE(HAVE_MMAP, 1)
90 dnl Internationalization
92 AM_GNU_GETTEXT(no-libtool, need-ngettext)
93 AM_GNU_GETTEXT_VERSION(0.14.3)
95 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
96 CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
99 dnl Determine which help translations we want to install.
100 ALL_DOC_LINGUAS="es hu it pl ru sr"
103 if test "x$USE_NLS" = xyes; then
104 if test -z "$LINGUAS"; then
105 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
113 for h_lang in $ALL_DOC_LINGUAS; do
114 for lang in $langs; do
115 if test "$lang" = "$h_lang"; then
116 DOC_LINGUAS="$DOC_LINGUAS $lang"
121 AC_SUBST(DOC_LINGUAS)
124 dnl OS specific flags.
130 AC_DEFINE(_POSIX_SOURCE)
134 dnl Extended Character Sets
136 AC_ARG_ENABLE([extcharset],
137 AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
138 if test x"$enable_extcharset" = x"yes"; then
139 AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
143 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
144 stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/vfs.h sys/time.h \
145 sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
146 security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
147 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
165 getegid geteuid getgid getsid getuid \
169 setreuid setuid statfs strerror sysconf \
170 tcgetattr tcsetattr truncate \
174 dnl getpt is a GNU Extension (glibc 2.1.x)
176 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
177 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
179 dnl replacing lstat with statlstat on sco makes it more portable between
181 AC_CHECK_FUNCS(statlstat)
184 dnl If running under AIX, AC_AIX does not tell us that
186 AC_MSG_CHECKING([for AIX defines])
188 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
192 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
194 ], [AC_MSG_RESULT(no)])
197 dnl This is from GNU fileutils, check aclocal.m4 for more information
202 dnl Missing typedefs and replacements
205 AC_CHECK_SIZEOF(long)
206 AC_CHECK_SIZEOF(long long)
209 AC_CHECK_SIZEOF(off_t)
212 AC_CHECK_TYPE(nlink_t, unsigned int)
213 AC_CHECK_TYPES([socklen_t],,,
215 #include <sys/types.h>
216 #include <sys/socket.h>
219 dnl This is needed for regex.c only
220 AC_CHECK_TYPE(uintptr_t,
221 [AC_DEFINE(HAVE_UINTPTR_T, 1,
222 [Define if you have the `uintptr_t' type.])
230 dnl Used to read keyboard modifiers when running under X11.
234 if test "x$no_x" = xyes; then
235 textmode_x11_support="no"
237 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
238 if test "x$mc_cv_g_module_supported" = "xyes" ; then
239 dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
240 dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
241 dnl functionality is supported on the system. This way, mc will be
242 dnl linked against the gmodule library only when it's really required.
243 GLIB_CFLAGS="$GMODULE_CFLAGS"
244 GLIB_LIBS="$GMODULE_LIBS"
246 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
248 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
249 [Define to enable getting events from X Window System])
250 textmode_x11_support="yes"
254 dnl Try to find static libraries for glib and gmodule.
256 if test x$with_glib_static = xyes; then
258 for i in $GLIB_LIBS; do
269 if test -n "$lib"; then
270 lib1=`echo $i | sed 's/^-l//'`
271 if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
272 add="$GLIB_LIBDIR/lib${lib1}.a"
274 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
275 add="$GLIB_LIBDIR/lib${lib}.a"
277 AC_MSG_ERROR([Cannot find static $lib])
281 new_GLIB_LIBS="$new_GLIB_LIBS $add"
283 GLIB_LIBS="$new_GLIB_LIBS"
288 dnl Network related functions
291 AC_SEARCH_LIBS([socket], [socket])
292 AC_SEARCH_LIBS([gethostbyname], [nsl])
295 dnl Sequent wants getprocessstats
297 AC_CHECK_LIB(seq, get_process_stats, [
299 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
300 [Define if you have function `get_process_stats' and
301 have to use that instead of gettimeofday])])
306 if test x$use_vfs = xyes; then
307 AC_MSG_NOTICE([enabling VFS code])
308 vfs_type="Midnight Commander Virtual File System"
312 dnl Check for gpm mouse support (Linux only)
314 mouse_lib="xterm only"
315 AC_ARG_WITH(gpm-mouse,
316 [ --with-gpm-mouse Compile with gpm mouse support (Linux only)
321 if test x$with_gpm_mouse != xno; then
322 AC_CHECK_LIB(gpm, Gpm_Repeat,
323 [AC_DEFINE(HAVE_LIBGPM, 1,
324 [Define to enable gpm mouse support on Linux])
325 mouse_lib="gpm and xterm"
326 MCLIBS="$MCLIBS -lgpm"],
327 if test "x$with_gpm_mouse" = "xyes"; then
328 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
330 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
340 dnl Check nroff and the options it supports
342 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
349 AC_MSG_CHECKING([for manual formatting macros])
350 AC_CACHE_VAL(mc_cv_mandoc, [
351 nroff -mandoc < /dev/null > /dev/null 2>&1
359 AC_MSG_RESULT([$MANDOC])
361 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
362 AC_CACHE_VAL(mc_cv_man_nocolor, [
363 nroff -c < /dev/null > /dev/null 2>&1
370 MAN_FLAGS=$mc_cv_man_nocolor
371 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
373 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
374 AC_CACHE_VAL(mc_cv_nroff_tascii, [
376 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
378 mc_cv_nroff_tascii=-Tlatin1
380 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
382 mc_cv_nroff_tascii=-Tascii
386 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
387 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
395 dnl Check for -L option to file
397 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
398 if $HAVE_FILECMD; then
399 AC_MSG_CHECKING([for -L option to file command])
400 AC_CACHE_VAL(mc_cv_filel, [
401 file -L . > /dev/null 2>&1
408 if test x$mc_cv_filel = xyes; then
409 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
412 AC_MSG_RESULT([$filel])
416 AC_MSG_CHECKING([for subshell support])
417 AC_ARG_WITH(subshell,
418 [ --with-subshell Compile in concurrent subshell [[yes]]
419 --with-subshell=optional Don't run concurrent shell by default [[no]]],
421 if test x$withval = xoptional
423 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
424 [Define to make subshell support optional])
427 if test x$withval = xyes
431 [dnl Default: enable the subshell support
434 if test "x$result" != xno; then
435 AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
436 [Define to enable subshell support])
438 AC_MSG_RESULT([$result])
443 dnl Select the screen library.
446 [ --with-screen=LIB Compile with screen library: slang or
447 ncurses [[slang if found]]])
449 case x$with_screen in
451 MC_WITH_SLANG(strict)
463 AC_MSG_ERROR([Value of the screen library is incorrect])
469 dnl Internal editor support.
472 [ --with-edit Enable internal editor [[yes]]])
474 if test x$with_edit != xno; then
475 AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
478 AC_MSG_NOTICE([using internal editor])
484 dnl Check if the OS is supported by the console saver.
492 dnl Support for background operations
493 AC_ARG_ENABLE([background],
494 [ --enable-background Support for background file operations [[yes]]])
495 if test "x$enable_background" != xno; then
496 AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
501 dnl User visible support for charset conversion.
503 AC_ARG_ENABLE([charset],
504 [ --enable-charset Support for charset selection and conversion [[yes]]])
507 if test "x$enable_charset" != "xno"; then
508 AC_DEFINE(HAVE_CHARSET, 1,
509 [Define to enable charset selection and conversion])
514 if test "$GLIBC21" != yes; then
515 AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
522 if test x$USE_MAINTAINER_MODE = xyes; then
523 CFLAGS_OPTS="-g3 -O -ggdb"
524 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
529 AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
532 if test "x$enable_werror" = xyes; then
533 MC_CHECK_ONE_CFLAG([-Werror])
536 CFLAGS="$CFLAGS $mc_configured_cflags $CFLAGS_OPTS"
543 dnl Libraries used only when building the mc binary
546 dnl Version for the RedHat package, without dashes
547 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
548 AC_SUBST(RPM_VERSION)
550 if test -n "$use_smbfs"; then
551 AC_CONFIG_SUBDIRS([vfs/samba])
554 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
555 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
556 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
557 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
558 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
559 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
560 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
561 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
562 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
568 contrib/dist/Makefile
569 contrib/dist/debian/Makefile
570 contrib/dist/gentoo/Makefile
571 contrib/dist/redhat/Makefile
572 contrib/dist/redhat/mc.spec
575 contrib/dist/prototype
582 src/filehighlight/Makefile
583 src/mcconfig/Makefile
621 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
622 doc/man/es/mc.1 doc/man/es/Makefile
623 doc/man/hu/mc.1 doc/man/hu/Makefile
624 doc/man/it/mc.1 doc/man/it/Makefile
625 doc/man/pl/mc.1 doc/man/pl/Makefile
626 doc/man/ru/mc.1 doc/man/ru/Makefile
627 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
646 Source code location: ${srcdir}
648 Compiler flags: ${CFLAGS}
649 File system: ${vfs_type}
651 Screen library: ${screen_msg}
652 Mouse support: ${mouse_lib}
653 X11 events support: ${textmode_x11_support}
654 With subshell support: ${subshell}
655 Internal editor: ${edit_msg}
656 Support for charset: ${charset_msg}
657 Search type: ${SEARCH_TYPE}