home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / configure.in < prev    next >
Text File  |  1996-09-28  |  49KB  |  1,781 lines

  1. dnl This is an autoconf script.
  2. dnl To rebuild the `configure' script from this, execute the command
  3. dnl     autoconf
  4. dnl in the directory containing this script.
  5. [#!/bin/sh
  6. #### Configuration script for GNU Emacs
  7. #### Copyright (C) 1992, 1994 Free Software Foundation, Inc.
  8. #### This script requires autoconf version 1.9 or later.
  9.  
  10. ### Don't edit this script!
  11. ### This script was automatically generated by the `autoconf' program
  12. ### from the file `./configure.in'.
  13. ### To rebuild it, execute the command
  14. ###    autoconf
  15. ### in the this directory.
  16.  
  17. ### This file is part of GNU Emacs.
  18.  
  19. ### GNU Emacs is free software; you can redistribute it and/or modify
  20. ### it under the terms of the GNU General Public License as published by
  21. ### the Free Software Foundation; either version 2, or (at your option)
  22. ### any later version.
  23.  
  24. ### GNU Emacs is distributed in the hope that it will be useful,
  25. ### but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27. ### GNU General Public License for more details.
  28.  
  29. ### You should have received a copy of the GNU General Public License
  30. ### along with GNU Emacs; see the file COPYING.  If not, write to
  31. ### the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  32.  
  33. ### Since Emacs has configuration requirements that autoconf can't
  34. ### meet, this file is an unholy marriage of custom-baked
  35. ### configuration code and autoconf macros.
  36. ###
  37. ### We use the m4 quoting characters [ ] (as established by the
  38. ### autoconf system) to include large sections of raw sewage - Oops, I
  39. ### mean, shell code - in the final configuration script.
  40. ###
  41. ### Usage: configure config_name
  42. ###
  43. ### If configure succeeds, it leaves its status in config.status.
  44. ### If configure fails after disturbing the status quo,
  45. ###     config.status is removed.
  46.  
  47. ### Remove any more than one leading "." element from the path name.
  48. ### If we don't remove them, then another "./" will be prepended to
  49. ### the file name each time we use config.status, and the program name
  50. ### will get larger and larger.  This wouldn't be a problem, except
  51. ### that since progname gets recorded in all the Makefiles this script
  52. ### produces, move-if-change thinks they're different when they're
  53. ### not.
  54. ###
  55. ### It would be nice if we could put the ./ in a \( \) group and then
  56. ### apply the * operator to that, so we remove as many leading ./././'s
  57. ### as are present, but some seds (like Ultrix's sed) don't allow you to
  58. ### apply * to a \( \) group.  Bleah.
  59. progname="`echo $0 | sed 's:^\./\./:\./:'`"
  60.  
  61.  
  62. ### Establish some default values.
  63. run_in_place=
  64. single_tree=
  65. prefix='/ade'
  66. exec_prefix='${prefix}'
  67. bindir='${exec_prefix}/bin'
  68. datadir='${prefix}/lib'
  69. statedir='${prefix}/lib'
  70. libdir='${exec_prefix}/lib'
  71. mandir='${prefix}/man/man1'
  72. infodir='${prefix}/info'
  73. lispdir='${datadir}/emacs/${version}/lisp'
  74. locallisppath='${datadir}/emacs/site-lisp'
  75. lisppath='${locallisppath}:${lispdir}'
  76. etcdir='${datadir}/emacs/${version}/etc'
  77. lockdir='${statedir}/emacs/lock'
  78. archlibdir='${libdir}/emacs/${version}/${configuration}'
  79. docdir='${datadir}/emacs/${version}/etc'
  80.  
  81. # On Sun systems, people sometimes set up the variable CPP
  82. # with a value that is a directory, not an executable at all.
  83. # Detect that case, and ignore that value.
  84. if [ "x$CPP" != x ] && [ -d "$CPP" ];
  85. then
  86.   CPP=
  87. fi
  88.  
  89. # We cannot use this variable in the case statement below, because many
  90. # /bin/sh's have broken semantics for "case".  Unfortunately, you must
  91. # actually edit the clause itself.
  92. # path_options="prefix | exec_prefix | bindir | libdir | etcdir | datadir"
  93. # path_options="$path_options | archlibdir | statedir | mandir | infodir"
  94. # path_options="$path_options | lispdir | lockdir | lisppath | locallisppath"
  95.  
  96. #### Usage messages.
  97.  
  98. short_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...]
  99.  
  100. Set compilation and installation parameters for GNU Emacs, and report.
  101. CONFIGURATION specifies the machine and operating system to build for.
  102. --with-x        Support the X Window System.
  103. --with-x=no        Don't support X.
  104. --with-x-toolkit    Use an X toolkit.
  105. --with-x-toolkit=no    Don't use an X toolkit.
  106. --with-gcc        Use GCC to compile Emacs.
  107. --with-gcc=no        Don't use GCC to compile Emacs.
  108. --x-includes=DIR     Search for X header files in DIR.
  109. --x-libraries=DIR    Search for X libraries in DIR.
  110. --run-in-place        Use libraries and data files directly out of the 
  111.             source tree.
  112. --single-tree=DIR    Has the effect of creating a directory tree at DIR
  113.             which looks like:
  114.               .../DIR/bin/CONFIGNAME (emacs, etags, etc.)
  115.               .../DIR/bin/CONFIGNAME/etc (movemail, etc.)
  116.               .../DIR/common/lisp  (emacs' lisp files)
  117.               .../DIR/common/site-lisp (local lisp files)
  118.               .../DIR/common/lib (DOC, TUTORIAL, etc.)
  119.               .../DIR/common/lock (lockfiles)
  120. --srcdir=DIR        Look for the Emacs source files in DIR.
  121. --prefix=DIR        Install files below DIR. Defaults to \`${prefix}'.
  122.  
  123. You may also specify any of the \`path' variables found in Makefile.in,
  124. including --bindir, --libdir, --etcdir, --infodir, and so on.  This allows
  125. you to override a single default location when configuring.
  126.  
  127. If successful, ${progname} leaves its status in config.status.  If
  128. unsuccessful after disturbing the status quo, it removes config.status."
  129.  
  130.  
  131. #### Option processing.
  132.  
  133. ### Record all the arguments, so we can save them in config.status.
  134. arguments="$@"
  135.  
  136. ### Shell Magic: Quote the quoted arguments in ARGUMENTS.  At a later date,
  137. ### in order to get the arguments back in $@, we have to do an
  138. ###  `eval set x "$quoted_arguments"; shift'.
  139. quoted_arguments=
  140. for i in "$@"; do
  141.    quoted_arguments="$quoted_arguments '$i'"
  142. done
  143.  
  144. ### Don't use shift -- that destroys the argument list, which autoconf needs
  145. ### to produce config.status.  It turns out that "set - ${arguments}" doesn't
  146. ### work portably.
  147. ### However, it also turns out that many shells cannot expand ${10} at all.
  148. ### So using an index variable doesn't work either.  It is possible to use
  149. ### some shell magic to make 'set x "$arguments"; shift' work portably.
  150. while [ $# != 0 ]; do
  151.   arg="$1"; shift
  152.   case "${arg}" in
  153.  
  154.     ## Anything starting with a hyphen we assume is an option.
  155.     -* )
  156.       ## Separate the switch name from the value it's being given.
  157.       case "${arg}" in
  158.         -*=*)
  159.       opt=`echo ${arg} | sed 's:^-*\([^=]*\)=.*$:\1:'`
  160.       val=`echo ${arg} | sed 's:^-*[^=]*=\(.*\)$:\1:'`
  161.       valomitted=no
  162.     ;;
  163.         -*)
  164.           ## If FOO is a boolean argument, --FOO is equivalent to
  165.           ## --FOO=yes.  Otherwise, the value comes from the next
  166.           ## argument - see below.
  167.       opt=`echo ${arg} | sed 's:^-*\(.*\)$:\1:'`
  168.           val="yes"
  169.           valomitted=yes
  170.         ;;
  171.       esac
  172.  
  173.       ## Change `-' in the option name to `_'.
  174.       optname="${opt}"
  175.       opt="`echo ${opt} | tr - _`"
  176.  
  177.       ## Process the option.
  178.       case "${opt}" in
  179.  
  180.         ## Has the user specified which window systems they want to support?
  181.         "with_x" | "with_x11" | "with_x10" )
  182.       ## Make sure the value given was either "yes" or "no".
  183.       case "${val}" in
  184.         y | ye | yes )    val=yes ;;
  185.         n | no )        val=no  ;;
  186.         * )
  187.           (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
  188. Set it to either \`yes' or \`no'."
  189.            echo "${short_usage}") >&2
  190.           exit 1
  191.         ;;
  192.       esac
  193.           eval "${opt}=\"${val}\""
  194.         ;;
  195.  
  196.         ## Has the user specified which toolkit they want to support?
  197.         "with_x_toolkit" )
  198.       case "${val}" in
  199.         y | ye | yes )    val=athena ;;
  200.         n | no )        val=no  ;;
  201.         l | lu | luc | luci | lucid )    val=lucid ;;
  202.         a | at | ath | athe | athena )    val=athena ;;
  203. # These don't currently work.
  204. #        m | mo | mot | moti | motif )    val=motif ;;
  205. #        o | op | ope | open | open- | open-l | open-lo \
  206. #        | open-loo | open-look )    val=open-look ;;
  207.         * )
  208.           (
  209. #echo "${progname}: the \`--${optname}' option is supposed to have a value
  210. #which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'."
  211. echo "${progname}: the \`--${optname}' option is supposed to have a value
  212. which is \`yes', \`no', \`lucid', or \`athena'.
  213. Currently, \`yes', \`athena' and \`lucid' are synonyms."
  214.            echo "${short_usage}") >&2
  215.           exit 1
  216.         ;;
  217.       esac
  218.           eval "${opt}=\"${val}\""
  219.         ;;
  220.  
  221.     ## Has the user specified whether or not they want GCC?
  222.     "with_gcc" | "with_gnu_cc" )
  223.       ## Make sure the value given was either "yes" or "no".
  224.       case "${val}" in
  225.         y | ye | yes )    val=yes ;;
  226.         n | no )        val=no  ;;
  227.         * )
  228.           (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
  229. Set it to either \`yes' or \`no'."
  230.            echo "${short_usage}") >&2
  231.           exit 1
  232.         ;;
  233.       esac
  234.           eval "${opt}=\"${val}\""
  235.         ;;
  236.  
  237.         ## Has the user specified a source directory?
  238.     "srcdir" )
  239.       ## If the value was omitted, get it from the next argument.
  240.       if [ "${valomitted}" = "yes" ]; then
  241.         ## Get the next argument from the argument list, if there is one.
  242.             if [ $# = 0 ]; then
  243.           (echo "${progname}: You must give a value for the \`--${optname}' option, as in
  244.     \`--${optname}=FOO'."
  245.            echo "${short_usage}") >&2
  246.           exit 1
  247.         fi
  248.         val="$1"; shift
  249.       fi
  250.           srcdir="${val}"
  251.     ;;
  252.  
  253.     ## Has the user tried to tell us where the X files are?
  254.     ## I think these are dopey, but no less than three alpha
  255.     ## testers, at large sites, have said they have their X files
  256.     ## installed in odd places.
  257.     "x_includes" )
  258.       ## If the value was omitted, get it from the next argument.
  259.       if [ "${valomitted}" = "yes" ]; then
  260.         ## Get the next argument from the argument list, if there is one.
  261.             if [ $# = 0 ]; then
  262.           (echo "${progname}: You must give a value for the \`--${optname}' option, as in
  263.     \`--${optname}=/ade/X11/include'."
  264.            echo "${short_usage}") >&2
  265.           exit 1
  266.         fi
  267.             val="$1"; shift
  268.       fi
  269.       x_includes="${val}"
  270.         ;;
  271.     "x_libraries" )
  272.       ## If the value was omitted, get it from the next argument.
  273.       if [ "${valomitted}" = "yes" ]; then
  274.         ## Get the next argument from the argument list, if there is one.
  275.             if [ $# = 0 ]; then
  276.           (echo "${progname}: You must give a value for the \`--${optname}' option, as in
  277.     \`--${optname}=/ade/X11/lib'."
  278.            echo "${short_usage}") >&2
  279.           exit 1
  280.         fi
  281.             val="$1"; shift
  282.       fi
  283.       x_libraries="${val}"
  284.         ;;
  285.  
  286.     ## Should this use the "development" file organization?
  287.     "run_in_place" )
  288.       single_tree=
  289.       run_in_place=1
  290.     ;;
  291.  
  292.         ## Should this use the "single tree" file organization?
  293.     "single_tree" )
  294.        run_in_place=
  295.        single_tree=1
  296.     ;;
  297.  
  298.     ## Has the user specified one of the path options?
  299.     prefix | exec_prefix | bindir | libdir | etcdir | datadir | \
  300.     archlibdir | statedir | mandir | infodir | lispdir | lockdir | \
  301.     lisppath | locallisppath | docdir )
  302.        ## If the value was omitted, get it from the next argument.
  303.        if [ "${valomitted}" = "yes" ]; then
  304.           if [ $# = 0 ]; then
  305.          (echo \
  306. "$progname: You must give a value for the \`--${optname}' option,";
  307.           echo \
  308. "as in \`--${optname}=`eval echo '$'$optname`.'"
  309.           echo "$short_usage") >&2
  310.          exit 1
  311.           fi
  312.           val="$1"; shift
  313.        fi
  314.        eval "${opt}=\"${val}\""
  315.        eval "${opt}_specified=1"
  316.     ;;
  317.  
  318.     ## Verbose flag, tested by autoconf macros.
  319.     "verbose" )
  320.       verbose=yes
  321.     ;;
  322.  
  323.     ## Has the user asked for some help?
  324.     "usage" | "help" )
  325.       if [ "x$PAGER" = x ]
  326.       then
  327.         echo "${short_usage}" | more
  328.       else
  329.         echo "${short_usage}" | $PAGER
  330.       fi
  331.       exit
  332.     ;;
  333.  
  334.         ## We ignore all other options silently.
  335.       esac
  336.     ;;
  337.  
  338.     ## Anything not starting with a hyphen we assume is a
  339.     ## configuration name.
  340.     *)
  341.       configuration=${arg}
  342.     ;;
  343.  
  344.   esac
  345. done
  346.  
  347. ### Get the arguments back.  See the diatribe on Shell Magic above.
  348. eval set x "$quoted_arguments"; shift
  349.  
  350. if [ "${configuration}" = "" ]; then
  351.   echo '- You did not tell me what kind of host system you want to configure.
  352. - I will attempt to guess the kind of system this is.' 1>&2
  353.   guesssys=`echo ${progname} | sed 's/configure$/config.guess/'`
  354.   if configuration=`${guesssys}` ; then
  355.     echo "- Looks like this is a ${configuration}" 1>&2
  356.   else
  357.     echo '- Failed to guess the system type.  You need to tell me.' 1>&2
  358.     echo "${short_usage}" >&2
  359.     exit 1
  360.   fi
  361. fi
  362.  
  363. #### Decide where the source is.
  364. case "${srcdir}" in
  365.  
  366.   ## If it's not specified, see if  `.' or `..' might work.
  367.   "" )
  368.     confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
  369.     if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then
  370.       srcdir="${confdir}"
  371.     else
  372.       if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
  373.         srcdir='.'
  374.       else
  375.         if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
  376.       srcdir='..'
  377.         else
  378.       (echo "\
  379. ${progname}: Neither the current directory nor its parent seem to
  380. contain the Emacs sources.  If you do not want to build Emacs in its
  381. source tree, you should run \`${progname}' in the directory in which
  382. you wish to build Emacs, using its \`--srcdir' option to say where the
  383. sources may be found."
  384.         echo "${short_usage}") >&2
  385.       exit 1
  386.         fi
  387.       fi
  388.     fi
  389.   ;;
  390.  
  391.   ## Otherwise, check if the directory they specified is okay.
  392.   * )
  393.     if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then
  394.       (echo "\
  395. ${progname}: The directory specified with the \`--srcdir' option,
  396. \`${srcdir}', doesn't seem to contain the Emacs sources.  You should
  397. either run the \`${progname}' script at the top of the Emacs source
  398. tree, or use the \`--srcdir' option to specify where the Emacs sources
  399. are."
  400.        echo "${short_usage}") >&2
  401.       exit 1
  402.     fi
  403.   ;;
  404. esac
  405.  
  406. #### Make srcdir absolute, if it isn't already.  It's important to
  407. #### avoid running the path through pwd unnecessary, since pwd can
  408. #### give you automounter prefixes, which can go away.
  409. case "${srcdir}" in
  410.   /* ) ;;
  411.   . )
  412.     ## We may be able to use the $PWD environment variable to make this
  413.     ## absolute.  But sometimes PWD is inaccurate.
  414.     if [ "${PWD}" != "" ] && [ "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`" ] ; then
  415.       srcdir="$PWD"
  416.     else
  417.       srcdir="`(cd ${srcdir}; pwd)`"
  418.     fi
  419.   ;;
  420.   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
  421. esac
  422.  
  423. #### Check if the source directory already has a configured system in it.
  424. if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
  425.    && [ -f "${srcdir}/src/config.h" ] ; then
  426.   (echo "${progname}: WARNING: The directory tree \`${srcdir}' is being used"
  427.    echo "   as a build directory right now; it has been configured in its own"
  428.    echo "   right.  To configure in another directory as well, you MUST"
  429.    echo "   use GNU make.  If you do not have GNU make, then you must"
  430.    echo "   now do \`make distclean' in ${srcdir},"
  431.    echo "   and then run ${progname} again.") >&2
  432.   extrasub='/^VPATH[     ]*=/c\
  433. vpath %.c $(srcdir)\
  434. vpath %.h $(srcdir)\
  435. vpath %.y $(srcdir)\
  436. vpath %.l $(srcdir)\
  437. vpath %.s $(srcdir)\
  438. vpath %.in $(srcdir)'
  439. fi
  440.  
  441. ### Make the necessary directories, if they don't exist.
  442. for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do
  443.   if [ ! -d ${dir} ]; then
  444.     mkdir ${dir}
  445.   fi
  446. done
  447.  
  448. #### Given the configuration name, set machfile and opsysfile to the
  449. #### names of the m/*.h and s/*.h files we should use.
  450.  
  451. ### Canonicalize the configuration name.
  452. echo "Checking the configuration name"
  453. if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else
  454.   exit $?
  455. fi
  456.  
  457. ### If you add support for a new configuration, add code to this
  458. ### switch statement to recognize your configuration name and select
  459. ### the appropriate operating system and machine description files.
  460.  
  461. ### You would hope that you could choose an m/*.h file pretty much
  462. ### based on the machine portion of the configuration name, and an s-
  463. ### file based on the operating system portion.  However, it turns out
  464. ### that each m/*.h file is pretty manufacturer-specific - for
  465. ### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
  466. ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
  467. ### machines.  So we basically have to have a special case for each
  468. ### configuration name.
  469. ###
  470. ### As far as handling version numbers on operating systems is
  471. ### concerned, make sure things will fail in a fixable way.  If
  472. ### /etc/MACHINES doesn't say anything about version numbers, be
  473. ### prepared to handle anything reasonably.  If version numbers
  474. ### matter, be sure /etc/MACHINES says something about it.
  475. ###
  476. ### Eric Raymond says we should accept strings like "sysvr4" to mean
  477. ### "System V Release 4"; he writes, "The old convention encouraged
  478. ### confusion between `system' and `release' levels'."
  479.  
  480. machine='' opsys='' unported='false'
  481. case "${canonical}" in
  482.  
  483.   ## NetBSD ports
  484.   *-*-netbsd* )
  485.     opsys=netbsd
  486.     case "${canonical}" in
  487.       i[345]86-*-netbsd*) machine=intel386 ;;
  488.       m68k-*-netbsd*)
  489.             # This is somewhat bogus.
  490.             machine=hp9000s300 ;;
  491.       mips-*-netbsd*)    machine=pmax ;;
  492.       ns32k-*-netbsd*)    machine=ns32000 ;;
  493.       sparc-*-netbsd*)    machine=sparc ;;
  494.     esac
  495.   ;;
  496.  
  497.   ## Alliant machines
  498.   ## Strictly speaking, we need the version of the alliant operating
  499.   ## system to choose the right machine file, but currently the
  500.   ## configuration name doesn't tell us enough to choose the right
  501.   ## one; we need to give alliants their own operating system name to
  502.   ## do this right.  When someone cares, they can help us.
  503.   fx80-alliant-* )
  504.     machine=alliant4 opsys=bsd4-2
  505.   ;;
  506.   i860-alliant-* )
  507.     machine=alliant-2800 opsys=bsd4-3
  508.   ;;
  509.  
  510.   ## Commodore Amiga
  511.   m68*-*-amigaos)
  512.     machine=amiga opsys=amigaos
  513.     ## Convert absolute srcdir to canonical amigaos form, which
  514.     ## native compilers can understand and gcc can deal with.
  515.     case "${srcdir}" in
  516.       /* )
  517.     srcdir=`/bin/echo ${srcdir} | sed -e 's%^/%%' -e 's%/%:%'`
  518.       ;;
  519.     esac
  520.   ;;
  521.  
  522.   ## Altos 3068
  523.   m68*-altos-sysv* )
  524.     machine=altos opsys=usg5-2
  525.   ;;
  526.     
  527.   ## Amdahl UTS
  528.   580-amdahl-sysv* )
  529.     machine=amdahl opsys=usg5-2-2
  530.   ;;
  531.  
  532.   ## Appallings - I mean, Apollos - running Domain
  533.   m68*-apollo* )
  534.     machine=apollo opsys=bsd4-2
  535.   ;;
  536.  
  537.   ## AT&T 3b2, 3b5, 3b15, 3b20
  538.   we32k-att-sysv* )
  539.     machine=att3b opsys=usg5-2-2
  540.   ;;
  541.  
  542.   ## AT&T 3b1 - The Mighty Unix PC!
  543.   m68*-att-sysv* )
  544.     machine=7300 opsys=usg5-2-2
  545.   ;;
  546.  
  547.   ## Bull dpx20
  548.   rs6000-bull-bosx* )
  549.     machine=ibmrs6000 opsys=aix3-2
  550.   ;;
  551.  
  552.   ## Bull dpx2
  553.   m68*-bull-sysv3* )
  554.     machine=dpx2 opsys=usg5-3
  555.   ;;
  556.  
  557.   ## Bull sps7
  558.   m68*-bull-sysv2* )
  559.     machine=sps7 opsys=usg5-2
  560.   ;;
  561.  
  562.   ## CCI 5/32, 6/32 -- see "Tahoe".
  563.  
  564.   ## Celerity
  565.   ## I don't know what configuration name to use for this; config.sub
  566.   ## doesn't seem to know anything about it.  Hey, Celerity users, get
  567.   ## in touch with us!
  568.   celerity-celerity-bsd* )
  569.     machine=celerity opsys=bsd4-2
  570.   ;;
  571.  
  572.   ## Clipper
  573.   ## What operating systems does this chip run that Emacs has been
  574.   ## tested on?
  575.   clipper-* )
  576.     machine=clipper
  577.     ## We'll use the catch-all code at the bottom to guess the
  578.     ## operating system.
  579.   ;;
  580.  
  581.   ## Convex
  582.   *-convex-bsd* | *-convex-convexos* )
  583.     machine=convex opsys=bsd4-3
  584.     ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov
  585.     NON_GNU_CPP="cc -E -P"
  586.   ;;
  587.  
  588.   ## Cubix QBx/386
  589.   i[345]86-cubix-sysv* )
  590.     machine=intel386 opsys=usg5-3
  591.   ;;
  592.  
  593.   ## Cydra 5
  594.   cydra*-cydrome-sysv* )
  595.     machine=cydra5 opsys=usg5-3
  596.   ;;
  597.  
  598.   ## Data General AViiON Machines
  599.   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
  600.     machine=aviion opsys=dgux5-4r3
  601.   ;;
  602.   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
  603.     machine=aviion opsys=dgux5-4r2
  604.   ;;
  605.   m88k-dg-dgux* )
  606.     machine=aviion opsys=dgux
  607.   ;;
  608.  
  609.   ## DECstations
  610.   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* )
  611.     machine=pmax opsys=bsd4-2
  612.   ;;
  613.   mips-dec-ultrix* | mips-dec-bsd* )
  614.     machine=pmax opsys=bsd4-3
  615.   ;;
  616.   mips-dec-osf* )
  617.     machine=pmax opsys=osf1
  618.   ;;
  619.  
  620.   ## Motorola Delta machines
  621.   m68k-motorola-sysv* | m68000-motorola-sysv* )
  622.     machine=delta opsys=usg5-3
  623.     if [ -z "`type gnucc | grep 'not found'`" ]
  624.     then CC=gnucc
  625.     else
  626.       if [ -z "`type gcc | grep 'not found'`" ]
  627.       then CC=gcc
  628.       else CC=cc
  629.       fi
  630.     fi
  631.   ;;
  632.   m88k-motorola-sysv4* )
  633.     machine=delta88k opsys=usg5-4
  634.   ;;
  635.   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
  636.     machine=delta88k opsys=usg5-3
  637.   ;;
  638.  
  639.   ## Dual machines
  640.   m68*-dual-sysv* )
  641.     machine=dual opsys=usg5-2
  642.   ;;
  643.   m68*-dual-uniplus* )
  644.     machine=dual opsys=unipl5-2
  645.   ;;
  646.  
  647.   ## Elxsi 6400
  648.   elxsi-elxsi-sysv* )
  649.     machine=elxsi opsys=usg5-2
  650.   ;;
  651.  
  652.   ## Encore machines
  653.   ns16k-encore-bsd* )
  654.     machine=ns16000 opsys=umax
  655.   ;;
  656.  
  657.   ## The GEC 93 - apparently, this port isn't really finished yet.
  658.  
  659.   ## Gould Power Node and NP1
  660.   pn-gould-bsd4.2* )
  661.     machine=gould opsys=bsd4-2
  662.   ;;
  663.   pn-gould-bsd4.3* )
  664.     machine=gould opsys=bsd4-3
  665.   ;;
  666.   np1-gould-bsd* )
  667.     machine=gould-np1 opsys=bsd4-3
  668.   ;;
  669.  
  670.   ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
  671.   ## as far as Emacs is concerned).
  672.   m88k-harris-cxux* )
  673.     # Build needs to be different on 7.0 and later releases
  674.     case "`uname -r`" in
  675.        [56].[0-9] ) machine=nh4000 opsys=cxux ;;
  676.        [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
  677.     esac
  678.   ;;
  679.   ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
  680.   m68k-harris-cxux* )
  681.     machine=nh3000 opsys=cxux
  682.   ;;
  683.  
  684.   ## Honeywell XPS100
  685.   xps*-honeywell-sysv* )
  686.     machine=xps100 opsys=usg5-2
  687.   ;;
  688.  
  689.   ## HP 9000 series 200 or 300
  690.   m68*-hp-bsd* )
  691.     machine=hp9000s300 opsys=bsd4-3
  692.   ;;
  693.   ## HP/UX 7, 8 and 9 are supported on these machines.
  694.   m68*-hp-hpux* )
  695.     case "`uname -r`" in
  696.       ## Someone's system reports A.B8.05 for this.
  697.       ## I wonder what other possibilities there are.
  698.       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
  699.       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
  700.       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
  701.       *) machine=hp9000s300 opsys=hpux ;;
  702.     esac
  703.   ;;
  704.  
  705.   ## HP 9000 series 700 and 800, running HP/UX
  706.   hppa*-hp-hpux7* )
  707.     machine=hp800 opsys=hpux
  708.   ;;
  709.   hppa*-hp-hpux8* )
  710.     machine=hp800 opsys=hpux8
  711.   ;;
  712.   hppa*-hp-hpux9shr* )
  713.     machine=hp800 opsys=hpux9shr
  714.   ;;
  715.   hppa*-hp-hpux9* )
  716.     machine=hp800 opsys=hpux9
  717.   ;;
  718.  
  719.   ## HP 9000 series 700 and 800, running HP/UX
  720.   hppa*-hp-hpux* )
  721.     ## Cross-compilation?  Nah!
  722.     case "`uname -r`" in
  723.       ## Someone's system reports A.B8.05 for this.
  724.       ## I wonder what other possibilities there are.
  725.       *.B8.* ) machine=hp800 opsys=hpux8 ;;
  726.       *.08.* ) machine=hp800 opsys=hpux8 ;;
  727.       *.09.* ) machine=hp800 opsys=hpux9 ;;
  728.       *) machine=hp800 opsys=hpux ;;
  729.     esac
  730.   ;;
  731.  
  732.   ## Orion machines
  733.   orion-orion-bsd* )
  734.     machine=orion opsys=bsd4-2
  735.   ;;
  736.   clipper-orion-bsd* )
  737.     machine=orion105 opsys=bsd4-2
  738.   ;;
  739.  
  740.   ## IBM machines
  741.   i[345]86-ibm-aix1.1* )
  742.     machine=ibmps2-aix opsys=usg5-2-2
  743.   ;;
  744.   i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
  745.     machine=ibmps2-aix opsys=usg5-3
  746.   ;;
  747.   i370-ibm-aix*)
  748.     machine=ibm370aix opsys=usg5-3
  749.   ;;
  750.   rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
  751.     machine=ibmrs6000 opsys=aix3-1
  752.   ;;
  753.   rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
  754.     machine=ibmrs6000 opsys=aix3-2-5
  755.   ;;
  756.   rs6000-ibm-aix* | powerpc-ibm-aix* )
  757.     machine=ibmrs6000 opsys=aix3-2
  758.   ;;
  759.   romp-ibm-bsd4.3* )
  760.     machine=ibmrt opsys=bsd4-3
  761.   ;;    
  762.   romp-ibm-bsd4.2* )
  763.     machine=ibmrt opsys=bsd4-2
  764.   ;;
  765.   romp-ibm-aos4.3* )
  766.     machine=ibmrt opsys=bsd4-3
  767.   ;;    
  768.   romp-ibm-aos4.2* )
  769.     machine=ibmrt opsys=bsd4-2
  770.   ;;
  771.   romp-ibm-aos* )
  772.     machine=ibmrt opsys=bsd4-3
  773.   ;;
  774.   romp-ibm-bsd* )
  775.     machine=ibmrt opsys=bsd4-3
  776.   ;;
  777.   romp-ibm-aix* )
  778.     machine=ibmrt-aix opsys=usg5-2-2
  779.   ;;
  780.  
  781.   ## Integrated Solutions `Optimum V'
  782.   m68*-isi-bsd4.2* )
  783.     machine=isi-ov opsys=bsd4-2
  784.   ;;
  785.   m68*-isi-bsd4.3* )
  786.     machine=isi-ov opsys=bsd4-3
  787.   ;;
  788.  
  789.   ## Intel 386 machines where we do care about the manufacturer
  790.   i[345]86-intsys-sysv* )
  791.     machine=is386 opsys=usg5-2-2
  792.   ;;
  793.  
  794.   ## Prime EXL
  795.   i[345]86-prime-sysv* )
  796.     machine=i386 opsys=usg5-3
  797.   ;;
  798.  
  799.   ## Sequent Symmetry
  800.   i[345]86-sequent-bsd* )
  801.     machine=symmetry opsys=bsd4-3
  802.   ;;
  803.  
  804.   ## Unspecified sysv on an ncr machine defaults to svr4.2.
  805.   ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
  806.   i[345]86-ncr-sysv* )
  807.     machine=intel386 opsys=usg5-4-2
  808.   ;;
  809.  
  810.   ## Intel 860
  811.   i860-*-sysv4* )
  812.     machine=i860 opsys=usg5-4
  813.     NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
  814.     NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
  815.   ;;
  816.  
  817.   ## Masscomp machines
  818.   m68*-masscomp-rtu* )
  819.     machine=masscomp opsys=rtu
  820.   ;;
  821.  
  822.   ## Megatest machines
  823.   m68*-megatest-bsd* )
  824.     machine=mega68 opsys=bsd4-2
  825.   ;;
  826.  
  827.   ## Workstations sold by MIPS
  828.   ## This is not necessarily all workstations using the MIPS processor -
  829.   ## Irises are produced by SGI, and DECstations by DEC.
  830.  
  831.   ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
  832.   ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
  833.   ## it gives for choosing between the alternatives seems to be "Use
  834.   ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
  835.   ## the BSD world."  I'll assume that these are instructions for
  836.   ## handling two odd situations, and that every other situation
  837.   ## should use mips.h and usg5-2-2, they being listed first.
  838.   mips-mips-usg* )
  839.     machine=mips4
  840.     ## Fall through to the general code at the bottom to decide on the OS.
  841.   ;;
  842.   mips-mips-riscos4* )
  843.     machine=mips4 opsys=bsd4-3
  844.     NON_GNU_CC="cc -systype bsd43"
  845.     NON_GNU_CPP="cc -systype bsd43 -E"
  846.   ;;
  847.   mips-mips-bsd* )
  848.     machine=mips opsys=bsd4-3
  849.   ;;
  850.   mips-mips-* )
  851.     machine=mips opsys=usg5-2-2
  852.   ;;
  853.  
  854.   ## NeXT
  855.   m68*-next-* | i[345]86-next-* )
  856.     machine=next opsys=mach2
  857.   ;;
  858.  
  859.   ## The complete machine from National Semiconductor
  860.   ns32k-ns-genix* )
  861.     machine=ns32000 opsys=usg5-2
  862.   ;;
  863.  
  864.   ## NCR machines
  865.   m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
  866.     machine=tower32 opsys=usg5-2-2
  867.   ;;
  868.   m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
  869.     machine=tower32v3 opsys=usg5-3
  870.   ;;
  871.  
  872.   ## Nixdorf Targon 31
  873.   m68*-nixdorf-sysv* )
  874.     machine=targon31 opsys=usg5-2-2
  875.   ;;
  876.  
  877.   ## Nu (TI or LMI)
  878.   m68*-nu-sysv* )
  879.     machine=nu opsys=usg5-2
  880.   ;;
  881.  
  882.   ## Plexus
  883.   m68*-plexus-sysv* )
  884.     machine=plexus opsys=usg5-2
  885.   ;;
  886.  
  887.   ## Pyramid machines
  888.   ## I don't really have any idea what sort of processor the Pyramid has,
  889.   ## so I'm assuming it is its own architecture.
  890.   pyramid-pyramid-bsd* )
  891.     machine=pyramid opsys=bsd4-2
  892.   ;;
  893.  
  894.   ## Sequent Balance
  895.   ns32k-sequent-bsd4.2* )
  896.     machine=sequent opsys=bsd4-2
  897.   ;;
  898.   ns32k-sequent-bsd4.3* )
  899.     machine=sequent opsys=bsd4-3
  900.   ;;
  901.  
  902.   ## Siemens Nixdorf
  903.   mips-siemens-sysv* )
  904.     machine=mips-siemens opsys=usg5-4
  905.     NON_GNU_CC=/usr/ccs/bin/cc
  906.     NON_GNU_CPP=/usr/ccs/lib/cpp
  907.   ;;
  908.  
  909.   ## Silicon Graphics machines
  910.   ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
  911.   m68*-sgi-iris3.5* )
  912.     machine=irist opsys=iris3-5
  913.   ;;
  914.   m68*-sgi-iris3.6* | m68*-sgi-iris*)
  915.     machine=irist opsys=iris3-6
  916.   ;;
  917.   ## Iris 4D
  918.   mips-sgi-irix3* )
  919.     machine=iris4d opsys=irix3-3
  920.   ;;
  921.   mips-sgi-irix5* )
  922.     machine=iris4d opsys=irix5-0
  923.   ;;
  924.   mips-sgi-irix4* | mips-sgi-irix* )
  925.     machine=iris4d opsys=irix4-0
  926.   ;;
  927.  
  928.   ## SONY machines
  929.   m68*-sony-bsd4.2* )
  930.     machine=news opsys=bsd4-2
  931.   ;;
  932.   m68*-sony-bsd4.3* )
  933.     machine=news opsys=bsd4-3
  934.   ;;
  935.   m68*-sony-newsos3*)
  936.     machine=news opsys=bsd4-3
  937.   ;;
  938.   mips-sony-bsd* | mips-sony-newsos4* )
  939.     machine=news-risc opsys=bsd4-3
  940.   ;;
  941.   mips-sony-newsos* )
  942.     machine=news-risc opsys=newsos5
  943.   ;;
  944.  
  945.   ## Stride
  946.   m68*-stride-sysv* )
  947.     machine=stride opsys=usg5-2
  948.   ;;
  949.  
  950.   ## Suns
  951.   *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
  952.     case "${canonical}" in
  953.       m68*-sunos1* )    machine=sun1 ;;
  954.       m68*-sunos2* )    machine=sun2 ;;
  955.       m68* )        machine=sun3 ;;
  956.       i[345]86-sun-sunos[34]* )    machine=sun386 ;;
  957.       i[345]86-*-* )     machine=intel386 ;;
  958.       sparc* )        machine=sparc ;;
  959.       * )        unported=true ;;
  960.     esac
  961.     case "${canonical}" in
  962.       ## The Sun386 didn't get past 4.0.
  963.       i[345]86-*-sunos4      ) opsys=sunos4-0 ;;
  964.       *-sunos4.0*      ) opsys=sunos4-0 ;;
  965.       *-sunos4.1.3*      ) opsys=sunos4-1-3
  966.         NON_GCC_TEST_OPTIONS=-Bstatic
  967.         GCC_TEST_OPTIONS=-static
  968.         ;;
  969.       *-sunos4shr*      ) opsys=sunos4shr ;;
  970.       *-sunos4* | *-sunos ) opsys=sunos4-1
  971.         NON_GCC_TEST_OPTIONS=-Bstatic
  972.         GCC_TEST_OPTIONS=-static
  973.         ;;
  974.       *-sunos5.3* | *-solaris2.3* )
  975.         opsys=sol2-3
  976.         NON_GNU_CPP=/usr/ccs/lib/cpp
  977.         ;;
  978.       *-sunos5.4* | *-solaris2.4* )
  979.         opsys=sol2-4
  980.         NON_GNU_CPP=/usr/ccs/lib/cpp
  981.         ;;
  982.       *-sunos5* | *-solaris* )
  983.         opsys=sol2
  984.         NON_GNU_CPP=/usr/ccs/lib/cpp
  985.         ;;
  986.       *              ) opsys=bsd4-2   ;;
  987.     esac
  988.   ;;
  989.  
  990.   ## Tadpole 68k
  991.   m68*-tadpole-sysv* )
  992.     machine=tad68k opsys=usg5-3
  993.   ;;
  994.  
  995.   ## Tahoe machines
  996.   tahoe-tahoe-bsd4.2* )
  997.     machine=tahoe opsys=bsd4-2
  998.   ;;
  999.   tahoe-tahoe-bsd4.3* )
  1000.     machine=tahoe opsys=bsd4-3
  1001.   ;;
  1002.  
  1003.   ## Tandem Integrity S2
  1004.   mips-tandem-sysv* )
  1005.     machine=tandem-s2 opsys=usg5-3
  1006.   ;;
  1007.  
  1008.   ## Tektronix XD88
  1009.   m88k-tektronix-sysv3* )
  1010.   machine=tekxd88 opsys=usg5-3
  1011.   ;;
  1012.  
  1013.   ## Tektronix 16000 box (6130?)
  1014.   ns16k-tektronix-bsd* )
  1015.     machine=ns16000 opsys=bsd4-2
  1016.   ;;
  1017.   ## Tektronix 4300
  1018.   ## src/m/tek4300.h hints that this is a m68k machine.
  1019.   m68*-tektronix-bsd* )
  1020.     machine=tek4300 opsys=bsd4-3
  1021.   ;;
  1022.  
  1023.   ## Titan P2 or P3
  1024.   ## We seem to have lost the machine-description file titan.h!
  1025.   titan-titan-sysv* )
  1026.     machine=titan opsys=usg5-3
  1027.   ;;
  1028.   
  1029.   ## Ustation E30 (SS5E)
  1030.   m68*-unisys-uniplus* )
  1031.     machine=ustation opsystem=unipl5-2
  1032.   ;;
  1033.  
  1034.   ## Vaxen.
  1035.   vax-dec-* )
  1036.     machine=vax
  1037.     case "${canonical}" in
  1038.       *-bsd4.1* )                     opsys=bsd4-1 ;;
  1039.       *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )    opsys=bsd4-2 ;;
  1040.       *-bsd4.3* | *-ultrix* )                 opsys=bsd4-3 ;;
  1041.       *-bsd386* | *-bsdi* )                opsys=bsd386 ;;
  1042.       *-sysv[01]* | *-sysvr[01]* )             opsys=usg5-0 ;;
  1043.       *-sysv2* | *-sysvr2* )                opsys=usg5-2 ;;
  1044.       *-vms* )                         opsys=vms ;;
  1045.       * )                         unported=true
  1046.     esac
  1047.   ;;
  1048.  
  1049.   ## Whitechapel MG1
  1050.   ns16k-whitechapel-* )
  1051.     machine=mg1
  1052.     ## We don't know what sort of OS runs on these; we'll let the
  1053.     ## operating system guessing code below try.
  1054.   ;;
  1055.  
  1056.   ## Wicat
  1057.   m68*-wicat-sysv* )
  1058.     machine=wicat opsys=usg5-2
  1059.   ;;
  1060.  
  1061.   ## Intel 386 machines where we don't care about the manufacturer
  1062.   i[345]86-*-* )
  1063.     machine=intel386
  1064.     case "${canonical}" in
  1065.       *-isc1.* | *-isc2.[01]* )    opsys=386-ix ;;
  1066.       *-isc2.2* )        opsys=isc2-2 ;;
  1067.       *-isc4.0* )        opsys=isc4-0 ;;
  1068.       *-isc* )            opsys=isc3-0 ;;
  1069.       *-esix5* )        opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
  1070.       *-esix* )            opsys=esix ;;
  1071.       *-xenix* )        opsys=xenix ;;
  1072.       *-linux* )        opsys=linux ;;
  1073.       *-sco3.2v4* )        opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
  1074.       *-bsd386* | *-bsdi* )    opsys=bsd386 ;;
  1075.       *-386bsd* )            opsys=386bsd ;;
  1076.       *-freebsd* )            opsys=freebsd ;;
  1077.       *-nextstep* )             opsys=mach2 ;;
  1078.       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
  1079.     esac
  1080.   ;;
  1081.  
  1082.   * )
  1083.     unported=true
  1084.   ;;
  1085. esac
  1086.  
  1087. ### If the code above didn't choose an operating system, just choose
  1088. ### an operating system based on the configuration name.  You really
  1089. ### only want to use this when you have no idea what the right
  1090. ### operating system is; if you know what operating systems a machine
  1091. ### runs, it's cleaner to make it explicit in the case statement
  1092. ### above.
  1093. if [ x"${opsys}" = x ]; then
  1094.   case "${canonical}" in
  1095.     *-gnu* )                opsys=gnu ;;
  1096.     *-bsd4.[01] )            opsys=bsd4-1 ;;
  1097.     *-bsd4.2 )                opsys=bsd4-2 ;;
  1098.     *-bsd4.3 )                opsys=bsd4-3 ;;
  1099.     *-sysv0 | *-sysvr0 )        opsys=usg5-0 ;;
  1100.     *-sysv2 | *-sysvr2 )        opsys=usg5-2 ;;
  1101.     *-sysv2.2 | *-sysvr2.2 )        opsys=usg5-2-2 ;;
  1102.     *-sysv3 | *-sysvr3 )        opsys=usg5-3 ;;
  1103.     *-sysv4 | *-sysvr4 )        opsys=usg5-4 ;;
  1104.     *-sysv4.1 | *-sysvr4.1 )
  1105.     NON_GNU_CPP=/usr/lib/cpp
  1106.     opsys=usg5-4 ;;
  1107.     *-sysv4.2 | *-sysvr4.2 )        opsys=usg5-4-2 ;;
  1108.     * )
  1109.       unported=true
  1110.     ;;
  1111.   esac
  1112. fi
  1113.  
  1114. if $unported ; then
  1115.   (echo "${progname}: Emacs hasn't been ported to \`${canonical}' systems."
  1116.    echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
  1117.   ) >&2
  1118.   exit 1
  1119. fi
  1120.  
  1121. machfile="m/${machine}.h"
  1122. opsysfile="s/${opsys}.h"
  1123.  
  1124. ]
  1125. AC_PREPARE(lisp)
  1126. AC_CONFIG_HEADER(src/config.h)
  1127. [
  1128.  
  1129. #### Choose a compiler.
  1130. if [ "x$CC" = x ]
  1131. then true
  1132. else cc_specified=1
  1133. fi
  1134.  
  1135. case ${with_gcc} in
  1136.   "yes" ) CC="gcc" GCC=1 ;;
  1137.   "no"  )
  1138.     if [ "x$CC" = x ]
  1139.     then CC=cc;
  1140.     else true;
  1141.     fi
  1142.     ;;
  1143.   * )
  1144.     ] AC_PROG_CC [
  1145. esac
  1146.  
  1147. #### Some systems specify a CPP to use unless we are using GCC.
  1148. #### Now that we know whether we are using GCC, we can decide whether
  1149. #### to use that one.
  1150. if [ "x$NON_GNU_CPP" = x ] || [ x$GCC = x1 ] || [ "x$CPP" != x ]
  1151. then true
  1152. else
  1153.   CPP="$NON_GNU_CPP"
  1154. fi
  1155.  
  1156. #### Some systems specify a CC to use unless we are using GCC.
  1157. #### Now that we know whether we are using GCC, we can decide whether
  1158. #### to use that one.
  1159. if [ "x$NON_GNU_CC" = x ] || [ x$GCC = x1 ] || [ x$cc_specified = x1 ]
  1160. then true
  1161. else
  1162.   CC="$NON_GNU_CC"
  1163. fi
  1164.  
  1165. if [ x$GCC = x1 ] && [ "x$GCC_TEST_OPTIONS" != x ]
  1166. then
  1167.   CC="$CC $GCC_TEST_OPTIONS"
  1168. fi  
  1169.  
  1170. if [ x$GCC = x ] && [ "x$NON_GCC_TEST_OPTIONS" != x ]
  1171. then
  1172.   CC="$CC $NON_GCC_TEST_OPTIONS"
  1173. fi  
  1174.  
  1175. #### Some other nice autoconf tests.  If you add a test here which
  1176. #### should make an entry in src/config.h, don't forget to add an
  1177. #### #undef clause to src/config.h.in for autoconf to modify.
  1178. ]
  1179. dnl checks for programs
  1180. AC_LN_S
  1181. AC_PROG_CPP
  1182. AC_PROG_INSTALL
  1183. AC_PROG_YACC
  1184.  
  1185. dnl checks for UNIX variants that set `DEFS'
  1186.  
  1187. dnl checks for header files
  1188. AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.h)
  1189. AC_STDC_HEADERS
  1190. AC_TIME_WITH_SYS_TIME
  1191. dnl In Autoconf 1.8 use AC_SYS_SIGLIST_DECLARED instead of this.
  1192. AC_COMPILE_CHECK(sys_siglist declaration in signal.h or unistd.h,
  1193.          [#include <signal.h>
  1194. /* NetBSD declares sys_siglist in <unistd.h>.  */
  1195. #ifdef HAVE_UNISTD_H
  1196. #include <unistd.h>
  1197. #endif], [char *msg = *(sys_siglist + 1);],
  1198.          AC_DEFINE(SYS_SIGLIST_DECLARED))
  1199.  
  1200. dnl checks for typedefs
  1201. AC_RETSIGTYPE
  1202.  
  1203. dnl checks for structure members
  1204. AC_STRUCT_TM
  1205. AC_TIMEZONE
  1206.  
  1207. dnl checks for compiler characteristics
  1208. AC_CONST
  1209.  
  1210. dnl check for Make feature
  1211. AC_SET_MAKE
  1212.  
  1213. dnl checks for operating system services
  1214. AC_LONG_FILE_NAMES
  1215.  
  1216. dnl other checks for UNIX variants
  1217. [
  1218.  
  1219. #### Choose a window system.
  1220. echo "checking for specified window system"
  1221.  
  1222. window_system=''
  1223. case "${with_x}" in
  1224.   yes )
  1225.     window_system=${window_system}x11
  1226.   ;;
  1227.   no )
  1228.     window_system=${window_system}none
  1229.   ;;
  1230. esac
  1231. case "${window_system}" in
  1232.   .* )
  1233.   ;;
  1234.   * )
  1235.     case "${with_x11}" in
  1236.       yes )
  1237.     window_system=x11
  1238.       ;;
  1239.       no )
  1240.     window_system=none
  1241.       ;;
  1242.     esac
  1243.     case "${with_x10}" in
  1244.       yes )
  1245.     window_system=x10
  1246.       ;;
  1247.       no )
  1248.     window_system=none
  1249.       ;;
  1250.     esac
  1251.   ;;
  1252. esac
  1253.  
  1254. case "${window_system}" in
  1255.   "none" | "x11" | "x10" ) ;;
  1256.   "" )
  1257.     # --x-includes or --x-libraries implies --with-x11.
  1258.     if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
  1259.       window_system=x11
  1260.     else
  1261.       echo "  No window system specified.  Looking for X11."
  1262.       # If the user didn't specify a window system and we found X11, use it.
  1263.       if [ -r /ade/lib/libX11.a \
  1264.      -o -d /ade/include/X11 \
  1265.          -o -d /ade/X386/include \
  1266.      -o -d /ade/X11 ]; then
  1267.         window_system=x11
  1268.       fi
  1269.     fi
  1270.   ;;
  1271.   * )
  1272.     echo "Don't specify a window system more than once." >&2
  1273.     exit 1
  1274.   ;;
  1275. esac
  1276.  
  1277. case "${window_system}" in
  1278.   "" | "x11" )
  1279.     ### If the user hasn't specified where we should find X, try
  1280.     ### letting autoconf figure that out.
  1281.     if [ -z "${x_includes}" ] && [ -z "${x_libraries}" ]; then
  1282.       ]
  1283.       AC_FIND_X
  1284.       [
  1285.     fi
  1286.     if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
  1287.       window_system=x11
  1288.     fi
  1289.   ;;
  1290. esac
  1291.  
  1292. [ -z "${window_system}" ] && window_system=none
  1293.  
  1294. [ -n "${x_libraries}" ] && LD_SWITCH_X_SITE="-L${x_libraries}"
  1295. [ -n "${x_libraries}" ] && LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
  1296. [ -n "${x_includes}" ] && C_SWITCH_X_SITE="-I${x_includes}"
  1297.  
  1298. # Avoid forcing the search of /ade/include before fixed include files.
  1299. if [ "$C_SWITCH_X_SITE" = "-I/ade/include" ]; then
  1300.    C_SWITCH_X_SITE=" "
  1301. fi
  1302.  
  1303. case "${window_system}" in
  1304.   x11 )
  1305.     HAVE_X_WINDOWS=yes
  1306.     HAVE_X11=yes
  1307.     echo "  Using X11."
  1308.     case "${with_x_toolkit}" in
  1309.       athena | lucid )
  1310.     USE_X_TOOLKIT=LUCID
  1311.     echo "  Using Xt toolkit."
  1312.     ;;    
  1313.       motif )
  1314.     USE_X_TOOLKIT=MOTIF
  1315.     echo "  Using Motif toolkit."
  1316.     ;;    
  1317.       open-look )
  1318.     USE_X_TOOLKIT=OPEN_LOOK
  1319.     echo "  Using Open-Look toolkit."
  1320.     ;;    
  1321.       * )
  1322.     USE_X_TOOLKIT=none
  1323.     echo "  Using Xlib directly."
  1324.       ;;
  1325.     esac
  1326.   ;;
  1327.   x10 )
  1328.     HAVE_X_WINDOWS=yes
  1329.     HAVE_X11=no
  1330.     USE_X_TOOLKIT=none
  1331.     echo "  Using X10."
  1332.   ;;
  1333.   none )
  1334.     HAVE_X_WINDOWS=no
  1335.     HAVE_X11=no
  1336.     USE_X_TOOLKIT=none
  1337.     echo "  Using no window system."
  1338.   ;;
  1339. esac
  1340. X_TOOLKIT_TYPE=$USE_X_TOOLKIT
  1341.  
  1342. ### If we're using X11, we should use the X menu package.
  1343. HAVE_X_MENU=no
  1344. case ${HAVE_X11} in
  1345.   yes )
  1346.     HAVE_X_MENU=yes
  1347.   ;;
  1348. esac
  1349.  
  1350. #### Extract some information from the operating system and machine files.
  1351.  
  1352. echo "examining the machine- and system-dependent files to find out"
  1353. echo " - which libraries the lib-src programs will want, and"
  1354. echo " - whether the GNU malloc routines are usable"
  1355.  
  1356. ### First figure out CFLAGS (which we use for running the compiler here)
  1357. ### and REAL_CFLAGS (which we use for real compilation).
  1358. ### The two are the same except on a few systems, where they are made
  1359. ### different to work around various lossages.  For example,
  1360. ### GCC 2.5 on Linux needs them to be different because it treats -g
  1361. ### as implying static linking.
  1362.  
  1363. ### If the CFLAGS env var is specified, we use that value
  1364. ### instead of the default.
  1365.  
  1366. ### It's not important that this name contain the PID; you can't run
  1367. ### two configures in the same directory and have anything work
  1368. ### anyway.
  1369. tempcname="conftest.c"
  1370.  
  1371. echo '
  1372. #include "'${srcdir}'/src/'${opsysfile}'"
  1373. #include "'${srcdir}'/src/'${machfile}'"
  1374. #ifndef LIBS_MACHINE
  1375. #define LIBS_MACHINE
  1376. #endif
  1377. #ifndef LIBS_SYSTEM
  1378. #define LIBS_SYSTEM
  1379. #endif
  1380. #ifndef C_SWITCH_SYSTEM
  1381. #define C_SWITCH_SYSTEM
  1382. #endif
  1383. #ifndef C_SWITCH_MACHINE
  1384. #define C_SWITCH_MACHINE
  1385. #endif
  1386. configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
  1387. configure___ c_switch_system=C_SWITCH_SYSTEM
  1388. configure___ c_switch_machine=C_SWITCH_MACHINE
  1389.  
  1390. #ifndef LIB_X11_LIB
  1391. #define LIB_X11_LIB -lX11
  1392. #endif
  1393.  
  1394. #ifndef LIBX11_MACHINE
  1395. #define LIBX11_MACHINE
  1396. #endif
  1397.  
  1398. #ifndef LIBX11_SYSTEM
  1399. #define LIBX11_SYSTEM
  1400. #endif
  1401. configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
  1402.  
  1403. #ifdef UNEXEC
  1404. configure___ unexec=UNEXEC
  1405. #else
  1406. configure___ unexec=unexec.o
  1407. #endif
  1408.  
  1409. #ifdef SYSTEM_MALLOC
  1410. configure___ system_malloc=yes
  1411. #else
  1412. configure___ system_malloc=no
  1413. #endif
  1414.  
  1415. #ifndef C_DEBUG_SWITCH
  1416. #define C_DEBUG_SWITCH -g
  1417. #endif
  1418.  
  1419. #ifndef C_OPTIMIZE_SWITCH
  1420. #define C_OPTIMIZE_SWITCH -O
  1421. #endif
  1422.  
  1423. #ifdef THIS_IS_CONFIGURE
  1424.  
  1425. /* Get the CFLAGS for tests in configure.  */
  1426. #ifdef __GNUC__
  1427. configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
  1428. #else
  1429. configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
  1430. #endif
  1431.  
  1432. #else /* not THIS_IS_CONFIGURE */
  1433.  
  1434. /* Get the CFLAGS for real compilation.  */
  1435. #ifdef __GNUC__
  1436. configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
  1437. #else
  1438. configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
  1439. #endif
  1440.  
  1441. #endif /* not THIS_IS_CONFIGURE */
  1442. ' > ${tempcname}
  1443. # The value of CPP is a quoted variable reference, so we need to do this
  1444. # to get its actual value...
  1445. CPP=`eval "echo $CPP"`
  1446. eval `${CPP} -Isrc ${tempcname} \
  1447.        | grep 'configure___' \
  1448.        | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'`
  1449. if [ "x$CFLAGS" = x ]; then
  1450.   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
  1451.      | grep 'configure___' \
  1452.      | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'`
  1453. else
  1454.   REAL_CFLAGS="$CFLAGS"
  1455. fi
  1456. rm ${tempcname}
  1457.  
  1458. ### Compute the unexec source name from the object name.
  1459. UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
  1460.  
  1461. # Do the opsystem or machine files prohibit the use of the GNU malloc?
  1462. # Assume not, until told otherwise.
  1463. GNU_MALLOC=yes
  1464. if [ "${system_malloc}" = "yes" ]; then
  1465.   GNU_MALLOC=no
  1466.   GNU_MALLOC_reason="
  1467.   (The GNU allocators don't work with this system configuration.)"
  1468. fi
  1469.  
  1470. if [ x"${REL_ALLOC}" = x ]; then
  1471.   REL_ALLOC=${GNU_MALLOC}
  1472. fi
  1473.  
  1474. LISP_FLOAT_TYPE=yes
  1475.  
  1476.  
  1477. #### Add the libraries to LIBS and check for some functions.
  1478.  
  1479. ]
  1480. DEFS="$c_switch_system $c_switch_machine $DEFS"
  1481. LIBS="$libsrc_libs"
  1482.  
  1483. dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
  1484. dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
  1485. AC_HAVE_LIBRARY(-ldnet)
  1486. dnl This causes -lresolv to get used in subsequent tests,
  1487. dnl which causes failures on some systems such as HPUX 9.
  1488. dnl AC_HAVE_LIBRARY(-lresolv)
  1489.  
  1490. AC_HAVE_LIBRARY(-lXbsd, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
  1491.  
  1492. echo checking for XFree86
  1493. if test -d /ade/X386/include; then
  1494.   HAVE_XFREE386=yes
  1495.   test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/ade/X386/include"
  1496. fi
  1497.  
  1498. # We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
  1499. # for the tests that follow.
  1500.  
  1501. if test "${HAVE_X11}" = "yes"; then
  1502.   DEFS="$C_SWITCH_X_SITE $DEFS"
  1503.   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
  1504.   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
  1505.   AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \
  1506. XScreenNumberOfScreen XSetWMProtocols)
  1507. fi
  1508.  
  1509. if test "${HAVE_X11}" = "yes"; then
  1510.   AC_COMPILE_CHECK(X11 version,
  1511.            [#include <X11/Xlib.h>],
  1512.            [
  1513. #if XlibSpecificationRelease < 6
  1514. fail;
  1515. #endif
  1516. ],
  1517.            AC_DEFINE(HAVE_X11R6))
  1518. fi
  1519.  
  1520. if test "${USE_X_TOOLKIT}" != "none"; then
  1521.   AC_COMPILE_CHECK(X11 toolkit version,
  1522.            [#include <X11/Intrinsic.h>],
  1523.            [
  1524. #if XtSpecificationRelease < 6
  1525. fail;
  1526. #endif
  1527. ],
  1528.            AC_DEFINE(HAVE_X11XTR6))
  1529. fi
  1530.  
  1531. # If netdb.h doesn't declare h_errno, we must declare it by hand.
  1532. AC_COMPILE_CHECK(declaration of h_errno in netdb.h,
  1533.          [#include <netdb.h>],
  1534.          [
  1535. int
  1536. foo ()
  1537. {
  1538.   return h_errno;
  1539. }
  1540. ],
  1541.          AC_DEFINE(HAVE_H_ERRNO))
  1542.  
  1543. AC_ALLOCA
  1544.  
  1545. # logb and frexp are found in -lm on most systems.
  1546. AC_HAVE_LIBRARY(-lm)
  1547. AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
  1548. random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
  1549. strerror fpathconf)
  1550.  
  1551. ok_so_far=true
  1552. AC_FUNC_CHECK(socket, , ok_so_far=)
  1553. if test -n "$ok_so_far"; then
  1554.   AC_HEADER_CHECK(netinet/in.h, , ok_so_far=)
  1555. fi
  1556. if test -n "$ok_so_far"; then
  1557.   AC_HEADER_CHECK(arpa/inet.h, , ok_so_far=)
  1558. fi
  1559. if test -n "$ok_so_far"; then
  1560.   AC_DEFINE(HAVE_INET_SOCKETS)
  1561. fi
  1562.  
  1563. # Set up the CFLAGS for real compilation, so we can substitute it.
  1564. CFLAGS="$REAL_CFLAGS"
  1565.  
  1566. [
  1567. #### Find out which version of Emacs this is.
  1568. version=`grep 'defconst[     ]*emacs-version' ${srcdir}/lisp/version.el \
  1569.      | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
  1570. if [ x"${version}" = x ]; then
  1571.   echo "${progname}: can't find current emacs version in
  1572.     \`${srcdir}/lisp/version.el'." >&2
  1573.   exit 1
  1574. fi
  1575.  
  1576. if [ -f /ade/lpp/X11/bin/smt.exp ]; then
  1577.   ]
  1578.   AC_DEFINE(HAVE_AIX_SMT_EXP)
  1579.   [
  1580. fi
  1581.  
  1582. #### Specify what sort of things we'll be editing into Makefile and config.h.
  1583. ### Use configuration here uncanonicalized to avoid exceeding size limits.
  1584. ]
  1585. AC_SUBST(version)
  1586. AC_SUBST(configuration)
  1587. AC_SUBST(srcdir)
  1588. AC_SUBST(prefix)
  1589. AC_SUBST(exec_prefix)
  1590. AC_SUBST(bindir)
  1591. AC_SUBST(datadir)
  1592. AC_SUBST(statedir)
  1593. AC_SUBST(libdir)
  1594. AC_SUBST(mandir)
  1595. AC_SUBST(infodir)
  1596. AC_SUBST(lispdir)
  1597. AC_SUBST(locallisppath)
  1598. AC_SUBST(lisppath)
  1599. AC_SUBST(etcdir)
  1600. AC_SUBST(lockdir)
  1601. AC_SUBST(archlibdir)
  1602. AC_SUBST(docdir)
  1603. AC_SUBST(c_switch_system)
  1604. AC_SUBST(c_switch_machine)
  1605. AC_SUBST(LD_SWITCH_X_SITE)
  1606. AC_SUBST(LD_SWITCH_X_SITE_AUX)
  1607. AC_SUBST(C_SWITCH_X_SITE)
  1608. AC_SUBST(CFLAGS)
  1609. AC_SUBST(X_TOOLKIT_TYPE)
  1610. AC_SUBST(machfile)
  1611. AC_SUBST(opsysfile)
  1612.  
  1613. AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "\"${configuration}\"")
  1614. AC_DEFINE_UNQUOTED(config_machfile,  "\"${machfile}\"")
  1615. AC_DEFINE_UNQUOTED(config_opsysfile, "\"${opsysfile}\"")
  1616. AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
  1617. AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
  1618. AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
  1619. AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
  1620.  
  1621. [
  1622. if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then
  1623.   ] AC_DEFINE(HAVE_X_WINDOWS) [
  1624. fi
  1625. if [ "${USE_X_TOOLKIT}" != "none" ] ; then
  1626.   ] AC_DEFINE(USE_X_TOOLKIT) [
  1627. fi
  1628. if [ "${HAVE_X11}" = "yes" ] ; then
  1629.   ] AC_DEFINE(HAVE_X11) [
  1630. fi
  1631. if [ "${HAVE_XFREE386}" = "yes" ] ; then
  1632.   ] AC_DEFINE(HAVE_XFREE386) [
  1633. fi
  1634. if [ "${HAVE_X_MENU}" = "yes" ] ; then
  1635.   ] AC_DEFINE(HAVE_X_MENU) [
  1636. fi
  1637. if [ "${GNU_MALLOC}" = "yes" ] ; then
  1638.   ] AC_DEFINE(GNU_MALLOC) [
  1639. fi
  1640. if [ "${REL_ALLOC}" = "yes" ] ; then
  1641.   ] AC_DEFINE(REL_ALLOC) [
  1642. fi
  1643. if [ "${LISP_FLOAT_TYPE}" = "yes" ] ; then
  1644.   ] AC_DEFINE(LISP_FLOAT_TYPE) [
  1645. fi
  1646.  
  1647. # ====================== Developer's configuration =======================
  1648.  
  1649. # The following assignments make sense if you're running Emacs on a single
  1650. # machine, one version at a time, and  you want changes to the lisp and etc
  1651. # directories in the source tree to show up immediately in your working
  1652. # environment.  It saves a great deal of disk space by not duplicating the
  1653. # lisp and etc directories.
  1654.  
  1655. if [ "$run_in_place" = "1" ]; then
  1656.    lispdir='${srcdir}/lisp'
  1657.    locallisppath='${srcdir}/site-lisp'
  1658.    etcdir='${srcdir}/etc'
  1659.    lockdir='${srcdir}/lock'
  1660.    # We used to make archlibdir and docdir absolute,
  1661.    # but that caused trouble with automounters.
  1662.    archlibdir='${srcdir}/lib-src'
  1663.    docdir='${srcdir}/etc'
  1664.    infodir='${srcdir}/info'
  1665. elif [ "$single_tree" = "1" ]; then
  1666.    if [ "$exec_prefix_specified" = "" ]; then
  1667.       exec_prefix='${prefix}'
  1668.    fi
  1669.    if [ "$bindir_specified" = "" ]; then
  1670.       bindir='${exec_prefix}/bin/${configuration}'
  1671.    fi
  1672.    if [ "$datadir_specified" = "" ]; then
  1673.       datadir='${prefix}/common'
  1674.    fi
  1675.    if [ "$statedir_specified" = "" ]; then
  1676.       statedir='${prefix}/common'
  1677.    fi
  1678.    if [ "$libdir_specified" = "" ]; then
  1679.       libdir='${bindir}'
  1680.    fi
  1681.    if [ "$lispdir_specified" = "" ]; then
  1682.       lispdir='${prefix}/common/lisp'
  1683.    fi
  1684.    if [ "$locallisppath_specified" = "" ]; then
  1685.       locallisppath='${prefix}/common/site-lisp'
  1686.    fi
  1687.    if [ "$lockdir_specified" = "" ]; then
  1688.       lockdir='${prefix}/common/lock'
  1689.    fi
  1690.    if [ "$archlibdir_specified" = "" ]; then
  1691.       archlibdir='${libdir}/etc'
  1692.    fi
  1693.    if [ "$etcdir_specified" = "" ]; then
  1694.       etcdir='${prefix}/common/data'
  1695.    fi
  1696.    if [ "$docdir_specified" = "" ]; then
  1697.       docdir='${prefix}/common/data'
  1698.    fi
  1699. fi
  1700.  
  1701. #### Report on what we decided to do.
  1702. echo "
  1703.  
  1704. Configured for \`${canonical}'.
  1705.  
  1706.   Where should the build process find the source code?    ${srcdir}
  1707.   What operating system and machine description files should Emacs use?
  1708.         \`${opsysfile}' and \`${machfile}'
  1709.   What compiler should emacs be built with?               ${CC} ${CFLAGS}
  1710.   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
  1711.   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
  1712.   What window system should Emacs use?                    ${window_system}
  1713.   What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
  1714.   Where do we find X Windows header files?                }${x_includes}${x_libraries+
  1715.   Where do we find X Windows libraries?                   }${x_libraries}
  1716.  
  1717. "
  1718.  
  1719. # Remove any trailing slashes in these variables.
  1720. test -n "${prefix}" &&
  1721.   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
  1722. test -n "${exec_prefix}" &&
  1723.   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
  1724. ]
  1725. AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile lwlib/Makefile src/Makefile.in, [
  1726.  
  1727. # This is an AmigaOS specific hack that lets us continue to configure with gcc
  1728. # but then compile with SAS/C ("sc").  It can be removed or suitable modified to
  1729. # be a NOP when a gcc compiled port is working.
  1730. echo "Saving generated src/config.h as src/config.h-gcc and replacing with hand modified version."
  1731. mv src/config.h src/config.h-gcc
  1732. cp -p ${top_srcdir}/src/config.h.in-sasc src/config.h
  1733.  
  1734. # Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
  1735. # after src/config.h is built, since we rely on that file.
  1736.  
  1737. changequote(,)dnl The horror, the horror.
  1738. # Now get this: Some word that is part of the ${srcdir} directory name
  1739. # or the ${configuration} value might, just might, happen to be an
  1740. # identifier like `sun4' or `i386' or something, and be predefined by
  1741. # the C preprocessor to some helpful value like 1, or maybe the empty
  1742. # string.  Needless to say consequent macro substitutions are less
  1743. # than conducive to the makefile finding the correct directory.
  1744. undefs="`echo $top_srcdir $configuration $canonical |
  1745. sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
  1746.     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
  1747. `"
  1748. changequote([,])dnl
  1749.  
  1750. echo creating lib-src/Makefile
  1751. ( cd lib-src
  1752.   rm -f junk.c junk1.c junk2.c
  1753.   sed -e '/start of cpp stuff/q' \
  1754.       < Makefile.in > junk1.c
  1755.   sed -e '1,/start of cpp stuff/d'\
  1756.       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
  1757.       < Makefile.in > junk.c
  1758.   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
  1759.       sed -e 's/^ /    /' -e '/^#/d' -e '/^[      ]*$/d' > junk2.c
  1760.   cat junk1.c junk2.c > Makefile.new
  1761.   rm -f junk.c junk1.c junk2.c
  1762.   chmod 444 Makefile.new
  1763.   mv -f Makefile.new Makefile
  1764. )
  1765.  
  1766. echo creating src/Makefile
  1767. ( cd src
  1768.   rm -f junk.c junk1.c junk2.c
  1769.   sed -e '/start of cpp stuff/q' \
  1770.       < Makefile.in > junk1.c
  1771.   sed -e '1,/start of cpp stuff/d'\
  1772.       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
  1773.       < Makefile.in > junk.c
  1774.   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
  1775.       sed -e 's/^ /    /' -e '/^#/d' -e '/^[      ]*$/d' > junk2.c
  1776.   cat junk1.c junk2.c > Makefile.new
  1777.   rm -f junk.c junk1.c junk2.c
  1778.   chmod 444 Makefile.new
  1779.   mv -f Makefile.new Makefile
  1780. )])
  1781.