Merge branch '1533_german_date_broken'
[midnight-commander.git] / configure.ac
blob49f8d5d0e2b33ac28efbe245fbc924b9a749a1dc
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 AM_CONFIG_HEADER(config.h)
15 AM_MAINTAINER_MODE
17 AC_CANONICAL_HOST
19 AC_USE_SYSTEM_EXTENSIONS
21 AC_PROG_LIBTOOL
23 AC_ISC_POSIX
25 AC_PROG_CC_STDC
27 dnl Doxygen
29 DX_HTML_FEATURE(ON)
30 DX_CHM_FEATURE(OFF)
31 DX_CHI_FEATURE(OFF)
32 DX_MAN_FEATURE(OFF)
33 DX_RTF_FEATURE(OFF)
34 DX_XML_FEATURE(OFF)
35 DX_PDF_FEATURE(OFF)
36 DX_PS_FEATURE(OFF)
37 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
39 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
41 dnl
42 dnl First try glib 2.x.
43 dnl Keep this check close to the beginning, so that the users
44 dnl without any glib won't have their time wasted by other checks.
45 dnl
47 AC_ARG_WITH([glib_static],
48             [  --with-glib-static       Link glib statically [[no]]])
50 glib_found=no
52 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6], [glib_found=yes], [:])
54 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
55 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
57 if test "x$gmodule_found" = "xyes" ; then
58         dnl Check if the gmodule functionality supported on this system.
59         AC_G_MODULE_SUPPORTED
62 AC_HEADER_MAJOR
63 AC_C_CONST
64 AC_SYS_LARGEFILE
66 AC_PROG_LN_S
67 AC_CHECK_TOOL(AR, ar, ar)
69 dnl Only list browsers here that can be run in background (i.e. with `&')
70 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
72 dnl
73 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
74 dnl We use only part of the functionality of mmap, so on AIX,
75 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
76 dnl
77 AC_ARG_WITH(mmap,
78         [  --with-mmap              Use the mmap call [[yes if found]]])
79 if test x$with_mmap != xno; then
80     if test x$with_mmap = x; then
81         AC_FUNC_MMAP
82     else
83         AC_DEFINE(HAVE_MMAP, 1)
84     fi
87 dnl
88 dnl Internationalization
89 dnl
90 AM_GNU_GETTEXT(no-libtool, need-ngettext)
91 AM_GNU_GETTEXT_VERSION(0.14.3)
93 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
94     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
97 dnl Determine which help translations we want to install.
98 ALL_DOC_LINGUAS="es hu it pl ru sr"
100 DOC_LINGUAS=
101 if test "x$USE_NLS" = xyes; then
102     if test -z "$LINGUAS"; then
103         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
104     else
105         langs="$LINGUAS"
106     fi
107 else
108     langs=
111 for h_lang in $ALL_DOC_LINGUAS; do
112     for lang in $langs; do
113         if test "$lang" = "$h_lang"; then
114             DOC_LINGUAS="$DOC_LINGUAS $lang"
115             break
116         fi
117     done
118 done
119 AC_SUBST(DOC_LINGUAS)
122 dnl OS specific flags.
124 case $host_os in
125 aux*)
126     # A/UX
127     LIBS="$LIBS -lposix"
128     AC_DEFINE(_POSIX_SOURCE)
129     ;;
130 esac
132 dnl Extended Character Sets
134 AC_ARG_ENABLE([extcharset],
135         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
136 if test x"$enable_extcharset" = x"yes"; then
137   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
140 AC_PROG_INSTALL
141 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
142         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/vfs.h sys/time.h \
143         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
144         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
145         sys/mkdev.h wchar.h wctype.h])
147 AC_HEADER_TIME
148 AC_HEADER_SYS_WAIT
149 AC_HEADER_DIRENT
150 AC_HEADER_STDC
152 dnl Missing structure components
153 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
154 AC_STRUCT_ST_BLOCKS
157 dnl Check availability of some functions
160 AC_CHECK_FUNCS([\
161         atoll \
162         cfgetospeed \
163         getegid geteuid getgid getsid getuid \
164         initgroups isascii \
165         memcpy memset \
166         putenv \
167         setreuid setuid statfs strerror strftime sysconf \
168         tcgetattr tcsetattr truncate \
172 dnl getpt is a GNU Extension (glibc 2.1.x)
174 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
175 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
177 dnl replacing lstat with statlstat on sco makes it more portable between
178 dnl sco clones
179 AC_CHECK_FUNCS(statlstat)
182 dnl If running under AIX, AC_AIX does not tell us that
184 AC_MSG_CHECKING([for AIX defines])
185 AC_EGREP_CPP(yes,
186 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
188 #endif
189 ], [
190 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
191 AC_MSG_RESULT(yes)
192 ], [AC_MSG_RESULT(no)])
195 dnl This is from GNU fileutils, check aclocal.m4 for more information
197 AC_GET_FS_INFO
200 dnl Missing typedefs and replacements
203 AC_CHECK_SIZEOF(long)
204 AC_CHECK_SIZEOF(long long)
205 AC_TYPE_MODE_T
206 AC_TYPE_OFF_T
207 AC_CHECK_SIZEOF(off_t)
208 AC_TYPE_PID_T
209 AC_TYPE_UID_T
210 AC_CHECK_TYPE(nlink_t, unsigned int)
211 AC_CHECK_TYPES([socklen_t],,,
213 #include <sys/types.h>
214 #include <sys/socket.h>
217 dnl This is needed for regex.c only
218 AC_CHECK_TYPE(uintptr_t,
219               [AC_DEFINE(HAVE_UINTPTR_T, 1,
220                          [Define if you have the `uintptr_t' type.])
223 AC_FUNC_ALLOCA
224 AC_FUNC_STRCOLL
227 dnl X11 support.
228 dnl Used to read keyboard modifiers when running under X11.
231 AC_PATH_XTRA
232 if test "x$no_x" = xyes; then
233     textmode_x11_support="no"
234 else
235     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
236     if test "x$mc_cv_g_module_supported" = "xyes" ; then
237         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
238         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
239         dnl functionality is supported on the system.  This way, mc will be
240         dnl linked against the gmodule library only when it's really required.
241         GLIB_CFLAGS="$GMODULE_CFLAGS"
242         GLIB_LIBS="$GMODULE_LIBS"
243     else
244         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
245     fi
246     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
247               [Define to enable getting events from X Window System])
248     textmode_x11_support="yes"
252 dnl Try to find static libraries for glib and gmodule.
254 if test x$with_glib_static = xyes; then
255     new_GLIB_LIBS=
256     for i in $GLIB_LIBS; do
257         case x$i in
258         x-lglib*)
259             lib=glib ;;
260         x-lgmodule*)
261             lib=gmodule ;;
262         *)
263             lib=
264             add="$i" ;;
265         esac
267         if test -n "$lib"; then
268             lib1=`echo $i | sed 's/^-l//'`
269             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
270                 add="$GLIB_LIBDIR/lib${lib1}.a"
271             else
272                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
273                     add="$GLIB_LIBDIR/lib${lib}.a"
274                 else
275                     AC_MSG_ERROR([Cannot find static $lib])
276                 fi
277             fi
278         fi
279         new_GLIB_LIBS="$new_GLIB_LIBS $add"
280     done
281     GLIB_LIBS="$new_GLIB_LIBS"
286 dnl Network related functions
289 AC_SEARCH_LIBS([socket], [socket])
290 AC_SEARCH_LIBS([gethostbyname], [nsl])
293 dnl Sequent wants getprocessstats
295 AC_CHECK_LIB(seq, get_process_stats, [
296         LIBS="$LIBS -lseq"
297         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
298                   [Define if you have function `get_process_stats' and
299 have to use that instead of gettimeofday])])
301 AC_MC_VFS_CHECKS
303 vfs_type="normal"
304 if test x$use_vfs = xyes; then
305         AC_MSG_NOTICE([enabling VFS code])
306         vfs_type="Midnight Commander Virtual File System"
310 dnl Check for gpm mouse support (Linux only)
312 mouse_lib="xterm only"
313 AC_ARG_WITH(gpm-mouse,
314         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
315                            [[yes if found]]])
317 case $host_os in
318 linux*)
319     if test x$with_gpm_mouse != xno; then
320         AC_CHECK_LIB(gpm, Gpm_Repeat,
321             [AC_DEFINE(HAVE_LIBGPM, 1,
322                        [Define to enable gpm mouse support on Linux])
323             mouse_lib="gpm and xterm"
324             MCLIBS="$MCLIBS -lgpm"],
325             [AC_MSG_WARN([libgpm is missing or older than 0.18])
326         ])
327     fi
328     ;;
329 esac
331 MC_CHECK_SEARCH_TYPE
334 dnl Check nroff and the options it supports
336 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
338 dnl Default values
339 MANDOC=-man
340 MAN_FLAGS=
342 if $HAVE_nroff; then
343     AC_MSG_CHECKING([for manual formatting macros])
344     AC_CACHE_VAL(mc_cv_mandoc, [
345     nroff -mandoc < /dev/null > /dev/null 2>&1
346     if test $? = 0; then
347         mc_cv_mandoc=-mandoc
348     else
349         mc_cv_mandoc=-man
350     fi
351     ])
352     MANDOC=$mc_cv_mandoc
353     AC_MSG_RESULT([$MANDOC])
355     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
356     AC_CACHE_VAL(mc_cv_man_nocolor, [
357     nroff -c < /dev/null > /dev/null 2>&1
358     if test $? = 0; then
359         mc_cv_man_nocolor=-c
360     else
361         mc_cv_man_nocolor=
362     fi
363     ])
364     MAN_FLAGS=$mc_cv_man_nocolor
365     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
367     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
368     AC_CACHE_VAL(mc_cv_nroff_tascii, [
369     mc_cv_nroff_tascii=
370     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
371     if test $? = 0; then
372         mc_cv_nroff_tascii=-Tlatin1
373     else
374         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
375         if test $? = 0; then
376             mc_cv_nroff_tascii=-Tascii
377         fi
378     fi
379     ])
380     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
381     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
384 AC_SUBST(MANDOC)
385 AC_SUBST(MAN_FLAGS)
389 dnl Check for -L option to file
391 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
392 if $HAVE_FILECMD; then
393     AC_MSG_CHECKING([for -L option to file command])
394     AC_CACHE_VAL(mc_cv_filel, [
395     file -L . > /dev/null 2>&1
396     if test $? = 0; then
397         mc_cv_filel=yes
398     else
399         mc_cv_filel=no
400     fi
401     ])
402     if test x$mc_cv_filel = xyes; then
403         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
404     fi
405     filel=$mc_cv_filel
406     AC_MSG_RESULT([$filel])
410 AC_MSG_CHECKING([for subshell support])
411 AC_ARG_WITH(subshell,
412         [  --with-subshell          Compile in concurrent subshell [[yes]]
413   --with-subshell=optional Don't run concurrent shell by default [[no]]],
414         [result=no
415         if test x$withval = xoptional
416         then
417                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
418                           [Define to make subshell support optional])
419                 result="optional"
420         fi
421         if test x$withval = xyes
422         then
423                 result="yes"
424         fi],
425         [dnl Default: enable the subshell support
426         result="yes"
428 if test "x$result" != xno; then
429         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
430                   [Define to enable subshell support])
432 AC_MSG_RESULT([$result])
433 subshell="$result"
437 dnl Select the screen library.
439 AC_ARG_WITH(screen,
440         [  --with-screen=LIB        Compile with screen library: slang or
441                            ncurses [[slang if found]]])
443 case x$with_screen in
444 xslang)
445         MC_WITH_SLANG(strict)
446         ;;
447 xncurses)
448         MC_WITH_NCURSES
449         ;;
450 xncursesw)
451         MC_WITH_NCURSESW
452         ;;
454         MC_WITH_SLANG
455         ;;
457         AC_MSG_ERROR([Value of the screen library is incorrect])
458         ;;
459 esac
463 dnl Internal editor support.
465 AC_ARG_WITH(edit,
466         [  --with-edit              Enable internal editor [[yes]]])
468 if test x$with_edit != xno; then
469         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
470         use_edit=yes
471         edit_msg="yes"
472         AC_MSG_NOTICE([using internal editor])
473 else
474         edit_msg="no"
478 dnl Check if the OS is supported by the console saver.
479 cons_saver=""
480 case $host_os in
481 linux*)
482     cons_saver=yes
483 esac
486 dnl Support for background operations
487 AC_ARG_ENABLE([background],
488               [  --enable-background     Support for background file operations [[yes]]])
489 if test "x$enable_background" != xno; then
490     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
495 dnl User visible support for charset conversion.
497 AC_ARG_ENABLE([charset],
498               [  --enable-charset        Support for charset selection and conversion [[no]]])
499 have_charset=
500 charset_msg="no"
501 if test "x$enable_charset" = xyes; then
502     AC_DEFINE(HAVE_CHARSET, 1,
503               [Define to enable charset selection and conversion])
504     have_charset=yes
505     charset_msg="yes"
508 if test "$GLIBC21" != yes; then
509     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
512 dnl If default CFLAGS is used with gcc, add -Wall
513 if test -z "$ac_env_CFLAGS_set"; then
514     if test -n "$GCC"; then
515         CFLAGS="$CFLAGS -Wall"
516     fi
519 AC_SUBST(CFLAGS)
520 AC_SUBST(CPPFLAGS)
521 AC_SUBST(LDFLAGS)
522 AC_SUBST(LIBS)
524 dnl Libraries used only when building the mc binary
525 AC_SUBST(MCLIBS)
527 dnl Version for the RedHat package, without dashes
528 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
529 AC_SUBST(RPM_VERSION)
531 if test -n "$use_smbfs"; then
532   AC_CONFIG_SUBDIRS([vfs/samba])
535 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
536 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
537 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
538 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
539 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$enable_vfs_undelfs"])
540 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
541 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
542 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
543 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
545 AC_CONFIG_FILES([
546 Makefile
548 contrib/Makefile
549 contrib/dist/Makefile
550 contrib/dist/debian/Makefile
551 contrib/dist/gentoo/Makefile
552 contrib/dist/redhat/Makefile
553 contrib/dist/redhat/mc.spec
554 contrib/dist/mc.qpg
555 contrib/dist/pkginfo
556 contrib/dist/prototype
558 misc/Makefile
559 misc/mc.ext
561 src/Makefile
562 src/mcconfig/Makefile
563 src/search/Makefile
564 src/tty/Makefile
566 edit/Makefile
567 syntax/Makefile
569 vfs/Makefile
570 vfs/extfs/Makefile
571 vfs/extfs/a
572 vfs/extfs/apt
573 vfs/extfs/audio
574 vfs/extfs/deb
575 vfs/extfs/deba
576 vfs/extfs/debd
577 vfs/extfs/dpkg
578 vfs/extfs/iso9660
579 vfs/extfs/hp48
580 vfs/extfs/lslR
581 vfs/extfs/mailfs
582 vfs/extfs/patchfs
583 vfs/extfs/rpms
584 vfs/extfs/uace
585 vfs/extfs/ualz
586 vfs/extfs/uar
587 vfs/extfs/uarc
588 vfs/extfs/uarj
589 vfs/extfs/uc1541
590 vfs/extfs/uha
591 vfs/extfs/ulha
592 vfs/extfs/urar
593 vfs/extfs/uzip
594 vfs/extfs/uzoo
596 doc/Makefile
597 doc/hints/Makefile
598 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
599 doc/man/es/mc.1 doc/man/es/Makefile
600 doc/man/hu/mc.1 doc/man/hu/Makefile
601 doc/man/it/mc.1 doc/man/it/Makefile
602 doc/man/pl/mc.1 doc/man/pl/Makefile
603 doc/man/ru/mc.1 doc/man/ru/Makefile
604 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
606 doc/hlp/Makefile
607 doc/hlp/es/Makefile
608 doc/hlp/hu/Makefile
609 doc/hlp/it/Makefile
610 doc/hlp/pl/Makefile
611 doc/hlp/ru/Makefile
612 doc/hlp/sr/Makefile
614 intl/Makefile
615 po/Makefile.in
618 AC_OUTPUT
620 echo "
621 Configuration:
623   Source code location:       ${srcdir}
624   Compiler:                   ${CC}
625   Compiler flags:             ${CFLAGS}
626   File system:                ${vfs_type}
627                               ${vfs_flags}
628   Screen library:             ${screen_msg}
629   Mouse support:              ${mouse_lib}
630   X11 events support:         ${textmode_x11_support}
631   With subshell support:      ${subshell}
632   Internal editor:            ${edit_msg}
633   Support for charset:        ${charset_msg}
634   Search type:                ${SEARCH_TYPE}