(indented_beyond_p): New function.
[bpt/emacs.git] / configure1.in
index 2212232..9131f0f 100755 (executable)
@@ -2,7 +2,7 @@ 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.
@@ -15,7 +15,7 @@ dnl explaining how to rebuild it.
 ### 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.
 
@@ -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
@@ -776,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
@@ -1014,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
@@ -1024,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
@@ -1055,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
@@ -1117,21 +1173,6 @@ 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}"
@@ -1148,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 )
@@ -1160,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
@@ -1192,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
@@ -1264,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,
@@ -1290,7 +1355,7 @@ 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 bcmp logb frexp ftime res_init setsid strerror)
+random bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror)
 
 ok_so_far=true
 AC_FUNC_CHECK(socket, , ok_so_far=)
@@ -1341,16 +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, ${LD_SWITCH_X_SITE_AUX})
+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})
 
@@ -1358,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
@@ -1448,20 +1518,21 @@ 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.
 
 changequote(,)dnl The horror, the horror.
 # Now get this: Some word that is part of the ${srcdir} directory name
-# might, just might, happen to be an identifier like `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.
-srcdir_undefs="`echo $top_srcdir | 
+# 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][^ ]*//' \
+    -e 's/-U[0-9][^ ]*//g' \
 `"
 changequote([,])dnl
 
@@ -1471,8 +1542,8 @@ echo creating src/Makefile
   sed -e 's@^# \(Generated.*\)$@/* \1 */@' \
       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
       < Makefile.in > junk.c
-  $CPP $srcdir_undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c |
-  sed -e 's/^ /        /' -e '/^#/d' -e '/^[   ][      ]*$/d' > Makefile.new
+  $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;