fixed creation mc-wrapper.csh & mc-wrapper.sh
[midnight-commander.git] / configure.in
bloba9e4629a4af24c48a78cb65f889d8f24efadd11b
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 nroff and the options it supports
286 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
288 dnl Default values
289 MANDOC=-man
290 MAN_FLAGS=
292 if $HAVE_nroff; then
293     AC_MSG_CHECKING([for manual formatting macros])
294     AC_CACHE_VAL(ac_cv_mandoc, [
295     nroff -mandoc < /dev/null > /dev/null 2>&1
296     if test $? = 0; then
297         ac_cv_mandoc=-mandoc
298     else
299         ac_cv_mandoc=-man
300     fi
301     ])
302     MANDOC=$ac_cv_mandoc
303     AC_MSG_RESULT([$MANDOC])
305     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
306     AC_CACHE_VAL(ac_cv_man_nocolor, [
307     nroff -c < /dev/null > /dev/null 2>&1
308     if test $? = 0; then
309         ac_cv_man_nocolor=-c
310     else
311         ac_cv_man_nocolor=
312     fi
313     ])
314     MAN_FLAGS=$ac_cv_man_nocolor
315     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
317     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
318     AC_CACHE_VAL(ac_cv_nroff_tascii, [
319     ac_cv_nroff_tascii=
320     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
321     if test $? = 0; then
322         ac_cv_nroff_tascii=-Tlatin1
323     else
324         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
325         if test $? = 0; then
326             ac_cv_nroff_tascii=-Tascii
327         fi
328     fi
329     ])
330     AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
331     MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
334 AC_SUBST(MANDOC)
335 AC_SUBST(MAN_FLAGS)
339 dnl Check for - option to file
341 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
342 if $HAVE_FILECMD; then
343     AC_MSG_CHECKING([for - option to file command])
344     AC_CACHE_VAL(ac_cv_filestdin, [[
345     cat > conftest.c <<\EOF
346 /* A comment */
347 #if 0
348 #endif
349 void main(void)
350 { return; }
352     cat > conftest.sed <<\EOF
353 s/^[^:]*:[      ]*//
354 s/[     ]*$//
356     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
357     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
358     if test "x$filehyphen_1" = "x$filehyphen_2"; then
359         ac_cv_filestdin=yes
360     else
361         ac_cv_filestdin=no
362     fi
363     rm conftest.c conftest.sed
364     ]])
366     if test x$ac_cv_filestdin = xyes; then
367         AC_DEFINE(FILE_STDIN, 1,
368                   [Define if the file command accepts - for stdin])
369     fi
370     filestdin=$ac_cv_filestdin
371     AC_MSG_RESULT([$filestdin])
373     dnl
374     dnl Check for -L option to file
375     dnl
377 AC_MSG_CHECKING([for -L option to file command])
378 AC_CACHE_VAL(ac_cv_filel, [
379 file -L . > /dev/null 2>&1
380 if test $? = 0
381 then
382     ac_cv_filel=yes
383 else
384     ac_cv_filel=no
387 if test x$ac_cv_filel = xyes; then
388     AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
390 filel=$ac_cv_filel
391 AC_MSG_RESULT([$filel])
392 fi 
395 AC_MSG_CHECKING([for subshell support])
396 AC_ARG_WITH(subshell,
397         [  --with-subshell          Compile in concurrent subshell [[yes]]
398   --with-subshell=optional Don't run concurrent shell by default [[no]]],
399         [result=no
400         if test x$withval = xoptional
401         then
402                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
403                           [Define to make subshell support optional])
404                 result="optional"
405         fi
406         if test x$withval = xyes
407         then 
408                 result="yes"
409         fi],
410         [dnl Default: enable the subshell support
411         result="yes"
413 if test "x$result" != xno; then
414         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
415                   [Define to enable subshell support])
417 AC_MSG_RESULT([$result])
418 subshell="$result"
422 dnl Select the screen library.  mcslang is the included S-Lang library.
424 AC_ARG_WITH(screen,
425         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
426                            ncurses [[slang if found, else mcslang]]])
428 case x$with_screen in
429 xslang)
430         MC_WITH_SLANG(strict)
431         ;;
432 xmcslang)
433         MC_WITH_MCSLANG
434         ;;
435 xncurses)
436         MC_WITH_NCURSES
437         ;;
439         MC_WITH_SLANG
440         ;;
442         AC_MSG_ERROR([Value of the screen library is incorrect])
443         ;;
444 esac
448 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
449 dnl Report an error if this option is not applicable.
451 AC_ARG_WITH(termcap,
452         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
453         [if test x$with_screen != xmcslang; then
454                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
455         fi
460 dnl Internal editor support.
462 AC_ARG_WITH(edit,
463         [  --with-edit              Enable internal editor [[yes]]])
465 if test x$with_edit != xno; then
466         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
467         use_edit=yes
468         edit_msg="yes"
469         AC_MSG_NOTICE([using internal editor])
470 else
471         edit_msg="no"
475 if test $use_vfs = yes; then
476     AC_ARG_WITH(ext2undel,
477         [  --with-ext2undel         Compile with ext2 undelete code [[yes if found]]],
478         [if test x$withval != xno; then
479                 if test x$withval != xyes; then
480                         LDFLAGS="$LDFLAGS -L$withval/lib"
481                         CPPFLAGS="$CPPFLAGS -I$withval/include"
482                 fi
483                 AC_EXT2_UNDEL
484         fi],[
485         dnl Default: detect
486         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
487     ])
492 dnl The variables used for expanding the auto saver.
494 cons_saver=""
495 install_saver="no"
496 PAMLIBS=""
497 case $host_os in
498 linux*)
499     cons_saver="cons.saver"
500     install_saver="yes"
502     dnl
503     dnl On Linux, check for PAM authentication available
504     dnl
505     AC_CHECK_LIB(pam, pam_start, [
506         AC_DEFINE(HAVE_PAM, 1,
507                   [Define if PAM (Pluggable Authentication Modules) is available])
508         PAMLIBS="-lpam -ldl"
509     ],[],[-ldl])
510     ;;
511 esac
512 AC_SUBST(cons_saver)
513 AC_SUBST(PAMLIBS)
516 dnl User visible support for charset conversion.
518 AC_ARG_ENABLE([charset],
519               [  --enable-charset         Support for charset selection and conversion [[no]]])
520 have_charset=
521 if test "x$enable_charset" = xyes; then
522   if test "x$am_cv_func_iconv" != xyes; then
523     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
524   else
525     AC_DEFINE(HAVE_CHARSET, 1,
526               [Define to enable charset selection and conversion])
527     have_charset=yes
528   fi
531 if test "$GLIBC21" != yes; then
532     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
535 LIBS="$LIBS $posix_libs"
537 AC_SUBST(CFLAGS)
538 AC_SUBST(CPPFLAGS)
539 AC_SUBST(LDFLAGS)
540 AC_SUBST(LIBS)
542 dnl Libraries used only when building the mc binary
543 AC_SUBST(MCLIBS)
545 dnl Version for the RedHat package, without dashes
546 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
547 AC_SUBST(RPM_VERSION)
549 if test -n "$use_smbfs"; then
550   AC_CONFIG_SUBDIRS([vfs/samba])
553 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
554 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
555 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
556 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
557 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
558 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
559 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
560 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
561 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
563 AH_BOTTOM([#include <extraconf.h>])
565 AC_CONFIG_FILES([
566 Makefile 
567 mc.spec
568 doc/Makefile 
569 vfs/Makefile
570 vfs/extfs/Makefile
571 lib/Makefile
572 src/Makefile
573 slang/Makefile 
574 edit/Makefile 
575 syntax/Makefile
576 pc/Makefile
577 m4/Makefile
579 lib/mc.ext
581 vfs/extfs/deb
582 vfs/extfs/ftplist
583 vfs/extfs/lslR
584 vfs/extfs/uar
585 vfs/extfs/ucpio
586 vfs/extfs/ulha 
587 vfs/extfs/uha
588 vfs/extfs/urar
589 vfs/extfs/uzoo
591 doc/mc.1 doc/mcedit.1 doc/mcserv.8
592 doc/es/mc.1 doc/es/Makefile
593 doc/hu/mc.1 doc/hu/Makefile
594 doc/it/mc.1 doc/it/Makefile
595 doc/pl/mc.1 doc/pl/Makefile
596 doc/ru/mc.1 doc/ru/Makefile
598 intl/Makefile
599 po/Makefile.in
602 AC_OUTPUT
604 echo "
605 Configuration:
607   Source code location:       ${srcdir}
608   Compiler:                   ${CC}
609   Compiler flags:             ${CFLAGS}
610   File system:                ${vfs_type}
611                               ${vfs_flags}
612   Screen library:             ${screen_msg}
613   Install console saver:      ${install_saver}
614   Mouse support:              ${mouse_lib}
615   X11 events support:         ${textmode_x11_support}
616   With subshell support:      ${subshell}
617   Internal editor:            ${edit_msg}