Highlight navigation keys.
[pantumic.git] / configure.in
blob6f44a92425be797976f0efca941625dfb6b6393d
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-pre3a)
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 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.
121 case $host_os in
122 aux*)
123     # A/UX
124     LIBS="$LIBS -lposix"
125     AC_DEFINE(_POSIX_SOURCE)
126     ;;
127 sco*)
128     AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
129     AC_DEFINE(_SVID3, 1, [Needs to be defined on SCO])
130     ;;
131 esac
134 AC_PROG_INSTALL
135 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
136         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
137         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h])
139 AC_HEADER_TIME
140 AC_HEADER_SYS_WAIT
141 AC_HEADER_DIRENT
142 AC_HEADER_STDC
144 dnl Missing structure components
145 AC_STRUCT_ST_BLKSIZE
146 AC_STRUCT_ST_BLOCKS
147 AC_STRUCT_ST_RDEV
150 dnl Check availability of some functions 
151 dnl 
153 AC_CHECK_FUNCS([strerror statfs strftime \
154                 memmove truncate initgroups putenv \
155                 memset memcpy tcsetattr tcgetattr cfgetospeed \
156                 sigaction sigemptyset sigprocmask sigaddset \
157                 sysconf setuid setreuid telldir seekdir])
160 dnl getpt is a GNU Extension (glibc 2.1.x)
162 AC_CHECK_FUNCS(getpt)
163 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
165 dnl replacing lstat with statlstat on sco makes it more portable between
166 dnl sco clones
167 AC_CHECK_FUNCS(statlstat)
170 dnl If running under AIX, AC_AIX does not tell us that
172 AC_MSG_CHECKING([for AIX defines])
173 AC_EGREP_CPP(yes,
174 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
176 #endif
177 ], [
178 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
179 AC_MSG_RESULT(yes)
180 ], [AC_MSG_RESULT(no)])
183 dnl This is from GNU fileutils, check aclocal.m4 for more information
185 AC_GET_FS_INFO
188 dnl Missing typedefs and replacements
189 dnl 
191 AC_TYPE_MODE_T
192 AC_CHECK_TYPE(umode_t, int)
193 AC_CHECK_TYPE(off_t, long)
194 AC_TYPE_PID_T
195 AC_TYPE_UID_T
196 AC_CHECK_TYPE(nlink_t, unsigned int)
198 dnl This is needed for regex.c only
199 AC_CHECK_TYPE(uintptr_t,
200               [AC_DEFINE(HAVE_UINTPTR_T, 1,
201                          [Define if you have the `uintptr_t' type.])
204 AC_FUNC_ALLOCA
205 AC_FUNC_STRCOLL
208 dnl X11 support.
209 dnl Used to read keyboard modifiers when running under X11.
212 AC_PATH_XTRA
213 if test "x$no_x" = xyes; then
214     textmode_x11_support="no"
215 else
216     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
217     MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
218     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
219               [Define to enable getting events from X Window System])
220     textmode_x11_support="yes"
224 dnl Network related functions
227 AC_CHECK_LIB(nsl, t_accept)
228 AC_CHECK_LIB(socket, socket)
230 have_socket=no
231 AC_CHECK_FUNCS(socket, have_socket=yes)
232 if test $have_socket = no; then
233   # socket is not in the default libraries.  See if it's in some other.
234   for lib in bsd socket inet; do
235     AC_CHECK_LIB($lib, socket, [
236         LIBS="$LIBS -l$lib"
237         have_socket=yes
238         AC_DEFINE(HAVE_SOCKET)
239         break])
240   done
243 have_gethostbyname=no
244 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
245 if test $have_gethostbyname = no; then
246   # gethostbyname is not in the default libraries.  See if it's in some other.
247   for lib in bsd socket inet; do
248     AC_CHECK_LIB([$lib], [gethostbyname],
249                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
250   done
253 AC_CHECK_FUNCS(socketpair)
256 dnl Sequent wants getprocessstats
258 AC_CHECK_LIB(seq, get_process_stats, [
259         LIBS="$LIBS -lseq"
260         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
261                   [Define if you have function `get_process_stats' and
262 have to use that instead of gettimeofday])])
264 MC_VFS_CHECKS
266 vfs_type="normal"
267 if test x$use_vfs = xyes; then
268         AC_MSG_NOTICE([enabling VFS code])
269         vfs_type="Midnight Commander Virtual File System"
273 dnl Check for gpm mouse support (Linux only)
275 mouse_lib="xterm only"
276 AC_ARG_WITH(gpm-mouse, 
277         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
278                            [[yes if found]]])
280 case $host_os in
281 linux*)
282     if test x$with_gpm_mouse != xno; then
283         AC_CHECK_LIB(gpm, Gpm_Repeat,
284             [AC_DEFINE(HAVE_LIBGPM, 1,
285                        [Define to enable gpm mouse support on Linux])
286             mouse_lib="gpm and xterm"
287             MCLIBS="$MCLIBS -lgpm"],
288             [AC_MSG_WARN([libgpm is missing or older than 0.18])
289         ])
290     fi
291     ;;
292 esac
295 dnl Check nroff and the options it supports
297 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
299 dnl Default values
300 MANDOC=-man
301 MAN_FLAGS=
303 if $HAVE_nroff; then
304     AC_MSG_CHECKING([for manual formatting macros])
305     AC_CACHE_VAL(ac_cv_mandoc, [
306     nroff -mandoc < /dev/null > /dev/null 2>&1
307     if test $? = 0; then
308         ac_cv_mandoc=-mandoc
309     else
310         ac_cv_mandoc=-man
311     fi
312     ])
313     MANDOC=$ac_cv_mandoc
314     AC_MSG_RESULT([$MANDOC])
316     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
317     AC_CACHE_VAL(ac_cv_man_nocolor, [
318     nroff -c < /dev/null > /dev/null 2>&1
319     if test $? = 0; then
320         ac_cv_man_nocolor=-c
321     else
322         ac_cv_man_nocolor=
323     fi
324     ])
325     MAN_FLAGS=$ac_cv_man_nocolor
326     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
328     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
329     AC_CACHE_VAL(ac_cv_nroff_tascii, [
330     ac_cv_nroff_tascii=
331     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
332     if test $? = 0; then
333         ac_cv_nroff_tascii=-Tlatin1
334     else
335         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
336         if test $? = 0; then
337             ac_cv_nroff_tascii=-Tascii
338         fi
339     fi
340     ])
341     AC_MSG_RESULT([${ac_cv_nroff_tascii-no}])
342     MAN_FLAGS="$MAN_FLAGS $ac_cv_nroff_tascii"
345 AC_SUBST(MANDOC)
346 AC_SUBST(MAN_FLAGS)
350 dnl Check for - option to file
352 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
353 if $HAVE_FILECMD; then
354     AC_MSG_CHECKING([for - option to file command])
355     AC_CACHE_VAL(ac_cv_filestdin, [[
356     cat > conftest.c <<\EOF
357 /* A comment */
358 #if 0
359 #endif
360 void main(void)
361 { return; }
363     cat > conftest.sed <<\EOF
364 s/^[^:]*:[      ]*//
365 s/[     ]*$//
367     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
368     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
369     if test "x$filehyphen_1" = "x$filehyphen_2"; then
370         ac_cv_filestdin=yes
371     else
372         ac_cv_filestdin=no
373     fi
374     rm conftest.c conftest.sed
375     ]])
377     if test x$ac_cv_filestdin = xyes; then
378         AC_DEFINE(FILE_STDIN, 1,
379                   [Define if the file command accepts - for stdin])
380     fi
381     filestdin=$ac_cv_filestdin
382     AC_MSG_RESULT([$filestdin])
384     dnl
385     dnl Check for -L option to file
386     dnl
388 AC_MSG_CHECKING([for -L option to file command])
389 AC_CACHE_VAL(ac_cv_filel, [
390 file -L . > /dev/null 2>&1
391 if test $? = 0
392 then
393     ac_cv_filel=yes
394 else
395     ac_cv_filel=no
398 if test x$ac_cv_filel = xyes; then
399     AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
401 filel=$ac_cv_filel
402 AC_MSG_RESULT([$filel])
403 fi 
406 AC_MSG_CHECKING([for subshell support])
407 AC_ARG_WITH(subshell,
408         [  --with-subshell          Compile in concurrent subshell [[yes]]
409   --with-subshell=optional Don't run concurrent shell by default [[no]]],
410         [result=no
411         if test x$withval = xoptional
412         then
413                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
414                           [Define to make subshell support optional])
415                 result="optional"
416         fi
417         if test x$withval = xyes
418         then 
419                 result="yes"
420         fi],
421         [dnl Default: enable the subshell support
422         result="yes"
424 if test "x$result" != xno; then
425         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
426                   [Define to enable subshell support])
428 AC_MSG_RESULT([$result])
429 subshell="$result"
433 dnl Select the screen library.  mcslang is the included S-Lang library.
435 AC_ARG_WITH(screen,
436         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
437                            ncurses [[slang if found, else mcslang]]])
439 case x$with_screen in
440 xslang)
441         MC_WITH_SLANG(strict)
442         ;;
443 xmcslang)
444         MC_WITH_MCSLANG
445         ;;
446 xncurses)
447         MC_WITH_NCURSES
448         ;;
450         MC_WITH_SLANG
451         ;;
453         AC_MSG_ERROR([Value of the screen library is incorrect])
454         ;;
455 esac
459 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
460 dnl Report an error if this option is not applicable.
462 AC_ARG_WITH(termcap,
463         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
464         [if test x$with_screen != xmcslang; then
465                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
466         fi
471 dnl Internal editor support.
473 AC_ARG_WITH(edit,
474         [  --with-edit              Enable internal editor [[yes]]])
476 if test x$with_edit != xno; then
477         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
478         use_edit=yes
479         edit_msg="yes"
480         AC_MSG_NOTICE([using internal editor])
481 else
482         edit_msg="no"
486 if test $use_vfs = yes; then
487     AC_ARG_WITH(ext2undel,
488         [  --with-ext2undel         Compile with ext2 undelete code [[yes if found]]],
489         [if test x$withval != xno; then
490                 if test x$withval != xyes; then
491                         LDFLAGS="$LDFLAGS -L$withval/lib"
492                         CPPFLAGS="$CPPFLAGS -I$withval/include"
493                 fi
494                 AC_EXT2_UNDEL
495         fi],[
496         dnl Default: detect
497         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL], , [-lcom_err])
498     ])
502 dnl Check if the OS is supported by the console saver.
503 cons_saver=""
504 case $host_os in
505 linux*)
506     cons_saver=yes
507 esac
511 dnl User visible support for charset conversion.
513 AC_ARG_ENABLE([charset],
514               [  --enable-charset         Support for charset selection and conversion [[no]]])
515 have_charset=
516 if test "x$enable_charset" = xyes; then
517   if test "x$am_cv_func_iconv" != xyes; then
518     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])
519   else
520     AC_DEFINE(HAVE_CHARSET, 1,
521               [Define to enable charset selection and conversion])
522     have_charset=yes
523   fi
526 if test "$GLIBC21" != yes; then
527     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
530 AC_SUBST(CFLAGS)
531 AC_SUBST(CPPFLAGS)
532 AC_SUBST(LDFLAGS)
533 AC_SUBST(LIBS)
535 dnl Libraries used only when building the mc binary
536 AC_SUBST(MCLIBS)
538 dnl Version for the RedHat package, without dashes
539 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
540 AC_SUBST(RPM_VERSION)
542 if test -n "$use_smbfs"; then
543   AC_CONFIG_SUBDIRS([vfs/samba])
546 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
547 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
548 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
549 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
550 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
551 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
552 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
553 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
554 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
556 AH_BOTTOM([#include <extraconf.h>])
558 AC_CONFIG_FILES([
559 Makefile 
560 mc.spec
561 doc/Makefile 
562 vfs/Makefile
563 vfs/extfs/Makefile
564 lib/Makefile
565 src/Makefile
566 slang/Makefile 
567 edit/Makefile 
568 syntax/Makefile
569 pc/Makefile
570 m4/Makefile
572 lib/mc.ext
574 vfs/extfs/a
575 vfs/extfs/apt
576 vfs/extfs/audio
577 vfs/extfs/deb
578 vfs/extfs/deba
579 vfs/extfs/debd
580 vfs/extfs/dpkg
581 vfs/extfs/hp48
582 vfs/extfs/lslR
583 vfs/extfs/mailfs
584 vfs/extfs/patchfs
585 vfs/extfs/rpms
586 vfs/extfs/uar
587 vfs/extfs/uarj
588 vfs/extfs/uha
589 vfs/extfs/ulha 
590 vfs/extfs/urar
591 vfs/extfs/uzip
592 vfs/extfs/uzoo
594 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
595 doc/es/mc.1 doc/es/Makefile
596 doc/hu/mc.1 doc/hu/Makefile
597 doc/it/mc.1 doc/it/Makefile
598 doc/pl/mc.1 doc/pl/Makefile
599 doc/ru/mc.1 doc/ru/Makefile
601 intl/Makefile
602 po/Makefile.in
605 AC_OUTPUT
607 echo "
608 Configuration:
610   Source code location:       ${srcdir}
611   Compiler:                   ${CC}
612   Compiler flags:             ${CFLAGS}
613   File system:                ${vfs_type}
614                               ${vfs_flags}
615   Screen library:             ${screen_msg}
616   Mouse support:              ${mouse_lib}
617   X11 events support:         ${textmode_x11_support}
618   With subshell support:      ${subshell}
619   Internal editor:            ${edit_msg}