]> code.delx.au - gnu-emacs/blobdiff - configure1.in
*** empty log message ***
[gnu-emacs] / configure1.in
index d848c4d1a62f96ae95b4eb53f96787dadaaf19a1..bb140212e0cadfd2ab756acc42f1ac83e6f1c8fa 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.7 or later.
+dnl version 1.8 or later.
 dnl
 dnl The following text appears in the resulting `configure' script,
 dnl explaining how to rebuild it.
@@ -79,7 +79,7 @@ lisppath='${locallisppath}:${lispdir}'
 etcdir='${datadir}/emacs/${version}/etc'
 lockdir='${statedir}/emacs/lock'
 archlibdir='${libdir}/emacs/${version}/${configuration}'
-CC=
+docdir='${datadir}/emacs/${version}/etc'
 
 # On Sun systems, people sometimes set up the variable CPP
 # with a value that is a directory, not an executable at all.
@@ -198,18 +198,22 @@ Set it to either \`yes' or \`no'."
 
         ## 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 ;;
+# These don't currently work.
+#          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 "${progname}: the \`--${optname}' option is supposed to have a value
+#which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'."
+echo "${progname}: the \`--${optname}' option is supposed to have a value
+which is \`yes', \`no', \`lucid', or \`athena'.
+Currently, \`yes', \`athena' and \`lucid' are synonyms."
               echo "${short_usage}") >&2
              exit 1
            ;;
@@ -297,7 +301,7 @@ Set it to either \`yes' or \`no'."
        ## Has the user specified one of the path options?
        prefix | exec_prefix | bindir | libdir | etcdir | datadir | \
        archlibdir | statedir | mandir | infodir | lispdir | lockdir | \
-       lisppath | locallisppath )
+       lisppath | locallisppath | docdir )
           ## If the value was omitted, get it from the next argument.
           if [ "${valomitted}" = "yes" ]; then
              if [ $# = 0 ]; then
@@ -517,6 +521,11 @@ case "${canonical}" in
     machine=7300 opsys=usg5-2-2
   ;;
 
+  ## Bull dpx20
+  rs6000-bull-bosx* )
+    machine=ibmrs6000 opsys=aix3-2
+  ;;
+
   ## Bull dpx2
   m68*-bull-sysv3* )
     machine=dpx2 opsys=usg5-3
@@ -562,6 +571,12 @@ case "${canonical}" in
   ;;
 
   ## Data General AViiON Machines
+  m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
+    machine=aviion opsys=dgux5-4r3
+  ;;
+  m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
+    machine=aviion opsys=dgux5-4r2
+  ;;
   m88k-dg-dgux* )
     machine=aviion opsys=dgux
   ;;
@@ -578,8 +593,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
@@ -659,13 +682,13 @@ case "${canonical}" in
 
   ## HP 9000 series 700 and 800, running HP/UX
   hppa*-hp-hpux7* )
-    machine=hp9000s800 opsys=hpux
+    machine=hp800 opsys=hpux
   ;;
   hppa*-hp-hpux8* )
-    machine=hp9000s800 opsys=hpux8
+    machine=hp800 opsys=hpux8
   ;;
   hppa*-hp-hpux9* )
-    machine=hp9000s800 opsys=hpux9
+    machine=hp800 opsys=hpux9
   ;;
 
   ## HP 9000 series 700 and 800, running HP/UX
@@ -674,10 +697,10 @@ case "${canonical}" in
     case "`uname -r`" in
       ## Someone's system reports A.B8.05 for this.
       ## I wonder what other possibilities there are.
-      *.B8.* ) machine=hp9000s800 opsys=hpux8 ;;
-      *.08.* ) machine=hp9000s800 opsys=hpux8 ;;
-      *.09.* ) machine=hp9000s800 opsys=hpux9 ;;
-      *) machine=hp9000s800 opsys=hpux ;;
+      *.B8.* ) machine=hp800 opsys=hpux8 ;;
+      *.08.* ) machine=hp800 opsys=hpux8 ;;
+      *.09.* ) machine=hp800 opsys=hpux9 ;;
+      *) machine=hp800 opsys=hpux ;;
     esac
   ;;
 
@@ -702,6 +725,9 @@ case "${canonical}" in
   rs6000-ibm-aix3.1* )
     machine=ibmrs6000 opsys=aix3-1
   ;;
+  rs6000-ibm-aix3.2.5)
+    machine=ibmrs6000 opsys=aix3-2-5
+  ;;
   rs6000-ibm-aix3.2* | rs6000-ibm-aix* )
     machine=ibmrs6000 opsys=aix3-2
   ;;
@@ -750,9 +776,10 @@ case "${canonical}" in
     machine=symmetry opsys=bsd4-3
   ;;
 
-  ## Unspecified sysv on an ncr machine defaults to svr4.
+  ## Unspecified sysv on an ncr machine defaults to svr4.2.
+  ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
   i[34]86-ncr-sysv* )
-    machine=intel386 opsys=usg5-4
+    machine=intel386 opsys=usg5-4-2
   ;;
 
   ## Intel 860
@@ -760,25 +787,6 @@ case "${canonical}" in
     machine=i860 opsys=usg5-4
   ;;
 
-  ## Silicon Graphics machines
-  ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
-  m68*-sgi-iris3.5* )
-    machine=irist opsys=iris3-5
-  ;;
-  m68*-sgi-iris3.6* | m68*-sgi-iris*)
-    machine=irist opsys=iris3-6
-  ;;
-  ## Iris 4D
-  mips-sgi-irix3.* )
-    machine=iris4d opsys=irix3-3
-  ;;
-  mips-sgi-irix5.* )
-    machine=iris4d opsys=irix5-0
-  ;;
-  mips-sgi-irix4.* | mips-sgi-irix* )
-    machine=iris4d opsys=irix4-0
-  ;;
-
   ## Masscomp machines
   m68*-masscomp-rtu* )
     machine=masscomp opsys=rtu
@@ -864,6 +872,32 @@ case "${canonical}" in
     machine=sequent opsys=bsd4-3
   ;;
 
+  ## Siemens Nixdorf
+  mips-siemens-sysv* )
+    machine=mips-siemens opsys=usg5-4
+    NON_GNU_CC=/usr/ccs/bin/cc
+    NON_GNU_CPP=/usr/ccs/bin/cc -E
+  ;;
+
+  ## Silicon Graphics machines
+  ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
+  m68*-sgi-iris3.5* )
+    machine=irist opsys=iris3-5
+  ;;
+  m68*-sgi-iris3.6* | m68*-sgi-iris*)
+    machine=irist opsys=iris3-6
+  ;;
+  ## Iris 4D
+  mips-sgi-irix3.* )
+    machine=iris4d opsys=irix3-3
+  ;;
+  mips-sgi-irix5.* )
+    machine=iris4d opsys=irix5-0
+  ;;
+  mips-sgi-irix4.* | mips-sgi-irix* )
+    machine=iris4d opsys=irix4-0
+  ;;
+
   ## SONY machines
   m68*-sony-bsd4.2* )
     machine=news opsys=bsd4-2
@@ -877,6 +911,9 @@ case "${canonical}" in
   mips-sony-bsd* )
     machine=news-risc opsys=bsd4-3
   ;;
+  mips-sony-newsos* )
+    machine=mips opsys=newsos5
+  ;;
 
   ## Stride
   m68*-stride-sysv* )
@@ -898,6 +935,7 @@ case "${canonical}" in
       i386-*-sunos4      ) opsys=sunos4-0 ;;
       *-sunos4.0*        ) opsys=sunos4-0 ;;
       *-sunos4.1.3*      ) opsys=sunos4-1-3 ;;
+      *-sunos4shr*       ) opsys=sunos4shr ;;
       *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
       *-sunos5.3* | *-solaris2.3* )
                opsys=sol2-3
@@ -988,14 +1026,16 @@ case "${canonical}" in
     case "${canonical}" in
       *-isc1.* | *-isc2.[01]* )        opsys=386-ix ;;
       *-isc2.2* )              opsys=isc2-2 ;;
+      *-isc4.0* )              opsys=isc4-0 ;;
       *-isc* )                 opsys=isc3-0 ;;
-      *-esix5* )               opsys=esix5r4 ;;
+      *-esix5* )               opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
       *-esix* )                        opsys=esix ;;
       *-xenix* )               opsys=xenix ;;
       *-linux* )               opsys=linux ;;
       *-sco3.2v4* )            opsys=sco4 ;;
       *-bsd386* )              opsys=bsd386 ;;
       *-386bsd* )              opsys=386bsd ;;
+      *-freebsd* )             opsys=freebsd ;;
       *-netbsd* )              opsys=netbsd ;;
       *-nextstep* )             opsys=mach2 ;;
       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
@@ -1023,6 +1063,9 @@ if [ x"${opsys}" = x ]; then
     *-sysv2.2 | *-sysvr2.2 )           opsys=usg5-2-2 ;;
     *-sysv3 | *-sysvr3 )               opsys=usg5-3 ;;
     *-sysv4 | *-sysvr4 )               opsys=usg5-4 ;;
+    *-sysv4.1 | *-sysvr4.1 )
+       NON_GNU_CPP=/usr/lib/cpp
+       opsys=usg5-4 ;;
     *-sysv4.2 | *-sysvr4.2 )           opsys=usg5-4-2 ;;
     * )
       unported=true
@@ -1042,20 +1085,22 @@ opsysfile="s/${opsys}.h"
 
 ]
 AC_PREPARE(lisp)
+ifdef([AC_LANG_C], AC_LANG_C)dnl
 AC_CONFIG_HEADER(src/config.h)
 [
 
 #### Choose a compiler.
 if [ "x$CC" = x ]
-then cc_specified=1
+then true
+else cc_specified=1
 fi
 
 case ${with_gcc} in
   "yes" ) CC="gcc" GCC=1 ;;
   "no"  )
     if [ "x$CC" = x ]
-    then true;
-    else CC=cc;
+    then CC=cc;
+    else true;
     fi
     ;;
   * )
@@ -1096,6 +1141,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
@@ -1107,6 +1160,9 @@ AC_TIMEZONE
 dnl checks for compiler characteristics
 AC_CONST
 
+dnl check for Make feature
+AC_SET_MAKE
+
 dnl checks for operating system services
 AC_LONG_FILE_NAMES
 
@@ -1123,15 +1179,28 @@ case "${with_x}" in
   ;;
   no )
     window_system=${window_system}none
-esac
-case "${with_x11}" in
-  yes )
-    window_system=${window_system}x11
   ;;
 esac
-case "${with_x10}" in
-  yes )
-    window_system=${window_system}x10
+case "${window_system}" in
+  .* )
+  ;;
+  * )
+    case "${with_x11}" in
+      yes )
+       window_system=x11
+      ;;
+      no )
+       window_system=none
+      ;;
+    esac
+    case "${with_x10}" in
+      yes )
+       window_system=x10
+      ;;
+      no )
+       window_system=none
+      ;;
+    esac
   ;;
 esac
 
@@ -1158,6 +1227,21 @@ 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}"
@@ -1188,7 +1272,7 @@ case "${window_system}" in
        echo "  Using Open-Look toolkit."
        ;;      
       * )
-       USE_X_TOOLKIT=no
+       USE_X_TOOLKIT=none
        echo "  Using Xlib directly."
       ;;
     esac
@@ -1196,12 +1280,13 @@ case "${window_system}" in
   x10 )
     HAVE_X_WINDOWS=yes
     HAVE_X11=no
-    USE_X_TOOLKIT=no
+    USE_X_TOOLKIT=none
     echo "  Using X10."
   ;;
   none )
     HAVE_X_WINDOWS=no
     HAVE_X11=no
+    USE_X_TOOLKIT=none
     echo "  Using no window system."
   ;;
 esac
@@ -1279,9 +1364,9 @@ configure___ system_malloc=no
 #endif
 
 #ifdef __GNUC__
-configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH
+configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
 #else
-configure___ CFLAGS=C_DEBUG_SWITCH
+configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
 #endif
 ' > ${tempcname}
 # The value of CPP is a quoted variable reference, so we need to do this
@@ -1320,6 +1405,9 @@ LIBS="$libsrc_libs"
 dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
 dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
 AC_HAVE_LIBRARY(-ldnet)
+dnl This causes -lresolv to get used in subsequent tests,
+dnl which causes failures on some systems such as HPUX 9.
+dnl AC_HAVE_LIBRARY(-lresolv)
 
 AC_HAVE_LIBRARY(-lXbsd, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
 
@@ -1332,7 +1420,8 @@ fi
 if test "${HAVE_X11}" = "yes"; then
   DEFS="$C_SWITCH_X_SITE $DEFS"
   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
-  AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString XScreenNumberOfScreen XSetWMProtocols)
+  AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \
+XScreenNumberOfScreen XSetWMProtocols)
 fi
 
 AC_ALLOCA
@@ -1340,7 +1429,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 bcmp logb frexp fmod drem ftime res_init setsid strerror)
+random bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror \
+fpathconf)
 
 ok_so_far=true
 AC_FUNC_CHECK(socket, , ok_so_far=)
@@ -1356,7 +1446,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/^[^"]*"\([^"]*\)".*$/\1/'`
 if [ x"${version}" = x ]; then
   echo "${progname}: can't find current emacs version in
        \`${srcdir}/lisp/version.el'." >&2
@@ -1369,12 +1459,11 @@ if [ -f /usr/lpp/X11/bin/smt.exp ]; then
   [
 fi
 
-
 #### Specify what sort of things we'll be editing into Makefile and config.h.
 ### Use configuration here uncanonicalized to avoid exceeding size limits.
 ]
-AC_SUBST(configuration)
 AC_SUBST(version)
+AC_SUBST(configuration)
 AC_SUBST(srcdir)
 AC_SUBST(prefix)
 AC_SUBST(exec_prefix)
@@ -1390,19 +1479,22 @@ AC_SUBST(lisppath)
 AC_SUBST(etcdir)
 AC_SUBST(lockdir)
 AC_SUBST(archlibdir)
+AC_SUBST(docdir)
 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_SUBST(machfile)
+AC_SUBST(opsysfile)
 
+AC_DEFINE_UNQUOTED(CONFIGURATION,  "\"${configuration}\"")
 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})
 
@@ -1410,7 +1502,7 @@ 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
+if [ "${USE_X_TOOLKIT}" != "none" ] ; then
   ] AC_DEFINE(USE_X_TOOLKIT) [
 fi
 if [ "${HAVE_X11}" = "yes" ] ; then
@@ -1445,7 +1537,10 @@ if [ "$run_in_place" = "1" ]; then
    locallisppath='${srcdir}/site-lisp'
    etcdir='${srcdir}/etc'
    lockdir='${srcdir}/lock'
+   # We used to make archlibdir and docdir absolute,
+   # but that caused trouble with automounters.
    archlibdir='${srcdir}/lib-src'
+   docdir='${srcdir}/etc'
    infodir='${srcdir}/info'
 elif [ "$single_tree" = "1" ]; then
    if [ "$exec_prefix_specified" = "" ]; then
@@ -1478,6 +1573,9 @@ elif [ "$single_tree" = "1" ]; then
    if [ "$etcdir_specified" = "" ]; then
       etcdir='${prefix}/common/data'
    fi
+   if [ "$docdir_specified" = "" ]; then
+      docdir='${prefix}/common/data'
+   fi
 fi
 
 #### Report on what we decided to do.
@@ -1491,7 +1589,8 @@ Configured for \`${canonical}'.
   What compiler should emacs be built with?               ${CC} ${CFLAGS}
   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
-  What window system should Emacs use?                    ${window_system}${x_includes+
+  What window system should Emacs use?                    ${window_system}
+  What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
   Where do we find X Windows header files?                }${x_includes}${x_libraries+
   Where do we find X Windows libraries?                   }${x_libraries}
 
@@ -1503,32 +1602,52 @@ test -n "${prefix}" &&
 test -n "${exec_prefix}" &&
   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
 ]
-AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile lwlib/Makefile src/Makefile.in, [
+AC_OUTPUT(Makefile lib-src/Makefile.in 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 `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.
-srcdir_undefs="`echo $top_srcdir | 
-sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/  */ -U/g'  \
-    -e 's/ -U$//' -e 's/^[^ ]/-U/' \
-    -e 's/-U[0-9][^ ]*//g' \
+# 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 $canonical |
+sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
+    -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
 `"
 changequote([,])dnl
 
+echo creating lib-src/Makefile
+( cd lib-src
+  rm -f junk.c junk1.c junk2.c
+  sed -e '/start of cpp stuff/q' \
+      < Makefile.in > junk1.c
+  sed -e '1,/start of cpp stuff/d'\
+      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+      < Makefile.in > junk.c
+  $CPP $undefs -I. -I$top_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
+  chmod 444 Makefile.new
+  mv -f Makefile.new Makefile
+)
+
 echo creating src/Makefile
 ( cd src
-  rm -f junk.c
-  sed -e 's@^# \(Generated.*\)$@/* \1 */@' \
+  rm -f junk.c junk1.c junk2.c
+  sed -e '/start of cpp stuff/q' \
+      < Makefile.in > junk1.c
+  sed -e '1,/start of cpp stuff/d'\
       -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
-  rm -f junk.c
-  chmod 444 Makefile.new;
-  mv -f Makefile.new Makefile;
+  $CPP $undefs -I. -I$top_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
+  chmod 444 Makefile.new
+  mv -f Makefile.new Makefile
 )])