Ticket #2726 (mcedit nonpersistent selection must reset after cursor moved)
[midnight-commander.git] / configure.ac
blobf1f49269474b8d7985acd16012cfb2465ede6c86
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 firefox konqueror opera])
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
409 dnl Where config files should be placed
412 AC_ARG_WITH([homedir],
413     AS_HELP_STRING([--with-homedir], [Choose any place of user settings relative to home dir, or XDG for respect XDG standards @<:@XDG@:>@]),
414     [
415         if test "x$withval" = "xXDG"; then
416             with_homedir=XDG
417         else
418             with_homedir=$withval
419         fi
420     ],
421     [with_homedir=XDG])
424 if test x$with_homedir = xXDG; then
425     AC_DEFINE(MC_HOMEDIR_XDG, 1,
426         [Define to enable XDG standard support])
427 else
428     AC_DEFINE_UNQUOTED([MC_USERCONF_DIR], ["$with_homedir"], [Where configs will be placed relative to $HOME])
432 dnl Support for background operations
433 AC_ARG_ENABLE([background],
434               [  --enable-background     Support for background file operations [[yes]]])
435 if test "x$enable_background" != xno; then
436     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
441 dnl User visible support for charset conversion.
443 AC_ARG_ENABLE([charset],
444               [  --enable-charset        Support for charset selection and conversion [[yes]]])
445 have_charset=
446 charset_msg="no"
447 if test "x$enable_charset" != "xno"; then
448     AC_DEFINE(HAVE_CHARSET, 1,
449               [Define to enable charset selection and conversion])
450     have_charset=yes
451     charset_msg="yes"
454 if test "$GLIBC21" != yes; then
455     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
458 MC_CHECK_CFLAGS
460 CFLAGS_OPTS=""
462 if test "x$CFLAGS" = "x"; then
463     CFLAGS_OPTS=" -O2 "
466 if test x$USE_MAINTAINER_MODE = xyes; then
467     CFLAGS_OPTS="-g3 -O -ggdb"
468     AC_DEFINE(USE_MAINTAINER_MODE, 1, [Use maintainer mode])
471 AC_ARG_ENABLE(
472     [werror],
473     AS_HELP_STRING([--enable-werror], [Handle all compiler warnings as errors])
476 if test "x$enable_werror" = xyes; then
477     MC_CHECK_ONE_CFLAG([-Werror])
479 CFLAGS="$mc_configured_cflags $CFLAGS_OPTS $CFLAGS"
481 MC_UNIT_TESTS
483 AC_SUBST(CFLAGS)
484 AC_SUBST(CPPFLAGS)
485 AC_SUBST(LDFLAGS)
486 AC_SUBST(LIBS)
488 dnl Libraries used only when building the mc binary
489 AC_SUBST(MCLIBS)
491 MAN_DATE="$(LC_ALL=C date "+%B %Y")"
492 AC_SUBST(MAN_DATE)
494 AM_CONDITIONAL(USE_NLS, [test x"$USE_NLS" = xyes])
495 AM_CONDITIONAL(USE_MAINTAINER_MODE, [test x"$USE_MAINTAINER_MODE" = xyes])
496 AM_CONDITIONAL(USE_SCREEN_SLANG, [test x"$with_screen" = xslang])
497 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
498 AM_CONDITIONAL(USE_DIFF, [test -n "$use_diff"])
499 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
500 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
502 AC_CONFIG_FILES(
504 src/man2hlp/man2hlp
507 chmod +x src/man2hlp/man2hlp
510 AC_CONFIG_FILES([
511 Makefile
513 contrib/Makefile
514 contrib/dist/Makefile
515 contrib/dist/debian/Makefile
516 contrib/dist/gentoo/Makefile
517 contrib/dist/redhat/Makefile
518 contrib/dist/redhat/mc.spec
519 contrib/dist/pkginfo
520 contrib/dist/prototype
522 misc/Makefile
523 misc/skins/Makefile
524 misc/macros.d/Makefile
525 misc/mc.ext
527 src/Makefile
528 src/consaver/Makefile
529 src/editor/Makefile
530 src/man2hlp/Makefile
531 src/viewer/Makefile
532 src/diffviewer/Makefile
533 src/filemanager/Makefile
535 src/vfs/Makefile
537 src/vfs/cpio/Makefile
539 src/vfs/extfs/Makefile
540 src/vfs/extfs/helpers/Makefile
541 src/vfs/extfs/helpers/a+
542 src/vfs/extfs/helpers/apt+
543 src/vfs/extfs/helpers/audio
544 src/vfs/extfs/helpers/deb
545 src/vfs/extfs/helpers/deba
546 src/vfs/extfs/helpers/debd
547 src/vfs/extfs/helpers/dpkg+
548 src/vfs/extfs/helpers/iso9660
549 src/vfs/extfs/helpers/hp48+
550 src/vfs/extfs/helpers/lslR
551 src/vfs/extfs/helpers/mailfs
552 src/vfs/extfs/helpers/patchfs
553 src/vfs/extfs/helpers/rpms+
554 src/vfs/extfs/helpers/s3+
555 src/vfs/extfs/helpers/uace
556 src/vfs/extfs/helpers/ualz
557 src/vfs/extfs/helpers/uar
558 src/vfs/extfs/helpers/uarc
559 src/vfs/extfs/helpers/uarj
560 src/vfs/extfs/helpers/uc1541
561 src/vfs/extfs/helpers/ucab
562 src/vfs/extfs/helpers/uha
563 src/vfs/extfs/helpers/ulha
564 src/vfs/extfs/helpers/urar
565 src/vfs/extfs/helpers/uzip
566 src/vfs/extfs/helpers/uzoo
568 src/vfs/fish/Makefile
569 src/vfs/fish/helpers/Makefile
571 src/vfs/ftpfs/Makefile
573 src/vfs/local/Makefile
575 src/vfs/sfs/Makefile
577 src/vfs/smbfs/Makefile
579 src/vfs/tar/Makefile
581 src/vfs/undelfs/Makefile
583 lib/Makefile
584 lib/event/Makefile
585 lib/filehighlight/Makefile
586 lib/mcconfig/Makefile
587 lib/search/Makefile
588 lib/skin/Makefile
589 lib/strutil/Makefile
590 lib/tty/Makefile
592 lib/vfs/Makefile
594 lib/widget/Makefile
596 misc/syntax/Makefile
598 doc/Makefile
599 doc/hints/Makefile
600 doc/man/mc.1 doc/man/mcedit.1 doc/man/mcview.1 doc/man/Makefile
601 doc/man/es/mc.1 doc/man/es/Makefile
602 doc/man/hu/mc.1 doc/man/hu/Makefile
603 doc/man/it/mc.1 doc/man/it/Makefile
604 doc/man/pl/mc.1 doc/man/pl/Makefile
605 doc/man/ru/mc.1 doc/man/ru/Makefile
606 doc/man/sr/mc.1 doc/man/sr/Makefile
608 doc/hlp/Makefile
609 doc/hlp/es/Makefile
610 doc/hlp/hu/Makefile
611 doc/hlp/it/Makefile
612 doc/hlp/pl/Makefile
613 doc/hlp/ru/Makefile
614 doc/hlp/sr/Makefile
616 intl/Makefile
617 po/Makefile.in
620 if test x$enable_tests != xno; then
621     AC_CONFIG_FILES([
622 tests/Makefile
623 tests/lib/Makefile
624 tests/lib/mcconfig/Makefile
625 tests/lib/search/Makefile
626 tests/lib/vfs/Makefile
632 AC_OUTPUT
634 echo "
635 Configuration:
637   Source code location:       ${srcdir}
638   Compiler:                   ${CC}
639   Compiler flags:             ${CFLAGS}
640   File system:                ${vfs_type}
641                               ${vfs_flags}
642   Screen library:             ${screen_msg}
643   Mouse support:              ${mouse_lib}
644   X11 events support:         ${textmode_x11_support}
645   With subshell support:      ${subshell}
646   Internal editor:            ${edit_msg}
647   Diff viewer:                ${diff_msg}
648   Support for charset:        ${charset_msg}
649   Search type:                ${SEARCH_TYPE}