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])
51 dnl ############################################################################
52 dnl Check for programs
53 dnl ############################################################################
58 AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])
59 AC_PATH_PROG([PYTHON], [python], [/usr/bin/python])
60 AC_PATH_PROG([RUBY], [ruby], [/usr/bin/ruby])
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 \
166 dnl ############################################################################
168 dnl ############################################################################
170 dnl Check largefile before type sizeof checks
173 AC_CHECK_SIZEOF(long)
175 AC_CHECK_SIZEOF(uintmax_t)
177 AC_CHECK_SIZEOF(off_t)
179 gl_PROMOTED_TYPE_MODE_T
184 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev, struct stat.st_mtim])
187 AH_TEMPLATE([sig_atomic_t],
188 [/* Define to `int' if <signal.h> doesn't define.])
189 AH_TEMPLATE([SIG_ATOMIC_VOLATILE_T],
190 [Some systems declare sig_atomic_t as volatile, some others -- no.
191 This define will have value `sig_atomic_t' or
192 `volatile sig_atomic_t' accordingly.])
194 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
195 AC_EGREP_HEADER(sig_atomic_t,signal.h,
197 ac_cv_type_sig_atomic_t=yes;
198 AC_EGREP_HEADER(volatile.*sig_atomic_t,
201 is_sig_atomic_t_volatile=yes;
202 AC_MSG_RESULT([yes, volatile])
205 is_sig_atomic_t_volatile=no;
206 AC_MSG_RESULT([yes, non volatile])
211 AC_CHECK_TYPE(sig_atomic_t, int)
212 is_sig_atomic_t_volatile=no
214 if test $is_sig_atomic_t_volatile = 'yes'
216 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, sig_atomic_t)
218 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, [volatile sig_atomic_t])
222 dnl ############################################################################
223 dnl Check for functions
224 dnl ############################################################################
232 dnl utimensat is supported since glibc 2.6 and specified in POSIX.1-2008
233 AC_CHECK_FUNCS([utimensat])
235 dnl getpt is a GNU Extension (glibc 2.1.x)
236 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
237 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
239 dnl replacing lstat with statlstat on sco makes it more portable between
241 AC_CHECK_FUNCS(statlstat)
243 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
244 dnl We use only part of the functionality of mmap, so on AIX,
245 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
247 AS_HELP_STRING([--with-mmap], [Use the mmap call @<:@yes if found@:>@]))
248 if test x$with_mmap != xno; then
249 if test x$with_mmap = x; then
252 AC_DEFINE(HAVE_MMAP, 1)
256 dnl Sequent wants getprocessstats
257 AC_CHECK_LIB(seq, get_process_stats, [
259 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
260 [Define if you have function `get_process_stats' and
261 have to use that instead of gettimeofday])])
266 dnl ############################################################################
267 dnl Internationalization
268 dnl ############################################################################
270 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
271 AM_GNU_GETTEXT_VERSION([0.18.1])
275 dnl ############################################################################
276 dnl OS specific flags
277 dnl ############################################################################
283 AC_DEFINE(_POSIX_SOURCE)
287 dnl If running under AIX, AC_AIX does not tell us that
288 AC_MSG_CHECKING([for AIX defines])
291 #if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
296 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
303 dnl Check if the OS is supported by the console saver.
310 dnl Check for gpm mouse support (Linux only)
311 mouse_lib="xterm only"
312 AC_ARG_WITH([gpm-mouse],
313 AS_HELP_STRING([--with-gpm-mouse], [Compile with gpm mouse support (Linux only) @<:@yes if found@:>@]))
317 if test x$with_gpm_mouse != xno; then
318 AC_CHECK_LIB(gpm, Gpm_Repeat,
319 [AC_DEFINE(HAVE_LIBGPM, 1,
320 [Define to enable gpm mouse support on Linux])
321 mouse_lib="gpm and xterm"
322 MCLIBS="$MCLIBS -lgpm"],
323 if test "x$with_gpm_mouse" = "xyes"; then
324 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
326 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
334 dnl ############################################################################
336 dnl ############################################################################
338 LIBMC_VERSION="0.0.1"
340 AC_SUBST(LIBMC_VERSION)
341 AC_SUBST(LIBMC_RELEASE)
343 AC_ARG_ENABLE([mclib],
344 [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
346 if test "x$enableval" = "xno" ; then
349 if test "x$enable_shared" = "xno" ; then
350 AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
359 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
362 dnl ############################################################################
363 dnl Where config files should be placed
364 dnl ############################################################################
366 AC_ARG_WITH([homedir],
367 AS_HELP_STRING([--with-homedir],
368 [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
370 dnl Unfortunately, there is no way to tell AC_ARG_WITH that the
371 dnl argument value is required, so we can't differentiate
372 dnl between `--with-homedir` and `--with-homedir=yes`, because
373 dnl `with_homedir` is set to `yes` in both cases.
375 dnl We opt to set `with_homedir` to `.mc` if the value is `yes`
376 dnl in order to avoid the surprise for users using
377 dnl `--with-homedir` w/o any value and then getting mc to store
378 dnl settings in the `yes` directory.
380 if test "x$withval" = "xXDG"; then
382 elif test "x$withval" = "xyes"; then
385 with_homedir=$withval
391 if test x$with_homedir = xXDG; then
392 AC_DEFINE(MC_HOMEDIR_XDG, 1, [Define to enable XDG standard support])
394 AC_DEFINE(MC_HOMEDIR_XDG, 0, [Define to disable XDG standard support])
395 AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
399 dnl ############################################################################
401 dnl ############################################################################
405 mc_WITH_INTERNAL_EDIT
407 dnl Diff viewer support.
408 AC_ARG_WITH([diff_viewer],
409 AS_HELP_STRING([--with-diff-viewer], [Compile with diff viewer @<:@yes@:>@]))
411 if test x$with_diff_viewer != xno; then
412 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
415 AC_MSG_NOTICE([using diff viewer])
424 dnl ############################################################################
426 dnl ############################################################################
428 dnl ${prefix} and ${exec_prefix} are undefined here if --prefix is not used in command line
429 dnl Let define ${prefix} and ${exec_prefix}
430 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
431 test "x$exec_prefix" = "xNONE" && exec_prefix="${prefix}"
433 if test x${libexecdir} = x'${exec_prefix}/libexec'; then
434 EXTHELPERSDIR=${prefix}/libexec/${PACKAGE}/ext.d
435 elif test x${libexecdir} = x'${exec_prefix}/lib'; then
436 EXTHELPERSDIR=${prefix}/lib/${PACKAGE}/ext.d
438 EXTHELPERSDIR=${libexecdir}/${PACKAGE}/ext.d
440 AC_SUBST(EXTHELPERSDIR)
443 dnl ############################################################################
445 dnl ############################################################################
447 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
450 dnl Determine which help translations we want to install.
451 ALL_DOC_LINGUAS="es hu it pl ru sr"
454 if test "x$USE_NLS" = xyes; then
455 if test -z "$LINGUAS"; then
456 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
464 for h_lang in $ALL_DOC_LINGUAS; do
465 for lang in $langs; do
466 if test "$lang" = "$h_lang"; then
467 DOC_LINGUAS="$DOC_LINGUAS $lang"
472 AC_SUBST(DOC_LINGUAS)
482 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
485 dnl ############################################################################
486 dnl Configure results
487 dnl ############################################################################
489 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
497 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
498 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
499 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
500 AM_CONDITIONAL(USE_INTERNAL_EDIT, [test x"$use_internal_edit" = xyes ])
501 AM_CONDITIONAL(USE_ASPELL, [test x"$enable_aspell" = xyes ])
502 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
503 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
504 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
505 dnl Clarify do we really need GModule
506 AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
507 test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
509 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
516 chmod +x src/man2hlp/man2hlp
523 contrib/dist/Makefile
524 contrib/dist/gentoo/Makefile
525 contrib/dist/redhat/Makefile
526 contrib/dist/redhat/mc.spec
528 contrib/dist/prototype
539 misc/macros.d/Makefile
543 src/consaver/Makefile
546 src/subshell/Makefile
548 src/diffviewer/Makefile
549 src/filemanager/Makefile
553 src/vfs/cpio/Makefile
555 src/vfs/extfs/Makefile
556 src/vfs/extfs/helpers/Makefile
557 src/vfs/extfs/helpers/a+
558 src/vfs/extfs/helpers/apt+
559 src/vfs/extfs/helpers/audio
560 src/vfs/extfs/helpers/deb
561 src/vfs/extfs/helpers/deba
562 src/vfs/extfs/helpers/debd
563 src/vfs/extfs/helpers/dpkg+
564 src/vfs/extfs/helpers/iso9660
565 src/vfs/extfs/helpers/hp48+
566 src/vfs/extfs/helpers/lslR
567 src/vfs/extfs/helpers/mailfs
568 src/vfs/extfs/helpers/patchfs
569 src/vfs/extfs/helpers/rpms+
570 src/vfs/extfs/helpers/s3+
571 src/vfs/extfs/helpers/uace
572 src/vfs/extfs/helpers/ualz
573 src/vfs/extfs/helpers/uar
574 src/vfs/extfs/helpers/uarc
575 src/vfs/extfs/helpers/uarj
576 src/vfs/extfs/helpers/uc1541
577 src/vfs/extfs/helpers/ucab
578 src/vfs/extfs/helpers/uha
579 src/vfs/extfs/helpers/ulha
580 src/vfs/extfs/helpers/ulib
581 src/vfs/extfs/helpers/urar
582 src/vfs/extfs/helpers/uzip
583 src/vfs/extfs/helpers/uzoo
585 src/vfs/fish/Makefile
586 src/vfs/fish/helpers/Makefile
588 src/vfs/ftpfs/Makefile
590 src/vfs/sftpfs/Makefile
592 src/vfs/local/Makefile
596 src/vfs/smbfs/Makefile
600 src/vfs/undelfs/Makefile
604 lib/filehighlight/Makefile
605 lib/mcconfig/Makefile
621 doc/hints/l10n/Makefile
646 tests/lib/mcconfig/Makefile
647 tests/lib/search/Makefile
648 tests/lib/strutil/Makefile
649 tests/lib/vfs/Makefile
650 tests/lib/widget/Makefile
652 tests/src/filemanager/Makefile
653 tests/src/editor/Makefile
654 tests/src/editor/test-data.txt
655 tests/src/vfs/Makefile
656 tests/src/vfs/extfs/Makefile
657 tests/src/vfs/extfs/helpers-list/Makefile
658 tests/src/vfs/extfs/helpers-list/data/config.sh
659 tests/src/vfs/extfs/helpers-list/misc/Makefile
668 Source code location: ${srcdir}
670 Compiler flags: ${CFLAGS}
671 Assertions: ${enable_assert}
672 Unit tests: ${tests_msg}
673 File system: ${vfs_type}
675 Screen library: ${screen_msg}
676 Mouse support: ${mouse_lib}
677 X11 events support: ${textmode_x11_support}
678 With subshell support: ${subshell}
679 With background operations: ${enable_background}
680 Internal editor: ${edit_msg}
681 Diff viewer: ${diff_msg}
682 Support for charset: ${charset_msg}
683 Search type: ${SEARCH_TYPE}
686 dnl option checking is disable by default due to AC_CONFIG_SUBDIRS
687 dnl we enable it back for top-level ./configure
688 if test -n "$ac_unrecognized_opts"; then
689 case $enable_option_checking in
690 fatal) AC_MSG_ERROR([unrecognized options: $ac_unrecognized_opts]) ;;
691 *) AC_MSG_WARN( [unrecognized options: $ac_unrecognized_opts]) ;;