* doc/es/mc.1.in: Cleanup. Fix key naming.
[midnight-commander.git] / configure.ac
blobe76caad0c63008cf6994c2f4217ec6b7d9c5b306
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.54)
7 m4_pattern_forbid(MC_)
8 AC_CONFIG_SRCDIR(src/main.c)
9 AC_CONFIG_AUX_DIR(config)
10 AM_INIT_AUTOMAKE(mc, 4.6.1a)
12 AM_CONFIG_HEADER(config.h)
13 AM_MAINTAINER_MODE
15 AC_CANONICAL_HOST
17 AC_GNU_SOURCE
18 AC_AIX
19 AC_MINIX
20 AC_ISC_POSIX
22 AC_PROG_CC_STDC
24 dnl
25 dnl First try glib 2.x.  If it's not found, use glib 1.2.x.
26 dnl Keep this check close to the beginning, so that the users
27 dnl without any glib won't have their time wasted by other checks.
28 dnl
30 AC_ARG_WITH(glib12, 
31         [  --with-glib12            Force using glib 1.2.x [[no]]])
33 AC_ARG_WITH([glib_static],
34             [  --with-glib-static       Link glib statically [[no]]])
36 glib_found=no
37 if test "x$with_glib12" != "xyes"; then
38         PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib_found=yes], [:])
41 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
42 if test "x$glib_found" != "xyes" ; then
43         dnl This temporary variable is a workaround for a bug in Autoconf-2.53
44         glib_path=$PATH:/usr/local/bin
46         dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
47         AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
49         AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
50         AM_PATH_GLIB(1.2.6, , [AC_MSG_ERROR([Test for glib failed.
51 GNU Midnight Commander requires glib 1.2.6 or above.])])
52         dnl Save GLIB_CFLAGS and GLIB_LIBS, since the following call to
53         dnl AM_PATH_GLIB will overwrite them.
54         save_GLIB_CFLAGS="$GLIB_CFLAGS"
55         save_GLIB_LIBS="$GLIB_LIBS"
56         dnl Check for gmodule.  Store the flags necessary to compile and
57         dnl link programs using gmodule functionality in GMODULE_CFLAGS
58         dnl and GMODULE_LIBS.
59         AM_PATH_GLIB(1.2.6, [gmodule_found=yes], , [gmodule])
60         GMODULE_CFLAGS="$GLIB_CFLAGS"
61         GMODULE_LIBS="$GLIB_LIBS"
62         GLIB_CFLAGS="$save_GLIB_CFLAGS"
63         GLIB_LIBS="$save_GLIB_LIBS"
64         GLIB_LIBDIR="`$GLIB_CONFIG --exec-prefix`/lib"
66         dnl Used in src/glibcompat.c
67         AC_CHECK_FUNCS([strlcpy])
68 else
69         PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
70         GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
73 if test "x$gmodule_found" = "xyes" ; then
74         dnl Check if the gmodule functionality supported on this system.
75         AC_G_MODULE_SUPPORTED
78 AC_HEADER_MAJOR
79 AC_C_CONST
80 AC_SYS_LARGEFILE
82 AC_PROG_LN_S
83 AC_CHECK_TOOL(AR, ar, ar)
85 dnl Only list browsers here that can be run in background (i.e. with `&')
86 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
88 dnl
89 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
90 dnl We use only part of the functionality of mmap, so on AIX,
91 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
92 dnl
93 AC_ARG_WITH(mmap,
94         [  --with-mmap              Use the mmap call [[yes if found]]])
95 if test x$with_mmap != xno; then
96     if test x$with_mmap = x; then
97         AC_FUNC_MMAP
98     else
99         AC_DEFINE(HAVE_MMAP, 1)
100     fi
104 dnl Internationalization
106 AM_GNU_GETTEXT(no-libtool, need-ngettext)
107 AM_GNU_GETTEXT_VERSION(0.14.3)
109 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
110     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
113 dnl Determine which help translations we want to install.
114 ALL_DOC_LINGUAS="es hu it pl ru sr"
116 DOC_LINGUAS=
117 if test "x$USE_NLS" = xyes; then
118     if test -z "$LINGUAS"; then
119         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
120     else
121         langs="$LINGUAS"
122     fi
123 else
124     langs=
127 for h_lang in $ALL_DOC_LINGUAS; do
128     for lang in $langs; do
129         if test "$lang" = "$h_lang"; then
130             DOC_LINGUAS="$DOC_LINGUAS $lang"
131             break
132         fi
133     done
134 done
135 AC_SUBST(DOC_LINGUAS)
138 dnl OS specific flags.
140 case $host_os in
141 aux*)
142     # A/UX
143     LIBS="$LIBS -lposix"
144     AC_DEFINE(_POSIX_SOURCE)
145     ;;
146 esac
148 dnl Extended Character Sets
150 AC_ARG_ENABLE([extcharset],
151         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
152 if test x"$enable_extcharset" = x"yes"; then
153   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
156 AC_PROG_INSTALL
157 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
158         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
159         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
160         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
161         sys/mkdev.h wchar.h wctype.h])
163 AC_HEADER_TIME
164 AC_HEADER_SYS_WAIT
165 AC_HEADER_DIRENT
166 AC_HEADER_STDC
168 dnl Missing structure components
169 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
170 AC_STRUCT_ST_BLOCKS
173 dnl Check availability of some functions 
174 dnl 
176 AC_CHECK_FUNCS([\
177         atoll \
178         cfgetospeed \
179         getegid geteuid getgid getsid getuid \
180         initgroups isascii \
181         memcpy memmove memset \
182         putenv \
183         setreuid setuid statfs strerror strftime sysconf \
184         tcgetattr tcsetattr truncate \
187 dnl S-Lang needs all four functions to be defined to use POSIX signal API
188 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
189 if test x$slang_signals != xno; then
190     AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
194 dnl getpt is a GNU Extension (glibc 2.1.x)
196 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
197 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
199 dnl replacing lstat with statlstat on sco makes it more portable between
200 dnl sco clones
201 AC_CHECK_FUNCS(statlstat)
204 dnl If running under AIX, AC_AIX does not tell us that
206 AC_MSG_CHECKING([for AIX defines])
207 AC_EGREP_CPP(yes,
208 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
210 #endif
211 ], [
212 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
213 AC_MSG_RESULT(yes)
214 ], [AC_MSG_RESULT(no)])
217 dnl This is from GNU fileutils, check aclocal.m4 for more information
219 AC_GET_FS_INFO
222 dnl Missing typedefs and replacements
223 dnl 
225 AC_TYPE_MODE_T
226 AC_CHECK_TYPE(off_t, long)
227 AC_TYPE_PID_T
228 AC_TYPE_UID_T
229 AC_CHECK_TYPE(nlink_t, unsigned int)
230 AC_CHECK_TYPES([socklen_t],,,
232 #include <sys/types.h>
233 #include <sys/socket.h>
236 dnl This is needed for regex.c only
237 AC_CHECK_TYPE(uintptr_t,
238               [AC_DEFINE(HAVE_UINTPTR_T, 1,
239                          [Define if you have the `uintptr_t' type.])
242 AC_FUNC_ALLOCA
243 AC_FUNC_STRCOLL
246 dnl X11 support.
247 dnl Used to read keyboard modifiers when running under X11.
250 AC_PATH_XTRA
251 if test "x$no_x" = xyes; then
252     textmode_x11_support="no"
253 else
254     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
255     if test "x$mc_cv_g_module_supported" = "xyes" ; then
256         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
257         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
258         dnl functionality is supported on the system.  This way, mc will be
259         dnl linked against the gmodule library only when it's really required.
260         GLIB_CFLAGS="$GMODULE_CFLAGS"
261         GLIB_LIBS="$GMODULE_LIBS"
262     else
263         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
264     fi
265     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
266               [Define to enable getting events from X Window System])
267     textmode_x11_support="yes"
271 dnl Try to find static libraries for glib and gmodule.
273 if test x$with_glib_static = xyes; then
274     new_GLIB_LIBS=
275     for i in $GLIB_LIBS; do
276         case x$i in
277         x-lglib*)
278             lib=glib ;;
279         x-lgmodule*)
280             lib=gmodule ;;
281         *)
282             lib=
283             add="$i" ;;
284         esac
286         if test -n "$lib"; then
287             lib1=`echo $i | sed 's/^-l//'`
288             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
289                 add="$GLIB_LIBDIR/lib${lib1}.a"
290             else
291                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
292                     add="$GLIB_LIBDIR/lib${lib}.a"
293                 else
294                     AC_MSG_ERROR([Cannot find static $lib])
295                 fi
296             fi
297         fi
298         new_GLIB_LIBS="$new_GLIB_LIBS $add"
299     done
300     GLIB_LIBS="$new_GLIB_LIBS"
305 dnl Network related functions
308 AC_SEARCH_LIBS([socket], [socket])
309 AC_SEARCH_LIBS([gethostbyname], [nsl])
312 dnl Sequent wants getprocessstats
314 AC_CHECK_LIB(seq, get_process_stats, [
315         LIBS="$LIBS -lseq"
316         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
317                   [Define if you have function `get_process_stats' and
318 have to use that instead of gettimeofday])])
320 MC_VFS_CHECKS
322 vfs_type="normal"
323 if test x$use_vfs = xyes; then
324         AC_MSG_NOTICE([enabling VFS code])
325         vfs_type="Midnight Commander Virtual File System"
329 dnl Check for gpm mouse support (Linux only)
331 mouse_lib="xterm only"
332 AC_ARG_WITH(gpm-mouse, 
333         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
334                            [[yes if found]]])
336 case $host_os in
337 linux*)
338     if test x$with_gpm_mouse != xno; then
339         AC_CHECK_LIB(gpm, Gpm_Repeat,
340             [AC_DEFINE(HAVE_LIBGPM, 1,
341                        [Define to enable gpm mouse support on Linux])
342             mouse_lib="gpm and xterm"
343             MCLIBS="$MCLIBS -lgpm"],
344             [AC_MSG_WARN([libgpm is missing or older than 0.18])
345         ])
346     fi
347     ;;
348 esac
351 dnl Check nroff and the options it supports
353 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
355 dnl Default values
356 MANDOC=-man
357 MAN_FLAGS=
359 if $HAVE_nroff; then
360     AC_MSG_CHECKING([for manual formatting macros])
361     AC_CACHE_VAL(mc_cv_mandoc, [
362     nroff -mandoc < /dev/null > /dev/null 2>&1
363     if test $? = 0; then
364         mc_cv_mandoc=-mandoc
365     else
366         mc_cv_mandoc=-man
367     fi
368     ])
369     MANDOC=$mc_cv_mandoc
370     AC_MSG_RESULT([$MANDOC])
372     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
373     AC_CACHE_VAL(mc_cv_man_nocolor, [
374     nroff -c < /dev/null > /dev/null 2>&1
375     if test $? = 0; then
376         mc_cv_man_nocolor=-c
377     else
378         mc_cv_man_nocolor=
379     fi
380     ])
381     MAN_FLAGS=$mc_cv_man_nocolor
382     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
384     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
385     AC_CACHE_VAL(mc_cv_nroff_tascii, [
386     mc_cv_nroff_tascii=
387     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
388     if test $? = 0; then
389         mc_cv_nroff_tascii=-Tlatin1
390     else
391         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
392         if test $? = 0; then
393             mc_cv_nroff_tascii=-Tascii
394         fi
395     fi
396     ])
397     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
398     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
401 AC_SUBST(MANDOC)
402 AC_SUBST(MAN_FLAGS)
406 dnl Check for -L option to file
408 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
409 if $HAVE_FILECMD; then
410     AC_MSG_CHECKING([for -L option to file command])
411     AC_CACHE_VAL(mc_cv_filel, [
412     file -L . > /dev/null 2>&1
413     if test $? = 0; then
414         mc_cv_filel=yes
415     else
416         mc_cv_filel=no
417     fi
418     ])
419     if test x$mc_cv_filel = xyes; then
420         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
421     fi
422     filel=$mc_cv_filel
423     AC_MSG_RESULT([$filel])
427 AC_MSG_CHECKING([for subshell support])
428 AC_ARG_WITH(subshell,
429         [  --with-subshell          Compile in concurrent subshell [[yes]]
430   --with-subshell=optional Don't run concurrent shell by default [[no]]],
431         [result=no
432         if test x$withval = xoptional
433         then
434                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
435                           [Define to make subshell support optional])
436                 result="optional"
437         fi
438         if test x$withval = xyes
439         then 
440                 result="yes"
441         fi],
442         [dnl Default: enable the subshell support
443         result="yes"
445 if test "x$result" != xno; then
446         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
447                   [Define to enable subshell support])
449 AC_MSG_RESULT([$result])
450 subshell="$result"
454 dnl Select the screen library.  mcslang is the included S-Lang library.
456 AC_ARG_WITH(screen,
457         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
458                            ncurses [[slang if found, else mcslang]]])
460 case x$with_screen in
461 xslang)
462         MC_WITH_SLANG(strict)
463         ;;
464 xmcslang)
465         MC_WITH_MCSLANG
466         ;;
467 xncurses)
468         MC_WITH_NCURSES
469         ;;
471         MC_WITH_SLANG
472         ;;
474         AC_MSG_ERROR([Value of the screen library is incorrect])
475         ;;
476 esac
480 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
481 dnl Report an error if this option is not applicable.
483 AC_ARG_WITH(termcap,
484         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
485         [if test x$with_screen != xmcslang; then
486                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
487         fi
492 dnl Internal editor support.
494 AC_ARG_WITH(edit,
495         [  --with-edit              Enable internal editor [[yes]]])
497 if test x$with_edit != xno; then
498         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
499         use_edit=yes
500         edit_msg="yes"
501         AC_MSG_NOTICE([using internal editor])
502 else
503         edit_msg="no"
507 dnl Check if the OS is supported by the console saver.
508 cons_saver=""
509 case $host_os in
510 linux*)
511     cons_saver=yes
512 esac
515 dnl Support for background operations
516 AC_ARG_ENABLE([background],
517               [  --enable-background      Support for background file operations [[yes]]])
518 if test "x$enable_background" != xno; then
519     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
524 dnl User visible support for charset conversion.
526 AC_ARG_ENABLE([charset],
527               [  --enable-charset         Support for charset selection and conversion [[no]]])
528 have_charset=
529 charset_msg="no"
530 if test "x$enable_charset" = xyes; then
531   if test "x$am_cv_func_iconv" != xyes; then
532     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])    
533   else
534     AC_DEFINE(HAVE_CHARSET, 1,
535               [Define to enable charset selection and conversion])
536     have_charset=yes
537     charset_msg="yes"
538   fi
541 if test "$GLIBC21" != yes; then
542     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
545 dnl If default CFLAGS is used with gcc, add -Wall
546 if test -z "$ac_env_CFLAGS_set"; then
547     if test -n "$GCC"; then
548         CFLAGS="$CFLAGS -Wall"
549     fi
552 AC_SUBST(CFLAGS)
553 AC_SUBST(CPPFLAGS)
554 AC_SUBST(LDFLAGS)
555 AC_SUBST(LIBS)
557 dnl Libraries used only when building the mc binary
558 AC_SUBST(MCLIBS)
560 dnl Version for the RedHat package, without dashes
561 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
562 AC_SUBST(RPM_VERSION)
564 if test -n "$use_smbfs"; then
565   AC_CONFIG_SUBDIRS([vfs/samba])
568 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
569 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
570 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
571 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
572 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
573 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
574 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
575 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
576 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
578 AC_CONFIG_FILES([
579 Makefile 
580 mc.spec
581 mc.qpg
582 pkginfo
583 prototype
584 doc/Makefile 
585 vfs/Makefile
586 vfs/extfs/Makefile
587 lib/Makefile
588 src/Makefile
589 slang/Makefile 
590 edit/Makefile 
591 syntax/Makefile
592 m4/Makefile
593 lib/mc.ext
594 vfs/extfs/a
595 vfs/extfs/apt
596 vfs/extfs/audio
597 vfs/extfs/deb
598 vfs/extfs/deba
599 vfs/extfs/debd
600 vfs/extfs/dpkg
601 vfs/extfs/iso9660
602 vfs/extfs/hp48
603 vfs/extfs/lslR
604 vfs/extfs/mailfs
605 vfs/extfs/patchfs
606 vfs/extfs/rpms
607 vfs/extfs/ualz
608 vfs/extfs/uar
609 vfs/extfs/uarj
610 vfs/extfs/uha
611 vfs/extfs/ulha 
612 vfs/extfs/urar
613 vfs/extfs/uzip
614 vfs/extfs/uzoo
616 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
617 doc/es/mc.1 doc/es/Makefile
618 doc/hu/mc.1 doc/hu/Makefile
619 doc/it/mc.1 doc/it/Makefile
620 doc/pl/mc.1 doc/pl/Makefile
621 doc/ru/mc.1 doc/ru/Makefile
622 doc/sr/mc.1 doc/sr/mcserv.8 doc/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}