Merge branch '2017_missing_include'
[midnight-commander/osp/fridri1.git] / configure.ac
blob4c7fb9cf9df06667cc156e56e0be0952e0c6dc93
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_MACRO_DIR([m4])
9 AC_CONFIG_SRCDIR(src/main.c)
10 AC_CONFIG_AUX_DIR(config)
11 MC_VERSION
12 AM_INIT_AUTOMAKE(mc, ${VERSION} )
14 AM_CONFIG_HEADER(config.h)
15 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
25 AM_PROG_CC_C_O
27 dnl Doxygen
29 DX_HTML_FEATURE(ON)
30 DX_CHM_FEATURE(OFF)
31 DX_CHI_FEATURE(OFF)
32 DX_MAN_FEATURE(OFF)
33 DX_RTF_FEATURE(OFF)
34 DX_XML_FEATURE(OFF)
35 DX_PDF_FEATURE(OFF)
36 DX_PS_FEATURE(OFF)
37 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
39 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
41 dnl
42 dnl First try glib 2.x.
43 dnl Keep this check close to the beginning, so that the users
44 dnl without any glib won't have their time wasted by other checks.
45 dnl
47 AC_ARG_WITH([glib_static],
48             [  --with-glib-static       Link glib statically [[no]]])
50 glib_found=no
52 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.8], [glib_found=yes], [:])
53 if test x"$glib_found" = xno; then
54     AC_MSG_ERROR([glib-2.0 not found or version too old (must be >= 2.8)])
57 PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
58 GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
60 if test "x$gmodule_found" = "xyes" ; then
61         dnl Check if the gmodule functionality supported on this system.
62         AC_G_MODULE_SUPPORTED
65 AC_HEADER_MAJOR
66 AC_C_CONST
67 AC_SYS_LARGEFILE
69 AC_PROG_LN_S
70 AC_CHECK_TOOL(AR, ar, ar)
72 dnl Only list browsers here that can be run in background (i.e. with `&')
73 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
75 dnl
76 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
77 dnl We use only part of the functionality of mmap, so on AIX,
78 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
79 dnl
80 AC_ARG_WITH(mmap,
81         [  --with-mmap              Use the mmap call [[yes if found]]])
82 if test x$with_mmap != xno; then
83     if test x$with_mmap = x; then
84         AC_FUNC_MMAP
85     else
86         AC_DEFINE(HAVE_MMAP, 1)
87     fi
90 dnl
91 dnl Internationalization
92 dnl
93 AM_GNU_GETTEXT(no-libtool, need-ngettext)
94 AM_GNU_GETTEXT_VERSION(0.14.3)
96 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
97     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
100 dnl Determine which help translations we want to install.
101 ALL_DOC_LINGUAS="es hu it pl ru sr"
103 DOC_LINGUAS=
104 if test "x$USE_NLS" = xyes; then
105     if test -z "$LINGUAS"; then
106         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
107     else
108         langs="$LINGUAS"
109     fi
110 else
111     langs=
114 for h_lang in $ALL_DOC_LINGUAS; do
115     for lang in $langs; do
116         if test "$lang" = "$h_lang"; then
117             DOC_LINGUAS="$DOC_LINGUAS $lang"
118             break
119         fi
120     done
121 done
122 AC_SUBST(DOC_LINGUAS)
125 dnl OS specific flags.
127 case $host_os in
128 aux*)
129     # A/UX
130     LIBS="$LIBS -lposix"
131     AC_DEFINE(_POSIX_SOURCE)
132     ;;
133 esac
135 dnl Extended Character Sets
137 AC_ARG_ENABLE([extcharset],
138         AC_HELP_STRING([--enable-extcharset], [Enable extended character sets]))
139 if test x"$enable_extcharset" = x"yes"; then
140   AC_DEFINE([EXTCHARSET_ENABLED], 1, [Enable extended character sets?])
143 AC_PROG_INSTALL
144 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
145         utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
146         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
147         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
148         sys/mkdev.h wchar.h wctype.h])
150 AC_HEADER_TIME
151 AC_HEADER_DIRENT
152 AC_HEADER_STDC
154 dnl Missing structure components
155 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
156 AC_STRUCT_ST_BLOCKS
159 dnl Check availability of some functions
162 AC_CHECK_FUNCS([\
163         atoll \
164         cfgetospeed \
165         initgroups isascii \
166         memcpy memset \
167         setreuid statfs sysconf \
168         tcgetattr tcsetattr truncate \
172 dnl getpt is a GNU Extension (glibc 2.1.x)
174 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
175 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
177 dnl replacing lstat with statlstat on sco makes it more portable between
178 dnl sco clones
179 AC_CHECK_FUNCS(statlstat)
182 dnl If running under AIX, AC_AIX does not tell us that
184 AC_MSG_CHECKING([for AIX defines])
185 AC_EGREP_CPP(yes,
186 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
188 #endif
189 ], [
190 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
191 AC_MSG_RESULT(yes)
192 ], [AC_MSG_RESULT(no)])
195 dnl This is from GNU fileutils, check aclocal.m4 for more information
197 AC_GET_FS_INFO
200 dnl Missing typedefs and replacements
203 AC_CHECK_SIZEOF(long)
204 AC_CHECK_SIZEOF(long long)
205 AC_TYPE_MODE_T
206 AC_TYPE_OFF_T
207 AC_CHECK_SIZEOF(off_t)
208 AC_TYPE_PID_T
209 AC_TYPE_UID_T
210 AC_CHECK_TYPE(nlink_t, unsigned int)
211 AC_CHECK_TYPES([socklen_t],,,
213 #include <sys/types.h>
214 #include <sys/socket.h>
217 dnl This is needed for regex.c only
218 AC_CHECK_TYPE(uintptr_t,
219               [AC_DEFINE(HAVE_UINTPTR_T, 1,
220                          [Define if you have the `uintptr_t' type.])
223 AC_FUNC_ALLOCA
224 AC_FUNC_STRCOLL
227 dnl X11 support.
228 dnl Used to read keyboard modifiers when running under X11.
231 AC_PATH_XTRA
232 if test "x$no_x" = xyes; then
233     textmode_x11_support="no"
234 else
235     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
236     if test "x$mc_cv_g_module_supported" = "xyes" ; then
237         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
238         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
239         dnl functionality is supported on the system.  This way, mc will be
240         dnl linked against the gmodule library only when it's really required.
241         GLIB_CFLAGS="$GMODULE_CFLAGS"
242         GLIB_LIBS="$GMODULE_LIBS"
243     else
244         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
245     fi
246     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
247               [Define to enable getting events from X Window System])
248     textmode_x11_support="yes"
252 dnl Try to find static libraries for glib and gmodule.
254 if test x$with_glib_static = xyes; then
255     new_GLIB_LIBS=
256     for i in $GLIB_LIBS; do
257         case x$i in
258         x-lglib*)
259             lib=glib ;;
260         x-lgmodule*)
261             lib=gmodule ;;
262         *)
263             lib=
264             add="$i" ;;
265         esac
267         if test -n "$lib"; then
268             lib1=`echo $i | sed 's/^-l//'`
269             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
270                 add="$GLIB_LIBDIR/lib${lib1}.a"
271             else
272                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
273                     add="$GLIB_LIBDIR/lib${lib}.a"
274                 else
275                     AC_MSG_ERROR([Cannot find static $lib])
276                 fi
277             fi
278         fi
279         new_GLIB_LIBS="$new_GLIB_LIBS $add"
280     done
281     GLIB_LIBS="$new_GLIB_LIBS"
286 dnl Network related functions
289 AC_SEARCH_LIBS([socket], [socket])
290 AC_SEARCH_LIBS([gethostbyname], [nsl])
293 dnl Sequent wants getprocessstats
295 AC_CHECK_LIB(seq, get_process_stats, [
296         LIBS="$LIBS -lseq"
297         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
298                   [Define if you have function `get_process_stats' and
299 have to use that instead of gettimeofday])])
301 AC_MC_VFS_CHECKS
303 vfs_type="normal"
304 if test x$enable_vfs = xyes; then
305         AC_MSG_NOTICE([enabling VFS code])
306         vfs_type="Midnight Commander Virtual File System"
310 dnl Check for gpm mouse support (Linux only)
312 mouse_lib="xterm only"
313 AC_ARG_WITH(gpm-mouse,
314         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
315                            [[yes if found]]])
317 case $host_os in
318 linux*)
319     if test x$with_gpm_mouse != xno; then
320         AC_CHECK_LIB(gpm, Gpm_Repeat,
321             [AC_DEFINE(HAVE_LIBGPM, 1,
322                        [Define to enable gpm mouse support on Linux])
323             mouse_lib="gpm and xterm"
324             MCLIBS="$MCLIBS -lgpm"],
325             if test "x$with_gpm_mouse" = "xyes"; then
326                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
327             else
328                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
329             fi
330         )
331     fi
332     ;;
333 esac
335 MC_CHECK_SEARCH_TYPE
338 dnl Check nroff and the options it supports
340 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
342 dnl Default values
343 MANDOC=-man
344 MAN_FLAGS=
346 if $HAVE_nroff; then
347     AC_MSG_CHECKING([for manual formatting macros])
348     AC_CACHE_VAL(mc_cv_mandoc, [
349     nroff -mandoc < /dev/null > /dev/null 2>&1
350     if test $? = 0; then
351         mc_cv_mandoc=-mandoc
352     else
353         mc_cv_mandoc=-man
354     fi
355     ])
356     MANDOC=$mc_cv_mandoc
357     AC_MSG_RESULT([$MANDOC])
359     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
360     AC_CACHE_VAL(mc_cv_man_nocolor, [
361     nroff -c < /dev/null > /dev/null 2>&1
362     if test $? = 0; then
363         mc_cv_man_nocolor=-c
364     else
365         mc_cv_man_nocolor=
366     fi
367     ])
368     MAN_FLAGS=$mc_cv_man_nocolor
369     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
371     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
372     AC_CACHE_VAL(mc_cv_nroff_tascii, [
373     mc_cv_nroff_tascii=
374     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
375     if test $? = 0; then
376         mc_cv_nroff_tascii=-Tlatin1
377     else
378         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
379         if test $? = 0; then
380             mc_cv_nroff_tascii=-Tascii
381         fi
382     fi
383     ])
384     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
385     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
388 AC_SUBST(MANDOC)
389 AC_SUBST(MAN_FLAGS)
393 dnl Check for -L option to file
395 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
396 if $HAVE_FILECMD; then
397     AC_MSG_CHECKING([for -L option to file command])
398     AC_CACHE_VAL(mc_cv_filel, [
399     file -L . > /dev/null 2>&1
400     if test $? = 0; then
401         mc_cv_filel=yes
402     else
403         mc_cv_filel=no
404     fi
405     ])
406     if test x$mc_cv_filel = xyes; then
407         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
408     fi
409     filel=$mc_cv_filel
410     AC_MSG_RESULT([$filel])
414 AC_MSG_CHECKING([for subshell support])
415 AC_ARG_WITH(subshell,
416         [  --with-subshell          Compile in concurrent subshell [[yes]]
417   --with-subshell=optional Don't run concurrent shell by default [[no]]],
418         [result=no
419         if test x$withval = xoptional
420         then
421                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
422                           [Define to make subshell support optional])
423                 result="optional"
424         fi
425         if test x$withval = xyes
426         then
427                 result="yes"
428         fi],
429         [dnl Default: enable the subshell support
430         result="yes"
432 if test "x$result" != xno; then
433         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
434                   [Define to enable subshell support])
436 AC_MSG_RESULT([$result])
437 subshell="$result"
441 dnl Select the screen library.
443 AC_ARG_WITH(screen,
444         [  --with-screen=LIB        Compile with screen library: slang or
445                            ncurses [[slang if found]]])
447 case x$with_screen in
448 xslang)
449         MC_WITH_SLANG(strict)
450         ;;
451 xncurses)
452         MC_WITH_NCURSES
453         ;;
454 xncursesw)
455         MC_WITH_NCURSESW
456         ;;
458         MC_WITH_SLANG
459         ;;
461         AC_MSG_ERROR([Value of the screen library is incorrect])
462         ;;
463 esac
467 dnl Internal editor support.
469 AC_ARG_WITH(edit,
470         [  --with-edit              Enable internal editor [[yes]]])
472 if test x$with_edit != xno; then
473         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
474         use_edit=yes
475         edit_msg="yes"
476         AC_MSG_NOTICE([using internal editor])
477 else
478         edit_msg="no"
482 dnl Check if the OS is supported by the console saver.
483 cons_saver=""
484 case $host_os in
485 linux*)
486     cons_saver=yes
487 esac
490 dnl Support for background operations
491 AC_ARG_ENABLE([background],
492               [  --enable-background     Support for background file operations [[yes]]])
493 if test "x$enable_background" != xno; then
494     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
499 dnl User visible support for charset conversion.
501 AC_ARG_ENABLE([charset],
502               [  --enable-charset        Support for charset selection and conversion [[yes]]])
503 have_charset=
504 charset_msg="no"
505 if test "x$enable_charset" != "xno"; then
506     AC_DEFINE(HAVE_CHARSET, 1,
507               [Define to enable charset selection and conversion])
508     have_charset=yes
509     charset_msg="yes"
512 if test "$GLIBC21" != yes; then
513     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
516 MC_CHECK_CFLAGS
518 CFLAGS_OPTS=""
520 if test "x$CFLAGS" = "x"; then
521     CFLAGS_OPTS=" -O2 "
524 if test x$USE_MAINTAINER_MODE = xyes; then
525     CFLAGS_OPTS="-g3 -O -ggdb"
526     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
529 AC_ARG_ENABLE(
530     [werror],
531     AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
534 if test "x$enable_werror" = xyes; then
535     MC_CHECK_ONE_CFLAG([-Werror])
537 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
539 AC_SUBST(CFLAGS)
540 AC_SUBST(CPPFLAGS)
541 AC_SUBST(LDFLAGS)
542 AC_SUBST(LIBS)
544 dnl Libraries used only when building the mc binary
545 AC_SUBST(MCLIBS)
547 if test -n "$use_smbfs"; then
548   AC_CONFIG_SUBDIRS([lib/vfs/mc-vfs/samba])
551 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
552 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
553 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
554 AM_CONDITIONAL(ENABLE_VFS_NET, [test x"$use_net_code" = xtrue])
555 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
556 AM_CONDITIONAL(ENABLE_MCSERVER, [test x"$enable_mcserver" = "xyes"])
557 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
558 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
560 AC_CONFIG_FILES([
561 Makefile
563 contrib/Makefile
564 contrib/dist/Makefile
565 contrib/dist/debian/Makefile
566 contrib/dist/gentoo/Makefile
567 contrib/dist/redhat/Makefile
568 contrib/dist/redhat/mc.spec
569 contrib/dist/mc.qpg
570 contrib/dist/pkginfo
571 contrib/dist/prototype
573 misc/Makefile
574 misc/skins/Makefile
575 misc/mc.ext
577 src/Makefile
578 src/consaver/Makefile
579 src/editor/Makefile
580 src/viewer/Makefile
582 lib/Makefile
583 lib/filehighlight/Makefile
584 lib/mcconfig/Makefile
585 lib/search/Makefile
586 lib/skin/Makefile
587 lib/strutil/Makefile
588 lib/tty/Makefile
589 lib/vfs/Makefile
590 lib/vfs/mc-vfs/Makefile
591 lib/vfs/mc-vfs/extfs/Makefile
592 lib/vfs/mc-vfs/extfs/a
593 lib/vfs/mc-vfs/extfs/apt
594 lib/vfs/mc-vfs/extfs/audio
595 lib/vfs/mc-vfs/extfs/deb
596 lib/vfs/mc-vfs/extfs/deba
597 lib/vfs/mc-vfs/extfs/debd
598 lib/vfs/mc-vfs/extfs/dpkg
599 lib/vfs/mc-vfs/extfs/iso9660
600 lib/vfs/mc-vfs/extfs/hp48
601 lib/vfs/mc-vfs/extfs/lslR
602 lib/vfs/mc-vfs/extfs/mailfs
603 lib/vfs/mc-vfs/extfs/patchfs
604 lib/vfs/mc-vfs/extfs/rpms
605 lib/vfs/mc-vfs/extfs/s3
606 lib/vfs/mc-vfs/extfs/uace
607 lib/vfs/mc-vfs/extfs/ualz
608 lib/vfs/mc-vfs/extfs/uar
609 lib/vfs/mc-vfs/extfs/uarc
610 lib/vfs/mc-vfs/extfs/uarj
611 lib/vfs/mc-vfs/extfs/uc1541
612 lib/vfs/mc-vfs/extfs/uha
613 lib/vfs/mc-vfs/extfs/ulha
614 lib/vfs/mc-vfs/extfs/urar
615 lib/vfs/mc-vfs/extfs/uzip
616 lib/vfs/mc-vfs/extfs/uzoo
618 misc/syntax/Makefile
620 doc/Makefile
621 doc/hints/Makefile
622 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/mcserv.8 doc/man/Makefile
623 doc/man/es/mc.1 doc/man/es/Makefile
624 doc/man/hu/mc.1 doc/man/hu/Makefile
625 doc/man/it/mc.1 doc/man/it/Makefile
626 doc/man/pl/mc.1 doc/man/pl/Makefile
627 doc/man/ru/mc.1 doc/man/ru/Makefile
628 doc/man/sr/mc.1 doc/man/sr/mcserv.8 doc/man/sr/Makefile
630 doc/hlp/Makefile
631 doc/hlp/es/Makefile
632 doc/hlp/hu/Makefile
633 doc/hlp/it/Makefile
634 doc/hlp/pl/Makefile
635 doc/hlp/ru/Makefile
636 doc/hlp/sr/Makefile
638 intl/Makefile
639 po/Makefile.in
642 AC_OUTPUT
644 if test x$enable_mcserver = x; then
645     enable_mcserver='no'
648 echo "
649 Configuration:
651   Source code location:       ${srcdir}
652   Compiler:                   ${CC}
653   Compiler flags:             ${CFLAGS}
654   File system:                ${vfs_type}
655                               ${vfs_flags}
656   Screen library:             ${screen_msg}
657   Mouse support:              ${mouse_lib}
658   X11 events support:         ${textmode_x11_support}
659   With subshell support:      ${subshell}
660   Internal editor:            ${edit_msg}
661   Support for charset:        ${charset_msg}
662   Search type:                ${SEARCH_TYPE}