keymap files: unification of Fxx keys: move to lower case.
[midnight-commander.git] / configure.ac
blob7b6384bd8e188dfd6281c9565cb12b60ee1604a7
1 dnl
2 dnl Configure.in file for the Midnight Commander
3 dnl
5 AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
6 AC_PREREQ(2.60)
7 m4_pattern_forbid(MC_)
8 AC_CONFIG_MACRO_DIR([m4])
9 AC_CONFIG_SRCDIR(src/main.c)
10 AC_CONFIG_AUX_DIR(config)
11 MC_VERSION
12 AM_INIT_AUTOMAKE(mc, ${VERSION} )
14 LIBMC_VERSION="0.0.1"
15 LIBMC_RELEASE="1"
16 AC_SUBST(LIBMC_VERSION)
17 AC_SUBST(LIBMC_RELEASE)
19 dnl Enable silent rules by default (if yes)
20 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
22 AM_CONFIG_HEADER(config.h)
23 AM_MAINTAINER_MODE
24 AC_CANONICAL_HOST
26 AC_USE_SYSTEM_EXTENSIONS
28 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS],["$ac_configure_args"],[MC configure arguments])
30 AC_PROG_LIBTOOL
31 PKG_PROG_PKG_CONFIG
32 AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])
34 AC_ISC_POSIX
36 AC_PROG_CC_STDC
37 AM_PROG_CC_C_O
39 dnl Doxygen
41 DX_HTML_FEATURE(ON)
42 DX_CHM_FEATURE(OFF)
43 DX_CHI_FEATURE(OFF)
44 DX_MAN_FEATURE(OFF)
45 DX_RTF_FEATURE(OFF)
46 DX_XML_FEATURE(OFF)
47 DX_PDF_FEATURE(OFF)
48 DX_PS_FEATURE(OFF)
49 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
51 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
53 AC_CHECK_GLIB
55 AC_ARG_ENABLE([mclib],
56         [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
57         [
58             if test "x$enableval" = "xno" ; then
59                 enable_mclib=no
60             else
61                 if test "x$enable_shared" = "xno" ; then
62                     AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
63                     enable_mclib=no
64                 else
65                     enable_mclib=yes
66                 fi
67             fi
68         ],
69         [enable_mclib=no])
71 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
73 AC_HEADER_MAJOR
74 AC_C_CONST
75 AC_SYS_LARGEFILE
77 AC_PROG_LN_S
78 AC_CHECK_TOOL(AR, ar, ar)
80 dnl Only list browsers here that can be run in background (i.e. with `&')
81 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
83 dnl
84 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
85 dnl We use only part of the functionality of mmap, so on AIX,
86 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
87 dnl
88 AC_ARG_WITH(mmap,
89         [  --with-mmap              Use the mmap call [[yes if found]]])
90 if test x$with_mmap != xno; then
91     if test x$with_mmap = x; then
92         AC_FUNC_MMAP
93     else
94         AC_DEFINE(HAVE_MMAP, 1)
95     fi
98 dnl
99 dnl Internationalization
101 AM_GNU_GETTEXT(no-libtool, need-ngettext)
102 AM_GNU_GETTEXT_VERSION(0.14.3)
104 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
105     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
108 dnl Determine which help translations we want to install.
109 ALL_DOC_LINGUAS="es hu it pl ru sr"
111 DOC_LINGUAS=
112 if test "x$USE_NLS" = xyes; then
113     if test -z "$LINGUAS"; then
114         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
115     else
116         langs="$LINGUAS"
117     fi
118 else
119     langs=
122 for h_lang in $ALL_DOC_LINGUAS; do
123     for lang in $langs; do
124         if test "$lang" = "$h_lang"; then
125             DOC_LINGUAS="$DOC_LINGUAS $lang"
126             break
127         fi
128     done
129 done
130 AC_SUBST(DOC_LINGUAS)
133 dnl OS specific flags.
135 case $host_os in
136 aux*)
137     # A/UX
138     LIBS="$LIBS -lposix"
139     AC_DEFINE(_POSIX_SOURCE)
140     ;;
141 esac
143 AC_PROG_INSTALL
144 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
145         utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
146         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
147         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
148         sys/mkdev.h wchar.h wctype.h])
150 AC_HEADER_TIME
151 AC_HEADER_DIRENT
152 AC_HEADER_STDC
154 dnl Missing structure components
155 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
156 AC_STRUCT_ST_BLOCKS
159 dnl Check availability of some functions
162 AC_CHECK_FUNCS([\
163         atoll \
164         cfgetospeed \
165         initgroups isascii \
166         setreuid statfs sysconf \
167         tcgetattr tcsetattr truncate \
168         strverscmp \
169         strncasecmp \
170         realpath
174 dnl getpt is a GNU Extension (glibc 2.1.x)
176 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
177 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
179 dnl replacing lstat with statlstat on sco makes it more portable between
180 dnl sco clones
181 AC_CHECK_FUNCS(statlstat)
184 dnl If running under AIX, AC_AIX does not tell us that
186 AC_MSG_CHECKING([for AIX defines])
187 AC_EGREP_CPP(yes,
188 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
190 #endif
191 ], [
192 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
193 AC_MSG_RESULT(yes)
194 ], [AC_MSG_RESULT(no)])
197 dnl Missing typedefs and replacements
200 AC_CHECK_SIZEOF(long)
201 AC_TYPE_UINTMAX_T
202 AC_CHECK_SIZEOF(uintmax_t)
203 AC_TYPE_OFF_T
204 AC_CHECK_SIZEOF(off_t)
205 AC_TYPE_MODE_T
206 AC_TYPE_PID_T
207 AC_TYPE_UID_T
209 AC_FUNC_ALLOCA
210 AC_FUNC_STRCOLL
213 dnl This is from GNU fileutils, check aclocal.m4 for more information
214 dnl uintmat_t is required for FS info
216 AC_GET_FS_INFO
219 dnl X11 support.
220 dnl Used to read keyboard modifiers when running under X11.
221 AC_PATH_XTRA
224 dnl Check if the gmodule functionality supported on this system.
225 AC_G_MODULE_SUPPORTED
228 dnl Sequent wants getprocessstats
230 AC_CHECK_LIB(seq, get_process_stats, [
231         LIBS="$LIBS -lseq"
232         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
233                   [Define if you have function `get_process_stats' and
234 have to use that instead of gettimeofday])])
236 AC_MC_VFS_CHECKS
239 dnl Check for gpm mouse support (Linux only)
241 mouse_lib="xterm only"
242 AC_ARG_WITH(gpm-mouse,
243         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
244                            [[yes if found]]])
246 case $host_os in
247 linux*)
248     if test x$with_gpm_mouse != xno; then
249         AC_CHECK_LIB(gpm, Gpm_Repeat,
250             [AC_DEFINE(HAVE_LIBGPM, 1,
251                        [Define to enable gpm mouse support on Linux])
252             mouse_lib="gpm and xterm"
253             MCLIBS="$MCLIBS -lgpm"],
254             if test "x$with_gpm_mouse" = "xyes"; then
255                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
256             else
257                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
258             fi
259         )
260     fi
261     ;;
262 esac
264 MC_CHECK_SEARCH_TYPE
267 dnl Check nroff and the options it supports
269 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
271 dnl Default values
272 MANDOC=-man
273 MAN_FLAGS=
275 if $HAVE_nroff; then
276     AC_MSG_CHECKING([for manual formatting macros])
277     AC_CACHE_VAL(mc_cv_mandoc, [
278     nroff -mandoc < /dev/null > /dev/null 2>&1
279     if test $? = 0; then
280         mc_cv_mandoc=-mandoc
281     else
282         mc_cv_mandoc=-man
283     fi
284     ])
285     MANDOC=$mc_cv_mandoc
286     AC_MSG_RESULT([$MANDOC])
288     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
289     AC_CACHE_VAL(mc_cv_man_nocolor, [
290     nroff -c < /dev/null > /dev/null 2>&1
291     if test $? = 0; then
292         mc_cv_man_nocolor=-c
293     else
294         mc_cv_man_nocolor=
295     fi
296     ])
297     MAN_FLAGS=$mc_cv_man_nocolor
298     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
300     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
301     AC_CACHE_VAL(mc_cv_nroff_tascii, [
302     mc_cv_nroff_tascii=
303     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
304     if test $? = 0; then
305         mc_cv_nroff_tascii=-Tlatin1
306     else
307         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
308         if test $? = 0; then
309             mc_cv_nroff_tascii=-Tascii
310         fi
311     fi
312     ])
313     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
314     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
317 AC_SUBST(MANDOC)
318 AC_SUBST(MAN_FLAGS)
322 dnl Check for -L option to file
324 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
325 if $HAVE_FILECMD; then
326     AC_MSG_CHECKING([for -L option to file command])
327     AC_CACHE_VAL(mc_cv_filel, [
328     file -L . > /dev/null 2>&1
329     if test $? = 0; then
330         mc_cv_filel=yes
331     else
332         mc_cv_filel=no
333     fi
334     ])
335     if test x$mc_cv_filel = xyes; then
336         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
337     fi
338     filel=$mc_cv_filel
339     AC_MSG_RESULT([$filel])
343 AC_MSG_CHECKING([for subshell support])
344 AC_ARG_WITH(subshell,
345         [  --with-subshell          Compile in concurrent subshell [[yes]]
346   --with-subshell=optional Don't run concurrent shell by default [[no]]],
347         [result=no
348         if test x$withval = xoptional
349         then
350                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
351                           [Define to make subshell support optional])
352                 result="optional"
353         fi
354         if test x$withval = xyes
355         then
356                 result="yes"
357         fi],
358         [dnl Default: enable the subshell support
359         result="yes"
361 if test "x$result" != xno; then
362         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
363                   [Define to enable subshell support])
365 AC_MSG_RESULT([$result])
366 subshell="$result"
369 MC_WITH_SCREEN
373 dnl Internal editor support.
375 AC_ARG_WITH(edit,
376         [  --with-edit              Enable internal editor [[yes]]])
378 if test x$with_edit != xno; then
379         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
380         use_edit=yes
381         edit_msg="yes"
382         AC_MSG_NOTICE([using internal editor])
383 else
384         edit_msg="no"
388 dnl Diff viewer support.
390 AC_ARG_WITH(diff_viewer,
391         [  --with-diff-viewer       Compile with diff viewer [[yes]]])
393 if test x$with_diff_viewer != xno; then
394         AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
395         use_diff=yes
396         diff_msg="yes"
397         AC_MSG_NOTICE([using diff viewer])
398 else
399         diff_msg="no"
403 dnl Check if the OS is supported by the console saver.
404 cons_saver=""
405 case $host_os in
406 linux*)
407     cons_saver=yes
408 esac
411 dnl Support for background operations
412 AC_ARG_ENABLE([background],
413               [  --enable-background     Support for background file operations [[yes]]])
414 if test "x$enable_background" != xno; then
415     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
420 dnl User visible support for charset conversion.
422 AC_ARG_ENABLE([charset],
423               [  --enable-charset        Support for charset selection and conversion [[yes]]])
424 have_charset=
425 charset_msg="no"
426 if test "x$enable_charset" != "xno"; then
427     AC_DEFINE(HAVE_CHARSET, 1,
428               [Define to enable charset selection and conversion])
429     have_charset=yes
430     charset_msg="yes"
433 if test "$GLIBC21" != yes; then
434     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
437 MC_CHECK_CFLAGS
439 CFLAGS_OPTS=""
441 if test "x$CFLAGS" = "x"; then
442     CFLAGS_OPTS=" -O2 "
445 if test x$USE_MAINTAINER_MODE = xyes; then
446     CFLAGS_OPTS="-g3 -O -ggdb"
447     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
450 AC_ARG_ENABLE(
451     [werror],
452     AS_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors])
455 if test "x$enable_werror" = xyes; then
456     MC_CHECK_ONE_CFLAG([-Werror])
458 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
460 MC_UNIT_TESTS
462 AC_SUBST(CFLAGS)
463 AC_SUBST(CPPFLAGS)
464 AC_SUBST(LDFLAGS)
465 AC_SUBST(LIBS)
467 dnl Libraries used only when building the mc binary
468 AC_SUBST(MCLIBS)
470 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
471 AC_SUBST(MAN_DATE)
473 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
474 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
475 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
476 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
477 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
478 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
479 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
481 AC_CONFIG_FILES(
483 src/man2hlp/man2hlp
486 chmod +x src/man2hlp/man2hlp
489 AC_CONFIG_FILES([
490 Makefile
492 contrib/Makefile
493 contrib/dist/Makefile
494 contrib/dist/debian/Makefile
495 contrib/dist/gentoo/Makefile
496 contrib/dist/redhat/Makefile
497 contrib/dist/redhat/mc.spec
498 contrib/dist/pkginfo
499 contrib/dist/prototype
501 misc/Makefile
502 misc/skins/Makefile
503 misc/macros.d/Makefile
504 misc/mc.ext
506 src/Makefile
507 src/consaver/Makefile
508 src/editor/Makefile
509 src/man2hlp/Makefile
510 src/viewer/Makefile
511 src/diffviewer/Makefile
512 src/filemanager/Makefile
514 src/vfs/Makefile
516 src/vfs/cpio/Makefile
518 src/vfs/extfs/Makefile
519 src/vfs/extfs/helpers/Makefile
520 src/vfs/extfs/helpers/a+
521 src/vfs/extfs/helpers/apt+
522 src/vfs/extfs/helpers/audio
523 src/vfs/extfs/helpers/deb
524 src/vfs/extfs/helpers/deba
525 src/vfs/extfs/helpers/debd
526 src/vfs/extfs/helpers/dpkg+
527 src/vfs/extfs/helpers/iso9660
528 src/vfs/extfs/helpers/hp48+
529 src/vfs/extfs/helpers/lslR
530 src/vfs/extfs/helpers/mailfs
531 src/vfs/extfs/helpers/patchfs
532 src/vfs/extfs/helpers/rpms+
533 src/vfs/extfs/helpers/s3+
534 src/vfs/extfs/helpers/uace
535 src/vfs/extfs/helpers/ualz
536 src/vfs/extfs/helpers/uar
537 src/vfs/extfs/helpers/uarc
538 src/vfs/extfs/helpers/uarj
539 src/vfs/extfs/helpers/uc1541
540 src/vfs/extfs/helpers/ucab
541 src/vfs/extfs/helpers/uha
542 src/vfs/extfs/helpers/ulha
543 src/vfs/extfs/helpers/urar
544 src/vfs/extfs/helpers/uzip
545 src/vfs/extfs/helpers/uzoo
547 src/vfs/fish/Makefile
548 src/vfs/fish/helpers/Makefile
550 src/vfs/ftpfs/Makefile
552 src/vfs/local/Makefile
554 src/vfs/sfs/Makefile
556 src/vfs/smbfs/Makefile
558 src/vfs/tar/Makefile
560 src/vfs/undelfs/Makefile
562 lib/Makefile
563 lib/event/Makefile
564 lib/filehighlight/Makefile
565 lib/mcconfig/Makefile
566 lib/search/Makefile
567 lib/skin/Makefile
568 lib/strutil/Makefile
569 lib/tty/Makefile
571 lib/vfs/Makefile
573 lib/widget/Makefile
575 misc/syntax/Makefile
577 doc/Makefile
578 doc/hints/Makefile
579 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/Makefile
580 doc/man/es/mc.1 doc/man/es/Makefile
581 doc/man/hu/mc.1 doc/man/hu/Makefile
582 doc/man/it/mc.1 doc/man/it/Makefile
583 doc/man/pl/mc.1 doc/man/pl/Makefile
584 doc/man/ru/mc.1 doc/man/ru/Makefile
585 doc/man/sr/mc.1 doc/man/sr/Makefile
587 doc/hlp/Makefile
588 doc/hlp/es/Makefile
589 doc/hlp/hu/Makefile
590 doc/hlp/it/Makefile
591 doc/hlp/pl/Makefile
592 doc/hlp/ru/Makefile
593 doc/hlp/sr/Makefile
595 intl/Makefile
596 po/Makefile.in
599 if test x$enable_tests != xno; then
600     AC_CONFIG_FILES([
601 tests/Makefile
602 tests/lib/Makefile
603 tests/lib/mcconfig/Makefile
604 tests/lib/search/Makefile
605 tests/lib/vfs/Makefile
611 AC_OUTPUT
613 echo "
614 Configuration:
616   Source code location:       ${srcdir}
617   Compiler:                   ${CC}
618   Compiler flags:             ${CFLAGS}
619   File system:                ${vfs_type}
620                               ${vfs_flags}
621   Screen library:             ${screen_msg}
622   Mouse support:              ${mouse_lib}
623   X11 events support:         ${textmode_x11_support}
624   With subshell support:      ${subshell}
625   Internal editor:            ${edit_msg}
626   Diff viewer:                ${diff_msg}
627   Support for charset:        ${charset_msg}
628   Search type:                ${SEARCH_TYPE}