Merge branch '1617_history_fix'
[midnight-commander.git] / configure.ac
blob4f5f9e1d8253758faba36e99775d6feea25f9550
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], [:])
53 if test x"$glib_found" = xno; then
54     AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.6)])
57 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
58 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
60 if test "x$gmodule_found" = "xyes" ; then
61         dnl Check if the gmodule functionality supported on this system.
62         AC_G_MODULE_SUPPORTED
65 AC_HEADER_MAJOR
66 AC_C_CONST
67 AC_SYS_LARGEFILE
69 AC_PROG_LN_S
70 AC_CHECK_TOOL(AR, ar, ar)
72 dnl Only list browsers here that can be run in background (i.e. with `&')
73 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
75 dnl
76 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
77 dnl We use only part of the functionality of mmap, so on AIX,
78 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
79 dnl
80 AC_ARG_WITH(mmap,
81         [  --with-mmap              Use the mmap call [[yes if found]]])
82 if test x$with_mmap != xno; then
83     if test x$with_mmap = x; then
84         AC_FUNC_MMAP
85     else
86         AC_DEFINE(HAVE_MMAP, 1)
87     fi
90 dnl
91 dnl Internationalization
92 dnl
93 AM_GNU_GETTEXT(no-libtool, need-ngettext)
94 AM_GNU_GETTEXT_VERSION(0.14.3)
96 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
97     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
100 dnl Determine which help translations we want to install.
101 ALL_DOC_LINGUAS="es hu it pl ru sr"
103 DOC_LINGUAS=
104 if test "x$USE_NLS" = xyes; then
105     if test -z "$LINGUAS"; then
106         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
107     else
108         langs="$LINGUAS"
109     fi
110 else
111     langs=
114 for h_lang in $ALL_DOC_LINGUAS; do
115     for lang in $langs; do
116         if test "$lang" = "$h_lang"; then
117             DOC_LINGUAS="$DOC_LINGUAS $lang"
118             break
119         fi
120     done
121 done
122 AC_SUBST(DOC_LINGUAS)
125 dnl OS specific flags.
127 case $host_os in
128 aux*)
129     # A/UX
130     LIBS="$LIBS -lposix"
131     AC_DEFINE(_POSIX_SOURCE)
132     ;;
133 esac
135 dnl Extended Character Sets
137 AC_ARG_ENABLE([extcharset],
138         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
139 if test x"$enable_extcharset" = x"yes"; then
140   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
143 AC_PROG_INSTALL
144 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
145         stdlib.h termios.h utime.h fcntl.h pwd.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_SYS_WAIT
152 AC_HEADER_DIRENT
153 AC_HEADER_STDC
155 dnl Missing structure components
156 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
157 AC_STRUCT_ST_BLOCKS
160 dnl Check availability of some functions
163 AC_CHECK_FUNCS([\
164         atoll \
165         cfgetospeed \
166         getegid geteuid getgid getsid getuid \
167         initgroups isascii \
168         memcpy memset \
169         putenv \
170         setreuid setuid statfs strerror strftime sysconf \
171         tcgetattr tcsetattr truncate \
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 This is from GNU fileutils, check aclocal.m4 for more information
200 AC_GET_FS_INFO
203 dnl Missing typedefs and replacements
206 AC_CHECK_SIZEOF(long)
207 AC_CHECK_SIZEOF(long long)
208 AC_TYPE_MODE_T
209 AC_TYPE_OFF_T
210 AC_CHECK_SIZEOF(off_t)
211 AC_TYPE_PID_T
212 AC_TYPE_UID_T
213 AC_CHECK_TYPE(nlink_t, unsigned int)
214 AC_CHECK_TYPES([socklen_t],,,
216 #include <sys/types.h>
217 #include <sys/socket.h>
220 dnl This is needed for regex.c only
221 AC_CHECK_TYPE(uintptr_t,
222               [AC_DEFINE(HAVE_UINTPTR_T, 1,
223                          [Define if you have the `uintptr_t' type.])
226 AC_FUNC_ALLOCA
227 AC_FUNC_STRCOLL
230 dnl X11 support.
231 dnl Used to read keyboard modifiers when running under X11.
234 AC_PATH_XTRA
235 if test "x$no_x" = xyes; then
236     textmode_x11_support="no"
237 else
238     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
239     if test "x$mc_cv_g_module_supported" = "xyes" ; then
240         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
241         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
242         dnl functionality is supported on the system.  This way, mc will be
243         dnl linked against the gmodule library only when it's really required.
244         GLIB_CFLAGS="$GMODULE_CFLAGS"
245         GLIB_LIBS="$GMODULE_LIBS"
246     else
247         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
248     fi
249     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
250               [Define to enable getting events from X Window System])
251     textmode_x11_support="yes"
255 dnl Try to find static libraries for glib and gmodule.
257 if test x$with_glib_static = xyes; then
258     new_GLIB_LIBS=
259     for i in $GLIB_LIBS; do
260         case x$i in
261         x-lglib*)
262             lib=glib ;;
263         x-lgmodule*)
264             lib=gmodule ;;
265         *)
266             lib=
267             add="$i" ;;
268         esac
270         if test -n "$lib"; then
271             lib1=`echo $i | sed 's/^-l//'`
272             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
273                 add="$GLIB_LIBDIR/lib${lib1}.a"
274             else
275                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
276                     add="$GLIB_LIBDIR/lib${lib}.a"
277                 else
278                     AC_MSG_ERROR([Cannot find static $lib])
279                 fi
280             fi
281         fi
282         new_GLIB_LIBS="$new_GLIB_LIBS $add"
283     done
284     GLIB_LIBS="$new_GLIB_LIBS"
289 dnl Network related functions
292 AC_SEARCH_LIBS([socket], [socket])
293 AC_SEARCH_LIBS([gethostbyname], [nsl])
296 dnl Sequent wants getprocessstats
298 AC_CHECK_LIB(seq, get_process_stats, [
299         LIBS="$LIBS -lseq"
300         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
301                   [Define if you have function `get_process_stats' and
302 have to use that instead of gettimeofday])])
304 AC_MC_VFS_CHECKS
306 vfs_type="normal"
307 if test x$use_vfs = xyes; then
308         AC_MSG_NOTICE([enabling VFS code])
309         vfs_type="Midnight Commander Virtual File System"
313 dnl Check for gpm mouse support (Linux only)
315 mouse_lib="xterm only"
316 AC_ARG_WITH(gpm-mouse,
317         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
318                            [[yes if found]]])
320 case $host_os in
321 linux*)
322     if test x$with_gpm_mouse != xno; then
323         AC_CHECK_LIB(gpm, Gpm_Repeat,
324             [AC_DEFINE(HAVE_LIBGPM, 1,
325                        [Define to enable gpm mouse support on Linux])
326             mouse_lib="gpm and xterm"
327             MCLIBS="$MCLIBS -lgpm"],
328             if test "x$with_gpm_mouse" = "xyes"; then
329                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
330             else
331                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
332             fi
333         )
334     fi
335     ;;
336 esac
338 MC_CHECK_SEARCH_TYPE
341 dnl Check nroff and the options it supports
343 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
345 dnl Default values
346 MANDOC=-man
347 MAN_FLAGS=
349 if $HAVE_nroff; then
350     AC_MSG_CHECKING([for manual formatting macros])
351     AC_CACHE_VAL(mc_cv_mandoc, [
352     nroff -mandoc < /dev/null > /dev/null 2>&1
353     if test $? = 0; then
354         mc_cv_mandoc=-mandoc
355     else
356         mc_cv_mandoc=-man
357     fi
358     ])
359     MANDOC=$mc_cv_mandoc
360     AC_MSG_RESULT([$MANDOC])
362     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
363     AC_CACHE_VAL(mc_cv_man_nocolor, [
364     nroff -c < /dev/null > /dev/null 2>&1
365     if test $? = 0; then
366         mc_cv_man_nocolor=-c
367     else
368         mc_cv_man_nocolor=
369     fi
370     ])
371     MAN_FLAGS=$mc_cv_man_nocolor
372     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
374     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
375     AC_CACHE_VAL(mc_cv_nroff_tascii, [
376     mc_cv_nroff_tascii=
377     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
378     if test $? = 0; then
379         mc_cv_nroff_tascii=-Tlatin1
380     else
381         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
382         if test $? = 0; then
383             mc_cv_nroff_tascii=-Tascii
384         fi
385     fi
386     ])
387     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
388     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
391 AC_SUBST(MANDOC)
392 AC_SUBST(MAN_FLAGS)
396 dnl Check for -L option to file
398 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
399 if $HAVE_FILECMD; then
400     AC_MSG_CHECKING([for -L option to file command])
401     AC_CACHE_VAL(mc_cv_filel, [
402     file -L . > /dev/null 2>&1
403     if test $? = 0; then
404         mc_cv_filel=yes
405     else
406         mc_cv_filel=no
407     fi
408     ])
409     if test x$mc_cv_filel = xyes; then
410         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
411     fi
412     filel=$mc_cv_filel
413     AC_MSG_RESULT([$filel])
417 AC_MSG_CHECKING([for subshell support])
418 AC_ARG_WITH(subshell,
419         [  --with-subshell          Compile in concurrent subshell [[yes]]
420   --with-subshell=optional Don't run concurrent shell by default [[no]]],
421         [result=no
422         if test x$withval = xoptional
423         then
424                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
425                           [Define to make subshell support optional])
426                 result="optional"
427         fi
428         if test x$withval = xyes
429         then
430                 result="yes"
431         fi],
432         [dnl Default: enable the subshell support
433         result="yes"
435 if test "x$result" != xno; then
436         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
437                   [Define to enable subshell support])
439 AC_MSG_RESULT([$result])
440 subshell="$result"
444 dnl Select the screen library.
446 AC_ARG_WITH(screen,
447         [  --with-screen=LIB        Compile with screen library: slang or
448                            ncurses [[slang if found]]])
450 case x$with_screen in
451 xslang)
452         MC_WITH_SLANG(strict)
453         ;;
454 xncurses)
455         MC_WITH_NCURSES
456         ;;
457 xncursesw)
458         MC_WITH_NCURSESW
459         ;;
461         MC_WITH_SLANG
462         ;;
464         AC_MSG_ERROR([Value of the screen library is incorrect])
465         ;;
466 esac
470 dnl Internal editor support.
472 AC_ARG_WITH(edit,
473         [  --with-edit              Enable internal editor [[yes]]])
475 if test x$with_edit != xno; then
476         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
477         use_edit=yes
478         edit_msg="yes"
479         AC_MSG_NOTICE([using internal editor])
480 else
481         edit_msg="no"
485 dnl Check if the OS is supported by the console saver.
486 cons_saver=""
487 case $host_os in
488 linux*)
489     cons_saver=yes
490 esac
493 dnl Support for background operations
494 AC_ARG_ENABLE([background],
495               [  --enable-background     Support for background file operations [[yes]]])
496 if test "x$enable_background" != xno; then
497     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
502 dnl User visible support for charset conversion.
504 AC_ARG_ENABLE([charset],
505               [  --enable-charset        Support for charset selection and conversion [[yes]]])
506 have_charset=
507 charset_msg="no"
508 if test "x$enable_charset" != "xno"; then
509     AC_DEFINE(HAVE_CHARSET, 1,
510               [Define to enable charset selection and conversion])
511     have_charset=yes
512     charset_msg="yes"
515 if test "$GLIBC21" != yes; then
516     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
519 dnl If default CFLAGS is used with gcc, add -Wall
520 if test -z "$ac_env_CFLAGS_set"; then
521     if test -n "$GCC"; then
522         CFLAGS="$CFLAGS -Wall"
523     fi
526 AC_SUBST(CFLAGS)
527 AC_SUBST(CPPFLAGS)
528 AC_SUBST(LDFLAGS)
529 AC_SUBST(LIBS)
531 dnl Libraries used only when building the mc binary
532 AC_SUBST(MCLIBS)
534 dnl Version for the RedHat package, without dashes
535 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
536 AC_SUBST(RPM_VERSION)
538 if test -n "$use_smbfs"; then
539   AC_CONFIG_SUBDIRS([vfs/samba])
542 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
543 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
544 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
545 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
546 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
547 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
548 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
549 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
551 AC_CONFIG_FILES([
552 Makefile
554 contrib/Makefile
555 contrib/dist/Makefile
556 contrib/dist/debian/Makefile
557 contrib/dist/gentoo/Makefile
558 contrib/dist/redhat/Makefile
559 contrib/dist/redhat/mc.spec
560 contrib/dist/mc.qpg
561 contrib/dist/pkginfo
562 contrib/dist/prototype
564 misc/Makefile
565 misc/skins/Makefile
566 misc/mc.ext
568 src/Makefile
569 src/filehighlight/Makefile
570 src/mcconfig/Makefile
571 src/search/Makefile
572 src/skin/Makefile
573 src/tty/Makefile
574 src/viewer/Makefile
576 edit/Makefile
577 syntax/Makefile
579 vfs/Makefile
580 vfs/extfs/Makefile
581 vfs/extfs/a
582 vfs/extfs/apt
583 vfs/extfs/audio
584 vfs/extfs/deb
585 vfs/extfs/deba
586 vfs/extfs/debd
587 vfs/extfs/dpkg
588 vfs/extfs/iso9660
589 vfs/extfs/hp48
590 vfs/extfs/lslR
591 vfs/extfs/mailfs
592 vfs/extfs/patchfs
593 vfs/extfs/rpms
594 vfs/extfs/uace
595 vfs/extfs/ualz
596 vfs/extfs/uar
597 vfs/extfs/uarc
598 vfs/extfs/uarj
599 vfs/extfs/uc1541
600 vfs/extfs/uha
601 vfs/extfs/ulha
602 vfs/extfs/urar
603 vfs/extfs/uzip
604 vfs/extfs/uzoo
606 doc/Makefile
607 doc/hints/Makefile
608 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
609 doc/man/es/mc.1 doc/man/es/Makefile
610 doc/man/hu/mc.1 doc/man/hu/Makefile
611 doc/man/it/mc.1 doc/man/it/Makefile
612 doc/man/pl/mc.1 doc/man/pl/Makefile
613 doc/man/ru/mc.1 doc/man/ru/Makefile
614 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
616 doc/hlp/Makefile
617 doc/hlp/es/Makefile
618 doc/hlp/hu/Makefile
619 doc/hlp/it/Makefile
620 doc/hlp/pl/Makefile
621 doc/hlp/ru/Makefile
622 doc/hlp/sr/Makefile
624 intl/Makefile
625 po/Makefile.in
628 AC_OUTPUT
630 echo "
631 Configuration:
633   Source code location:       ${srcdir}
634   Compiler:                   ${CC}
635   Compiler flags:             ${CFLAGS}
636   File system:                ${vfs_type}
637                               ${vfs_flags}
638   Screen library:             ${screen_msg}
639   Mouse support:              ${mouse_lib}
640   X11 events support:         ${textmode_x11_support}
641   With subshell support:      ${subshell}
642   Internal editor:            ${edit_msg}
643   Support for charset:        ${charset_msg}
644   Search type:                ${SEARCH_TYPE}