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