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 AC_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 \
162 sys/socket.h sys/sysmacros.h sys/mkdev.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)
183 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
185 AH_TEMPLATE([sig_atomic_t],
186 [/* Define to `int' if <signal.h> doesn't define.])
187 AH_TEMPLATE([SIG_ATOMIC_VOLATILE_T],
188 [Some systems declare sig_atomic_t as volatile, some others -- no.
189 This define will have value `sig_atomic_t' or
190 `volatile sig_atomic_t' accordingly.])
192 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
193 AC_EGREP_HEADER(sig_atomic_t,signal.h,
195 ac_cv_type_sig_atomic_t=yes;
196 AC_EGREP_HEADER(volatile.*sig_atomic_t,
199 is_sig_atomic_t_volatile=yes;
200 AC_MSG_RESULT([yes, volatile])
203 is_sig_atomic_t_volatile=no;
204 AC_MSG_RESULT([yes, non volatile])
209 AC_CHECK_TYPE(sig_atomic_t, int)
210 is_sig_atomic_t_volatile=no
212 if test $is_sig_atomic_t_volatile = 'yes'
214 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, sig_atomic_t)
216 AC_DEFINE(SIG_ATOMIC_VOLATILE_T, [volatile sig_atomic_t])
220 dnl ############################################################################
221 dnl Check for functions
222 dnl ############################################################################
230 dnl getpt is a GNU Extension (glibc 2.1.x)
231 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
232 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
234 dnl replacing lstat with statlstat on sco makes it more portable between
236 AC_CHECK_FUNCS(statlstat)
238 dnl Ovverriding mmap support. This has to be before AC_FUNC_MMAP is used.
239 dnl We use only part of the functionality of mmap, so on AIX,
240 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
242 AS_HELP_STRING([--with-mmap], [Use the mmap call @<:@yes if found@:>@]))
243 if test x$with_mmap != xno; then
244 if test x$with_mmap = x; then
247 AC_DEFINE(HAVE_MMAP, 1)
251 dnl Sequent wants getprocessstats
252 AC_CHECK_LIB(seq, get_process_stats, [
254 AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
255 [Define if you have function `get_process_stats' and
256 have to use that instead of gettimeofday])])
261 dnl ############################################################################
262 dnl Internationalization
263 dnl ############################################################################
265 AM_GNU_GETTEXT(no-libtool, need-ngettext)
266 AM_GNU_GETTEXT_VERSION(0.14.3)
270 dnl ############################################################################
271 dnl OS specific flags
272 dnl ############################################################################
278 AC_DEFINE(_POSIX_SOURCE)
282 dnl If running under AIX, AC_AIX does not tell us that
283 AC_MSG_CHECKING([for AIX defines])
286 #if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
291 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
298 dnl Check if the OS is supported by the console saver.
305 dnl Check for gpm mouse support (Linux only)
306 mouse_lib="xterm only"
307 AC_ARG_WITH([gpm-mouse],
308 AS_HELP_STRING([--with-gpm-mouse], [Compile with gpm mouse support (Linux only) @<:@yes if found@:>@]))
312 if test x$with_gpm_mouse != xno; then
313 AC_CHECK_LIB(gpm, Gpm_Repeat,
314 [AC_DEFINE(HAVE_LIBGPM, 1,
315 [Define to enable gpm mouse support on Linux])
316 mouse_lib="gpm and xterm"
317 MCLIBS="$MCLIBS -lgpm"],
318 if test "x$with_gpm_mouse" = "xyes"; then
319 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
321 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
329 dnl ############################################################################
331 dnl ############################################################################
333 LIBMC_VERSION="0.0.1"
335 AC_SUBST(LIBMC_VERSION)
336 AC_SUBST(LIBMC_RELEASE)
338 AC_ARG_ENABLE([mclib],
339 [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
341 if test "x$enableval" = "xno" ; then
344 if test "x$enable_shared" = "xno" ; then
345 AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
354 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
357 dnl ############################################################################
358 dnl Where config files should be placed
359 dnl ############################################################################
361 AC_ARG_WITH([homedir],
362 AS_HELP_STRING([--with-homedir],
363 [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
365 if test "x$withval" = "xXDG"; then
368 with_homedir=$withval
374 if test x$with_homedir = xXDG; then
375 AC_DEFINE(MC_HOMEDIR_XDG, 1,
376 [Define to enable XDG standard support])
378 AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
382 dnl ############################################################################
384 dnl ############################################################################
386 MC_WITH_INTERNAL_EDIT
388 dnl Diff viewer support.
389 AC_ARG_WITH([diff_viewer],
390 AS_HELP_STRING([--with-diff-viewer], [Compile with diff viewer @<:@yes@:>@]))
392 if test x$with_diff_viewer != xno; then
393 AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
396 AC_MSG_NOTICE([using diff viewer])
405 dnl ############################################################################
407 dnl ############################################################################
409 dnl ${prefix} and ${exec_prefix} are undefined here if --prefix is not used in command line
410 dnl Let define ${prefix} and ${exec_prefix}
411 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
412 test "x$exec_prefix" = "xNONE" && exec_prefix="${prefix}"
414 if test x${libexecdir} = x'${exec_prefix}/libexec'; then
415 EXTHELPERSDIR=${prefix}/libexec/${PACKAGE}/ext.d
416 elif test x${libexecdir} = x'${exec_prefix}/lib'; then
417 EXTHELPERSDIR=${prefix}/lib/${PACKAGE}/ext.d
419 EXTHELPERSDIR=${libexecdir}/${PACKAGE}/ext.d
421 AC_SUBST(EXTHELPERSDIR)
424 dnl ############################################################################
426 dnl ############################################################################
428 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
431 dnl Determine which help translations we want to install.
432 ALL_DOC_LINGUAS="es hu it pl ru sr"
435 if test "x$USE_NLS" = xyes; then
436 if test -z "$LINGUAS"; then
437 langs="`grep -v '^#' $srcdir/po/LINGUAS`"
445 for h_lang in $ALL_DOC_LINGUAS; do
446 for lang in $langs; do
447 if test "$lang" = "$h_lang"; then
448 DOC_LINGUAS="$DOC_LINGUAS $lang"
453 AC_SUBST(DOC_LINGUAS)
463 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
466 dnl ############################################################################
467 dnl Configure results
468 dnl ############################################################################
470 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
478 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
479 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
480 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
481 AM_CONDITIONAL(USE_INTERNAL_EDIT, [test x"$use_internal_edit" = xyes ])
482 AM_CONDITIONAL(USE_ASPELL, [test x"$enable_aspell" = xyes ])
483 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
484 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
485 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
486 dnl Clarify do we really need GModule
487 AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
488 test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
490 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
497 chmod +x src/man2hlp/man2hlp
504 contrib/dist/Makefile
505 contrib/dist/gentoo/Makefile
506 contrib/dist/redhat/Makefile
507 contrib/dist/redhat/mc.spec
509 contrib/dist/prototype
518 misc/macros.d/Makefile
522 src/consaver/Makefile
526 src/diffviewer/Makefile
527 src/filemanager/Makefile
531 src/vfs/cpio/Makefile
533 src/vfs/extfs/Makefile
534 src/vfs/extfs/helpers/Makefile
535 src/vfs/extfs/helpers/a+
536 src/vfs/extfs/helpers/apt+
537 src/vfs/extfs/helpers/audio
538 src/vfs/extfs/helpers/deb
539 src/vfs/extfs/helpers/deba
540 src/vfs/extfs/helpers/debd
541 src/vfs/extfs/helpers/dpkg+
542 src/vfs/extfs/helpers/iso9660
543 src/vfs/extfs/helpers/hp48+
544 src/vfs/extfs/helpers/lslR
545 src/vfs/extfs/helpers/mailfs
546 src/vfs/extfs/helpers/patchfs
547 src/vfs/extfs/helpers/rpms+
548 src/vfs/extfs/helpers/s3+
549 src/vfs/extfs/helpers/uace
550 src/vfs/extfs/helpers/ualz
551 src/vfs/extfs/helpers/uar
552 src/vfs/extfs/helpers/uarc
553 src/vfs/extfs/helpers/uarj
554 src/vfs/extfs/helpers/uc1541
555 src/vfs/extfs/helpers/ucab
556 src/vfs/extfs/helpers/uha
557 src/vfs/extfs/helpers/ulha
558 src/vfs/extfs/helpers/ulib
559 src/vfs/extfs/helpers/urar
560 src/vfs/extfs/helpers/uzip
561 src/vfs/extfs/helpers/uzoo
563 src/vfs/fish/Makefile
564 src/vfs/fish/helpers/Makefile
566 src/vfs/ftpfs/Makefile
568 src/vfs/sftpfs/Makefile
570 src/vfs/local/Makefile
574 src/vfs/smbfs/Makefile
578 src/vfs/undelfs/Makefile
582 lib/filehighlight/Makefile
583 lib/mcconfig/Makefile
599 doc/hints/l10n/Makefile
621 if test x$enable_tests != xno; then
625 tests/lib/mcconfig/Makefile
626 tests/lib/search/Makefile
627 tests/lib/strutil/Makefile
628 tests/lib/vfs/Makefile
629 tests/lib/widget/Makefile
631 tests/src/filemanager/Makefile
632 tests/src/editor/Makefile
633 tests/src/editor/test-data.txt
643 Source code location: ${srcdir}
645 Compiler flags: ${CFLAGS}
646 File system: ${vfs_type}
648 Screen library: ${screen_msg}
649 Mouse support: ${mouse_lib}
650 X11 events support: ${textmode_x11_support}
651 With subshell support: ${subshell}
652 With background operations: ${enable_background}
653 Internal editor: ${edit_msg}
654 Diff viewer: ${diff_msg}
655 Support for charset: ${charset_msg}
656 Search type: ${SEARCH_TYPE}
659 dnl option checking is disable by default due to AC_CONFIG_SUBDIRS
660 dnl we enable it back for top-level ./configure
661 if test -n "$ac_unrecognized_opts"; then
662 case $enable_option_checking in
663 fatal) AC_MSG_ERROR([unrecognized options: $ac_unrecognized_opts]) ;;
664 *) AC_MSG_WARN( [unrecognized options: $ac_unrecognized_opts]) ;;