Updated italian translation
[midnight-commander.git] / configure.ac
blob1e20c4efe5a4ae543458c93cdeca67f5fd1f4271
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.53)
7 AC_CONFIG_SRCDIR(src/main.c)
8 AC_CONFIG_AUX_DIR(config)
9 AM_INIT_AUTOMAKE(mc, 4.6.1a)
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"
64         dnl Used in src/glibcompat.c
65         AC_CHECK_FUNCS([strlcpy])
66 else
67         PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
68         GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
71 if test "x$gmodule_found" = "xyes" ; then
72         dnl Check if the gmodule functionality supported on this system.
73         AC_G_MODULE_SUPPORTED
76 AC_HEADER_MAJOR
77 AC_C_CONST
78 AC_SYS_LARGEFILE
80 AC_PROG_LN_S
81 AC_CHECK_TOOL(AR, ar, ar)
83 dnl Only list browsers here that can be run in background (i.e. with `&')
84 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
86 dnl
87 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
88 dnl We use only part of the functionality of mmap, so on AIX,
89 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
90 dnl
91 AC_ARG_WITH(mmap,
92         [  --with-mmap              Use the mmap call [[yes if found]]])
93 if test x$with_mmap != xno; then
94     if test x$with_mmap = x; then
95         AC_FUNC_MMAP
96     else
97         AC_DEFINE(HAVE_MMAP, 1)
98     fi
102 dnl Internationalization
104 MC_ASM_LABELS
105 AM_GNU_GETTEXT
106 AM_GNU_GETTEXT_VERSION(0.11.5)
108 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
109     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
112 dnl Determine which help translations we want to install.
113 ALL_DOC_LINGUAS="es hu it pl ru sr"
115 DOC_LINGUAS=
116 if test "x$USE_NLS" = xyes; then
117     if test -z "$LINGUAS"; then
118         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
119     else
120         langs="$LINGUAS"
121     fi
122 else
123     langs=
126 for h_lang in $ALL_DOC_LINGUAS; do
127     for lang in $langs; do
128         if test "$lang" = "$h_lang"; then
129             DOC_LINGUAS="$DOC_LINGUAS $lang"
130             break
131         fi
132     done
133 done
134 AC_SUBST(DOC_LINGUAS)
137 dnl OS specific flags.
139 case $host_os in
140 aux*)
141     # A/UX
142     LIBS="$LIBS -lposix"
143     AC_DEFINE(_POSIX_SOURCE)
144     ;;
145 linux*)
146     AC_DEFINE(_GNU_SOURCE,, [Define to request GNU feature set on Linux])
147     ;;
148 esac
150 dnl Extended Character Sets
152 AC_ARG_ENABLE([extcharset],
153         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
154 if test x"$enable_extcharset" = x"yes"; then
155   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
158 AC_PROG_INSTALL
159 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
160         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
161         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
162         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
163         sys/mkdev.h wchar.h wctype.h])
165 AC_HEADER_TIME
166 AC_HEADER_SYS_WAIT
167 AC_HEADER_DIRENT
168 AC_HEADER_STDC
170 dnl Missing structure components
171 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
172 AC_STRUCT_ST_BLOCKS
175 dnl Check availability of some functions 
176 dnl 
178 AC_CHECK_FUNCS([\
179         atoll \
180         cfgetospeed \
181         getegid geteuid getgid getsid getuid \
182         initgroups isascii \
183         memcpy memmove memset \
184         putenv \
185         setreuid setuid statfs strerror strftime sysconf \
186         tcgetattr tcsetattr truncate \
189 dnl S-Lang needs all four functions to be defined to use POSIX signal API
190 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
191 if test x$slang_signals != xno; then
192     AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
196 dnl getpt is a GNU Extension (glibc 2.1.x)
198 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
199 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
201 dnl replacing lstat with statlstat on sco makes it more portable between
202 dnl sco clones
203 AC_CHECK_FUNCS(statlstat)
206 dnl If running under AIX, AC_AIX does not tell us that
208 AC_MSG_CHECKING([for AIX defines])
209 AC_EGREP_CPP(yes,
210 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
212 #endif
213 ], [
214 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
215 AC_MSG_RESULT(yes)
216 ], [AC_MSG_RESULT(no)])
219 dnl This is from GNU fileutils, check aclocal.m4 for more information
221 AC_GET_FS_INFO
224 dnl Missing typedefs and replacements
225 dnl 
227 AC_TYPE_MODE_T
228 AC_CHECK_TYPE(off_t, long)
229 AC_TYPE_PID_T
230 AC_TYPE_UID_T
231 AC_CHECK_TYPE(nlink_t, unsigned int)
232 AC_CHECK_TYPES([socklen_t],,,
234 #include <sys/types.h>
235 #include <sys/socket.h>
238 dnl This is needed for regex.c only
239 AC_CHECK_TYPE(uintptr_t,
240               [AC_DEFINE(HAVE_UINTPTR_T, 1,
241                          [Define if you have the `uintptr_t' type.])
244 AC_FUNC_ALLOCA
245 AC_FUNC_STRCOLL
248 dnl X11 support.
249 dnl Used to read keyboard modifiers when running under X11.
252 AC_PATH_XTRA
253 if test "x$no_x" = xyes; then
254     textmode_x11_support="no"
255 else
256     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
257     if test "x$mc_cv_g_module_supported" = "xyes" ; then
258         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
259         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
260         dnl functionality is supported on the system.  This way, mc will be
261         dnl linked against the gmodule library only when it's really required.
262         GLIB_CFLAGS="$GMODULE_CFLAGS"
263         GLIB_LIBS="$GMODULE_LIBS"
264     else
265         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
266     fi
267     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
268               [Define to enable getting events from X Window System])
269     textmode_x11_support="yes"
273 dnl Try to find static libraries for glib and gmodule.
275 if test x$with_glib_static = xyes; then
276     new_GLIB_LIBS=
277     for i in $GLIB_LIBS; do
278         case x$i in
279         x-lglib*)
280             lib=glib ;;
281         x-lgmodule*)
282             lib=gmodule ;;
283         *)
284             lib=
285             add="$i" ;;
286         esac
288         if test -n "$lib"; then
289             lib1=`echo $i | sed 's/^-l//'`
290             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
291                 add="$GLIB_LIBDIR/lib${lib1}.a"
292             else
293                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
294                     add="$GLIB_LIBDIR/lib${lib}.a"
295                 else
296                     AC_MSG_ERROR([Cannot find static $lib])
297                 fi
298             fi
299         fi
300         new_GLIB_LIBS="$new_GLIB_LIBS $add"
301     done
302     GLIB_LIBS="$new_GLIB_LIBS"
307 dnl Network related functions
310 AC_SEARCH_LIBS([socket], [socket])
311 AC_SEARCH_LIBS([gethostbyname], [nsl])
314 dnl Sequent wants getprocessstats
316 AC_CHECK_LIB(seq, get_process_stats, [
317         LIBS="$LIBS -lseq"
318         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
319                   [Define if you have function `get_process_stats' and
320 have to use that instead of gettimeofday])])
322 MC_VFS_CHECKS
324 vfs_type="normal"
325 if test x$use_vfs = xyes; then
326         AC_MSG_NOTICE([enabling VFS code])
327         vfs_type="Midnight Commander Virtual File System"
331 dnl Check for gpm mouse support (Linux only)
333 mouse_lib="xterm only"
334 AC_ARG_WITH(gpm-mouse, 
335         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
336                            [[yes if found]]])
338 case $host_os in
339 linux*)
340     if test x$with_gpm_mouse != xno; then
341         AC_CHECK_LIB(gpm, Gpm_Repeat,
342             [AC_DEFINE(HAVE_LIBGPM, 1,
343                        [Define to enable gpm mouse support on Linux])
344             mouse_lib="gpm and xterm"
345             MCLIBS="$MCLIBS -lgpm"],
346             [AC_MSG_WARN([libgpm is missing or older than 0.18])
347         ])
348     fi
349     ;;
350 esac
353 dnl Check nroff and the options it supports
355 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
357 dnl Default values
358 MANDOC=-man
359 MAN_FLAGS=
361 if $HAVE_nroff; then
362     AC_MSG_CHECKING([for manual formatting macros])
363     AC_CACHE_VAL(mc_cv_mandoc, [
364     nroff -mandoc < /dev/null > /dev/null 2>&1
365     if test $? = 0; then
366         mc_cv_mandoc=-mandoc
367     else
368         mc_cv_mandoc=-man
369     fi
370     ])
371     MANDOC=$mc_cv_mandoc
372     AC_MSG_RESULT([$MANDOC])
374     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
375     AC_CACHE_VAL(mc_cv_man_nocolor, [
376     nroff -c < /dev/null > /dev/null 2>&1
377     if test $? = 0; then
378         mc_cv_man_nocolor=-c
379     else
380         mc_cv_man_nocolor=
381     fi
382     ])
383     MAN_FLAGS=$mc_cv_man_nocolor
384     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
386     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
387     AC_CACHE_VAL(mc_cv_nroff_tascii, [
388     mc_cv_nroff_tascii=
389     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
390     if test $? = 0; then
391         mc_cv_nroff_tascii=-Tlatin1
392     else
393         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
394         if test $? = 0; then
395             mc_cv_nroff_tascii=-Tascii
396         fi
397     fi
398     ])
399     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
400     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
403 AC_SUBST(MANDOC)
404 AC_SUBST(MAN_FLAGS)
408 dnl Check for -L option to file
410 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
411 if $HAVE_FILECMD; then
412     AC_MSG_CHECKING([for -L option to file command])
413     AC_CACHE_VAL(mc_cv_filel, [
414     file -L . > /dev/null 2>&1
415     if test $? = 0; then
416         mc_cv_filel=yes
417     else
418         mc_cv_filel=no
419     fi
420     ])
421     if test x$mc_cv_filel = xyes; then
422         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
423     fi
424     filel=$mc_cv_filel
425     AC_MSG_RESULT([$filel])
429 AC_MSG_CHECKING([for subshell support])
430 AC_ARG_WITH(subshell,
431         [  --with-subshell          Compile in concurrent subshell [[yes]]
432   --with-subshell=optional Don't run concurrent shell by default [[no]]],
433         [result=no
434         if test x$withval = xoptional
435         then
436                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
437                           [Define to make subshell support optional])
438                 result="optional"
439         fi
440         if test x$withval = xyes
441         then 
442                 result="yes"
443         fi],
444         [dnl Default: enable the subshell support
445         result="yes"
447 if test "x$result" != xno; then
448         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
449                   [Define to enable subshell support])
451 AC_MSG_RESULT([$result])
452 subshell="$result"
456 dnl Select the screen library.  mcslang is the included S-Lang library.
458 AC_ARG_WITH(screen,
459         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
460                            ncurses [[slang if found, else mcslang]]])
462 case x$with_screen in
463 xslang)
464         MC_WITH_SLANG(strict)
465         ;;
466 xmcslang)
467         MC_WITH_MCSLANG
468         ;;
469 xncurses)
470         MC_WITH_NCURSES
471         ;;
473         MC_WITH_SLANG
474         ;;
476         AC_MSG_ERROR([Value of the screen library is incorrect])
477         ;;
478 esac
482 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
483 dnl Report an error if this option is not applicable.
485 AC_ARG_WITH(termcap,
486         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
487         [if test x$with_screen != xmcslang; then
488                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
489         fi
494 dnl Internal editor support.
496 AC_ARG_WITH(edit,
497         [  --with-edit              Enable internal editor [[yes]]])
499 if test x$with_edit != xno; then
500         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
501         use_edit=yes
502         edit_msg="yes"
503         AC_MSG_NOTICE([using internal editor])
504 else
505         edit_msg="no"
509 dnl Check if the OS is supported by the console saver.
510 cons_saver=""
511 case $host_os in
512 linux*)
513     cons_saver=yes
514 esac
517 dnl Support for background operations
518 AC_ARG_ENABLE([background],
519               [  --enable-background      Support for background file operations [[yes]]])
520 if test "x$enable_background" != xno; then
521     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
526 dnl User visible support for charset conversion.
528 AC_ARG_ENABLE([charset],
529               [  --enable-charset         Support for charset selection and conversion [[no]]])
530 have_charset=
531 charset_msg="no"
532 if test "x$enable_charset" = xyes; then
533   if test "x$am_cv_func_iconv" != xyes; then
534     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])    
535   else
536     AC_DEFINE(HAVE_CHARSET, 1,
537               [Define to enable charset selection and conversion])
538     have_charset=yes
539     charset_msg="yes"
540   fi
543 if test "$GLIBC21" != yes; then
544     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
547 dnl If default CFLAGS is used with gcc, add -Wall
548 if test -z "$ac_env_CFLAGS_set"; then
549     if test -n "$GCC"; then
550         CFLAGS="$CFLAGS -Wall"
551     fi
554 AC_SUBST(CFLAGS)
555 AC_SUBST(CPPFLAGS)
556 AC_SUBST(LDFLAGS)
557 AC_SUBST(LIBS)
559 dnl Libraries used only when building the mc binary
560 AC_SUBST(MCLIBS)
562 dnl Version for the RedHat package, without dashes
563 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
564 AC_SUBST(RPM_VERSION)
566 if test -n "$use_smbfs"; then
567   AC_CONFIG_SUBDIRS([vfs/samba])
570 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
571 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
572 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
573 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
574 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
575 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
576 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
577 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
578 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
580 AC_CONFIG_FILES([
581 Makefile 
582 mc.spec
583 mc.qpg
584 pkginfo
585 prototype
586 doc/Makefile 
587 vfs/Makefile
588 vfs/extfs/Makefile
589 lib/Makefile
590 src/Makefile
591 slang/Makefile 
592 edit/Makefile 
593 syntax/Makefile
594 m4/Makefile
595 lib/mc.ext
596 vfs/extfs/a
597 vfs/extfs/apt
598 vfs/extfs/audio
599 vfs/extfs/deb
600 vfs/extfs/deba
601 vfs/extfs/debd
602 vfs/extfs/dpkg
603 vfs/extfs/iso9660
604 vfs/extfs/hp48
605 vfs/extfs/lslR
606 vfs/extfs/mailfs
607 vfs/extfs/patchfs
608 vfs/extfs/rpms
609 vfs/extfs/ualz
610 vfs/extfs/uar
611 vfs/extfs/uarj
612 vfs/extfs/uha
613 vfs/extfs/ulha 
614 vfs/extfs/urar
615 vfs/extfs/uzip
616 vfs/extfs/uzoo
618 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
619 doc/es/mc.1 doc/es/Makefile
620 doc/hu/mc.1 doc/hu/Makefile
621 doc/it/mc.1 doc/it/Makefile
622 doc/pl/mc.1 doc/pl/Makefile
623 doc/ru/mc.1 doc/ru/Makefile
624 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
626 intl/Makefile
627 po/Makefile.in
630 AC_OUTPUT
632 echo "
633 Configuration:
635   Source code location:       ${srcdir}
636   Compiler:                   ${CC}
637   Compiler flags:             ${CFLAGS}
638   File system:                ${vfs_type}
639                               ${vfs_flags}
640   Screen library:             ${screen_msg}
641   Mouse support:              ${mouse_lib}
642   X11 events support:         ${textmode_x11_support}
643   With subshell support:      ${subshell}
644   Internal editor:            ${edit_msg}
645   Support for charset:        ${charset_msg}