Updated Italian translation.
[midnight-commander.git] / configure.in
bloba2f7b6f8e8a79ae6cdedc775d88fce8bdd3d21fd
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.52)
7 AC_CONFIG_SRCDIR(src/main.c)
8 AC_CONFIG_AUX_DIR(config)
9 AM_INIT_AUTOMAKE(mc, 4.6.0a)
11 AM_CONFIG_HEADER(config.h)
12 AM_MAINTAINER_MODE
14 AC_CANONICAL_HOST
16 AC_AIX
17 AC_MINIX
18 AC_ISC_POSIX
20 AC_PROG_CC_STDC
22 dnl
23 dnl First try glib 2.x.  If it's not found, use glib 1.2.x.
24 dnl Keep this check close to the beginning, so that the users
25 dnl without any glib won't have their time wasted by other checks.
26 dnl
28 AC_ARG_WITH(glib12, 
29         [  --with-glib12            Force using glib 1.2.x [[no]]])
31 AC_ARG_WITH([glib_static],
32             [  --with-glib-static       Link glib statically [[no]]])
34 glib_found=no
35 if test "x$with_glib12" != "xyes"; then
36         PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib_found=yes], [:])
39 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
40 if test "x$glib_found" != "xyes" ; then
41         dnl This temporary variable is a workaround for a bug in Autoconf-2.53
42         glib_path=$PATH:/usr/local/bin
44         dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
45         AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
47         AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
48         AM_PATH_GLIB(1.2.6, , [AC_MSG_ERROR([Test for glib failed.
49 GNU Midnight Commander requires glib 1.2.6 or above.])])
50         dnl Save GLIB_CFLAGS and GLIB_LIBS, since the following call to
51         dnl AM_PATH_GLIB will overwrite them.
52         save_GLIB_CFLAGS="$GLIB_CFLAGS"
53         save_GLIB_LIBS="$GLIB_LIBS"
54         dnl Check for gmodule.  Store the flags necessary to compile and
55         dnl link programs using gmodule functionality in GMODULE_CFLAGS
56         dnl and GMODULE_LIBS.
57         AM_PATH_GLIB(1.2.6, [gmodule_found=yes], , [gmodule])
58         GMODULE_CFLAGS="$GLIB_CFLAGS"
59         GMODULE_LIBS="$GLIB_LIBS"
60         GLIB_CFLAGS="$save_GLIB_CFLAGS"
61         GLIB_LIBS="$save_GLIB_LIBS"
62         GLIB_LIBDIR="`$GLIB_CONFIG --exec-prefix`/lib"
63 else
64         PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
65         GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
68 if test "x$gmodule_found" = "xyes" ; then
69         dnl Check if the gmodule functionality supported on this system.
70         AC_G_MODULE_SUPPORTED
73 AC_HEADER_MAJOR
74 AC_C_CONST
75 AC_SYS_LARGEFILE
77 AC_PROG_LN_S
78 AC_CHECK_TOOL(AR, ar, ar)
80 dnl Only list browsers here that can be run in background (i.e. with `&')
81 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
83 dnl
84 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
85 dnl We use only part of the functionality of mmap, so on AIX,
86 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
87 dnl
88 AC_ARG_WITH(mmap, 
89         [  --with-mmap              Force using the mmap call (only useful on AIX)],
90         [case $withval in
91 yes)
92         ac_cv_func_mmap_fixed_mapped=yes
93         AC_MSG_NOTICE([forcing MMAP support])
94         ;;
95 no)
96         ac_cv_func_mmap_fixed_mapped=no
97         AC_MSG_NOTICE([disabling MMAP support])
98         ;;
99 esac])
100 AC_FUNC_MMAP
103 dnl Internationalization
105 MC_ASM_LABELS
106 AM_GNU_GETTEXT
107 AM_GNU_GETTEXT_VERSION(0.11.5)
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"
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 Hack to make extraconf.h visible even if compiling outside srcdir.
140 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
143 dnl Enforce coding standards
145 if test "x$GCC" = xyes; then
146     CFLAGS="$CFLAGS -Wall"
150 dnl OS specific flags.
152 case $host_os in
153 aux*)
154     # A/UX
155     LIBS="$LIBS -lposix"
156     AC_DEFINE(_POSIX_SOURCE)
157     ;;
158 esac
161 AC_PROG_INSTALL
162 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
163         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
164         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
166 AC_HEADER_TIME
167 AC_HEADER_SYS_WAIT
168 AC_HEADER_DIRENT
169 AC_HEADER_STDC
171 dnl Missing structure components
172 AC_STRUCT_ST_BLKSIZE
173 AC_STRUCT_ST_BLOCKS
174 AC_STRUCT_ST_RDEV
177 dnl Check availability of some functions 
178 dnl 
180 AC_CHECK_FUNCS([strerror statfs strftime getsid \
181                 memmove truncate initgroups putenv \
182                 memset memcpy tcsetattr tcgetattr cfgetospeed \
183                 sigaction sigemptyset sigprocmask sigaddset \
184                 sysconf setuid setreuid telldir seekdir])
187 dnl getpt is a GNU Extension (glibc 2.1.x)
189 AC_CHECK_FUNCS(getpt)
190 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
192 dnl replacing lstat with statlstat on sco makes it more portable between
193 dnl sco clones
194 AC_CHECK_FUNCS(statlstat)
197 dnl If running under AIX, AC_AIX does not tell us that
199 AC_MSG_CHECKING([for AIX defines])
200 AC_EGREP_CPP(yes,
201 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
203 #endif
204 ], [
205 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
206 AC_MSG_RESULT(yes)
207 ], [AC_MSG_RESULT(no)])
210 dnl This is from GNU fileutils, check aclocal.m4 for more information
212 AC_GET_FS_INFO
215 dnl Missing typedefs and replacements
216 dnl 
218 AC_TYPE_MODE_T
219 AC_CHECK_TYPE(umode_t, int)
220 AC_CHECK_TYPE(off_t, long)
221 AC_TYPE_PID_T
222 AC_TYPE_UID_T
223 AC_CHECK_TYPE(nlink_t, unsigned int)
225 dnl This is needed for regex.c only
226 AC_CHECK_TYPE(uintptr_t,
227               [AC_DEFINE(HAVE_UINTPTR_T, 1,
228                          [Define if you have the `uintptr_t' type.])
231 AC_FUNC_ALLOCA
232 AC_FUNC_STRCOLL
235 dnl X11 support.
236 dnl Used to read keyboard modifiers when running under X11.
239 AC_PATH_XTRA
240 if test "x$no_x" = xyes; then
241     textmode_x11_support="no"
242 else
243     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
244     if test "x$mc_cv_g_module_supported" = "xyes" ; then
245         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
246         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
247         dnl functionality is supported on the system.  This way, mc will be
248         dnl linked against the gmodule library only when it's really required.
249         GLIB_CFLAGS="$GMODULE_CFLAGS"
250         GLIB_LIBS="$GMODULE_LIBS"
251     else
252         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
253     fi
254     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
255               [Define to enable getting events from X Window System])
256     textmode_x11_support="yes"
260 dnl Try to find static libraries for glib and gmodule.
262 if test x$with_glib_static = xyes; then
263     new_GLIB_LIBS=
264     for i in $GLIB_LIBS; do
265         case x$i in
266         x-lglib*)
267             lib=glib ;;
268         x-lgmodule*)
269             lib=gmodule ;;
270         *)
271             lib=
272             add="$i" ;;
273         esac
275         if test -n "$lib"; then
276             lib1=`echo $i | sed 's/^-l//'`
277             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
278                 add="$GLIB_LIBDIR/lib${lib1}.a"
279             else
280                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
281                     add="$GLIB_LIBDIR/lib${lib}.a"
282                 else
283                     AC_MSG_ERROR([Cannot find static $lib])
284                 fi
285             fi
286         fi
287         new_GLIB_LIBS="$new_GLIB_LIBS $add"
288     done
289     GLIB_LIBS="$new_GLIB_LIBS"
294 dnl Network related functions
297 AC_CHECK_LIB(nsl, t_accept)
298 AC_CHECK_LIB(socket, socket)
300 have_socket=no
301 AC_CHECK_FUNCS(socket, have_socket=yes)
302 if test $have_socket = no; then
303   # socket is not in the default libraries.  See if it's in some other.
304   for lib in bsd socket inet; do
305     AC_CHECK_LIB($lib, socket, [
306         LIBS="$LIBS -l$lib"
307         have_socket=yes
308         AC_DEFINE(HAVE_SOCKET)
309         break])
310   done
313 have_gethostbyname=no
314 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
315 if test $have_gethostbyname = no; then
316   # gethostbyname is not in the default libraries.  See if it's in some other.
317   for lib in bsd socket inet; do
318     AC_CHECK_LIB([$lib], [gethostbyname],
319                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
320   done
323 AC_CHECK_FUNCS(socketpair)
326 dnl Sequent wants getprocessstats
328 AC_CHECK_LIB(seq, get_process_stats, [
329         LIBS="$LIBS -lseq"
330         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
331                   [Define if you have function `get_process_stats' and
332 have to use that instead of gettimeofday])])
334 MC_VFS_CHECKS
336 vfs_type="normal"
337 if test x$use_vfs = xyes; then
338         AC_MSG_NOTICE([enabling VFS code])
339         vfs_type="Midnight Commander Virtual File System"
343 dnl Check for gpm mouse support (Linux only)
345 mouse_lib="xterm only"
346 AC_ARG_WITH(gpm-mouse, 
347         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
348                            [[yes if found]]])
350 case $host_os in
351 linux*)
352     if test x$with_gpm_mouse != xno; then
353         AC_CHECK_LIB(gpm, Gpm_Repeat,
354             [AC_DEFINE(HAVE_LIBGPM, 1,
355                        [Define to enable gpm mouse support on Linux])
356             mouse_lib="gpm and xterm"
357             MCLIBS="$MCLIBS -lgpm"],
358             [AC_MSG_WARN([libgpm is missing or older than 0.18])
359         ])
360     fi
361     ;;
362 esac
365 dnl Check nroff and the options it supports
367 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
369 dnl Default values
370 MANDOC=-man
371 MAN_FLAGS=
373 if $HAVE_nroff; then
374     AC_MSG_CHECKING([for manual formatting macros])
375     AC_CACHE_VAL(ac_cv_mandoc, [
376     nroff -mandoc < /dev/null > /dev/null 2>&1
377     if test $? = 0; then
378         ac_cv_mandoc=-mandoc
379     else
380         ac_cv_mandoc=-man
381     fi
382     ])
383     MANDOC=$ac_cv_mandoc
384     AC_MSG_RESULT([$MANDOC])
386     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
387     AC_CACHE_VAL(ac_cv_man_nocolor, [
388     nroff -c < /dev/null > /dev/null 2>&1
389     if test $? = 0; then
390         ac_cv_man_nocolor=-c
391     else
392         ac_cv_man_nocolor=
393     fi
394     ])
395     MAN_FLAGS=$ac_cv_man_nocolor
396     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
398     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
399     AC_CACHE_VAL(ac_cv_nroff_tascii, [
400     ac_cv_nroff_tascii=
401     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
402     if test $? = 0; then
403         ac_cv_nroff_tascii=-Tlatin1
404     else
405         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
406         if test $? = 0; then
407             ac_cv_nroff_tascii=-Tascii
408         fi
409     fi
410     ])
411     AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
412     MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
415 AC_SUBST(MANDOC)
416 AC_SUBST(MAN_FLAGS)
420 dnl Check for - option to file
422 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
423 if $HAVE_FILECMD; then
424     AC_MSG_CHECKING([for - option to file command])
425     AC_CACHE_VAL(ac_cv_filestdin, [[
426     cat > conftest.c <<\EOF
427 /* A comment */
428 #if 0
429 #endif
430 void main(void)
431 { return; }
433     cat > conftest.sed <<\EOF
434 s/^[^:]*:[      ]*//
435 s/[     ]*$//
437     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
438     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
439     if test "x$filehyphen_1" = "x$filehyphen_2"; then
440         ac_cv_filestdin=yes
441     else
442         ac_cv_filestdin=no
443     fi
444     rm conftest.c conftest.sed
445     ]])
447     if test x$ac_cv_filestdin = xyes; then
448         AC_DEFINE(FILE_STDIN, 1,
449                   [Define if the file command accepts - for stdin])
450     fi
451     filestdin=$ac_cv_filestdin
452     AC_MSG_RESULT([$filestdin])
454     dnl
455     dnl Check for -L option to file
456     dnl
458 AC_MSG_CHECKING([for -L option to file command])
459 AC_CACHE_VAL(ac_cv_filel, [
460 file -L . > /dev/null 2>&1
461 if test $? = 0
462 then
463     ac_cv_filel=yes
464 else
465     ac_cv_filel=no
468 if test x$ac_cv_filel = xyes; then
469     AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
471 filel=$ac_cv_filel
472 AC_MSG_RESULT([$filel])
473 fi 
476 AC_MSG_CHECKING([for subshell support])
477 AC_ARG_WITH(subshell,
478         [  --with-subshell          Compile in concurrent subshell [[yes]]
479   --with-subshell=optional Don't run concurrent shell by default [[no]]],
480         [result=no
481         if test x$withval = xoptional
482         then
483                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
484                           [Define to make subshell support optional])
485                 result="optional"
486         fi
487         if test x$withval = xyes
488         then 
489                 result="yes"
490         fi],
491         [dnl Default: enable the subshell support
492         result="yes"
494 if test "x$result" != xno; then
495         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
496                   [Define to enable subshell support])
498 AC_MSG_RESULT([$result])
499 subshell="$result"
503 dnl Select the screen library.  mcslang is the included S-Lang library.
505 AC_ARG_WITH(screen,
506         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
507                            ncurses [[slang if found, else mcslang]]])
509 case x$with_screen in
510 xslang)
511         MC_WITH_SLANG(strict)
512         ;;
513 xmcslang)
514         MC_WITH_MCSLANG
515         ;;
516 xncurses)
517         MC_WITH_NCURSES
518         ;;
520         MC_WITH_SLANG
521         ;;
523         AC_MSG_ERROR([Value of the screen library is incorrect])
524         ;;
525 esac
529 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
530 dnl Report an error if this option is not applicable.
532 AC_ARG_WITH(termcap,
533         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
534         [if test x$with_screen != xmcslang; then
535                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
536         fi
541 dnl Internal editor support.
543 AC_ARG_WITH(edit,
544         [  --with-edit              Enable internal editor [[yes]]])
546 if test x$with_edit != xno; then
547         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
548         use_edit=yes
549         edit_msg="yes"
550         AC_MSG_NOTICE([using internal editor])
551 else
552         edit_msg="no"
556 if test $use_vfs = yes; then
557     AC_ARG_WITH(ext2undel,
558         [  --with-ext2undel         Compile with ext2 undelete code [[yes if found]]],
559         [if test x$withval != xno; then
560                 if test x$withval != xyes; then
561                         LDFLAGS="$LDFLAGS -L$withval/lib"
562                         CPPFLAGS="$CPPFLAGS -I$withval/include"
563                 fi
564                 AC_EXT2_UNDEL
565         fi],[
566         dnl Default: detect
567         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
568     ])
572 dnl Check if the OS is supported by the console saver.
573 cons_saver=""
574 case $host_os in
575 linux*)
576     cons_saver=yes
577 esac
581 dnl User visible support for charset conversion.
583 AC_ARG_ENABLE([charset],
584               [  --enable-charset         Support for charset selection and conversion [[no]]])
585 have_charset=
586 if test "x$enable_charset" = xyes; then
587   if test "x$am_cv_func_iconv" != xyes; then
588     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
589   else
590     AC_DEFINE(HAVE_CHARSET, 1,
591               [Define to enable charset selection and conversion])
592     have_charset=yes
593   fi
596 if test "$GLIBC21" != yes; then
597     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
600 AC_SUBST(CFLAGS)
601 AC_SUBST(CPPFLAGS)
602 AC_SUBST(LDFLAGS)
603 AC_SUBST(LIBS)
605 dnl Libraries used only when building the mc binary
606 AC_SUBST(MCLIBS)
608 dnl Version for the RedHat package, without dashes
609 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
610 AC_SUBST(RPM_VERSION)
612 if test -n "$use_smbfs"; then
613   AC_CONFIG_SUBDIRS([vfs/samba])
616 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
617 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
618 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
619 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
620 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
621 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
622 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
623 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
624 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
626 AH_BOTTOM([#include <extraconf.h>])
628 AC_CONFIG_FILES([
629 Makefile 
630 mc.spec
631 doc/Makefile 
632 vfs/Makefile
633 vfs/extfs/Makefile
634 lib/Makefile
635 src/Makefile
636 slang/Makefile 
637 edit/Makefile 
638 syntax/Makefile
639 pc/Makefile
640 m4/Makefile
642 lib/mc.ext
644 vfs/extfs/a
645 vfs/extfs/apt
646 vfs/extfs/audio
647 vfs/extfs/deb
648 vfs/extfs/deba
649 vfs/extfs/debd
650 vfs/extfs/dpkg
651 vfs/extfs/iso9660
652 vfs/extfs/hp48
653 vfs/extfs/lslR
654 vfs/extfs/mailfs
655 vfs/extfs/patchfs
656 vfs/extfs/rpms
657 vfs/extfs/uar
658 vfs/extfs/uarj
659 vfs/extfs/uha
660 vfs/extfs/ulha 
661 vfs/extfs/urar
662 vfs/extfs/uzip
663 vfs/extfs/uzoo
665 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
666 doc/es/mc.1 doc/es/Makefile
667 doc/hu/mc.1 doc/hu/Makefile
668 doc/it/mc.1 doc/it/Makefile
669 doc/pl/mc.1 doc/pl/Makefile
670 doc/ru/mc.1 doc/ru/Makefile
672 intl/Makefile
673 po/Makefile.in
676 AC_OUTPUT
678 echo "
679 Configuration:
681   Source code location:       ${srcdir}
682   Compiler:                   ${CC}
683   Compiler flags:             ${CFLAGS}
684   File system:                ${vfs_type}
685                               ${vfs_flags}
686   Screen library:             ${screen_msg}
687   Mouse support:              ${mouse_lib}
688   X11 events support:         ${textmode_x11_support}
689   With subshell support:      ${subshell}
690   Internal editor:            ${edit_msg}