configure1.in 31.3 KB
Newer Older
1
dnl This is an autoconf script.
2 3 4 5 6 7 8
dnl To rebuild the `configure' script from this, execute the command
dnl 	autoconf
dnl in the directory containing this script.  You must have autoconf
dnl version 1.4 or later.
dnl
dnl The following text appears in the resulting `configure' script,
dnl explaining how to rebuild it.
9
[#!/bin/sh
10 11 12
#### Configuration script for GNU Emacs
#### Copyright (C) 1992 Free Software Foundation, Inc.

13 14 15 16 17 18 19
### Don't edit this script!
### This script was automatically generated by the `autoconf' program
### from the file `./configure.in'.
### To rebuild it, execute the command
###	autoconf
### in the this directory.  You must have autoconf version 1.4 or later.

20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
### This file is part of GNU Emacs.

### GNU Emacs is free software; you can redistribute it and/or modify
### it under the terms of the GNU General Public License as published by
### the Free Software Foundation; either version 1, or (at your option)
### any later version.

### GNU Emacs is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
### GNU General Public License for more details.

### You should have received a copy of the GNU General Public License
### along with GNU Emacs; see the file COPYING.  If not, write to
### the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

36 37 38

### Since Emacs has configuration requirements that autoconf can't
### meet, this file is an unholy marriage of custom-baked
Jim Blandy's avatar
Jim Blandy committed
39
### configuration code and autoconf macros.
40 41 42 43
###
### We use the m4 quoting characters [ ] (as established by the
### autoconf system) to include large sections of raw sewage - Oops, I
### mean, shell code - in the final configuration script.
44 45 46 47 48 49 50 51
###
### Usage: configure config_name
###
### If configure succeeds, it leaves its status in config.status.
### If configure fails after disturbing the status quo,
### 	config.status is removed.


52 53 54 55 56 57 58
### Remove any more than one leading "." element from the path name.
### If we don't remove them, then another "./" will be prepended to
### the file name each time we use config.status, and the program name
### will get larger and larger.  This wouldn't be a problem, except
### that since progname gets recorded in all the Makefiles this script
### produces, move-if-change thinks they're different when they're
### not.
59 60 61 62 63
###
### It would be nice if we could put the ./ in a \( \) group and then
### apply the * operator to that, so we remove as many leading ./././'s
### as are present, but some seds (like Ultrix's sed) don't allow you to
### apply * to a \( \) group.  Bleah.
64
progname="`echo $0 | sed 's:^\./\./:\./:'`"
Jim Blandy's avatar
Jim Blandy committed
65 66


67 68
#### Usage messages.

69
short_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...]
70

Jim Blandy's avatar
Jim Blandy committed
71
Set compilation and installation parameters for GNU Emacs, and report.
72
CONFIGURATION specifies the machine and operating system to build for.
73
--with-x		Support the X Window System.
74 75 76
--with-x=no		Don't support X.
--x-includes=DIR 	Search for X header files in DIR.
--x-libraries=DIR	Search for X libraries in DIR.
77 78 79 80 81 82
--with-gcc		Use GCC to compile Emacs.
--with-gcc=no		Don't use GCC to compile Emacs.
--run-in-place		Use libraries and data files directly out of the 
			source tree.
--srcdir=DIR		Look for source in DIR.
--prefix=DIR		Install files below dir.
83

Jim Blandy's avatar
Jim Blandy committed
84
If successful, ${progname} leaves its status in config.status.  If
85 86 87 88
unsuccessful after disturbing the status quo, it removes config.status."


#### Option processing.
Jim Blandy's avatar
Jim Blandy committed
89

90
### Record all the arguments, so we can save them in config.status.
91
arguments="$@"
Jim Blandy's avatar
Jim Blandy committed
92

93 94 95 96 97 98
### These values are used to comment and uncomment different values
### for the path variables in the Makefile, to choose the installed
### configuration or the run-in-place configuration.
rip_paths='#disabled# '
inst_paths=''

99 100
### Establish some default values.
prefix='/usr/local'
101
exec_prefix='${prefix}'
102

103 104 105 106 107 108 109
### Don't use shift -- that destroys the argument list, which autoconf needs
### to produce config.status.  It turns out that "set - ${arguments}" doesn't
### work portably.
index=0
while [ $index -lt $# ]; do
  index=`expr $index + 1`
  arg=`eval echo '$'$index`
Jim Blandy's avatar
Jim Blandy committed
110
  case "${arg}" in
111 112 113 114 115

    ## Anything starting with a hyphen we assume is an option.
    -* )

      ## Separate the switch name from the value it's being given.
Jim Blandy's avatar
Jim Blandy committed
116
      case "${arg}" in
Richard M. Stallman's avatar
Richard M. Stallman committed
117
        -*=*)
118
	  opt=`echo ${arg} | sed 's:^-*\([^=]*\)=.*$:\1:'`
Richard M. Stallman's avatar
Richard M. Stallman committed
119
	  val=`echo ${arg} | sed 's:^-*[^=]*=\(.*\)$:\1:'`
Jim Blandy's avatar
Jim Blandy committed
120 121
	  valomitted=no
	;;
Richard M. Stallman's avatar
Richard M. Stallman committed
122
        -*)
123 124 125
          ## If FOO is a boolean argument, --FOO is equivalent to
          ## --FOO=yes.  Otherwise, the value comes from the next
          ## argument - see below.
126
	  opt=`echo ${arg} | sed 's:^-*\(.*\)$:\1:'`
Jim Blandy's avatar
Jim Blandy committed
127 128 129 130 131
          val="yes"
          valomitted=yes
        ;;
      esac

132
      ## Change `-' in the option name to `_'.
Jim Blandy's avatar
Jim Blandy committed
133
      optname="${opt}"
134 135
      opt="`echo ${opt} | tr - _`"

136 137
      ## Process the option.
      case "${opt}" in
Jim Blandy's avatar
Jim Blandy committed
138

139 140 141
        ## Has the user specified which window systems they want to support?
        "with_x" | "with_x11" | "with_x10" )
	  ## Make sure the value given was either "yes" or "no".
Jim Blandy's avatar
Jim Blandy committed
142 143 144 145
	  case "${val}" in
	    y | ye | yes )	val=yes ;;
	    n | no )		val=no  ;;
	    * )
Jim Blandy's avatar
Jim Blandy committed
146
	      (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
147 148
Set it to either \`yes' or \`no'."
	       echo "${short_usage}") >&2
Jim Blandy's avatar
Jim Blandy committed
149 150 151
	      exit 1
	    ;;
	  esac
152
          eval "${opt}=\"${val}\""
Jim Blandy's avatar
Jim Blandy committed
153
        ;;
154

155
	## Has the user specified whether or not they want GCC?
156
	"with_gcc" | "with_gnu_cc" )
157 158 159 160 161
	  ## Make sure the value given was either "yes" or "no".
	  case "${val}" in
	    y | ye | yes )	val=yes ;;
	    n | no )		val=no  ;;
	    * )
Jim Blandy's avatar
Jim Blandy committed
162
	      (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
163 164 165 166 167 168 169 170
Set it to either \`yes' or \`no'."
	       echo "${short_usage}") >&2
	      exit 1
	    ;;
	  esac
          eval "${opt}=\"${val}\""
        ;;

171 172 173
        ## Has the user specified a source directory?
	"srcdir" )
	  ## If the value was omitted, get it from the next argument.
Jim Blandy's avatar
Jim Blandy committed
174
	  if [ "${valomitted}" = "yes" ]; then
175
	    ## Get the next argument from the argument list, if there is one.
176
            if [ $index = $# ]; then
Jim Blandy's avatar
Jim Blandy committed
177 178
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=FOO'."
179
	       echo "${short_usage}") >&2
Jim Blandy's avatar
Jim Blandy committed
180 181
	      exit 1
	    fi
182 183
            index=`expr $index + 1`
            val=`eval echo '$'$index`
Jim Blandy's avatar
Jim Blandy committed
184
	  fi
185 186 187
          srcdir="${val}"
	;;

188 189 190 191
	## Has the user tried to tell us where the X files are?
	## I think these are dopey, but no less than three alpha
	## testers, at large sites, have said they have their X files
	## installed in odd places.
Jim Blandy's avatar
Jim Blandy committed
192
	"x_includes" )
193 194 195
	  ## If the value was omitted, get it from the next argument.
	  if [ "${valomitted}" = "yes" ]; then
	    ## Get the next argument from the argument list, if there is one.
196
            if [ $index = $# ]; then
Jim Blandy's avatar
Jim Blandy committed
197 198
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=FOO'."
199 200 201
	       echo "${short_usage}") >&2
	      exit 1
	    fi
202 203
            index=`expr $index + 1`
            val=`eval echo '$'$index`
204 205
	  fi
	  x_includes="${val}"
206
	  C_SWITCH_X_SITE="-I${x_includes}"
207
        ;;
Jim Blandy's avatar
Jim Blandy committed
208
	"x_libraries" )
209 210 211
	  ## If the value was omitted, get it from the next argument.
	  if [ "${valomitted}" = "yes" ]; then
	    ## Get the next argument from the argument list, if there is one.
212
            if [ $index = $# ]; then
Jim Blandy's avatar
Jim Blandy committed
213 214
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=FOO'."
215 216 217
	       echo "${short_usage}") >&2
	      exit 1
	    fi
218 219
            index=`expr $index + 1`
            val=`eval echo '$'$index`
220 221
	  fi
	  x_libraries="${val}"
222
	  LD_SWITCH_X_SITE="-L${x_libraries}"
223 224
        ;;

225 226 227 228 229 230
	## Should this use the "development configuration"?
	"run_in_place" )
	  rip_paths=''
	  inst_paths='#disabled# '
	;;

231 232 233 234 235
	## Has the user specifiec an installation prefix?
	"prefix" )
	  ## If the value was omitted, get it from the next argument.
	  if [ "${valomitted}" = "yes" ]; then
	    ## Get the next argument from the argument list, if there is one.
236
            if [ $index = $# ]; then
237 238 239 240 241
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=FOO'."
	       echo "${short_usage}") >&2
	      exit 1
	    fi
242 243
            index=`expr $index + 1`
            val=`eval echo '$'$index`
244 245 246 247
	  fi
	  prefix="${val}"
        ;;

248 249 250 251 252
	## Has the user specifiec an installation prefix?
	"exec_prefix" )
	  ## If the value was omitted, get it from the next argument.
	  if [ "${valomitted}" = "yes" ]; then
	    ## Get the next argument from the argument list, if there is one.
253
            if [ $index = $# ]; then
254 255 256 257 258
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=FOO'."
	       echo "${short_usage}") >&2
	      exit 1
	    fi
259 260
            index=`expr $index + 1`
            val=`eval echo '$'$index`
261 262 263 264
	  fi
	  exec_prefix="${val}"
        ;;

265 266
	## Has the user asked for some help?
	"usage" | "help" )
267
	  echo "${short_usage}" | more
268 269
	  exit
	;;
Jim Blandy's avatar
Jim Blandy committed
270

271 272
        ## We ignore all other options silently.
      esac
Jim Blandy's avatar
Jim Blandy committed
273
    ;;
274 275 276

    ## Anything not starting with a hyphen we assume is a
    ## configuration name.
Jim Blandy's avatar
Jim Blandy committed
277
    *)
278
      configuration=${arg}
Jim Blandy's avatar
Jim Blandy committed
279
    ;;
280

Jim Blandy's avatar
Jim Blandy committed
281 282 283
  esac
done

284
if [ "${configuration}" = "" ]; then
Jim Blandy's avatar
Jim Blandy committed
285 286 287 288 289 290 291
  echo '- You did not tell me what kind of host system you want to configure.
- I will attempt to guess the kind of system this is.' 1>&2
  guesssys=`echo ${progname} | sed 's/configure$/config.guess/'`
  if configuration=`${guesssys}` ; then
    echo "- Looks like this is a ${configuration}" 1>&2
  else
    echo '- Failed to guess the system type.  You need to tell me.' 1>&2
292
    echo "${short_usage}" >&2
Jim Blandy's avatar
Jim Blandy committed
293 294
    exit 1
  fi
295 296 297 298 299
fi

#### Decide where the source is.
case "${srcdir}" in

300
  ## If it's not specified, see if  `.' or `..' might work.
301
  "" )
302 303
    confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
    if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then
304
      srcdir="${confdir}"
305
    else
306
      if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
307
        srcdir='.'
308
      else
309
        if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
310
	  srcdir='..'
311 312
        else
	  (echo "\
313 314 315 316 317
${progname}: Neither the current directory nor its parent seem to
contain the Emacs sources.  If you do not want to build Emacs in its
source tree, you should run \`${progname}' in the directory in which
you wish to build Emacs, using its \`--srcdir' option to say where the
sources may be found."
318 319 320
	    echo "${short_usage}") >&2
	  exit 1
        fi
321 322
      fi
    fi
323 324
  ;;

325
  ## Otherwise, check if the directory they specified is okay.
326
  * )
327 328 329 330 331 332 333
    if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then
      (echo "\
${progname}: The directory specified with the \`--srcdir' option,
\`${srcdir}', doesn't seem to contain the Emacs sources.  You should
either run the \`${progname}' script at the top of the Emacs source
tree, or use the \`--srcdir' option to specify where the Emacs sources
are."
334 335 336 337
       echo "${short_usage}") >&2
      exit 1
    fi
  ;;
338
esac
339

340 341 342 343 344
#### Make srcdir absolute, if it isn't already.  It's important to
#### avoid running the path through pwd unnecessary, since pwd can
#### give you automounter prefixes, which can go away.
case "${srcdir}" in
  /* ) ;;
345 346 347 348 349 350 351
  . )
    ## We may be able to use the $PWD environment variable to make this
    ## absolute.  But sometimes PWD is inaccurate.
    if [ "${PWD}" != "" ] && [ "`(cd ${PWD} ; pwd)`" = "`pwd`" ] ; then
      srcdir="$PWD"
    else
      srcdir="`(cd ${srcdir}; pwd)`"
Jim Blandy's avatar
Jim Blandy committed
352
    fi
353
  ;;
354
  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
355 356
esac

357 358
#### Make sure that the source directory doesn't already have a
#### configured system in it.
359 360 361 362 363
if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
   && [ -f "${srcdir}/src/config.h" ] ; then
  (echo "${progname}: the directory tree \`${srcdir}' is being used"
   echo "   as a build directory right now; it has been configured in its own"
   echo "   right.  You can't use srcdir in this situation.") >&2
364 365
  exit 1
fi
366

367 368 369 370 371 372 373 374 375 376
### Make the necessary directories, if they don't exist.
if [ ! -d ./src ]; then
  mkdir ./src
fi
if [ ! -d ./lib-src ]; then
  mkdir ./lib-src
fi
if [ ! -d ./cpp ]; then
  mkdir ./cpp
fi
377 378 379
if [ ! -d ./oldXMenu ]; then
  mkdir ./oldXMenu
fi
380 381 382
if [ ! -d ./etc ]; then
  mkdir ./etc
fi
383 384 385 386 387

#### Given the configuration name, set machfile and opsysfile to the
#### names of the m/*.h and s/*.h files we should use.

### Canonicalize the configuration name.
388
echo "Checking the configuration name."
389
if configuration=`${srcdir}/config.sub "${configuration}"` ; then : ; else
390 391
  exit $?
fi
392

393 394 395 396
### If you add support for a new configuration, add code to this
### switch statement to recognize your configuration name and select
### the appropriate operating system and machine description files.

397 398 399 400 401 402 403 404
### You would hope that you could choose an m/*.h file pretty much
### based on the machine portion of the configuration name, and an s-
### file based on the operating system portion.  However, it turns out
### that each m/*.h file is pretty manufacturer-specific - for
### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
### machines.  So we basically have to have a special case for each
### configuration name.
405
###
406 407 408 409 410
### As far as handling version numbers on operating systems is
### concerned, make sure things will fail in a fixable way.  If
### /etc/MACHINES doesn't say anything about version numbers, be
### prepared to handle anything reasonably.  If version numbers
### matter, be sure /etc/MACHINES says something about it.
411 412 413 414 415
###
### Eric Raymond says we should accept strings like "sysvr4" to mean
### "System V Release 4"; he writes, "The old convention encouraged
### confusion between `system' and `release' levels'."

416 417 418 419
machine='' opsys='' unported='false'
case "${configuration}" in

  ## Alliant machines
420 421 422 423 424 425
  ## Strictly speaking, we need the version of the alliant operating
  ## system to choose the right machine file, but currently the
  ## configuration name doesn't tell us enough to choose the right
  ## one; we need to give alliants their own operating system name to
  ## do this right.  When someone cares, they can help us.
  fx80-alliant-* )
426
    machine=alliant4 opsys=bsd4-2
427 428
  ;;
  i860-alliant-* )
429
    machine=alliant-2800 opsys=bsd4-3
430
  ;;
Jim Blandy's avatar
Jim Blandy committed
431

432 433 434
  ## Altos 3068
  m68*-altos-sysv* )
    machine=altos opsys=usg5-2
435
  ;;
436 437 438 439
    
  ## Amdahl UTS
  580-amdahl-sysv* )
    machine=amdahl opsys=usg5-2-2
440
  ;;
Jim Blandy's avatar
Jim Blandy committed
441

442 443
  ## Appallings - I mean, Apollos - running Domain
  m68*-apollo* )
444
    machine=apollo opsys=bsd4-2
445
  ;;
446 447 448 449 450 451 452 453 454 455 456 457 458 459

  ## AT&T 3b2, 3b5, 3b15, 3b20
  we32k-att-sysv* )
    machine=att3b opsys=usg5-2-2
  ;;

  ## AT&T 3b1 - The Mighty Unix PC!
  m68*-att-sysv* )
    machine=7300 opsys=usg5-2-2
  ;;

  ## Bull sps7
  m68*-bull-sysv* )
    machine=sps7 opsys=usg5-2
460
  ;;
461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555

  ## CCI 5/32, 6/32 -- see "Tahoe".

  ## Celerity
  ## I don't know what configuration name to use for this; config.sub
  ## doesn't seem to know anything about it.  Hey, Celerity users, get
  ## in touch with us!
  celerity-celerity-bsd* )
    machine=celerity opsys=bsd4-2
  ;;

  ## Clipper
  ## What operating systems does this chip run that Emacs has been
  ## tested on?
  clipper-* )
    machine=clipper
    ## We'll use the catch-all code at the bottom to guess the
    ## operating system.
  ;;

  ## Convex
  *-convex-bsd* )
    machine=convex opsys=bsd4-3
  ;;

  ## Cubix QBx/386
  i386-cubix-sysv* )
    machine=intel386 opsys=usg5-3
  ;;

  ## Cydra 5
  cydra*-cydrome-sysv* )
    machine=cydra5 opsys=usg5-3
  ;;

  ## DECstations
  mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 )
    machine=pmax opsys=bsd4-2
  ;;
  mips-dec-ultrix* | mips-dec-bsd* )
    machine=pmax opsys=bsd4-3
  ;;
  mips-dec-osf* )
    machine=pmax opsys=osf1
  ;;

  ## Motorola Delta machines
  m68*-motorola-sysv* )
    machine=delta opsys=usg5-3
  ;;
  m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
    machine=delta88k opsys=usg5-3
  ;;

  ## Dual machines
  m68*-dual-sysv* )
    machine=dual opsys=usg5-2
  ;;
  m68*-dual-uniplus* )
    machine=dual opsys=unipl5-2
  ;;

  ## Elxsi 6400
  elxsi-elxsi-sysv* )
    machine=elxsi opsys=usg5-2
  ;;

  ## Encore machines
  ns16k-encore-bsd* )
    machine=ns16000 opsys=umax
  ;;

  ## The GEC 93 - apparently, this port isn't really finished yet.

  ## Gould Power Node and NP1
  pn-gould-bsd4.2 )
    machine=gould opsys=bsd4-2
  ;;
  pn-gould-bsd4.3 )
    machine=gould opsys=bsd4-3
  ;;
  np1-gould-bsd* )
    machine=gould-np1 opsys=bsd4-3
  ;;

  ## Honeywell XPS100
  xps*-honeywell-sysv* )
    machine=xps100 opsys=usg5-2
  ;;

  ## HP 9000 series 200 or 300
  m68*-hp-bsd* )
    machine=hp9000s300 opsys=bsd4-3
  ;;
  ## HP/UX 8 doesn't run on these machines, so use HP/UX 7.
556
  m68*-hp-hpux* )
557
    machine=hp9000s300 opsys=hpux
558
  ;;
Jim Blandy's avatar
Jim Blandy committed
559

560
  ## HP 9000 series 700 and 800, running HP/UX
561 562
  hppa*-hp-hpux7* )
    machine=hp9000s800 opsys=hpux ;;
563
  ;;
564 565
  hppa*-hp-hpux8* )
    machine=hp9000s800 opsys=hpux8 ;;
566
  ;;
567 568 569 570 571
  hppa*-hp-hpux9* )
    machine=hp9000s800 opsys=hpux9 ;;
  ;;

  ## HP 9000 series 700 and 800, running HP/UX
572 573
  hppa*-hp-hpux* )
    ## Cross-compilation?  Nah!
574
    case "`uname -r`" in
575 576
      *.08.* ) machine=hp9000s800 opsys=hpux8 ;;
      *.09.* ) machine=hp9000s800 opsys=hpux9 ;;
577
      *) machine=hp9000s800 opsys=hpux ;;
578
    esac
579 580 581 582 583 584 585 586 587 588 589 590 591 592
  ;;

  ## Orion machines
  orion-orion-bsd* )
    machine=orion opsys=bsd4-2
  ;;
  clipper-orion-bsd* )
    machine=orion105 opsys=bsd4-2
  ;;

  ## IBM machines
  i386-ibm-aix1.1 )
    machine=ibmps2-aix opsys=usg5-2-2
  ;;
593
  i386-ibm-aix1.[23] | i386-ibm-aix* )
594 595
    machine=ibmps2-aix opsys=usg5-3
  ;;
596
  rs6000-ibm-aix3.1 )
597 598
    machine=ibmrs6000 opsys=aix3-1
  ;;
599 600 601
  rs6000-ibm-aix3.2 | rs6000-ibm-aix* )
    machine=ibmrs6000 opsys=aix3-2
  ;;
602 603 604 605 606 607 608 609 610 611
  romp-ibm-bsd4-3 )
    machine=ibmrt opsys=bsd4-3
  ;;	
  romp-ibm-bsd4-2 )
    machine=ibmrt opsys=bsd4-2
  ;;
  romp-ibm-aos4-3 )
    machine=ibmrt opsys=bsd4-3
  ;;	
  romp-ibm-aos4-2 )
612 613
    machine=ibmrt opsys=bsd4-2
  ;;
614 615 616 617 618 619
  romp-ibm-aos* )
    machine=ibmrt opsys=bsd4-3
  ;;
  romp-ibm-bsd* )
    machine=ibmrt opsys=bsd4-3
  ;;
620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636
  romp-ibm-aix* )
    machine=ibmrt-aix opsys=usg5-2-2
  ;;

  ## Integrated Solutions `Optimum V'
  m68*-isi-bsd4.2 )
    machine=isi-ov opsys=bsd4-2
  ;;
  m68*-isi-bsd4.3 )
    machine=isi-ov opsys=bsd4-3
  ;;

  ## Intel 386 machines where we do care about the manufacturer
  i[34]86-intsys-sysv* )
    machine=is386 opsys=usg5-2-2
  ;;
  ## Intel 386 machines where we don't care about the manufacturer
637
  i[34]86-*-* )
638 639 640
    machine=intel386
    case "${configuration}" in
      *-isc1.* | *-isc2.[01]* )	opsys=386-ix ;;
641 642
      *-isc2.2 )		opsys=isc2-2 ;;
      *-isc* )			opsys=isc3-0 ;;
643
      *-esix5* )		opsys=esix5r4 ;;
644 645
      *-esix* )			opsys=esix ;;
      *-xenix* )		opsys=xenix ;;
646
      *-linux* )		opsys=linux ;;
647
      *-sco3.2v4* )		opsys=sco4 ;;
Richard M. Stallman's avatar
Richard M. Stallman committed
648
      *-bsd386* )		opsys=bsd386 ;;
Richard M. Stallman's avatar
Richard M. Stallman committed
649
      *-386bsd )	        opsys=386bsd ;;
650 651 652 653
      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
    esac
  ;;

654 655 656 657 658
  ## Intel 860
  i860-*-sysvr4 )
    machine=i860 opsys=usg5-4
  ;;

659 660 661 662 663 664 665 666 667 668 669 670 671 672
  ## Silicon Graphics machines
  ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
  m68*-sgi-iris3.5 )
    machine=irist opsys=iris3-5
  ;;
  m68*-sgi-iris3.6 | m68*-sgi-iris*)
    machine=irist opsys=iris3-6
  ;;
  ## Iris 4D
  mips-sgi-irix3.* )
    machine=iris4d opsys=irix3-3
  ;;
  mips-sgi-irix4.* | mips-sgi-irix* )
    machine=iris4d opsys=irix4-0
673 674
  ;;

675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695
  ## Masscomp machines
  m68*-masscomp-rtu )
    machine=masscomp opsys=rtu
  ;;

  ## Megatest machines
  m68*-megatest-bsd* )
    machine=mega68 opsys=bsd4-2
  ;;

  ## Workstations sold by MIPS
  ## This is not necessarily all workstations using the MIPS processor -
  ## Irises are produced by SGI, and DECstations by DEC.

  ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
  ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
  ## it gives for choosing between the alternatives seems to be "Use
  ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
  ## the BSD world."  I'll assume that these are instructions for
  ## handling two odd situations, and that every other situation
  ## should use mips.h and usg5-2-2, they being listed first.
696 697 698 699
  mips-mips-usg* )
    machine=mips4
    ## Fall through to the general code at the bottom to decide on the OS.
  ;;
700
  mips-mips-riscos4* )
701
    machine=mips4 opsys=bsd4-3
702 703 704 705 706 707 708 709
  ;;
  mips-mips-bsd* )
    machine=mips opsys=bsd4-3
  ;;
  mips-mips-* )
    machine=mips opsys=usg5-2-2
  ;;

710 711 712 713 714
  ## NeXT
  m68*-next-mach* | m68*-next-bsd* )
    machine=next opsys=mach2
  ;;

715 716 717 718 719 720
  ## The complete machine from National Semiconductor
  ns32k-ns-genix* )
    machine=ns32000 opsys=usg5-2
  ;;

  ## NCR machines
721
  m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
722 723
    machine=tower32 opsys=usg5-2-2
  ;;
724
  m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783
    machine=tower32v3 opsys=usg5-3
  ;;

  ## Nixdorf Targon 31
  m68*-nixdorf-sysv* )
    machine=targon31 opsys=usg5-2-2
  ;;

  ## Nu (TI or LMI)
  m68*-nu-sysv* )
    machine=nu opsys=usg5-2
  ;;

  ## Plexus
  m68*-plexus-sysv* )
    machine=plexus opsys=usg5-2
  ;;

  ## Prime EXL
  i386-prime-sysv* )
    machine=i386 opsys=usg5-3
  ;;

  ## Pyramid machines
  ## I don't really have any idea what sort of processor the Pyramid has,
  ## so I'm assuming it is its own architecture.
  pyramid-pyramid-bsd* )
    machine=pyramid opsys=bsd4-2
  ;;

  ## Sequent Balance
  ns32k-sequent-bsd4.2 )
    machine=sequent opsys=bsd4-2
  ;;
  ns32k-sequent-bsd4.3 )
    machine=sequent opsys=bsd4-3
  ;;
  ## Sequent Symmetry
  i386-sequent-bsd* )
    machine=symmetry opsys=bsd4-3
  ;;

  ## SONY machines
  m68*-sony-bsd4.2 )
    machine=news opsys=bsd4-2
  ;;
  m68*-sony-bsd4.3 )
    machine=news opsys=bsd4-3
  ;;
  mips-sony-bsd* )
    machine=news-risc opsys=bsd4-3
  ;;

  ## Stride
  m68*-stride-sysv* )
    machine=stride opsys=usg5-2
  ;;

  ## Suns
784
  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* )
785 786 787 788 789 790 791 792 793 794
    case "${configuration}" in
      m68*-sunos1* )	machine=sun1 ;;
      m68*-sunos2* )	machine=sun2 ;;
      m68* )		machine=sun3 ;;
      i[34]86* )	machine=sun386 ;;
      sparc* )		machine=sparc ;;
      * )		unported=true ;;
    esac
    case "${configuration}" in
      *-sunos4.0*	  ) opsys=sunos4-0 ;;
795
      *-sunos4.1.3*	  ) opsys=sunos4-1-3 ;;
796
      *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
797
      *-sunos5* | *-solaris* ) opsys=sol2 ;;
798
      *			  ) opsys=bsd4-2   ;;
799
    esac
800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819
  ;;

  ## Tadpole 68k
  m68*-tadpole-sysv* )
    machine=tad68k opsys=usg5-3
  ;;

  ## Tahoe machines
  tahoe-tahoe-bsd4.2 )
    machine=tahoe opsys=bsd4-2
  ;;
  tahoe-tahoe-bsd4.3 )
    machine=tahoe opsys=bsd4-3
  ;;

  ## Tandem Integrity S2
  mips-tandem-sysv* )
    machine=tandem-s2 opsys=usg5-3
  ;;

820 821 822 823 824
  ## Tektronix XD88
  m88k-tektronix-sysv3 )
  machine=tekXD88 opsys=usg5-3
  ;;

825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849
  ## Tektronix 16000 box (6130?)
  ns16k-tektronix-bsd* )
    machine=ns16000 opsys=bsd4-2
  ;;
  ## Tektronix 4300
  ## src/m/tek4300.h hints that this is a m68k machine.
  m68*-tektronix-bsd* )
    machine=tex4300 opsys=bsd4-3
  ;;

  ## Titan P2 or P3
  ## We seem to have lost the machine-description file titan.h!
  titan-titan-sysv* )
    machine=titan opsys=usg5-3
  ;;
  
  ## Ustation E30 (SS5E)
  m68*-unisys-uniplus* )
    machine=ustation opsystem=unipl5-2
  ;;

  ## Vaxen.
  vax-dec-* )
    machine=vax
    case "${configuration}" in
850 851 852
      *-bsd4.1 ) 					opsys=bsd4-1 ;;
      *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 )	opsys=bsd4-2 ;;
      *-bsd4.3 | *-ultrix* ) 				opsys=bsd4-3 ;;
Richard M. Stallman's avatar
Richard M. Stallman committed
853
      *-bsd386 )					opsys=bsd386 ;;
854 855 856 857
      *-sysv[01]* | *-sysvr[01]* ) 			opsys=usg5-0 ;;
      *-sysv2* | *-sysvr2* )				opsys=usg5-2 ;;
      *-vms* ) 						opsys=vms ;;
      * ) 						unported=true
858 859 860
    esac
  ;;

861 862 863 864 865 866 867 868 869 870 871 872
  ## Whitechapel MG1
  ns16k-whitechapel-* )
    machine=mg1
    ## We don't know what sort of OS runs on these; we'll let the
    ## operating system guessing code below try.
  ;;

  ## Wicat
  m68*-wicat-sysv* )
    machine=wicat opsys=usg5-2
  ;;

873
  * )
874
    unported=true
875 876
  ;;
esac
Jim Blandy's avatar
Jim Blandy committed
877

878 879 880 881 882 883
### If the code above didn't choose an operating system, just choose
### an operating system based on the configuration name.  You really
### only want to use this when you have no idea what the right
### operating system is; if you know what operating systems a machine
### runs, it's cleaner to make it explicit in the case statement
### above.
Richard M. Stallman's avatar
Richard M. Stallman committed
884
if [ x"${opsys}" = x ]; then
885 886 887 888
  case "${configuration}" in
    *-bsd4.[01] )	opsys=bsd4-1 ;;
    *-bsd4.2 )		opsys=bsd4-2 ;;
    *-bsd4.3 )		opsys=bsd4-3 ;;
889 890 891 892 893
    *-sysv0 | *-sysvr0 )		opsys=usg5-0 ;;
    *-sysv2 | *-sysvr2 )		opsys=usg5-2 ;;
    *-sysv2.2 | *-sysvr2.2 )		opsys=usg5-2-2 ;;
    *-sysv3 | *-sysvr3 )		opsys=usg5-3 ;;
    *-sysv4 | *-sysvr4 )		opsys=usg5-4 ;;
894
    *-sysv4.2 | *-sysvr4.2 )		opsys=usg5-4-2 ;;
895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910
    * )
      unported=true
    ;;
  esac
fi

if $unported ; then
  (echo "${progname}: Emacs hasn't been ported to \`${configuration}' systems."
   echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
  ) >&2
  exit 1
fi

machfile="m/${machine}.h"
opsysfile="s/${opsys}.h"

911 912
]
AC_PREPARE(lisp)
913
AC_CONFIG_HEADER(src/config.h)
914
[
915 916 917

#### Choose a compiler.
case ${with_gcc} in
918 919
  "yes" ) CC="gcc" GCC=1 ;;
  "no"  ) CC="cc"        ;;
920
  * )
921
    ] AC_PROG_CC [
922 923
esac

924 925 926
#### Some other nice autoconf tests.  If you add a test here which
#### should make an entry in src/config.h, don't forget to add an
#### #undef clause to src/config.h.in for autoconf to modify.
927
]
928
dnl checks for programs
929
AC_LN_S
930
AC_PROG_CPP
931
AC_PROG_INSTALL
932 933 934 935

dnl checks for UNIX variants that set `DEFS'

dnl checks for header files
936
AC_HAVE_HEADERS(sys/timeb.h sys/time.h)
937
AC_STDC_HEADERS
938
AC_TIME_WITH_SYS_TIME
939

940 941 942
dnl checks for library files
AC_HAVE_LIBRARY(-ldnet)

943
dnl checks for typedefs
944
AC_RETSIGTYPE
945 946

dnl checks for functions
947
AC_ALLOCA
948
AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename)
949 950

dnl checks for structure members
951
AC_STRUCT_TM
Jim Blandy's avatar
Jim Blandy committed
952
AC_TIMEZONE
953 954

dnl checks for compiler characteristics
955
AC_CONST
956 957 958 959

dnl checks for operating system services

dnl other checks for UNIX variants
960 961
[

Jim Blandy's avatar
Jim Blandy committed
962

963
#### Choose a window system.
Jim Blandy's avatar
Jim Blandy committed
964
echo "Checking window system."
965

966
window_system=''
967
case "${with_x}" in
Richard M. Stallman's avatar
Richard M. Stallman committed
968 969
  yes )
    window_system=${window_system}x11
970 971 972
  ;;
  no )
    window_system=${window_system}none
Richard M. Stallman's avatar
Richard M. Stallman committed
973
esac
974
case "${with_x11}" in
Richard M. Stallman's avatar
Richard M. Stallman committed
975 976
  yes )
    window_system=${window_system}x11
977
  ;;
Richard M. Stallman's avatar
Richard M. Stallman committed
978 979 980 981
esac
case "${with_x10}" in
  yes )
    window_system=${window_system}x10
982
  ;;
Richard M. Stallman's avatar
Richard M. Stallman committed
983 984
esac

Jim Blandy's avatar
Jim Blandy committed
985 986 987
case "${window_system}" in
  "none" | "x11" | "x10" ) ;;
  "" )
988
    echo "  No window system specified.  Looking for X11."
Jim Blandy's avatar
Jim Blandy committed
989
    window_system=none
990 991
    if [ -r /usr/lib/libX11.a \
	 -o -d /usr/include/X11 \
992 993
         -o -d /usr/X386/include \
	 -o -d ${x_includes}/X11 ]; then
Jim Blandy's avatar
Jim Blandy committed
994
      window_system=x11
Jim Blandy's avatar
Jim Blandy committed
995
    fi
Jim Blandy's avatar
Jim Blandy committed
996 997
  ;;
  * )
Richard M. Stallman's avatar
Richard M. Stallman committed
998
    echo "Don't specify the window system more than once." >&2
Jim Blandy's avatar
Jim Blandy committed
999 1000 1001 1002 1003 1004
    exit 1
  ;;
esac

case "${window_system}" in
  x11 )
1005 1006
    HAVE_X_WINDOWS=yes
    HAVE_X11=yes
1007
    echo "  Using X11."
Jim Blandy's avatar
Jim Blandy committed
1008 1009
  ;;
  x10 )
1010 1011
    HAVE_X_WINDOWS=yes
    HAVE_X11=no
1012
    echo "  Using X10."
Jim Blandy's avatar
Jim Blandy committed
1013 1014
  ;;
  none )
1015 1016
    HAVE_X_WINDOWS=no
    HAVE_X11=no
1017
    echo "  Using no window system."
Jim Blandy's avatar
Jim Blandy committed
1018 1019 1020
  ;;
esac

1021 1022 1023
### If we're using X11, we should use the X menu package.
HAVE_X_MENU=no
case ${HAVE_X11} in
1024
  yes )
1025
    HAVE_X_MENU=yes
Jim Blandy's avatar
Jim Blandy committed
1026 1027 1028
  ;;
esac

1029
### Check for XFree386.  It needs special hacks.
1030 1031 1032 1033 1034 1035 1036 1037
lib_havexbsd=no
]
AC_HAVE_LIBRARY( Xbsd , have_libxbsd=yes , have_libxbsd=no )
[
if [ -n "${x_libraries}" ] && [ -f ${x_libraries}/libXbsd.a ]; then
  have_libxbsd=yes
fi

1038 1039
case ${window_system} in
  x11 )
1040
    if [ -d /usr/X386/include ] && [ "${have_libxbsd}" = "yes" ]; then
1041 1042
      HAVE_XFREE386=yes
      if [ "${C_SWITCH_X_SITE}" = "" ]; then
Jim Blandy's avatar
Jim Blandy committed
1043
	C_SWITCH_X_SITE="-I/usr/X386/include"
1044 1045 1046 1047
      fi
    fi
  ;;
esac
1048 1049

#### Extract some information from the operating system and machine files.
Jim Blandy's avatar
Jim Blandy committed
1050

Jim Blandy's avatar
Jim Blandy committed
1051 1052 1053
echo "Examining the machine- and system-dependent files to find out"
echo " - which libraries the lib-src programs will want, and"
echo " - whether the GNU malloc routines are usable."
1054 1055 1056 1057 1058 1059

### It's not important that this name contain the PID; you can't run
### two configures in the same directory and have anything work
### anyway.
tempcname="conftest.c"

1060 1061 1062
echo '
#include "'${srcdir}'/src/'${opsysfile}'"
#include "'${srcdir}'/src/'${machfile}'"
Jim Blandy's avatar
Jim Blandy committed
1063 1064 1065 1066 1067 1068
#ifndef LIBS_MACHINE
#define LIBS_MACHINE
#endif
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif
1069 1070
#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
1071
#endif
Jim Blandy's avatar
Jim Blandy committed
1072
@configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
1073
@configure@ c_switch_system=C_SWITCH_SYSTEM
1074 1075 1076 1077 1078 1079 1080

#ifdef UNEXEC
@configure@ unexec=UNEXEC
#else
@configure@ unexec=unexec.o
#endif

Jim Blandy's avatar
Jim Blandy committed
1081
#ifdef SYSTEM_MALLOC
Jim Blandy's avatar
Jim Blandy committed
1082
@configure@ system_malloc=yes
Jim Blandy's avatar
Jim Blandy committed
1083
#else
Jim Blandy's avatar
Jim Blandy committed
1084
@configure@ system_malloc=no
Jim Blandy's avatar
Jim Blandy committed
1085
#endif
1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099

#ifndef C_DEBUG_SWITCH
#define C_DEBUG_SWITCH -g
#endif

#ifndef C_OPTIMIZE_SWITCH
#define C_OPTIMIZE_SWITCH -O
#endif

#ifdef __GNUC__
@configure@ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH
#else
@configure@ CFLAGS=C_DEBUG_SWITCH
#endif
Jim Blandy's avatar
Jim Blandy committed
1100
' > ${tempcname}
1101 1102 1103 1104
# The value of CPP is a quoted variable reference, so we need to do this
# to get its actual value...
foo=`eval "echo $CPP"`
eval `${foo} ${tempcname} \
1105 1106
       | grep '@configure@' \
       | sed -e 's/^@configure@ \([^=]*=\)\(.*\)$/\1"\2"/'`
Jim Blandy's avatar
Jim Blandy committed
1107 1108
rm ${tempcname}

1109 1110
### Compute the unexec source name from the object name.
UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1111

Jim Blandy's avatar
Jim Blandy committed
1112
# Do the opsystem or machine files prohibit the use of the GNU malloc?
1113 1114
# Assume not, until told otherwise.
GNU_MALLOC=yes
Jim Blandy's avatar
Jim Blandy committed
1115
if [ "${system_malloc}" = "yes" ]; then
1116 1117
  GNU_MALLOC=no
  GNU_MALLOC_reason="
1118
  (The GNU allocators don't work with this system configuration.)"
Jim Blandy's avatar
Jim Blandy committed
1119 1120
fi

Richard M. Stallman's avatar
Richard M. Stallman committed
1121
if [ x"${REL_ALLOC}" = x ]; then
1122
  REL_ALLOC=${GNU_MALLOC}
Jim Blandy's avatar
Jim Blandy committed
1123
fi
Jim Blandy's avatar
Jim Blandy committed
1124

1125 1126
LISP_FLOAT_TYPE=yes

1127 1128 1129 1130

#### Find out which version of Emacs this is.
version=`grep 'defconst[	 ]*emacs-version' ${srcdir}/lisp/version.el \
	 | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'`
Richard M. Stallman's avatar
Richard M. Stallman committed
1131
if [ x"${version}" = x ]; then
1132 1133 1134 1135 1136 1137
  echo "${progname}: can't find current emacs version in
	\`${srcdir}/lisp/version.el'." >&2
  exit 1
fi


1138
#### Specify what sort of things we'll be editing into Makefile and config.h.
1139 1140 1141 1142 1143 1144
]
AC_SUBST(configuration)
AC_SUBST(version)
AC_SUBST(srcdir)
AC_SUBST(c_switch_system)
AC_SUBST(libsrc_libs)
1145 1146
AC_SUBST(rip_paths)
AC_SUBST(inst_paths)
1147 1148
AC_SUBST(LD_SWITCH_X_SITE)
AC_SUBST(C_SWITCH_X_SITE)
1149
AC_SUBST(CFLAGS)
1150
AC_SUBST(prefix)
1151
AC_SUBST(exec_prefix)