In the last italian guide update I forgot this file...ooops!
[midnight-commander.git] / configure.in
blobf2c11b4d3a661466382f6c00e63991711193e3f0
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 sco*)
159     AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
160     AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
161     ;;
162 esac
165 AC_PROG_INSTALL
166 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
167         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
168         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
170 AC_HEADER_TIME
171 AC_HEADER_SYS_WAIT
172 AC_HEADER_DIRENT
173 AC_HEADER_STDC
175 dnl Missing structure components
176 AC_STRUCT_ST_BLKSIZE
177 AC_STRUCT_ST_BLOCKS
178 AC_STRUCT_ST_RDEV
181 dnl Check availability of some functions 
182 dnl 
184 AC_CHECK_FUNCS([strerror statfs strftime getsid \
185                 memmove truncate initgroups putenv \
186                 memset memcpy tcsetattr tcgetattr cfgetospeed \
187                 sigaction sigemptyset sigprocmask sigaddset \
188                 sysconf setuid setreuid telldir seekdir])
191 dnl getpt is a GNU Extension (glibc 2.1.x)
193 AC_CHECK_FUNCS(getpt)
194 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
196 dnl replacing lstat with statlstat on sco makes it more portable between
197 dnl sco clones
198 AC_CHECK_FUNCS(statlstat)
201 dnl If running under AIX, AC_AIX does not tell us that
203 AC_MSG_CHECKING([for AIX defines])
204 AC_EGREP_CPP(yes,
205 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
207 #endif
208 ], [
209 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
210 AC_MSG_RESULT(yes)
211 ], [AC_MSG_RESULT(no)])
214 dnl This is from GNU fileutils, check aclocal.m4 for more information
216 AC_GET_FS_INFO
219 dnl Missing typedefs and replacements
220 dnl 
222 AC_TYPE_MODE_T
223 AC_CHECK_TYPE(umode_t, int)
224 AC_CHECK_TYPE(off_t, long)
225 AC_TYPE_PID_T
226 AC_TYPE_UID_T
227 AC_CHECK_TYPE(nlink_t, unsigned int)
229 dnl This is needed for regex.c only
230 AC_CHECK_TYPE(uintptr_t,
231               [AC_DEFINE(HAVE_UINTPTR_T, 1,
232                          [Define if you have the `uintptr_t' type.])
235 AC_FUNC_ALLOCA
236 AC_FUNC_STRCOLL
239 dnl X11 support.
240 dnl Used to read keyboard modifiers when running under X11.
243 AC_PATH_XTRA
244 if test "x$no_x" = xyes; then
245     textmode_x11_support="no"
246 else
247     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
248     if test "x$mc_cv_g_module_supported" = "xyes" ; then
249         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
250         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
251         dnl functionality is supported on the system.  This way, mc will be
252         dnl linked against the gmodule library only when it's really required.
253         GLIB_CFLAGS="$GMODULE_CFLAGS"
254         GLIB_LIBS="$GMODULE_LIBS"
255     else
256         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
257     fi
258     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
259               [Define to enable getting events from X Window System])
260     textmode_x11_support="yes"
264 dnl Try to find static libraries for glib and gmodule.
266 if test x$with_glib_static = xyes; then
267     new_GLIB_LIBS=
268     for i in $GLIB_LIBS; do
269         case x$i in
270         x-lglib*)
271             lib=glib ;;
272         x-lgmodule*)
273             lib=gmodule ;;
274         *)
275             lib=
276             add="$i" ;;
277         esac
279         if test -n "$lib"; then
280             lib1=`echo $i | sed 's/^-l//'`
281             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
282                 add="$GLIB_LIBDIR/lib${lib1}.a"
283             else
284                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
285                     add="$GLIB_LIBDIR/lib${lib}.a"
286                 else
287                     AC_MSG_ERROR([Cannot find static $lib])
288                 fi
289             fi
290         fi
291         new_GLIB_LIBS="$new_GLIB_LIBS $add"
292     done
293     GLIB_LIBS="$new_GLIB_LIBS"
298 dnl Network related functions
301 AC_CHECK_LIB(nsl, t_accept)
302 AC_CHECK_LIB(socket, socket)
304 have_socket=no
305 AC_CHECK_FUNCS(socket, have_socket=yes)
306 if test $have_socket = no; then
307   # socket is not in the default libraries.  See if it's in some other.
308   for lib in bsd socket inet; do
309     AC_CHECK_LIB($lib, socket, [
310         LIBS="$LIBS -l$lib"
311         have_socket=yes
312         AC_DEFINE(HAVE_SOCKET)
313         break])
314   done
317 have_gethostbyname=no
318 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
319 if test $have_gethostbyname = no; then
320   # gethostbyname is not in the default libraries.  See if it's in some other.
321   for lib in bsd socket inet; do
322     AC_CHECK_LIB([$lib], [gethostbyname],
323                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
324   done
327 AC_CHECK_FUNCS(socketpair)
330 dnl Sequent wants getprocessstats
332 AC_CHECK_LIB(seq, get_process_stats, [
333         LIBS="$LIBS -lseq"
334         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
335                   [Define if you have function `get_process_stats' and
336 have to use that instead of gettimeofday])])
338 MC_VFS_CHECKS
340 vfs_type="normal"
341 if test x$use_vfs = xyes; then
342         AC_MSG_NOTICE([enabling VFS code])
343         vfs_type="Midnight Commander Virtual File System"
347 dnl Check for gpm mouse support (Linux only)
349 mouse_lib="xterm only"
350 AC_ARG_WITH(gpm-mouse, 
351         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
352                            [[yes if found]]])
354 case $host_os in
355 linux*)
356     if test x$with_gpm_mouse != xno; then
357         AC_CHECK_LIB(gpm, Gpm_Repeat,
358             [AC_DEFINE(HAVE_LIBGPM, 1,
359                        [Define to enable gpm mouse support on Linux])
360             mouse_lib="gpm and xterm"
361             MCLIBS="$MCLIBS -lgpm"],
362             [AC_MSG_WARN([libgpm is missing or older than 0.18])
363         ])
364     fi
365     ;;
366 esac
369 dnl Check nroff and the options it supports
371 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
373 dnl Default values
374 MANDOC=-man
375 MAN_FLAGS=
377 if $HAVE_nroff; then
378     AC_MSG_CHECKING([for manual formatting macros])
379     AC_CACHE_VAL(ac_cv_mandoc, [
380     nroff -mandoc < /dev/null > /dev/null 2>&1
381     if test $? = 0; then
382         ac_cv_mandoc=-mandoc
383     else
384         ac_cv_mandoc=-man
385     fi
386     ])
387     MANDOC=$ac_cv_mandoc
388     AC_MSG_RESULT([$MANDOC])
390     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
391     AC_CACHE_VAL(ac_cv_man_nocolor, [
392     nroff -c < /dev/null > /dev/null 2>&1
393     if test $? = 0; then
394         ac_cv_man_nocolor=-c
395     else
396         ac_cv_man_nocolor=
397     fi
398     ])
399     MAN_FLAGS=$ac_cv_man_nocolor
400     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
402     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
403     AC_CACHE_VAL(ac_cv_nroff_tascii, [
404     ac_cv_nroff_tascii=
405     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
406     if test $? = 0; then
407         ac_cv_nroff_tascii=-Tlatin1
408     else
409         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
410         if test $? = 0; then
411             ac_cv_nroff_tascii=-Tascii
412         fi
413     fi
414     ])
415     AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
416     MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
419 AC_SUBST(MANDOC)
420 AC_SUBST(MAN_FLAGS)
424 dnl Check for - option to file
426 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
427 if $HAVE_FILECMD; then
428     AC_MSG_CHECKING([for - option to file command])
429     AC_CACHE_VAL(ac_cv_filestdin, [[
430     cat > conftest.c <<\EOF
431 /* A comment */
432 #if 0
433 #endif
434 void main(void)
435 { return; }
437     cat > conftest.sed <<\EOF
438 s/^[^:]*:[      ]*//
439 s/[     ]*$//
441     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
442     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
443     if test "x$filehyphen_1" = "x$filehyphen_2"; then
444         ac_cv_filestdin=yes
445     else
446         ac_cv_filestdin=no
447     fi
448     rm conftest.c conftest.sed
449     ]])
451     if test x$ac_cv_filestdin = xyes; then
452         AC_DEFINE(FILE_STDIN, 1,
453                   [Define if the file command accepts - for stdin])
454     fi
455     filestdin=$ac_cv_filestdin
456     AC_MSG_RESULT([$filestdin])
458     dnl
459     dnl Check for -L option to file
460     dnl
462 AC_MSG_CHECKING([for -L option to file command])
463 AC_CACHE_VAL(ac_cv_filel, [
464 file -L . > /dev/null 2>&1
465 if test $? = 0
466 then
467     ac_cv_filel=yes
468 else
469     ac_cv_filel=no
472 if test x$ac_cv_filel = xyes; then
473     AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
475 filel=$ac_cv_filel
476 AC_MSG_RESULT([$filel])
477 fi 
480 AC_MSG_CHECKING([for subshell support])
481 AC_ARG_WITH(subshell,
482         [  --with-subshell          Compile in concurrent subshell [[yes]]
483   --with-subshell=optional Don't run concurrent shell by default [[no]]],
484         [result=no
485         if test x$withval = xoptional
486         then
487                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
488                           [Define to make subshell support optional])
489                 result="optional"
490         fi
491         if test x$withval = xyes
492         then 
493                 result="yes"
494         fi],
495         [dnl Default: enable the subshell support
496         result="yes"
498 if test "x$result" != xno; then
499         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
500                   [Define to enable subshell support])
502 AC_MSG_RESULT([$result])
503 subshell="$result"
507 dnl Select the screen library.  mcslang is the included S-Lang library.
509 AC_ARG_WITH(screen,
510         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
511                            ncurses [[slang if found, else mcslang]]])
513 case x$with_screen in
514 xslang)
515         MC_WITH_SLANG(strict)
516         ;;
517 xmcslang)
518         MC_WITH_MCSLANG
519         ;;
520 xncurses)
521         MC_WITH_NCURSES
522         ;;
524         MC_WITH_SLANG
525         ;;
527         AC_MSG_ERROR([Value of the screen library is incorrect])
528         ;;
529 esac
533 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
534 dnl Report an error if this option is not applicable.
536 AC_ARG_WITH(termcap,
537         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
538         [if test x$with_screen != xmcslang; then
539                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
540         fi
545 dnl Internal editor support.
547 AC_ARG_WITH(edit,
548         [  --with-edit              Enable internal editor [[yes]]])
550 if test x$with_edit != xno; then
551         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
552         use_edit=yes
553         edit_msg="yes"
554         AC_MSG_NOTICE([using internal editor])
555 else
556         edit_msg="no"
560 if test $use_vfs = yes; then
561     AC_ARG_WITH(ext2undel,
562         [  --with-ext2undel         Compile with ext2 undelete code [[yes if found]]],
563         [if test x$withval != xno; then
564                 if test x$withval != xyes; then
565                         LDFLAGS="$LDFLAGS -L$withval/lib"
566                         CPPFLAGS="$CPPFLAGS -I$withval/include"
567                 fi
568                 AC_EXT2_UNDEL
569         fi],[
570         dnl Default: detect
571         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
572     ])
576 dnl Check if the OS is supported by the console saver.
577 cons_saver=""
578 case $host_os in
579 linux*)
580     cons_saver=yes
581 esac
585 dnl User visible support for charset conversion.
587 AC_ARG_ENABLE([charset],
588               [  --enable-charset         Support for charset selection and conversion [[no]]])
589 have_charset=
590 if test "x$enable_charset" = xyes; then
591   if test "x$am_cv_func_iconv" != xyes; then
592     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
593   else
594     AC_DEFINE(HAVE_CHARSET, 1,
595               [Define to enable charset selection and conversion])
596     have_charset=yes
597   fi
600 if test "$GLIBC21" != yes; then
601     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
604 AC_SUBST(CFLAGS)
605 AC_SUBST(CPPFLAGS)
606 AC_SUBST(LDFLAGS)
607 AC_SUBST(LIBS)
609 dnl Libraries used only when building the mc binary
610 AC_SUBST(MCLIBS)
612 dnl Version for the RedHat package, without dashes
613 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
614 AC_SUBST(RPM_VERSION)
616 if test -n "$use_smbfs"; then
617   AC_CONFIG_SUBDIRS([vfs/samba])
620 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
621 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
622 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
623 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
624 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
625 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
626 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
627 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
628 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
630 AH_BOTTOM([#include <extraconf.h>])
632 AC_CONFIG_FILES([
633 Makefile 
634 mc.spec
635 doc/Makefile 
636 vfs/Makefile
637 vfs/extfs/Makefile
638 lib/Makefile
639 src/Makefile
640 slang/Makefile 
641 edit/Makefile 
642 syntax/Makefile
643 pc/Makefile
644 m4/Makefile
646 lib/mc.ext
648 vfs/extfs/a
649 vfs/extfs/apt
650 vfs/extfs/audio
651 vfs/extfs/deb
652 vfs/extfs/deba
653 vfs/extfs/debd
654 vfs/extfs/dpkg
655 vfs/extfs/hp48
656 vfs/extfs/lslR
657 vfs/extfs/mailfs
658 vfs/extfs/patchfs
659 vfs/extfs/rpms
660 vfs/extfs/uar
661 vfs/extfs/uarj
662 vfs/extfs/uha
663 vfs/extfs/ulha 
664 vfs/extfs/urar
665 vfs/extfs/uzip
666 vfs/extfs/uzoo
668 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
669 doc/es/mc.1 doc/es/Makefile
670 doc/hu/mc.1 doc/hu/Makefile
671 doc/it/mc.1 doc/it/Makefile
672 doc/pl/mc.1 doc/pl/Makefile
673 doc/ru/mc.1 doc/ru/Makefile
675 intl/Makefile
676 po/Makefile.in
679 AC_OUTPUT
681 echo "
682 Configuration:
684   Source code location:       ${srcdir}
685   Compiler:                   ${CC}
686   Compiler flags:             ${CFLAGS}
687   File system:                ${vfs_type}
688                               ${vfs_flags}
689   Screen library:             ${screen_msg}
690   Mouse support:              ${mouse_lib}
691   X11 events support:         ${textmode_x11_support}
692   With subshell support:      ${subshell}
693   Internal editor:            ${edit_msg}