Ticket #1423 ([FreeBSD] Fail to compile with option '--with-screen=slang' with alread...
[midnight-commander.git] / configure.ac
blobea29612cf38cbc9668bfc9bee306941b9507881a
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.60)
7 m4_pattern_forbid(MC_)
8 AC_CONFIG_SRCDIR(src/main.c)
9 AC_CONFIG_AUX_DIR(config)
10 MC_VERSION
11 AM_INIT_AUTOMAKE(mc, ${VERSION} )
13 AM_CONFIG_HEADER(config.h)
14 AM_MAINTAINER_MODE
16 AC_CANONICAL_HOST
18 AC_USE_SYSTEM_EXTENSIONS
20 AC_PROG_LIBTOOL
22 AC_ISC_POSIX
24 AC_PROG_CC_STDC
26 dnl Doxygen
28 DX_HTML_FEATURE(ON)
29 DX_CHM_FEATURE(OFF)
30 DX_CHI_FEATURE(OFF)
31 DX_MAN_FEATURE(OFF)
32 DX_RTF_FEATURE(OFF)
33 DX_XML_FEATURE(OFF)
34 DX_PDF_FEATURE(OFF)
35 DX_PS_FEATURE(OFF)
36 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
38 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
40 dnl
41 dnl First try glib 2.x.
42 dnl Keep this check close to the beginning, so that the users
43 dnl without any glib won't have their time wasted by other checks.
44 dnl
46 AC_ARG_WITH([glib_static],
47             [  --with-glib-static       Link glib statically [[no]]])
49 glib_found=no
51 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6], [glib_found=yes], [:])
53 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
54 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
56 if test "x$gmodule_found" = "xyes" ; then
57         dnl Check if the gmodule functionality supported on this system.
58         AC_G_MODULE_SUPPORTED
61 AC_HEADER_MAJOR
62 AC_C_CONST
63 AC_SYS_LARGEFILE
65 AC_PROG_LN_S
66 AC_CHECK_TOOL(AR, ar, ar)
68 dnl Only list browsers here that can be run in background (i.e. with `&')
69 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
71 dnl
72 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
73 dnl We use only part of the functionality of mmap, so on AIX,
74 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
75 dnl
76 AC_ARG_WITH(mmap,
77         [  --with-mmap              Use the mmap call [[yes if found]]])
78 if test x$with_mmap != xno; then
79     if test x$with_mmap = x; then
80         AC_FUNC_MMAP
81     else
82         AC_DEFINE(HAVE_MMAP, 1)
83     fi
86 dnl
87 dnl Internationalization
88 dnl
89 AM_GNU_GETTEXT(no-libtool, need-ngettext)
90 AM_GNU_GETTEXT_VERSION(0.14.3)
92 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
93     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
96 dnl Determine which help translations we want to install.
97 ALL_DOC_LINGUAS="es hu it pl ru sr"
99 DOC_LINGUAS=
100 if test "x$USE_NLS" = xyes; then
101     if test -z "$LINGUAS"; then
102         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
103     else
104         langs="$LINGUAS"
105     fi
106 else
107     langs=
110 for h_lang in $ALL_DOC_LINGUAS; do
111     for lang in $langs; do
112         if test "$lang" = "$h_lang"; then
113             DOC_LINGUAS="$DOC_LINGUAS $lang"
114             break
115         fi
116     done
117 done
118 AC_SUBST(DOC_LINGUAS)
121 dnl OS specific flags.
123 case $host_os in
124 aux*)
125     # A/UX
126     LIBS="$LIBS -lposix"
127     AC_DEFINE(_POSIX_SOURCE)
128     ;;
129 esac
131 dnl Extended Character Sets
133 AC_ARG_ENABLE([extcharset],
134         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
135 if test x"$enable_extcharset" = x"yes"; then
136   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
139 AC_PROG_INSTALL
140 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
141         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/vfs.h sys/time.h \
142         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
143         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
144         sys/mkdev.h wchar.h wctype.h])
146 AC_HEADER_TIME
147 AC_HEADER_SYS_WAIT
148 AC_HEADER_DIRENT
149 AC_HEADER_STDC
151 dnl Missing structure components
152 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
153 AC_STRUCT_ST_BLOCKS
156 dnl Check availability of some functions 
157 dnl 
159 AC_CHECK_FUNCS([\
160         atoll \
161         cfgetospeed \
162         getegid geteuid getgid getsid getuid \
163         initgroups isascii \
164         memcpy memset \
165         putenv \
166         setreuid setuid statfs strerror strftime sysconf \
167         tcgetattr tcsetattr truncate \
171 dnl getpt is a GNU Extension (glibc 2.1.x)
173 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
174 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
176 dnl replacing lstat with statlstat on sco makes it more portable between
177 dnl sco clones
178 AC_CHECK_FUNCS(statlstat)
181 dnl If running under AIX, AC_AIX does not tell us that
183 AC_MSG_CHECKING([for AIX defines])
184 AC_EGREP_CPP(yes,
185 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
187 #endif
188 ], [
189 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
190 AC_MSG_RESULT(yes)
191 ], [AC_MSG_RESULT(no)])
194 dnl This is from GNU fileutils, check aclocal.m4 for more information
196 AC_GET_FS_INFO
199 dnl Missing typedefs and replacements
200 dnl 
202 AC_CHECK_SIZEOF(long)
203 AC_CHECK_SIZEOF(long long)
204 AC_TYPE_MODE_T
205 AC_TYPE_OFF_T
206 AC_CHECK_SIZEOF(off_t)
207 AC_TYPE_PID_T
208 AC_TYPE_UID_T
209 AC_CHECK_TYPE(nlink_t, unsigned int)
210 AC_CHECK_TYPES([socklen_t],,,
212 #include <sys/types.h>
213 #include <sys/socket.h>
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_SEARCH_LIBS([socket], [socket])
289 AC_SEARCH_LIBS([gethostbyname], [nsl])
292 dnl Sequent wants getprocessstats
294 AC_CHECK_LIB(seq, get_process_stats, [
295         LIBS="$LIBS -lseq"
296         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
297                   [Define if you have function `get_process_stats' and
298 have to use that instead of gettimeofday])])
300 AC_MC_VFS_CHECKS
302 vfs_type="normal"
303 if test x$use_vfs = xyes; then
304         AC_MSG_NOTICE([enabling VFS code])
305         vfs_type="Midnight Commander Virtual File System"
309 dnl Check for gpm mouse support (Linux only)
311 mouse_lib="xterm only"
312 AC_ARG_WITH(gpm-mouse, 
313         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
314                            [[yes if found]]])
316 case $host_os in
317 linux*)
318     if test x$with_gpm_mouse != xno; then
319         AC_CHECK_LIB(gpm, Gpm_Repeat,
320             [AC_DEFINE(HAVE_LIBGPM, 1,
321                        [Define to enable gpm mouse support on Linux])
322             mouse_lib="gpm and xterm"
323             MCLIBS="$MCLIBS -lgpm"],
324             [AC_MSG_WARN([libgpm is missing or older than 0.18])
325         ])
326     fi
327     ;;
328 esac
330 MC_CHECK_SEARCH_TYPE
333 dnl Check nroff and the options it supports
335 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
337 dnl Default values
338 MANDOC=-man
339 MAN_FLAGS=
341 if $HAVE_nroff; then
342     AC_MSG_CHECKING([for manual formatting macros])
343     AC_CACHE_VAL(mc_cv_mandoc, [
344     nroff -mandoc < /dev/null > /dev/null 2>&1
345     if test $? = 0; then
346         mc_cv_mandoc=-mandoc
347     else
348         mc_cv_mandoc=-man
349     fi
350     ])
351     MANDOC=$mc_cv_mandoc
352     AC_MSG_RESULT([$MANDOC])
354     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
355     AC_CACHE_VAL(mc_cv_man_nocolor, [
356     nroff -c < /dev/null > /dev/null 2>&1
357     if test $? = 0; then
358         mc_cv_man_nocolor=-c
359     else
360         mc_cv_man_nocolor=
361     fi
362     ])
363     MAN_FLAGS=$mc_cv_man_nocolor
364     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
366     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
367     AC_CACHE_VAL(mc_cv_nroff_tascii, [
368     mc_cv_nroff_tascii=
369     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
370     if test $? = 0; then
371         mc_cv_nroff_tascii=-Tlatin1
372     else
373         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
374         if test $? = 0; then
375             mc_cv_nroff_tascii=-Tascii
376         fi
377     fi
378     ])
379     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
380     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
383 AC_SUBST(MANDOC)
384 AC_SUBST(MAN_FLAGS)
388 dnl Check for -L option to file
390 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
391 if $HAVE_FILECMD; then
392     AC_MSG_CHECKING([for -L option to file command])
393     AC_CACHE_VAL(mc_cv_filel, [
394     file -L . > /dev/null 2>&1
395     if test $? = 0; then
396         mc_cv_filel=yes
397     else
398         mc_cv_filel=no
399     fi
400     ])
401     if test x$mc_cv_filel = xyes; then
402         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
403     fi
404     filel=$mc_cv_filel
405     AC_MSG_RESULT([$filel])
409 AC_MSG_CHECKING([for subshell support])
410 AC_ARG_WITH(subshell,
411         [  --with-subshell          Compile in concurrent subshell [[yes]]
412   --with-subshell=optional Don't run concurrent shell by default [[no]]],
413         [result=no
414         if test x$withval = xoptional
415         then
416                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
417                           [Define to make subshell support optional])
418                 result="optional"
419         fi
420         if test x$withval = xyes
421         then 
422                 result="yes"
423         fi],
424         [dnl Default: enable the subshell support
425         result="yes"
427 if test "x$result" != xno; then
428         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
429                   [Define to enable subshell support])
431 AC_MSG_RESULT([$result])
432 subshell="$result"
436 dnl Select the screen library.
438 AC_ARG_WITH(screen,
439         [  --with-screen=LIB        Compile with screen library: slang or
440                            ncurses [[slang if found]]])
442 case x$with_screen in
443 xslang)
444         MC_WITH_SLANG(strict)
445         ;;
446 xncurses)
447         MC_WITH_NCURSES
448         ;;
449 xncursesw)
450         MC_WITH_NCURSESW
451         ;;
453         MC_WITH_SLANG
454         ;;
456         AC_MSG_ERROR([Value of the screen library is incorrect])
457         ;;
458 esac
462 dnl Internal editor support.
464 AC_ARG_WITH(edit,
465         [  --with-edit              Enable internal editor [[yes]]])
467 if test x$with_edit != xno; then
468         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
469         use_edit=yes
470         edit_msg="yes"
471         AC_MSG_NOTICE([using internal editor])
472 else
473         edit_msg="no"
477 dnl Check if the OS is supported by the console saver.
478 cons_saver=""
479 case $host_os in
480 linux*)
481     cons_saver=yes
482 esac
485 dnl Support for background operations
486 AC_ARG_ENABLE([background],
487               [  --enable-background      Support for background file operations [[yes]]])
488 if test "x$enable_background" != xno; then
489     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
494 dnl User visible support for charset conversion.
496 AC_ARG_ENABLE([charset],
497               [  --enable-charset         Support for charset selection and conversion [[no]]])
498 have_charset=
499 charset_msg="no"
500 if test "x$enable_charset" = xyes; then
501     AC_DEFINE(HAVE_CHARSET, 1,
502               [Define to enable charset selection and conversion])
503     have_charset=yes
504     charset_msg="yes"
507 if test "$GLIBC21" != yes; then
508     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
511 dnl If default CFLAGS is used with gcc, add -Wall
512 if test -z "$ac_env_CFLAGS_set"; then
513     if test -n "$GCC"; then
514         CFLAGS="$CFLAGS -Wall"
515     fi
518 AC_SUBST(CFLAGS)
519 AC_SUBST(CPPFLAGS)
520 AC_SUBST(LDFLAGS)
521 AC_SUBST(LIBS)
523 dnl Libraries used only when building the mc binary
524 AC_SUBST(MCLIBS)
526 dnl Version for the RedHat package, without dashes
527 RPM_VERSION=`echo $VERSION | sed 's/-/./g'`
528 AC_SUBST(RPM_VERSION)
530 if test -n "$use_smbfs"; then
531   AC_CONFIG_SUBDIRS([vfs/samba])
534 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
535 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
536 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
537 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
538 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
539 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
540 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
541 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
543 AC_CONFIG_FILES([
544 Makefile
546 contrib/Makefile
547 contrib/dist/Makefile
548 contrib/dist/debian/Makefile
549 contrib/dist/gentoo/Makefile
550 contrib/dist/redhat/Makefile
551 contrib/dist/redhat/mc.spec
552 contrib/dist/mc.qpg
553 contrib/dist/pkginfo
554 contrib/dist/prototype
556 misc/Makefile
557 misc/mc.ext
559 src/Makefile
560 src/mcconfig/Makefile
561 src/search/Makefile
563 edit/Makefile 
564 syntax/Makefile
566 vfs/Makefile
567 vfs/extfs/Makefile
568 vfs/extfs/a
569 vfs/extfs/apt
570 vfs/extfs/audio
571 vfs/extfs/deb
572 vfs/extfs/deba
573 vfs/extfs/debd
574 vfs/extfs/dpkg
575 vfs/extfs/iso9660
576 vfs/extfs/hp48
577 vfs/extfs/lslR
578 vfs/extfs/mailfs
579 vfs/extfs/patchfs
580 vfs/extfs/rpms
581 vfs/extfs/uace
582 vfs/extfs/ualz
583 vfs/extfs/uar
584 vfs/extfs/uarc
585 vfs/extfs/uarj
586 vfs/extfs/uc1541
587 vfs/extfs/uha
588 vfs/extfs/ulha 
589 vfs/extfs/urar
590 vfs/extfs/uzip
591 vfs/extfs/uzoo
593 doc/Makefile 
594 doc/hints/Makefile
595 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
596 doc/man/es/mc.1 doc/man/es/Makefile
597 doc/man/hu/mc.1 doc/man/hu/Makefile
598 doc/man/it/mc.1 doc/man/it/Makefile
599 doc/man/pl/mc.1 doc/man/pl/Makefile
600 doc/man/ru/mc.1 doc/man/ru/Makefile
601 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
603 doc/hlp/Makefile
604 doc/hlp/es/Makefile
605 doc/hlp/hu/Makefile
606 doc/hlp/it/Makefile
607 doc/hlp/pl/Makefile
608 doc/hlp/ru/Makefile
609 doc/hlp/sr/Makefile
611 intl/Makefile
612 po/Makefile.in
615 AC_OUTPUT
617 echo "
618 Configuration:
620   Source code location:       ${srcdir}
621   Compiler:                   ${CC}
622   Compiler flags:             ${CFLAGS}
623   File system:                ${vfs_type}
624                               ${vfs_flags}
625   Screen library:             ${screen_msg}
626   Mouse support:              ${mouse_lib}
627   X11 events support:         ${textmode_x11_support}
628   With subshell support:      ${subshell}
629   Internal editor:            ${edit_msg}
630   Support for charset:        ${charset_msg}
631   Search type:                ${SEARCH_TYPE}