2 dnl Configure.in file for the Midnight Commander
6 AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
8 AC_CONFIG_MACRO_DIR([m4])
9 AC_CONFIG_AUX_DIR(config)
10 AC_CONFIG_SRCDIR(src/main.c)
11 AC_CONFIG_HEADERS(config.h)
13 AM_INIT_AUTOMAKE(mc, ${VERSION} )
14 dnl Enable silent rules by default (if yes)
15 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
21 AC_USE_SYSTEM_EXTENSIONS
24 dnl ############################################################################
25 dnl Check for compiler
26 dnl ############################################################################
34 if test "x$CFLAGS" = "x"; then
37 if test x$USE_MAINTAINER_MODE = xyes; then
38 CFLAGS_OPTS="-g3 -O -ggdb"
39 AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
42 AC_ARG_ENABLE([werror],
43 AS_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors]))
44 if test "x$enable_werror" = xyes; then
45 mc_CHECK_ONE_CFLAG([-Werror])
48 AX_GCC_FUNC_ATTRIBUTE([fallthrough])
53 dnl ############################################################################
54 dnl Check for programs
55 dnl ############################################################################
60 dnl See also the "OS specific stuff" section below.
62 dnl Check nroff and the options it supports
63 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
68 AC_MSG_CHECKING([for manual formatting macros])
69 AC_CACHE_VAL(mc_cv_mandoc, [
70 nroff -mandoc < /dev/null > /dev/null 2>&1
78 AC_MSG_RESULT([$MANDOC])
80 AC_MSG_CHECKING([for option to disable ANSI color in manuals])
81 AC_CACHE_VAL(mc_cv_man_nocolor, [
82 nroff -c < /dev/null > /dev/null 2>&1
89 MAN_FLAGS=$mc_cv_man_nocolor
90 AC_MSG_RESULT([${MAN_NOCOLOR-none}])
92 AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
93 AC_CACHE_VAL(mc_cv_nroff_tascii, [
95 nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
97 mc_cv_nroff_tascii=-Tlatin1
99 nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
101 mc_cv_nroff_tascii=-Tascii
105 AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
106 MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
112 dnl Check for -L option to file
113 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
114 if $HAVE_FILECMD; then
115 AC_MSG_CHECKING([for -L option to file command])
116 AC_CACHE_VAL(mc_cv_filel, [
117 file -L . > /dev/null 2>&1
124 if test x$mc_cv_filel = xyes; then
125 AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
128 AC_MSG_RESULT([$filel])
131 dnl Only list browsers here that can be run in background (i.e. with `&')
132 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla firefox konqueror opera])
135 dnl ############################################################################
136 dnl Check for other tools
137 dnl ############################################################################
139 AC_CHECK_TOOL(AR, ar, ar)
143 dnl ############################################################################
144 dnl Check for main libraies
145 dnl ############################################################################
148 mc_G_MODULE_SUPPORTED
151 dnl X11 support. Used to read keyboard modifiers when running under X11.
155 dnl ############################################################################
156 dnl Check for header files
157 dnl ############################################################################
159 AC_CHECK_HEADERS([string.h memory.h limits.h malloc.h \
160 utime.h sys/statfs.h sys/vfs.h \
161 sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
163 dnl This macro is redefined in m4.include/gnulib/sys_types_h.m4
164 dnl to work around a buggy version in autoconf <= 2.69.
168 dnl ############################################################################
170 dnl ############################################################################
172 dnl Check largefile before type sizeof checks
175 AC_CHECK_SIZEOF(long)
177 AC_CHECK_SIZEOF(uintmax_t)
179 AC_CHECK_SIZEOF(off_t)
181 gl_PROMOTED_TYPE_MODE_T
186 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev, struct stat.st_mtim])
189 AH_TEMPLATE([sig_atomic_t],
190 [/* Define to `int' if <signal.h> doesn't define.])
191 AH_TEMPLATE([SIG_ATOMIC_VOLATILE_T],
192 [Some systems declare sig_atomic_t as volatile, some others -- no.
193 This define will have value `sig_atomic_t' or
194 `volatile sig_atomic_t' accordingly.])
196 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
197 AC_EGREP_HEADER(sig_atomic_t,signal.h,
199 ac_cv_type_sig_atomic_t=yes;
200 AC_EGREP_HEADER(volatile.*sig_atomic_t,
203 is_sig_atomic_t_volatile=yes;
204 AC_MSG_RESULT([yes, volatile])
207 is_sig_atomic_t_volatile=no;
208 AC_MSG_RESULT([yes, non volatile])
213 AC_CHECK_TYPE(sig_atomic_t, int)
214 is_sig_atomic_t_volatile=no
216 if test $is_sig_atomic_t_volatile = 'yes'
218 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, sig_atomic_t)
220 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, [volatile sig_atomic_t])
224 dnl ############################################################################
225 dnl Check for functions
226 dnl ############################################################################
234 dnl getpt is a GNU Extension (glibc 2.1.x)
235 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
236 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
238 dnl replacing lstat with statlstat on sco makes it more portable between
240 AC_CHECK_FUNCS(statlstat)
242 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
243 dnl We use only part of the functionality of mmap, so on AIX,
244 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
246 AS_HELP_STRING([--with-mmap], [Use the mmap call @<:@yes if found@:>@]))
247 if test x$with_mmap != xno; then
248 if test x$with_mmap = x; then
251 AC_DEFINE(HAVE_MMAP, 1)
255 dnl Sequent wants getprocessstats
256 AC_CHECK_LIB(seq, get_process_stats, [
258 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
259 [Define if you have function `get_process_stats' and
260 have to use that instead of gettimeofday])])
265 dnl ############################################################################
266 dnl Internationalization
267 dnl ############################################################################
269 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
270 AM_GNU_GETTEXT_VERSION([0.18.1])
274 dnl ############################################################################
275 dnl OS specific stuff
276 dnl ############################################################################
280 AC_PATH_PROG([PERL], [perl], [/QOpenSys/pkgs/bin/perl])
281 AC_PATH_PROG([PYTHON], [python], [/QOpenSys/pkgs/bin/python2])
282 AC_PATH_PROG([RUBY], [ruby], [/QOpenSys/pkgs/bin/ruby])
285 AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])
286 AC_PATH_PROG([PYTHON], [python], [/usr/bin/python])
287 AC_PATH_PROG([RUBY], [ruby], [/usr/bin/ruby])
294 AC_DEFINE(_POSIX_SOURCE)
298 dnl If running under AIX, AC_AIX does not tell us that
299 AC_MSG_CHECKING([for AIX defines])
302 #if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
307 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
314 dnl utimensat is supported since glibc 2.6 and specified in POSIX.1-2008
315 dnl utimensat() causes different timespec structures to cause failures on IBM i
320 AC_CHECK_FUNCS([utimensat])
326 AC_DEFINE([PTY_ZEROREAD], [1], [read(1) can return 0 for a non-closed fd])
329 dnl Check linux/fs.h for FICLONE to support BTRFS's file clone operation
332 AC_CHECK_HEADERS([linux/fs.h])
335 dnl Check if the OS is supported by the console saver.
342 dnl Check for gpm mouse support (Linux only)
343 mouse_lib="xterm only"
344 AC_ARG_WITH([gpm-mouse],
345 AS_HELP_STRING([--with-gpm-mouse], [Compile with gpm mouse support (Linux only) @<:@yes if found@:>@]))
349 if test x$with_gpm_mouse != xno; then
350 AC_CHECK_LIB(gpm, Gpm_Repeat,
351 [AC_DEFINE(HAVE_LIBGPM, 1,
352 [Define to enable gpm mouse support on Linux])
353 mouse_lib="gpm and xterm"
354 MCLIBS="$MCLIBS -lgpm"],
355 if test "x$with_gpm_mouse" = "xyes"; then
356 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
358 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
366 dnl ############################################################################
368 dnl ############################################################################
370 LIBMC_VERSION="0.0.1"
372 AC_SUBST(LIBMC_VERSION)
373 AC_SUBST(LIBMC_RELEASE)
375 AC_ARG_ENABLE([mclib],
376 [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
378 if test "x$enableval" = "xno" ; then
381 if test "x$enable_shared" = "xno" ; then
382 AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
391 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
394 dnl ############################################################################
395 dnl Where config files should be placed
396 dnl ############################################################################
398 AC_ARG_WITH([homedir],
399 AS_HELP_STRING([--with-homedir],
400 [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
402 dnl Unfortunately, there is no way to tell AC_ARG_WITH that the
403 dnl argument value is required, so we can't differentiate
404 dnl between `--with-homedir` and `--with-homedir=yes`, because
405 dnl `with_homedir` is set to `yes` in both cases.
407 dnl We opt to set `with_homedir` to `.mc` if the value is `yes`
408 dnl in order to avoid the surprise for users using
409 dnl `--with-homedir` w/o any value and then getting mc to store
410 dnl settings in the `yes` directory.
412 if test "x$withval" = "xXDG"; then
414 elif test "x$withval" = "xyes"; then
417 with_homedir=$withval
423 if test x$with_homedir = xXDG; then
424 AC_DEFINE(MC_HOMEDIR_XDG, 1, [Define to enable XDG standard support])
426 AC_DEFINE(MC_HOMEDIR_XDG, 0, [Define to disable XDG standard support])
427 AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
431 dnl ############################################################################
433 dnl ############################################################################
437 mc_WITH_INTERNAL_EDIT
439 dnl Diff viewer support.
440 AC_ARG_WITH([diff_viewer],
441 AS_HELP_STRING([--with-diff-viewer], [Compile with diff viewer @<:@yes@:>@]))
443 if test x$with_diff_viewer != xno; then
444 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
447 AC_MSG_NOTICE([using diff viewer])
456 dnl ############################################################################
458 dnl ############################################################################
460 dnl ${prefix} and ${exec_prefix} are undefined here if --prefix is not used in command line
461 dnl Let define ${prefix} and ${exec_prefix}
462 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
463 test "x$exec_prefix" = "xNONE" && exec_prefix="${prefix}"
465 if test x${libexecdir} = x'${exec_prefix}/libexec'; then
466 EXTHELPERSDIR=${prefix}/libexec/${PACKAGE}/ext.d
467 elif test x${libexecdir} = x'${exec_prefix}/lib'; then
468 EXTHELPERSDIR=${prefix}/lib/${PACKAGE}/ext.d
470 EXTHELPERSDIR=${libexecdir}/${PACKAGE}/ext.d
472 AC_SUBST(EXTHELPERSDIR)
475 dnl ############################################################################
477 dnl ############################################################################
479 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
482 dnl Determine which help translations we want to install.
483 ALL_DOC_LINGUAS="es hu it pl ru sr"
486 if test "x$USE_NLS" = xyes; then
487 if test -z "$LINGUAS"; then
488 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
496 for h_lang in $ALL_DOC_LINGUAS; do
497 for lang in $langs; do
498 if test "$lang" = "$h_lang"; then
499 DOC_LINGUAS="$DOC_LINGUAS $lang"
504 AC_SUBST(DOC_LINGUAS)
514 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
517 dnl ############################################################################
518 dnl Configure results
519 dnl ############################################################################
521 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
529 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
530 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
531 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
532 AM_CONDITIONAL(USE_INTERNAL_EDIT, [test x"$use_internal_edit" = xyes ])
533 AM_CONDITIONAL(USE_ASPELL, [test x"$enable_aspell" = xyes ])
534 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
535 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
536 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
537 dnl Clarify do we really need GModule
538 AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
539 test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
541 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
548 chmod +x src/man2hlp/man2hlp
555 contrib/dist/Makefile
556 contrib/dist/gentoo/Makefile
557 contrib/dist/redhat/Makefile
558 contrib/dist/redhat/mc.spec
560 contrib/dist/prototype
571 misc/macros.d/Makefile
575 src/consaver/Makefile
578 src/subshell/Makefile
580 src/diffviewer/Makefile
581 src/filemanager/Makefile
585 src/vfs/cpio/Makefile
587 src/vfs/extfs/Makefile
588 src/vfs/extfs/helpers/Makefile
589 src/vfs/extfs/helpers/a+
590 src/vfs/extfs/helpers/apt+
591 src/vfs/extfs/helpers/audio
592 src/vfs/extfs/helpers/deb
593 src/vfs/extfs/helpers/deba
594 src/vfs/extfs/helpers/debd
595 src/vfs/extfs/helpers/dpkg+
596 src/vfs/extfs/helpers/iso9660
597 src/vfs/extfs/helpers/hp48+
598 src/vfs/extfs/helpers/lslR
599 src/vfs/extfs/helpers/mailfs
600 src/vfs/extfs/helpers/patchfs
601 src/vfs/extfs/helpers/rpms+
602 src/vfs/extfs/helpers/s3+
603 src/vfs/extfs/helpers/uace
604 src/vfs/extfs/helpers/ualz
605 src/vfs/extfs/helpers/uar
606 src/vfs/extfs/helpers/uarc
607 src/vfs/extfs/helpers/uarj
608 src/vfs/extfs/helpers/uc1541
609 src/vfs/extfs/helpers/ucab
610 src/vfs/extfs/helpers/uha
611 src/vfs/extfs/helpers/ulha
612 src/vfs/extfs/helpers/ulib
613 src/vfs/extfs/helpers/urar
614 src/vfs/extfs/helpers/uzip
615 src/vfs/extfs/helpers/uzoo
617 src/vfs/fish/Makefile
618 src/vfs/fish/helpers/Makefile
620 src/vfs/ftpfs/Makefile
622 src/vfs/sftpfs/Makefile
624 src/vfs/local/Makefile
628 src/vfs/smbfs/Makefile
632 src/vfs/undelfs/Makefile
636 lib/filehighlight/Makefile
637 lib/mcconfig/Makefile
653 doc/hints/l10n/Makefile
678 tests/lib/mcconfig/Makefile
679 tests/lib/search/Makefile
680 tests/lib/strutil/Makefile
681 tests/lib/vfs/Makefile
682 tests/lib/widget/Makefile
684 tests/src/filemanager/Makefile
685 tests/src/editor/Makefile
686 tests/src/editor/test-data.txt
687 tests/src/vfs/Makefile
688 tests/src/vfs/extfs/Makefile
689 tests/src/vfs/extfs/helpers-list/Makefile
690 tests/src/vfs/extfs/helpers-list/data/config.sh
691 tests/src/vfs/extfs/helpers-list/misc/Makefile
700 Source code location: ${srcdir}
702 Compiler flags: ${CFLAGS}
703 Assertions: ${enable_assert}
704 Unit tests: ${tests_msg}
705 File system: ${vfs_type}
707 Screen library: ${screen_msg}
708 Mouse support: ${mouse_lib}
709 X11 events support: ${textmode_x11_support}
710 With subshell support: ${subshell}
711 With background operations: ${enable_background}
712 Internal editor: ${edit_msg}
713 Diff viewer: ${diff_msg}
714 Support for charset: ${charset_msg}
715 Search type: ${SEARCH_TYPE}
718 dnl option checking is disable by default due to AC_CONFIG_SUBDIRS
719 dnl we enable it back for top-level ./configure
720 if test -n "$ac_unrecognized_opts"; then
721 case $enable_option_checking in
722 fatal) AC_MSG_ERROR([unrecognized options: $ac_unrecognized_opts]) ;;
723 *) AC_MSG_WARN( [unrecognized options: $ac_unrecognized_opts]) ;;