Merge branch '2134_am_silent_rules'
[kaloumi3.git] / configure.ac
blobc5e1dabaa3f453026fa6cb0d94e4f3d1184a981c
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 dnl Enable silent rules by default (if yes)
15 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
17 AM_CONFIG_HEADER(config.h)
18 AM_MAINTAINER_MODE
19 AC_CANONICAL_HOST
21 AC_USE_SYSTEM_EXTENSIONS
23 AC_PROG_LIBTOOL
25 AC_ISC_POSIX
27 AC_PROG_CC_STDC
28 AM_PROG_CC_C_O
30 dnl Doxygen
32 DX_HTML_FEATURE(ON)
33 DX_CHM_FEATURE(OFF)
34 DX_CHI_FEATURE(OFF)
35 DX_MAN_FEATURE(OFF)
36 DX_RTF_FEATURE(OFF)
37 DX_XML_FEATURE(OFF)
38 DX_PDF_FEATURE(OFF)
39 DX_PS_FEATURE(OFF)
40 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
42 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
44 dnl
45 dnl First try glib 2.x.
46 dnl Keep this check close to the beginning, so that the users
47 dnl without any glib won't have their time wasted by other checks.
48 dnl
50 AC_ARG_WITH([glib_static],
51             [  --with-glib-static       Link glib statically [[no]]])
53 glib_found=no
55 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.8], [glib_found=yes], [:])
56 if test x"$glib_found" = xno; then
57     AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.8)])
60 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
61 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
63 if test "x$gmodule_found" = "xyes" ; then
64         dnl Check if the gmodule functionality supported on this system.
65         AC_G_MODULE_SUPPORTED
68 AC_HEADER_MAJOR
69 AC_C_CONST
70 AC_SYS_LARGEFILE
72 AC_PROG_LN_S
73 AC_CHECK_TOOL(AR, ar, ar)
75 dnl Only list browsers here that can be run in background (i.e. with `&')
76 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
78 dnl
79 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
80 dnl We use only part of the functionality of mmap, so on AIX,
81 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
82 dnl
83 AC_ARG_WITH(mmap,
84         [  --with-mmap              Use the mmap call [[yes if found]]])
85 if test x$with_mmap != xno; then
86     if test x$with_mmap = x; then
87         AC_FUNC_MMAP
88     else
89         AC_DEFINE(HAVE_MMAP, 1)
90     fi
93 dnl
94 dnl Internationalization
95 dnl
96 AM_GNU_GETTEXT(no-libtool, need-ngettext)
97 AM_GNU_GETTEXT_VERSION(0.14.3)
99 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
100     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
103 dnl Determine which help translations we want to install.
104 ALL_DOC_LINGUAS="es hu it pl ru sr"
106 DOC_LINGUAS=
107 if test "x$USE_NLS" = xyes; then
108     if test -z "$LINGUAS"; then
109         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
110     else
111         langs="$LINGUAS"
112     fi
113 else
114     langs=
117 for h_lang in $ALL_DOC_LINGUAS; do
118     for lang in $langs; do
119         if test "$lang" = "$h_lang"; then
120             DOC_LINGUAS="$DOC_LINGUAS $lang"
121             break
122         fi
123     done
124 done
125 AC_SUBST(DOC_LINGUAS)
128 dnl OS specific flags.
130 case $host_os in
131 aux*)
132     # A/UX
133     LIBS="$LIBS -lposix"
134     AC_DEFINE(_POSIX_SOURCE)
135     ;;
136 esac
138 dnl Extended Character Sets
140 AC_ARG_ENABLE([extcharset],
141         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
142 if test x"$enable_extcharset" = x"yes"; then
143   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
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/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
150         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
151         sys/mkdev.h wchar.h wctype.h])
153 AC_HEADER_TIME
154 AC_HEADER_DIRENT
155 AC_HEADER_STDC
157 dnl Missing structure components
158 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
159 AC_STRUCT_ST_BLOCKS
162 dnl Check availability of some functions
165 AC_CHECK_FUNCS([\
166         atoll \
167         cfgetospeed \
168         initgroups isascii \
169         memcpy memset \
170         setreuid statfs sysconf \
171         tcgetattr tcsetattr truncate \
172         strverscmp
176 dnl getpt is a GNU Extension (glibc 2.1.x)
178 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
179 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
181 dnl replacing lstat with statlstat on sco makes it more portable between
182 dnl sco clones
183 AC_CHECK_FUNCS(statlstat)
186 dnl If running under AIX, AC_AIX does not tell us that
188 AC_MSG_CHECKING([for AIX defines])
189 AC_EGREP_CPP(yes,
190 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
192 #endif
193 ], [
194 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
195 AC_MSG_RESULT(yes)
196 ], [AC_MSG_RESULT(no)])
199 dnl This is from GNU fileutils, check aclocal.m4 for more information
201 AC_GET_FS_INFO
204 dnl Missing typedefs and replacements
207 AC_CHECK_SIZEOF(long)
208 AC_CHECK_SIZEOF(long long)
209 AC_TYPE_MODE_T
210 AC_TYPE_OFF_T
211 AC_CHECK_SIZEOF(off_t)
212 AC_TYPE_PID_T
213 AC_TYPE_UID_T
214 AC_CHECK_TYPE(nlink_t, unsigned int)
215 AC_CHECK_TYPES([socklen_t],,,
217 #include <sys/types.h>
218 #include <sys/socket.h>
221 dnl This is needed for regex.c only
222 AC_CHECK_TYPE(uintptr_t,
223               [AC_DEFINE(HAVE_UINTPTR_T, 1,
224                          [Define if you have the `uintptr_t' type.])
227 AC_FUNC_ALLOCA
228 AC_FUNC_STRCOLL
231 dnl X11 support.
232 dnl Used to read keyboard modifiers when running under X11.
235 AC_PATH_XTRA
236 if test "x$no_x" = xyes; then
237     textmode_x11_support="no"
238 else
239     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
240     if test "x$mc_cv_g_module_supported" = "xyes" ; then
241         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
242         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
243         dnl functionality is supported on the system.  This way, mc will be
244         dnl linked against the gmodule library only when it's really required.
245         GLIB_CFLAGS="$GMODULE_CFLAGS"
246         GLIB_LIBS="$GMODULE_LIBS"
247     else
248         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
249     fi
250     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
251               [Define to enable getting events from X Window System])
252     textmode_x11_support="yes"
256 dnl Try to find static libraries for glib and gmodule.
258 if test x$with_glib_static = xyes; then
259     new_GLIB_LIBS=
260     for i in $GLIB_LIBS; do
261         case x$i in
262         x-lglib*)
263             lib=glib ;;
264         x-lgmodule*)
265             lib=gmodule ;;
266         *)
267             lib=
268             add="$i" ;;
269         esac
271         if test -n "$lib"; then
272             lib1=`echo $i | sed 's/^-l//'`
273             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
274                 add="$GLIB_LIBDIR/lib${lib1}.a"
275             else
276                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
277                     add="$GLIB_LIBDIR/lib${lib}.a"
278                 else
279                     AC_MSG_ERROR([Cannot find static $lib])
280                 fi
281             fi
282         fi
283         new_GLIB_LIBS="$new_GLIB_LIBS $add"
284     done
285     GLIB_LIBS="$new_GLIB_LIBS"
290 dnl Network related functions
293 AC_SEARCH_LIBS([socket], [socket])
294 AC_SEARCH_LIBS([gethostbyname], [nsl])
297 dnl Sequent wants getprocessstats
299 AC_CHECK_LIB(seq, get_process_stats, [
300         LIBS="$LIBS -lseq"
301         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
302                   [Define if you have function `get_process_stats' and
303 have to use that instead of gettimeofday])])
305 AC_MC_VFS_CHECKS
307 vfs_type="normal"
308 if test x$enable_vfs = xyes; then
309         AC_MSG_NOTICE([enabling VFS code])
310         vfs_type="Midnight Commander Virtual File System"
314 dnl Check for gpm mouse support (Linux only)
316 mouse_lib="xterm only"
317 AC_ARG_WITH(gpm-mouse,
318         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
319                            [[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
339 MC_CHECK_SEARCH_TYPE
342 dnl Check nroff and the options it supports
344 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
346 dnl Default values
347 MANDOC=-man
348 MAN_FLAGS=
350 if $HAVE_nroff; then
351     AC_MSG_CHECKING([for manual formatting macros])
352     AC_CACHE_VAL(mc_cv_mandoc, [
353     nroff -mandoc < /dev/null > /dev/null 2>&1
354     if test $? = 0; then
355         mc_cv_mandoc=-mandoc
356     else
357         mc_cv_mandoc=-man
358     fi
359     ])
360     MANDOC=$mc_cv_mandoc
361     AC_MSG_RESULT([$MANDOC])
363     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
364     AC_CACHE_VAL(mc_cv_man_nocolor, [
365     nroff -c < /dev/null > /dev/null 2>&1
366     if test $? = 0; then
367         mc_cv_man_nocolor=-c
368     else
369         mc_cv_man_nocolor=
370     fi
371     ])
372     MAN_FLAGS=$mc_cv_man_nocolor
373     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
375     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
376     AC_CACHE_VAL(mc_cv_nroff_tascii, [
377     mc_cv_nroff_tascii=
378     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
379     if test $? = 0; then
380         mc_cv_nroff_tascii=-Tlatin1
381     else
382         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
383         if test $? = 0; then
384             mc_cv_nroff_tascii=-Tascii
385         fi
386     fi
387     ])
388     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
389     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
392 AC_SUBST(MANDOC)
393 AC_SUBST(MAN_FLAGS)
397 dnl Check for -L option to file
399 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
400 if $HAVE_FILECMD; then
401     AC_MSG_CHECKING([for -L option to file command])
402     AC_CACHE_VAL(mc_cv_filel, [
403     file -L . > /dev/null 2>&1
404     if test $? = 0; then
405         mc_cv_filel=yes
406     else
407         mc_cv_filel=no
408     fi
409     ])
410     if test x$mc_cv_filel = xyes; then
411         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
412     fi
413     filel=$mc_cv_filel
414     AC_MSG_RESULT([$filel])
418 AC_MSG_CHECKING([for subshell support])
419 AC_ARG_WITH(subshell,
420         [  --with-subshell          Compile in concurrent subshell [[yes]]
421   --with-subshell=optional Don't run concurrent shell by default [[no]]],
422         [result=no
423         if test x$withval = xoptional
424         then
425                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
426                           [Define to make subshell support optional])
427                 result="optional"
428         fi
429         if test x$withval = xyes
430         then
431                 result="yes"
432         fi],
433         [dnl Default: enable the subshell support
434         result="yes"
436 if test "x$result" != xno; then
437         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
438                   [Define to enable subshell support])
440 AC_MSG_RESULT([$result])
441 subshell="$result"
445 dnl Select the screen library.
447 AC_ARG_WITH(screen,
448         [  --with-screen=LIB        Compile with screen library: slang or
449                            ncurses [[slang if found]]])
451 case x$with_screen in
452 xslang)
453         MC_WITH_SLANG(strict)
454         ;;
455 xncurses)
456         MC_WITH_NCURSES
457         ;;
458 xncursesw)
459         MC_WITH_NCURSESW
460         ;;
462         MC_WITH_SLANG
463         ;;
465         AC_MSG_ERROR([Value of the screen library is incorrect])
466         ;;
467 esac
471 dnl Internal editor support.
473 AC_ARG_WITH(edit,
474         [  --with-edit              Enable internal editor [[yes]]])
476 if test x$with_edit != xno; then
477         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
478         use_edit=yes
479         edit_msg="yes"
480         AC_MSG_NOTICE([using internal editor])
481 else
482         edit_msg="no"
486 dnl Check if the OS is supported by the console saver.
487 cons_saver=""
488 case $host_os in
489 linux*)
490     cons_saver=yes
491 esac
494 dnl Support for background operations
495 AC_ARG_ENABLE([background],
496               [  --enable-background     Support for background file operations [[yes]]])
497 if test "x$enable_background" != xno; then
498     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
503 dnl User visible support for charset conversion.
505 AC_ARG_ENABLE([charset],
506               [  --enable-charset        Support for charset selection and conversion [[yes]]])
507 have_charset=
508 charset_msg="no"
509 if test "x$enable_charset" != "xno"; then
510     AC_DEFINE(HAVE_CHARSET, 1,
511               [Define to enable charset selection and conversion])
512     have_charset=yes
513     charset_msg="yes"
516 if test "$GLIBC21" != yes; then
517     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
520 MC_CHECK_CFLAGS
522 CFLAGS_OPTS=""
524 if test "x$CFLAGS" = "x"; then
525     CFLAGS_OPTS=" -O2 "
528 if test x$USE_MAINTAINER_MODE = xyes; then
529     CFLAGS_OPTS="-g3 -O -ggdb"
530     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
533 AC_ARG_ENABLE(
534     [werror],
535     AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
538 if test "x$enable_werror" = xyes; then
539     MC_CHECK_ONE_CFLAG([-Werror])
541 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
543 AC_SUBST(CFLAGS)
544 AC_SUBST(CPPFLAGS)
545 AC_SUBST(LDFLAGS)
546 AC_SUBST(LIBS)
548 dnl Libraries used only when building the mc binary
549 AC_SUBST(MCLIBS)
551 if test -n "$use_smbfs"; then
552   AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
555 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
556 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
557 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
558 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
559 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
560 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
561 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
562 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
564 AC_CONFIG_FILES([
565 Makefile
567 contrib/Makefile
568 contrib/dist/Makefile
569 contrib/dist/debian/Makefile
570 contrib/dist/gentoo/Makefile
571 contrib/dist/redhat/Makefile
572 contrib/dist/redhat/mc.spec
573 contrib/dist/mc.qpg
574 contrib/dist/pkginfo
575 contrib/dist/prototype
577 misc/Makefile
578 misc/skins/Makefile
579 misc/mc.ext
581 src/Makefile
582 src/consaver/Makefile
583 src/editor/Makefile
584 src/viewer/Makefile
586 lib/Makefile
587 lib/filehighlight/Makefile
588 lib/mcconfig/Makefile
589 lib/search/Makefile
590 lib/skin/Makefile
591 lib/strutil/Makefile
592 lib/tty/Makefile
593 lib/vfs/Makefile
594 lib/vfs/mc-vfs/Makefile
595 lib/vfs/mc-vfs/extfs/Makefile
596 lib/vfs/mc-vfs/extfs/a+
597 lib/vfs/mc-vfs/extfs/apt+
598 lib/vfs/mc-vfs/extfs/audio
599 lib/vfs/mc-vfs/extfs/deb
600 lib/vfs/mc-vfs/extfs/deba
601 lib/vfs/mc-vfs/extfs/debd
602 lib/vfs/mc-vfs/extfs/dpkg+
603 lib/vfs/mc-vfs/extfs/iso9660
604 lib/vfs/mc-vfs/extfs/hp48+
605 lib/vfs/mc-vfs/extfs/lslR
606 lib/vfs/mc-vfs/extfs/mailfs
607 lib/vfs/mc-vfs/extfs/patchfs
608 lib/vfs/mc-vfs/extfs/rpms+
609 lib/vfs/mc-vfs/extfs/s3+
610 lib/vfs/mc-vfs/extfs/uace
611 lib/vfs/mc-vfs/extfs/ualz
612 lib/vfs/mc-vfs/extfs/uar
613 lib/vfs/mc-vfs/extfs/uarc
614 lib/vfs/mc-vfs/extfs/uarj
615 lib/vfs/mc-vfs/extfs/uc1541
616 lib/vfs/mc-vfs/extfs/uha
617 lib/vfs/mc-vfs/extfs/ulha
618 lib/vfs/mc-vfs/extfs/urar
619 lib/vfs/mc-vfs/extfs/uzip
620 lib/vfs/mc-vfs/extfs/uzoo
622 misc/syntax/Makefile
624 doc/Makefile
625 doc/hints/Makefile
626 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
627 doc/man/es/mc.1 doc/man/es/Makefile
628 doc/man/hu/mc.1 doc/man/hu/Makefile
629 doc/man/it/mc.1 doc/man/it/Makefile
630 doc/man/pl/mc.1 doc/man/pl/Makefile
631 doc/man/ru/mc.1 doc/man/ru/Makefile
632 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
634 doc/hlp/Makefile
635 doc/hlp/es/Makefile
636 doc/hlp/hu/Makefile
637 doc/hlp/it/Makefile
638 doc/hlp/pl/Makefile
639 doc/hlp/ru/Makefile
640 doc/hlp/sr/Makefile
642 intl/Makefile
643 po/Makefile.in
646 AC_OUTPUT
648 if test x$enable_mcserver = x; then
649     enable_mcserver='no'
652 echo "
653 Configuration:
655   Source code location:       ${srcdir}
656   Compiler:                   ${CC}
657   Compiler flags:             ${CFLAGS}
658   File system:                ${vfs_type}
659                               ${vfs_flags}
660   Screen library:             ${screen_msg}
661   Mouse support:              ${mouse_lib}
662   X11 events support:         ${textmode_x11_support}
663   With subshell support:      ${subshell}
664   Internal editor:            ${edit_msg}
665   Support for charset:        ${charset_msg}
666   Search type:                ${SEARCH_TYPE}