Updated doc/NEWS file
[midnight-commander.git] / configure.ac
blob98061daefb978253e6dcb7bd53a3beafb1d70115
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])
33 AC_PATH_PROG([PYTHON], [python], [/usr/bin/python])
34 AC_PATH_PROG([RUBY], [ruby], [/usr/bin/ruby])
36 AC_ISC_POSIX
38 AC_PROG_CC_STDC
39 AM_PROG_CC_C_O
41 dnl Doxygen
43 DX_HTML_FEATURE(ON)
44 DX_CHM_FEATURE(OFF)
45 DX_CHI_FEATURE(OFF)
46 DX_MAN_FEATURE(OFF)
47 DX_RTF_FEATURE(OFF)
48 DX_XML_FEATURE(OFF)
49 DX_PDF_FEATURE(OFF)
50 DX_PS_FEATURE(OFF)
51 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
53 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
55 AC_CHECK_GLIB
57 AC_ARG_ENABLE([mclib],
58         [AS_HELP_STRING([--enable-mclib], [Compile shared library libmc.so @<:@no@:>@])],
59         [
60             if test "x$enableval" = "xno" ; then
61                 enable_mclib=no
62             else
63                 if test "x$enable_shared" = "xno" ; then
64                     AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
65                     enable_mclib=no
66                 else
67                     enable_mclib=yes
68                 fi
69             fi
70         ],
71         [enable_mclib=no])
73 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
75 AC_HEADER_MAJOR
76 AC_C_CONST
77 dnl Check this before type sizeof checks
78 AC_SYS_LARGEFILE
80 AC_PROG_LN_S
81 AC_CHECK_TOOL(AR, ar, ar)
83 dnl Only list browsers here that can be run in background (i.e. with `&')
84 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla firefox konqueror opera])
86 dnl
87 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
88 dnl We use only part of the functionality of mmap, so on AIX,
89 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
90 dnl
91 AC_ARG_WITH(mmap,
92         [  --with-mmap              Use the mmap call [[yes if found]]])
93 if test x$with_mmap != xno; then
94     if test x$with_mmap = x; then
95         AC_FUNC_MMAP
96     else
97         AC_DEFINE(HAVE_MMAP, 1)
98     fi
102 dnl Internationalization
104 AM_GNU_GETTEXT(no-libtool, need-ngettext)
105 AM_GNU_GETTEXT_VERSION(0.14.3)
107 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
108     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
111 dnl Determine which help translations we want to install.
112 ALL_DOC_LINGUAS="es hu it pl ru sr"
114 DOC_LINGUAS=
115 if test "x$USE_NLS" = xyes; then
116     if test -z "$LINGUAS"; then
117         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
118     else
119         langs="$LINGUAS"
120     fi
121 else
122     langs=
125 for h_lang in $ALL_DOC_LINGUAS; do
126     for lang in $langs; do
127         if test "$lang" = "$h_lang"; then
128             DOC_LINGUAS="$DOC_LINGUAS $lang"
129             break
130         fi
131     done
132 done
133 AC_SUBST(DOC_LINGUAS)
136 dnl OS specific flags.
138 case $host_os in
139 aux*)
140     # A/UX
141     LIBS="$LIBS -lposix"
142     AC_DEFINE(_POSIX_SOURCE)
143     ;;
144 esac
146 AC_PROG_INSTALL
147 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
148         utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
149         sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
150         sys/socket.h sys/sysmacros.h sys/types.h sys/mkdev.h])
152 AC_HEADER_TIME
153 AC_HEADER_DIRENT
154 AC_HEADER_ASSERT
156 dnl Missing structure components
157 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
158 AC_STRUCT_ST_BLOCKS
161 dnl Check availability of some functions
164 AC_CHECK_FUNCS([\
165         isascii \
166         statfs sysconf \
167         tcgetattr tcsetattr \
168         ftruncate \
169         strverscmp \
170         strncasecmp \
171         realpath
175 dnl getpt is a GNU Extension (glibc 2.1.x)
177 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
178 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
180 dnl replacing lstat with statlstat on sco makes it more portable between
181 dnl sco clones
182 AC_CHECK_FUNCS(statlstat)
185 dnl If running under AIX, AC_AIX does not tell us that
187 AC_MSG_CHECKING([for AIX defines])
188 AC_EGREP_CPP(yes,
189 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
191 #endif
192 ], [
193 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
194 AC_MSG_RESULT(yes)
195 ], [AC_MSG_RESULT(no)])
198 dnl Missing typedefs and replacements
201 AC_CHECK_SIZEOF(long)
202 AC_TYPE_UINTMAX_T
203 AC_CHECK_SIZEOF(uintmax_t)
204 AC_TYPE_OFF_T
205 AC_CHECK_SIZEOF(off_t)
206 AC_TYPE_MODE_T
207 AC_TYPE_PID_T
208 AC_TYPE_UID_T
210 AH_TEMPLATE([sig_atomic_t],
211             [/* Define to `int' if <signal.h> doesn't define.])
212 AH_TEMPLATE([SIG_ATOMIC_VOLATILE_T],
213             [Some systems declare sig_atomic_t as volatile, some others -- no.
214              This define will have value `sig_atomic_t' or
215              `volatile sig_atomic_t' accordingly.])
217 AC_MSG_CHECKING(for sig_atomic_t in signal.h)
218 AC_EGREP_HEADER(sig_atomic_t,signal.h,
219   [
220     ac_cv_type_sig_atomic_t=yes;
221     AC_EGREP_HEADER(volatile.*sig_atomic_t,
222                     signal.h,
223                     [
224                         is_sig_atomic_t_volatile=yes;
225                         AC_MSG_RESULT([yes, volatile])
226                     ],
227                     [
228                         is_sig_atomic_t_volatile=no;
229                         AC_MSG_RESULT([yes, non volatile])
230                     ])
231   ],
232   [
233     AC_MSG_RESULT(no)
234     AC_CHECK_TYPE(sig_atomic_t, int)
235     is_sig_atomic_t_volatile=no
236   ])
237 if test $is_sig_atomic_t_volatile = 'yes'
238 then
239     AC_DEFINE(SIG_ATOMIC_VOLATILE_T, sig_atomic_t)
240 else
241     AC_DEFINE(SIG_ATOMIC_VOLATILE_T, [volatile sig_atomic_t])
244 AC_FUNC_STRCOLL
246 mc_AC_GET_FS_INFO
249 dnl X11 support.
250 dnl Used to read keyboard modifiers when running under X11.
251 AC_PATH_XTRA
254 dnl Check if the gmodule functionality supported on this system.
255 AC_G_MODULE_SUPPORTED
258 dnl Sequent wants getprocessstats
260 AC_CHECK_LIB(seq, get_process_stats, [
261         LIBS="$LIBS -lseq"
262         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
263                   [Define if you have function `get_process_stats' and
264 have to use that instead of gettimeofday])])
266 AC_MC_VFS_CHECKS
269 dnl Check for gpm mouse support (Linux only)
271 mouse_lib="xterm only"
272 AC_ARG_WITH(gpm-mouse,
273         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
274                            [[yes if found]]])
276 case $host_os in
277 linux*)
278     if test x$with_gpm_mouse != xno; then
279         AC_CHECK_LIB(gpm, Gpm_Repeat,
280             [AC_DEFINE(HAVE_LIBGPM, 1,
281                        [Define to enable gpm mouse support on Linux])
282             mouse_lib="gpm and xterm"
283             MCLIBS="$MCLIBS -lgpm"],
284             if test "x$with_gpm_mouse" = "xyes"; then
285                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
286             else
287                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
288             fi
289         )
290     fi
291     ;;
292 esac
294 MC_CHECK_SEARCH_TYPE
297 dnl Check nroff and the options it supports
299 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
301 dnl Default values
302 MANDOC=-man
303 MAN_FLAGS=
305 if $HAVE_nroff; then
306     AC_MSG_CHECKING([for manual formatting macros])
307     AC_CACHE_VAL(mc_cv_mandoc, [
308     nroff -mandoc < /dev/null > /dev/null 2>&1
309     if test $? = 0; then
310         mc_cv_mandoc=-mandoc
311     else
312         mc_cv_mandoc=-man
313     fi
314     ])
315     MANDOC=$mc_cv_mandoc
316     AC_MSG_RESULT([$MANDOC])
318     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
319     AC_CACHE_VAL(mc_cv_man_nocolor, [
320     nroff -c < /dev/null > /dev/null 2>&1
321     if test $? = 0; then
322         mc_cv_man_nocolor=-c
323     else
324         mc_cv_man_nocolor=
325     fi
326     ])
327     MAN_FLAGS=$mc_cv_man_nocolor
328     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
330     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
331     AC_CACHE_VAL(mc_cv_nroff_tascii, [
332     mc_cv_nroff_tascii=
333     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
334     if test $? = 0; then
335         mc_cv_nroff_tascii=-Tlatin1
336     else
337         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
338         if test $? = 0; then
339             mc_cv_nroff_tascii=-Tascii
340         fi
341     fi
342     ])
343     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
344     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
347 AC_SUBST(MANDOC)
348 AC_SUBST(MAN_FLAGS)
352 dnl Check for -L option to file
354 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
355 if $HAVE_FILECMD; then
356     AC_MSG_CHECKING([for -L option to file command])
357     AC_CACHE_VAL(mc_cv_filel, [
358     file -L . > /dev/null 2>&1
359     if test $? = 0; then
360         mc_cv_filel=yes
361     else
362         mc_cv_filel=no
363     fi
364     ])
365     if test x$mc_cv_filel = xyes; then
366         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
367     fi
368     filel=$mc_cv_filel
369     AC_MSG_RESULT([$filel])
373 AC_MSG_CHECKING([for subshell support])
374 AC_ARG_WITH(subshell,
375         [  --with-subshell          Compile in concurrent subshell [[yes]]
376   --with-subshell=optional Don't run concurrent shell by default [[no]]],
377         [result=no
378         if test x$withval = xoptional
379         then
380                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
381                           [Define to make subshell support optional])
382                 result="optional"
383         fi
384         if test x$withval = xyes
385         then
386                 result="yes"
387         fi],
388         [dnl Default: enable the subshell support
389         result="yes"
391 if test "x$result" != xno; then
392         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
393                   [Define to enable subshell support])
395 AM_CONDITIONAL(HAVE_SUBSHELL_SUPPORT, [test "x$result" != xno])
396 AC_MSG_RESULT([$result])
397 subshell="$result"
400 MC_WITH_SCREEN
404 dnl Internal editor support.
406 AC_ARG_WITH(edit,
407         [  --with-edit              Enable internal editor [[yes]]])
409 if test x$with_edit != xno; then
410         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
411         use_edit=yes
412         edit_msg="yes"
413         AC_MSG_NOTICE([using internal editor])
414 else
415         edit_msg="no"
419 dnl Diff viewer support.
421 AC_ARG_WITH(diff_viewer,
422         [  --with-diff-viewer       Compile with diff viewer [[yes]]])
424 if test x$with_diff_viewer != xno; then
425         AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
426         use_diff=yes
427         diff_msg="yes"
428         AC_MSG_NOTICE([using diff viewer])
429 else
430         diff_msg="no"
434 dnl Check if the OS is supported by the console saver.
435 cons_saver=""
436 case $host_os in
437 linux*)
438     cons_saver=yes
439 esac
443 dnl Where config files should be placed
446 AC_ARG_WITH([homedir],
447     AS_HELP_STRING([--with-homedir], [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
448     [
449         if test "x$withval" = "xXDG"; then
450             with_homedir=XDG
451         else
452             with_homedir=$withval
453         fi
454     ],
455     [with_homedir=XDG])
458 if test x$with_homedir = xXDG; then
459     AC_DEFINE(MC_HOMEDIR_XDG, 1,
460         [Define to enable XDG standard support])
461 else
462     AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
466 MC_BACKGROUND
470 dnl User visible support for charset conversion.
472 AC_ARG_ENABLE([charset],
473               [  --enable-charset        Support for charset selection and conversion [[yes]]])
474 have_charset=
475 charset_msg="no"
476 if test "x$enable_charset" != "xno"; then
477     AC_DEFINE(HAVE_CHARSET, 1,
478               [Define to enable charset selection and conversion])
479     have_charset=yes
480     charset_msg="yes"
483 if test "$GLIBC21" != yes; then
484     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
487 MC_CHECK_CFLAGS
489 CFLAGS_OPTS=""
491 if test "x$CFLAGS" = "x"; then
492     CFLAGS_OPTS=" -O2 "
495 if test x$USE_MAINTAINER_MODE = xyes; then
496     CFLAGS_OPTS="-g3 -O -ggdb"
497     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
500 AC_ARG_ENABLE(
501     [werror],
502     AS_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors])
505 if test "x$enable_werror" = xyes; then
506     MC_CHECK_ONE_CFLAG([-Werror])
508 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
510 MC_UNIT_TESTS
512 AC_SUBST(CFLAGS)
513 AC_SUBST(CPPFLAGS)
514 AC_SUBST(LDFLAGS)
515 AC_SUBST(LIBS)
517 dnl Libraries used only when building the mc binary
518 AC_SUBST(MCLIBS)
520 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
521 AC_SUBST(MAN_DATE)
523 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
524 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
525 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
526 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
527 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
528 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
529 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
531 AC_CONFIG_FILES(
533 src/man2hlp/man2hlp
536 chmod +x src/man2hlp/man2hlp
539 AC_CONFIG_FILES([
540 Makefile
542 contrib/Makefile
543 contrib/dist/Makefile
544 contrib/dist/gentoo/Makefile
545 contrib/dist/redhat/Makefile
546 contrib/dist/redhat/mc.spec
547 contrib/dist/pkginfo
548 contrib/dist/prototype
550 misc/Makefile
551 misc/skins/Makefile
552 misc/macros.d/Makefile
553 misc/mc.ext
555 src/Makefile
556 src/consaver/Makefile
557 src/editor/Makefile
558 src/man2hlp/Makefile
559 src/viewer/Makefile
560 src/diffviewer/Makefile
561 src/filemanager/Makefile
563 src/vfs/Makefile
565 src/vfs/cpio/Makefile
567 src/vfs/extfs/Makefile
568 src/vfs/extfs/helpers/Makefile
569 src/vfs/extfs/helpers/a+
570 src/vfs/extfs/helpers/apt+
571 src/vfs/extfs/helpers/audio
572 src/vfs/extfs/helpers/deb
573 src/vfs/extfs/helpers/deba
574 src/vfs/extfs/helpers/debd
575 src/vfs/extfs/helpers/dpkg+
576 src/vfs/extfs/helpers/iso9660
577 src/vfs/extfs/helpers/hp48+
578 src/vfs/extfs/helpers/lslR
579 src/vfs/extfs/helpers/mailfs
580 src/vfs/extfs/helpers/patchfs
581 src/vfs/extfs/helpers/rpms+
582 src/vfs/extfs/helpers/s3+
583 src/vfs/extfs/helpers/uace
584 src/vfs/extfs/helpers/ualz
585 src/vfs/extfs/helpers/uar
586 src/vfs/extfs/helpers/uarc
587 src/vfs/extfs/helpers/uarj
588 src/vfs/extfs/helpers/uc1541
589 src/vfs/extfs/helpers/ucab
590 src/vfs/extfs/helpers/uha
591 src/vfs/extfs/helpers/ulha
592 src/vfs/extfs/helpers/urar
593 src/vfs/extfs/helpers/uzip
594 src/vfs/extfs/helpers/uzoo
596 src/vfs/fish/Makefile
597 src/vfs/fish/helpers/Makefile
599 src/vfs/ftpfs/Makefile
601 src/vfs/local/Makefile
603 src/vfs/sfs/Makefile
605 src/vfs/smbfs/Makefile
607 src/vfs/tar/Makefile
609 src/vfs/undelfs/Makefile
611 lib/Makefile
612 lib/event/Makefile
613 lib/filehighlight/Makefile
614 lib/mcconfig/Makefile
615 lib/search/Makefile
616 lib/skin/Makefile
617 lib/strutil/Makefile
618 lib/tty/Makefile
620 lib/vfs/Makefile
622 lib/widget/Makefile
624 misc/syntax/Makefile
625 misc/syntax/Syntax
627 doc/Makefile
628 doc/hints/Makefile
629 doc/man/Makefile
630 doc/man/es/Makefile
631 doc/man/hu/Makefile
632 doc/man/it/Makefile
633 doc/man/pl/Makefile
634 doc/man/ru/Makefile
635 doc/man/sr/Makefile
637 doc/hlp/Makefile
638 doc/hlp/es/Makefile
639 doc/hlp/hu/Makefile
640 doc/hlp/it/Makefile
641 doc/hlp/pl/Makefile
642 doc/hlp/ru/Makefile
643 doc/hlp/sr/Makefile
645 intl/Makefile
646 po/Makefile.in
649 if test x$enable_tests != xno; then
650     AC_CONFIG_FILES([
651 tests/Makefile
652 tests/lib/Makefile
653 tests/lib/mcconfig/Makefile
654 tests/lib/search/Makefile
655 tests/lib/vfs/Makefile
656 tests/src/Makefile
657 tests/src/filemanager/Makefile
662 AC_OUTPUT
664 AC_MSG_NOTICE([
666 Configuration:
668   Source code location:       ${srcdir}
669   Compiler:                   ${CC}
670   Compiler flags:             ${CFLAGS}
671   File system:                ${vfs_type}
672                               ${vfs_flags}
673   Screen library:             ${screen_msg}
674   Mouse support:              ${mouse_lib}
675   X11 events support:         ${textmode_x11_support}
676   With subshell support:      ${subshell}
677   With background operations: ${enable_background}
678   Internal editor:            ${edit_msg}
679   Diff viewer:                ${diff_msg}
680   Support for charset:        ${charset_msg}
681   Search type:                ${SEARCH_TYPE}