(Fmake_char): Make it more backward compatible.
[bpt/emacs.git] / configure.in
index 460d1b3..74b953c 100644 (file)
@@ -23,10 +23,14 @@ dnl  along with GNU Emacs; see the file COPYING.  If not, write to the
 dnl  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 dnl  Boston, MA 02111-1307, USA.
 
-AC_PREREQ(2.8)dnl
+AC_PREREQ(2.51)dnl
 AC_INIT(src/lisp.h)
 AC_CONFIG_HEADER(src/config.h:src/config.in)
 
+dnl Support for --program-prefix, --program-suffix and
+dnl --program-transform-name options
+AC_ARG_PROGRAM
+
 lispdir='${datadir}/emacs/${version}/lisp'
 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
 '${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim'
@@ -95,9 +99,9 @@ AC_ARG_WITH(png,
 [  --with-png              use -lpng for displaying PNG images])
 AC_ARG_WITH(toolkit-scroll-bars,
 [  --without-toolkit-scroll-bars
-                           don't use Motif or Xaw3d scroll bars])
+                          don't use Motif or Xaw3d scroll bars])
 AC_ARG_WITH(xim,
-[  --without-xim          don't use X11 XIM])
+[  --without-xim           don't use X11 XIM])
 
 #### Make srcdir absolute, if it isn't already.  It's important to
 #### avoid running the path through pwd unnecessarily, since pwd can
@@ -110,7 +114,10 @@ case "${srcdir}" in
   . )
     ## We may be able to use the $PWD environment variable to make this
     ## absolute.  But sometimes PWD is inaccurate.
-    if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".${PWD}"  ;
+    ## Note: we used to use ${PWD} at the end instead of `pwd`,
+    ## but that tested only for a well-formed and valid PWD,
+    ## it did not object when PWD was well-formed and valid but just wrong.
+    if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
     then
       srcdir="$PWD"
     else
@@ -149,7 +156,7 @@ fi
 
 AC_CANONICAL_HOST
 canonical=$host
-configuration=$host_alias
+configuration=${host_alias-$host}
 
 changequote(, )dnl
 
@@ -179,6 +186,15 @@ changequote(, )dnl
 machine='' opsys='' unported=no
 case "${canonical}" in
 
+  ## FreeBSD ports
+  *-*-freebsd* )
+    opsys=freebsd
+    case "${canonical}" in
+      alpha*-*-freebsd*)       machine=alpha ;;
+      i[3456]86-*-freebsd*)    machine=intel386 ;;
+    esac
+  ;;
+
   ## NetBSD ports
   *-*-netbsd* )
     opsys=netbsd
@@ -236,7 +252,7 @@ case "${canonical}" in
       *-*-bsdi2.0* )           opsys=bsdos2 ;;
       *-*-bsdi2* )             opsys=bsdos2-1 ;;
       *-*-bsdi3* )             opsys=bsdos3 ;;
-      *-*-bsdi4* )             opsys=bsdos4 ;;
+      *-*-bsdi[45]* )          opsys=bsdos4 ;;
     esac
   ;;
 
@@ -342,6 +358,11 @@ case "${canonical}" in
     ## operating system.
   ;;
 
+  ## Compaq Nonstop
+  mips-compaq-nonstopux* )
+    machine=nonstopux opsys=nonstopux
+    ;;
+
   ## Convex
   *-convex-bsd* | *-convex-convexos* )
     machine=convex opsys=bsd4-3
@@ -486,6 +507,9 @@ case "${canonical}" in
   hppa1.1-hitachi-hiuxmpp* )
     machine=sr2k opsys=hiuxmpp
   ;;
+  hppa1.1-hitachi-hiuxwe2* )
+    machine=sr2k opsys=hiuxwe2
+  ;;
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
@@ -521,9 +545,16 @@ case "${canonical}" in
   hppa*-hp-hpux9* )
     machine=hp800 opsys=hpux9
   ;;
-  hppa*-hp-hpux1[0-9]* )
+  hppa*-hp-hpux10* )
     machine=hp800 opsys=hpux10
   ;;
+  hppa*-hp-hpux1[1-9]* )
+    machine=hp800 opsys=hpux11
+  ;;
+
+  hppa*-*-linux-gnu* )
+    machine=hp800 opsys=gnu-linux
+  ;;
 
   ## HP 9000 series 700 and 800, running HP/UX
   hppa*-hp-hpux* )
@@ -559,6 +590,9 @@ case "${canonical}" in
   i370-ibm-aix*)
     machine=ibm370aix opsys=usg5-3
   ;;
+  s390-*-linux-gnu)
+    machine=ibms390 opsys=gnu-linux
+  ;;
   rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
     machine=ibmrs6000 opsys=aix3-1
   ;;
@@ -1014,7 +1048,6 @@ case "${canonical}" in
                                ;;
       *-sysv4.2uw* )           opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
       *-386bsd* )              opsys=386bsd ;;
-      *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )             opsys=nextstep ;;
       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
     esac
@@ -1103,8 +1136,9 @@ SPECIFIED_CFLAGS="$CFLAGS"
 case ${with_gcc} in
   "yes" ) CC="gcc" GCC=yes ;;
   "no"  ) : ${CC=cc} ;;
-  * ) AC_PROG_CC
+  * )
 esac
+AC_PROG_CC
 
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
@@ -1320,7 +1354,7 @@ AC_SUBST(LIBSOUND)
 dnl checks for header files
 AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
-  termcap.h stdio_ext.h fcntl.h term.h strings.h)
+  termcap.h stdio_ext.h fcntl.h term.h strings.h coff.h)
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_DECL_SYS_SIGLIST
@@ -1352,7 +1386,7 @@ AC_TYPE_SIGNAL
 dnl Check for speed_t typedef.
 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
 AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
-  emacs_cv_speed_t=yes))
+  emacs_cv_speed_t=yes, emacs_cv_speed_t=no))
 if test $emacs_cv_speed_t = yes; then
   AC_DEFINE(HAVE_SPEED_T)
 fi
@@ -1525,9 +1559,9 @@ AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
 AC_CACHE_CHECK(whether __after_morecore_hook exists,
               emacs_cv_var___after_morecore_hook,
-AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
+[AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
   emacs_cv_var___after_morecore_hook=yes,
-  emacs_cv_var___after_morecore_hook=no))
+  emacs_cv_var___after_morecore_hook=no)])
 if test $emacs_cv_var___after_morecore_hook = no; then
   doug_lea_malloc=no
 fi
@@ -1655,11 +1689,11 @@ fi
 if test "${window_system}" = "x11"; then
   AC_MSG_CHECKING(X11 version 6)
   AC_CACHE_VAL(emacs_cv_x11_version_6,
-  AC_TRY_LINK([#include <X11/Xlib.h>],
+  [AC_TRY_LINK([#include <X11/Xlib.h>],
 [#if XlibSpecificationRelease < 6
 fail;
 #endif
-], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
+], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
   if test $emacs_cv_x11_version_6 = yes; then
     AC_MSG_RESULT(6 or newer)
     AC_DEFINE(HAVE_X11R6)
@@ -1671,11 +1705,11 @@ fi
 if test "${window_system}" = "x11"; then
   AC_MSG_CHECKING(X11 version 5)
   AC_CACHE_VAL(emacs_cv_x11_version_5,
-  AC_TRY_LINK([#include <X11/Xlib.h>],
+  [AC_TRY_LINK([#include <X11/Xlib.h>],
 [#if XlibSpecificationRelease < 5
 fail;
 #endif
-], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
+], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no)])
   if test $emacs_cv_x11_version_5 = yes; then
     AC_MSG_RESULT(5 or newer)
     HAVE_X11R5=yes
@@ -1692,12 +1726,12 @@ if test x"${USE_X_TOOLKIT}" = xmaybe; then
   if test x"${HAVE_X11R5}" = xyes; then
     AC_MSG_CHECKING(X11 version 5 with Xaw)
     AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
-    AC_TRY_LINK([
+    [AC_TRY_LINK([
 #include <X11/Intrinsic.h>
 #include <X11/Xaw/Simple.h>],
       [],
       emacs_cv_x11_version_5_with_xaw=yes,
-      emacs_cv_x11_version_5_with_xaw=no))
+      emacs_cv_x11_version_5_with_xaw=no)])
     if test $emacs_cv_x11_version_5_with_xaw = yes; then
       AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
       USE_X_TOOLKIT=LUCID
@@ -1715,11 +1749,11 @@ X_TOOLKIT_TYPE=$USE_X_TOOLKIT
 if test "${USE_X_TOOLKIT}" != "none"; then
   AC_MSG_CHECKING(X11 toolkit version)
   AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
-  AC_TRY_LINK([#include <X11/Intrinsic.h>],
+  [AC_TRY_LINK([#include <X11/Intrinsic.h>],
 [#if XtSpecificationRelease < 6
 fail;
 #endif
-], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no))
+], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
   HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
   if test $emacs_cv_x11_toolkit_version_6 = yes; then
     AC_MSG_RESULT(6 or newer)
@@ -1749,13 +1783,13 @@ fi
 
 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
   AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
-  AC_TRY_COMPILE([#include <Xm/Xm.h>],
+  [AC_TRY_COMPILE([#include <Xm/Xm.h>],
     [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
 int x = 5;
 #else
 Motif version prior to 2.1.
 #endif],
-    emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no))
+    emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
   HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
   if test $emacs_cv_motif_version_2_1 = yes; then
     HAVE_LIBXP=no
@@ -1811,18 +1845,19 @@ if test "${HAVE_X11}" = "yes"; then
     AC_CHECK_HEADER(X11/xpm.h,
       AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11))
     if test "${HAVE_XPM}" = "yes"; then
-       AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
-       AC_EGREP_CPP(no_return_alloc_pixels,
-       [#include "X11/xpm.h"
+      AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
+      AC_EGREP_CPP(no_return_alloc_pixels,
+      [#include "X11/xpm.h"
 #ifndef XpmReturnAllocPixels
 no_return_alloc_pixels
 #endif
-       ], HAVE_XPM=no, HAVE_XPM=yes)
-    fi
-    if test "${HAVE_XPM}" = "yes"; then
-       AC_MSG_RESULT(yes)
-    else
-       AC_MSG_RESULT(no)
+      ], HAVE_XPM=no, HAVE_XPM=yes)
+
+      if test "${HAVE_XPM}" = "yes"; then
+       AC_MSG_RESULT(yes)
+      else
+       AC_MSG_RESULT(no)
+      fi
     fi
   fi
 
@@ -1891,9 +1926,9 @@ fi
 # If netdb.h doesn't declare h_errno, we must declare it by hand.
 AC_CACHE_CHECK(whether netdb declares h_errno,
               emacs_cv_netdb_declares_h_errno,
-AC_TRY_LINK([#include <netdb.h>],
+[AC_TRY_LINK([#include <netdb.h>],
   [return h_errno;],
-  emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no))
+  emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
 if test $emacs_cv_netdb_declares_h_errno = yes; then
   AC_DEFINE(HAVE_H_ERRNO)
 fi
@@ -1933,7 +1968,7 @@ rename closedir mkdir rmdir sysinfo \
 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
 strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
 utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \
-__fpending mblen mbrlen strsignal setitimer ualarm index rindex \
+__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 gai_strerror mkstemp)
 
 AC_FUNC_MKTIME
@@ -1957,6 +1992,23 @@ AC_CHECK_FUNCS(getpt)
 # than to expect to find it in ncurses.
 AC_CHECK_LIB(ncurses, tparm)
 
+# Do we need the Hesiod library to provide the support routines?
+if test "$with_hesiod" = yes ; then
+  # Don't set $LIBS here -- see comments above.
+  resolv=no
+  AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
+     [AC_CHECK_LIB(resolv, res_send, resolv=yes,
+                 [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
+  if test "$resolv" = yes ; then
+    RESOLVLIB=-lresolv
+    AC_DEFINE(HAVE_LIBRESOLV)
+  else
+    RESOLVLIB=
+  fi
+  AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
+       AC_DEFINE(HAVE_LIBHESIOD), :, $RESOLVLIB)])
+fi
+
 # These tell us which Kerberos-related libraries to use.
 if test "${with_kerberos+set}" = set; then
   AC_CHECK_LIB(com_err, com_err)
@@ -1974,11 +2026,11 @@ if test "${with_kerberos+set}" = set; then
     AC_CHECK_HEADERS(krb5.h)
   else
     AC_CHECK_HEADERS(des.h,,
-                    AC_CHECK_HEADERS(kerberosIV/des.h,,
-                                     AC_CHECK_HEADERS(kerberos/des.h)))
+                    [AC_CHECK_HEADERS(kerberosIV/des.h,,
+                                      [AC_CHECK_HEADERS(kerberos/des.h)])])
     AC_CHECK_HEADERS(krb.h,,
-                    AC_CHECK_HEADERS(kerberosIV/krb.h,,
-                                     AC_CHECK_HEADERS(kerberos/krb.h)))
+                    [AC_CHECK_HEADERS(kerberosIV/krb.h,,
+                                      [AC_CHECK_HEADERS(kerberos/krb.h)])])
   fi
   AC_CHECK_HEADERS(com_err.h)
 fi
@@ -2035,7 +2087,7 @@ if test "x$HAVE_TIMEVAL" = xyes; then
   AC_CHECK_FUNCS(gettimeofday)
   AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
                 emacs_cv_gettimeofday_two_arguments,
-  AC_TRY_COMPILE([
+  [AC_TRY_COMPILE([
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
 #include <time.h>
@@ -2049,7 +2101,7 @@ if test "x$HAVE_TIMEVAL" = xyes; then
     [struct timeval time;
      gettimeofday (&time, 0);],
     emacs_cv_gettimeofday_two_arguments=yes,
-    emacs_cv_gettimeofday_two_arguments=no))
+    emacs_cv_gettimeofday_two_arguments=no)])
   if test $emacs_cv_gettimeofday_two_arguments = no; then
     AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)
   fi
@@ -2108,7 +2160,7 @@ else
   AC_MSG_RESULT(no)
 fi
 
-AC_FUNC_VFORK
+AC_FUNC_FORK
 
 # Fixme: This should be replaced when we have autoconf 2.14.
 AC_SIZE_T
@@ -2190,6 +2242,9 @@ if test "${REL_ALLOC}" = "yes" ; then
   AC_DEFINE(REL_ALLOC)
 fi
 
+AC_CHECK_HEADERS(nlist.h, [AC_DEFINE(NLIST_STRUCT, 1,
+                 [Define if you have <nlist.h>.])])
+
 #### Report on what we decided to do.
 echo "
 Configured for \`${canonical}'.
@@ -2244,7 +2299,7 @@ AC_EGREP_CPP(yes..yes,
 
 AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
        man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
-       lisp/Makefile leim/Makefile, [
+       lisp/Makefile lispref/Makefile lispintro/Makefile leim/Makefile, [
 
 ### Make the necessary directories, if they don't exist.
 for dir in etc lisp ; do
@@ -2269,7 +2324,7 @@ sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
 changequote([, ])dnl
 
 echo creating src/epaths.h
-make epaths-force
+${MAKE-make} epaths-force
 
 # As of 2000-11-19, newest development versions of GNU cpp preprocess
 # `..' to `. .'  unless invoked with -traditional
@@ -2284,9 +2339,9 @@ echo creating lib-src/Makefile
   sed -e '/start of cpp stuff/q' \
       < Makefile.c > junk1.c
   sed -e '1,/start of cpp stuff/d'\
-      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
       < Makefile.c > junk.c
-  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
+  $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
       sed -e 's/^ /    /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
   cat junk1.c junk2.c > Makefile.new
   rm -f junk.c junk1.c junk2.c
@@ -2300,9 +2355,9 @@ echo creating src/Makefile
   sed -e '/start of cpp stuff/q' \
       < Makefile.c > junk1.c
   sed -e '1,/start of cpp stuff/d'\
-      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
       < Makefile.c > junk.c
-  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
+  $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
       sed -e 's/^ /    /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
   cat junk1.c junk2.c > Makefile.new
   rm -f junk.c junk1.c junk2.c
@@ -2310,9 +2365,9 @@ echo creating src/Makefile
   mv -f Makefile.new Makefile
 )
 
-if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
+if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
   echo creating src/.gdbinit
-  echo source $top_srcdir/src/.gdbinit > src/.gdbinit
+  echo source $srcdir/src/.gdbinit > src/.gdbinit
 fi
 
 # This is how we know whether to re-run configure in certain cases.