Corrected some authors email addresses.
[midnight-commander.git] / configure.in
blob639adb95f52aeb6e10526ec65c711ff699cdd264
1 dnl
2 dnl Configure.in file for the Midnight Commander
3 dnl
4 AC_INIT(src/main.c)
5 AC_PREREQ(2.13)
6 AC_CANONICAL_HOST
8 AM_INIT_AUTOMAKE(mc, 4.5.54)
9 AM_CONFIG_HEADER(config.h)
10 AM_MAINTAINER_MODE
12 AC_PROG_MAKE_SET
13 AC_PROG_CC
14 AC_PROG_CPP
15 AC_PROG_RANLIB
16 AC_PROG_LN_S
17 AC_PROG_AWK
18 if test x"$AWK" = x; then
19     AWK=":"
20     AWK_VAR_OPTION=""
21     dep=slowdep
22 else
23     dep=fastdep
25     # test whether awk needs -v for variables (e.g. Solaris) or not (e.g. SunOs 4)
26     if test x"`echo | $AWK 'BEGIN { print variable; exit }' variable=123`" = x123; then
27         AWK_VAR_OPTION=""
28     else
29         AWK_VAR_OPTION="-v"
30     fi
32 AC_SUBST(AWK_VAR_OPTION)
33 AC_SUBST(dep)
34 AC_PROG_GNU_MAKE
36 AC_AIX
37 AC_MINIX
38 AC_ISC_POSIX
39 dnl It's a hack to accomodate both Autoconf 2.13 and the 2.49x series,
40 dnl It's needed until Autoconf 2.50 is released.
41 ifdef([AC_PROG_CC_STDC], [AC_PROG_CC_STDC], [AM_PROG_CC_STDC])
42 AC_HEADER_MAJOR
43 AC_C_CONST
44 AC_CHECK_TOOL(AR, ar, ar)
46 AC_CHECK_PROGS(X11_WWW,netscape arena Mosaic chimera)
47 if test x"$X11_WWW" = x; then
48     X11_WWW=lynx
51 ALL_LINGUAS="az ca cs da de el es es_ES fi fr hu it ja ko lv nl no pl pt_BR ro ru sk sl sv uk ta tr wa zh_TW.Big5 zh_CN.GB2312"
53 AM_GNOME_GETTEXT
55 dnl
56 dnl Enforce coding standards
57 dnl
58 if test "x$GCC" = xyes; then
59     CFLAGS="$CFLAGS -Wall"
62 dnl
63 dnl We now use glib
64 dnl 
65 AM_PATH_GLIB(1.2.0,,[AC_MSG_ERROR([Test for GLIB failed.  MC requires GLIB.])])
66 LIBS="$LIBS $GLIB_LIBS"
68 dnl
69 dnl For A/UX.  Do not move
70 dnl
72 posix_libs=""
73 case $host_os in
74 aux*)
75     posix_libs="-lposix"
76     AC_DEFINE(_POSIX_SOURCE)
77 esac
79 AC_PROG_INSTALL
80 AC_CHECK_HEADERS([unistd.h string.h memory.h crypt.h grp.h limits.h \
81         malloc.h stdlib.h termios.h utime.h fcntl.h sys/statfs.h \
82         sys/time.h sys/timeb.h])
84 AC_HEADER_TIME
85 AC_HEADER_SYS_WAIT
86 AC_HEADER_DIRENT
87 AC_SHORT_D_NAME_LEN
88 AC_HEADER_STDC
90 dnl Missing structure components
91 AC_STRUCT_ST_BLKSIZE
92 AC_STRUCT_ST_BLOCKS
93 AC_STRUCT_ST_RDEV
95 dnl
96 dnl Check availability of some functions 
97 dnl 
99 AC_CHECK_FUNCS(strerror statfs getwd strcasecmp strncasecmp strcoll strftime)
100 AC_CHECK_FUNCS(strdup memmove pwdauth truncate initgroups putenv)
101 AC_CHECK_FUNCS(memset memcpy tcsetattr tcgetattr cfgetospeed)
102 AC_CHECK_FUNCS(sigaction sigemptyset sigprocmask sigaddset)
103 AC_CHECK_FUNCS(sysconf setuid setreuid)
106 dnl getpt is a GNU Extension (glibc 2.1.x)
108 AC_CHECK_FUNCS(getpt)
110 SHADOWLIB=
111 case $host_os in
112 linux*)
113     AC_CHECK_LIB(shadow,pw_encrypt,
114         [shadow_header=yes
115         AC_CHECK_HEADERS(shadow.h,,
116                 [AC_CHECK_HEADERS(shadow/shadow.h,,
117                         [shadow_header=no])])
118         if test $shadow_header = yes; then
119             AC_DEFINE(LINUX_SHADOW)
120             SHADOWLIB=-lshadow
121         fi])
122     ;;
123 esac
124 AC_SUBST(SHADOWLIB)
126 NEED_CRYPT_PROTOTYPE=yes
127 if test x$ac_cv_header_crypt_h = xyes; then
128 AC_TRY_WARNINGS([#include <crypt.h>], [char *p = crypt("xxx", "yyy");],[
129 NEED_CRYPT_PROTOTYPE=no])
130 else 
131     if test x$ac_cv_header_unistd_h = xyes; then
132 AC_TRY_WARNINGS([#include <unistd.h>], [char *p = crypt("xxx", "yyy");],[
133 NEED_CRYPT_PROTOTYPE=no])
134     fi
136 if test x$NEED_CRYPT_PROTOTYPE=xyes; then
137 AC_DEFINE(NEED_CRYPT_PROTOTYPE)
141 dnl AIX and Sequent need <sys/select.h> for fd_set
143 AC_CHECK_HEADERS(sys/select.h)
146 dnl On SCO and some SVR4, crypt is on libcrypt.a
147 dnl         grantpt in  libpt.a
149 LCRYPT=""
150 AC_CHECK_FUNCS(crypt, , [
151     AC_CHECK_LIB(crypt, crypt, LCRYPT="-lcrypt",[
152         AC_CHECK_LIB(crypt_i, crypt, LCRYPT="-lcrypt_i")])])
153 AC_SUBST(LCRYPT)
155 AC_CHECK_FUNCS(grantpt, , [AC_CHECK_LIB(pt, grantpt)])
158 dnl libintl.a required on SCO to provide proper NLS support
159 dnl (using native cc links it by default)
161 if test x$GCC = xyes; then
162     AC_CHECK_LIB(intl, tolower)
165 dnl replacing lstat with statlstat on sco makes it more portable between
166 dnl sco clones
167 AC_CHECK_FUNCS(statlstat)
170 dnl If running under AIX, AC_AIX does not tell us that
172 AC_MSG_CHECKING([for AIX defines])
173 AC_EGREP_CPP(yes,
174 [#if defined(AIX) || defined(_AIX) || defined(__aix__) || defined(aix)
176 #endif
177 ], [
178 AC_DEFINE(IS_AIX)
179 AC_MSG_RESULT(yes)
180 ], [AC_MSG_RESULT(no)])
182 dnl   
183 dnl This hack is here until autoconf adds it
184 dnl Needed for Unixware: getmntent is on libgen.a
186 AC_CHECK_LIB(gen, getmntent, [LIBS="-lgen $LIBS"])
189 dnl This is from GNU fileutils, check aclocal.m4 for more information
191 AC_GET_FS_INFO
194 dnl Missing typedefs and replacements
195 dnl 
197 AC_TYPE_MODE_T
198 AC_CHECK_TYPE(umode_t, int)
199 AC_CHECK_TYPE(off_t, long)
200 AC_TYPE_PID_T
201 AC_TYPE_UID_T
202 AC_CHECK_TYPE(nlink_t, unsigned int)
204 AC_FUNC_MMAP
205 AC_FUNC_ALLOCA
208 dnl Cool hack, but we don't use it currently 
210 dnl AC_MSG_CHECKING([for token pasting method])
211 dnl AC_EGREP_CPP(portable,[
212 dnl #define tken(a, b) a##b
213 dnl tken(port, able)
214 dnl ], [AC_DEFINE(HAVE_PORTABLE_TOKEN_PASTING)
215 dnl AC_MSG_RESULT(portable)
216 dnl ], [
217 dnl AC_MSG_RESULT(non-portable)
218 dnl ])
220 AC_PATH_XTRA
223 dnl X11 support in the textmode edition. 
226 dnl These variables are only used when building the text edition MC binary
227 MCCFLAGS=""
228 MCLIBS=""
229 AC_SUBST(MCCFLAGS)
230 AC_SUBST(MCLIBS)
232 textmode_x11_support="no"
233 AC_ARG_WITH(tm-x-support,
234         [--with-tm-x-support        Add X Window System support to the text edition],
235         [if test x$withval = xyes; then
236                 MCCFLAGS="$X_CFLAGS"
237                 MCLIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
238                 AC_DEFINE(HAVE_TEXTMODE_X11_SUPPORT)
239                 textmode_x11_support="yes"
240         fi
244 dnl Network related functions
247 AC_CHECK_LIB(nsl, t_accept)
248 AC_CHECK_LIB(socket, socket)
250 have_socket=no
251 AC_CHECK_FUNCS(socket, have_socket=yes)
252 if test $have_socket = no; then
253   # socket is not in the default libraries.  See if it's in some other.
254   for lib in bsd socket inet; do
255     AC_CHECK_LIB($lib, socket, [
256         LIBS="$LIBS -l$lib"
257         have_socket=yes
258         AC_DEFINE(HAVE_SOCKET)
259         break])
260   done
263 have_gethostbyname=no
264 AC_CHECK_FUNC(gethostbyname, [have_gethostbyname=yes])
265 if test $have_gethostbyname = no; then
266   # gethostbyname is not in the default libraries.  See if it's in some other.
267   for lib in bsd socket inet; do
268     AC_CHECK_LIB($lib, gethostbyname, [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break])
269   done
272 AC_CHECK_FUNCS(socketpair)
275 dnl Sequent wants getprocessstats
277 AC_CHECK_LIB(seq, get_process_stats, [
278         LIBS="$LIBS -lseq"
279         AC_DEFINE(HAVE_GET_PROCESS_STATS)])
281 GNOME_VFS_CHECKS
284 dnl Install mcserv only if explicitly enabled
286 AC_ARG_ENABLE([mcserv-install],
287               [--enable-mcserv-install    Install mcserv - Midnight Commander file server])
289 AM_CONDITIONAL(MCSERV_INSTALL,
290                [test "x$enable_mcserv_install$mcserv" = xyesmcserv])
292 NETFILES=
293 if test $have_socket = yes; then
294    NETFILES="\$(NETFILES)"
296 AC_SUBST(NETFILES)
298 LIBVFS=""
299 LVFS=""
300 fastdepvfs=""
301 vfs_type="normal"
302 if test $use_vfs = yes
303 then
304         LIBVFS="libvfs-mc.a"
305         LVFS="-lvfs-mc"
306         fastdepvfs=fastdepvfs
307         MCCPPFLAGS="$MCCPPFLAGS -I\$(vfsdir)"
308         AC_MSG_RESULT([Using the VFS switch code])
309         vfs_type="Midnight Commander Virtual File System"
311 AC_SUBST(LIBVFS)
312 AC_SUBST(LVFS)
313 AC_SUBST(fastdepvfs)
315 screen_manager=unknown
316 search_ncurses=false
318 XCURSES=""
319 AC_SUBST(XCURSES)
321 dnl AC_ARG_WITH(bsd-curses,
322 dnl [--with-bsd-curses         Used to compile with bsd curses, not very fancy],
323 dnl     [search_ncurses=false
324 dnl     screen_manager="Ultrix/cursesX"
325 dnl     case $host_os in
326 dnl     ultrix*)
327 dnl         THIS_CURSES=cursesX
328 dnl         ;;
329 dnl     *)
330 dnl         THIS_CURSES=curses
331 dnl         ;;
332 dnl     esac
334 dnl     LIBS="$LIBS -l$THIS_CURSES -ltermcap"
335 dnl     AC_DEFINE(USE_BSD_CURSES)
336 dnl     XCURSES="xcurses.o"
337 dnl     AC_MSG_RESULT([Please note that some screen refreshs may fail])
338 dnl     AC_MSG_WARN([Use of the bsdcurses extension has some])
339 dnl     AC_MSG_WARN([display/input problems.])
340 dnl     AC_MSG_WARN([Reconsider using xcurses])
341 dnl])
343 AC_ARG_WITH(sco,
344         [--with-sco                 Use this to turn on SCO-specific code],[
345         if test x$withval = xyes; then
346                 AC_DEFINE(SCO_FLAVOR)
347                 CFLAGS="$CFLAGS -D_SVID3"
348         fi
351 AC_ARG_WITH(sunos-curses,
352         [--with-sunos-curses        Used to force SunOS 4.x curses],[
353         if test x$withval = xyes; then
354                 AC_USE_SUNOS_CURSES
355         fi
358 AC_ARG_WITH(osf1-curses,
359         [--with-osf1-curses        Used to force OSF/1 curses],[
360         if test x$withval = xyes; then
361                 AC_USE_OSF1_CURSES
362         fi
365 AC_ARG_WITH(vcurses,
366         [--with-vcurses[=incdir]    Used to force SysV curses],
367         [if test x$withval = xyes; then :
368         else
369                 CPPFLAGS="$CPPFLAGS -I$withval"
370         fi
371         AC_USE_SYSV_CURSES
374 mouse_lib="xterm only"
375 LGPM=""
376 case $host_os in
377 linux*)
378     AC_ARG_WITH(gpm-mouse, 
379         [--with-gpm-mouse[=base-dir]  Compile with gpm mouse support (Linux only)],
380         [if test x$withval != xno
381         then
382                 if test x$withval != xyes
383                 then
384                         LIBS="$LIBS -L$withval/lib"
385                         CPPFLAGS="$CPPFLAGS -I$withval/include"
386                 fi
387                 AC_DEFINE(HAVE_LIBGPM)
388                 mouse_lib="GPM and xterm"
389                 LGPM="-lgpm"
390         fi],
391         [AC_CHECK_LIB(gpm, Gpm_Repeat,
392                 [AC_DEFINE(HAVE_LIBGPM)
393                 mouse_lib="GPM and xterm"
394                 LGPM="-lgpm"],
395                 [AC_MSG_WARN([libgpm is missing or older than 0.18])],
396                 $LIBS)
397         ])
398     ;;
399 esac
400 AC_SUBST(LGPM)
402 AC_ARG_WITH(ncurses,
403         [--with-ncurses[=base-dir]    Compile with ncurses/locate base dir],
404         [if test x$withval = xyes
405         then
406                 search_ncurses=true
407         else
408                 LIBS="$LIBS -L$withval/lib -lncurses"
409                 CPPFLAGS="$CPPFLAGS -I$withval/include"
410                 search_ncurses=false
411                 screen_manager="ncurses"
412                 AC_DEFINE(USE_NCURSES)
413         fi
416 AC_ARG_WITH(hsc,
417         [--with-hsc               Compile with support for the HSC firewall],
418         [if test x$withval = xyes; then
419                 AC_DEFINE(HSC_PROXY)
420         fi
424 dnl Check for Gnome
426 mx=""
427 gmcdep=""
428 libgtkedit=""
429 xvers="none"
431 GNOME_INIT_HOOK([
432         mx=mx
433         gmcdep=gmcdep
434         libgtkedit="libgtkedit.a"
435         if test x"$xvers" = xnone; then
436             xvers="Gnome"
437         else
438             xvers="Gnome+$xvers"
439         fi
440         gnomeicondir=`gnome-config --datadir`/pixmaps
442 dnl Check for new enough gnome-libs
443         CFLAGS_save=$CFLAGS
444         LIBS_save=$LIBS
445         CFLAGS=`gnome-config --cflags gnomeui`
446         LIBS=`gnome-config --libs gnomeui`
448         AC_CHECK_LIB(gnomeui, gnome_window_icon_set_default_from_file,
449                               [AC_DEFINE(HAVE_GNOME_WINDOW_ICON)])
451         CFLAGS=$CFLAGS_save
452         LIBS=$LIBS_save
454 AC_SUBST(gnomeicondir)
455 AC_SUBST(mx)
456 AC_SUBST(gmcdep)
457 AC_SUBST(libgtkedit)
458 AC_SUBST(GNOMEGNORBA_LIBS)
459 AM_CONDITIONAL(GNOME, [test x"$mx" = xmx])
462 dnl Check for the -mandoc package
464 AC_CHECK_PROG(HAVE_nroff, nroff, true, false)
465 if $HAVE_nroff; then
466     AC_MSG_CHECKING([for manual formatting macros])
467     AC_CACHE_VAL(ac_cv_mandoc, [
468     nroff -mandoc < /dev/null > /dev/null 2>&1 /dev/null
469     if test $? = 0
470     then
471         ac_cv_mandoc=-mandoc
472     else
473         ac_cv_mandoc=-man
474     fi
475     ])
476     MANDOC=$ac_cv_mandoc
477     AC_MSG_RESULT($MANDOC)
478 else
479     MANDOC=-man
481 AC_SUBST(MANDOC)
484 dnl Check if nroff accepts -Tlatin1 or -Tascii
486 if $HAVE_nroff; then
487     AC_MSG_CHECKING([if nroff accepts -Tlatin1 or -Tascii])
488     AC_CACHE_VAL(ac_cv_nroff_tascii, [
489     nroff -Tlatin1 < /dev/null > /dev/null 2>&1 /dev/null
490     if test $? = 0
491     then
492         ac_cv_nroff_tascii=" -Tlatin1"
493     else
494         nroff -Tascii < /dev/null > /dev/null 2>&1 /dev/null
495         if test $? = 0
496         then
497             ac_cv_nroff_tascii=" -Tascii"
498         else
499             ac_cv_nroff_tascii=""
500         fi
501     fi
502     ])
503     if test "x$ac_cv_nroff_tascii" = x; then
504         AC_MSG_RESULT(no)
505     else
506         AC_MSG_RESULT([yes,$ac_cv_nroff_tascii])
507     fi
509 TROFFASCII="$ac_cv_nroff_tascii"
510 AC_SUBST(TROFFASCII)
513 dnl Check for - option to file
515 AC_CHECK_PROG(HAVE_FILECMD, file, true, false)
516 if $HAVE_FILECMD; then
517     AC_MSG_CHECKING([for - option to file command])
518     AC_CACHE_VAL(ac_cv_filestdin, [
519     cat > conftest.c <<EOF
520 /* A comment */
521 #if 0
522 #endif
523 void main(void)
524 { return; }
526     changequote(, )
527     cat > conftest.sed <<EOF
528 s/^[^:]*:[\ \   ]*//
529 s/[\ \  ]*$//
531     filehyphen_1=`file conftest.c 2>/dev/null | sed -f conftest.sed`
532     filehyphen_2=`cat conftest.c | file - 2>/dev/null | sed -f conftest.sed`
533     if test "$filehyphen_1" = "$filehyphen_2"; then
534         ac_cv_filestdin=yes
535     else
536         ac_cv_filestdin=no
537     fi
538     changequote([, ])
539     rm conftest.c conftest.sed
540     unset filehyphen_1
541     unset filehyphen_2
542     ])
544     if test x$ac_cv_filestdin = xyes; then
545         AC_DEFINE(FILE_STDIN)
546     fi
547     filestdin=$ac_cv_filestdin
548     AC_MSG_RESULT([$filestdin])
550     dnl
551     dnl Check for -L option to file
552     dnl
554 AC_MSG_CHECKING([for -L option to file command])
555 AC_CACHE_VAL(ac_cv_filel, [
556 file -L . > /dev/null 2>&1
557 if test $? = 0
558 then
559     ac_cv_filel=yes
560 else
561     ac_cv_filel=no
564 if test x$ac_cv_filel = xyes; then
565     AC_DEFINE(FILE_L)
567 filel=$ac_cv_filel
568 AC_MSG_RESULT([$filel])
569 fi 
572 dnl Check to see if grep program allowes dash to denote stdin 
574 AC_MSG_CHECKING([for - option to grep command])
575 AC_CACHE_VAL(ac_cv_grep_stdin, [
576     grep ac_cv_grep_stdin - > /dev/null 2>&1 < ./configure
577     if test $? = 0; then
578         ac_cv_grep_stdin=yes
579     else
580         ac_cv_grep_stdin=no
581     fi
583 if test x$ac_cv_grep_stdin = xyes; then
584     AC_DEFINE(GREP_STDIN)
586 AC_MSG_RESULT([$ac_cv_grep_stdin])
589 dnl The subshell support
592 AC_MSG_CHECKING([for subshell support])
593 AC_ARG_WITH(subshell,
594         [--with-subshell            If you want to use a concurrent shell],
595         [result=no
596         if test x$withval = xoptional
597         then
598                 AC_DEFINE(SUBSHELL_OPTIONAL)
599                 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
600                 result="optional"
601         fi
602         if test x$withval = xyes
603         then 
604                 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
605                 result="yes"
606         fi],
607         [dnl Default: provide the subshell support on non-ultrix machines
608         case $host_os in
609         ultrix*)
610                 result=no
611                 ;;
612         *)
613                 AC_DEFINE(HAVE_SUBSHELL_SUPPORT)
614                 result=yes
615                 ;;
616         esac
618 AC_MSG_RESULT([$result])
619 subshell="$result"
622 dnl Check for GCC
624 if test x$GCC = x
625 then
626         AC_DEFINE(OLD_TOOLS)
630 dnl Memory Allocation Debugger
632 mem_debug="none"
633 AC_ARG_WITH(mad,
634 [--with-mad                 Developers only: activates MAD (memory debugger)],
635         [if test x$withval = xyes; then
636         mem_debug="Janne's MAD library"
637         AC_DEFINE(HAVE_MAD)
638         AC_MSG_RESULT([compiling with memory leak detector])
639 fi])
642 dnl Electric Fence - another memory debugger
644 AC_ARG_WITH(efence, 
645 [--with-efence              Developers only: activates Electric Fence],
646         [if test x$withval = xyes; then
647         LIBS="$LIBS -lefence"
648         AC_MSG_RESULT([compiling with Electric fence])
649         mem_debug="Electric Fence"
650 fi])
652 INTLSUB=""
653 LINTL=""
654 if test x$USE_NLS = xyes; then
655     if test x$USE_INCLUDED_LIBINTL = xyes; then
656         CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl"
657         LINTL="-L\$(top_builddir)/intl -lintl"
658     fi
659     INTLSUB=intl
661 AC_SUBST(INTLSUB)
662 AC_SUBST(LINTL)
665 dnl To force mmap support
666 dnl We use only part of the functionality of mmap, so on AIX,
667 dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
669 AC_ARG_WITH(mmap, 
670         [--with-mmap                To force using the mmap call (AIX)],
671         [if test x$withval = xyes; then
672         AC_DEFINE(HAVE_MMAP)
673         AC_MSG_RESULT([forcing MMAP support])
674 fi])
676 slang_check_lib=true
677 slang_term=""
678 slang_use_system_installed_lib=false
679 AC_CHECK_LIB(slang,SLang_init_tty,
680         [AC_CHECK_HEADERS(slang.h)
681         if test x$ac_cv_header_slang_h = xyes
682         then
683              slang_use_system_installed_lib=true
684              slang_check_lib=false
685         else
686              AC_CHECK_HEADERS(slang/slang.h)
687              if test x$ac_cv_header_slang_slang_h = xyes
688              then
689                  slang_use_system_installed_lib=true
690                  slang_check_lib=false
691                  AC_DEFINE(SLANG_H_INSIDE_SLANG_DIR)
692              fi
693         fi
696 AC_ARG_WITH(terminfo,
697         [--with-terminfo            SLANG: Force usage of terminfo],[
698         if test x$withval = xyes; then
699                 AC_USE_TERMINFO
700                 slang_check_lib=false
701                 slang_use_system_installed_lib=false
702         fi]
705 AC_ARG_WITH(termcap,
706         [--with-termcap             SLANG: Force usage of termcap],[
707         if test x$withval = xyes; then
708                 AC_USE_TERMCAP
709                 slang_check_lib=false
710                 slang_use_system_installed_lib=false
711         fi]
714 AC_ARG_WITH(included-slang,
715         [--with-included-slang      SLANG: use the SLang library included here],[
716         if test x$withval = xyes; then
717             slang_use_system_installed_lib=false
718             slang_check_lib=true
719         fi]
722 LIBSLANG=""
723 LSLANG=""
724 fastdepslang=""
725 AC_ARG_WITH(slang,
726         [--with-slang              Compile with the slang screen manager],[
727         if test x$withval = xyes; then
728                 AC_WITH_SLANG
729         fi
732 AC_SUBST(LIBSLANG)
733 AC_SUBST(LSLANG)
734 AC_SUBST(fastdepslang)
736 LIBEDIT_A=""
737 MCEDIT=""
738 LEDIT=""
739 EDIT_msg=""
740 AC_ARG_WITH(edit,
741         [--with-edit                Define INTERNAL_EDIT],
742         [if test x$withval = xyes
743         then
744                 AC_WITH_EDIT
745         else
746                 EDIT_msg="no"
747         fi], 
748         [dnl Default: provide the internal editor
749         AC_WITH_EDIT
751 AC_SUBST(LIBEDIT_A)
752 AC_SUBST(MCEDIT)
753 AC_SUBST(LEDIT)
755 AC_ARG_WITH(netrc,
756         [--with-netrc               Compile with ftp .netrc support],[
757         if test x$withval = xyes; then
758                 AC_DEFINE(USE_NETRC)
759                 AC_MSG_RESULT([ftpfs will have .netrc parsing code])
760         fi
763 undelfs_o=""
765 if test $use_vfs = yes; then
766     AC_ARG_WITH(ext2undel,
767         [--with-ext2undel           Compile with ext2 undelete code],[
768         if test x$withval != xno;
769         then
770                 if test x$withval != xyes
771                 then
772                         LIBS="$LIBS -L$withval/lib"
773                         CPPFLAGS="$CPPFLAGS -I$withval/include"
774                 fi
775                 AC_EXT2_UNDEL
776         fi],[
777         dnl Default: detect
778         AC_CHECK_LIB(ext2fs, ext2fs_close, [AC_EXT2_UNDEL],,-lcom_err)
779     ])
782 AC_SUBST(undelfs_o)
783         
784 if $search_ncurses
785 then
786     AC_CHECKING([location of ncurses.h file])
788     AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
789     AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
790     AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
791     AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
793     AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
795     AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
797     dnl
798     dnl We couldn't find ncurses, try SysV curses
799     dnl
800     if $search_ncurses 
801     then
802         AC_EGREP_HEADER(init_color, /usr/include/curses.h,
803             AC_USE_SYSV_CURSES)
804         AC_EGREP_CPP(USE_NCURSES,[
805 #include <curses.h>
806 #ifdef __NCURSES_H
807 #undef USE_NCURSES
808 USE_NCURSES
809 #endif
811         CPPFLAGS="$CPPFLAGS -DRENAMED_NCURSES"
812         AC_DEFINE(USE_NCURSES)
813         search_ncurses=false
814         screen_manager="ncurses installed as curses"
816     fi
818     dnl
819     dnl Try SunOS 4.x /usr/5{lib,include} ncurses
820     dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES
821     dnl should be replaced by a more fine grained selection routine
822     dnl
823     if $search_ncurses
824     then
825         if test -f /usr/5include/curses.h
826         then
827             AC_USE_SUNOS_CURSES
828         fi
829     else
830         # check for ncurses version, to properly ifdef mouse-fix
831         AC_MSG_CHECKING([for ncurses version])
832         ncurses_version=unknown
833 cat > conftest.$ac_ext <<EOF
834 [#]line __oline__ "configure"
835 #include "confdefs.h"
836 #ifdef RENAMED_NCURSES
837 #include <curses.h>
838 #else
839 #include <ncurses.h>
840 #endif
841 #undef VERSION
842 VERSION:NCURSES_VERSION
844         if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC |
845   egrep "VERSION:" >conftest.out 2>&1; then
846 changequote(,)dnl
847             ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`
848 changequote([,])dnl
849         fi
850         rm -rf conftext*
851         AC_MSG_RESULT([$ncurses_version])
852         case "$ncurses_version" in
853 changequote(,)dnl
854         4.[01])
855 changequote([,])dnl
856             AC_DEFINE(NCURSES_970530,2)
857             ;;
858         1.9.9g)
859             AC_DEFINE(NCURSES_970530,1)
860             ;;
861         1*)
862             AC_DEFINE(NCURSES_970530,0)
863             ;;
864         esac
865     fi
868 dnl Ncurses may be linked against libgpm. Change LIBS temporary for
869 dnl check for resizeterm and keyok.
871 SAVED_LIBS="$LIBS"
872 LIBS="$LIBS $LGPM"
873 AC_CHECK_FUNCS(resizeterm keyok)
874 LIBS="$SAVED_LIBS"
876 if test "x$screen_manager" = "xunknown"; then
877     AC_WITH_SLANG
881 dnl The variables used for expanding the auto saver.
883 cons_saver=""
884 install_saver="no"
885 PAMLIBS=""
886 case $host_os in
887 linux*)
888     cons_saver="cons.saver"
889     install_saver="yes"
891     dnl
892     dnl On Linux, check for PAM authentication available
893     dnl
894     AC_CHECK_LIB(pam, pam_start, [
895         AC_DEFINE(HAVE_PAM)
896         PAMLIBS="-lpam -ldl"
897     ],[],[-ldl])
898     ;;
899 esac
900 AC_SUBST(cons_saver)
901 AC_SUBST(PAMLIBS)
904 dnl We need sed in order to fix the library files 
906     SEDCMD="sed 's/-man/$MANDOC/'"
907     SEDCMD2="sed 's%@prefix@%\$(prefix)%'"
908 AC_SUBST(SEDCMD)
909 AC_SUBST(SEDCMD2)
913 dnl This code should be moved to the ac_WITH_SLANG
915 dnl We check for the existance of setupterm on curses library
916 dnl this is required to load certain definitions on some termcaps
917 dnl editions (AIX and OSF/1 I seem to remember).
918 dnl Note that we avoid using setupterm 
919 case $screen_manager in
920 SLang*)
921         case $host_os in
922         linux*)
923                 ;;
924         *)
925                 AC_CHECK_LIB(curses,setupterm,
926                         [AC_TRY_COMPILE([
927 #include <curses.h>
928 #include <term.h>],[
929    if (key_end == parm_insert_line)
930         return 1;
931    return 0;
933                         [LIBS="$LIBS -lcurses"
934                         AC_DEFINE(USE_SETUPTERM)])
935                 ])
936         esac
937         ;;
938 esac
940 LIBS="$LIBS $posix_libs"
942 AC_SUBST(CFLAGS)
943 AC_SUBST(CPPFLAGS)
944 AC_SUBST(MCCPPFLAGS)
945 AC_SUBST(LDFLAGS)
946 AC_SUBST(LIBS)
948 ac_cv_make_with_percent_rules=no
949 if test x$ac_cv_prog_gnu_make = xyes; then
950     PHONY='.PHONY:'
951     DOTDEPEND='-include .depend'
952     WRITEDEP=":"
953     ac_cv_make_with_percent_rules=yes
954 else
955     PHONY='#'
956     DOTDEPEND=""
957     WRITEDEP='sed "/^. \*\*\*Dependencies\*\*\*/,/^. \*\*\*End of dependencies\*\*\*/d" < Makefile > Makefile.conf; { cat Makefile.conf; echo "# ***Dependencies***Do not edit***"; cat .depend; echo "# ***End of dependencies***" } > Makefile; $(RMF) Makefile.conf .depend'
959 AC_SUBST(PHONY)
960 AC_SUBST(WRITEDEP)
961 AC_SUBST(DOTDEPEND)
963 MCF=./Make.common
964 AC_SUBST_FILE(MCF)
966 if test x$ac_cv_make_with_percent_rules = xyes; then
967     PCENTRULE=""
968 else
969     PCENTRULE="#"
971 AC_SUBST(PCENTRULE)
974 dnl Output configuration files
976 dnl It's a hack to accomodate both Autoconf 2.13 and the 2.49x series,
977 dnl It's needed until Autoconf 2.50 is released.
978 ifelse(AC_ACVERSION, [2.13],
979 [mc_subdirs=
980 if test "x$SAMBAFILES" != x; then
981   mc_subdirs=vfs/samba
982   AC_CONFIG_SUBDIRS([$mc_subdirs])
983 fi],
984 [if test "x$SAMBAFILES" != x; then
985   AC_CONFIG_SUBDIRS([vfs/samba])
986 fi])
988 AM_CONDITIONAL(USE_SAMBA_FS, [test "x$SAMBAFILES" != x])
990 AC_OUTPUT([
991 Make.common 
992 Makefile 
993 mc.spec
994 doc/Makefile 
995 doc-gnome/Makefile
996 doc-gnome/C/Makefile
997 doc-gnome/C/figs/Makefile
998 vfs/Makefile:vfs/Make-mc.in
999 vfs/extfs/Makefile
1000 lib/Makefile
1001 gnome/Makefile 
1002 gnome/mc.keys.in
1003 idl/Makefile
1004 src/Makefile
1005 slang/Makefile 
1006 edit/Makefile 
1007 gtkedit/Makefile 
1008 syntax/Makefile
1009 new_icons/Makefile 
1010 pc/Makefile
1012 lib/mc.ext
1013 lib/mc.sh
1014 lib/mc.csh
1016 mcfn_install
1018 vfs/extfs/deb
1019 vfs/extfs/ftplist
1020 vfs/extfs/lslR
1021 vfs/extfs/uar
1022 vfs/extfs/ucpio
1023 vfs/extfs/ulha 
1024 vfs/extfs/uha
1025 vfs/extfs/urar
1026 vfs/extfs/uzoo
1028 doc/mc.1 doc/mcedit.1 doc/mcserv.8
1030 intl/Makefile po/Makefile.in
1031 ],[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
1033 if echo "$screen_manager" | grep -q "SLang" ; then
1034     screen_manager="${screen_manager}${slang_term}"
1037 echo "
1038 Configuration:
1040   Source code location:       ${srcdir}
1041   Compiler:                   ${CC}
1042   Compiler flags:             ${CFLAGS}
1043   File system:                ${vfs_type}
1044                               ${vfs_flags}
1045   Text mode screen manager:   ${screen_manager}
1046   Install console saver:      ${install_saver}
1047   Text mode mouse library:    ${mouse_lib}
1048   Text mode X11 support:      ${textmode_x11_support}
1049   Debugger code:              ${mem_debug}
1050   With subshell support:      ${subshell}
1051   X11 versions:               ${xvers}
1052   Internal editor:            ${EDIT_msg}
1053   Install path:               ${prefix}/bin, ${prefix}/lib/mc