Reverting on "save file position" after ml clarification...
[midnight-commander.git] / configure.in
blob836154ca1ca93dcf203b98b62f0b32c448b7c41c
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 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 PKG_CHECK_MODULES(GLIB, [glib-2.0], , [glib_found=no])
30 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
31 if test "x$glib_found" = "xno" ; then
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 Determine which help translations we want to install.
87 ALL_DOC_LINGUAS="es hu it pl ru"
89 DOC_LINGUAS=
90 if test "x$USE_NLS" = xyes; then
91     langs="${LINGUAS-$ALL_LINGUAS}"
92 else
93     langs=
96 for h_lang in $ALL_DOC_LINGUAS; do
97     for lang in $langs; do
98         if test "$lang" = "$h_lang"; then
99             DOC_LINGUAS="$DOC_LINGUAS $lang"
100             break
101         fi
102     done
103 done
104 AC_SUBST(DOC_LINGUAS)
107 dnl Hack to make extraconf.h visible even if compiling outside srcdir.
109 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)"
112 dnl Enforce coding standards
114 if test "x$GCC" = xyes; then
115     CFLAGS="$CFLAGS -Wall"
119 dnl OS specific flags.
122 posix_libs=""
123 case $host_os in
124 aux*)
125     # A/UX
126     posix_libs="-lposix"
127     AC_DEFINE(_POSIX_SOURCE)
128     ;;
129 sco*)
130     AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
131     AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
132     ;;
133 esac
135 AC_PROG_INSTALL
136 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
137         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
138         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
140 AC_HEADER_TIME
141 AC_HEADER_SYS_WAIT
142 AC_HEADER_DIRENT
143 AC_HEADER_STDC
145 dnl Missing structure components
146 AC_STRUCT_ST_BLKSIZE
147 AC_STRUCT_ST_BLOCKS
148 AC_STRUCT_ST_RDEV
151 dnl Check availability of some functions 
152 dnl 
154 AC_CHECK_FUNCS([strerror statfs strftime \
155                 memmove truncate initgroups putenv \
156                 memset memcpy tcsetattr tcgetattr cfgetospeed \
157                 sigaction sigemptyset sigprocmask sigaddset \
158                 sysconf setuid setreuid telldir seekdir])
161 dnl getpt is a GNU Extension (glibc 2.1.x)
163 AC_CHECK_FUNCS(getpt)
164 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
166 dnl replacing lstat with statlstat on sco makes it more portable between
167 dnl sco clones
168 AC_CHECK_FUNCS(statlstat)
171 dnl If running under AIX, AC_AIX does not tell us that
173 AC_MSG_CHECKING([for AIX defines])
174 AC_EGREP_CPP(yes,
175 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
177 #endif
178 ], [
179 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
180 AC_MSG_RESULT(yes)
181 ], [AC_MSG_RESULT(no)])
184 dnl This is from GNU fileutils, check aclocal.m4 for more information
186 AC_GET_FS_INFO
189 dnl Missing typedefs and replacements
190 dnl 
192 AC_TYPE_MODE_T
193 AC_CHECK_TYPE(umode_t, int)
194 AC_CHECK_TYPE(off_t, long)
195 AC_TYPE_PID_T
196 AC_TYPE_UID_T
197 AC_CHECK_TYPE(nlink_t, unsigned int)
199 dnl This is needed for regex.c only
200 AC_CHECK_TYPE(uintptr_t,
201               [AC_DEFINE(HAVE_UINTPTR_T, 1,
202                          [Define if you have the `uintptr_t' type.])
205 AC_FUNC_ALLOCA
206 AC_FUNC_STRCOLL
209 dnl X11 support.
212 textmode_x11_support="no"
213 AC_ARG_WITH(tm-x-support,
214         [  --with-tm-x-support      Get keyboard events from X Window System [[no]]],
215         [if test x$withval = xyes; then
216                 AC_PATH_XTRA
217                 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
218                 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
219                 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
220                           [Define to enable getting events from X Window System])
221                 textmode_x11_support="yes"
222         fi
226 dnl Network related functions
229 AC_CHECK_LIB(nsl, t_accept)
230 AC_CHECK_LIB(socket, socket)
232 have_socket=no
233 AC_CHECK_FUNCS(socket, have_socket=yes)
234 if test $have_socket = no; then
235   # socket 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, socket, [
238         LIBS="$LIBS -l$lib"
239         have_socket=yes
240         AC_DEFINE(HAVE_SOCKET)
241         break])
242   done
245 have_gethostbyname=no
246 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
247 if test $have_gethostbyname = no; then
248   # gethostbyname is not in the default libraries.  See if it's in some other.
249   for lib in bsd socket inet; do
250     AC_CHECK_LIB([$lib], [gethostbyname],
251                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
252   done
255 AC_CHECK_FUNCS(socketpair)
258 dnl Sequent wants getprocessstats
260 AC_CHECK_LIB(seq, get_process_stats, [
261         LIBS="$LIBS -lseq"
262         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
263                   [Define if you have function `get_process_stats' and
264 have to use that instead of gettimeofday])])
266 MC_VFS_CHECKS
268 vfs_type="normal"
269 if test x$use_vfs = xyes; then
270         AC_MSG_NOTICE([enabling VFS code])
271         vfs_type="Midnight Commander Virtual File System"
275 dnl Check for gpm mouse support (Linux only)
277 mouse_lib="xterm only"
278 AC_ARG_WITH(gpm-mouse, 
279         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
280                            [[yes if found]]])
282 case $host_os in
283 linux*)
284     if test x$with_gpm_mouse != xno; then
285         AC_CHECK_LIB(gpm, Gpm_Repeat,
286             [AC_DEFINE(HAVE_LIBGPM, 1,
287                        [Define to enable gpm mouse support on Linux])
288             mouse_lib="gpm and xterm"
289             MCLIBS="$MCLIBS -lgpm"],
290             [AC_MSG_WARN([libgpm is missing or older than 0.18])
291         ])
292     fi
293     ;;
294 esac
297 dnl Check nroff and the options it supports
299 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
301 dnl Default values
302 MANDOC=-man
303 MAN_FLAGS=
305 if $HAVE_nroff; then
306     AC_MSG_CHECKING([for manual formatting macros])
307     AC_CACHE_VAL(ac_cv_mandoc, [
308     nroff -mandoc < /dev/null > /dev/null 2>&1
309     if test $? = 0; then
310         ac_cv_mandoc=-mandoc
311     else
312         ac_cv_mandoc=-man
313     fi
314     ])
315     MANDOC=$ac_cv_mandoc
316     AC_MSG_RESULT([$MANDOC])
318     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
319     AC_CACHE_VAL(ac_cv_man_nocolor, [
320     nroff -c < /dev/null > /dev/null 2>&1
321     if test $? = 0; then
322         ac_cv_man_nocolor=-c
323     else
324         ac_cv_man_nocolor=
325     fi
326     ])
327     MAN_FLAGS=$ac_cv_man_nocolor
328     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
330     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
331     AC_CACHE_VAL(ac_cv_nroff_tascii, [
332     ac_cv_nroff_tascii=
333     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
334     if test $? = 0; then
335         ac_cv_nroff_tascii=-Tlatin1
336     else
337         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
338         if test $? = 0; then
339             ac_cv_nroff_tascii=-Tascii
340         fi
341     fi
342     ])
343     AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
344     MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
347 AC_SUBST(MANDOC)
348 AC_SUBST(MAN_FLAGS)
352 dnl Check for - option to file
354 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
355 if $HAVE_FILECMD; then
356     AC_MSG_CHECKING([for - option to file command])
357     AC_CACHE_VAL(ac_cv_filestdin, [[
358     cat > conftest.c <<\EOF
359 /* A comment */
360 #if 0
361 #endif
362 void main(void)
363 { return; }
365     cat > conftest.sed <<\EOF
366 s/^[^:]*:[      ]*//
367 s/[     ]*$//
369     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
370     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
371     if test "x$filehyphen_1" = "x$filehyphen_2"; then
372         ac_cv_filestdin=yes
373     else
374         ac_cv_filestdin=no
375     fi
376     rm conftest.c conftest.sed
377     ]])
379     if test x$ac_cv_filestdin = xyes; then
380         AC_DEFINE(FILE_STDIN, 1,
381                   [Define if the file command accepts - for stdin])
382     fi
383     filestdin=$ac_cv_filestdin
384     AC_MSG_RESULT([$filestdin])
386     dnl
387     dnl Check for -L option to file
388     dnl
390 AC_MSG_CHECKING([for -L option to file command])
391 AC_CACHE_VAL(ac_cv_filel, [
392 file -L . > /dev/null 2>&1
393 if test $? = 0
394 then
395     ac_cv_filel=yes
396 else
397     ac_cv_filel=no
400 if test x$ac_cv_filel = xyes; then
401     AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
403 filel=$ac_cv_filel
404 AC_MSG_RESULT([$filel])
405 fi 
408 AC_MSG_CHECKING([for subshell support])
409 AC_ARG_WITH(subshell,
410         [  --with-subshell          Compile in concurrent subshell [[yes]]
411   --with-subshell=optional Don't run concurrent shell by default [[no]]],
412         [result=no
413         if test x$withval = xoptional
414         then
415                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
416                           [Define to make subshell support optional])
417                 result="optional"
418         fi
419         if test x$withval = xyes
420         then 
421                 result="yes"
422         fi],
423         [dnl Default: enable the subshell support
424         result="yes"
426 if test "x$result" != xno; then
427         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
428                   [Define to enable subshell support])
430 AC_MSG_RESULT([$result])
431 subshell="$result"
435 dnl Select the screen library.  mcslang is the included S-Lang library.
437 AC_ARG_WITH(screen,
438         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
439                            ncurses [[slang if found, else mcslang]]])
441 case x$with_screen in
442 xslang)
443         MC_WITH_SLANG(strict)
444         ;;
445 xmcslang)
446         MC_WITH_MCSLANG
447         ;;
448 xncurses)
449         MC_WITH_NCURSES
450         ;;
452         MC_WITH_SLANG
453         ;;
455         AC_MSG_ERROR([Value of the screen library is incorrect])
456         ;;
457 esac
461 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
462 dnl Report an error if this option is not applicable.
464 AC_ARG_WITH(termcap,
465         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
466         [if test x$with_screen != xmcslang; then
467                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
468         fi
473 dnl Internal editor support.
475 AC_ARG_WITH(edit,
476         [  --with-edit              Enable internal editor [[yes]]])
478 if test x$with_edit != xno; then
479         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
480         use_edit=yes
481         edit_msg="yes"
482         AC_MSG_NOTICE([using internal editor])
483 else
484         edit_msg="no"
488 if test $use_vfs = yes; then
489     AC_ARG_WITH(ext2undel,
490         [  --with-ext2undel         Compile with ext2 undelete code [[yes if found]]],
491         [if test x$withval != xno; then
492                 if test x$withval != xyes; then
493                         LDFLAGS="$LDFLAGS -L$withval/lib"
494                         CPPFLAGS="$CPPFLAGS -I$withval/include"
495                 fi
496                 AC_EXT2_UNDEL
497         fi],[
498         dnl Default: detect
499         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
500     ])
504 dnl Check if the OS is supported by the console saver.
505 cons_saver=""
506 case $host_os in
507 linux*)
508     cons_saver=yes
509 esac
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 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
544 AC_SUBST(RPM_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
578 vfs/extfs/deb
579 vfs/extfs/ftplist
580 vfs/extfs/lslR
581 vfs/extfs/uar
582 vfs/extfs/ucpio
583 vfs/extfs/ulha 
584 vfs/extfs/uha
585 vfs/extfs/urar
586 vfs/extfs/uzip
587 vfs/extfs/uzoo
589 doc/mc.1 doc/mcedit.1 doc/mcserv.8
590 doc/es/mc.1 doc/es/Makefile
591 doc/hu/mc.1 doc/hu/Makefile
592 doc/it/mc.1 doc/it/Makefile
593 doc/pl/mc.1 doc/pl/Makefile
594 doc/ru/mc.1 doc/ru/Makefile
596 intl/Makefile
597 po/Makefile.in
600 AC_OUTPUT
602 echo "
603 Configuration:
605   Source code location:       ${srcdir}
606   Compiler:                   ${CC}
607   Compiler flags:             ${CFLAGS}
608   File system:                ${vfs_type}
609                               ${vfs_flags}
610   Screen library:             ${screen_msg}
611   Mouse support:              ${mouse_lib}
612   X11 events support:         ${textmode_x11_support}
613   With subshell support:      ${subshell}
614   Internal editor:            ${edit_msg}