Revert overriding RPM target. It can lead to broken packages.
[midnight-commander.git] / configure.ac
blobdef478a7068fbaf3843ee28d684631c5db6efbf8
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.52)
7 AC_CONFIG_SRCDIR(src/main.c)
8 AC_CONFIG_AUX_DIR(config)
9 AM_INIT_AUTOMAKE(mc, 4.6.1a)
11 AM_CONFIG_HEADER(config.h)
12 AM_MAINTAINER_MODE
14 AC_CANONICAL_HOST
16 AC_AIX
17 AC_MINIX
18 AC_ISC_POSIX
20 AC_PROG_CC_STDC
22 dnl
23 dnl First try glib 2.x.  If it's not found, use glib 1.2.x.
24 dnl Keep this check close to the beginning, so that the users
25 dnl without any glib won't have their time wasted by other checks.
26 dnl
28 AC_ARG_WITH(glib12, 
29         [  --with-glib12            Force using glib 1.2.x [[no]]])
31 AC_ARG_WITH([glib_static],
32             [  --with-glib-static       Link glib statically [[no]]])
34 glib_found=no
35 if test "x$with_glib12" != "xyes"; then
36         PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib_found=yes], [:])
39 dnl Fall back to glib-1.2, don't use pkgconfig to find it.
40 if test "x$glib_found" != "xyes" ; then
41         dnl This temporary variable is a workaround for a bug in Autoconf-2.53
42         glib_path=$PATH:/usr/local/bin
44         dnl Klugde for FreeBSD, where glib-config is renamed to glib12-config.
45         AC_PATH_PROGS([GLIB_CONFIG], [glib-config glib12-config],,[$glib_path])
47         AC_ARG_VAR([GLIB_CONFIG], [Path to glib-config (version 1.2.x only)])
48         AM_PATH_GLIB(1.2.6, , [AC_MSG_ERROR([Test for glib failed.
49 GNU Midnight Commander requires glib 1.2.6 or above.])])
50         dnl Save GLIB_CFLAGS and GLIB_LIBS, since the following call to
51         dnl AM_PATH_GLIB will overwrite them.
52         save_GLIB_CFLAGS="$GLIB_CFLAGS"
53         save_GLIB_LIBS="$GLIB_LIBS"
54         dnl Check for gmodule.  Store the flags necessary to compile and
55         dnl link programs using gmodule functionality in GMODULE_CFLAGS
56         dnl and GMODULE_LIBS.
57         AM_PATH_GLIB(1.2.6, [gmodule_found=yes], , [gmodule])
58         GMODULE_CFLAGS="$GLIB_CFLAGS"
59         GMODULE_LIBS="$GLIB_LIBS"
60         GLIB_CFLAGS="$save_GLIB_CFLAGS"
61         GLIB_LIBS="$save_GLIB_LIBS"
62         GLIB_LIBDIR="`$GLIB_CONFIG --exec-prefix`/lib"
64         dnl Used in src/glibcompat.c
65         AC_CHECK_FUNCS([strlcpy])
66 else
67         PKG_CHECK_MODULES(GMODULE, [gmodule-2.0], [gmodule_found=yes])
68         GLIB_LIBDIR="`$PKG_CONFIG --variable=libdir glib-2.0`"
71 if test "x$gmodule_found" = "xyes" ; then
72         dnl Check if the gmodule functionality supported on this system.
73         AC_G_MODULE_SUPPORTED
76 AC_HEADER_MAJOR
77 AC_C_CONST
78 AC_SYS_LARGEFILE
80 AC_PROG_LN_S
81 AC_CHECK_TOOL(AR, ar, ar)
83 dnl Only list browsers here that can be run in background (i.e. with `&')
84 AC_CHECK_PROGS(X11_WWW, [gnome-moz-remote mozilla konqueror opera netscape])
86 dnl
87 dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
88 dnl We use only part of the functionality of mmap, so on AIX,
89 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
90 dnl
91 AC_ARG_WITH(mmap,
92         [  --with-mmap              Use the mmap call [[yes if found]]])
93 if test x$with_mmap != xno; then
94     if test x$with_mmap = x; then
95         AC_FUNC_MMAP
96     else
97         AC_DEFINE(HAVE_MMAP, 1)
98     fi
102 dnl Internationalization
104 MC_ASM_LABELS
105 AM_GNU_GETTEXT
106 AM_GNU_GETTEXT_VERSION(0.11.5)
108 if test "x$USE_INCLUDED_LIBINTL" = xyes; then
109     CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
112 dnl Determine which help translations we want to install.
113 ALL_DOC_LINGUAS="es hu it pl ru sr"
115 DOC_LINGUAS=
116 if test "x$USE_NLS" = xyes; then
117     if test -z "$LINGUAS"; then
118         langs="`grep -v '^#' $srcdir/po/LINGUAS`"
119     else
120         langs="$LINGUAS"
121     fi
122 else
123     langs=
126 for h_lang in $ALL_DOC_LINGUAS; do
127     for lang in $langs; do
128         if test "$lang" = "$h_lang"; then
129             DOC_LINGUAS="$DOC_LINGUAS $lang"
130             break
131         fi
132     done
133 done
134 AC_SUBST(DOC_LINGUAS)
137 dnl OS specific flags.
139 case $host_os in
140 aux*)
141     # A/UX
142     LIBS="$LIBS -lposix"
143     AC_DEFINE(_POSIX_SOURCE)
144     ;;
145 linux*)
146     AC_DEFINE(_GNU_SOURCE,, [Define to request GNU feature set on Linux])
147     ;;
148 esac
151 AC_PROG_INSTALL
152 AC_CHECK_HEADERS([unistd.h string.h memory.h grp.h limits.h malloc.h \
153         stdlib.h termios.h utime.h fcntl.h pwd.h sys/statfs.h sys/time.h \
154         sys/timeb.h sys/select.h sys/ioctl.h stropts.h arpa/inet.h \
155         security/pam_misc.h sys/socket.h sys/sysmacros.h sys/types.h \
156         sys/mkdev.h])
158 AC_HEADER_TIME
159 AC_HEADER_SYS_WAIT
160 AC_HEADER_DIRENT
161 AC_HEADER_STDC
163 dnl Missing structure components
164 AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev])
165 AC_STRUCT_ST_BLOCKS
168 dnl Check availability of some functions 
169 dnl 
171 AC_CHECK_FUNCS([atoll cfgetospeed getsid initgroups memcpy memmove memset \
172                 putenv setreuid setuid statfs strerror strftime \
173                 sysconf tcgetattr tcsetattr truncate getgrouplist])
175 dnl S-Lang needs all four functions to be defined to use POSIX signal API
176 AC_CHECK_FUNCS([sigaction sigemptyset sigprocmask sigaddset], , [slang_signals=no])
177 if test x$slang_signals != xno; then
178     AC_DEFINE(SLANG_POSIX_SIGNALS, 1, [Define to use POSIX signal API in S-Lang])
182 dnl getpt is a GNU Extension (glibc 2.1.x)
184 AC_CHECK_FUNCS(posix_openpt, , [AC_CHECK_FUNCS(getpt)])
185 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
187 dnl replacing lstat with statlstat on sco makes it more portable between
188 dnl sco clones
189 AC_CHECK_FUNCS(statlstat)
192 dnl If running under AIX, AC_AIX does not tell us that
194 AC_MSG_CHECKING([for AIX defines])
195 AC_EGREP_CPP(yes,
196 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
198 #endif
199 ], [
200 AC_DEFINE(IS_AIX, 1, [Define if compiling for AIX])
201 AC_MSG_RESULT(yes)
202 ], [AC_MSG_RESULT(no)])
205 dnl This is from GNU fileutils, check aclocal.m4 for more information
207 AC_GET_FS_INFO
210 dnl Missing typedefs and replacements
211 dnl 
213 AC_TYPE_MODE_T
214 AC_CHECK_TYPE(umode_t, int)
215 AC_CHECK_TYPE(off_t, long)
216 AC_TYPE_PID_T
217 AC_TYPE_UID_T
218 AC_CHECK_TYPE(nlink_t, unsigned int)
219 AC_CHECK_TYPES([socklen_t],
220   AC_DEFINE([HAVE_C_TYPE_SOCKLEN_T], [1], [Define to 1 if socklen_t is defined by <sys/socket.h>]),,
221 [#include <sys/types.h>
222 #include <sys/socket.h>])
224 dnl This is needed for regex.c only
225 AC_CHECK_TYPE(uintptr_t,
226               [AC_DEFINE(HAVE_UINTPTR_T, 1,
227                          [Define if you have the `uintptr_t' type.])
230 AC_FUNC_ALLOCA
231 AC_FUNC_STRCOLL
234 dnl X11 support.
235 dnl Used to read keyboard modifiers when running under X11.
238 AC_PATH_XTRA
239 if test "x$no_x" = xyes; then
240     textmode_x11_support="no"
241 else
242     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
243     if test "x$mc_cv_g_module_supported" = "xyes" ; then
244         dnl Replace the contents of GLIB_CFLAGS and GLIB_LIBS with those of
245         dnl GMODULE_CFLAGS and GMODULE_LIBS, only if X is available and gmodule
246         dnl functionality is supported on the system.  This way, mc will be
247         dnl linked against the gmodule library only when it's really required.
248         GLIB_CFLAGS="$GMODULE_CFLAGS"
249         GLIB_LIBS="$GMODULE_LIBS"
250     else
251         MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
252     fi
253     AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT, 1,
254               [Define to enable getting events from X Window System])
255     textmode_x11_support="yes"
259 dnl Try to find static libraries for glib and gmodule.
261 if test x$with_glib_static = xyes; then
262     new_GLIB_LIBS=
263     for i in $GLIB_LIBS; do
264         case x$i in
265         x-lglib*)
266             lib=glib ;;
267         x-lgmodule*)
268             lib=gmodule ;;
269         *)
270             lib=
271             add="$i" ;;
272         esac
274         if test -n "$lib"; then
275             lib1=`echo $i | sed 's/^-l//'`
276             if test -f "$GLIB_LIBDIR/lib${lib1}.a"; then
277                 add="$GLIB_LIBDIR/lib${lib1}.a"
278             else
279                 if test -f "$GLIB_LIBDIR/lib${lib}.a"; then
280                     add="$GLIB_LIBDIR/lib${lib}.a"
281                 else
282                     AC_MSG_ERROR([Cannot find static $lib])
283                 fi
284             fi
285         fi
286         new_GLIB_LIBS="$new_GLIB_LIBS $add"
287     done
288     GLIB_LIBS="$new_GLIB_LIBS"
293 dnl Network related functions
296 AC_CHECK_LIB(nsl, t_accept)
297 AC_CHECK_LIB(socket, socket)
299 have_socket=no
300 AC_CHECK_FUNCS(socket, have_socket=yes)
301 if test $have_socket = no; then
302   # socket is not in the default libraries.  See if it's in some other.
303   for lib in bsd socket inet; do
304     AC_CHECK_LIB($lib, socket, [
305         LIBS="$LIBS -l$lib"
306         have_socket=yes
307         AC_DEFINE(HAVE_SOCKET)
308         break])
309   done
312 have_gethostbyname=no
313 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
314 if test $have_gethostbyname = no; then
315   # gethostbyname is not in the default libraries.  See if it's in some other.
316   for lib in bsd socket inet; do
317     AC_CHECK_LIB([$lib], [gethostbyname],
318                  [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
319   done
323 dnl Sequent wants getprocessstats
325 AC_CHECK_LIB(seq, get_process_stats, [
326         LIBS="$LIBS -lseq"
327         AC_DEFINE(HAVE_GET_PROCESS_STATS, 1,
328                   [Define if you have function `get_process_stats' and
329 have to use that instead of gettimeofday])])
331 MC_VFS_CHECKS
333 vfs_type="normal"
334 if test x$use_vfs = xyes; then
335         AC_MSG_NOTICE([enabling VFS code])
336         vfs_type="Midnight Commander Virtual File System"
340 dnl Check for gpm mouse support (Linux only)
342 mouse_lib="xterm only"
343 AC_ARG_WITH(gpm-mouse, 
344         [  --with-gpm-mouse         Compile with gpm mouse support (Linux only)
345                            [[yes if found]]])
347 case $host_os in
348 linux*)
349     if test x$with_gpm_mouse != xno; then
350         AC_CHECK_LIB(gpm, Gpm_Repeat,
351             [AC_DEFINE(HAVE_LIBGPM, 1,
352                        [Define to enable gpm mouse support on Linux])
353             mouse_lib="gpm and xterm"
354             MCLIBS="$MCLIBS -lgpm"],
355             [AC_MSG_WARN([libgpm is missing or older than 0.18])
356         ])
357     fi
358     ;;
359 esac
362 dnl Check nroff and the options it supports
364 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
366 dnl Default values
367 MANDOC=-man
368 MAN_FLAGS=
370 if $HAVE_nroff; then
371     AC_MSG_CHECKING([for manual formatting macros])
372     AC_CACHE_VAL(mc_cv_mandoc, [
373     nroff -mandoc < /dev/null > /dev/null 2>&1
374     if test $? = 0; then
375         mc_cv_mandoc=-mandoc
376     else
377         mc_cv_mandoc=-man
378     fi
379     ])
380     MANDOC=$mc_cv_mandoc
381     AC_MSG_RESULT([$MANDOC])
383     AC_MSG_CHECKING([for option to disable ANSI color in manuals])
384     AC_CACHE_VAL(mc_cv_man_nocolor, [
385     nroff -c < /dev/null > /dev/null 2>&1
386     if test $? = 0; then
387         mc_cv_man_nocolor=-c
388     else
389         mc_cv_man_nocolor=
390     fi
391     ])
392     MAN_FLAGS=$mc_cv_man_nocolor
393     AC_MSG_RESULT([${MAN_NOCOLOR-none}])
395     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
396     AC_CACHE_VAL(mc_cv_nroff_tascii, [
397     mc_cv_nroff_tascii=
398     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
399     if test $? = 0; then
400         mc_cv_nroff_tascii=-Tlatin1
401     else
402         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
403         if test $? = 0; then
404             mc_cv_nroff_tascii=-Tascii
405         fi
406     fi
407     ])
408     AC_MSG_RESULT([${mc_cv_nroff_tascii-no}])
409     MAN_FLAGS="$MAN_FLAGS $mc_cv_nroff_tascii"
412 AC_SUBST(MANDOC)
413 AC_SUBST(MAN_FLAGS)
417 dnl Check for -L option to file
419 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
420 if $HAVE_FILECMD; then
421     AC_MSG_CHECKING([for -L option to file command])
422     AC_CACHE_VAL(mc_cv_filel, [
423     file -L . > /dev/null 2>&1
424     if test $? = 0; then
425         mc_cv_filel=yes
426     else
427         mc_cv_filel=no
428     fi
429     ])
430     if test x$mc_cv_filel = xyes; then
431         AC_DEFINE(FILE_L, 1, [Define if the file command accepts the -L option])
432     fi
433     filel=$mc_cv_filel
434     AC_MSG_RESULT([$filel])
438 AC_MSG_CHECKING([for subshell support])
439 AC_ARG_WITH(subshell,
440         [  --with-subshell          Compile in concurrent subshell [[yes]]
441   --with-subshell=optional Don't run concurrent shell by default [[no]]],
442         [result=no
443         if test x$withval = xoptional
444         then
445                 AC_DEFINE(SUBSHELL_OPTIONAL, 1,
446                           [Define to make subshell support optional])
447                 result="optional"
448         fi
449         if test x$withval = xyes
450         then 
451                 result="yes"
452         fi],
453         [dnl Default: enable the subshell support
454         result="yes"
456 if test "x$result" != xno; then
457         AC_DEFINE(HAVE_SUBSHELL_SUPPORT, 1,
458                   [Define to enable subshell support])
460 AC_MSG_RESULT([$result])
461 subshell="$result"
465 dnl Select the screen library.  mcslang is the included S-Lang library.
467 AC_ARG_WITH(screen,
468         [  --with-screen=LIB        Compile with screen library: slang, mcslang or
469                            ncurses [[slang if found, else mcslang]]])
471 case x$with_screen in
472 xslang)
473         MC_WITH_SLANG(strict)
474         ;;
475 xmcslang)
476         MC_WITH_MCSLANG
477         ;;
478 xncurses)
479         MC_WITH_NCURSES
480         ;;
482         MC_WITH_SLANG
483         ;;
485         AC_MSG_ERROR([Value of the screen library is incorrect])
486         ;;
487 esac
491 dnl Force using termcap.  This option is processed in MC_WITH_MCSLANG.
492 dnl Report an error if this option is not applicable.
494 AC_ARG_WITH(termcap,
495         [  --with-termcap           Try using termcap database [[only if no terminfo]]],
496         [if test x$with_screen != xmcslang; then
497                 AC_MSG_ERROR([Option `--with-termcap' only works with `--with-screen=mcslang'])
498         fi
503 dnl Internal editor support.
505 AC_ARG_WITH(edit,
506         [  --with-edit              Enable internal editor [[yes]]])
508 if test x$with_edit != xno; then
509         AC_DEFINE(USE_INTERNAL_EDIT, 1, [Define to enable internal editor])
510         use_edit=yes
511         edit_msg="yes"
512         AC_MSG_NOTICE([using internal editor])
513 else
514         edit_msg="no"
518 dnl Check if the OS is supported by the console saver.
519 cons_saver=""
520 case $host_os in
521 linux*)
522     cons_saver=yes
523 esac
526 dnl Support for background operations
527 AC_ARG_ENABLE([background],
528               [  --enable-background      Support for background file operations [[yes]]])
529 if test "x$enable_background" != xno; then
530     AC_DEFINE(WITH_BACKGROUND, 1, [Define to enable background file operations])
535 dnl User visible support for charset conversion.
537 AC_ARG_ENABLE([charset],
538               [  --enable-charset         Support for charset selection and conversion [[no]]])
539 have_charset=
540 charset_msg="no"
541 if test "x$enable_charset" = xyes; then
542   if test "x$am_cv_func_iconv" != xyes; then
543     AC_MSG_WARN([Cannot enable charset support because iconv function is missing])    
544   else
545     AC_DEFINE(HAVE_CHARSET, 1,
546               [Define to enable charset selection and conversion])
547     have_charset=yes
548     charset_msg="yes"
549   fi
552 if test "$GLIBC21" != yes; then
553     AC_DEFINE(USE_INCLUDED_REGEX, 1, [Use the regex included here])
556 MC_ARG_ENABLE_DEVELOPER_MODE()
558 AC_SUBST(CFLAGS)
559 AC_SUBST(CPPFLAGS)
560 AC_SUBST(LDFLAGS)
561 AC_SUBST(LIBS)
563 dnl Libraries used only when building the mc binary
564 AC_SUBST(MCLIBS)
566 dnl Version for the RedHat package, without dashes
567 RPM_VERSION=`echo $VERSION | sed 's/-//g'`
568 AC_SUBST(RPM_VERSION)
570 if test -n "$use_smbfs"; then
571   AC_CONFIG_SUBDIRS([vfs/samba])
574 AM_CONDITIONAL(USE_EDIT, [test -n "$use_edit"])
575 AM_CONDITIONAL(USE_VFS, [test "x$use_vfs" = xyes])
576 AM_CONDITIONAL(USE_VFS_NET, [test x"$use_net_code" = xtrue])
577 AM_CONDITIONAL(USE_UNDEL_FS, [test -n "$use_undelfs"])
578 AM_CONDITIONAL(USE_SAMBA_FS, [test -n "$use_smbfs"])
579 AM_CONDITIONAL(USE_MCFS, [test -n "$use_mcfs"])
580 AM_CONDITIONAL(INCLUDED_SLANG, [test "x$with_screen" = xmcslang])
581 AM_CONDITIONAL(CHARSET, [test -n "$have_charset"])
582 AM_CONDITIONAL(CONS_SAVER, [test -n "$cons_saver"])
584 AC_CONFIG_FILES([
585 Makefile 
586 mc.spec
587 mc.qpg
588 doc/Makefile 
589 vfs/Makefile
590 vfs/extfs/Makefile
591 lib/Makefile
592 src/Makefile
593 slang/Makefile 
594 edit/Makefile 
595 syntax/Makefile
596 m4/Makefile
597 lib/mc.ext
598 vfs/extfs/a
599 vfs/extfs/apt
600 vfs/extfs/audio
601 vfs/extfs/deb
602 vfs/extfs/deba
603 vfs/extfs/debd
604 vfs/extfs/dpkg
605 vfs/extfs/iso9660
606 vfs/extfs/hp48
607 vfs/extfs/lslR
608 vfs/extfs/mailfs
609 vfs/extfs/patchfs
610 vfs/extfs/rpms
611 vfs/extfs/uar
612 vfs/extfs/uarj
613 vfs/extfs/uha
614 vfs/extfs/ulha 
615 vfs/extfs/urar
616 vfs/extfs/uzip
617 vfs/extfs/uzoo
619 doc/mc.1 doc/mcedit.1 doc/mcview.1 doc/mcserv.8
620 doc/es/mc.1 doc/es/Makefile
621 doc/hu/mc.1 doc/hu/Makefile
622 doc/it/mc.1 doc/it/Makefile
623 doc/pl/mc.1 doc/pl/Makefile
624 doc/ru/mc.1 doc/ru/Makefile
625 doc/sr/mc.1 doc/sr/mcserv.8 doc/sr/Makefile
627 intl/Makefile
628 po/Makefile.in
631 AC_OUTPUT
633 echo "
634 Configuration:
636   Source code location:       ${srcdir}
637   Compiler:                   ${CC}
638   Compiler flags:             ${CFLAGS}
639   File system:                ${vfs_type}
640                               ${vfs_flags}
641   Screen library:             ${screen_msg}
642   Mouse support:              ${mouse_lib}
643   X11 events support:         ${textmode_x11_support}
644   With subshell support:      ${subshell}
645   Internal editor:            ${edit_msg}
646   Support for charset:        ${charset_msg}