s/paramter/parameter/
[midnight-commander.git] / configure.in
blobb86ced3e98ec39d16e057545356800a4438a1e75
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.0-pre1b)
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 Check if the user requested to compile with glib 2.x.  If not, use
24 dnl glib 1.2.x.  This check should be kept close to the beginning, as it
25 dnl fails for the users without any glib.
26 dnl
27 AC_ARG_WITH(glib2, [  --with-glib2             Use glib 2.x [[no]]])
29 if test "x$with_glib2" = "xyes" ; then
30         PKG_CHECK_MODULES(GLIB, "glib-2.0")
31 else
32         dnl This temporary variable is a workaround for a bug in Autoconf-2.53
33         glib_path=$PATH:/usr/local/bin
35         dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
36         AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
38         AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
39         AM_PATH_GLIB(1.2.6,,[AC_MSG_ERROR([Test for glib failed.
40 GNU Midnight Commander requires glib 1.2.6 or above.])])
44 AC_HEADER_MAJOR
45 AC_C_CONST
46 AC_SYS_LARGEFILE
48 AC_PROG_LN_S
49 AC_CHECK_TOOL(AR, ar, ar)
51 dnl Only list browsers here that can be run in background (i.e. with `&')
52 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
54 dnl
55 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
56 dnl We use only part of the functionality of mmap, so on AIX,
57 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
58 dnl
59 AC_ARG_WITH(mmap, 
60         [  --with-mmap              Force using the mmap call (only useful on AIX)],
61         [case $withval in
62 yes)
63         ac_cv_func_mmap_fixed_mapped=yes
64         AC_MSG_NOTICE([forcing MMAP support])
65         ;;
66 no)
67         ac_cv_func_mmap_fixed_mapped=no
68         AC_MSG_NOTICE([disabling MMAP support])
69         ;;
70 esac])
71 AC_FUNC_MMAP
73 ALL_LINGUAS="az be bg ca cs da de el es es_ES eu fi fr hu it ja ko lv \
74 nl no pl pt pt_BR ro ru sk sl sv uk ta tr wa zh_CN zh_TW"
76 dnl
77 dnl Internationalization
78 dnl
79 AM_GNU_GETTEXT
80 AM_GNU_GETTEXT_VERSION(0.11.5)
82 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
83     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
86 dnl
87 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
88 dnl
89 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
91 dnl
92 dnl Enforce coding standards
93 dnl
94 if test "x$GCC" = xyes; then
95     CFLAGS="$CFLAGS -Wall"
98 dnl
99 dnl OS specific flags.
102 posix_libs=""
103 case $host_os in
104 aux*)
105     # A/UX
106     posix_libs="-lposix"
107     AC_DEFINE(_POSIX_SOURCE)
108     ;;
109 sco*)
110     AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
111     AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
112     ;;
113 esac
115 AC_PROG_INSTALL
116 AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
117         malloc.h stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h \
118         sys/time.h sys/timeb.h sys/select.h sys/ioctl.h stropts.h \
119         arpa/inet.h])
121 AC_HEADER_TIME
122 AC_HEADER_SYS_WAIT
123 AC_HEADER_DIRENT
124 AC_HEADER_STDC
126 dnl Missing structure components
127 AC_STRUCT_ST_BLKSIZE
128 AC_STRUCT_ST_BLOCKS
129 AC_STRUCT_ST_RDEV
132 dnl Check availability of some functions 
133 dnl 
135 AC_CHECK_FUNCS([strerror statfs strftime \
136                 memmove pwdauth truncate initgroups putenv \
137                 memset memcpy tcsetattr tcgetattr cfgetospeed \
138                 sigaction sigemptyset sigprocmask sigaddset \
139                 sysconf setuid setreuid telldir seekdir])
142 dnl getpt is a GNU Extension (glibc 2.1.x)
144 AC_CHECK_FUNCS(getpt)
148 dnl On SCO and some SVR4, crypt is on libcrypt.a
149 dnl         grantpt in  libpt.a
151 LCRYPT=""
152 AC_CHECK_FUNCS(crypt, , [
153     AC_CHECK_LIB(crypt, crypt, [LCRYPT="-lcrypt"], [
154         AC_CHECK_LIB(crypt_i, crypt, [LCRYPT="-lcrypt_i"])])])
155 AC_SUBST(LCRYPT)
157 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
159 dnl replacing lstat with statlstat on sco makes it more portable between
160 dnl sco clones
161 AC_CHECK_FUNCS(statlstat)
164 dnl If running under AIX, AC_AIX does not tell us that
166 AC_MSG_CHECKING([for AIX defines])
167 AC_EGREP_CPP(yes,
168 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
170 #endif
171 ], [
172 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
173 AC_MSG_RESULT(yes)
174 ], [AC_MSG_RESULT(no)])
177 dnl This is from GNU fileutils, check aclocal.m4 for more information
179 AC_GET_FS_INFO
182 dnl Missing typedefs and replacements
183 dnl 
185 AC_TYPE_MODE_T
186 AC_CHECK_TYPE(umode_t, int)
187 AC_CHECK_TYPE(off_t, long)
188 AC_TYPE_PID_T
189 AC_TYPE_UID_T
190 AC_CHECK_TYPE(nlink_t, unsigned int)
192 AC_FUNC_ALLOCA
193 AC_FUNC_STRCOLL
196 dnl X11 support.
199 textmode_x11_support="no"
200 AC_ARG_WITH(tm-x-support,
201         [  --with-tm-x-support      Get keyboard events from X Window System [[no]]],
202         [if test x$withval = xyes; then
203                 AC_PATH_XTRA
204                 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
205                 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
206                 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
207                           [Define to enable getting events from X Window System])
208                 textmode_x11_support="yes"
209         fi
213 dnl Network related functions
216 AC_CHECK_LIB(nsl, t_accept)
217 AC_CHECK_LIB(socket, socket)
219 have_socket=no
220 AC_CHECK_FUNCS(socket, have_socket=yes)
221 if test $have_socket = no; then
222   # socket is not in the default libraries.  See if it's in some other.
223   for lib in bsd socket inet; do
224     AC_CHECK_LIB($lib, socket, [
225         LIBS="$LIBS -l$lib"
226         have_socket=yes
227         AC_DEFINE(HAVE_SOCKET)
228         break])
229   done
232 have_gethostbyname=no
233 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
234 if test $have_gethostbyname = no; then
235   # gethostbyname is not in the default libraries.  See if it's in some other.
236   for lib in bsd socket inet; do
237     AC_CHECK_LIB([$lib], [gethostbyname],
238                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
239   done
242 AC_CHECK_FUNCS(socketpair)
245 dnl Sequent wants getprocessstats
247 AC_CHECK_LIB(seq, get_process_stats, [
248         LIBS="$LIBS -lseq"
249         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
250                   [Define if you have function `get_process_stats' and
251 have to use that instead of gettimeofday])])
253 MC_VFS_CHECKS
255 vfs_type="normal"
256 if test x$use_vfs = xyes; then
257         AC_MSG_NOTICE([enabling VFS code])
258         vfs_type="Midnight Commander Virtual File System"
262 dnl Check for gpm mouse support (Linux only)
264 mouse_lib="xterm only"
265 AC_ARG_WITH(gpm-mouse, 
266         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
267                            [[yes if found]]])
269 case $host_os in
270 linux*)
271     if test x$with_gpm_mouse != xno; then
272         AC_CHECK_LIB(gpm, Gpm_Repeat,
273             [AC_DEFINE(HAVE_LIBGPM, 1,
274                        [Define to enable gpm mouse support on Linux])
275             mouse_lib="gpm and xterm"
276             MCLIBS="$MCLIBS -lgpm"],
277             [AC_MSG_WARN([libgpm is missing or older than 0.18])
278         ])
279     fi
280     ;;
281 esac
284 dnl Check for the -mandoc package
286 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
287 if $HAVE_nroff; then
288     AC_MSG_CHECKING([for manual formatting macros])
289     AC_CACHE_VAL(ac_cv_mandoc, [
290     nroff -mandoc < /dev/null > /dev/null 2>&1
291     if test $? = 0
292     then
293         ac_cv_mandoc=-mandoc
294     else
295         ac_cv_mandoc=-man
296     fi
297     ])
298     MANDOC=$ac_cv_mandoc
299     AC_MSG_RESULT([$MANDOC])
300 else
301     MANDOC=-man
303 AC_SUBST(MANDOC)
306 dnl Check if nroff accepts -Tlatin1 or -Tascii
308 if $HAVE_nroff; then
309     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
310     AC_CACHE_VAL(ac_cv_nroff_tascii, [
311     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
312     if test $? = 0
313     then
314         ac_cv_nroff_tascii=" -Tlatin1"
315     else
316         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
317         if test $? = 0
318         then
319             ac_cv_nroff_tascii=" -Tascii"
320         else
321             ac_cv_nroff_tascii=""
322         fi
323     fi
324     ])
325     if test "x$ac_cv_nroff_tascii" = x; then
326         AC_MSG_RESULT([no])
327     else
328         AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
329     fi
331 TROFFASCII="$ac_cv_nroff_tascii"
332 AC_SUBST(TROFFASCII)
335 dnl Check for - option to file
337 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
338 if $HAVE_FILECMD; then
339     AC_MSG_CHECKING([for - option to file command])
340     AC_CACHE_VAL(ac_cv_filestdin, [[
341     cat > conftest.c <<\EOF
342 /* A comment */
343 #if 0
344 #endif
345 void main(void)
346 { return; }
348     cat > conftest.sed <<\EOF
349 s/^[^:]*:[      ]*//
350 s/[     ]*$//
352     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
353     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
354     if test "x$filehyphen_1" = "x$filehyphen_2"; then
355         ac_cv_filestdin=yes
356     else
357         ac_cv_filestdin=no
358     fi
359     rm conftest.c conftest.sed
360     ]])
362     if test x$ac_cv_filestdin = xyes; then
363         AC_DEFINE(FILE_STDIN, 1,
364                   [Define if the file command accepts - for stdin])
365     fi
366     filestdin=$ac_cv_filestdin
367     AC_MSG_RESULT([$filestdin])
369     dnl
370     dnl Check for -L option to file
371     dnl
373 AC_MSG_CHECKING([for -L option to file command])
374 AC_CACHE_VAL(ac_cv_filel, [
375 file -L . > /dev/null 2>&1
376 if test $? = 0
377 then
378     ac_cv_filel=yes
379 else
380     ac_cv_filel=no
383 if test x$ac_cv_filel = xyes; then
384     AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
386 filel=$ac_cv_filel
387 AC_MSG_RESULT([$filel])
388 fi 
391 AC_MSG_CHECKING([for subshell support])
392 AC_ARG_WITH(subshell,
393         [  --with-subshell          Compile in concurrent subshell [[yes]]
394   --with-subshell=optional Don't run concurrent shell by default [[no]]],
395         [result=no
396         if test x$withval = xoptional
397         then
398                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
399                           [Define to make subshell support optional])
400                 result="optional"
401         fi
402         if test x$withval = xyes
403         then 
404                 result="yes"
405         fi],
406         [dnl Default: enable the subshell support
407         result="yes"
409 if test "x$result" != xno; then
410         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
411                   [Define to enable subshell support])
413 AC_MSG_RESULT([$result])
414 subshell="$result"
418 dnl Select the screen library.  mcslang is the included S-Lang library.
420 AC_ARG_WITH(screen,
421         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
422                            ncurses [[slang if found, else mcslang]]])
424 case x$with_screen in
425 xslang)
426         MC_WITH_SLANG(strict)
427         ;;
428 xmcslang)
429         MC_WITH_MCSLANG
430         ;;
431 xncurses)
432         MC_WITH_NCURSES
433         ;;
435         MC_WITH_SLANG
436         ;;
438         AC_MSG_ERROR([Value of the screen library is incorrect])
439         ;;
440 esac
444 dnl Force using termcap
446 AC_ARG_WITH(termcap,
447         [  --with-termcap           Try using termcap database [[no]]],
448         [if test x$with_screen = xmcslang; then
449                 MC_USE_TERMCAP
450         else
451                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
452         fi
457 dnl Internal editor support.
459 AC_ARG_WITH(edit,
460         [  --with-edit              Enable internal editor [[yes]]])
462 if test x$with_edit != xno; then
463         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
464         use_edit=yes
465         edit_msg="yes"
466         AC_MSG_NOTICE([using internal editor])
467 else
468         edit_msg="no"
472 if test $use_vfs = yes; then
473     AC_ARG_WITH(ext2undel,
474         [  --with-ext2undel         Compile with ext2 undelete code [[yes if found]]],
475         [if test x$withval != xno; then
476                 if test x$withval != xyes; then
477                         LDFLAGS="$LDFLAGS -L$withval/lib"
478                         CPPFLAGS="$CPPFLAGS -I$withval/include"
479                 fi
480                 AC_EXT2_UNDEL
481         fi],[
482         dnl Default: detect
483         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
484     ])
489 dnl The variables used for expanding the auto saver.
491 cons_saver=""
492 install_saver="no"
493 PAMLIBS=""
494 case $host_os in
495 linux*)
496     cons_saver="cons.saver"
497     install_saver="yes"
499     dnl
500     dnl On Linux, check for PAM authentication available
501     dnl
502     AC_CHECK_LIB(pam, pam_start, [
503         AC_DEFINE(HAVE_PAM, 1,
504                   [Define if PAM (Pluggable Authentication Modules) is available])
505         PAMLIBS="-lpam -ldl"
506     ],[],[-ldl])
507     ;;
508 esac
509 AC_SUBST(cons_saver)
510 AC_SUBST(PAMLIBS)
513 dnl User visible support for charset conversion.
515 AC_ARG_ENABLE([charset],
516               [  --enable-charset         Support for charset selection and conversion [[no]]])
517 have_charset=
518 if test "x$enable_charset" = xyes; then
519   if test "x$am_cv_func_iconv" != xyes; then
520     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
521   else
522     AC_DEFINE(HAVE_CHARSET, 1,
523               [Define to enable charset selection and conversion])
524     have_charset=yes
525   fi
528 if test "$GLIBC21" != yes; then
529     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
532 LIBS="$LIBS $posix_libs"
534 AC_SUBST(CFLAGS)
535 AC_SUBST(CPPFLAGS)
536 AC_SUBST(LDFLAGS)
537 AC_SUBST(LIBS)
539 dnl Libraries used only when building the mc binary
540 AC_SUBST(MCLIBS)
542 dnl Version for the RedHat package, without dashes
543 RH_VERSION=`echo $VERSION | sed 's/-//'`
544 AC_SUBST(RH_VERSION)
546 if test -n "$use_smbfs"; then
547   AC_CONFIG_SUBDIRS([vfs/samba])
550 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
551 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
552 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
553 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
554 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
555 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
556 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
557 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
558 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
560 AH_BOTTOM([#include <extraconf.h>])
562 AC_CONFIG_FILES([
563 Makefile 
564 mc.spec
565 doc/Makefile 
566 vfs/Makefile
567 vfs/extfs/Makefile
568 lib/Makefile
569 src/Makefile
570 slang/Makefile 
571 edit/Makefile 
572 syntax/Makefile
573 pc/Makefile
574 m4/Makefile
576 lib/mc.ext
577 lib/mc.sh
578 lib/mc.csh
580 vfs/extfs/deb
581 vfs/extfs/ftplist
582 vfs/extfs/lslR
583 vfs/extfs/uar
584 vfs/extfs/ucpio
585 vfs/extfs/ulha 
586 vfs/extfs/uha
587 vfs/extfs/urar
588 vfs/extfs/uzoo
590 doc/mc.1 doc/mcedit.1 doc/mcserv.8
591 doc/es/mc.1 doc/es/Makefile
592 doc/hu/Makefile doc/hu/mc.hlp.hu
593 doc/it/mc.1 doc/it/Makefile
594 doc/pl/mc.1 doc/pl/Makefile
595 doc/ru/mc.1 doc/ru/Makefile
597 intl/Makefile
598 po/Makefile.in
601 AC_OUTPUT
603 # Expand $bindir and $datadir to show the user.
604 # Two levels of expansion should be enough.
605 bindir_msg=`eval echo "$bindir"`
606 bindir_msg=`eval echo "$bindir_msg"`
607 datadir_msg=`eval echo "$datadir"`
608 datadir_msg=`eval echo "$datadir_msg"`
610 echo "
611 Configuration:
613   Source code location:       ${srcdir}
614   Compiler:                   ${CC}
615   Compiler flags:             ${CFLAGS}
616   File system:                ${vfs_type}
617                               ${vfs_flags}
618   Screen library:             ${screen_msg}
619   Install console saver:      ${install_saver}
620   Mouse support:              ${mouse_lib}
621   X11 events support:         ${textmode_x11_support}
622   With subshell support:      ${subshell}
623   Internal editor:            ${edit_msg}
624   Install path for binaries:  ${bindir_msg}
625   Install path for data:      ${datadir_msg}