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 \
167 dnl ############################################################################
169 dnl ############################################################################
171 dnl Check largefile before type sizeof checks
174 AC_CHECK_SIZEOF(long)
176 AC_CHECK_SIZEOF(uintmax_t)
178 AC_CHECK_SIZEOF(off_t)
180 gl_PROMOTED_TYPE_MODE_T
185 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
188 AH_TEMPLATE([sig_atomic_t],
189 [/* Define to `int' if <signal.h> doesn't define.])
190 AH_TEMPLATE([SIG_ATOMIC_VOLATILE_T],
191 [Some systems declare sig_atomic_t as volatile, some others -- no.
192 This define will have value `sig_atomic_t' or
193 `volatile sig_atomic_t' accordingly.])
195 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
196 AC_EGREP_HEADER(sig_atomic_t,signal.h,
198 ac_cv_type_sig_atomic_t=yes;
199 AC_EGREP_HEADER(volatile.*sig_atomic_t,
202 is_sig_atomic_t_volatile=yes;
203 AC_MSG_RESULT([yes, volatile])
206 is_sig_atomic_t_volatile=no;
207 AC_MSG_RESULT([yes, non volatile])
212 AC_CHECK_TYPE(sig_atomic_t, int)
213 is_sig_atomic_t_volatile=no
215 if test $is_sig_atomic_t_volatile = 'yes'
217 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, sig_atomic_t)
219 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, [volatile sig_atomic_t])
223 dnl ############################################################################
224 dnl Check for functions
225 dnl ############################################################################
233 dnl getpt is a GNU Extension (glibc 2.1.x)
234 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
235 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
237 dnl replacing lstat with statlstat on sco makes it more portable between
239 AC_CHECK_FUNCS(statlstat)
241 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
242 dnl We use only part of the functionality of mmap, so on AIX,
243 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
245 AS_HELP_STRING([--with-mmap], [Use the mmap call @<:@yes if found@:>@]))
246 if test x$with_mmap != xno; then
247 if test x$with_mmap = x; then
250 AC_DEFINE(HAVE_MMAP, 1)
254 dnl Sequent wants getprocessstats
255 AC_CHECK_LIB(seq, get_process_stats, [
257 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
258 [Define if you have function `get_process_stats' and
259 have to use that instead of gettimeofday])])
264 dnl ############################################################################
265 dnl Internationalization
266 dnl ############################################################################
268 AM_GNU_GETTEXT([no-libtool], [need-ngettext])
269 AM_GNU_GETTEXT_VERSION([0.18.1])
273 dnl ############################################################################
274 dnl OS specific flags
275 dnl ############################################################################
281 AC_DEFINE(_POSIX_SOURCE)
285 dnl If running under AIX, AC_AIX does not tell us that
286 AC_MSG_CHECKING([for AIX defines])
289 #if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
294 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
301 dnl Check if the OS is supported by the console saver.
308 dnl Check for gpm mouse support (Linux only)
309 mouse_lib="xterm only"
310 AC_ARG_WITH([gpm-mouse],
311 AS_HELP_STRING([--with-gpm-mouse], [Compile with gpm mouse support (Linux only) @<:@yes if found@:>@]))
315 if test x$with_gpm_mouse != xno; then
316 AC_CHECK_LIB(gpm, Gpm_Repeat,
317 [AC_DEFINE(HAVE_LIBGPM, 1,
318 [Define to enable gpm mouse support on Linux])
319 mouse_lib="gpm and xterm"
320 MCLIBS="$MCLIBS -lgpm"],
321 if test "x$with_gpm_mouse" = "xyes"; then
322 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
324 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
332 dnl ############################################################################
334 dnl ############################################################################
336 LIBMC_VERSION="0.0.1"
338 AC_SUBST(LIBMC_VERSION)
339 AC_SUBST(LIBMC_RELEASE)
341 AC_ARG_ENABLE([mclib],
342 [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
344 if test "x$enableval" = "xno" ; then
347 if test "x$enable_shared" = "xno" ; then
348 AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
357 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
360 dnl ############################################################################
361 dnl Where config files should be placed
362 dnl ############################################################################
364 AC_ARG_WITH([homedir],
365 AS_HELP_STRING([--with-homedir],
366 [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
368 if test "x$withval" = "xXDG"; then
371 with_homedir=$withval
377 if test x$with_homedir = xXDG; then
378 AC_DEFINE(MC_HOMEDIR_XDG, 1, [Define to enable XDG standard support])
380 AC_DEFINE(MC_HOMEDIR_XDG, 0, [Define to disble XDG standard support])
381 AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
385 dnl ############################################################################
387 dnl ############################################################################
389 mc_WITH_INTERNAL_EDIT
391 dnl Diff viewer support.
392 AC_ARG_WITH([diff_viewer],
393 AS_HELP_STRING([--with-diff-viewer], [Compile with diff viewer @<:@yes@:>@]))
395 if test x$with_diff_viewer != xno; then
396 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
399 AC_MSG_NOTICE([using diff viewer])
408 dnl ############################################################################
410 dnl ############################################################################
412 dnl ${prefix} and ${exec_prefix} are undefined here if --prefix is not used in command line
413 dnl Let define ${prefix} and ${exec_prefix}
414 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
415 test "x$exec_prefix" = "xNONE" && exec_prefix="${prefix}"
417 if test x${libexecdir} = x'${exec_prefix}/libexec'; then
418 EXTHELPERSDIR=${prefix}/libexec/${PACKAGE}/ext.d
419 elif test x${libexecdir} = x'${exec_prefix}/lib'; then
420 EXTHELPERSDIR=${prefix}/lib/${PACKAGE}/ext.d
422 EXTHELPERSDIR=${libexecdir}/${PACKAGE}/ext.d
424 AC_SUBST(EXTHELPERSDIR)
427 dnl ############################################################################
429 dnl ############################################################################
431 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
434 dnl Determine which help translations we want to install.
435 ALL_DOC_LINGUAS="es hu it pl ru sr"
438 if test "x$USE_NLS" = xyes; then
439 if test -z "$LINGUAS"; then
440 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
448 for h_lang in $ALL_DOC_LINGUAS; do
449 for lang in $langs; do
450 if test "$lang" = "$h_lang"; then
451 DOC_LINGUAS="$DOC_LINGUAS $lang"
456 AC_SUBST(DOC_LINGUAS)
466 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
469 dnl ############################################################################
470 dnl Configure results
471 dnl ############################################################################
473 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
481 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
482 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
483 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
484 AM_CONDITIONAL(USE_INTERNAL_EDIT, [test x"$use_internal_edit" = xyes ])
485 AM_CONDITIONAL(USE_ASPELL, [test x"$enable_aspell" = xyes ])
486 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
487 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
488 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
489 dnl Clarify do we really need GModule
490 AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
491 test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
493 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
500 chmod +x src/man2hlp/man2hlp
507 contrib/dist/Makefile
508 contrib/dist/gentoo/Makefile
509 contrib/dist/redhat/Makefile
510 contrib/dist/redhat/mc.spec
512 contrib/dist/prototype
523 misc/macros.d/Makefile
527 src/consaver/Makefile
530 src/subshell/Makefile
532 src/diffviewer/Makefile
533 src/filemanager/Makefile
537 src/vfs/cpio/Makefile
539 src/vfs/extfs/Makefile
540 src/vfs/extfs/helpers/Makefile
541 src/vfs/extfs/helpers/a+
542 src/vfs/extfs/helpers/apt+
543 src/vfs/extfs/helpers/audio
544 src/vfs/extfs/helpers/deb
545 src/vfs/extfs/helpers/deba
546 src/vfs/extfs/helpers/debd
547 src/vfs/extfs/helpers/dpkg+
548 src/vfs/extfs/helpers/iso9660
549 src/vfs/extfs/helpers/hp48+
550 src/vfs/extfs/helpers/lslR
551 src/vfs/extfs/helpers/mailfs
552 src/vfs/extfs/helpers/patchfs
553 src/vfs/extfs/helpers/rpms+
554 src/vfs/extfs/helpers/s3+
555 src/vfs/extfs/helpers/uace
556 src/vfs/extfs/helpers/ualz
557 src/vfs/extfs/helpers/uar
558 src/vfs/extfs/helpers/uarc
559 src/vfs/extfs/helpers/uarj
560 src/vfs/extfs/helpers/uc1541
561 src/vfs/extfs/helpers/ucab
562 src/vfs/extfs/helpers/uha
563 src/vfs/extfs/helpers/ulha
564 src/vfs/extfs/helpers/ulib
565 src/vfs/extfs/helpers/urar
566 src/vfs/extfs/helpers/uzip
567 src/vfs/extfs/helpers/uzoo
569 src/vfs/fish/Makefile
570 src/vfs/fish/helpers/Makefile
572 src/vfs/ftpfs/Makefile
574 src/vfs/sftpfs/Makefile
576 src/vfs/local/Makefile
580 src/vfs/smbfs/Makefile
584 src/vfs/undelfs/Makefile
588 lib/filehighlight/Makefile
589 lib/mcconfig/Makefile
605 doc/hints/l10n/Makefile
627 if test x$enable_tests != xno; then
631 tests/lib/mcconfig/Makefile
632 tests/lib/search/Makefile
633 tests/lib/strutil/Makefile
634 tests/lib/vfs/Makefile
635 tests/lib/widget/Makefile
637 tests/src/filemanager/Makefile
638 tests/src/editor/Makefile
639 tests/src/editor/test-data.txt
649 Source code location: ${srcdir}
651 Compiler flags: ${CFLAGS}
652 File system: ${vfs_type}
654 Screen library: ${screen_msg}
655 Mouse support: ${mouse_lib}
656 X11 events support: ${textmode_x11_support}
657 With subshell support: ${subshell}
658 With background operations: ${enable_background}
659 Internal editor: ${edit_msg}
660 Diff viewer: ${diff_msg}
661 Support for charset: ${charset_msg}
662 Search type: ${SEARCH_TYPE}
665 dnl option checking is disable by default due to AC_CONFIG_SUBDIRS
666 dnl we enable it back for top-level ./configure
667 if test -n "$ac_unrecognized_opts"; then
668 case $enable_option_checking in
669 fatal) AC_MSG_ERROR([unrecognized options: $ac_unrecognized_opts]) ;;
670 *) AC_MSG_WARN( [unrecognized options: $ac_unrecognized_opts]) ;;