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])
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 if test "x$withval" = "xXDG"; then
373 with_homedir=$withval
379 if test x$with_homedir = xXDG; then
380 AC_DEFINE(MC_HOMEDIR_XDG, 1, [Define to enable XDG standard support])
382 AC_DEFINE(MC_HOMEDIR_XDG, 0, [Define to disable XDG standard support])
383 AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
387 dnl ############################################################################
389 dnl ############################################################################
393 mc_WITH_INTERNAL_EDIT
395 dnl Diff viewer support.
396 AC_ARG_WITH([diff_viewer],
397 AS_HELP_STRING([--with-diff-viewer], [Compile with diff viewer @<:@yes@:>@]))
399 if test x$with_diff_viewer != xno; then
400 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
403 AC_MSG_NOTICE([using diff viewer])
412 dnl ############################################################################
414 dnl ############################################################################
416 dnl ${prefix} and ${exec_prefix} are undefined here if --prefix is not used in command line
417 dnl Let define ${prefix} and ${exec_prefix}
418 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
419 test "x$exec_prefix" = "xNONE" && exec_prefix="${prefix}"
421 if test x${libexecdir} = x'${exec_prefix}/libexec'; then
422 EXTHELPERSDIR=${prefix}/libexec/${PACKAGE}/ext.d
423 elif test x${libexecdir} = x'${exec_prefix}/lib'; then
424 EXTHELPERSDIR=${prefix}/lib/${PACKAGE}/ext.d
426 EXTHELPERSDIR=${libexecdir}/${PACKAGE}/ext.d
428 AC_SUBST(EXTHELPERSDIR)
431 dnl ############################################################################
433 dnl ############################################################################
435 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
438 dnl Determine which help translations we want to install.
439 ALL_DOC_LINGUAS="es hu it pl ru sr"
442 if test "x$USE_NLS" = xyes; then
443 if test -z "$LINGUAS"; then
444 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
452 for h_lang in $ALL_DOC_LINGUAS; do
453 for lang in $langs; do
454 if test "$lang" = "$h_lang"; then
455 DOC_LINGUAS="$DOC_LINGUAS $lang"
460 AC_SUBST(DOC_LINGUAS)
470 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
473 dnl ############################################################################
474 dnl Configure results
475 dnl ############################################################################
477 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
485 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
486 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
487 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
488 AM_CONDITIONAL(USE_INTERNAL_EDIT, [test x"$use_internal_edit" = xyes ])
489 AM_CONDITIONAL(USE_ASPELL, [test x"$enable_aspell" = xyes ])
490 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
491 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
492 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
493 dnl Clarify do we really need GModule
494 AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
495 test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
497 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
504 chmod +x src/man2hlp/man2hlp
511 contrib/dist/Makefile
512 contrib/dist/gentoo/Makefile
513 contrib/dist/redhat/Makefile
514 contrib/dist/redhat/mc.spec
516 contrib/dist/prototype
527 misc/macros.d/Makefile
531 src/consaver/Makefile
534 src/subshell/Makefile
536 src/diffviewer/Makefile
537 src/filemanager/Makefile
541 src/vfs/cpio/Makefile
543 src/vfs/extfs/Makefile
544 src/vfs/extfs/helpers/Makefile
545 src/vfs/extfs/helpers/a+
546 src/vfs/extfs/helpers/apt+
547 src/vfs/extfs/helpers/audio
548 src/vfs/extfs/helpers/deb
549 src/vfs/extfs/helpers/deba
550 src/vfs/extfs/helpers/debd
551 src/vfs/extfs/helpers/dpkg+
552 src/vfs/extfs/helpers/iso9660
553 src/vfs/extfs/helpers/hp48+
554 src/vfs/extfs/helpers/lslR
555 src/vfs/extfs/helpers/mailfs
556 src/vfs/extfs/helpers/patchfs
557 src/vfs/extfs/helpers/rpms+
558 src/vfs/extfs/helpers/s3+
559 src/vfs/extfs/helpers/uace
560 src/vfs/extfs/helpers/ualz
561 src/vfs/extfs/helpers/uar
562 src/vfs/extfs/helpers/uarc
563 src/vfs/extfs/helpers/uarj
564 src/vfs/extfs/helpers/uc1541
565 src/vfs/extfs/helpers/ucab
566 src/vfs/extfs/helpers/uha
567 src/vfs/extfs/helpers/ulha
568 src/vfs/extfs/helpers/ulib
569 src/vfs/extfs/helpers/urar
570 src/vfs/extfs/helpers/uzip
571 src/vfs/extfs/helpers/uzoo
573 src/vfs/fish/Makefile
574 src/vfs/fish/helpers/Makefile
576 src/vfs/ftpfs/Makefile
578 src/vfs/sftpfs/Makefile
580 src/vfs/local/Makefile
584 src/vfs/smbfs/Makefile
588 src/vfs/undelfs/Makefile
592 lib/filehighlight/Makefile
593 lib/mcconfig/Makefile
609 doc/hints/l10n/Makefile
634 tests/lib/mcconfig/Makefile
635 tests/lib/search/Makefile
636 tests/lib/strutil/Makefile
637 tests/lib/vfs/Makefile
638 tests/lib/widget/Makefile
640 tests/src/filemanager/Makefile
641 tests/src/editor/Makefile
642 tests/src/editor/test-data.txt
643 tests/src/vfs/Makefile
644 tests/src/vfs/extfs/Makefile
645 tests/src/vfs/extfs/helpers-list/Makefile
646 tests/src/vfs/extfs/helpers-list/data/config.sh
647 tests/src/vfs/extfs/helpers-list/misc/Makefile
656 Source code location: ${srcdir}
658 Compiler flags: ${CFLAGS}
659 Assertions: ${enable_assert}
660 Unit tests: ${tests_msg}
661 File system: ${vfs_type}
663 Screen library: ${screen_msg}
664 Mouse support: ${mouse_lib}
665 X11 events support: ${textmode_x11_support}
666 With subshell support: ${subshell}
667 With background operations: ${enable_background}
668 Internal editor: ${edit_msg}
669 Diff viewer: ${diff_msg}
670 Support for charset: ${charset_msg}
671 Search type: ${SEARCH_TYPE}
674 dnl option checking is disable by default due to AC_CONFIG_SUBDIRS
675 dnl we enable it back for top-level ./configure
676 if test -n "$ac_unrecognized_opts"; then
677 case $enable_option_checking in
678 fatal) AC_MSG_ERROR([unrecognized options: $ac_unrecognized_opts]) ;;
679 *) AC_MSG_WARN( [unrecognized options: $ac_unrecognized_opts]) ;;