Ticket #275: panelization fixes.
[midnight-commander.git] / configure.ac
blob150e222c07616ef19dcde82a98a39504dfd27fff
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 dnl Check this before type sizeof checks
76 AC_SYS_LARGEFILE
78 AC_PROG_LN_S
79 AC_CHECK_TOOL(AR, ar, ar)
81 dnl Only list browsers here that can be run in background (i.e. with `&')
82 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
84 dnl
85 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
86 dnl We use only part of the functionality of mmap, so on AIX,
87 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
88 dnl
89 AC_ARG_WITH(mmap,
90         [  --with-mmap              Use the mmap call [[yes if found]]])
91 if test x$with_mmap != xno; then
92     if test x$with_mmap = x; then
93         AC_FUNC_MMAP
94     else
95         AC_DEFINE(HAVE_MMAP, 1)
96     fi
99 dnl
100 dnl Internationalization
102 AM_GNU_GETTEXT(no-libtool, need-ngettext)
103 AM_GNU_GETTEXT_VERSION(0.14.3)
105 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
106     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
109 dnl Determine which help translations we want to install.
110 ALL_DOC_LINGUAS="es hu it pl ru sr"
112 DOC_LINGUAS=
113 if test "x$USE_NLS" = xyes; then
114     if test -z "$LINGUAS"; then
115         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
116     else
117         langs="$LINGUAS"
118     fi
119 else
120     langs=
123 for h_lang in $ALL_DOC_LINGUAS; do
124     for lang in $langs; do
125         if test "$lang" = "$h_lang"; then
126             DOC_LINGUAS="$DOC_LINGUAS $lang"
127             break
128         fi
129     done
130 done
131 AC_SUBST(DOC_LINGUAS)
134 dnl OS specific flags.
136 case $host_os in
137 aux*)
138     # A/UX
139     LIBS="$LIBS -lposix"
140     AC_DEFINE(_POSIX_SOURCE)
141     ;;
142 esac
144 AC_PROG_INSTALL
145 AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \
146         utime.h fcntl.h sys/statfs.h sys/vfs.h sys/time.h \
147         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
148         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
149         sys/mkdev.h wchar.h wctype.h])
151 AC_HEADER_TIME
152 AC_HEADER_DIRENT
153 AC_HEADER_STDC
155 dnl Missing structure components
156 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
157 AC_STRUCT_ST_BLOCKS
160 dnl Check availability of some functions
163 AC_CHECK_FUNCS([\
164         atoll \
165         cfgetospeed \
166         initgroups isascii \
167         setreuid statfs sysconf \
168         tcgetattr tcsetattr truncate \
169         strverscmp \
170         strncasecmp \
171         realpath
175 dnl getpt is a GNU Extension (glibc 2.1.x)
177 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
178 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
180 dnl replacing lstat with statlstat on sco makes it more portable between
181 dnl sco clones
182 AC_CHECK_FUNCS(statlstat)
185 dnl If running under AIX, AC_AIX does not tell us that
187 AC_MSG_CHECKING([for AIX defines])
188 AC_EGREP_CPP(yes,
189 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
191 #endif
192 ], [
193 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
194 AC_MSG_RESULT(yes)
195 ], [AC_MSG_RESULT(no)])
198 dnl Missing typedefs and replacements
201 AC_CHECK_SIZEOF(long)
202 AC_TYPE_UINTMAX_T
203 AC_CHECK_SIZEOF(uintmax_t)
204 AC_TYPE_OFF_T
205 AC_CHECK_SIZEOF(off_t)
206 AC_TYPE_MODE_T
207 AC_TYPE_PID_T
208 AC_TYPE_UID_T
210 AC_FUNC_ALLOCA
211 AC_FUNC_STRCOLL
213 AC_MC_GET_FS_INFO
216 dnl X11 support.
217 dnl Used to read keyboard modifiers when running under X11.
218 AC_PATH_XTRA
221 dnl Check if the gmodule functionality supported on this system.
222 AC_G_MODULE_SUPPORTED
225 dnl Sequent wants getprocessstats
227 AC_CHECK_LIB(seq, get_process_stats, [
228         LIBS="$LIBS -lseq"
229         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
230                   [Define if you have function `get_process_stats' and
231 have to use that instead of gettimeofday])])
233 AC_MC_VFS_CHECKS
236 dnl Check for gpm mouse support (Linux only)
238 mouse_lib="xterm only"
239 AC_ARG_WITH(gpm-mouse,
240         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
241                            [[yes if found]]])
243 case $host_os in
244 linux*)
245     if test x$with_gpm_mouse != xno; then
246         AC_CHECK_LIB(gpm, Gpm_Repeat,
247             [AC_DEFINE(HAVE_LIBGPM, 1,
248                        [Define to enable gpm mouse support on Linux])
249             mouse_lib="gpm and xterm"
250             MCLIBS="$MCLIBS -lgpm"],
251             if test "x$with_gpm_mouse" = "xyes"; then
252                 [AC_MSG_ERROR([libgpm is missing or older than 0.18])]
253             else
254                 [AC_MSG_WARN([libgpm is missing or older than 0.18])]
255             fi
256         )
257     fi
258     ;;
259 esac
261 MC_CHECK_SEARCH_TYPE
264 dnl Check nroff and the options it supports
266 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
268 dnl Default values
269 MANDOC=-man
270 MAN_FLAGS=
272 if $HAVE_nroff; then
273     AC_MSG_CHECKING([for manual formatting macros])
274     AC_CACHE_VAL(mc_cv_mandoc, [
275     nroff -mandoc < /dev/null > /dev/null 2>&1
276     if test $? = 0; then
277         mc_cv_mandoc=-mandoc
278     else
279         mc_cv_mandoc=-man
280     fi
281     ])
282     MANDOC=$mc_cv_mandoc
283     AC_MSG_RESULT([$MANDOC])
285     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
286     AC_CACHE_VAL(mc_cv_man_nocolor, [
287     nroff -c < /dev/null > /dev/null 2>&1
288     if test $? = 0; then
289         mc_cv_man_nocolor=-c
290     else
291         mc_cv_man_nocolor=
292     fi
293     ])
294     MAN_FLAGS=$mc_cv_man_nocolor
295     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
297     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
298     AC_CACHE_VAL(mc_cv_nroff_tascii, [
299     mc_cv_nroff_tascii=
300     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
301     if test $? = 0; then
302         mc_cv_nroff_tascii=-Tlatin1
303     else
304         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
305         if test $? = 0; then
306             mc_cv_nroff_tascii=-Tascii
307         fi
308     fi
309     ])
310     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
311     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
314 AC_SUBST(MANDOC)
315 AC_SUBST(MAN_FLAGS)
319 dnl Check for -L option to file
321 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
322 if $HAVE_FILECMD; then
323     AC_MSG_CHECKING([for -L option to file command])
324     AC_CACHE_VAL(mc_cv_filel, [
325     file -L . > /dev/null 2>&1
326     if test $? = 0; then
327         mc_cv_filel=yes
328     else
329         mc_cv_filel=no
330     fi
331     ])
332     if test x$mc_cv_filel = xyes; then
333         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
334     fi
335     filel=$mc_cv_filel
336     AC_MSG_RESULT([$filel])
340 AC_MSG_CHECKING([for subshell support])
341 AC_ARG_WITH(subshell,
342         [  --with-subshell          Compile in concurrent subshell [[yes]]
343   --with-subshell=optional Don't run concurrent shell by default [[no]]],
344         [result=no
345         if test x$withval = xoptional
346         then
347                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
348                           [Define to make subshell support optional])
349                 result="optional"
350         fi
351         if test x$withval = xyes
352         then
353                 result="yes"
354         fi],
355         [dnl Default: enable the subshell support
356         result="yes"
358 if test "x$result" != xno; then
359         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
360                   [Define to enable subshell support])
362 AC_MSG_RESULT([$result])
363 subshell="$result"
366 MC_WITH_SCREEN
370 dnl Internal editor support.
372 AC_ARG_WITH(edit,
373         [  --with-edit              Enable internal editor [[yes]]])
375 if test x$with_edit != xno; then
376         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
377         use_edit=yes
378         edit_msg="yes"
379         AC_MSG_NOTICE([using internal editor])
380 else
381         edit_msg="no"
385 dnl Diff viewer support.
387 AC_ARG_WITH(diff_viewer,
388         [  --with-diff-viewer       Compile with diff viewer [[yes]]])
390 if test x$with_diff_viewer != xno; then
391         AC_DEFINE(USE_DIFF_VIEW, 1, [Define to enable diff viewer])
392         use_diff=yes
393         diff_msg="yes"
394         AC_MSG_NOTICE([using diff viewer])
395 else
396         diff_msg="no"
400 dnl Check if the OS is supported by the console saver.
401 cons_saver=""
402 case $host_os in
403 linux*)
404     cons_saver=yes
405 esac
408 dnl Support for background operations
409 AC_ARG_ENABLE([background],
410               [  --enable-background     Support for background file operations [[yes]]])
411 if test "x$enable_background" != xno; then
412     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
417 dnl User visible support for charset conversion.
419 AC_ARG_ENABLE([charset],
420               [  --enable-charset        Support for charset selection and conversion [[yes]]])
421 have_charset=
422 charset_msg="no"
423 if test "x$enable_charset" != "xno"; then
424     AC_DEFINE(HAVE_CHARSET, 1,
425               [Define to enable charset selection and conversion])
426     have_charset=yes
427     charset_msg="yes"
430 if test "$GLIBC21" != yes; then
431     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
434 MC_CHECK_CFLAGS
436 CFLAGS_OPTS=""
438 if test "x$CFLAGS" = "x"; then
439     CFLAGS_OPTS=" -O2 "
442 if test x$USE_MAINTAINER_MODE = xyes; then
443     CFLAGS_OPTS="-g3 -O -ggdb"
444     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
447 AC_ARG_ENABLE(
448     [werror],
449     AS_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors])
452 if test "x$enable_werror" = xyes; then
453     MC_CHECK_ONE_CFLAG([-Werror])
455 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
457 MC_UNIT_TESTS
459 AC_SUBST(CFLAGS)
460 AC_SUBST(CPPFLAGS)
461 AC_SUBST(LDFLAGS)
462 AC_SUBST(LIBS)
464 dnl Libraries used only when building the mc binary
465 AC_SUBST(MCLIBS)
467 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
468 AC_SUBST(MAN_DATE)
470 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
471 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
472 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
473 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
474 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
475 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
476 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
478 AC_CONFIG_FILES(
480 src/man2hlp/man2hlp
483 chmod +x src/man2hlp/man2hlp
486 AC_CONFIG_FILES([
487 Makefile
489 contrib/Makefile
490 contrib/dist/Makefile
491 contrib/dist/debian/Makefile
492 contrib/dist/gentoo/Makefile
493 contrib/dist/redhat/Makefile
494 contrib/dist/redhat/mc.spec
495 contrib/dist/pkginfo
496 contrib/dist/prototype
498 misc/Makefile
499 misc/skins/Makefile
500 misc/macros.d/Makefile
501 misc/mc.ext
503 src/Makefile
504 src/consaver/Makefile
505 src/editor/Makefile
506 src/man2hlp/Makefile
507 src/viewer/Makefile
508 src/diffviewer/Makefile
509 src/filemanager/Makefile
511 src/vfs/Makefile
513 src/vfs/cpio/Makefile
515 src/vfs/extfs/Makefile
516 src/vfs/extfs/helpers/Makefile
517 src/vfs/extfs/helpers/a+
518 src/vfs/extfs/helpers/apt+
519 src/vfs/extfs/helpers/audio
520 src/vfs/extfs/helpers/deb
521 src/vfs/extfs/helpers/deba
522 src/vfs/extfs/helpers/debd
523 src/vfs/extfs/helpers/dpkg+
524 src/vfs/extfs/helpers/iso9660
525 src/vfs/extfs/helpers/hp48+
526 src/vfs/extfs/helpers/lslR
527 src/vfs/extfs/helpers/mailfs
528 src/vfs/extfs/helpers/patchfs
529 src/vfs/extfs/helpers/rpms+
530 src/vfs/extfs/helpers/s3+
531 src/vfs/extfs/helpers/uace
532 src/vfs/extfs/helpers/ualz
533 src/vfs/extfs/helpers/uar
534 src/vfs/extfs/helpers/uarc
535 src/vfs/extfs/helpers/uarj
536 src/vfs/extfs/helpers/uc1541
537 src/vfs/extfs/helpers/ucab
538 src/vfs/extfs/helpers/uha
539 src/vfs/extfs/helpers/ulha
540 src/vfs/extfs/helpers/urar
541 src/vfs/extfs/helpers/uzip
542 src/vfs/extfs/helpers/uzoo
544 src/vfs/fish/Makefile
545 src/vfs/fish/helpers/Makefile
547 src/vfs/ftpfs/Makefile
549 src/vfs/local/Makefile
551 src/vfs/sfs/Makefile
553 src/vfs/smbfs/Makefile
555 src/vfs/tar/Makefile
557 src/vfs/undelfs/Makefile
559 lib/Makefile
560 lib/event/Makefile
561 lib/filehighlight/Makefile
562 lib/mcconfig/Makefile
563 lib/search/Makefile
564 lib/skin/Makefile
565 lib/strutil/Makefile
566 lib/tty/Makefile
568 lib/vfs/Makefile
570 lib/widget/Makefile
572 misc/syntax/Makefile
574 doc/Makefile
575 doc/hints/Makefile
576 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/Makefile
577 doc/man/es/mc.1 doc/man/es/Makefile
578 doc/man/hu/mc.1 doc/man/hu/Makefile
579 doc/man/it/mc.1 doc/man/it/Makefile
580 doc/man/pl/mc.1 doc/man/pl/Makefile
581 doc/man/ru/mc.1 doc/man/ru/Makefile
582 doc/man/sr/mc.1 doc/man/sr/Makefile
584 doc/hlp/Makefile
585 doc/hlp/es/Makefile
586 doc/hlp/hu/Makefile
587 doc/hlp/it/Makefile
588 doc/hlp/pl/Makefile
589 doc/hlp/ru/Makefile
590 doc/hlp/sr/Makefile
592 intl/Makefile
593 po/Makefile.in
596 if test x$enable_tests != xno; then
597     AC_CONFIG_FILES([
598 tests/Makefile
599 tests/lib/Makefile
600 tests/lib/mcconfig/Makefile
601 tests/lib/search/Makefile
602 tests/lib/vfs/Makefile
608 AC_OUTPUT
610 echo "
611 Configuration:
613   Source code location:       ${srcdir}
614   Compiler:                   ${CC}
615   Compiler flags:             ${CFLAGS}
616   File system:                ${vfs_type}
617                               ${vfs_flags}
618   Screen library:             ${screen_msg}
619   Mouse support:              ${mouse_lib}
620   X11 events support:         ${textmode_x11_support}
621   With subshell support:      ${subshell}
622   Internal editor:            ${edit_msg}
623   Diff viewer:                ${diff_msg}
624   Support for charset:        ${charset_msg}
625   Search type:                ${SEARCH_TYPE}