Merge branch '2980_doc_hints'
[midnight-commander.git] / configure.ac
blob2c35d068b37ed0d4fc92070b694c9d60355fe3f0
1 dnl
2 dnl Configure.in file for the Midnight Commander
3 dnl
5 AC_PREREQ(2.60)
6 AC_INIT([GNU Midnight Commander], [], [mc-devel@gnome.org])
7 m4_pattern_forbid(MC_)
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)
12 MC_VERSION
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])])
17 AM_MAINTAINER_MODE
19 AC_CANONICAL_HOST
21 AC_USE_SYSTEM_EXTENSIONS
24 dnl ############################################################################
25 dnl Check for compiler
26 dnl ############################################################################
28 AC_PROG_CC_STDC
29 AM_PROG_CC_C_O
31 MC_CHECK_CFLAGS
33 CFLAGS_OPTS=""
34 if test "x$CFLAGS" = "x"; then
35     CFLAGS_OPTS=" -O2 "
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])
48 AC_PROG_LIBTOOL
51 dnl ############################################################################
52 dnl Check for programs
53 dnl ############################################################################
55 PKG_PROG_PKG_CONFIG
56 AC_PROG_INSTALL
57 AC_PROG_LN_S
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)
64 dnl Default values
65 MANDOC=-man
66 MAN_FLAGS=
67 if $HAVE_nroff; then
68     AC_MSG_CHECKING([for manual formatting macros])
69     AC_CACHE_VAL(mc_cv_mandoc, [
70     nroff -mandoc < /dev/null > /dev/null 2>&1
71     if test $? = 0; then
72         mc_cv_mandoc=-mandoc
73     else
74         mc_cv_mandoc=-man
75     fi
76     ])
77     MANDOC=$mc_cv_mandoc
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
83     if test $? = 0; then
84         mc_cv_man_nocolor=-c
85     else
86         mc_cv_man_nocolor=
87     fi
88     ])
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, [
94     mc_cv_nroff_tascii=
95     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
96     if test $? = 0; then
97         mc_cv_nroff_tascii=-Tlatin1
98     else
99         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
100         if test $? = 0; then
101             mc_cv_nroff_tascii=-Tascii
102         fi
103     fi
104     ])
105     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
106     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
109 AC_SUBST(MANDOC)
110 AC_SUBST(MAN_FLAGS)
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
118     if test $? = 0; then
119         mc_cv_filel=yes
120     else
121         mc_cv_filel=no
122     fi
123     ])
124     if test x$mc_cv_filel = xyes; then
125         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
126     fi
127     filel=$mc_cv_filel
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)
140 MC_UNIT_TESTS
143 dnl ############################################################################
144 dnl Check for main libraies
145 dnl ############################################################################
147 AC_CHECK_GLIB
148 AC_G_MODULE_SUPPORTED
149 MC_WITH_SCREEN
150 MC_CHECK_SEARCH_TYPE
151 dnl X11 support. Used to read keyboard modifiers when running under X11.
152 MC_WITH_X
155 dnl ############################################################################
156 dnl Check for header files
157 dnl ############################################################################
159 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
160         utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
161         sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
162         sys/socket.h sys/sysmacros.h sys/types.h sys/mkdev.h])
163 AC_HEADER_MAJOR
164 AC_HEADER_TIME
165 AC_HEADER_DIRENT
166 AC_HEADER_ASSERT
169 dnl ############################################################################
170 dnl Check for types
171 dnl ############################################################################
173 AC_C_CONST
174 dnl Check largefile before type sizeof checks
175 AC_SYS_LARGEFILE
177 AC_CHECK_SIZEOF(long)
178 AC_TYPE_UINTMAX_T
179 AC_CHECK_SIZEOF(uintmax_t)
180 AC_TYPE_OFF_T
181 AC_CHECK_SIZEOF(off_t)
182 AC_TYPE_MODE_T
183 AC_TYPE_PID_T
184 AC_TYPE_UID_T
186 AC_STRUCT_ST_BLOCKS
187 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
189 AH_TEMPLATE([sig_atomic_t],
190             [/* Define to `int' if <signal.h> doesn't define.])
191 AH_TEMPLATE([SIG_ATOMIC_VOLATILE_T],
192             [Some systems declare sig_atomic_t as volatile, some others -- no.
193              This define will have value `sig_atomic_t' or
194              `volatile sig_atomic_t' accordingly.])
196 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
197 AC_EGREP_HEADER(sig_atomic_t,signal.h,
198   [
199     ac_cv_type_sig_atomic_t=yes;
200     AC_EGREP_HEADER(volatile.*sig_atomic_t,
201                     signal.h,
202                     [
203                         is_sig_atomic_t_volatile=yes;
204                         AC_MSG_RESULT([yes, volatile])
205                     ],
206                     [
207                         is_sig_atomic_t_volatile=no;
208                         AC_MSG_RESULT([yes, non volatile])
209                     ])
210   ],
211   [
212     AC_MSG_RESULT(no)
213     AC_CHECK_TYPE(sig_atomic_t, int)
214     is_sig_atomic_t_volatile=no
215   ])
216 if test $is_sig_atomic_t_volatile = 'yes'
217 then
218     AC_DEFINE(SIG_ATOMIC_VOLATILE_T, sig_atomic_t)
219 else
220     AC_DEFINE(SIG_ATOMIC_VOLATILE_T, [volatile sig_atomic_t])
224 dnl ############################################################################
225 dnl Check for functions
226 dnl ############################################################################
228 AC_CHECK_FUNCS([\
229         isascii \
230         statfs sysconf \
231         tcgetattr tcsetattr \
232         ftruncate \
233         strverscmp \
234         strncasecmp \
235         realpath
237 AC_FUNC_STRCOLL
239 dnl getpt is a GNU Extension (glibc 2.1.x)
240 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
241 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
243 dnl replacing lstat with statlstat on sco makes it more portable between
244 dnl sco clones
245 AC_CHECK_FUNCS(statlstat)
247 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
248 dnl We use only part of the functionality of mmap, so on AIX,
249 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
250 AC_ARG_WITH([mmap],
251         AS_HELP_STRING([--with-mmap], [Use the mmap call @<:@yes if found@:>@]))
252 if test x$with_mmap != xno; then
253     if test x$with_mmap = x; then
254         AC_FUNC_MMAP
255     else
256         AC_DEFINE(HAVE_MMAP, 1)
257     fi
260 dnl Sequent wants getprocessstats
261 AC_CHECK_LIB(seq, get_process_stats, [
262         LIBS="$LIBS -lseq"
263         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
264                   [Define if you have function `get_process_stats' and
265 have to use that instead of gettimeofday])])
267 mc_AC_GET_FS_INFO
270 dnl ############################################################################
271 dnl Internationalization
272 dnl ############################################################################
274 AM_GNU_GETTEXT(no-libtool, need-ngettext)
275 AM_GNU_GETTEXT_VERSION(0.14.3)
277 MC_I18N
279 dnl ############################################################################
280 dnl OS specific flags
281 dnl ############################################################################
283 AC_ISC_POSIX
285 case $host_os in
286 aux*)
287     # A/UX
288     LIBS="$LIBS -lposix"
289     AC_DEFINE(_POSIX_SOURCE)
290     ;;
291 esac
293 dnl If running under AIX, AC_AIX does not tell us that
294 AC_MSG_CHECKING([for AIX defines])
295 AC_EGREP_CPP([yes],
296     [
297         #if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
298         yes
299         #endif
300     ],
301     [
302         AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
303         AC_MSG_RESULT(yes)
304     ],
305     [
306         AC_MSG_RESULT(no)
307     ])
309 dnl Check if the OS is supported by the console saver.
310 cons_saver=""
311 case $host_os in
312 linux*)
313     cons_saver=yes
314 esac
316 dnl Check for gpm mouse support (Linux only)
317 mouse_lib="xterm only"
318 AC_ARG_WITH([gpm-mouse],
319     AS_HELP_STRING([--with-gpm-mouse], [Compile with gpm mouse support (Linux only) @<:@yes if found@:>@]))
321 case $host_os in
322 linux*)
323     if test x$with_gpm_mouse != xno; then
324         AC_CHECK_LIB(gpm, Gpm_Repeat,
325             [AC_DEFINE(HAVE_LIBGPM, 1,
326                        [Define to enable gpm mouse support on Linux])
327             mouse_lib="gpm and xterm"
328             MCLIBS="$MCLIBS -lgpm"],
329             if test "x$with_gpm_mouse" = "xyes"; then
330                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
331             else
332                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
333             fi
334         )
335     fi
336     ;;
337 esac
340 dnl ############################################################################
341 dnl libmc
342 dnl ############################################################################
344 LIBMC_VERSION="0.0.1"
345 LIBMC_RELEASE="1"
346 AC_SUBST(LIBMC_VERSION)
347 AC_SUBST(LIBMC_RELEASE)
349 AC_ARG_ENABLE([mclib],
350         [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
351         [
352             if test "x$enableval" = "xno" ; then
353                 enable_mclib=no
354             else
355                 if test "x$enable_shared" = "xno" ; then
356                     AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
357                     enable_mclib=no
358                 else
359                     enable_mclib=yes
360                 fi
361             fi
362         ],
363         [enable_mclib=no])
365 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
368 dnl ############################################################################
369 dnl Where config files should be placed
370 dnl ############################################################################
372 AC_ARG_WITH([homedir],
373     AS_HELP_STRING([--with-homedir],
374                    [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
375     [
376         if test "x$withval" = "xXDG"; then
377             with_homedir=XDG
378         else
379             with_homedir=$withval
380         fi
381     ],
382     [with_homedir=XDG])
385 if test x$with_homedir = xXDG; then
386     AC_DEFINE(MC_HOMEDIR_XDG, 1,
387         [Define to enable XDG standard support])
388 else
389     AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
393 dnl ############################################################################
394 dnl MC options
395 dnl ############################################################################
397 MC_WITH_EDIT
399 dnl Diff viewer support.
400 AC_ARG_WITH([diff_viewer],
401     AS_HELP_STRING([--with-diff-viewer], [Compile with diff viewer @<:@yes@:>@]))
403 if test x$with_diff_viewer != xno; then
404         AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
405         use_diff=yes
406         diff_msg="yes"
407         AC_MSG_NOTICE([using diff viewer])
408 else
409         diff_msg="no"
412 MC_SUBSHELL
413 MC_BACKGROUND
414 AC_MC_VFS_CHECKS
416 dnl ############################################################################
417 dnl Directories
418 dnl ############################################################################
420 dnl ${prefix} and ${exec_prefix} are undefined here if --prefix is not used in command line
421 dnl Let define ${prefix} and ${exec_prefix}
422 test "x$prefix" = "xNONE" && prefix="$ac_default_prefix"
423 test "x$exec_prefix" = "xNONE" && exec_prefix="${prefix}"
425 if test x${libexecdir} = x'${exec_prefix}/libexec'; then
426     EXTHELPERSDIR=${prefix}/libexec/${PACKAGE}/ext.d
427 elif test x${libexecdir} = x'${exec_prefix}/lib'; then
428     EXTHELPERSDIR=${prefix}/lib/${PACKAGE}/ext.d
429 else
430     EXTHELPERSDIR=${libexecdir}/${PACKAGE}/ext.d
432 AC_SUBST(EXTHELPERSDIR)
435 dnl ############################################################################
436 dnl Documentation
437 dnl ############################################################################
439 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
440 AC_SUBST(MAN_DATE)
442 dnl Determine which help translations we want to install.
443 ALL_DOC_LINGUAS="es hu it pl ru sr"
445 DOC_LINGUAS=
446 if test "x$USE_NLS" = xyes; then
447     if test -z "$LINGUAS"; then
448         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
449     else
450         langs="$LINGUAS"
451     fi
452 else
453     langs=
456 for h_lang in $ALL_DOC_LINGUAS; do
457     for lang in $langs; do
458         if test "$lang" = "$h_lang"; then
459             DOC_LINGUAS="$DOC_LINGUAS $lang"
460             break
461         fi
462     done
463 done
464 AC_SUBST(DOC_LINGUAS)
466 DX_HTML_FEATURE(ON)
467 DX_CHM_FEATURE(OFF)
468 DX_CHI_FEATURE(OFF)
469 DX_MAN_FEATURE(OFF)
470 DX_RTF_FEATURE(OFF)
471 DX_XML_FEATURE(OFF)
472 DX_PDF_FEATURE(OFF)
473 DX_PS_FEATURE(OFF)
474 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
477 dnl ############################################################################
478 dnl Configure results
479 dnl ############################################################################
481 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
483 AC_SUBST(MCLIBS)
484 AC_SUBST(CFLAGS)
485 AC_SUBST(CPPFLAGS)
486 AC_SUBST(LDFLAGS)
487 AC_SUBST(LIBS)
489 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
490 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
491 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
492 AM_CONDITIONAL(USE_EDIT, [test x"$use_edit" = xyes ])
493 AM_CONDITIONAL(USE_ASPELL, [test x"$enable_aspell" = xyes ])
494 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
495 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
496 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
498 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
500 AC_CONFIG_FILES(
502 src/man2hlp/man2hlp
505 chmod +x src/man2hlp/man2hlp
508 AC_CONFIG_FILES([
509 Makefile
511 contrib/Makefile
512 contrib/dist/Makefile
513 contrib/dist/gentoo/Makefile
514 contrib/dist/redhat/Makefile
515 contrib/dist/redhat/mc.spec
516 contrib/dist/pkginfo
517 contrib/dist/prototype
519 misc/Makefile
520 misc/skins/Makefile
521 misc/ext.d/Makefile
522 misc/ext.d/doc.sh
523 misc/ext.d/misc.sh
524 misc/ext.d/text.sh
525 misc/ext.d/web.sh
526 misc/macros.d/Makefile
527 misc/mc.ext
529 src/Makefile
530 src/consaver/Makefile
531 src/editor/Makefile
532 src/man2hlp/Makefile
533 src/viewer/Makefile
534 src/diffviewer/Makefile
535 src/filemanager/Makefile
537 src/vfs/Makefile
539 src/vfs/cpio/Makefile
541 src/vfs/extfs/Makefile
542 src/vfs/extfs/helpers/Makefile
543 src/vfs/extfs/helpers/a+
544 src/vfs/extfs/helpers/apt+
545 src/vfs/extfs/helpers/audio
546 src/vfs/extfs/helpers/deb
547 src/vfs/extfs/helpers/deba
548 src/vfs/extfs/helpers/debd
549 src/vfs/extfs/helpers/dpkg+
550 src/vfs/extfs/helpers/iso9660
551 src/vfs/extfs/helpers/hp48+
552 src/vfs/extfs/helpers/lslR
553 src/vfs/extfs/helpers/mailfs
554 src/vfs/extfs/helpers/patchfs
555 src/vfs/extfs/helpers/rpms+
556 src/vfs/extfs/helpers/s3+
557 src/vfs/extfs/helpers/uace
558 src/vfs/extfs/helpers/ualz
559 src/vfs/extfs/helpers/uar
560 src/vfs/extfs/helpers/uarc
561 src/vfs/extfs/helpers/uarj
562 src/vfs/extfs/helpers/uc1541
563 src/vfs/extfs/helpers/ucab
564 src/vfs/extfs/helpers/uha
565 src/vfs/extfs/helpers/ulha
566 src/vfs/extfs/helpers/ulib
567 src/vfs/extfs/helpers/urar
568 src/vfs/extfs/helpers/uzip
569 src/vfs/extfs/helpers/uzoo
571 src/vfs/fish/Makefile
572 src/vfs/fish/helpers/Makefile
574 src/vfs/ftpfs/Makefile
576 src/vfs/sftpfs/Makefile
578 src/vfs/local/Makefile
580 src/vfs/sfs/Makefile
582 src/vfs/smbfs/Makefile
584 src/vfs/tar/Makefile
586 src/vfs/undelfs/Makefile
588 lib/Makefile
589 lib/event/Makefile
590 lib/filehighlight/Makefile
591 lib/mcconfig/Makefile
592 lib/search/Makefile
593 lib/skin/Makefile
594 lib/strutil/Makefile
595 lib/tty/Makefile
597 lib/vfs/Makefile
599 lib/widget/Makefile
601 misc/syntax/Makefile
602 misc/syntax/Syntax
604 doc/Makefile
606 doc/hints/Makefile
607 doc/hints/l10n/Makefile
609 doc/man/Makefile
610 doc/man/es/Makefile
611 doc/man/hu/Makefile
612 doc/man/it/Makefile
613 doc/man/pl/Makefile
614 doc/man/ru/Makefile
615 doc/man/sr/Makefile
617 doc/hlp/Makefile
618 doc/hlp/es/Makefile
619 doc/hlp/hu/Makefile
620 doc/hlp/it/Makefile
621 doc/hlp/pl/Makefile
622 doc/hlp/ru/Makefile
623 doc/hlp/sr/Makefile
625 intl/Makefile
626 po/Makefile.in
629 if test x$enable_tests != xno; then
630     AC_CONFIG_FILES([
631 tests/Makefile
632 tests/lib/Makefile
633 tests/lib/mcconfig/Makefile
634 tests/lib/search/Makefile
635 tests/lib/strutil/Makefile
636 tests/lib/vfs/Makefile
637 tests/lib/widget/Makefile
638 tests/src/Makefile
639 tests/src/filemanager/Makefile
640 tests/src/editor/Makefile
641 tests/src/editor/test-data.txt
645 AC_OUTPUT
647 AC_MSG_NOTICE([
649 Configuration:
651   Source code location:       ${srcdir}
652   Compiler:                   ${CC}
653   Compiler flags:             ${CFLAGS}
654   File system:                ${vfs_type}
655                               ${vfs_flags}
656   Screen library:             ${screen_msg}
657   Mouse support:              ${mouse_lib}
658   X11 events support:         ${textmode_x11_support}
659   With subshell support:      ${subshell}
660   With background operations: ${enable_background}
661   Internal editor:            ${edit_msg}
662   Diff viewer:                ${diff_msg}
663   Support for charset:        ${charset_msg}
664   Search type:                ${SEARCH_TYPE}