(indented_beyond_p): New function.
[bpt/emacs.git] / configure1.in
index 57f0bd5..9131f0f 100755 (executable)
@@ -2,26 +2,26 @@ dnl This is an autoconf script.
 dnl To rebuild the `configure' script from this, execute the command
 dnl    autoconf
 dnl in the directory containing this script.  You must have autoconf
-dnl version 1.4 or later.
+dnl version 1.7 or later.
 dnl
 dnl The following text appears in the resulting `configure' script,
 dnl explaining how to rebuild it.
 [#!/bin/sh
 #### Configuration script for GNU Emacs
-#### Copyright (C) 1992 Free Software Foundation, Inc.
+#### Copyright (C) 1992, 1994 Free Software Foundation, Inc.
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
 ### from the file `./configure.in'.
 ### To rebuild it, execute the command
 ###    autoconf
-### in the this directory.  You must have autoconf version 1.4 or later.
+### in the this directory.  You must have autoconf version 1.7 or later.
 
 ### This file is part of GNU Emacs.
 
 ### GNU Emacs is free software; you can redistribute it and/or modify
 ### it under the terms of the GNU General Public License as published by
-### the Free Software Foundation; either version 1, or (at your option)
+### the Free Software Foundation; either version 2, or (at your option)
 ### any later version.
 
 ### GNU Emacs is distributed in the hope that it will be useful,
@@ -79,7 +79,14 @@ lisppath='${locallisppath}:${lispdir}'
 etcdir='${datadir}/emacs/${version}/etc'
 lockdir='${statedir}/emacs/lock'
 archlibdir='${libdir}/emacs/${version}/${configuration}'
-CC=
+
+# On Sun systems, people sometimes set up the variable CPP
+# with a value that is a directory, not an executable at all.
+# Detect that case, and ignore that value.
+if [ "x$CPP" != x ] && [ -d "$CPP" ];
+then
+  CPP=
+fi
 
 # We cannot use this variable in the case statement below, because many
 # /bin/sh's have broken semantics for "case".  Unfortunately, you must
@@ -96,10 +103,12 @@ Set compilation and installation parameters for GNU Emacs, and report.
 CONFIGURATION specifies the machine and operating system to build for.
 --with-x               Support the X Window System.
 --with-x=no            Don't support X.
---x-includes=DIR       Search for X header files in DIR.
---x-libraries=DIR      Search for X libraries in DIR.
+--with-x-toolkit       Use an X toolkit.
+--with-x-toolkit=no    Don't use an X toolkit.
 --with-gcc             Use GCC to compile Emacs.
 --with-gcc=no          Don't use GCC to compile Emacs.
+--x-includes=DIR       Search for X header files in DIR.
+--x-libraries=DIR      Search for X libraries in DIR.
 --run-in-place         Use libraries and data files directly out of the 
                        source tree.
 --single-tree=DIR      Has the effect of creating a directory tree at DIR
@@ -186,6 +195,27 @@ Set it to either \`yes' or \`no'."
           eval "${opt}=\"${val}\""
         ;;
 
+        ## Has the user specified which toolkit they want to support?
+        "with_x_toolkit" )
+         ## Make sure the value given was either "yes" or "no".
+         case "${val}" in
+           y | ye | yes )      val=athena ;;
+           n | no )            val=no  ;;
+           l | lu | luc | luci | lucid )       val=lucid ;;
+           a | at | ath | athe | athena )      val=athena ;;
+           m | mo | mot | moti | motif )       val=motif ;;
+           o | op | ope | open | open- | open-l | open-lo \
+               | open-loo | open-look )        val=open-look ;;
+           * )
+             (echo "${progname}: the \`--${optname}' option is supposed to have a value
+which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'."
+              echo "${short_usage}") >&2
+             exit 1
+           ;;
+         esac
+          eval "${opt}=\"${val}\""
+        ;;
+
        ## Has the user specified whether or not they want GCC?
        "with_gcc" | "with_gnu_cc" )
          ## Make sure the value given was either "yes" or "no".
@@ -407,7 +437,7 @@ vpath %.in $(srcdir)'
 fi
 
 ### Make the necessary directories, if they don't exist.
-for dir in ./src ./lib-src ./cpp ./oldXMenu ./etc ; do
+for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do
   if [ ! -d ${dir} ]; then
     mkdir ${dir}
   fi
@@ -547,8 +577,16 @@ case "${canonical}" in
   ;;
 
   ## Motorola Delta machines
-  m68*-motorola-sysv* )
+  m68k-motorola-sysv* | m68000-motorola-sysv* )
     machine=delta opsys=usg5-3
+    if [ -z "`type gnucc | grep 'not found'`" ]
+    then CC=gnucc
+    else
+      if [ -z "`type gcc | grep 'not found'`" ]
+      then CC=gcc
+      else CC=cc
+      fi
+    fi
   ;;
   m88k-motorola-sysv4* )
     machine=delta88k opsys=usg5-4
@@ -588,6 +626,20 @@ case "${canonical}" in
     machine=gould-np1 opsys=bsd4-3
   ;;
 
+  ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
+  ## as far as Emacs is concerned).
+  m88k-harris-cxux* )
+    # Build needs to be different on 7.0 and later releases
+    case "`uname -r`" in
+       [56].[0-9] ) machine=nh4000 opsys=cxux ;;
+       [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
+    esac
+  ;;
+  ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
+  m68k-harris-cxux* )
+    machine=nh3000 opsys=cxux
+  ;;
+
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
@@ -762,6 +814,7 @@ case "${canonical}" in
   mips-mips-riscos4* )
     machine=mips4 opsys=bsd4-3
     NON_GNU_CC="cc -systype bsd43"
+    NON_GNU_CPP="cc -systype bsd43 -E"
   ;;
   mips-mips-bsd* )
     machine=mips opsys=bsd4-3
@@ -1000,9 +1053,18 @@ AC_CONFIG_HEADER(src/config.h)
 [
 
 #### Choose a compiler.
+if [ "x$CC" = x ]
+then cc_specified=1
+fi
+
 case ${with_gcc} in
   "yes" ) CC="gcc" GCC=1 ;;
-  "no"  ) CC=${CC:-"cc"} ;;
+  "no"  )
+    if [ "x$CC" = x ]
+    then true;
+    else CC=cc;
+    fi
+    ;;
   * )
     ] AC_PROG_CC [
 esac
@@ -1010,19 +1072,19 @@ esac
 #### Some systems specify a CPP to use unless we are using GCC.
 #### Now that we know whether we are using GCC, we can decide whether
 #### to use that one.
-if [ x$NON_GNU_CPP = x ] || [ x$GCC = x1 ]
+if [ "x$NON_GNU_CPP" = x ] || [ x$GCC = x1 ] || [ "x$CPP" = x ]
 then true
 else
-  CPP=$NON_GNU_CPP
+  CPP="$NON_GNU_CPP"
 fi
 
 #### Some systems specify a CC to use unless we are using GCC.
 #### Now that we know whether we are using GCC, we can decide whether
 #### to use that one.
-if [ x$NON_GNU_CC = x ] || [ x$GCC = x1 ]
+if [ "x$NON_GNU_CC" = x ] || [ x$GCC = x1 ] || [ x$cc_specified = x1 ]
 then true
 else
-  CC=$NON_GNU_CC
+  CC="$NON_GNU_CC"
 fi
 
 #### Some other nice autoconf tests.  If you add a test here which
@@ -1041,6 +1103,14 @@ dnl checks for header files
 AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.h)
 AC_STDC_HEADERS
 AC_TIME_WITH_SYS_TIME
+dnl In Autoconf 1.8 use AC_SYS_SIGLIST_DECLARED instead of this.
+AC_COMPILE_CHECK(sys_siglist declaration in signal.h or unistd.h,
+                [#include <signal.h>
+/* NetBSD declares sys_siglist in <unistd.h>.  */
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif], [char *msg = *(sys_siglist + 1);],
+                AC_DEFINE(SYS_SIGLIST_DECLARED))
 
 dnl checks for typedefs
 AC_RETSIGTYPE
@@ -1103,24 +1173,10 @@ case "${window_system}" in
   ;;
 esac
 
-case "${window_system}" in
-  "" | "x11" )
-    ### If the user hasn't specified where we should find X, try
-    ### letting autoconf figure that out.
-    if [ -z "${x_includes}" ] && [ -z "${x_libraries}" ]; then
-      ]
-      AC_FIND_X
-      [
-    fi
-    if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
-      window_system=x11
-    fi
-  ;;
-esac
-
 [ -z "${window_system}" ] && window_system=none
 
 [ -n "${x_libraries}" ] && LD_SWITCH_X_SITE="-L${x_libraries}"
+[ -n "${x_libraries}" ] && LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
 [ -n "${x_includes}" ] && C_SWITCH_X_SITE="-I${x_includes}"
 
 # Avoid forcing the search of /usr/include before fixed include files.
@@ -1133,10 +1189,29 @@ case "${window_system}" in
     HAVE_X_WINDOWS=yes
     HAVE_X11=yes
     echo "  Using X11."
+    case "${with_x_toolkit}" in
+      athena | lucid )
+       USE_X_TOOLKIT=LUCID
+       echo "  Using Xt toolkit."
+       ;;      
+      motif )
+       USE_X_TOOLKIT=MOTIF
+       echo "  Using Motif toolkit."
+       ;;      
+      open-look )
+       USE_X_TOOLKIT=OPEN_LOOK
+       echo "  Using Open-Look toolkit."
+       ;;      
+      * )
+       USE_X_TOOLKIT=no
+       echo "  Using Xlib directly."
+      ;;
+    esac
   ;;
   x10 )
     HAVE_X_WINDOWS=yes
     HAVE_X11=no
+    USE_X_TOOLKIT=no
     echo "  Using X10."
   ;;
   none )
@@ -1145,6 +1220,7 @@ case "${window_system}" in
     echo "  Using no window system."
   ;;
 esac
+X_TOOLKIT_TYPE=$USE_X_TOOLKIT
 
 ### If we're using X11, we should use the X menu package.
 HAVE_X_MENU=no
@@ -1177,8 +1253,12 @@ echo '
 #ifndef C_SWITCH_SYSTEM
 #define C_SWITCH_SYSTEM
 #endif
+#ifndef C_SWITCH_MACHINE
+#define C_SWITCH_MACHINE
+#endif
 configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
 configure___ c_switch_system=C_SWITCH_SYSTEM
+configure___ c_switch_machine=C_SWITCH_MACHINE
 
 #ifndef LIB_X11_LIB
 #define LIB_X11_LIB -lX11
@@ -1249,7 +1329,7 @@ LISP_FLOAT_TYPE=yes
 #### Add the libraries to LIBS and check for some functions.
 
 ]
-DEFS="$c_switch_system $DEFS"
+DEFS="$c_switch_system $c_switch_machine $DEFS"
 LIBS="$libsrc_libs"
 
 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
@@ -1274,7 +1354,8 @@ AC_ALLOCA
 
 # logb and frexp are found in -lm on most systems.
 AC_HAVE_LIBRARY(-lm)
-AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir random bcopy logb frexp ftime res_init setsid)
+AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
+random bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror)
 
 ok_so_far=true
 AC_FUNC_CHECK(socket, , ok_so_far=)
@@ -1290,7 +1371,7 @@ fi
 [
 #### Find out which version of Emacs this is.
 version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
-        | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'`
+        | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)[."].*$/\1/'`
 if [ x"${version}" = x ]; then
   echo "${progname}: can't find current emacs version in
        \`${srcdir}/lisp/version.el'." >&2
@@ -1325,14 +1406,18 @@ AC_SUBST(etcdir)
 AC_SUBST(lockdir)
 AC_SUBST(archlibdir)
 AC_SUBST(c_switch_system)
+AC_SUBST(c_switch_machine)
 AC_SUBST(libsrc_libs)
 AC_SUBST(LD_SWITCH_X_SITE)
+AC_SUBST(LD_SWITCH_X_SITE_AUX)
 AC_SUBST(C_SWITCH_X_SITE)
 AC_SUBST(CFLAGS)
+AC_SUBST(X_TOOLKIT_TYPE)
 
 AC_DEFINE_UNQUOTED(config_machfile,  "\"${machfile}\"")
 AC_DEFINE_UNQUOTED(config_opsysfile, "\"${opsysfile}\"")
 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
+AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
 AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
 AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
 
@@ -1340,6 +1425,9 @@ AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
 if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then
   ] AC_DEFINE(HAVE_X_WINDOWS) [
 fi
+if [ "${USE_X_TOOLKIT}" != "no" ] ; then
+  ] AC_DEFINE(USE_X_TOOLKIT) [
+fi
 if [ "${HAVE_X11}" = "yes" ] ; then
   ] AC_DEFINE(HAVE_X11) [
 fi
@@ -1430,50 +1518,33 @@ test -n "${prefix}" &&
 test -n "${exec_prefix}" &&
   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
 ]
-AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile src/Makefile.in) [
+AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile lwlib/Makefile src/Makefile.in, [
 # Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
-# after src/config.h is built, since we rely on that file.  Only do the
-# build if "config.status" is present, since it's non-presence indicates
-# an error occured.
-status=$?
-if [ ! -f ./config.status ]; then
-   exit $status
-fi
-topsrcdir=${srcdir}
-  # We discard all lines in Makefile.in that start with `# Generated' or /**/#
-  # because some cpps get confused by them.
-  # Really we should preserve them somehow into Makefile,
-  # but that is beyond my level of shell programming.
-makefile_command='echo "creating src/Makefile";
-  topsrcdir='"${topsrcdir}"';
-( cd ./src;
-  rm -f junk.c;
-  sed -e '\''s/^# Generated.*//'\'' -e '\''s%/\*\*/#.*%%'\'' < Makefile.in > junk.c;
-  eval `echo ${CPP} -I. -I${topsrcdir}/src ${CPPFLAGS} junk.c \>junk.cpp`;
-  < junk.cpp                                                   '\
-'    sed -e '\''s/^#.*//'\''                                   '\
-'      -e '\''s/^[ \f\t][ \f\t]*$//'\''                        '\
-'      -e '\''s/^ /    /'\''                                   '\
-'      | sed -n -e '\''/^..*$/p'\''                            '\
-'      > Makefile.new;
-    chmod 444 Makefile.new;
-    mv -f Makefile.new Makefile;
-    rm -f junk.c junk.cpp;
-)'
-eval `echo $makefile_command`
-# AC-OUTPUT has created `config.status' already.  We need to add the above
-# commands to re-create `src/Makefile', and we need to insert them before
-# the final "exit 0" which appears at the end of `config.status'.
-<config.status sed -e 's/^exit 0$//' >config.new
-echo $makefile_command >>config.new
-echo exit 0 >>config.new
-mv -f config.new config.status
-chmod +x config.status
-# Don't let the fact that we just rewrote config.status make Makefile think
-# that it is now newer.  We have just rewritten all of the Makefiles as well.
-MFS="Makefile src/Makefile src/Makefile.in lib-src/Makefile oldXMenu/Makefile"
-for file in $MFS; do
-   chmod a+w $file; touch $file; chmod 444 $file
-done
-exit 0
-]
+# after src/config.h is built, since we rely on that file.
+
+changequote(,)dnl The horror, the horror.
+# Now get this: Some word that is part of the ${srcdir} directory name
+# or the ${configuration} value might, just might, happen to be an
+# identifier like `sun4' or `i386' or something, and be predefined by
+# the C preprocessor to some helpful value like 1, or maybe the empty
+# string.  Needless to say consequent macro substitutions are less
+# than conducive to the makefile finding the correct directory.
+undefs="`echo $top_srcdir $configuration | 
+sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/  */ -U/g'  \
+    -e 's/ -U$//' -e 's/^[^ ]/-U/' \
+    -e 's/-U[0-9][^ ]*//g' \
+`"
+changequote([,])dnl
+
+echo creating src/Makefile
+( cd src
+  rm -f junk.c
+  sed -e 's@^# \(Generated.*\)$@/* \1 */@' \
+      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+      < Makefile.in > junk.c
+  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c |
+  sed -e 's/^ /        /' -e '/^#/d' -e '/^[   ]*$/d' > Makefile.new
+  rm -f junk.c
+  chmod 444 Makefile.new;
+  mv -f Makefile.new Makefile;
+)])