]> code.delx.au - gnu-emacs/blob - configure1.in
Support *-sco3.2v4* as opsystem.
[gnu-emacs] / configure1.in
1 [
2 ### The above line is deliberately left blank. If it starts with a #,
3 ### some CSH's will think this is a csh script.
4
5 #### Configuration script for GNU Emacs
6 #### Copyright (C) 1992 Free Software Foundation, Inc.
7
8 ### This file is part of GNU Emacs.
9
10 ### GNU Emacs is free software; you can redistribute it and/or modify
11 ### it under the terms of the GNU General Public License as published by
12 ### the Free Software Foundation; either version 1, or (at your option)
13 ### any later version.
14
15 ### GNU Emacs is distributed in the hope that it will be useful,
16 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ### GNU General Public License for more details.
19
20 ### You should have received a copy of the GNU General Public License
21 ### along with GNU Emacs; see the file COPYING. If not, write to
22 ### the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
23
24
25 ### Since Emacs has configuration requirements that autoconf can't
26 ### meet, this file is an unholy marriage of custom-baked
27 ### configuration code and autoconf macros. New versions of autoconf
28 ### could very well break this arrangement.
29 ###
30 ### We omit the invocation of autoconf's initialization function,
31 ### because it produces Bourne shell code to parse arguments, but we
32 ### need to parse our own arguments.
33 ###
34 ### We use the m4 quoting characters [ ] (as established by the
35 ### autoconf system) to include large sections of raw sewage - Oops, I
36 ### mean, shell code - in the final configuration script.
37 ###
38 ### Usage: configure config_name
39 ###
40 ### If configure succeeds, it leaves its status in config.status.
41 ### If configure fails after disturbing the status quo,
42 ### config.status is removed.
43
44
45 ### Remove any more than one leading "." element from the path name.
46 ### If we don't remove them, then another "./" will be prepended to
47 ### the file name each time we use config.status, and the program name
48 ### will get larger and larger. This wouldn't be a problem, except
49 ### that since progname gets recorded in all the Makefiles this script
50 ### produces, move-if-change thinks they're different when they're
51 ### not.
52 ###
53 ### It would be nice if we could put the ./ in a \( \) group and then
54 ### apply the * operator to that, so we remove as many leading ./././'s
55 ### as are present, but some seds (like Ultrix's sed) don't allow you to
56 ### apply * to a \( \) group. Bleah.
57 progname="`echo $0 | sed 's:^\./\./:\./:'`"
58
59
60 #### Usage messages.
61
62 short_usage="Type \`${progname} --usage' for more information about options."
63
64 long_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...]
65
66 Set compilation and installation parameters for GNU Emacs, and report.
67 CONFIGURATION specifies the machine and operating system to build for.
68 For example:
69 ${progname} sparc-sun-sunos4.1
70 configures Emacs to build on a Sun Sparc machine running SunOS 4.1, and
71 ${progname} decstation
72 configures Emacs to run on a DECstation running Ultrix. See \`etc/MACHINES'.
73
74 The --with-x, --with-x11 and --with-x10 options specify what window
75 system to use; if all are omitted, use X11 if present. If you
76 don't want X, specify \`--with-x=no'.
77
78 The --x-includes=DIR option tells the build process where to search
79 for the X Windows header files. DIR should have a
80 subdirectory called \`X11' which contains \`X.h', \`Xlib.h', and
81 the rest of the header files; DIR should not contain \`X11'
82 itself. If this option is omitted, the build process assumes
83 they exist in a directory the compiler checks by default.
84
85 The --x-libraries=DIR option tells the build process where to look for
86 the X windows libraries. If this option is omitted, the build
87 process assumes they are in a directory the compiler checks by
88 default.
89
90 The --with-gcc option says that the build process should use GCC to
91 compile Emacs. If you have GCC but don't want to use it,
92 specify \`--with-gcc=no'. \`configure' tries to guess whether
93 or not you have GCC by searching your executable path, but if
94 it guesses incorrectly, you may need to use this.
95
96 The --run-in-place option sets up default values for the path
97 variables in \`./Makefile' so that Emacs will expect to find
98 its data files (lisp libraries, runnable programs, and the
99 like) in the same locations they occupy while Emacs builds.
100 This means that you don't have to install Emacs in order to
101 run it; it uses its data files as they were unpacked.
102
103 The --srcdir=DIR option specifies that the configuration and build
104 processes should look for the Emacs source code in DIR, when
105 DIR is not the current directory. This option doesn't work yet.
106
107 If successful, ${progname} leaves its status in config.status. If
108 unsuccessful after disturbing the status quo, it removes config.status."
109
110
111 #### Option processing.
112
113 ### Record all the arguments, so we can save them in config.status.
114 arguments="$@"
115
116 ### These values are used to comment and uncomment different values
117 ### for the path variables in the Makefile, to choose the installed
118 ### configuration or the run-in-place configuration.
119 rip_paths='#disabled# '
120 inst_paths=''
121
122 while [ $# != 0 ]; do
123 arg="$1"
124 case "${arg}" in
125
126 ## Anything starting with a hyphen we assume is an option.
127 -* )
128
129 ## Separate the switch name from the value it's being given.
130 case "${arg}" in
131 -*=*)
132 opt=`echo ${arg} | sed 's:^-*\([^=]*\)=.*$:\1:'`
133 val=`echo ${arg} | sed 's:^-*[^=]*=\(.*\)$:\1:'`
134 valomitted=no
135 ;;
136 -*)
137 ## If FOO is a boolean argument, --FOO is equivalent to
138 ## --FOO=yes. Otherwise, the value comes from the next
139 ## argument - see below.
140 opt=`echo ${arg} | sed 's:^-*\(.*\)$:\1:'`
141 val="yes"
142 valomitted=yes
143 ;;
144 esac
145
146 ## Change `-' in the option name to `_'.
147 optname="${opt}"
148 opt="`echo ${opt} | tr - _`"
149
150 ## Process the option.
151 case "${opt}" in
152
153 ## Has the user specified which window systems they want to support?
154 "with_x" | "with_x11" | "with_x10" )
155 ## Make sure the value given was either "yes" or "no".
156 case "${val}" in
157 y | ye | yes ) val=yes ;;
158 n | no ) val=no ;;
159 * )
160 (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
161 Set it to either \`yes' or \`no'."
162 echo "${short_usage}") >&2
163 exit 1
164 ;;
165 esac
166 eval "${opt}=\"${val}\""
167 ;;
168
169 ## Has the user specified whether or not they want GCC?
170 "with_gcc" )
171 ## Make sure the value given was either "yes" or "no".
172 case "${val}" in
173 y | ye | yes ) val=yes ;;
174 n | no ) val=no ;;
175 * )
176 (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
177 Set it to either \`yes' or \`no'."
178 echo "${short_usage}") >&2
179 exit 1
180 ;;
181 esac
182 eval "${opt}=\"${val}\""
183 ;;
184
185 ## Has the user specified a source directory?
186 "srcdir" )
187 ## If the value was omitted, get it from the next argument.
188 if [ "${valomitted}" = "yes" ]; then
189 ## Get the next argument from the argument list, if there is one.
190 if [ $# = 1 ]; then
191 (echo "${progname}: You must give a value for the \`--${optname}' option, as in
192 \`--${optname}=FOO'."
193 echo "${short_usage}") >&2
194 exit 1
195 fi
196 shift; val="$1"
197 fi
198 srcdir="${val}"
199
200 echo "${progname}: Beware - the \`--srcdir' option doesn't work yet." >&2
201 ;;
202
203 ## Has the user tried to tell us where the X files are?
204 ## I think these are dopey, but no less than three alpha
205 ## testers, at large sites, have said they have their X files
206 ## installed in odd places.
207 "x_includes" )
208 ## If the value was omitted, get it from the next argument.
209 if [ "${valomitted}" = "yes" ]; then
210 ## Get the next argument from the argument list, if there is one.
211 if [ $# = 1 ]; then
212 (echo "${progname}: You must give a value for the \`--${optname}' option, as in
213 \`--${optname}=FOO'."
214 echo "${short_usage}") >&2
215 exit 1
216 fi
217 shift; val="$1"
218 fi
219 x_includes="${val}"
220 C_SWITCH_X_SITE="-I${x_includes}"
221 ;;
222 "x_libraries" )
223 ## If the value was omitted, get it from the next argument.
224 if [ "${valomitted}" = "yes" ]; then
225 ## Get the next argument from the argument list, if there is one.
226 if [ $# = 1 ]; then
227 (echo "${progname}: You must give a value for the \`--${optname}' option, as in
228 \`--${optname}=FOO'."
229 echo "${short_usage}") >&2
230 exit 1
231 fi
232 shift; val="$1"
233 fi
234 x_libraries="${val}"
235 LD_SWITCH_X_SITE="-L${x_libraries}"
236 ;;
237
238 ## Should this use the "development configuration"?
239 "run_in_place" )
240 rip_paths=''
241 inst_paths='#disabled# '
242 ;;
243
244 ## Has the user asked for some help?
245 "usage" | "help" )
246 echo "${long_usage}" | more
247 exit
248 ;;
249
250 ## We ignore all other options silently.
251 esac
252 ;;
253
254 ## Anything not starting with a hyphen we assume is a
255 ## configuration name.
256 *)
257 configuration=${arg}
258 ;;
259
260 esac
261 shift
262 done
263
264 if [ "${configuration}" = "" ]; then
265 (echo "${progname}: You must specify a configuration name as an argument."
266 echo "${short_usage}") >&2
267 exit 1
268 fi
269
270
271 #### Decide where the source is.
272 case "${srcdir}" in
273
274 ## If it's not specified, see if `.' or `..' might work.
275 "" )
276 if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
277 srcdir=`pwd`
278 else
279 if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
280 srcdir=`(cd .. ; pwd)`
281 else
282 (echo "\
283 ${progname}: Neither the current directory nor its parent seem to
284 contain the Emacs sources. If you do not want to build Emacs in its
285 source tree, you should run \`${progname}' in the directory in which
286 you wish to build Emacs, using its \`--srcdir' option to say where the
287 sources may be found."
288 echo "${short_usage}") >&2
289 exit 1
290 fi
291 fi
292 ;;
293
294 ## Otherwise, check if the directory they specified is okay.
295 * )
296 if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then
297 (echo "\
298 ${progname}: The directory specified with the \`--srcdir' option,
299 \`${srcdir}', doesn't seem to contain the Emacs sources. You should
300 either run the \`${progname}' script at the top of the Emacs source
301 tree, or use the \`--srcdir' option to specify where the Emacs sources
302 are."
303 echo "${short_usage}") >&2
304 exit 1
305 fi
306 ;;
307
308 esac
309
310 ### Make the necessary directories, if they don't exist.
311 if [ ! -d ./src ]; then
312 mkdir ./src
313 fi
314 if [ ! -d ./lib-src ]; then
315 mkdir ./lib-src
316 fi
317 if [ ! -d ./cpp ]; then
318 mkdir ./cpp
319 fi
320 if [ ! -d ./oldXMenu ]; then
321 mkdir ./oldXMenu
322 fi
323
324
325 #### Given the configuration name, set machfile and opsysfile to the
326 #### names of the m/*.h and s/*.h files we should use.
327
328 ### Canonicalize the configuration name.
329 echo "Checking the configuration name."
330 if configuration=`${srcdir}/config.sub "${configuration}"` ; then : ; else
331 exit $?
332 fi
333
334 ### If you add support for a new configuration, add code to this
335 ### switch statement to recognize your configuration name and select
336 ### the appropriate operating system and machine description files.
337
338 ### You would hope that you could choose an m/*.h file pretty much
339 ### based on the machine portion of the configuration name, and an s-
340 ### file based on the operating system portion. However, it turns out
341 ### that each m/*.h file is pretty manufacturer-specific - for
342 ### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
343 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
344 ### machines. So we basically have to have a special case for each
345 ### configuration name.
346 ###
347 ### As far as handling version numbers on operating systems is
348 ### concerned, make sure things will fail in a fixable way. If
349 ### /etc/MACHINES doesn't say anything about version numbers, be
350 ### prepared to handle anything reasonably. If version numbers
351 ### matter, be sure /etc/MACHINES says something about it.
352 ###
353 ### Eric Raymond says we should accept strings like "sysvr4" to mean
354 ### "System V Release 4"; he writes, "The old convention encouraged
355 ### confusion between `system' and `release' levels'."
356
357 machine='' opsys='' unported='false'
358 case "${configuration}" in
359
360 ## Alliant machines
361 ## Strictly speaking, we need the version of the alliant operating
362 ## system to choose the right machine file, but currently the
363 ## configuration name doesn't tell us enough to choose the right
364 ## one; we need to give alliants their own operating system name to
365 ## do this right. When someone cares, they can help us.
366 fx80-alliant-* )
367 machine=alliant4 opsys=bsd4-2
368 ;;
369 i860-alliant-* )
370 machine=alliant-2800 opsys=bsd4-3
371 ;;
372
373 ## Altos 3068
374 m68*-altos-sysv* )
375 machine=altos opsys=usg5-2
376 ;;
377
378 ## Amdahl UTS
379 580-amdahl-sysv* )
380 machine=amdahl opsys=usg5-2-2
381 ;;
382
383 ## Appallings - I mean, Apollos - running Domain
384 m68*-apollo* )
385 machine=apollo opsysfile=bsd4-2.h
386 ;;
387
388 ## AT&T 3b2, 3b5, 3b15, 3b20
389 we32k-att-sysv* )
390 machine=att3b opsys=usg5-2-2
391 ;;
392
393 ## AT&T 3b1 - The Mighty Unix PC!
394 m68*-att-sysv* )
395 machine=7300 opsys=usg5-2-2
396 ;;
397
398 ## Bull sps7
399 m68*-bull-sysv* )
400 machine=sps7 opsys=usg5-2
401 ;;
402
403 ## CCI 5/32, 6/32 -- see "Tahoe".
404
405 ## Celerity
406 ## I don't know what configuration name to use for this; config.sub
407 ## doesn't seem to know anything about it. Hey, Celerity users, get
408 ## in touch with us!
409 celerity-celerity-bsd* )
410 machine=celerity opsys=bsd4-2
411 ;;
412
413 ## Clipper
414 ## What operating systems does this chip run that Emacs has been
415 ## tested on?
416 clipper-* )
417 machine=clipper
418 ## We'll use the catch-all code at the bottom to guess the
419 ## operating system.
420 ;;
421
422 ## Convex
423 *-convex-bsd* )
424 machine=convex opsys=bsd4-3
425 ;;
426
427 ## Cubix QBx/386
428 i386-cubix-sysv* )
429 machine=intel386 opsys=usg5-3
430 ;;
431
432 ## Cydra 5
433 cydra*-cydrome-sysv* )
434 machine=cydra5 opsys=usg5-3
435 ;;
436
437 ## DECstations
438 mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 )
439 machine=pmax opsys=bsd4-2
440 ;;
441 mips-dec-ultrix* | mips-dec-bsd* )
442 machine=pmax opsys=bsd4-3
443 ;;
444 mips-dec-osf* )
445 machine=pmax opsys=osf1
446 ;;
447
448 ## Motorola Delta machines
449 m68*-motorola-sysv* )
450 machine=delta opsys=usg5-3
451 ;;
452 m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
453 machine=delta88k opsys=usg5-3
454 ;;
455
456 ## Dual machines
457 m68*-dual-sysv* )
458 machine=dual opsys=usg5-2
459 ;;
460 m68*-dual-uniplus* )
461 machine=dual opsys=unipl5-2
462 ;;
463
464 ## Elxsi 6400
465 elxsi-elxsi-sysv* )
466 machine=elxsi opsys=usg5-2
467 ;;
468
469 ## Encore machines
470 ns16k-encore-bsd* )
471 machine=ns16000 opsys=umax
472 ;;
473
474 ## The GEC 93 - apparently, this port isn't really finished yet.
475
476 ## Gould Power Node and NP1
477 pn-gould-bsd4.2 )
478 machine=gould opsys=bsd4-2
479 ;;
480 pn-gould-bsd4.3 )
481 machine=gould opsys=bsd4-3
482 ;;
483 np1-gould-bsd* )
484 machine=gould-np1 opsys=bsd4-3
485 ;;
486
487 ## Honeywell XPS100
488 xps*-honeywell-sysv* )
489 machine=xps100 opsys=usg5-2
490 ;;
491
492 ## HP 9000 series 200 or 300
493 m68*-hp-bsd* )
494 machine=hp9000s300 opsys=bsd4-3
495 ;;
496 ## HP/UX 8 doesn't run on these machines, so use HP/UX 7.
497 m68*-hp-hpux* )
498 machine=hp9000s300 opsys=hpux
499 ;;
500
501 ## HP 9000 series 800, running HP/UX
502 hppa1.0-hp-hpux* )
503 machine=hp9000s800 opsys=hpux
504 ;;
505
506 ## Orion machines
507 orion-orion-bsd* )
508 machine=orion opsys=bsd4-2
509 ;;
510 clipper-orion-bsd* )
511 machine=orion105 opsys=bsd4-2
512 ;;
513
514 ## IBM machines
515 i386-ibm-aix1.1 )
516 machine=ibmps2-aix opsys=usg5-2-2
517 ;;
518 i386-ibm-aix1.2 )
519 machine=ibmps2-aix opsys=usg5-3
520 ;;
521 rs6000-ibm-aix3.1 )
522 machine=ibmrs6000 opsys=aix3-1
523 ;;
524 rs6000-ibm-aix3.2 | rs6000-ibm-aix* )
525 machine=ibmrs6000 opsys=aix3-2
526 ;;
527 romp-ibm-bsd* )
528 machine=ibmrt opsys=bsd4-2
529 ;;
530 romp-ibm-aix* )
531 machine=ibmrt-aix opsys=usg5-2-2
532 ;;
533
534 ## Integrated Solutions `Optimum V'
535 m68*-isi-bsd4.2 )
536 machine=isi-ov opsys=bsd4-2
537 ;;
538 m68*-isi-bsd4.3 )
539 machine=isi-ov opsys=bsd4-3
540 ;;
541
542 ## Intel 386 machines where we do care about the manufacturer
543 i[34]86-intsys-sysv* )
544 machine=is386 opsys=usg5-2-2
545 ;;
546 ## Intel 386 machines where we don't care about the manufacturer
547 i[34]86-* )
548 machine=intel386
549 case "${configuration}" in
550 *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
551 *-isc2.2 ) opsys=isc2-2 ;;
552 *-isc* ) opsys=isc3-0 ;;
553 *-esix* ) opsys=esix ;;
554 *-xenix* ) opsys=xenix ;;
555 *-sco3.2v4* ) opsys=sco4 ;;
556 ## Otherwise, we'll fall through to the generic opsys code at the bottom.
557 esac
558 ;;
559
560 ## Silicon Graphics machines
561 ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
562 m68*-sgi-iris3.5 )
563 machine=irist opsys=iris3-5
564 ;;
565 m68*-sgi-iris3.6 | m68*-sgi-iris*)
566 machine=irist opsys=iris3-6
567 ;;
568 ## Iris 4D
569 mips-sgi-irix3.* )
570 machine=iris4d opsys=irix3-3
571 ;;
572 mips-sgi-irix4.* | mips-sgi-irix* )
573 machine=iris4d opsys=irix4-0
574 ;;
575
576 ## Masscomp machines
577 m68*-masscomp-rtu )
578 machine=masscomp opsys=rtu
579 ;;
580
581 ## Megatest machines
582 m68*-megatest-bsd* )
583 machine=mega68 opsys=bsd4-2
584 ;;
585
586 ## Workstations sold by MIPS
587 ## This is not necessarily all workstations using the MIPS processor -
588 ## Irises are produced by SGI, and DECstations by DEC.
589
590 ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
591 ## and usg5-2-2 and bsd4-3 as possible OS files. The only guidance
592 ## it gives for choosing between the alternatives seems to be "Use
593 ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
594 ## the BSD world." I'll assume that these are instructions for
595 ## handling two odd situations, and that every other situation
596 ## should use mips.h and usg5-2-2, they being listed first.
597 mips-mips-riscos4* )
598 machine=mips4 opsys=usg5-2-2
599 ;;
600 mips-mips-bsd* )
601 machine=mips opsys=bsd4-3
602 ;;
603 mips-mips-* )
604 machine=mips opsys=usg5-2-2
605 ;;
606
607 ## NeXT
608 m68*-next-mach* | m68*-next-bsd* )
609 machine=next opsys=mach2
610 ;;
611
612 ## The complete machine from National Semiconductor
613 ns32k-ns-genix* )
614 machine=ns32000 opsys=usg5-2
615 ;;
616
617 ## NCR machines
618 m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
619 machine=tower32 opsys=usg5-2-2
620 ;;
621 m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
622 machine=tower32v3 opsys=usg5-3
623 ;;
624
625 ## Nixdorf Targon 31
626 m68*-nixdorf-sysv* )
627 machine=targon31 opsys=usg5-2-2
628 ;;
629
630 ## Nu (TI or LMI)
631 m68*-nu-sysv* )
632 machine=nu opsys=usg5-2
633 ;;
634
635 ## Plexus
636 m68*-plexus-sysv* )
637 machine=plexus opsys=usg5-2
638 ;;
639
640 ## Prime EXL
641 i386-prime-sysv* )
642 machine=i386 opsys=usg5-3
643 ;;
644
645 ## Pyramid machines
646 ## I don't really have any idea what sort of processor the Pyramid has,
647 ## so I'm assuming it is its own architecture.
648 pyramid-pyramid-bsd* )
649 machine=pyramid opsys=bsd4-2
650 ;;
651
652 ## Sequent Balance
653 ns32k-sequent-bsd4.2 )
654 machine=sequent opsys=bsd4-2
655 ;;
656 ns32k-sequent-bsd4.3 )
657 machine=sequent opsys=bsd4-3
658 ;;
659 ## Sequent Symmetry
660 i386-sequent-bsd* )
661 machine=symmetry opsys=bsd4-3
662 ;;
663
664 ## SONY machines
665 m68*-sony-bsd4.2 )
666 machine=news opsys=bsd4-2
667 ;;
668 m68*-sony-bsd4.3 )
669 machine=news opsys=bsd4-3
670 ;;
671 mips-sony-bsd* )
672 machine=news-risc opsys=bsd4-3
673 ;;
674
675 ## Stride
676 m68*-stride-sysv* )
677 machine=stride opsys=usg5-2
678 ;;
679
680 ## Suns
681 *-sun-sunos* | *-sun-bsd* )
682 case "${configuration}" in
683 m68*-sunos1* ) machine=sun1 ;;
684 m68*-sunos2* ) machine=sun2 ;;
685 m68* ) machine=sun3 ;;
686 i[34]86* ) machine=sun386 ;;
687 sparc* ) machine=sparc ;;
688 * ) unported=true ;;
689 esac
690 case "${configuration}" in
691 *-sunos4.0* ) opsys=sunos4-0 ;;
692 *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
693 * ) opsys=bsd4-2 ;;
694 esac
695 ;;
696
697 ## Tadpole 68k
698 m68*-tadpole-sysv* )
699 machine=tad68k opsys=usg5-3
700 ;;
701
702 ## Tahoe machines
703 tahoe-tahoe-bsd4.2 )
704 machine=tahoe opsys=bsd4-2
705 ;;
706 tahoe-tahoe-bsd4.3 )
707 machine=tahoe opsys=bsd4-3
708 ;;
709
710 ## Tandem Integrity S2
711 mips-tandem-sysv* )
712 machine=tandem-s2 opsys=usg5-3
713 ;;
714
715 ## Tektronix 16000 box (6130?)
716 ns16k-tektronix-bsd* )
717 machine=ns16000 opsys=bsd4-2
718 ;;
719 ## Tektronix 4300
720 ## src/m/tek4300.h hints that this is a m68k machine.
721 m68*-tektronix-bsd* )
722 machine=tex4300 opsys=bsd4-3
723 ;;
724
725 ## Titan P2 or P3
726 ## We seem to have lost the machine-description file titan.h!
727 titan-titan-sysv* )
728 machine=titan opsys=usg5-3
729 ;;
730
731 ## Ustation E30 (SS5E)
732 m68*-unisys-uniplus* )
733 machine=ustation opsystem=unipl5-2
734 ;;
735
736 ## Vaxen.
737 vax-dec-* )
738 machine=vax
739 case "${configuration}" in
740 *-bsd4.1 ) opsys=bsd4-1 ;;
741 *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 ) opsys=bsd4-2 ;;
742 *-bsd4.3 | *-ultrix* ) opsys=bsd4-3 ;;
743 *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;;
744 *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;;
745 *-vms* ) opsys=vms ;;
746 * ) unported=true
747 esac
748 ;;
749
750 ## Whitechapel MG1
751 ns16k-whitechapel-* )
752 machine=mg1
753 ## We don't know what sort of OS runs on these; we'll let the
754 ## operating system guessing code below try.
755 ;;
756
757 ## Wicat
758 m68*-wicat-sysv* )
759 machine=wicat opsys=usg5-2
760 ;;
761
762 * )
763 unported=true
764 ;;
765 esac
766
767 ### If the code above didn't choose an operating system, just choose
768 ### an operating system based on the configuration name. You really
769 ### only want to use this when you have no idea what the right
770 ### operating system is; if you know what operating systems a machine
771 ### runs, it's cleaner to make it explicit in the case statement
772 ### above.
773 if [ ! "${opsys}" ]; then
774 case "${configuration}" in
775 *-bsd4.[01] ) opsys=bsd4-1 ;;
776 *-bsd4.2 ) opsys=bsd4-2 ;;
777 *-bsd4.3 ) opsys=bsd4-3 ;;
778 *-sysv0 | *-sysvr0 ) opsys=usg5-0 ;;
779 *-sysv2 | *-sysvr2 ) opsys=usg5-2 ;;
780 *-sysv2.2 | *-sysvr2.2 ) opsys=usg5-2-2 ;;
781 *-sysv3 | *-sysvr3 ) opsys=usg5-3 ;;
782 *-sysv4 | *-sysvr4 ) opsys=usg5-4 ;;
783 * )
784 unported=true
785 ;;
786 esac
787 fi
788
789 if $unported ; then
790 (echo "${progname}: Emacs hasn't been ported to \`${configuration}' systems."
791 echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
792 ) >&2
793 exit 1
794 fi
795
796 machfile="m/${machine}.h"
797 opsysfile="s/${opsys}.h"
798
799 ]
800 AC_PREPARE(lisp)
801 [
802
803 #### Choose a compiler.
804 DEFS=-g
805 case ${with_gcc} in
806 "yes" ) CC="gcc" GCC=1 ;;
807 "no" ) CC="cc" ;;
808 * )
809 ]
810 AC_PROG_CC
811 [
812 esac
813
814 if [ "${GCC}" != "" ]; then
815 DEFS="${DEFS} -O"
816 fi
817
818 #### Some other nice autoconf tests.
819 ]
820 AC_PROG_CPP
821 AC_HAVE_HEADERS(sys/timeb.h sys/time.h)
822 AC_RETSIGTYPE
823 AC_ALLOCA
824 AC_HAVE_FUNCS(gettimeofday gethostname dup2)
825 AC_STRUCT_TM
826 AC_CONST
827 [
828
829
830 #### Choose a window system.
831 echo "Checking window system."
832
833 window_system=''
834 case "${with_x}" in
835 yes )
836 window_system=${window_system}x11
837 ;;
838 no )
839 window_system=${window_system}none
840 esac
841 case "${with_x11}" in
842 yes )
843 window_system=${window_system}x11
844 ;;
845 esac
846 case "${with_x10}" in
847 yes )
848 window_system=${window_system}x10
849 ;;
850 esac
851
852 case "${window_system}" in
853 "none" | "x11" | "x10" ) ;;
854 "" )
855 echo " No window system specifed. Looking for X Windows."
856 window_system=none
857 if [ -r /usr/lib/libX11.a \
858 -o -d /usr/include/X11 \
859 -o -d /usr/X386/include \
860 -o -d ${x_includes}/X11 ]; then
861 window_system=x11
862 fi
863 ;;
864 * )
865 echo "Don\'t specify the window system more than once." >&2
866 exit 1
867 ;;
868 esac
869
870 case "${window_system}" in
871 x11 )
872 HAVE_X_WINDOWS=yes
873 HAVE_X11=yes
874 echo " Using X11."
875 ;;
876 x10 )
877 HAVE_X_WINDOWS=yes
878 HAVE_X11=no
879 echo " Using X10."
880 ;;
881 none )
882 HAVE_X_WINDOWS=no
883 HAVE_X11=no
884 echo " Using no window system."
885 ;;
886 esac
887
888 ### If we're using X11, we should use the X menu package.
889 HAVE_X_MENU=no
890 case ${HAVE_X11} in
891 yes )
892 HAVE_X_MENU=yes
893 ;;
894 esac
895
896 ### Check for XFree386. It needs special hacks.
897 lib_havexbsd=no
898 ]
899 AC_HAVE_LIBRARY( Xbsd , have_libxbsd=yes , have_libxbsd=no )
900 [
901 if [ -n "${x_libraries}" ] && [ -f ${x_libraries}/libXbsd.a ]; then
902 have_libxbsd=yes
903 fi
904
905 case ${window_system} in
906 x11 )
907 if [ -d /usr/X386/include ] && [ "${have_libxbsd}" = "yes" ]; then
908 HAVE_XFREE386=yes
909 if [ "${C_SWITCH_X_SITE}" = "" ]; then
910 C_SWITCH_X_SITE="-I/usr/X386/include"
911 fi
912 fi
913 ;;
914 esac
915
916 #### Extract some information from the operating system and machine files.
917
918 echo "Examining the machine- and system-dependent files to find out"
919 echo " - which libraries the lib-src programs will want, and"
920 echo " - whether the GNU malloc routines are usable."
921
922 ### It's not important that this name contain the PID; you can't run
923 ### two configures in the same directory and have anything work
924 ### anyway.
925 tempcname="conftest.c"
926
927 echo '
928 #include "'${srcdir}'/src/'${opsysfile}'"
929 #include "'${srcdir}'/src/'${machfile}'"
930 #ifndef LIBS_MACHINE
931 #define LIBS_MACHINE
932 #endif
933 #ifndef LIBS_SYSTEM
934 #define LIBS_SYSTEM
935 #endif
936 #ifndef C_SWITCH_SYSTEM
937 #define C_SWITCH_SYSTEM
938 #endif
939 @configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
940 @configure@ c_switch_system=C_SWITCH_SYSTEM
941 #ifdef SYSTEM_MALLOC
942 @configure@ system_malloc=yes
943 #else
944 @configure@ system_malloc=no
945 #endif
946 ' > ${tempcname}
947 # The value of CPP is a quoted variable reference, so we need to do this
948 # to get its actual value...
949 foo=`eval "echo $CPP"`
950 eval `${foo} ${tempcname} \
951 | grep '@configure@' \
952 | sed -e 's/^@configure@ \([^=]*=\)\(.*\)$/\1"\2"/'`
953 rm ${tempcname}
954
955
956 # Do the opsystem or machine files prohibit the use of the GNU malloc?
957 # Assume not, until told otherwise.
958 GNU_MALLOC=yes
959 if [ "${system_malloc}" = "yes" ]; then
960 GNU_MALLOC=no
961 GNU_MALLOC_reason="
962 (The GNU allocators don't work with this system configuration.)"
963 fi
964
965 if [ ! "${REL_ALLOC}" ]; then
966 REL_ALLOC=${GNU_MALLOC}
967 fi
968
969 LISP_FLOAT_TYPE=yes
970
971
972 #### Find out which version of Emacs this is.
973 version=`grep 'defconst[ ]*emacs-version' ${srcdir}/lisp/version.el \
974 | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'`
975 if [ ! "${version}" ]; then
976 echo "${progname}: can't find current emacs version in
977 \`${srcdir}/lisp/version.el'." >&2
978 exit 1
979 fi
980
981
982 #### Specify what sort of things we'll be editing into our Makefiles.
983 ]
984 AC_SUBST(configuration)
985 AC_SUBST(version)
986 AC_SUBST(srcdir)
987 AC_SUBST(c_switch_system)
988 AC_SUBST(libsrc_libs)
989 AC_SUBST(machfile)
990 AC_SUBST(opsysfile)
991 AC_SUBST(rip_paths)
992 AC_SUBST(inst_paths)
993 AC_SUBST(LD_SWITCH_X_SITE)
994 AC_SUBST(C_SWITCH_X_SITE)
995 [
996 if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then
997 ] AC_DEFINE(HAVE_X_WINDOWS) [
998 fi
999 if [ "${HAVE_X11}" = "yes" ] ; then
1000 ] AC_DEFINE(HAVE_X11) [
1001 fi
1002 if [ "${HAVE_XFREE386}" = "yes" ] ; then
1003 ] AC_DEFINE(HAVE_XFREE386) [
1004 fi
1005 if [ "${HAVE_X_MENU}" = "yes" ] ; then
1006 ] AC_DEFINE(HAVE_X_MENU) [
1007 fi
1008 if [ "${GNU_MALLOC}" = "yes" ] ; then
1009 ] AC_DEFINE(GNU_MALLOC) [
1010 fi
1011 if [ "${REL_ALLOC}" = "yes" ] ; then
1012 ] AC_DEFINE(REL_ALLOC) [
1013 fi
1014 if [ "${LISP_FLOAT_TYPE}" = "yes" ] ; then
1015 ] AC_DEFINE(LISP_FLOAT_TYPE) [
1016 fi
1017
1018
1019 #### Report on what we decided to do.
1020 echo "
1021
1022 Configured for \`${configuration}'.
1023
1024 What operating system and machine description files should Emacs use?
1025 \`${opsysfile}' and \`${machfile}'
1026 What compiler should emacs be built with? ${CC} -g
1027 Should Emacs use the GNU version of malloc? ${GNU_MALLOC}${GNU_MALLOC_reason}
1028 Should Emacs use the relocating allocator for buffers? ${REL_ALLOC}
1029 What window system should Emacs use? ${window_system}${x_includes+
1030 Where do we find X Windows header files? }${x_includes}${x_libraries+
1031 Where do we find X Windows libraries? }${x_libraries}
1032
1033 "
1034
1035 ### Restore the arguments to this script, so autoconf can record them
1036 ### in the config.status file.
1037 set - ${arguments}
1038 ]
1039 AC_OUTPUT(Makefile src/config.h)
1040 [
1041
1042 ### Autoconf likes to add a Makefile comment to the top of
1043 ### src/config.h. Do you have a better idea?
1044 (cd src
1045 sed < config.h > conftemp.$$ '1d'
1046 mv conftemp.$$ config.h)
1047
1048 ]