Removed vfs_get_class() function
[midnight-commander.git] / configure.ac
blob7176b4e77f4098dfb13d56e2354af07403dbba99
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 LIBMC_VERSION="0.0.1"
15 LIBMC_RELEASE="1"
16 AC_SUBST(LIBMC_VERSION)
17 AC_SUBST(LIBMC_RELEASE)
19 dnl Enable silent rules by default (if yes)
20 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
22 AM_CONFIG_HEADER(config.h)
23 AM_MAINTAINER_MODE
24 AC_CANONICAL_HOST
26 AC_USE_SYSTEM_EXTENSIONS
28 AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS],["$ac_configure_args"],[MC configure arguments])
30 AC_PROG_LIBTOOL
31 PKG_PROG_PKG_CONFIG
32 AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])
34 AC_ISC_POSIX
36 AC_PROG_CC_STDC
37 AM_PROG_CC_C_O
39 dnl Doxygen
41 DX_HTML_FEATURE(ON)
42 DX_CHM_FEATURE(OFF)
43 DX_CHI_FEATURE(OFF)
44 DX_MAN_FEATURE(OFF)
45 DX_RTF_FEATURE(OFF)
46 DX_XML_FEATURE(OFF)
47 DX_PDF_FEATURE(OFF)
48 DX_PS_FEATURE(OFF)
49 DX_INIT_DOXYGEN(mc,doxygen.cfg,devel)
51 dnl PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
53 AC_CHECK_GLIB
55 AC_ARG_ENABLE([mclib],
56         [AS_HELP_STRING([--enable-mclib],[ Compile shared library libmc.so [no]])],
57         [
58             if test "x$enableval" = "xno" ; then
59                 enable_mclib=no
60             else
61                 if test "x$enable_shared" = "xno" ; then
62                     AC_MSG_WARN([Build of shared library is disabled. Specify --enable-shared first])
63                     enable_mclib=no
64                 else
65                     enable_mclib=yes
66                 fi
67             fi
68         ],
69         [enable_mclib=no])
71 AM_CONDITIONAL([ENABLE_MCLIB], [test x$enable_mclib = xyes])
73 AC_HEADER_MAJOR
74 AC_C_CONST
75 AC_SYS_LARGEFILE
77 AC_PROG_LN_S
78 AC_CHECK_TOOL(AR, ar, ar)
80 dnl Only list browsers here that can be run in background (i.e. with `&')
81 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
83 dnl
84 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
85 dnl We use only part of the functionality of mmap, so on AIX,
86 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
87 dnl
88 AC_ARG_WITH(mmap,
89         [  --with-mmap              Use the mmap call [[yes if found]]])
90 if test x$with_mmap != xno; then
91     if test x$with_mmap = x; then
92         AC_FUNC_MMAP
93     else
94         AC_DEFINE(HAVE_MMAP, 1)
95     fi
98 dnl
99 dnl Internationalization
101 AM_GNU_GETTEXT(no-libtool, need-ngettext)
102 AM_GNU_GETTEXT_VERSION(0.14.3)
104 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
105     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
108 dnl Determine which help translations we want to install.
109 ALL_DOC_LINGUAS="es hu it pl ru sr"
111 DOC_LINGUAS=
112 if test "x$USE_NLS" = xyes; then
113     if test -z "$LINGUAS"; then
114         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
115     else
116         langs="$LINGUAS"
117     fi
118 else
119     langs=
122 for h_lang in $ALL_DOC_LINGUAS; do
123     for lang in $langs; do
124         if test "$lang" = "$h_lang"; then
125             DOC_LINGUAS="$DOC_LINGUAS $lang"
126             break
127         fi
128     done
129 done
130 AC_SUBST(DOC_LINGUAS)
133 dnl OS specific flags.
135 case $host_os in
136 aux*)
137     # A/UX
138     LIBS="$LIBS -lposix"
139     AC_DEFINE(_POSIX_SOURCE)
140     ;;
141 esac
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         setreuid statfs sysconf \
167         tcgetattr tcsetattr truncate \
168         strverscmp \
169         strncasecmp \
170         realpath
174 dnl getpt is a GNU Extension (glibc 2.1.x)
176 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
177 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
179 dnl replacing lstat with statlstat on sco makes it more portable between
180 dnl sco clones
181 AC_CHECK_FUNCS(statlstat)
184 dnl If running under AIX, AC_AIX does not tell us that
186 AC_MSG_CHECKING([for AIX defines])
187 AC_EGREP_CPP(yes,
188 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
190 #endif
191 ], [
192 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
193 AC_MSG_RESULT(yes)
194 ], [AC_MSG_RESULT(no)])
197 dnl This is from GNU fileutils, check aclocal.m4 for more information
199 AC_GET_FS_INFO
202 dnl Missing typedefs and replacements
205 AC_CHECK_SIZEOF(long)
206 AC_CHECK_SIZEOF(long long)
207 AC_TYPE_MODE_T
208 AC_TYPE_OFF_T
209 AC_CHECK_SIZEOF(off_t)
210 AC_TYPE_PID_T
211 AC_TYPE_UID_T
212 AC_CHECK_TYPE(nlink_t, unsigned int)
213 AC_CHECK_TYPES([socklen_t],,,
215 #include <sys/types.h>
216 #include <sys/socket.h>
219 dnl This is needed for regex.c only
220 AC_CHECK_TYPE(uintptr_t,
221               [AC_DEFINE(HAVE_UINTPTR_T, 1,
222                          [Define if you have the `uintptr_t' type.])
225 AC_FUNC_ALLOCA
226 AC_FUNC_STRCOLL
229 dnl X11 support.
230 dnl Used to read keyboard modifiers when running under X11.
231 AC_PATH_XTRA
234 dnl Check if the gmodule functionality supported on this system.
235 AC_G_MODULE_SUPPORTED
238 dnl Sequent wants getprocessstats
240 AC_CHECK_LIB(seq, get_process_stats, [
241         LIBS="$LIBS -lseq"
242         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
243                   [Define if you have function `get_process_stats' and
244 have to use that instead of gettimeofday])])
246 AC_MC_VFS_CHECKS
249 dnl Check for gpm mouse support (Linux only)
251 mouse_lib="xterm only"
252 AC_ARG_WITH(gpm-mouse,
253         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
254                            [[yes if found]]])
256 case $host_os in
257 linux*)
258     if test x$with_gpm_mouse != xno; then
259         AC_CHECK_LIB(gpm, Gpm_Repeat,
260             [AC_DEFINE(HAVE_LIBGPM, 1,
261                        [Define to enable gpm mouse support on Linux])
262             mouse_lib="gpm and xterm"
263             MCLIBS="$MCLIBS -lgpm"],
264             if test "x$with_gpm_mouse" = "xyes"; then
265                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
266             else
267                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
268             fi
269         )
270     fi
271     ;;
272 esac
274 MC_CHECK_SEARCH_TYPE
277 dnl Check nroff and the options it supports
279 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
281 dnl Default values
282 MANDOC=-man
283 MAN_FLAGS=
285 if $HAVE_nroff; then
286     AC_MSG_CHECKING([for manual formatting macros])
287     AC_CACHE_VAL(mc_cv_mandoc, [
288     nroff -mandoc < /dev/null > /dev/null 2>&1
289     if test $? = 0; then
290         mc_cv_mandoc=-mandoc
291     else
292         mc_cv_mandoc=-man
293     fi
294     ])
295     MANDOC=$mc_cv_mandoc
296     AC_MSG_RESULT([$MANDOC])
298     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
299     AC_CACHE_VAL(mc_cv_man_nocolor, [
300     nroff -c < /dev/null > /dev/null 2>&1
301     if test $? = 0; then
302         mc_cv_man_nocolor=-c
303     else
304         mc_cv_man_nocolor=
305     fi
306     ])
307     MAN_FLAGS=$mc_cv_man_nocolor
308     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
310     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
311     AC_CACHE_VAL(mc_cv_nroff_tascii, [
312     mc_cv_nroff_tascii=
313     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
314     if test $? = 0; then
315         mc_cv_nroff_tascii=-Tlatin1
316     else
317         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
318         if test $? = 0; then
319             mc_cv_nroff_tascii=-Tascii
320         fi
321     fi
322     ])
323     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
324     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
327 AC_SUBST(MANDOC)
328 AC_SUBST(MAN_FLAGS)
332 dnl Check for -L option to file
334 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
335 if $HAVE_FILECMD; then
336     AC_MSG_CHECKING([for -L option to file command])
337     AC_CACHE_VAL(mc_cv_filel, [
338     file -L . > /dev/null 2>&1
339     if test $? = 0; then
340         mc_cv_filel=yes
341     else
342         mc_cv_filel=no
343     fi
344     ])
345     if test x$mc_cv_filel = xyes; then
346         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
347     fi
348     filel=$mc_cv_filel
349     AC_MSG_RESULT([$filel])
353 AC_MSG_CHECKING([for subshell support])
354 AC_ARG_WITH(subshell,
355         [  --with-subshell          Compile in concurrent subshell [[yes]]
356   --with-subshell=optional Don't run concurrent shell by default [[no]]],
357         [result=no
358         if test x$withval = xoptional
359         then
360                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
361                           [Define to make subshell support optional])
362                 result="optional"
363         fi
364         if test x$withval = xyes
365         then
366                 result="yes"
367         fi],
368         [dnl Default: enable the subshell support
369         result="yes"
371 if test "x$result" != xno; then
372         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
373                   [Define to enable subshell support])
375 AC_MSG_RESULT([$result])
376 subshell="$result"
379 MC_WITH_SCREEN
383 dnl Internal editor support.
385 AC_ARG_WITH(edit,
386         [  --with-edit              Enable internal editor [[yes]]])
388 if test x$with_edit != xno; then
389         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
390         use_edit=yes
391         edit_msg="yes"
392         AC_MSG_NOTICE([using internal editor])
393 else
394         edit_msg="no"
398 dnl Diff viewer support.
400 AC_ARG_WITH(diff_viewer,
401         [  --with-diff-viewer       Compile with diff viewer [[yes]]])
403 if test x$with_diff_viewer != xno; then
404         AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
405         use_diff=yes
406         diff_msg="yes"
407         AC_MSG_NOTICE([using diff viewer])
408 else
409         diff_msg="no"
413 dnl Check if the OS is supported by the console saver.
414 cons_saver=""
415 case $host_os in
416 linux*)
417     cons_saver=yes
418 esac
421 dnl Support for background operations
422 AC_ARG_ENABLE([background],
423               [  --enable-background     Support for background file operations [[yes]]])
424 if test "x$enable_background" != xno; then
425     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
430 dnl User visible support for charset conversion.
432 AC_ARG_ENABLE([charset],
433               [  --enable-charset        Support for charset selection and conversion [[yes]]])
434 have_charset=
435 charset_msg="no"
436 if test "x$enable_charset" != "xno"; then
437     AC_DEFINE(HAVE_CHARSET, 1,
438               [Define to enable charset selection and conversion])
439     have_charset=yes
440     charset_msg="yes"
443 if test "$GLIBC21" != yes; then
444     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
447 MC_CHECK_CFLAGS
449 CFLAGS_OPTS=""
451 if test "x$CFLAGS" = "x"; then
452     CFLAGS_OPTS=" -O2 "
455 if test x$USE_MAINTAINER_MODE = xyes; then
456     CFLAGS_OPTS="-g3 -O -ggdb"
457     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
460 AC_ARG_ENABLE(
461     [werror],
462     AC_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors] )
465 if test "x$enable_werror" = xyes; then
466     MC_CHECK_ONE_CFLAG([-Werror])
468 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
470 MC_UNIT_TESTS
472 AC_SUBST(CFLAGS)
473 AC_SUBST(CPPFLAGS)
474 AC_SUBST(LDFLAGS)
475 AC_SUBST(LIBS)
477 dnl Libraries used only when building the mc binary
478 AC_SUBST(MCLIBS)
480 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
481 AC_SUBST(MAN_DATE)
483 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
484 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
485 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
486 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
487 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
488 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
489 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
491 AC_CONFIG_FILES(
493 src/man2hlp/man2hlp
496 chmod +x src/man2hlp/man2hlp
499 AC_CONFIG_FILES([
500 Makefile
502 contrib/Makefile
503 contrib/dist/Makefile
504 contrib/dist/debian/Makefile
505 contrib/dist/gentoo/Makefile
506 contrib/dist/redhat/Makefile
507 contrib/dist/redhat/mc.spec
508 contrib/dist/pkginfo
509 contrib/dist/prototype
511 misc/Makefile
512 misc/skins/Makefile
513 misc/macros.d/Makefile
514 misc/mc.ext
516 src/Makefile
517 src/consaver/Makefile
518 src/editor/Makefile
519 src/man2hlp/Makefile
520 src/viewer/Makefile
521 src/diffviewer/Makefile
522 src/filemanager/Makefile
524 src/vfs/Makefile
526 src/vfs/cpio/Makefile
528 src/vfs/extfs/Makefile
529 src/vfs/extfs/helpers/Makefile
530 src/vfs/extfs/helpers/a+
531 src/vfs/extfs/helpers/apt+
532 src/vfs/extfs/helpers/audio
533 src/vfs/extfs/helpers/deb
534 src/vfs/extfs/helpers/deba
535 src/vfs/extfs/helpers/debd
536 src/vfs/extfs/helpers/dpkg+
537 src/vfs/extfs/helpers/iso9660
538 src/vfs/extfs/helpers/hp48+
539 src/vfs/extfs/helpers/lslR
540 src/vfs/extfs/helpers/mailfs
541 src/vfs/extfs/helpers/patchfs
542 src/vfs/extfs/helpers/rpms+
543 src/vfs/extfs/helpers/s3+
544 src/vfs/extfs/helpers/uace
545 src/vfs/extfs/helpers/ualz
546 src/vfs/extfs/helpers/uar
547 src/vfs/extfs/helpers/uarc
548 src/vfs/extfs/helpers/uarj
549 src/vfs/extfs/helpers/uc1541
550 src/vfs/extfs/helpers/uha
551 src/vfs/extfs/helpers/ulha
552 src/vfs/extfs/helpers/urar
553 src/vfs/extfs/helpers/uzip
554 src/vfs/extfs/helpers/uzoo
556 src/vfs/fish/Makefile
557 src/vfs/fish/helpers/Makefile
559 src/vfs/ftpfs/Makefile
561 src/vfs/local/Makefile
563 src/vfs/sfs/Makefile
565 src/vfs/smbfs/Makefile
567 src/vfs/tar/Makefile
569 src/vfs/undelfs/Makefile
571 lib/Makefile
572 lib/event/Makefile
573 lib/filehighlight/Makefile
574 lib/mcconfig/Makefile
575 lib/search/Makefile
576 lib/skin/Makefile
577 lib/strutil/Makefile
578 lib/tty/Makefile
580 lib/vfs/Makefile
582 lib/widget/Makefile
584 misc/syntax/Makefile
586 doc/Makefile
587 doc/hints/Makefile
588 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/Makefile
589 doc/man/es/mc.1 doc/man/es/Makefile
590 doc/man/hu/mc.1 doc/man/hu/Makefile
591 doc/man/it/mc.1 doc/man/it/Makefile
592 doc/man/pl/mc.1 doc/man/pl/Makefile
593 doc/man/ru/mc.1 doc/man/ru/Makefile
594 doc/man/sr/mc.1 doc/man/sr/Makefile
596 doc/hlp/Makefile
597 doc/hlp/es/Makefile
598 doc/hlp/hu/Makefile
599 doc/hlp/it/Makefile
600 doc/hlp/pl/Makefile
601 doc/hlp/ru/Makefile
602 doc/hlp/sr/Makefile
604 intl/Makefile
605 po/Makefile.in
608 if test x$enable_tests != xno; then
609     AC_CONFIG_FILES([
610 lib/tests/Makefile
611 lib/tests/mcconfig/Makefile
612 lib/tests/vfs/Makefile
618 AC_OUTPUT
620 echo "
621 Configuration:
623   Source code location:       ${srcdir}
624   Compiler:                   ${CC}
625   Compiler flags:             ${CFLAGS}
626   File system:                ${vfs_type}
627                               ${vfs_flags}
628   Screen library:             ${screen_msg}
629   Mouse support:              ${mouse_lib}
630   X11 events support:         ${textmode_x11_support}
631   With subshell support:      ${subshell}
632   Internal editor:            ${edit_msg}
633   Diff viewer:                ${diff_msg}
634   Support for charset:        ${charset_msg}
635   Search type:                ${SEARCH_TYPE}