* include/slang.h: Revert last changes - it breaks compiling
[midnight-commander.git] / configure.ac
blob590b44f594a859e660396449719610162e077026
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.1-pre1a)
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 esac
148 AC_PROG_INSTALL
149 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
150         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
151         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
152         security/pam_misc.h])
154 AC_HEADER_TIME
155 AC_HEADER_SYS_WAIT
156 AC_HEADER_DIRENT
157 AC_HEADER_STDC
159 dnl Missing structure components
160 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
161 AC_STRUCT_ST_BLOCKS
164 dnl Check availability of some functions 
165 dnl 
167 AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
168                 putenv setreuid setuid statfs strerror strftime \
169                 sysconf tcgetattr tcsetattr truncate])
171 dnl S-Lang needs all four functions to be defined to use POSIX signal API
172 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
173 if test x$slang_signals != xno; then
174     AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
178 dnl getpt is a GNU Extension (glibc 2.1.x)
180 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
181 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
183 dnl replacing lstat with statlstat on sco makes it more portable between
184 dnl sco clones
185 AC_CHECK_FUNCS(statlstat)
188 dnl If running under AIX, AC_AIX does not tell us that
190 AC_MSG_CHECKING([for AIX defines])
191 AC_EGREP_CPP(yes,
192 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
194 #endif
195 ], [
196 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
197 AC_MSG_RESULT(yes)
198 ], [AC_MSG_RESULT(no)])
201 dnl This is from GNU fileutils, check aclocal.m4 for more information
203 AC_GET_FS_INFO
206 dnl Missing typedefs and replacements
207 dnl 
209 AC_TYPE_MODE_T
210 AC_CHECK_TYPE(umode_t, int)
211 AC_CHECK_TYPE(off_t, long)
212 AC_TYPE_PID_T
213 AC_TYPE_UID_T
214 AC_CHECK_TYPE(nlink_t, unsigned int)
216 dnl This is needed for regex.c only
217 AC_CHECK_TYPE(uintptr_t,
218               [AC_DEFINE(HAVE_UINTPTR_T, 1,
219                          [Define if you have the `uintptr_t' type.])
222 AC_FUNC_ALLOCA
223 AC_FUNC_STRCOLL
226 dnl X11 support.
227 dnl Used to read keyboard modifiers when running under X11.
230 AC_PATH_XTRA
231 if test "x$no_x" = xyes; then
232     textmode_x11_support="no"
233 else
234     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
235     if test "x$mc_cv_g_module_supported" = "xyes" ; then
236         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
237         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
238         dnl functionality is supported on the system.  This way, mc will be
239         dnl linked against the gmodule library only when it's really required.
240         GLIB_CFLAGS="$GMODULE_CFLAGS"
241         GLIB_LIBS="$GMODULE_LIBS"
242     else
243         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
244     fi
245     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
246               [Define to enable getting events from X Window System])
247     textmode_x11_support="yes"
251 dnl Try to find static libraries for glib and gmodule.
253 if test x$with_glib_static = xyes; then
254     new_GLIB_LIBS=
255     for i in $GLIB_LIBS; do
256         case x$i in
257         x-lglib*)
258             lib=glib ;;
259         x-lgmodule*)
260             lib=gmodule ;;
261         *)
262             lib=
263             add="$i" ;;
264         esac
266         if test -n "$lib"; then
267             lib1=`echo $i | sed 's/^-l//'`
268             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
269                 add="$GLIB_LIBDIR/lib${lib1}.a"
270             else
271                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
272                     add="$GLIB_LIBDIR/lib${lib}.a"
273                 else
274                     AC_MSG_ERROR([Cannot find static $lib])
275                 fi
276             fi
277         fi
278         new_GLIB_LIBS="$new_GLIB_LIBS $add"
279     done
280     GLIB_LIBS="$new_GLIB_LIBS"
285 dnl Network related functions
288 AC_CHECK_LIB(nsl, t_accept)
289 AC_CHECK_LIB(socket, socket)
291 have_socket=no
292 AC_CHECK_FUNCS(socket, have_socket=yes)
293 if test $have_socket = no; then
294   # socket is not in the default libraries.  See if it's in some other.
295   for lib in bsd socket inet; do
296     AC_CHECK_LIB($lib, socket, [
297         LIBS="$LIBS -l$lib"
298         have_socket=yes
299         AC_DEFINE(HAVE_SOCKET)
300         break])
301   done
304 have_gethostbyname=no
305 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
306 if test $have_gethostbyname = no; then
307   # gethostbyname is not in the default libraries.  See if it's in some other.
308   for lib in bsd socket inet; do
309     AC_CHECK_LIB([$lib], [gethostbyname],
310                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
311   done
315 dnl Sequent wants getprocessstats
317 AC_CHECK_LIB(seq, get_process_stats, [
318         LIBS="$LIBS -lseq"
319         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
320                   [Define if you have function `get_process_stats' and
321 have to use that instead of gettimeofday])])
323 MC_VFS_CHECKS
325 vfs_type="normal"
326 if test x$use_vfs = xyes; then
327         AC_MSG_NOTICE([enabling VFS code])
328         vfs_type="Midnight Commander Virtual File System"
332 dnl Check for gpm mouse support (Linux only)
334 mouse_lib="xterm only"
335 AC_ARG_WITH(gpm-mouse, 
336         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
337                            [[yes if found]]])
339 case $host_os in
340 linux*)
341     if test x$with_gpm_mouse != xno; then
342         AC_CHECK_LIB(gpm, Gpm_Repeat,
343             [AC_DEFINE(HAVE_LIBGPM, 1,
344                        [Define to enable gpm mouse support on Linux])
345             mouse_lib="gpm and xterm"
346             MCLIBS="$MCLIBS -lgpm"],
347             [AC_MSG_WARN([libgpm is missing or older than 0.18])
348         ])
349     fi
350     ;;
351 esac
354 dnl Check nroff and the options it supports
356 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
358 dnl Default values
359 MANDOC=-man
360 MAN_FLAGS=
362 if $HAVE_nroff; then
363     AC_MSG_CHECKING([for manual formatting macros])
364     AC_CACHE_VAL(mc_cv_mandoc, [
365     nroff -mandoc < /dev/null > /dev/null 2>&1
366     if test $? = 0; then
367         mc_cv_mandoc=-mandoc
368     else
369         mc_cv_mandoc=-man
370     fi
371     ])
372     MANDOC=$mc_cv_mandoc
373     AC_MSG_RESULT([$MANDOC])
375     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
376     AC_CACHE_VAL(mc_cv_man_nocolor, [
377     nroff -c < /dev/null > /dev/null 2>&1
378     if test $? = 0; then
379         mc_cv_man_nocolor=-c
380     else
381         mc_cv_man_nocolor=
382     fi
383     ])
384     MAN_FLAGS=$mc_cv_man_nocolor
385     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
387     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
388     AC_CACHE_VAL(mc_cv_nroff_tascii, [
389     mc_cv_nroff_tascii=
390     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
391     if test $? = 0; then
392         mc_cv_nroff_tascii=-Tlatin1
393     else
394         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
395         if test $? = 0; then
396             mc_cv_nroff_tascii=-Tascii
397         fi
398     fi
399     ])
400     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
401     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
404 AC_SUBST(MANDOC)
405 AC_SUBST(MAN_FLAGS)
409 dnl Check for -L option to file
411 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
412 if $HAVE_FILECMD; then
413     AC_MSG_CHECKING([for -L option to file command])
414     AC_CACHE_VAL(mc_cv_filel, [
415     file -L . > /dev/null 2>&1
416     if test $? = 0; then
417         mc_cv_filel=yes
418     else
419         mc_cv_filel=no
420     fi
421     ])
422     if test x$mc_cv_filel = xyes; then
423         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
424     fi
425     filel=$mc_cv_filel
426     AC_MSG_RESULT([$filel])
430 AC_MSG_CHECKING([for subshell support])
431 AC_ARG_WITH(subshell,
432         [  --with-subshell          Compile in concurrent subshell [[yes]]
433   --with-subshell=optional Don't run concurrent shell by default [[no]]],
434         [result=no
435         if test x$withval = xoptional
436         then
437                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
438                           [Define to make subshell support optional])
439                 result="optional"
440         fi
441         if test x$withval = xyes
442         then 
443                 result="yes"
444         fi],
445         [dnl Default: enable the subshell support
446         result="yes"
448 if test "x$result" != xno; then
449         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
450                   [Define to enable subshell support])
452 AC_MSG_RESULT([$result])
453 subshell="$result"
457 dnl Select the screen library.  mcslang is the included S-Lang library.
459 AC_ARG_WITH(screen,
460         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
461                            ncurses [[slang if found, else mcslang]]])
463 case x$with_screen in
464 xslang)
465         MC_WITH_SLANG(strict)
466         ;;
467 xmcslang)
468         MC_WITH_MCSLANG
469         ;;
470 xncurses)
471         MC_WITH_NCURSES
472         ;;
474         MC_WITH_SLANG
475         ;;
477         AC_MSG_ERROR([Value of the screen library is incorrect])
478         ;;
479 esac
483 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
484 dnl Report an error if this option is not applicable.
486 AC_ARG_WITH(termcap,
487         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
488         [if test x$with_screen != xmcslang; then
489                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
490         fi
495 dnl Internal editor support.
497 AC_ARG_WITH(edit,
498         [  --with-edit              Enable internal editor [[yes]]])
500 if test x$with_edit != xno; then
501         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
502         use_edit=yes
503         edit_msg="yes"
504         AC_MSG_NOTICE([using internal editor])
505 else
506         edit_msg="no"
510 dnl Check if the OS is supported by the console saver.
511 cons_saver=""
512 case $host_os in
513 linux*)
514     cons_saver=yes
515 esac
518 dnl Support for background operations
519 AC_ARG_ENABLE([background],
520               [  --enable-background      Support for background file operations [[yes]]])
521 if test "x$enable_background" != xno; then
522     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
527 dnl User visible support for charset conversion.
529 AC_ARG_ENABLE([charset],
530               [  --enable-charset         Support for charset selection and conversion [[no]]])
531 have_charset=
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   fi
542 if test "$GLIBC21" != yes; then
543     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
546 if test x"$USE_MAINTAINER_MODE" = x"yes"; then
547     if test x"${enable_gcc_warnings+set}" != x"set"; then
548         CFLAGS="-Wall $CFLAGS"
549     fi
552 ri_GCC_WARNINGS
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 doc/Makefile 
584 vfs/Makefile
585 vfs/extfs/Makefile
586 lib/Makefile
587 src/Makefile
588 slang/Makefile 
589 edit/Makefile 
590 syntax/Makefile
591 m4/Makefile
593 lib/mc.ext
595 vfs/extfs/a
596 vfs/extfs/apt
597 vfs/extfs/audio
598 vfs/extfs/deb
599 vfs/extfs/deba
600 vfs/extfs/debd
601 vfs/extfs/dpkg
602 vfs/extfs/iso9660
603 vfs/extfs/hp48
604 vfs/extfs/lslR
605 vfs/extfs/mailfs
606 vfs/extfs/patchfs
607 vfs/extfs/rpms
608 vfs/extfs/uar
609 vfs/extfs/uarj
610 vfs/extfs/uha
611 vfs/extfs/ulha 
612 vfs/extfs/urar
613 vfs/extfs/uzip
614 vfs/extfs/uzoo
616 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
617 doc/es/mc.1 doc/es/Makefile
618 doc/hu/mc.1 doc/hu/Makefile
619 doc/it/mc.1 doc/it/Makefile
620 doc/pl/mc.1 doc/pl/Makefile
621 doc/ru/mc.1 doc/ru/Makefile
622 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
624 intl/Makefile
625 po/Makefile.in
628 AC_OUTPUT
630 echo "
631 Configuration:
633   Source code location:       ${srcdir}
634   Compiler:                   ${CC}
635   Compiler flags:             ${CFLAGS}
636   File system:                ${vfs_type}
637                               ${vfs_flags}
638   Screen library:             ${screen_msg}
639   Mouse support:              ${mouse_lib}
640   X11 events support:         ${textmode_x11_support}
641   With subshell support:      ${subshell}
642   Internal editor:            ${edit_msg}