~ubuntu-branches/ubuntu/quantal/emacs23/quantal

« back to all changes in this revision

Viewing changes to .pc/0011-Use-CRT_DIR-to-find-crt-.o-on-ppc64.patch/configure.in

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2012-05-12 12:30:20 UTC
  • mfrom: (1.2.3) (4.1.19 sid)
  • Revision ID: package-import@ubuntu.com-20120512123020-8asmc2akmxvac7n3
Tags: 23.4+1-3ubuntu1
* Merge with Debian, remaining changes:
  - debian/control.in:
    - Do not suggest emacs23-common-non-dfsg.
    - Replace use of Source-Version with source:Version.
  - debian/patches:
    - emacsVER-lp725988.patch: Set the X EMACS_CLASS to "Emacs23" to please
      bamf and gnome-shell
    - debian/patches/no_cpp_multiarch_dir_mangling.diff: make sure cpp
      doesn't mangle our multiarch include path due to a built-in macro
      matching the architecture name.
  - debian/emacsVER.desktop: also set StartupWMClass for bamf and
    gnome-shell
* Dropped changes:
  - use_crtdir_in_startfiles.diff: Now upstream
  - emacs-xgselect.patch: Now applied in Debian
  - Drop the horror that was ubuntu-restore-nondfsg-files.diff. We'll move
    the package into main.
* Have emacs23-common Depends on emacs23-common-non-dfsg, now that it is
  going to main.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl  Autoconf script for GNU Emacs
 
2
dnl To rebuild the `configure' script from this, execute the command
 
3
dnl     autoconf
 
4
dnl in the directory containing this script.
 
5
dnl
 
6
dnl  Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003,
 
7
dnl    2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012  Free Software Foundation, Inc.
 
8
dnl
 
9
dnl  This file is part of GNU Emacs.
 
10
dnl
 
11
dnl  GNU Emacs is free software: you can redistribute it and/or modify
 
12
dnl  it under the terms of the GNU General Public License as published by
 
13
dnl  the Free Software Foundation, either version 3 of the License, or
 
14
dnl  (at your option) any later version.
 
15
dnl
 
16
dnl  GNU Emacs is distributed in the hope that it will be useful,
 
17
dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
18
dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
19
dnl  GNU General Public License for more details.
 
20
dnl
 
21
dnl  You should have received a copy of the GNU General Public License
 
22
dnl  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
23
 
 
24
AC_PREREQ(2.62)
 
25
AC_INIT(emacs, 23.4)
 
26
AC_CONFIG_HEADER(src/config.h:src/config.in)
 
27
AC_CONFIG_SRCDIR(src/lisp.h)
 
28
 
 
29
dnl Support for --program-prefix, --program-suffix and
 
30
dnl --program-transform-name options
 
31
AC_ARG_PROGRAM
 
32
 
 
33
lispdir='${datadir}/emacs/${version}/lisp'
 
34
locallisppath='${datadir}/emacs/${version}/site-lisp:'\
 
35
'${datadir}/emacs/site-lisp'
 
36
lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
 
37
etcdir='${datadir}/emacs/${version}/etc'
 
38
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
 
39
docdir='${datadir}/emacs/${version}/etc'
 
40
gamedir='${localstatedir}/games/emacs'
 
41
 
 
42
gameuser=games
 
43
 
 
44
dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
 
45
dnl Create a new --with option that defaults to being disabled.
 
46
dnl NAME is the base name of the option.  The shell variable with_NAME
 
47
dnl   will be set to either the user's value (if the option is
 
48
dnl   specified; 'yes' for a plain --with-NAME) or to 'no' (if the
 
49
dnl   option is not specified).  Note that the shell variable name is
 
50
dnl   constructed as autoconf does, by replacing non-alphanumeric
 
51
dnl   characters with "_".
 
52
dnl HELP-STRING is the help text for the option.
 
53
AC_DEFUN([OPTION_DEFAULT_OFF], [dnl
 
54
  AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
 
55
    m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
 
56
])dnl
 
57
 
 
58
dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
 
59
dnl Create a new --with option that defaults to being enabled.  NAME
 
60
dnl   is the base name of the option.  The shell variable with_NAME
 
61
dnl   will be set either to 'no' (for a plain --without-NAME) or to
 
62
dnl   'yes' (if the option is not specified).  Note that the shell
 
63
dnl   variable name is constructed as autoconf does, by replacing
 
64
dnl   non-alphanumeric characters with "_".
 
65
dnl HELP-STRING is the help text for the option.
 
66
AC_DEFUN([OPTION_DEFAULT_ON], [dnl
 
67
  AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[],[dnl
 
68
   m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=yes])dnl
 
69
])dnl
 
70
 
 
71
OPTION_DEFAULT_ON([pop],[don't support POP mail retrieval with movemail])
 
72
if test "$with_pop" = yes; then
 
73
   AC_DEFINE(MAIL_USE_POP)
 
74
fi
 
75
AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl
 
76
 
 
77
OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP])
 
78
if test "$with_kerberos" != no; then
 
79
   AC_DEFINE(KERBEROS)
 
80
fi
 
81
AH_TEMPLATE(KERBEROS,
 
82
            [Define to support Kerberos-authenticated POP mail retrieval.])dnl
 
83
 
 
84
OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP])
 
85
if test "${with_kerberos5}" != no; then
 
86
  if test "${with_kerberos}" = no; then
 
87
    with_kerberos=yes
 
88
    AC_DEFINE(KERBEROS)
 
89
  fi
 
90
  AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])
 
91
fi
 
92
 
 
93
OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
 
94
if test "$with_hesiod" != no; then
 
95
  AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
 
96
fi
 
97
 
 
98
OPTION_DEFAULT_ON([sound],[don't compile with sound support])
 
99
 
 
100
OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
 
101
if test "$with_sync_input" = yes; then
 
102
   AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.])
 
103
fi
 
104
 
 
105
dnl FIXME currently it is not the last.
 
106
dnl This should be the last --with option, because --with-x is
 
107
dnl added later on when we find the path of X, and it's best to
 
108
dnl keep them together visually.
 
109
AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
 
110
 [use an X toolkit (KIT one of: yes, lucid, athena, motif, gtk, no)])],
 
111
[         case "${withval}" in
 
112
            y | ye | yes )      val=gtk ;;
 
113
            n | no )            val=no  ;;
 
114
            l | lu | luc | luci | lucid )       val=lucid ;;
 
115
            a | at | ath | athe | athen | athena )      val=athena ;;
 
116
            m | mo | mot | moti | motif )       val=motif ;;
 
117
            g | gt | gtk  )     val=gtk ;;
 
118
            * )
 
119
AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
 
120
this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
 
121
`yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
 
122
            ;;
 
123
          esac
 
124
          with_x_toolkit=$val
 
125
])
 
126
 
 
127
dnl _ON results in a '--without' option in the --help output, so
 
128
dnl the help text should refer to "don't compile", etc.
 
129
OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
 
130
OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
 
131
OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
 
132
OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
 
133
OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
 
134
OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
 
135
 
 
136
OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
 
137
OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
 
138
OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
 
139
 
 
140
OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars])
 
141
OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
 
142
OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
 
143
OPTION_DEFAULT_OFF([ns],[use nextstep (Cocoa or GNUstep) windowing system])
 
144
 
 
145
OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
 
146
OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
 
147
OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
 
148
 
 
149
## For the times when you want to build Emacs but don't have
 
150
## a suitable makeinfo, and can live without the manuals.
 
151
dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
 
152
OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
 
153
 
 
154
dnl Can remove these in Emacs 24.
 
155
AC_ARG_WITH([gtk],,
 
156
  [AC_MSG_ERROR([--with-gtk has been removed.  Use --with-x-toolkit to
 
157
specify a toolkit.])],,)
 
158
 
 
159
AC_ARG_WITH([gcc],,
 
160
  [AC_MSG_ERROR([--with-gcc has been removed.  Set the `CC' environment
 
161
variable to specify a compiler.])],,)
 
162
 
 
163
AC_ARG_WITH([pkg-config-prog],dnl
 
164
[AS_HELP_STRING([--with-pkg-config-prog=PATH],
 
165
                  [path to pkg-config for finding GTK and librsvg])])
 
166
if test "X${with_pkg_config_prog}" != X; then
 
167
   if test "${with_pkg_config_prog}" != yes; then
 
168
      PKG_CONFIG="${with_pkg_config_prog}"
 
169
   fi
 
170
fi
 
171
 
 
172
CRT_DIR=
 
173
AC_ARG_WITH([crt-dir],dnl
 
174
[AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
 
175
This option is only used on x86-64 and s390x GNU/Linux architectures.])])
 
176
CRT_DIR="${with_crt_dir}"
 
177
 
 
178
AC_ARG_WITH([gnustep-conf],dnl
 
179
[AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
 
180
test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
 
181
  GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
 
182
test "X$GNUSTEP_CONFIG_FILE" = "X" && \
 
183
     GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
 
184
 
 
185
AC_ARG_ENABLE(ns-self-contained,
 
186
[AS_HELP_STRING([--disable-ns-self-contained],
 
187
                [disable self contained build under NeXTstep])],
 
188
   EN_NS_SELF_CONTAINED=$enableval,
 
189
   EN_NS_SELF_CONTAINED=yes)
 
190
 
 
191
AC_ARG_ENABLE(asserts,
 
192
[AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
 
193
      USE_XASSERTS=$enableval,
 
194
      USE_XASSERTS=no)
 
195
 
 
196
AC_ARG_ENABLE(maintainer-mode,
 
197
[AS_HELP_STRING([--enable-maintainer-mode],
 
198
                [enable make rules and dependencies not useful (and sometimes
 
199
                 confusing) to the casual installer])],
 
200
      USE_MAINTAINER_MODE=$enableval,
 
201
      USE_MAINTAINER_MODE=no)
 
202
if test $USE_MAINTAINER_MODE = yes; then
 
203
  MAINT=
 
204
else
 
205
  MAINT=#
 
206
fi
 
207
AC_SUBST(MAINT)
 
208
 
 
209
AC_ARG_ENABLE(locallisppath,
 
210
[AS_HELP_STRING([--enable-locallisppath=PATH],
 
211
                [directories Emacs should search for lisp files specific
 
212
                 to this site])],
 
213
if test "${enableval}" = "no"; then
 
214
  locallisppath=
 
215
elif test "${enableval}" != "yes"; then
 
216
  locallisppath=${enableval}
 
217
fi)
 
218
 
 
219
AC_ARG_ENABLE(checking,
 
220
[AS_HELP_STRING([--enable-checking@<:@=LIST@:>@],
 
221
                [enable expensive run-time checks.  With LIST,
 
222
                 enable only specific categories of checks.
 
223
                 Categories are: all,yes,no.
 
224
                 Flags are: stringbytes, stringoverrun, stringfreelist,
 
225
                 xmallocoverrun, conslist])],
 
226
[ac_checking_flags="${enableval}"],[])
 
227
IFS="${IFS=     }"; ac_save_IFS="$IFS"; IFS="$IFS,"
 
228
for check in $ac_checking_flags
 
229
do
 
230
        case $check in
 
231
        # these set all the flags to specific states
 
232
        yes)            ac_enable_checking=1 ;;
 
233
        no)             ac_enable_checking= ;
 
234
                        ac_gc_check_stringbytes= ;
 
235
                        ac_gc_check_string_overrun= ;
 
236
                        ac_gc_check_string_free_list= ;
 
237
                        ac_xmalloc_overrun= ;
 
238
                        ac_gc_check_cons_list= ;;
 
239
        all)            ac_enable_checking=1 ;
 
240
                        ac_gc_check_stringbytes=1 ;
 
241
                        ac_gc_check_string_overrun=1 ;
 
242
                        ac_gc_check_string_free_list=1 ;
 
243
                        ac_xmalloc_overrun=1 ;
 
244
                        ac_gc_check_cons_list=1 ;;
 
245
        # these enable particular checks
 
246
        stringbytes)    ac_gc_check_stringbytes=1 ;;
 
247
        stringoverrun)  ac_gc_check_string_overrun=1 ;;
 
248
        stringfreelist) ac_gc_check_string_free_list=1 ;;
 
249
        xmallocoverrun) ac_xmalloc_overrun=1 ;;
 
250
        conslist)       ac_gc_check_cons_list=1 ;;
 
251
        *)      AC_MSG_ERROR(unknown check category $check) ;;
 
252
        esac
 
253
done
 
254
IFS="$ac_save_IFS"
 
255
 
 
256
if test x$ac_enable_checking != x ; then
 
257
  AC_DEFINE(ENABLE_CHECKING, 1,
 
258
[Enable expensive run-time checking of data types?])
 
259
fi
 
260
if test x$ac_gc_check_stringbytes != x ; then
 
261
  AC_DEFINE(GC_CHECK_STRING_BYTES, 1,
 
262
[Define this temporarily to hunt a bug.  If defined, the size of
 
263
   strings is redundantly recorded in sdata structures so that it can
 
264
   be compared to the sizes recorded in Lisp strings.])
 
265
fi
 
266
if test x$ac_gc_check_stringoverrun != x ; then
 
267
  AC_DEFINE(GC_CHECK_STRING_OVERRUN, 1,
 
268
[Define this to check for short string overrun.])
 
269
fi
 
270
if test x$ac_gc_check_string_free_list != x ; then
 
271
  AC_DEFINE(GC_CHECK_STRING_FREE_LIST, 1,
 
272
[Define this to check the string free list.])
 
273
fi
 
274
if test x$ac_xmalloc_overrun != x ; then
 
275
  AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
 
276
[Define this to check for malloc buffer overrun.])
 
277
fi
 
278
if test x$ac_gc_check_cons_list != x ; then
 
279
  AC_DEFINE(GC_CHECK_CONS_LIST, 1,
 
280
[Define this to check for errors in cons list.])
 
281
fi
 
282
 
 
283
AC_ARG_ENABLE(profiling,
 
284
[AS_HELP_STRING([--enable-profiling],
 
285
                [build emacs with profiling support.
 
286
                 This might not work on all platforms])],
 
287
[ac_enable_profiling="${enableval}"],[])
 
288
if test x$ac_enable_profiling != x ; then
 
289
   PROFILING_CFLAGS="-DPROFILING=1 -pg"
 
290
   PROFILING_LDFLAGS="-pg"
 
291
else
 
292
   PROFILING_CFLAGS=
 
293
   PROFILING_LDFLAGS=
 
294
fi
 
295
 
 
296
AC_ARG_ENABLE(autodepend,
 
297
[AS_HELP_STRING([--enable-autodepend],
 
298
                [automatically generate dependencies to .h-files.
 
299
                 Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
 
300
                 found])],
 
301
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
 
302
 
 
303
#### Make srcdir absolute, if it isn't already.  It's important to
 
304
#### avoid running the path through pwd unnecessarily, since pwd can
 
305
#### give you automounter prefixes, which can go away.  We do all this
 
306
#### so Emacs can find its files when run uninstalled.
 
307
## Make sure CDPATH doesn't affect cd (in case PWD is relative).
 
308
unset CDPATH
 
309
case "${srcdir}" in
 
310
  /* ) ;;
 
311
  . )
 
312
    ## We may be able to use the $PWD environment variable to make this
 
313
    ## absolute.  But sometimes PWD is inaccurate.
 
314
    ## Note: we used to use ${PWD} at the end instead of `pwd`,
 
315
    ## but that tested only for a well-formed and valid PWD,
 
316
    ## it did not object when PWD was well-formed and valid but just wrong.
 
317
    if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
 
318
    then
 
319
      srcdir="$PWD"
 
320
    else
 
321
      srcdir="`(cd ${srcdir}; pwd)`"
 
322
    fi
 
323
  ;;
 
324
  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
 
325
esac
 
326
 
 
327
#### Check if the source directory already has a configured system in it.
 
328
if test `pwd` != `(cd ${srcdir} && pwd)` \
 
329
   && test -f "${srcdir}/src/config.h" ; then
 
330
  AC_MSG_WARN([[The directory tree `${srcdir}' is being used
 
331
   as a build directory right now; it has been configured in its own
 
332
   right.  To configure in another directory as well, you MUST
 
333
   use GNU make.  If you do not have GNU make, then you must
 
334
   now do `make distclean' in ${srcdir},
 
335
   and then run $0 again.]])
 
336
fi
 
337
 
 
338
#### Given the configuration name, set machfile and opsysfile to the
 
339
#### names of the m/*.h and s/*.h files we should use.
 
340
 
 
341
### Canonicalize the configuration name.
 
342
 
 
343
AC_CANONICAL_HOST
 
344
canonical=$host
 
345
configuration=${host_alias-${build_alias-$host}}
 
346
 
 
347
dnl This used to use changequote, but, apart from `changequote is evil'
 
348
dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
 
349
dnl the great gob of text.  Thus it's not processed for possible expansion.
 
350
dnl Just make sure the brackets remain balanced.
 
351
dnl
 
352
dnl Since Emacs can't find matching pairs of quotes, boundaries are
 
353
dnl indicated by comments.
 
354
dnl quotation begins
 
355
[
 
356
 
 
357
### If you add support for a new configuration, add code to this
 
358
### switch statement to recognize your configuration name and select
 
359
### the appropriate operating system and machine description files.
 
360
 
 
361
### You would hope that you could choose an m/*.h file pretty much
 
362
### based on the machine portion of the configuration name, and an s-
 
363
### file based on the operating system portion.  However, it turns out
 
364
### that each m/*.h file is pretty manufacturer-specific - for
 
365
### example mips.h is MIPS
 
366
### So we basically have to have a special case for each
 
367
### configuration name.
 
368
###
 
369
### As far as handling version numbers on operating systems is
 
370
### concerned, make sure things will fail in a fixable way.  If
 
371
### /etc/MACHINES doesn't say anything about version numbers, be
 
372
### prepared to handle anything reasonably.  If version numbers
 
373
### matter, be sure /etc/MACHINES says something about it.
 
374
###
 
375
### Eric Raymond says we should accept strings like "sysvr4" to mean
 
376
### "System V Release 4"; he writes, "The old convention encouraged
 
377
### confusion between `system' and `release' levels'."
 
378
 
 
379
machine='' opsys='' unported=no
 
380
case "${canonical}" in
 
381
 
 
382
  ## FreeBSD ports
 
383
  *-*-freebsd* )
 
384
    opsys=freebsd
 
385
    case "${canonical}" in
 
386
      alpha*-*-freebsd*)        machine=alpha ;;
 
387
      arm*-*-freebsd*)          machine=arm ;;
 
388
      ia64-*-freebsd*)          machine=ia64 ;;
 
389
      sparc-*-freebsd*)         machine=sparc ;;
 
390
      sparc64-*-freebsd*)       machine=sparc ;;
 
391
      powerpc-*-freebsd*)       machine=macppc ;;
 
392
      i[3456]86-*-freebsd*)     machine=intel386 ;;
 
393
      amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
 
394
    esac
 
395
  ;;
 
396
 
 
397
  ## FreeBSD kernel + glibc based userland
 
398
  *-*-kfreebsd*gnu* )
 
399
    opsys=gnu-kfreebsd
 
400
    case "${canonical}" in
 
401
      alpha*-*-kfreebsd*)       machine=alpha ;;
 
402
      ia64-*-kfreebsd*)         machine=ia64 ;;
 
403
      sparc-*-kfreebsd*)        machine=sparc ;;
 
404
      sparc64-*-kfreebsd*)      machine=sparc ;;
 
405
      powerpc-*-kfreebsd*)      machine=macppc ;;
 
406
      i[3456]86-*-kfreebsd*)    machine=intel386 ;;
 
407
      amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
 
408
    esac
 
409
  ;;
 
410
 
 
411
  ## NetBSD ports
 
412
  *-*-netbsd* )
 
413
    opsys=netbsd
 
414
    if test -f /usr/lib/crti.o; then]
 
415
dnl The close and open brackets here are because this section is quoted --
 
416
dnl see the `changequote' comment above.
 
417
      AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.])
 
418
[   fi
 
419
 
 
420
    case "${canonical}" in
 
421
      alpha*-*-netbsd*) machine=alpha ;;
 
422
      i[3456]86-*-netbsd*) machine=intel386 ;;
 
423
      mips-*-netbsd*)   machine=mips ;;
 
424
      mipsel-*-netbsd*) machine=mips ;;
 
425
      mipseb-*-netbsd*) machine=mips ;;
 
426
      powerpc-*-netbsd*) machine=macppc ;;
 
427
      sparc*-*-netbsd*) machine=sparc ;;
 
428
      vax-*-netbsd*)    machine=vax ;;
 
429
      arm-*-netbsd*)    machine=arm ;;
 
430
      x86_64-*-netbsd*) machine=amdx86-64 ;;
 
431
      hppa-*-netbsd*)   machine=hp800 ;;
 
432
      m68k-*-netbsd*)   machine=m68k ;;
 
433
    esac
 
434
  ;;
 
435
 
 
436
  ## OpenBSD ports
 
437
  *-*-openbsd* )
 
438
    opsys=openbsd
 
439
    case "${canonical}" in
 
440
      alpha*-*-openbsd*)        machine=alpha ;;
 
441
      arm-*-openbsd*)          machine=arm ;;
 
442
      i386-*-openbsd*)         machine=intel386 ;;
 
443
      powerpc-*-openbsd*)      machine=macppc ;;
 
444
      sparc*-*-openbsd*)       machine=sparc ;;
 
445
      vax-*-openbsd*)          machine=vax ;;
 
446
      x86_64-*-openbsd*)       machine=amdx86-64 ;;
 
447
      hppa-*-openbsd*)         machine=hp800 ;;
 
448
    esac
 
449
  ;;
 
450
 
 
451
  ## LynxOS ports
 
452
  *-*-lynxos* )
 
453
    opsys=lynxos
 
454
    case "${canonical}" in
 
455
      i[3456]86-*-lynxos*) machine=intel386 ;;
 
456
      powerpc-*-lynxos*) machine=powerpc ;;
 
457
    esac
 
458
  ;;
 
459
 
 
460
  alpha*-*-linux-gnu* )
 
461
    machine=alpha opsys=gnu-linux
 
462
  ;;
 
463
 
 
464
  arm*-*-linux-gnu* )
 
465
    machine=arm opsys=gnu-linux
 
466
  ;;
 
467
 
 
468
  ## Apple Darwin / Mac OS X
 
469
  *-apple-darwin* )
 
470
    case "${canonical}" in
 
471
      i[3456]86-* )  machine=intel386 ;;
 
472
      powerpc-* )    machine=macppc ;;
 
473
      x86_64-* )     machine=amdx86-64 ;;
 
474
      * )            unported=yes ;;
 
475
    esac
 
476
    opsys=darwin
 
477
    # Define CPP as follows to make autoconf work correctly.
 
478
    CPP="${CC-cc} -E -no-cpp-precomp"
 
479
    # Use fink packages if available.
 
480
    if test -d /sw/include && test -d /sw/lib; then
 
481
      GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
 
482
      CPP="${CPP} ${GCC_TEST_OPTIONS}"
 
483
      NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
 
484
    fi
 
485
  ;;
 
486
 
 
487
  ## HP 9000 series 700 and 800, running HP/UX
 
488
  hppa*-hp-hpux10.2* )
 
489
    machine=hp800 opsys=hpux10-20
 
490
  ;;
 
491
  hppa*-hp-hpux1[1-9]* )
 
492
    machine=hp800 opsys=hpux11
 
493
    CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
 
494
  ;;
 
495
 
 
496
  ia64*-hp-hpux1[1-9]* )
 
497
    machine=hp800 opsys=hpux11
 
498
  ;;
 
499
 
 
500
  hppa*-*-linux-gnu* )
 
501
    machine=hp800 opsys=gnu-linux
 
502
  ;;
 
503
 
 
504
  ## IBM machines
 
505
  s390-*-linux-gnu* )
 
506
    machine=ibms390 opsys=gnu-linux
 
507
  ;;
 
508
  s390x-*-linux-gnu* )
 
509
    machine=ibms390x opsys=gnu-linux
 
510
  ;;
 
511
  rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
 
512
    machine=ibmrs6000 opsys=aix4-2
 
513
  ;;
 
514
  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
 
515
    machine=ibmrs6000 opsys=aix4-2
 
516
  ;;
 
517
  rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
 
518
    machine=ibmrs6000 opsys=aix4-2
 
519
  ;;
 
520
  rs6000-ibm-aix6* | powerpc-ibm-aix6*  )
 
521
    machine=ibmrs6000 opsys=aix4-2
 
522
  ;;
 
523
 
 
524
  ## Macintosh PowerPC
 
525
  powerpc*-*-linux-gnu* )
 
526
    machine=macppc opsys=gnu-linux
 
527
  ;;
 
528
 
 
529
  ## Silicon Graphics machines
 
530
  ## Iris 4D
 
531
  mips-sgi-irix6.5 )
 
532
    machine=iris4d opsys=irix6-5
 
533
    # Without defining _LANGUAGE_C, things get masked out in the headers
 
534
    # so that, for instance, grepping for `free' in stdlib.h fails and
 
535
    # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
 
536
    NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
 
537
    NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
 
538
  ;;
 
539
 
 
540
  ## Suns
 
541
  sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
 
542
    machine=sparc opsys=gnu-linux
 
543
  ;;
 
544
 
 
545
  *-sun-solaris* \
 
546
    | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
 
547
    | x86_64-*-solaris2*    | x86_64-*-sunos5*    \
 
548
    | powerpc*-*-solaris2*  | rs6000-*-solaris2*)
 
549
    case "${canonical}" in
 
550
      i[3456]86-*-* )     machine=intel386 ;;
 
551
      amd64-*-*|x86_64-*-*)     machine=amdx86-64 ;;
 
552
      powerpc* | rs6000* )  machine=ibmrs6000 ;;
 
553
      sparc* )          machine=sparc ;;
 
554
      * )               unported=yes ;;
 
555
    esac
 
556
    case "${canonical}" in
 
557
      *-sunos5.3* | *-solaris2.3* )
 
558
                opsys=sol2-3
 
559
                NON_GNU_CPP=/usr/ccs/lib/cpp
 
560
                ;;
 
561
      *-sunos5.4* | *-solaris2.4* )
 
562
                opsys=sol2-4
 
563
                NON_GNU_CPP=/usr/ccs/lib/cpp
 
564
                RANLIB="ar -ts"
 
565
                ;;
 
566
      *-sunos5.5* | *-solaris2.5* )
 
567
                opsys=sol2-5
 
568
                NON_GNU_CPP=/usr/ccs/lib/cpp
 
569
                RANLIB="ar -ts"
 
570
                ;;
 
571
      *-sunos5.6* | *-solaris2.6* )
 
572
                opsys=sol2-6
 
573
                NON_GNU_CPP=/usr/ccs/lib/cpp
 
574
                RANLIB="ar -ts"
 
575
                ;;
 
576
      *-sunos5.[7-9]* | *-solaris2.[7-9]* )
 
577
                opsys=sol2-6
 
578
                emacs_check_sunpro_c=yes
 
579
                NON_GNU_CPP=/usr/ccs/lib/cpp
 
580
                ;;
 
581
      *-sunos5* | *-solaris* )
 
582
                opsys=sol2-10
 
583
                emacs_check_sunpro_c=yes
 
584
                NON_GNU_CPP=/usr/ccs/lib/cpp
 
585
                ;;
 
586
    esac
 
587
    ## Watch out for a compiler that we know will not work.
 
588
    case "${canonical}" in
 
589
     *-solaris* | *-sunos5* )
 
590
                if [ "x$CC" = x/usr/ucb/cc ]; then
 
591
                  ## /usr/ucb/cc doesn't work;
 
592
                  ## we should find some other compiler that does work.
 
593
                  unset CC
 
594
                fi
 
595
                ;;
 
596
      *) ;;
 
597
    esac
 
598
  ;;
 
599
 
 
600
  ## IA-64
 
601
  ia64*-*-linux* )
 
602
    machine=ia64 opsys=gnu-linux
 
603
  ;;
 
604
 
 
605
  ## Intel 386 machines where we don't care about the manufacturer
 
606
  i[3456]86-*-* )
 
607
    machine=intel386
 
608
    case "${canonical}" in
 
609
      *-cygwin )                opsys=cygwin ;;
 
610
      *-darwin* )               opsys=darwin
 
611
                                CPP="${CC-cc} -E -no-cpp-precomp"
 
612
                                ;;
 
613
      *-linux-gnu* )            opsys=gnu-linux ;;
 
614
      *-sysv4.2uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 
615
      *-sysv5uw* )              opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 
616
      *-sysv5OpenUNIX* )        opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 
617
      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
 
618
    esac
 
619
  ;;
 
620
 
 
621
  ## m68k Linux-based GNU system
 
622
  m68k-*-linux-gnu* )
 
623
    machine=m68k opsys=gnu-linux
 
624
  ;;
 
625
 
 
626
  ## Mips Linux-based GNU system
 
627
  mips-*-linux-gnu* | mipsel-*-linux-gnu* \
 
628
    | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
 
629
    machine=mips opsys=gnu-linux
 
630
  ;;
 
631
 
 
632
  ## AMD x86-64 Linux-based GNU system
 
633
  x86_64-*-linux-gnu* )
 
634
    machine=amdx86-64 opsys=gnu-linux
 
635
  ;;
 
636
 
 
637
  ## Tensilica Xtensa Linux-based GNU system
 
638
  xtensa*-*-linux-gnu* )
 
639
    machine=xtensa opsys=gnu-linux
 
640
    ;;
 
641
 
 
642
  ## SuperH Linux-based GNU system
 
643
  sh[34]*-*-linux-gnu* )
 
644
    machine=sh3 opsys=gnu-linux
 
645
  ;;
 
646
 
 
647
  * )
 
648
    unported=yes
 
649
  ;;
 
650
esac
 
651
 
 
652
### If the code above didn't choose an operating system, just choose
 
653
### an operating system based on the configuration name.  You really
 
654
### only want to use this when you have no idea what the right
 
655
### operating system is; if you know what operating systems a machine
 
656
### runs, it's cleaner to make it explicit in the case statement
 
657
### above.
 
658
if test x"${opsys}" = x; then
 
659
  case "${canonical}" in
 
660
    *-gnu* )                            opsys=gnu ;;
 
661
    *-sysv4.2uw* )                      opsys=unixware ;;
 
662
    *-sysv5uw* )                        opsys=unixware ;;
 
663
    *-sysv5OpenUNIX* )                  opsys=unixware ;;
 
664
    *-sysv4.1* | *-sysvr4.1* )
 
665
        NON_GNU_CPP=/usr/lib/cpp
 
666
        opsys=usg5-4 ;;
 
667
    *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
 
668
        if [ x$NON_GNU_CPP = x ]; then
 
669
          if [ -f /usr/ccs/lib/cpp ]; then
 
670
            NON_GNU_CPP=/usr/ccs/lib/cpp
 
671
          else
 
672
            NON_GNU_CPP=/lib/cpp
 
673
          fi
 
674
        fi
 
675
        opsys=usg5-4-2 ;;
 
676
    *-sysv4* | *-sysvr4* )              opsys=usg5-4 ;;
 
677
    * )
 
678
      unported=yes
 
679
    ;;
 
680
  esac
 
681
fi
 
682
 
 
683
]
 
684
dnl quotation ends
 
685
 
 
686
if test $unported = yes; then
 
687
  AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
 
688
Check `etc/MACHINES' for recognized configuration names.])
 
689
fi
 
690
 
 
691
machfile="m/${machine}.h"
 
692
opsysfile="s/${opsys}.h"
 
693
 
 
694
 
 
695
#### Choose a compiler.
 
696
test -n "$CC" && cc_specified=yes
 
697
 
 
698
# Save the value of CFLAGS that the user specified.
 
699
SPECIFIED_CFLAGS="$CFLAGS"
 
700
 
 
701
dnl Sets GCC=yes if using gcc.
 
702
AC_PROG_CC
 
703
 
 
704
# On Suns, sometimes $CPP names a directory.
 
705
if test -n "$CPP" && test -d "$CPP"; then
 
706
  CPP=
 
707
fi
 
708
 
 
709
## If not using gcc, and on Solaris, and no CPP specified, see if
 
710
## using a Sun compiler, which needs -Xs to prevent whitespace.
 
711
if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
 
712
 test x"$CPP" = x; then
 
713
  AC_MSG_CHECKING([whether we are using a Sun C compiler])
 
714
  AC_CACHE_VAL(emacs_cv_sunpro_c,
 
715
  [AC_TRY_LINK([],
 
716
[#ifndef __SUNPRO_C
 
717
fail;
 
718
#endif
 
719
], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
 
720
  AC_MSG_RESULT($emacs_cv_sunpro_c)
 
721
 
 
722
  if test x"$emacs_cv_sunpro_c" = xyes; then
 
723
    NON_GNU_CPP="$CC -E -Xs"
 
724
  fi
 
725
fi
 
726
 
 
727
#### Some systems specify a CPP to use unless we are using GCC.
 
728
#### Now that we know whether we are using GCC, we can decide whether
 
729
#### to use that one.
 
730
if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
 
731
then
 
732
  CPP="$NON_GNU_CPP"
 
733
fi
 
734
 
 
735
#### Some systems specify a CC to use unless we are using GCC.
 
736
#### Now that we know whether we are using GCC, we can decide whether
 
737
#### to use that one.
 
738
if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
 
739
  test x$cc_specified != xyes
 
740
then
 
741
  CC="$NON_GNU_CC"
 
742
fi
 
743
 
 
744
if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
 
745
then
 
746
  CC="$CC $GCC_TEST_OPTIONS"
 
747
fi
 
748
 
 
749
if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
 
750
then
 
751
  CC="$CC $NON_GCC_TEST_OPTIONS"
 
752
fi
 
753
 
 
754
dnl checks for Unix variants
 
755
AC_USE_SYSTEM_EXTENSIONS
 
756
 
 
757
### Use -Wno-pointer-sign if the compiler supports it
 
758
AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
 
759
SAVE_CFLAGS="$CFLAGS"
 
760
CFLAGS="$CFLAGS -Wno-pointer-sign"
 
761
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
 
762
if test $has_option = yes; then
 
763
   C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
 
764
fi
 
765
AC_MSG_RESULT($has_option)
 
766
CFLAGS="$SAVE_CFLAGS"
 
767
unset has_option
 
768
unset SAVE_CFLAGS
 
769
 
 
770
### Use -Wdeclaration-after-statement if the compiler supports it
 
771
AC_MSG_CHECKING([whether gcc understands -Wdeclaration-after-statement])
 
772
SAVE_CFLAGS="$CFLAGS"
 
773
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
 
774
AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
 
775
if test $has_option = yes; then
 
776
   C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
 
777
fi
 
778
AC_MSG_RESULT($has_option)
 
779
CFLAGS="$SAVE_CFLAGS"
 
780
unset has_option
 
781
unset SAVE_CFLAGS
 
782
 
 
783
#### Some other nice autoconf tests.
 
784
 
 
785
dnl checks for programs
 
786
AC_PROG_LN_S
 
787
AC_PROG_CPP
 
788
AC_PROG_INSTALL
 
789
if test "x$RANLIB" = x; then
 
790
  AC_PROG_RANLIB
 
791
fi
 
792
AC_PATH_PROG(INSTALL_INFO, install-info)
 
793
AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
 
794
AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
 
795
dnl Don't use GZIP, which is used by gzip for additional parameters.
 
796
AC_PATH_PROG(GZIP_PROG, gzip)
 
797
 
 
798
 
 
799
## Need makeinfo >= 4.6 (?) to build the manuals.
 
800
AC_PATH_PROG(MAKEINFO, makeinfo, no)
 
801
dnl By this stage, configure has already checked for egrep and set EGREP,
 
802
dnl or exited with an error if no egrep was found.
 
803
if test "$MAKEINFO" != "no" && \
 
804
  test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then
 
805
   MAKEINFO=no
 
806
fi
 
807
 
 
808
## Makeinfo is unusual.  For a released Emacs, the manuals are
 
809
## pre-built, and not deleted by the normal clean rules.  makeinfo is
 
810
## therefore in the category of "special tools" not normally required, which
 
811
## configure does not have to check for (eg autoconf itself).
 
812
## In a Bazaar checkout on the other hand, the manuals are not included.
 
813
## So makeinfo is a requirement to build from Bazaar, and configure
 
814
## should test for it as it does for any other build requirement.
 
815
## We use the presence of $srcdir/info/emacs to distinguish a release,
 
816
## with pre-built manuals, from a Bazaar checkout.
 
817
if test "$MAKEINFO" = "no"; then
 
818
  if test "x${with_makeinfo}" = "xno"; then
 
819
    MAKEINFO=off
 
820
  elif ! test -e $srcdir/info/emacs; then
 
821
    AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
 
822
source tree does not seem to have pre-built manuals in the `info' directory.
 
823
Either install a suitable version of makeinfo, or re-run configure
 
824
with the `--without-makeinfo' option to build without the manuals.] )
 
825
  fi
 
826
fi
 
827
 
 
828
dnl Add our options to ac_link now, after it is set up.
 
829
 
 
830
if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
 
831
then
 
832
  ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
 
833
fi
 
834
 
 
835
if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
 
836
then
 
837
  ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
 
838
fi
 
839
 
 
840
dnl We need -znocombreloc if we're using a relatively recent GNU ld.
 
841
dnl If we can link with the flag, it shouldn't do any harm anyhow.
 
842
dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
 
843
dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
 
844
dnl if not built to support GNU ld.
 
845
 
 
846
late_LDFLAGS=$LDFLAGS
 
847
if test "$GCC" = yes; then
 
848
  LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
 
849
else
 
850
  LDFLAGS="$LDFLAGS -znocombreloc"
 
851
fi
 
852
 
 
853
AC_MSG_CHECKING([for -znocombreloc])
 
854
AC_LINK_IFELSE([main(){return 0;}],
 
855
  [AC_MSG_RESULT(yes)],
 
856
  LDFLAGS=$late_LDFLAGS
 
857
  [AC_MSG_RESULT(no)])
 
858
 
 
859
#### Extract some information from the operating system and machine files.
 
860
 
 
861
AC_CHECKING([the machine- and system-dependent files to find out
 
862
 - which libraries the lib-src programs will want, and
 
863
 - whether the GNU malloc routines are usable])
 
864
 
 
865
### First figure out CFLAGS (which we use for running the compiler here)
 
866
### and REAL_CFLAGS (which we use for real compilation).
 
867
### The two are the same except on a few systems, where they are made
 
868
### different to work around various lossages.  For example,
 
869
### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
 
870
### as implying static linking.
 
871
 
 
872
### If the CFLAGS env var is specified, we use that value
 
873
### instead of the default.
 
874
 
 
875
### It's not important that this name contain the PID; you can't run
 
876
### two configures in the same directory and have anything work
 
877
### anyway.
 
878
tempcname="conftest.c"
 
879
 
 
880
echo '
 
881
#include "'${srcdir}'/src/'${opsysfile}'"
 
882
#include "'${srcdir}'/src/'${machfile}'"
 
883
#ifndef LIBS_MACHINE
 
884
#define LIBS_MACHINE
 
885
#endif
 
886
#ifndef LIBS_SYSTEM
 
887
#define LIBS_SYSTEM
 
888
#endif
 
889
#ifndef C_SWITCH_SYSTEM
 
890
#define C_SWITCH_SYSTEM
 
891
#endif
 
892
#ifndef C_SWITCH_MACHINE
 
893
#define C_SWITCH_MACHINE
 
894
#endif
 
895
configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
 
896
configure___ c_switch_system=C_SWITCH_SYSTEM
 
897
configure___ c_switch_machine=C_SWITCH_MACHINE
 
898
 
 
899
#ifndef LIB_X11_LIB
 
900
#define LIB_X11_LIB -lX11
 
901
#endif
 
902
 
 
903
#ifndef LIBX11_SYSTEM
 
904
#define LIBX11_SYSTEM
 
905
#endif
 
906
configure___ LIBX=LIB_X11_LIB LIBX11_SYSTEM
 
907
 
 
908
#ifdef UNEXEC
 
909
configure___ unexec=UNEXEC
 
910
#else
 
911
configure___ unexec=unexec.o
 
912
#endif
 
913
 
 
914
#ifdef SYSTEM_MALLOC
 
915
configure___ system_malloc=yes
 
916
#else
 
917
configure___ system_malloc=no
 
918
#endif
 
919
 
 
920
#ifdef USE_MMAP_FOR_BUFFERS
 
921
configure___ use_mmap_for_buffers=yes
 
922
#else
 
923
configure___ use_mmap_for_buffers=no
 
924
#endif
 
925
 
 
926
#ifndef C_DEBUG_SWITCH
 
927
#define C_DEBUG_SWITCH -g
 
928
#endif
 
929
 
 
930
#ifndef C_OPTIMIZE_SWITCH
 
931
#ifdef __GNUC__
 
932
#define C_OPTIMIZE_SWITCH -O2
 
933
#else
 
934
#define C_OPTIMIZE_SWITCH -O
 
935
#endif
 
936
#endif
 
937
 
 
938
#ifndef C_WARNINGS_SWITCH
 
939
#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
 
940
#endif
 
941
 
 
942
#ifndef LD_SWITCH_MACHINE
 
943
#define LD_SWITCH_MACHINE
 
944
#endif
 
945
 
 
946
#ifndef LD_SWITCH_SYSTEM
 
947
#define LD_SWITCH_SYSTEM
 
948
#endif
 
949
 
 
950
#ifndef LD_SWITCH_X_SITE_AUX
 
951
#define LD_SWITCH_X_SITE_AUX
 
952
#endif
 
953
 
 
954
configure___ ld_switch_system=LD_SWITCH_SYSTEM
 
955
configure___ ld_switch_machine=LD_SWITCH_MACHINE
 
956
 
 
957
#ifdef THIS_IS_CONFIGURE
 
958
 
 
959
/* Get the CFLAGS for tests in configure.  */
 
960
#ifdef __GNUC__
 
961
configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
 
962
#else
 
963
configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 
964
#endif
 
965
 
 
966
#else /* not THIS_IS_CONFIGURE */
 
967
 
 
968
/* Get the CFLAGS for real compilation.  */
 
969
#ifdef __GNUC__
 
970
configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
 
971
#else
 
972
configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 
973
#endif
 
974
 
 
975
#endif /* not THIS_IS_CONFIGURE */
 
976
' > ${tempcname}
 
977
 
 
978
LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
 
979
 
 
980
# The value of CPP is a quoted variable reference, so we need to do this
 
981
# to get its actual value...
 
982
CPP=`eval "echo $CPP"`
 
983
[eval `${CPP} -Isrc ${tempcname} \
 
984
       | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 
985
if test "x$SPECIFIED_CFLAGS" = x; then
 
986
  eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
 
987
         | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 
988
else
 
989
  REAL_CFLAGS="$CFLAGS"
 
990
fi]
 
991
rm ${tempcname}
 
992
 
 
993
ac_link="$ac_link $ld_switch_machine $ld_switch_system"
 
994
 
 
995
### Make sure subsequent tests use flags consistent with the build flags.
 
996
 
 
997
if test x"${OVERRIDE_CPPFLAGS}" != x; then
 
998
  CPPFLAGS="${OVERRIDE_CPPFLAGS}"
 
999
else
 
1000
  CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
 
1001
fi
 
1002
 
 
1003
dnl For AC_FUNC_GETLOADAVG, at least:
 
1004
AC_CONFIG_LIBOBJ_DIR(src)
 
1005
 
 
1006
dnl Do this early because it can frob feature test macros for Unix-98 &c.
 
1007
AC_SYS_LARGEFILE
 
1008
 
 
1009
## Note: at present CRT_DIR is only used for amdx86-64 and ibms390x.
 
1010
## Other machine types hard-code the location in src/[ms]/*.h.
 
1011
case "${canonical}" in
 
1012
  x86_64-*-linux-gnu* | s390x-*-linux-gnu* )
 
1013
   ## On x86-64 and s390x GNU/Linux distributions, the standard library
 
1014
   ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
 
1015
   ## For anything else (eg /usr/lib32), it is up the user to specify
 
1016
   ## the location (bug#5655).
 
1017
   ## Test for crtn.o, not just the directory, because sometimes the
 
1018
   ## directory exists but does not have the relevant files (bug#1287).
 
1019
   ## If user specified a crt-dir, use that unconditionally.
 
1020
   if test "X$CRT_DIR" = "X"; then
 
1021
     CRT_DIR=/usr/lib
 
1022
     test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
 
1023
   fi
 
1024
 
 
1025
   test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
 
1026
     AC_MSG_ERROR([crt*.o not found.  Use --with-crt-dir to specify the location.])
 
1027
   ;;
 
1028
esac
 
1029
test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
 
1030
AC_SUBST(CRT_DIR)
 
1031
 
 
1032
dnl This function defintion taken from Gnome 2.0
 
1033
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
 
1034
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
 
1035
dnl also defines GSTUFF_PKG_ERRORS on error
 
1036
AC_DEFUN([PKG_CHECK_MODULES], [
 
1037
  succeeded=no
 
1038
 
 
1039
  AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
 
1040
 
 
1041
  if test "$PKG_CONFIG" = "no" ; then
 
1042
     ifelse([$4], , [AC_MSG_ERROR([
 
1043
      *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
 
1044
  else
 
1045
     PKG_CONFIG_MIN_VERSION=0.9.0
 
1046
     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 
1047
        AC_MSG_CHECKING(for $2)
 
1048
 
 
1049
        if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
 
1050
            AC_MSG_RESULT(yes)
 
1051
            succeeded=yes
 
1052
 
 
1053
            AC_MSG_CHECKING($1_CFLAGS)
 
1054
            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
 
1055
            AC_MSG_RESULT($$1_CFLAGS)
 
1056
 
 
1057
            AC_MSG_CHECKING($1_LIBS)
 
1058
            $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
 
1059
            AC_MSG_RESULT($$1_LIBS)
 
1060
        else
 
1061
            AC_MSG_RESULT(no)
 
1062
            $1_CFLAGS=""
 
1063
            $1_LIBS=""
 
1064
            ## If we have a custom action on failure, don't print errors, but
 
1065
            ## do set a variable so people can do so.
 
1066
            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
 
1067
            ifelse([$4], ,echo $$1_PKG_ERRORS,)
 
1068
        fi
 
1069
 
 
1070
        AC_SUBST($1_CFLAGS)
 
1071
        AC_SUBST($1_LIBS)
 
1072
     else
 
1073
        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 
1074
        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 
1075
     fi
 
1076
  fi
 
1077
 
 
1078
  if test $succeeded = yes; then
 
1079
     ifelse([$3], , :, [$3])
 
1080
  else
 
1081
     ifelse([$4], , [AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4])
 
1082
  fi
 
1083
])
 
1084
 
 
1085
 
 
1086
if test "${with_sound}" != "no"; then
 
1087
  # Sound support for GNU/Linux and the free BSDs.
 
1088
  AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
 
1089
  # Emulation library used on NetBSD.
 
1090
  AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
 
1091
  AC_SUBST(LIBSOUND)
 
1092
 
 
1093
  ALSA_REQUIRED=1.0.0
 
1094
  ALSA_MODULES="alsa >= $ALSA_REQUIRED"
 
1095
  PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
 
1096
  if test $HAVE_ALSA = yes; then
 
1097
    SAVE_CFLAGS="$CFLAGS"
 
1098
    SAVE_LDFLAGS="$LDFLAGS"
 
1099
    CFLAGS="$ALSA_CFLAGS $CFLAGS"
 
1100
    LDFLAGS="$ALSA_LIBS $LDFLAGS"
 
1101
    AC_TRY_COMPILE([#include <asoundlib.h>], [snd_lib_error_set_handler (0);],
 
1102
                    emacs_alsa_normal=yes,
 
1103
                    emacs_alsa_normal=no)
 
1104
    if test "$emacs_alsa_normal" != yes; then
 
1105
      AC_TRY_COMPILE([#include <alsa/asoundlib.h>],
 
1106
                     [snd_lib_error_set_handler (0);],
 
1107
                     emacs_alsa_subdir=yes,
 
1108
                     emacs_alsa_subdir=no)
 
1109
      if test "$emacs_alsa_subdir" != yes; then
 
1110
        AC_MSG_ERROR([pkg-config found alsa, but it does not compile.  See config.log for error messages.])
 
1111
      fi
 
1112
      ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
 
1113
    fi
 
1114
 
 
1115
    CFLAGS="$SAVE_CFLAGS"
 
1116
    LDFLAGS="$SAVE_LDFLAGS"
 
1117
    LIBSOUND="$LIBSOUND $ALSA_LIBS"
 
1118
    CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
 
1119
    AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
 
1120
  fi
 
1121
  AC_SUBST(CFLAGS_SOUND)
 
1122
fi
 
1123
 
 
1124
dnl checks for header files
 
1125
AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
 
1126
  linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
 
1127
  termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
 
1128
  sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
 
1129
  sys/utsname.h pwd.h utmp.h)
 
1130
 
 
1131
AC_MSG_CHECKING(if personality LINUX32 can be set)
 
1132
AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
 
1133
               emacs_cv_personality_linux32=yes,
 
1134
               emacs_cv_personality_linux32=no)
 
1135
AC_MSG_RESULT($emacs_cv_personality_linux32)
 
1136
 
 
1137
if test $emacs_cv_personality_linux32 = yes; then
 
1138
  AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1,
 
1139
            [Define to 1 if personality LINUX32 can be set.])
 
1140
fi
 
1141
 
 
1142
dnl On Solaris 8 there's a compilation warning for term.h because
 
1143
dnl it doesn't define `bool'.
 
1144
AC_CHECK_HEADERS(term.h, , , -)
 
1145
AC_HEADER_STDC
 
1146
AC_HEADER_TIME
 
1147
AC_CHECK_DECLS([sys_siglist])
 
1148
if test $ac_cv_have_decl_sys_siglist != yes; then
 
1149
  # For Tru64, at least:
 
1150
  AC_CHECK_DECLS([__sys_siglist])
 
1151
  if test $ac_cv_have_decl___sys_siglist = yes; then
 
1152
    AC_DEFINE(sys_siglist, __sys_siglist,
 
1153
              [Define to any substitute for sys_siglist.])
 
1154
  fi
 
1155
fi
 
1156
AC_HEADER_SYS_WAIT
 
1157
 
 
1158
dnl Some systems have utime.h but don't declare the struct anyplace.
 
1159
AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
 
1160
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
 
1161
#include <sys/time.h>
 
1162
#include <time.h>
 
1163
#else
 
1164
#ifdef HAVE_SYS_TIME_H
 
1165
#include <sys/time.h>
 
1166
#else
 
1167
#include <time.h>
 
1168
#endif
 
1169
#endif
 
1170
#ifdef HAVE_UTIME_H
 
1171
#include <utime.h>
 
1172
#endif], [static struct utimbuf x; x.actime = x.modtime;],
 
1173
  emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
 
1174
if test $emacs_cv_struct_utimbuf = yes; then
 
1175
  AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if `struct utimbuf' is declared by <utime.h>.])
 
1176
fi
 
1177
 
 
1178
dnl checks for typedefs
 
1179
AC_TYPE_SIGNAL
 
1180
 
 
1181
dnl Check for speed_t typedef.
 
1182
AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
 
1183
  [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
 
1184
    emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
 
1185
if test $emacs_cv_speed_t = yes; then
 
1186
  AC_DEFINE(HAVE_SPEED_T, 1,
 
1187
           [Define to 1 if `speed_t' is declared by <termios.h>.])
 
1188
fi
 
1189
 
 
1190
AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
 
1191
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
 
1192
#include <sys/time.h>
 
1193
#include <time.h>
 
1194
#else
 
1195
#ifdef HAVE_SYS_TIME_H
 
1196
#include <sys/time.h>
 
1197
#else
 
1198
#include <time.h>
 
1199
#endif
 
1200
#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
 
1201
  emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
 
1202
HAVE_TIMEVAL=$emacs_cv_struct_timeval
 
1203
if test $emacs_cv_struct_timeval = yes; then
 
1204
  AC_DEFINE(HAVE_TIMEVAL, 1, [Define to 1 if `struct timeval' is declared by <sys/time.h>.])
 
1205
fi
 
1206
 
 
1207
AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception,
 
1208
AC_TRY_COMPILE([#include <math.h>],
 
1209
[static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;],
 
1210
  emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no))
 
1211
HAVE_EXCEPTION=$emacs_cv_struct_exception
 
1212
if test $emacs_cv_struct_exception != yes; then
 
1213
  AC_DEFINE(NO_MATHERR, 1, [Define to 1 if you don't have struct exception in math.h.])
 
1214
fi
 
1215
 
 
1216
AC_CHECK_HEADERS(sys/socket.h)
 
1217
AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
 
1218
#if HAVE_SYS_SOCKET_H
 
1219
#include <sys/socket.h>
 
1220
#endif])
 
1221
 
 
1222
dnl checks for structure members
 
1223
AC_STRUCT_TM
 
1224
AC_STRUCT_TIMEZONE
 
1225
AC_CHECK_MEMBER(struct tm.tm_gmtoff,
 
1226
                [AC_DEFINE(HAVE_TM_GMTOFF, 1,
 
1227
                           [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],,
 
1228
                [#include <time.h>])
 
1229
AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr,
 
1230
                  struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr,
 
1231
                  struct ifreq.ifr_addr], , ,
 
1232
                 [AC_INCLUDES_DEFAULT
 
1233
#if HAVE_SYS_SOCKET_H
 
1234
#include <sys/socket.h>
 
1235
#endif
 
1236
#if HAVE_NET_IF_H
 
1237
#include <net/if.h>
 
1238
#endif])
 
1239
 
 
1240
dnl checks for compiler characteristics
 
1241
 
 
1242
dnl Testing __STDC__ to determine prototype support isn't good enough.
 
1243
dnl DEC C, for instance, doesn't define it with default options, and
 
1244
dnl is used on 64-bit systems (OSF Alphas).  Similarly for volatile
 
1245
dnl and void *.
 
1246
AC_C_PROTOTYPES
 
1247
AC_C_VOLATILE
 
1248
AC_C_CONST
 
1249
dnl This isn't useful because we can't turn on use of `inline' unless
 
1250
dnl the compiler groks `extern inline'.
 
1251
dnl AC_C_INLINE
 
1252
AC_CACHE_CHECK([for void * support], emacs_cv_void_star,
 
1253
  [AC_TRY_COMPILE(, [void * foo;],
 
1254
                   emacs_cv_void_star=yes, emacs_cv_void_star=no)])
 
1255
if test $emacs_cv_void_star = yes; then
 
1256
  AC_DEFINE(POINTER_TYPE, void)
 
1257
else
 
1258
  AC_DEFINE(POINTER_TYPE, char)
 
1259
fi
 
1260
AH_TEMPLATE(POINTER_TYPE,
 
1261
            [Define as `void' if your compiler accepts `void *'; otherwise
 
1262
             define as `char'.])dnl
 
1263
 
 
1264
 
 
1265
 
 
1266
dnl This could be used for targets which can have both byte sexes.
 
1267
dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
 
1268
dnl AC_C_BIGENDIAN
 
1269
 
 
1270
dnl check for Make feature
 
1271
AC_PROG_MAKE_SET
 
1272
 
 
1273
dnl check for GNU Make if we have GCC and autodepend is on.
 
1274
if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
 
1275
   AC_MSG_CHECKING([whether we are using GNU Make])
 
1276
   HAVE_GNU_MAKE=no
 
1277
   testval=`make --version 2>/dev/null | grep 'GNU Make'`
 
1278
   if test "x$testval" != x; then
 
1279
      HAVE_GNU_MAKE=yes
 
1280
   else
 
1281
      ac_enable_autodepend=no
 
1282
   fi
 
1283
   AC_MSG_RESULT([$HAVE_GNU_MAKE])
 
1284
   if test $HAVE_GNU_MAKE = yes; then
 
1285
      AC_MSG_CHECKING([whether gcc understands -MMD -MF])
 
1286
      SAVE_CFLAGS="$CFLAGS"
 
1287
      CFLAGS="$CFLAGS -MMD -MF deps.d"
 
1288
      AC_TRY_COMPILE([], [], , ac_enable_autodepend=no)
 
1289
      CFLAGS="$SAVE_CFLAGS"
 
1290
      test -f deps.d || ac_enable_autodepend=no
 
1291
      rm -rf deps.d
 
1292
      AC_MSG_RESULT([$ac_enable_autodepend])
 
1293
   fi
 
1294
   if test $ac_enable_autodepend = yes; then
 
1295
      AC_DEFINE(AUTO_DEPEND, 1, [Generate dependencies with gcc.])
 
1296
   fi
 
1297
fi
 
1298
 
 
1299
dnl checks for operating system services
 
1300
AC_SYS_LONG_FILE_NAMES
 
1301
 
 
1302
#### Choose a window system.
 
1303
 
 
1304
AC_PATH_X
 
1305
if test "$no_x" = yes; then
 
1306
  window_system=none
 
1307
else
 
1308
  window_system=x11
 
1309
fi
 
1310
 
 
1311
## Workaround for bug in autoconf <= 2.62.
 
1312
## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
 
1313
## No need to do anything special for these standard directories.
 
1314
## This is an experiment, take it out if it causes problems.
 
1315
if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
 
1316
 
 
1317
   x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
 
1318
 
 
1319
fi
 
1320
 
 
1321
if test "${x_libraries}" != NONE; then
 
1322
  if test -n "${x_libraries}"; then
 
1323
    LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
 
1324
    LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
 
1325
  fi
 
1326
  x_default_search_path=""
 
1327
  x_search_path=${x_libraries}
 
1328
  if test -z "${x_search_path}"; then
 
1329
    x_search_path=/usr/lib
 
1330
  fi
 
1331
  for x_library in `echo ${x_search_path}: | \
 
1332
                    sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do
 
1333
    x_search_path="\
 
1334
${x_library}/X11/%L/%T/%N%C%S:\
 
1335
${x_library}/X11/%l/%T/%N%C%S:\
 
1336
${x_library}/X11/%T/%N%C%S:\
 
1337
${x_library}/X11/%L/%T/%N%S:\
 
1338
${x_library}/X11/%l/%T/%N%S:\
 
1339
${x_library}/X11/%T/%N%S"
 
1340
    if test x"${x_default_search_path}" = x; then
 
1341
      x_default_search_path=${x_search_path}
 
1342
    else
 
1343
      x_default_search_path="${x_search_path}:${x_default_search_path}"
 
1344
    fi
 
1345
  done
 
1346
fi
 
1347
if test "${x_includes}" != NONE && test -n "${x_includes}"; then
 
1348
  C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
 
1349
fi
 
1350
 
 
1351
if test x"${x_includes}" = x; then
 
1352
  bitmapdir=/usr/include/X11/bitmaps
 
1353
else
 
1354
  # accumulate include directories that have X11 bitmap subdirectories
 
1355
  bmd_acc="dummyval"
 
1356
  for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
 
1357
    if test -d "${bmd}/X11/bitmaps"; then
 
1358
      bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
 
1359
    fi
 
1360
    if test -d "${bmd}/bitmaps"; then
 
1361
      bmd_acc="${bmd_acc}:${bmd}/bitmaps"
 
1362
    fi
 
1363
  done
 
1364
  if test ${bmd_acc} != "dummyval"; then
 
1365
    bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
 
1366
  fi
 
1367
fi
 
1368
 
 
1369
HAVE_NS=no
 
1370
NS_IMPL_COCOA=no
 
1371
NS_IMPL_GNUSTEP=no
 
1372
tmp_CPPFLAGS="$CPPFLAGS"
 
1373
tmp_CFLAGS="$CFLAGS"
 
1374
CPPFLAGS="$CPPFLAGS -x objective-c"
 
1375
CFLAGS="$CFLAGS -x objective-c"
 
1376
if test "${with_ns}" != no; then
 
1377
  if test "${opsys}" = darwin; then
 
1378
     NS_IMPL_COCOA=yes
 
1379
     ns_appdir=`pwd`/nextstep/Emacs.app
 
1380
     ns_appbindir=`pwd`/nextstep/Emacs.app/Contents/MacOS
 
1381
     ns_appresdir=`pwd`/nextstep/Emacs.app/Contents/Resources
 
1382
     ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
 
1383
  elif test -f $GNUSTEP_CONFIG_FILE; then
 
1384
     NS_IMPL_GNUSTEP=yes
 
1385
     ns_appdir=`pwd`/nextstep/Emacs.app
 
1386
     ns_appbindir=`pwd`/nextstep/Emacs.app
 
1387
     ns_appresdir=`pwd`/nextstep/Emacs.app/Resources
 
1388
     ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
 
1389
     dnl FIXME sourcing this 3 times in subshells seems inefficient.
 
1390
     GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)"
 
1391
     GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
 
1392
     GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
 
1393
     CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 
1394
     CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 
1395
     REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 
1396
     LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES}"
 
1397
  fi
 
1398
  AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
 
1399
                  [AC_MSG_ERROR([`--with-ns' was specified, but the include
 
1400
  files are missing or cannot be compiled.])])
 
1401
  NS_HAVE_NSINTEGER=yes
 
1402
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
 
1403
                                     [NSInteger i;])],
 
1404
                    ns_have_nsinteger=yes,
 
1405
                    ns_have_nsinteger=no)
 
1406
  if test $ns_have_nsinteger = no; then
 
1407
    NS_HAVE_NSINTEGER=no
 
1408
  fi
 
1409
fi
 
1410
if test "${HAVE_NS}" = yes; then
 
1411
  window_system=nextstep
 
1412
  with_xft=no
 
1413
  # set up packaging dirs
 
1414
  exec_prefix=${ns_appbindir}
 
1415
  libexecdir=${ns_appbindir}/libexec
 
1416
  if test "${EN_NS_SELF_CONTAINED}" = yes; then
 
1417
     prefix=${ns_appresdir}
 
1418
  fi
 
1419
fi
 
1420
CFLAGS="$tmp_CFLAGS"
 
1421
CPPFLAGS="$tmp_CPPFLAGS"
 
1422
 
 
1423
case "${window_system}" in
 
1424
  x11 )
 
1425
    HAVE_X_WINDOWS=yes
 
1426
    HAVE_X11=yes
 
1427
    case "${with_x_toolkit}" in
 
1428
      athena | lucid ) USE_X_TOOLKIT=LUCID ;;
 
1429
      motif ) USE_X_TOOLKIT=MOTIF ;;
 
1430
      gtk ) with_gtk=yes
 
1431
dnl Dont set this for GTK.  A lot of tests below assumes Xt when
 
1432
dnl USE_X_TOOLKIT is set.
 
1433
            USE_X_TOOLKIT=none ;;
 
1434
      no ) USE_X_TOOLKIT=none ;;
 
1435
dnl If user did not say whether to use a toolkit, make this decision later:
 
1436
dnl use the toolkit if we have gtk, or X11R5 or newer.
 
1437
      * ) USE_X_TOOLKIT=maybe ;;
 
1438
    esac
 
1439
  ;;
 
1440
  nextstep | none )
 
1441
    HAVE_X_WINDOWS=no
 
1442
    HAVE_X11=no
 
1443
    USE_X_TOOLKIT=none
 
1444
  ;;
 
1445
esac
 
1446
 
 
1447
if test "$window_system" = none && test "X$with_x" != "Xno"; then
 
1448
   AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
 
1449
   if test "$HAVE_XSERVER" = true ||
 
1450
      test -n "$DISPLAY" ||
 
1451
      test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
 
1452
        AC_MSG_ERROR([You seem to be running X, but no X development libraries
 
1453
were found.  You should install the relevant development files for X
 
1454
and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
 
1455
sure you have development files for image handling, i.e.
 
1456
tiff, gif, jpeg, png and xpm.
 
1457
If you are sure you want Emacs compiled without X window support, pass
 
1458
  --without-x
 
1459
to configure.])
 
1460
   fi
 
1461
fi
 
1462
 
 
1463
### If we're using X11, we should use the X menu package.
 
1464
HAVE_MENUS=no
 
1465
case ${HAVE_X11} in
 
1466
  yes ) HAVE_MENUS=yes ;;
 
1467
esac
 
1468
 
 
1469
# Do the opsystem or machine files prohibit the use of the GNU malloc?
 
1470
# Assume not, until told otherwise.
 
1471
GNU_MALLOC=yes
 
1472
doug_lea_malloc=yes
 
1473
AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
 
1474
AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
 
1475
AC_CACHE_CHECK(whether __after_morecore_hook exists,
 
1476
               emacs_cv_var___after_morecore_hook,
 
1477
[AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
 
1478
  emacs_cv_var___after_morecore_hook=yes,
 
1479
  emacs_cv_var___after_morecore_hook=no)])
 
1480
if test $emacs_cv_var___after_morecore_hook = no; then
 
1481
  doug_lea_malloc=no
 
1482
fi
 
1483
if test "${system_malloc}" = "yes"; then
 
1484
  GNU_MALLOC=no
 
1485
  GNU_MALLOC_reason="
 
1486
    (The GNU allocators don't work with this system configuration.)"
 
1487
fi
 
1488
if test "$doug_lea_malloc" = "yes" ; then
 
1489
  if test "$GNU_MALLOC" = yes ; then
 
1490
    GNU_MALLOC_reason="
 
1491
      (Using Doug Lea's new malloc from the GNU C Library.)"
 
1492
  fi
 
1493
  AC_DEFINE(DOUG_LEA_MALLOC, 1,
 
1494
            [Define to 1 if you are using the GNU C Library.])
 
1495
fi
 
1496
 
 
1497
if test x"${REL_ALLOC}" = x; then
 
1498
  REL_ALLOC=${GNU_MALLOC}
 
1499
fi
 
1500
 
 
1501
dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
 
1502
dnl the system configuration file (s/*.h) to turn the use of mmap
 
1503
dnl in the relocating allocator on.
 
1504
 
 
1505
AC_FUNC_MMAP
 
1506
if test $use_mmap_for_buffers = yes; then
 
1507
  REL_ALLOC=no
 
1508
fi
 
1509
 
 
1510
LIBS="$libsrc_libs $LIBS"
 
1511
 
 
1512
dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
 
1513
dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
 
1514
AC_CHECK_LIB(dnet, dnet_ntoa)
 
1515
dnl This causes -lresolv to get used in subsequent tests,
 
1516
dnl which causes failures on some systems such as HPUX 9.
 
1517
dnl AC_CHECK_LIB(resolv, gethostbyname)
 
1518
 
 
1519
dnl FIXME replace main with a function we actually want from this library.
 
1520
AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
 
1521
 
 
1522
AC_CHECK_LIB(pthreads, cma_open)
 
1523
 
 
1524
dnl Check for need for bigtoc support on IBM AIX
 
1525
 
 
1526
case ${host_os} in
 
1527
aix*)
 
1528
  AC_CACHE_CHECK([for -bbigtoc option], [gdb_cv_bigtoc], [
 
1529
    case $GCC in
 
1530
    yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
 
1531
    *) gdb_cv_bigtoc=-bbigtoc ;;
 
1532
    esac
 
1533
 
 
1534
    LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
 
1535
    AC_TRY_LINK([], [int i;], [], [gdb_cv_bigtoc=])
 
1536
  ])
 
1537
  ;;
 
1538
esac
 
1539
 
 
1540
# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
 
1541
# used for the tests that follow.  We set them back to REAL_CFLAGS and
 
1542
# REAL_CPPFLAGS later on.
 
1543
 
 
1544
REAL_CPPFLAGS="$CPPFLAGS"
 
1545
 
 
1546
if test "${HAVE_X11}" = "yes"; then
 
1547
  DEFS="$C_SWITCH_X_SITE $DEFS"
 
1548
  LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
 
1549
  LIBS="$LIBX $LIBS"
 
1550
  CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
 
1551
  CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
 
1552
 
 
1553
  # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
 
1554
  # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
 
1555
  # but it's more convenient here to set LD_RUN_PATH
 
1556
  # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
 
1557
  if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
 
1558
    LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
 
1559
    export LD_RUN_PATH
 
1560
  fi
 
1561
 
 
1562
  if test "${opsys}" = "gnu-linux"; then
 
1563
    AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
 
1564
    AC_TRY_LINK([],
 
1565
     [XOpenDisplay ("foo");],
 
1566
     [xlinux_first_failure=no],
 
1567
     [xlinux_first_failure=yes])
 
1568
    if test "${xlinux_first_failure}" = "yes"; then
 
1569
      OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
 
1570
      OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
 
1571
      OLD_CPPFLAGS="$CPPFLAGS"
 
1572
      OLD_LIBS="$LIBS"
 
1573
      LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
 
1574
      C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
 
1575
      CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
 
1576
      LIBS="$LIBS -b i486-linuxaout"
 
1577
      AC_TRY_LINK([],
 
1578
       [XOpenDisplay ("foo");],
 
1579
       [xlinux_second_failure=no],
 
1580
       [xlinux_second_failure=yes])
 
1581
      if test "${xlinux_second_failure}" = "yes"; then
 
1582
        # If we get the same failure with -b, there is no use adding -b.
 
1583
        # So take it out.  This plays safe.
 
1584
        LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
 
1585
        C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
 
1586
        CPPFLAGS="$OLD_CPPFLAGS"
 
1587
        LIBS="$OLD_LIBS"
 
1588
        AC_MSG_RESULT(no)
 
1589
      else
 
1590
        AC_MSG_RESULT(yes)
 
1591
      fi
 
1592
    else
 
1593
      AC_MSG_RESULT(no)
 
1594
    fi
 
1595
  fi
 
1596
 
 
1597
  # Reportedly, some broken Solaris systems have XKBlib.h but are missing
 
1598
  # header files included from there.
 
1599
  AC_MSG_CHECKING(for Xkb)
 
1600
  AC_TRY_LINK([#include <X11/Xlib.h>
 
1601
#include <X11/XKBlib.h>],
 
1602
        [XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);],
 
1603
        emacs_xkb=yes, emacs_xkb=no)
 
1604
  AC_MSG_RESULT($emacs_xkb)
 
1605
  if test $emacs_xkb = yes; then
 
1606
    AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
 
1607
  fi
 
1608
 
 
1609
  AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
 
1610
XScreenNumberOfScreen XSetWMProtocols)
 
1611
fi
 
1612
 
 
1613
if test "${window_system}" = "x11"; then
 
1614
  AC_MSG_CHECKING(X11 version 6)
 
1615
  AC_CACHE_VAL(emacs_cv_x11_version_6,
 
1616
  [AC_TRY_LINK([#include <X11/Xlib.h>],
 
1617
[#if XlibSpecificationRelease < 6
 
1618
fail;
 
1619
#endif
 
1620
], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no)])
 
1621
  if test $emacs_cv_x11_version_6 = yes; then
 
1622
    AC_MSG_RESULT(6 or newer)
 
1623
    AC_DEFINE(HAVE_X11R6, 1,
 
1624
              [Define to 1 if you have the X11R6 or newer version of Xlib.])
 
1625
  else
 
1626
    AC_MSG_RESULT(before 6)
 
1627
  fi
 
1628
fi
 
1629
 
 
1630
 
 
1631
### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
 
1632
HAVE_RSVG=no
 
1633
if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
 
1634
  if test "${with_rsvg}" != "no"; then
 
1635
    RSVG_REQUIRED=2.11.0
 
1636
    RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
 
1637
 
 
1638
    PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
 
1639
    AC_SUBST(RSVG_CFLAGS)
 
1640
    AC_SUBST(RSVG_LIBS)
 
1641
 
 
1642
    if test ".${RSVG_CFLAGS}" != "."; then
 
1643
      HAVE_RSVG=yes
 
1644
      AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
 
1645
      CFLAGS="$CFLAGS $RSVG_CFLAGS"
 
1646
      LIBS="$RSVG_LIBS $LIBS"
 
1647
    fi
 
1648
  fi
 
1649
fi
 
1650
 
 
1651
 
 
1652
HAVE_GTK=no
 
1653
if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
 
1654
  GLIB_REQUIRED=2.6
 
1655
  GTK_REQUIRED=2.6
 
1656
  GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 
1657
 
 
1658
  dnl Checks for libraries.
 
1659
  PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
 
1660
  if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
 
1661
     AC_MSG_ERROR($GTK_PKG_ERRORS)
 
1662
  fi
 
1663
fi
 
1664
 
 
1665
 
 
1666
if test x"$pkg_check_gtk" = xyes; then
 
1667
 
 
1668
  AC_SUBST(GTK_CFLAGS)
 
1669
  AC_SUBST(GTK_LIBS)
 
1670
  C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
 
1671
  CFLAGS="$CFLAGS $GTK_CFLAGS"
 
1672
  LIBS="$GTK_LIBS $LIBS"
 
1673
  dnl Try to compile a simple GTK program.
 
1674
  GTK_COMPILES=no
 
1675
  AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
 
1676
  if test "${GTK_COMPILES}" != "yes"; then
 
1677
    if test "$USE_X_TOOLKIT" != "maybe"; then
 
1678
      AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?]);
 
1679
    fi
 
1680
  else
 
1681
    HAVE_GTK=yes
 
1682
    AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
 
1683
    USE_X_TOOLKIT=none
 
1684
    if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
 
1685
      :
 
1686
    else
 
1687
      AC_MSG_WARN([[Your version of Gtk+ will have problems with
 
1688
       closing open displays.  This is no problem if you just use
 
1689
       one display, but if you use more than one and close one of them
 
1690
       Emacs may crash.]])
 
1691
      sleep 3
 
1692
    fi
 
1693
  fi
 
1694
 
 
1695
fi
 
1696
 
 
1697
 
 
1698
if test "${HAVE_GTK}" = "yes"; then
 
1699
 
 
1700
  dnl  GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
 
1701
  dnl  a lot if #ifdef:s, say we have toolkit scrollbars.
 
1702
  if test "$with_toolkit_scroll_bars" != no; then
 
1703
    with_toolkit_scroll_bars=yes
 
1704
  fi
 
1705
 
 
1706
  dnl  Check if we can use multiple displays with this GTK version.
 
1707
  dnl  If gdk_display_open exists, assume all others are there also.
 
1708
  HAVE_GTK_MULTIDISPLAY=no
 
1709
  AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
 
1710
  if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
 
1711
    AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
 
1712
              [Define to 1 if GTK can handle more than one display.])
 
1713
  fi
 
1714
 
 
1715
  dnl  Check if we have the old file selection dialog declared and
 
1716
  dnl  in the link library.  In 2.x it may be in the library,
 
1717
  dnl  but not declared if deprecated featured has been selected out.
 
1718
  dnl  AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION.
 
1719
  HAVE_GTK_FILE_SELECTION=no
 
1720
  AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes,
 
1721
                   HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
 
1722
#include <gtk/gtk.h>])
 
1723
  if test "$HAVE_GTK_FILE_SELECTION" = yes; then
 
1724
    AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes,
 
1725
                   HAVE_GTK_FILE_SELECTION=no)
 
1726
  fi
 
1727
 
 
1728
  dnl  Check if we have the new file chooser dialog
 
1729
  HAVE_GTK_FILE_CHOOSER=no
 
1730
  AC_CHECK_DECL(GTK_TYPE_FILE_CHOOSER, HAVE_GTK_FILE_CHOOSER=yes,
 
1731
                HAVE_GTK_FILE_CHOOSER=no, [AC_INCLUDES_DEFAULT
 
1732
#include <gtk/gtk.h>])
 
1733
  if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
 
1734
    AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes,
 
1735
                   HAVE_GTK_FILE_CHOOSER=no)
 
1736
  fi
 
1737
 
 
1738
  if test "$HAVE_GTK_FILE_SELECTION" = yes \
 
1739
     && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
 
1740
    AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
 
1741
              [Define to 1 if GTK has both file selection and chooser dialog.])
 
1742
  fi
 
1743
 
 
1744
  dnl Check if pthreads are available.  Emacs only needs this when using
 
1745
  dnl gtk_file_chooser under Gnome.
 
1746
  if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
 
1747
    HAVE_GTK_AND_PTHREAD=no
 
1748
    AC_CHECK_HEADERS(pthread.h)
 
1749
    if test "$ac_cv_header_pthread_h"; then
 
1750
      AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
 
1751
    fi
 
1752
    if test "$HAVE_GTK_AND_PTHREAD" = yes; then
 
1753
      case "${canonical}" in
 
1754
        *-hpux*) ;;
 
1755
        *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
 
1756
      esac
 
1757
      AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
 
1758
               [Define to 1 if you have GTK and pthread (-lpthread).])
 
1759
    fi
 
1760
  fi
 
1761
fi
 
1762
 
 
1763
dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
 
1764
dnl other platforms.  Support for higher D-Bus versions than 1.0 is
 
1765
dnl also not configured.
 
1766
HAVE_DBUS=no
 
1767
if test "${with_dbus}" = "yes"; then
 
1768
   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
 
1769
   if test "$HAVE_DBUS" = yes; then
 
1770
     LIBS="$LIBS $DBUS_LIBS"
 
1771
     AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
 
1772
     AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
 
1773
   fi
 
1774
fi
 
1775
 
 
1776
dnl GConf has been tested under GNU/Linux only.
 
1777
dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
 
1778
HAVE_GCONF=no
 
1779
if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
 
1780
   PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
 
1781
   if test "$HAVE_GCONF" = yes; then
 
1782
      AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
 
1783
      dnl Newer GConf doesn't link with g_objects, so this is not defined.
 
1784
      AC_CHECK_FUNCS([g_type_init])
 
1785
   fi
 
1786
fi
 
1787
 
 
1788
dnl Do not put whitespace before the #include statements below.
 
1789
dnl Older compilers (eg sunos4 cc) choke on it.
 
1790
HAVE_XAW3D=no
 
1791
if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
 
1792
  if test "$with_xaw3d" != no; then
 
1793
    AC_MSG_CHECKING(for xaw3d)
 
1794
    AC_CACHE_VAL(emacs_cv_xaw3d,
 
1795
    [AC_TRY_LINK([
 
1796
#include <X11/Intrinsic.h>
 
1797
#include <X11/Xaw3d/Simple.h>],
 
1798
      [],
 
1799
      [AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb,
 
1800
                    emacs_cv_xaw3d=yes, emacs_cv_xaw3d=no)],
 
1801
      emacs_cv_xaw3d=no)])
 
1802
  else
 
1803
    emacs_cv_xaw3d=no
 
1804
  fi
 
1805
  if test $emacs_cv_xaw3d = yes; then
 
1806
    AC_MSG_RESULT([yes; using Lucid toolkit])
 
1807
    USE_X_TOOLKIT=LUCID
 
1808
    HAVE_XAW3D=yes
 
1809
    AC_DEFINE(HAVE_XAW3D, 1,
 
1810
              [Define to 1 if you have the Xaw3d library (-lXaw3d).])
 
1811
  else
 
1812
    AC_MSG_RESULT(no)
 
1813
    AC_MSG_CHECKING(for libXaw)
 
1814
    AC_CACHE_VAL(emacs_cv_xaw,
 
1815
    [AC_TRY_LINK([
 
1816
#include <X11/Intrinsic.h>
 
1817
#include <X11/Xaw/Simple.h>],
 
1818
      [],
 
1819
      emacs_cv_xaw=yes,
 
1820
      emacs_cv_xaw=no)])
 
1821
    if test $emacs_cv_xaw = yes; then
 
1822
      AC_MSG_RESULT([yes; using Lucid toolkit])
 
1823
      USE_X_TOOLKIT=LUCID
 
1824
    elif test x"${USE_X_TOOLKIT}" = xLUCID; then
 
1825
      AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
 
1826
    else
 
1827
      AC_MSG_RESULT([no; do not use toolkit by default])
 
1828
      USE_X_TOOLKIT=none
 
1829
    fi
 
1830
  fi
 
1831
fi
 
1832
 
 
1833
X_TOOLKIT_TYPE=$USE_X_TOOLKIT
 
1834
 
 
1835
if test "${USE_X_TOOLKIT}" != "none"; then
 
1836
  AC_MSG_CHECKING(X11 toolkit version)
 
1837
  AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
 
1838
  [AC_TRY_LINK([#include <X11/Intrinsic.h>],
 
1839
[#if XtSpecificationRelease < 6
 
1840
fail;
 
1841
#endif
 
1842
], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no)])
 
1843
  HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
 
1844
  if test $emacs_cv_x11_toolkit_version_6 = yes; then
 
1845
    AC_MSG_RESULT(6 or newer)
 
1846
    AC_DEFINE(HAVE_X11XTR6, 1,
 
1847
              [Define to 1 if you have the X11R6 or newer version of Xt.])
 
1848
  else
 
1849
    AC_MSG_RESULT(before 6)
 
1850
  fi
 
1851
 
 
1852
dnl If using toolkit, check whether libXmu.a exists.
 
1853
dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
 
1854
  OLDLIBS="$LIBS"
 
1855
  if test x$HAVE_X11XTR6 = xyes; then
 
1856
    LIBS="-lXt -lSM -lICE $LIBS"
 
1857
  else
 
1858
    LIBS="-lXt $LIBS"
 
1859
  fi
 
1860
  AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
 
1861
  test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
 
1862
fi
 
1863
 
 
1864
# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
 
1865
if test "${HAVE_X11}" = "yes"; then
 
1866
  if test "${USE_X_TOOLKIT}" != "none"; then
 
1867
    AC_CHECK_LIB(Xext, XShapeQueryExtension)
 
1868
  fi
 
1869
fi
 
1870
 
 
1871
if test "${USE_X_TOOLKIT}" = "MOTIF"; then
 
1872
  AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
 
1873
  [AC_TRY_COMPILE([#include <Xm/Xm.h>],
 
1874
    [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
 
1875
int x = 5;
 
1876
#else
 
1877
Motif version prior to 2.1.
 
1878
#endif],
 
1879
    emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
 
1880
  HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
 
1881
  if test $emacs_cv_motif_version_2_1 = yes; then
 
1882
    HAVE_LIBXP=no
 
1883
    AC_DEFINE(HAVE_MOTIF_2_1, 1,
 
1884
              [Define to 1 if you have Motif 2.1 or newer.])
 
1885
    AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
 
1886
    if test ${HAVE_LIBXP} = yes; then
 
1887
      AC_DEFINE(HAVE_LIBXP, 1,
 
1888
                [Define to 1 if you have the Xp library (-lXp).])
 
1889
    fi
 
1890
  else
 
1891
    AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
 
1892
    # We put this in CFLAGS temporarily to precede other -I options
 
1893
    # that might be in CFLAGS temporarily.
 
1894
    # We put this in CPPFLAGS where it precedes the other -I options.
 
1895
    OLD_CPPFLAGS=$CPPFLAGS
 
1896
    OLD_CFLAGS=$CFLAGS
 
1897
    CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
 
1898
    CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
 
1899
    [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
 
1900
      [int x = 5;],
 
1901
      emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
 
1902
    if test $emacs_cv_lesstif = yes; then
 
1903
      # Make sure this -I option remains in CPPFLAGS after it is set
 
1904
      # back to REAL_CPPFLAGS.
 
1905
      # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
 
1906
      # have those other -I options anyway.  Ultimately, having this
 
1907
      # directory ultimately in CPPFLAGS will be enough.
 
1908
      REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
 
1909
      LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
 
1910
    else
 
1911
      CFLAGS=$OLD_CFLAGS
 
1912
      CPPFLAGS=$OLD_CPPFLAGS
 
1913
    fi
 
1914
  fi
 
1915
fi
 
1916
 
 
1917
dnl Use toolkit scroll bars if configured for GTK or X toolkit and either
 
1918
dnl using Motif or Xaw3d is available, and unless
 
1919
dnl --with-toolkit-scroll-bars=no was specified.
 
1920
 
 
1921
AH_TEMPLATE(USE_TOOLKIT_SCROLL_BARS,
 
1922
            [Define to 1 if we should use toolkit scroll bars.])dnl
 
1923
USE_TOOLKIT_SCROLL_BARS=no
 
1924
if test "${with_toolkit_scroll_bars}" != "no"; then
 
1925
  if test "${USE_X_TOOLKIT}" != "none"; then
 
1926
    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
 
1927
      AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
 
1928
      HAVE_XAW3D=no
 
1929
      USE_TOOLKIT_SCROLL_BARS=yes
 
1930
    elif test "${HAVE_XAW3D}" = "yes"; then
 
1931
      AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
 
1932
      USE_TOOLKIT_SCROLL_BARS=yes
 
1933
    fi
 
1934
  elif test "${HAVE_GTK}" = "yes"; then
 
1935
    AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
 
1936
    USE_TOOLKIT_SCROLL_BARS=yes
 
1937
  elif test "${HAVE_NS}" = "yes"; then
 
1938
    AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
 
1939
    USE_TOOLKIT_SCROLL_BARS=yes
 
1940
  fi
 
1941
fi
 
1942
 
 
1943
dnl See if XIM is available.
 
1944
AC_TRY_COMPILE([
 
1945
          #include <X11/Xlib.h>
 
1946
          #include <X11/Xresource.h>],
 
1947
         [XIMProc  callback;],
 
1948
         [HAVE_XIM=yes
 
1949
         AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])],
 
1950
         HAVE_XIM=no)
 
1951
 
 
1952
dnl `--with-xim' now controls only the initial value of use_xim at run time.
 
1953
 
 
1954
if test "${with_xim}" != "no"; then
 
1955
  AC_DEFINE(USE_XIM, 1,
 
1956
            [Define to 1 if we should use XIM, if it is available.])
 
1957
fi
 
1958
 
 
1959
 
 
1960
if test "${HAVE_XIM}" != "no"; then
 
1961
  late_CFLAGS=$CFLAGS
 
1962
  if test "$GCC" = yes; then
 
1963
    CFLAGS="$CFLAGS --pedantic-errors"
 
1964
  fi
 
1965
  AC_TRY_COMPILE([
 
1966
#include <X11/Xlib.h>
 
1967
#include <X11/Xresource.h>],
 
1968
[Display *display;
 
1969
XrmDatabase db;
 
1970
char *res_name;
 
1971
char *res_class;
 
1972
XIMProc  callback;
 
1973
XPointer *client_data;
 
1974
#ifndef __GNUC__
 
1975
/* If we're not using GCC, it's probably not XFree86, and this is
 
1976
   probably right, but we can't use something like --pedantic-errors.  */
 
1977
extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
 
1978
                                           char*, XIMProc, XPointer*);
 
1979
#endif
 
1980
(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
 
1981
   client_data);],
 
1982
    [emacs_cv_arg6_star=yes])
 
1983
  AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
 
1984
         [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
 
1985
either XPointer or XPointer*.])dnl
 
1986
  if test "$emacs_cv_arg6_star" = yes; then
 
1987
    AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
 
1988
  else
 
1989
    AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
 
1990
  fi
 
1991
  CFLAGS=$late_CFLAGS
 
1992
fi
 
1993
 
 
1994
### Start of font-backend (under any platform) section.
 
1995
# (nothing here yet -- this is a placeholder)
 
1996
### End of font-backend (under any platform) section.
 
1997
 
 
1998
### Start of font-backend (under X11) section.
 
1999
if test "${HAVE_X11}" = "yes"; then
 
2000
   PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
 
2001
 
 
2002
   ## Use -lXft if available, unless `--with-xft=no'.
 
2003
   HAVE_XFT=maybe
 
2004
    if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
 
2005
      with_xft="no";
 
2006
    fi
 
2007
    if test "x${with_xft}" != "xno"; then
 
2008
 
 
2009
      PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
 
2010
      ## Because xftfont.c uses XRenderQueryExtension, we also
 
2011
      ## need to link to -lXrender.
 
2012
      HAVE_XRENDER=no
 
2013
      AC_CHECK_LIB(Xrender, XRenderQueryExtension, HAVE_XRENDER=yes)
 
2014
      if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
 
2015
        OLD_CPPFLAGS="$CPPFLAGS"
 
2016
        OLD_CFLAGS="$CFLAGS"
 
2017
        OLD_LIBS="$LIBS"
 
2018
        CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
 
2019
        CFLAGS="$CFLAGS $XFT_CFLAGS"
 
2020
        XFT_LIBS="-lXrender $XFT_LIBS"
 
2021
        LIBS="$XFT_LIBS $LIBS"
 
2022
        AC_CHECK_HEADER(X11/Xft/Xft.h,
 
2023
          AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
 
2024
 
 
2025
        if test "${HAVE_XFT}" = "yes"; then
 
2026
          AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
 
2027
            AC_SUBST(XFT_LIBS)
 
2028
          C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
 
2029
        else
 
2030
          CPPFLAGS="$OLD_CPPFLAGS"
 
2031
          CFLAGS="$OLD_CFLAGS"
 
2032
          LIBS="$OLD_LIBS"
 
2033
        fi                        # "${HAVE_XFT}" = "yes"
 
2034
      fi                          # "$HAVE_XFT" != no
 
2035
    fi                            # "x${with_xft}" != "xno"
 
2036
 
 
2037
    ## We used to allow building with FreeType and without Xft.
 
2038
    ## However, the ftx font backend driver is not in good shape.
 
2039
    if test "$HAVE_XFT" != "yes"; then
 
2040
       dnl For the "Does Emacs use" message at the end.
 
2041
       HAVE_XFT=no
 
2042
       HAVE_FREETYPE=no
 
2043
    else
 
2044
       dnl Strict linkers fail with
 
2045
       dnl ftfont.o: undefined reference to symbol 'FT_New_Face'
 
2046
       dnl if -lfreetype is not specified.
 
2047
       dnl The following is needed to set FREETYPE_LIBS.
 
2048
       PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes,
 
2049
                         HAVE_FREETYPE=no)
 
2050
 
 
2051
       test "$HAVE_FREETYPE" = "no" && AC_MSG_ERROR(libxft requires libfreetype)
 
2052
    fi
 
2053
 
 
2054
    HAVE_LIBOTF=no
 
2055
    if test "${HAVE_FREETYPE}" = "yes"; then
 
2056
      AC_DEFINE(HAVE_FREETYPE, 1,
 
2057
                [Define to 1 if using the freetype and fontconfig libraries.])
 
2058
      if test "${with_libotf}" != "no"; then
 
2059
        PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes,
 
2060
                          HAVE_LIBOTF=no)
 
2061
        if test "$HAVE_LIBOTF" = "yes"; then
 
2062
          AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
 
2063
          AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
 
2064
                       HAVE_OTF_GET_VARIATION_GLYPHS=yes,
 
2065
                       HAVE_OTF_GET_VARIATION_GLYPHS=no)
 
2066
          if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
 
2067
            AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
 
2068
                      [Define to 1 if libotf has OTF_get_variation_glyphs.])
 
2069
          fi
 
2070
        fi
 
2071
      fi
 
2072
    dnl FIXME should there be an error if HAVE_FREETYPE != yes?
 
2073
    dnl Does the new font backend require it, or can it work without it?
 
2074
    fi
 
2075
 
 
2076
    HAVE_M17N_FLT=no
 
2077
    if test "${HAVE_LIBOTF}" = yes; then
 
2078
      if test "${with_m17n_flt}" != "no"; then
 
2079
        PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
 
2080
        if test "$HAVE_M17N_FLT" = "yes"; then
 
2081
          AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
 
2082
        fi
 
2083
      fi
 
2084
    fi
 
2085
else
 
2086
    HAVE_XFT=no
 
2087
    HAVE_FREETYPE=no
 
2088
    HAVE_LIBOTF=no
 
2089
    HAVE_M17N_FLT=no
 
2090
fi
 
2091
### End of font-backend (under X11) section.
 
2092
 
 
2093
AC_SUBST(FREETYPE_CFLAGS)
 
2094
AC_SUBST(FREETYPE_LIBS)
 
2095
AC_SUBST(FONTCONFIG_CFLAGS)
 
2096
AC_SUBST(FONTCONFIG_LIBS)
 
2097
AC_SUBST(LIBOTF_CFLAGS)
 
2098
AC_SUBST(LIBOTF_LIBS)
 
2099
AC_SUBST(M17N_FLT_CFLAGS)
 
2100
AC_SUBST(M17N_FLT_LIBS)
 
2101
 
 
2102
### Use -lXpm if available, unless `--with-xpm=no'.
 
2103
HAVE_XPM=no
 
2104
if test "${HAVE_X11}" = "yes"; then
 
2105
  if test "${with_xpm}" != "no"; then
 
2106
    AC_CHECK_HEADER(X11/xpm.h,
 
2107
      [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
 
2108
    if test "${HAVE_XPM}" = "yes"; then
 
2109
      AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define)
 
2110
      AC_EGREP_CPP(no_return_alloc_pixels,
 
2111
      [#include "X11/xpm.h"
 
2112
#ifndef XpmReturnAllocPixels
 
2113
no_return_alloc_pixels
 
2114
#endif
 
2115
      ], HAVE_XPM=no, HAVE_XPM=yes)
 
2116
 
 
2117
      if test "${HAVE_XPM}" = "yes"; then
 
2118
        AC_MSG_RESULT(yes)
 
2119
      else
 
2120
        AC_MSG_RESULT(no)
 
2121
      fi
 
2122
    fi
 
2123
  fi
 
2124
 
 
2125
  if test "${HAVE_XPM}" = "yes"; then
 
2126
    AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
 
2127
  fi
 
2128
fi
 
2129
 
 
2130
### Use -ljpeg if available, unless `--with-jpeg=no'.
 
2131
HAVE_JPEG=no
 
2132
if test "${HAVE_X11}" = "yes"; then
 
2133
  if test "${with_jpeg}" != "no"; then
 
2134
    dnl Checking for jpeglib.h can lose because of a redefinition of
 
2135
    dnl  HAVE_STDLIB_H.
 
2136
    AC_CHECK_HEADER(jerror.h,
 
2137
      [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
 
2138
  fi
 
2139
 
 
2140
  AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
 
2141
  if test "${HAVE_JPEG}" = "yes"; then
 
2142
    AC_DEFINE(HAVE_JPEG)
 
2143
    AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
 
2144
        [#include <jpeglib.h>
 
2145
         version=JPEG_LIB_VERSION
 
2146
],
 
2147
        [AC_DEFINE(HAVE_JPEG)],
 
2148
        [AC_MSG_WARN([libjpeg found, but not version 6b or later])
 
2149
        HAVE_JPEG=no])
 
2150
  fi
 
2151
fi
 
2152
 
 
2153
### Use -lpng if available, unless `--with-png=no'.
 
2154
HAVE_PNG=no
 
2155
if test "${HAVE_X11}" = "yes"; then
 
2156
  if test "${with_png}" != "no"; then
 
2157
    # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
 
2158
    # in /usr/include/libpng.
 
2159
    AC_CHECK_HEADERS(png.h libpng/png.h)
 
2160
    if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
 
2161
      AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
 
2162
    fi
 
2163
  fi
 
2164
 
 
2165
  if test "${HAVE_PNG}" = "yes"; then
 
2166
    AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
 
2167
  fi
 
2168
fi
 
2169
 
 
2170
### Use -ltiff if available, unless `--with-tiff=no'.
 
2171
HAVE_TIFF=no
 
2172
if test "${HAVE_X11}" = "yes"; then
 
2173
  if test "${with_tiff}" != "no"; then
 
2174
    AC_CHECK_HEADER(tiffio.h,
 
2175
      [tifflibs="-lz -lm"
 
2176
      # At least one tiff package requires the jpeg library.
 
2177
      if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
 
2178
      AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)])
 
2179
  fi
 
2180
 
 
2181
  if test "${HAVE_TIFF}" = "yes"; then
 
2182
    AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
 
2183
  fi
 
2184
fi
 
2185
 
 
2186
### Use -lgif or -lungif if available, unless `--with-gif=no'.
 
2187
HAVE_GIF=no
 
2188
if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
 
2189
  AC_CHECK_HEADER(gif_lib.h,
 
2190
# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
 
2191
# Earlier versions can crash Emacs.
 
2192
    [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, try_libungif=yes)])
 
2193
 
 
2194
  if test "$HAVE_GIF" = yes; then
 
2195
      ac_gif_lib_name="-lgif"
 
2196
  fi
 
2197
 
 
2198
# If gif_lib.h but no libgif, try libungif.
 
2199
  if test x"$try_libungif" = xyes; then
 
2200
    AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)
 
2201
 
 
2202
    if test "$HAVE_GIF" = yes; then
 
2203
      AC_DEFINE(LIBGIF, -lungif, [Compiler option to link with the gif library (if not -lgif).])
 
2204
      ac_gif_lib_name="-lungif"
 
2205
    fi
 
2206
  fi
 
2207
 
 
2208
  if test "${HAVE_GIF}" = "yes"; then
 
2209
    AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif library (default -lgif; otherwise specify with LIBGIF).])
 
2210
  fi
 
2211
fi
 
2212
 
 
2213
dnl Check for required libraries.
 
2214
if test "${HAVE_X11}" = "yes"; then
 
2215
  MISSING=""
 
2216
  WITH_NO=""
 
2217
  test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
 
2218
    MISSING="libXpm" && WITH_NO="--with-xpm=no"
 
2219
  test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
 
2220
    MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
 
2221
  test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
 
2222
    MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
 
2223
  test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
 
2224
    MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
 
2225
  test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
 
2226
    MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
 
2227
 
 
2228
  if test "X${MISSING}" != X; then
 
2229
    AC_MSG_ERROR([The following required libraries were not found:
 
2230
    $MISSING
 
2231
Maybe some development libraries/packages are missing?
 
2232
If you don't want to link with them give
 
2233
    $WITH_NO
 
2234
as options to configure])
 
2235
  fi
 
2236
fi
 
2237
 
 
2238
### Use -lgpm if available, unless `--with-gpm=no'.
 
2239
HAVE_GPM=no
 
2240
if test "${with_gpm}" != "no"; then
 
2241
  AC_CHECK_HEADER(gpm.h,
 
2242
    [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
 
2243
fi
 
2244
 
 
2245
if test "${HAVE_GPM}" = "yes"; then
 
2246
  AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
 
2247
fi
 
2248
 
 
2249
dnl Check for malloc/malloc.h on darwin
 
2250
AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
 
2251
 
 
2252
### Use NeXTstep API to implement GUI.
 
2253
if test "${HAVE_NS}" = "yes"; then
 
2254
  AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
 
2255
  if test "${NS_IMPL_COCOA}" = "yes"; then
 
2256
    AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.])
 
2257
    GNU_OBJC_CFLAGS=
 
2258
  fi
 
2259
  if test "${NS_IMPL_GNUSTEP}" = "yes"; then
 
2260
    AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
 
2261
    GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
 
2262
  fi
 
2263
  if test "${NS_HAVE_NSINTEGER}" = "yes"; then
 
2264
    AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
 
2265
  fi
 
2266
  # We also have mouse menus.
 
2267
  HAVE_MENUS=yes
 
2268
  OTHER_FILES=ns-app
 
2269
fi
 
2270
 
 
2271
 
 
2272
### Use session management (-lSM -lICE) if available
 
2273
HAVE_X_SM=no
 
2274
if test "${HAVE_X11}" = "yes"; then
 
2275
  AC_CHECK_HEADER(X11/SM/SMlib.h,
 
2276
    [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
 
2277
 
 
2278
  if test "${HAVE_X_SM}" = "yes"; then
 
2279
    AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
 
2280
    case "$LIBS" in
 
2281
      *-lSM*) ;;
 
2282
      *)      LIBS="-lSM -lICE $LIBS" ;;
 
2283
    esac
 
2284
  fi
 
2285
fi
 
2286
 
 
2287
# If netdb.h doesn't declare h_errno, we must declare it by hand.
 
2288
AC_CACHE_CHECK(whether netdb declares h_errno,
 
2289
               emacs_cv_netdb_declares_h_errno,
 
2290
[AC_TRY_LINK([#include <netdb.h>],
 
2291
  [return h_errno;],
 
2292
  emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
 
2293
if test $emacs_cv_netdb_declares_h_errno = yes; then
 
2294
  AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
 
2295
fi
 
2296
 
 
2297
AC_FUNC_ALLOCA
 
2298
 
 
2299
dnl src/alloca.c has been removed.  Could also check if $ALLOCA is set?
 
2300
dnl FIXME is there an autoconf test that does the right thing, without
 
2301
dnl needing to call A_M_E afterwards?
 
2302
if test x"$ac_cv_func_alloca_works" != xyes; then
 
2303
   AC_MSG_ERROR( [a system implementation of alloca is required] )
 
2304
fi
 
2305
 
 
2306
# fmod, logb, and frexp are found in -lm on most systems.
 
2307
# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
 
2308
AC_CHECK_LIB(m, sqrt)
 
2309
 
 
2310
# Check for mail-locking functions in a "mail" library.  Probably this should
 
2311
# have the same check as for liblockfile below.
 
2312
AC_CHECK_LIB(mail, maillock)
 
2313
dnl Debian, at least:
 
2314
AC_CHECK_LIB(lockfile, maillock)
 
2315
# If we have the shared liblockfile, assume we must use it for mail
 
2316
# locking (e.g. Debian).  If we couldn't link against liblockfile
 
2317
# (no liblockfile.a installed), ensure that we don't need to.
 
2318
if test "$ac_cv_lib_lockfile_maillock" = no; then
 
2319
  dnl This works for files generally, not just executables.
 
2320
  dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
 
2321
  AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
 
2322
                /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
 
2323
  if test $ac_cv_prog_liblockfile = yes; then
 
2324
    AC_MSG_ERROR([Shared liblockfile found but can't link against it.
 
2325
This probably means that movemail could lose mail.
 
2326
There may be a `development' package to install containing liblockfile.])
 
2327
  else :
 
2328
  fi
 
2329
fi
 
2330
AC_CHECK_FUNCS(touchlock)
 
2331
AC_CHECK_HEADERS(maillock.h)
 
2332
 
 
2333
AC_CHECK_FUNCS(gethostname getdomainname dup2 \
 
2334
rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
 
2335
random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
 
2336
strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
 
2337
utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 
2338
__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 
2339
sendto recvfrom getsockopt setsockopt getsockname getpeername \
 
2340
gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
 
2341
memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
 
2342
cfmakeraw cfsetspeed)
 
2343
 
 
2344
AC_CHECK_HEADERS(sys/un.h)
 
2345
 
 
2346
AC_FUNC_MKTIME
 
2347
if test "$ac_cv_func_working_mktime" = no; then
 
2348
  AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
 
2349
fi
 
2350
 
 
2351
AC_FUNC_GETLOADAVG
 
2352
 
 
2353
AC_FUNC_FSEEKO
 
2354
 
 
2355
# Configure getopt.
 
2356
m4_include([m4/getopt.m4])
 
2357
gl_GETOPT_IFELSE([
 
2358
  gl_GETOPT_SUBSTITUTE_HEADER
 
2359
  gl_PREREQ_GETOPT
 
2360
  GETOPTOBJS='getopt.o getopt1.o'
 
2361
])
 
2362
AC_SUBST(GETOPTOBJS)
 
2363
 
 
2364
AC_FUNC_GETPGRP
 
2365
 
 
2366
AC_FUNC_STRFTIME
 
2367
 
 
2368
# UNIX98 PTYs.
 
2369
AC_CHECK_FUNCS(grantpt)
 
2370
 
 
2371
# PTY-related GNU extensions.
 
2372
AC_CHECK_FUNCS(getpt)
 
2373
 
 
2374
# Check this now, so that we will NOT find the above functions in ncurses.
 
2375
# That is because we have not set up to link ncurses in lib-src.
 
2376
# It's better to believe a function is not available
 
2377
# than to expect to find it in ncurses.
 
2378
AC_CHECK_LIB(ncurses, tparm)
 
2379
 
 
2380
case "$opsys" in
 
2381
  netbsd)
 
2382
    AC_SEARCH_LIBS(tputs, [ncurses terminfo termcap])
 
2383
    if test $ac_cv_search_tputs = -lterminfo; then
 
2384
      AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
 
2385
    fi
 
2386
    ;;
 
2387
esac
 
2388
 
 
2389
# Do we have res_init, for detecting changes in /etc/resolv.conf?
 
2390
 
 
2391
resolv=no
 
2392
AC_TRY_LINK([#include <netinet/in.h>
 
2393
#include <arpa/nameser.h>
 
2394
#include <resolv.h>],
 
2395
    [return res_init();],
 
2396
    have_res_init=yes, have_res_init=no)
 
2397
if test "$have_res_init" = no; then
 
2398
  OLIBS="$LIBS"
 
2399
  LIBS="$LIBS -lresolv"
 
2400
  AC_MSG_CHECKING(for res_init with -lresolv)
 
2401
  AC_TRY_LINK([#include <netinet/in.h>
 
2402
#include <arpa/nameser.h>
 
2403
#include <resolv.h>],
 
2404
    [return res_init();],
 
2405
    have_res_init=yes, have_res_init=no)
 
2406
  AC_MSG_RESULT($have_res_init)
 
2407
  if test "$have_res_init" = yes ; then
 
2408
    resolv=yes
 
2409
  fi
 
2410
  LIBS="$OLIBS"
 
2411
fi
 
2412
 
 
2413
if test "$have_res_init" = yes; then
 
2414
  AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.])
 
2415
fi
 
2416
 
 
2417
# Do we need the Hesiod library to provide the support routines?
 
2418
if test "$with_hesiod" != no ; then
 
2419
  # Don't set $LIBS here -- see comments above.
 
2420
  AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
 
2421
     [AC_CHECK_LIB(resolv, res_send, resolv=yes,
 
2422
                  [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
 
2423
  if test "$resolv" = yes ; then
 
2424
    RESOLVLIB=-lresolv
 
2425
  else
 
2426
    RESOLVLIB=
 
2427
  fi
 
2428
  AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
 
2429
        [AC_DEFINE(HAVE_LIBHESIOD, 1,
 
2430
                  [Define to 1 if you have the hesiod library (-lhesiod).])],
 
2431
        :, $RESOLVLIB)])
 
2432
fi
 
2433
 
 
2434
# Do we need libresolv (due to res_init or Hesiod)?
 
2435
if test "$resolv" = yes ; then
 
2436
  AC_DEFINE(HAVE_LIBRESOLV, 1,
 
2437
            [Define to 1 if you have the resolv library (-lresolv).])
 
2438
fi
 
2439
 
 
2440
# These tell us which Kerberos-related libraries to use.
 
2441
if test "${with_kerberos}" != no; then
 
2442
  AC_CHECK_LIB(com_err, com_err)
 
2443
  AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt)
 
2444
  AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
 
2445
  AC_CHECK_LIB(krb5, krb5_init_context)
 
2446
  if test "${with_kerberos5}" = no; then
 
2447
    AC_CHECK_LIB(des425, des_cbc_encrypt,,
 
2448
                 [AC_CHECK_LIB(des, des_cbc_encrypt)])
 
2449
    AC_CHECK_LIB(krb4, krb_get_cred,,
 
2450
                 [AC_CHECK_LIB(krb, krb_get_cred)])
 
2451
  fi
 
2452
 
 
2453
  if test "${with_kerberos5}" != no; then
 
2454
    AC_CHECK_HEADERS(krb5.h,
 
2455
      [AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
 
2456
                        [#include <krb5.h>])])
 
2457
  else
 
2458
    AC_CHECK_HEADERS(des.h,,
 
2459
                     [AC_CHECK_HEADERS(kerberosIV/des.h,,
 
2460
                                       [AC_CHECK_HEADERS(kerberos/des.h)])])
 
2461
    AC_CHECK_HEADERS(krb.h,,
 
2462
                     [AC_CHECK_HEADERS(kerberosIV/krb.h,,
 
2463
                                       [AC_CHECK_HEADERS(kerberos/krb.h)])])
 
2464
  fi
 
2465
  AC_CHECK_HEADERS(com_err.h)
 
2466
fi
 
2467
 
 
2468
# Solaris requires -lintl if you want strerror (which calls dgettext)
 
2469
# to return localized messages.
 
2470
AC_CHECK_LIB(intl, dgettext)
 
2471
 
 
2472
AC_MSG_CHECKING(whether localtime caches TZ)
 
2473
AC_CACHE_VAL(emacs_cv_localtime_cache,
 
2474
[if test x$ac_cv_func_tzset = xyes; then
 
2475
AC_TRY_RUN([#include <time.h>
 
2476
extern char **environ;
 
2477
unset_TZ ()
 
2478
{
 
2479
  char **from, **to;
 
2480
  for (to = from = environ; (*to = *from); from++)
 
2481
    if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
 
2482
      to++;
 
2483
}
 
2484
char TZ_GMT0[] = "TZ=GMT0";
 
2485
char TZ_PST8[] = "TZ=PST8";
 
2486
main()
 
2487
{
 
2488
  time_t now = time ((time_t *) 0);
 
2489
  int hour_GMT0, hour_unset;
 
2490
  if (putenv (TZ_GMT0) != 0)
 
2491
    exit (1);
 
2492
  hour_GMT0 = localtime (&now)->tm_hour;
 
2493
  unset_TZ ();
 
2494
  hour_unset = localtime (&now)->tm_hour;
 
2495
  if (putenv (TZ_PST8) != 0)
 
2496
    exit (1);
 
2497
  if (localtime (&now)->tm_hour == hour_GMT0)
 
2498
    exit (1);
 
2499
  unset_TZ ();
 
2500
  if (localtime (&now)->tm_hour != hour_unset)
 
2501
    exit (1);
 
2502
  exit (0);
 
2503
}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
 
2504
[# If we have tzset, assume the worst when cross-compiling.
 
2505
emacs_cv_localtime_cache=yes])
 
2506
else
 
2507
        # If we lack tzset, report that localtime does not cache TZ,
 
2508
        # since we can't invalidate the cache if we don't have tzset.
 
2509
        emacs_cv_localtime_cache=no
 
2510
fi])dnl
 
2511
AC_MSG_RESULT($emacs_cv_localtime_cache)
 
2512
if test $emacs_cv_localtime_cache = yes; then
 
2513
  AC_DEFINE(LOCALTIME_CACHE, 1,
 
2514
            [Define to 1 if localtime caches TZ.])
 
2515
fi
 
2516
 
 
2517
if test "x$HAVE_TIMEVAL" = xyes; then
 
2518
  AC_CHECK_FUNCS(gettimeofday)
 
2519
  if test $ac_cv_func_gettimeofday = yes; then
 
2520
    AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
 
2521
                   emacs_cv_gettimeofday_two_arguments,
 
2522
    [AC_TRY_COMPILE([
 
2523
#ifdef TIME_WITH_SYS_TIME
 
2524
#include <sys/time.h>
 
2525
#include <time.h>
 
2526
#else
 
2527
#ifdef HAVE_SYS_TIME_H
 
2528
#include <sys/time.h>
 
2529
#else
 
2530
#include <time.h>
 
2531
#endif
 
2532
#endif],
 
2533
      [struct timeval time;
 
2534
       gettimeofday (&time, 0);],
 
2535
      emacs_cv_gettimeofday_two_arguments=yes,
 
2536
      emacs_cv_gettimeofday_two_arguments=no)])
 
2537
    if test $emacs_cv_gettimeofday_two_arguments = no; then
 
2538
      AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT, 1,
 
2539
                [Define to 1 if gettimeofday accepts only one argument.])
 
2540
    fi
 
2541
  fi
 
2542
fi
 
2543
 
 
2544
ok_so_far=yes
 
2545
AC_CHECK_FUNC(socket, , ok_so_far=no)
 
2546
if test $ok_so_far = yes; then
 
2547
  AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
 
2548
fi
 
2549
if test $ok_so_far = yes; then
 
2550
  AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
 
2551
fi
 
2552
if test $ok_so_far = yes; then
 
2553
dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
 
2554
  AC_DEFINE(HAVE_INET_SOCKETS, 1,
 
2555
            [Define to 1 if you have inet sockets.])
 
2556
fi
 
2557
 
 
2558
AC_CHECK_HEADERS(sys/ioctl.h)
 
2559
 
 
2560
if test -f /usr/lpp/X11/bin/smt.exp; then
 
2561
  AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
 
2562
            [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
 
2563
fi
 
2564
 
 
2565
AC_MSG_CHECKING(whether system supports dynamic ptys)
 
2566
if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
 
2567
  AC_MSG_RESULT(yes)
 
2568
  AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
 
2569
else
 
2570
  AC_MSG_RESULT(no)
 
2571
fi
 
2572
 
 
2573
AC_FUNC_FORK
 
2574
 
 
2575
dnl Adapted from Haible's version.
 
2576
AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
 
2577
  [AC_TRY_LINK([#include <langinfo.h>],
 
2578
    [char* cs = nl_langinfo(CODESET);],
 
2579
    emacs_cv_langinfo_codeset=yes,
 
2580
    emacs_cv_langinfo_codeset=no)
 
2581
  ])
 
2582
if test $emacs_cv_langinfo_codeset = yes; then
 
2583
  AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
 
2584
    [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
 
2585
fi
 
2586
 
 
2587
AC_CHECK_TYPES(size_t)
 
2588
 
 
2589
AC_TYPE_MBSTATE_T
 
2590
 
 
2591
dnl Restrict could probably be used effectively other than in regex.c.
 
2592
AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
 
2593
  [AC_TRY_COMPILE([void fred (int *restrict x);], [],
 
2594
                  emacs_cv_c_restrict=yes,
 
2595
                  [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
 
2596
                                  emacs_cv_c_restrict=__restrict,
 
2597
                                  emacs_cv_c_restrict=no)])])
 
2598
case "$emacs_cv_c_restrict" in
 
2599
  yes) emacs_restrict=restrict;;
 
2600
  no) emacs_restrict="";;
 
2601
  *) emacs_restrict="$emacs_cv_c_restrict";;
 
2602
esac
 
2603
if test "$emacs_restrict" != __restrict; then
 
2604
  AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
 
2605
    [Define to compiler's equivalent of C99 restrict keyword.
 
2606
     Don't define if equivalent is `__restrict'.])
 
2607
fi
 
2608
 
 
2609
AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
 
2610
  [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
 
2611
                  emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
 
2612
if test "$emacs_cv_c_restrict_arr" = yes; then
 
2613
  AC_DEFINE(__restrict_arr, __restrict,
 
2614
    [Define to compiler's equivalent of C99 restrict keyword in array
 
2615
     declarations.  Define as empty for no equivalent.])
 
2616
fi
 
2617
 
 
2618
dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
 
2619
dnl how the tty code is related to POSIX and/or other versions of termios.
 
2620
dnl The following looks like a useful start.
 
2621
dnl
 
2622
dnl AC_SYS_POSIX_TERMIOS
 
2623
dnl if test $ac_cv_sys_posix_termios = yes; then
 
2624
dnl    AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions
 
2625
dnl                                and macros for terminal control.])
 
2626
dnl    AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.])
 
2627
dnl fi
 
2628
 
 
2629
dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
 
2630
 
 
2631
# Set up the CFLAGS for real compilation, so we can substitute it.
 
2632
CFLAGS="$REAL_CFLAGS"
 
2633
CPPFLAGS="$REAL_CPPFLAGS"
 
2634
 
 
2635
## Hack to detect a buggy GCC version.
 
2636
if test "x$GCC" = xyes \
 
2637
   && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
 
2638
   && test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \
 
2639
   && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
 
2640
   AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
 
2641
fi
 
2642
 
 
2643
#### Find out which version of Emacs this is.
 
2644
[version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
 
2645
         | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
 
2646
if test x"${version}" = x; then
 
2647
  AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
 
2648
fi
 
2649
if test x"${version}" != x"$PACKAGE_VERSION"; then
 
2650
  AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/lisp/version.el'.])
 
2651
fi
 
2652
 
 
2653
### Specify what sort of things we'll be editing into Makefile and config.h.
 
2654
### Use configuration here uncanonicalized to avoid exceeding size limits.
 
2655
AC_SUBST(version)
 
2656
AC_SUBST(configuration)
 
2657
AC_SUBST(canonical)
 
2658
AC_SUBST(srcdir)
 
2659
AC_SUBST(prefix)
 
2660
AC_SUBST(exec_prefix)
 
2661
AC_SUBST(bindir)
 
2662
AC_SUBST(datadir)
 
2663
AC_SUBST(sharedstatedir)
 
2664
AC_SUBST(libexecdir)
 
2665
AC_SUBST(mandir)
 
2666
AC_SUBST(infodir)
 
2667
AC_SUBST(lispdir)
 
2668
AC_SUBST(locallisppath)
 
2669
AC_SUBST(lisppath)
 
2670
AC_SUBST(x_default_search_path)
 
2671
AC_SUBST(etcdir)
 
2672
AC_SUBST(archlibdir)
 
2673
AC_SUBST(docdir)
 
2674
AC_SUBST(bitmapdir)
 
2675
AC_SUBST(gamedir)
 
2676
AC_SUBST(gameuser)
 
2677
AC_SUBST(c_switch_system)
 
2678
AC_SUBST(c_switch_machine)
 
2679
AC_SUBST(LD_SWITCH_X_SITE)
 
2680
AC_SUBST(LD_SWITCH_X_SITE_AUX)
 
2681
AC_SUBST(C_SWITCH_X_SITE)
 
2682
AC_SUBST(CFLAGS)
 
2683
AC_SUBST(X_TOOLKIT_TYPE)
 
2684
AC_SUBST(machfile)
 
2685
AC_SUBST(opsysfile)
 
2686
AC_SUBST(GETLOADAVG_LIBS)
 
2687
AC_SUBST(ns_appdir)
 
2688
AC_SUBST(ns_appbindir)
 
2689
AC_SUBST(ns_appresdir)
 
2690
AC_SUBST(ns_appsrc)
 
2691
AC_SUBST(GNUSTEP_MAKEFILES)
 
2692
AC_SUBST(GNUSTEP_SYSTEM_HEADERS)
 
2693
AC_SUBST(GNUSTEP_SYSTEM_LIBRARIES)
 
2694
AC_SUBST(GNU_OBJC_CFLAGS)
 
2695
AC_SUBST(LIB_SRC_EXTRA_INSTALLABLES)
 
2696
AC_SUBST(OTHER_FILES)
 
2697
 
 
2698
AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
 
2699
                   [Define to the canonical Emacs configuration name.])
 
2700
AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
 
2701
                   [Define to the options passed to configure.])
 
2702
AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
 
2703
                   [Define to the used machine dependent file.])
 
2704
AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
 
2705
                   [Define to the used os dependent file.])
 
2706
AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
 
2707
[Define LD_SWITCH_X_SITE to contain any special flags your loader
 
2708
 may need to deal with X Windows.  For instance, if you've defined
 
2709
 HAVE_X_WINDOWS above and your X libraries aren't in a place that
 
2710
 your loader can find on its own, you might want to add "-L/..." or
 
2711
 something similar.])
 
2712
AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
 
2713
                   [Define LD_SWITCH_X_SITE_AUX with an -R option
 
2714
                    in case it's needed (for Solaris, for example).])
 
2715
AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE},
 
2716
[Define C_SWITCH_X_SITE to contain any special flags your compiler
 
2717
 may need to deal with X Windows.  For instance, if you've defined
 
2718
 HAVE_X_WINDOWS above and your X include files aren't in a place
 
2719
 that your compiler can find on its own, you might want to add
 
2720
 "-I/..." or something similar.])
 
2721
AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC},
 
2722
                   [Define to the unexec source file name.])
 
2723
 
 
2724
if test "${HAVE_X_WINDOWS}" = "yes" ; then
 
2725
  AC_DEFINE(HAVE_X_WINDOWS, 1,
 
2726
            [Define to 1 if you want to use the X window system.])
 
2727
fi
 
2728
if test "${USE_X_TOOLKIT}" != "none" ; then
 
2729
  AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
 
2730
  if test "${USE_X_TOOLKIT}" = "LUCID"; then
 
2731
    AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
 
2732
  elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
 
2733
    AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
 
2734
  fi
 
2735
fi
 
2736
if test "${HAVE_X11}" = "yes" ; then
 
2737
  AC_DEFINE(HAVE_X11, 1,
 
2738
            [Define to 1 if you want to use version 11 of X windows.
 
2739
             Otherwise, Emacs expects to use version 10.])
 
2740
fi
 
2741
if test "${HAVE_MENUS}" = "yes" ; then
 
2742
  AC_DEFINE(HAVE_MENUS, 1,
 
2743
            [Define to 1 if you have mouse menus.
 
2744
             (This is automatic if you use X, but the option to specify it remains.)
 
2745
             It is also defined with other window systems that support xmenu.c.])
 
2746
fi
 
2747
if test "${GNU_MALLOC}" = "yes" ; then
 
2748
  AC_DEFINE(GNU_MALLOC, 1,
 
2749
            [Define to 1 if you want to use the GNU memory allocator.])
 
2750
fi
 
2751
if test "${REL_ALLOC}" = "yes" ; then
 
2752
  AC_DEFINE(REL_ALLOC, 1,
 
2753
            [Define REL_ALLOC if you want to use the relocating allocator for
 
2754
             buffer space.])
 
2755
fi
 
2756
 
 
2757
 
 
2758
AH_TOP([/* GNU Emacs site configuration template file.
 
2759
   Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
 
2760
     2006, 2007, 2008, 2009, 2010, 2011, 2012  Free Software Foundation, Inc.
 
2761
 
 
2762
This file is part of GNU Emacs.
 
2763
 
 
2764
GNU Emacs is free software: you can redistribute it and/or modify
 
2765
it under the terms of the GNU General Public License as published by
 
2766
the Free Software Foundation, either version 3 of the License, or
 
2767
(at your option) any later version.
 
2768
 
 
2769
GNU Emacs is distributed in the hope that it will be useful,
 
2770
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
2771
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
2772
GNU General Public License for more details.
 
2773
 
 
2774
You should have received a copy of the GNU General Public License
 
2775
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
2776
 
 
2777
 
 
2778
/* No code in Emacs #includes config.h twice, but some bits of code
 
2779
   intended to work with other packages as well (like gmalloc.c)
 
2780
   think they can include it as many times as they like.  */
 
2781
#ifndef EMACS_CONFIG_H
 
2782
#define EMACS_CONFIG_H
 
2783
])dnl
 
2784
 
 
2785
AH_BOTTOM([
 
2786
/* If we're using X11/Carbon/GNUstep, define some consequences.  */
 
2787
#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
 
2788
#define HAVE_WINDOW_SYSTEM
 
2789
#define HAVE_MOUSE
 
2790
#endif
 
2791
 
 
2792
/* Define AMPERSAND_FULL_NAME if you use the convention
 
2793
   that & in the full name stands for the login id.  */
 
2794
/* Turned on June 1996 supposing nobody will mind it.  */
 
2795
#define AMPERSAND_FULL_NAME
 
2796
 
 
2797
/* Define HAVE_SOUND if we have sound support.  We know it works
 
2798
   and compiles only on the specified platforms.   For others,
 
2799
   it probably doesn't make sense to try.  */
 
2800
 
 
2801
#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
 
2802
#ifdef HAVE_MACHINE_SOUNDCARD_H
 
2803
#define HAVE_SOUND 1
 
2804
#endif
 
2805
#ifdef HAVE_SYS_SOUNDCARD_H
 
2806
#define HAVE_SOUND 1
 
2807
#endif
 
2808
#ifdef HAVE_SOUNDCARD_H
 
2809
#define HAVE_SOUND 1
 
2810
#endif
 
2811
#ifdef HAVE_ALSA
 
2812
#define HAVE_SOUND 1
 
2813
#endif
 
2814
#endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
 
2815
 
 
2816
/* If using GNU, then support inline function declarations. */
 
2817
/* Don't try to switch on inline handling as detected by AC_C_INLINE
 
2818
   generally, because even if non-gcc compilers accept `inline', they
 
2819
   may reject `extern inline'.  */
 
2820
#if defined (__GNUC__) && defined (OPTIMIZE)
 
2821
#define INLINE __inline__
 
2822
#else
 
2823
#define INLINE
 
2824
#endif
 
2825
 
 
2826
/* `subprocesses' should be defined if you want to
 
2827
   have code for asynchronous subprocesses
 
2828
   (as used in M-x compile and M-x shell).
 
2829
   Only MSDOS does not support this (it overrides
 
2830
   this in its config_opsysfile below).  */
 
2831
 
 
2832
#define subprocesses
 
2833
 
 
2834
/* Include the os and machine dependent files.  */
 
2835
#include config_opsysfile
 
2836
#include config_machfile
 
2837
 
 
2838
/* Set up some defines, C and LD flags for NeXTstep interface on GNUstep.
 
2839
  (There is probably a better place to do this, but right now the Cocoa
 
2840
   side does this in s/darwin.h and we cannot
 
2841
   parallel this exactly since GNUstep is multi-OS. */
 
2842
#ifdef HAVE_NS
 
2843
# ifdef NS_IMPL_GNUSTEP
 
2844
/* See also .m.o rule in Makefile.in */
 
2845
/* FIXME: are all these flags really needed?  Document here why.  */
 
2846
#  define C_SWITCH_X_SYSTEM -D_REENTRANT -fPIC -fno-strict-aliasing
 
2847
/* GNUstep needs a bit more pure memory.  Of the existing knobs,
 
2848
SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.  */
 
2849
#  define SYSTEM_PURESIZE_EXTRA 30000
 
2850
# endif /* NS_IMPL_GNUSTEP */
 
2851
#endif /* HAVE_NS */
 
2852
 
 
2853
/* SIGTYPE is the macro we actually use.  */
 
2854
#ifndef SIGTYPE
 
2855
#define SIGTYPE RETSIGTYPE
 
2856
#endif
 
2857
 
 
2858
#ifdef emacs /* Don't do this for lib-src.  */
 
2859
/* Tell regex.c to use a type compatible with Emacs.  */
 
2860
#define RE_TRANSLATE_TYPE Lisp_Object
 
2861
#define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
 
2862
#ifdef make_number
 
2863
/* If make_number is a macro, use it.  */
 
2864
#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
 
2865
#else
 
2866
/* If make_number is a function, avoid it.  */
 
2867
#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
 
2868
#endif
 
2869
#endif
 
2870
 
 
2871
/* Avoid link-time collision with system mktime if we will use our own.  */
 
2872
#if ! HAVE_MKTIME || BROKEN_MKTIME
 
2873
#define mktime emacs_mktime
 
2874
#endif
 
2875
 
 
2876
#define my_strftime nstrftime   /* for strftime.c */
 
2877
 
 
2878
/* The rest of the code currently tests the CPP symbol BSTRING.
 
2879
   Override any claims made by the system-description files.
 
2880
   Note that on some SCO version it is possible to have bcopy and not bcmp.  */
 
2881
#undef BSTRING
 
2882
#if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
 
2883
#define BSTRING
 
2884
#endif
 
2885
 
 
2886
/* Some of the files of Emacs which are intended for use with other
 
2887
   programs assume that if you have a config.h file, you must declare
 
2888
   the type of getenv.
 
2889
 
 
2890
   This declaration shouldn't appear when alloca.s or Makefile.in
 
2891
   includes config.h.  */
 
2892
#ifndef NOT_C_CODE
 
2893
extern char *getenv ();
 
2894
#endif
 
2895
 
 
2896
/* These default definitions are good for almost all machines.
 
2897
   The exceptions override them in m/MACHINE.h.  */
 
2898
 
 
2899
#ifndef BITS_PER_CHAR
 
2900
#define BITS_PER_CHAR 8
 
2901
#endif
 
2902
 
 
2903
#ifndef BITS_PER_SHORT
 
2904
#define BITS_PER_SHORT 16
 
2905
#endif
 
2906
 
 
2907
/* Note that lisp.h uses this in a preprocessor conditional, so it
 
2908
   would not work to use sizeof.  That being so, we do all of them
 
2909
   without sizeof, for uniformity's sake.  */
 
2910
#ifndef BITS_PER_INT
 
2911
#define BITS_PER_INT 32
 
2912
#endif
 
2913
 
 
2914
#ifndef BITS_PER_LONG
 
2915
#ifdef _LP64
 
2916
#define BITS_PER_LONG 64
 
2917
#else
 
2918
#define BITS_PER_LONG 32
 
2919
#endif
 
2920
#endif
 
2921
 
 
2922
/* Define if the compiler supports function prototypes.  It may do so
 
2923
   but not define __STDC__ (e.g. DEC C by default) or may define it as
 
2924
   zero.  */
 
2925
#undef PROTOTYPES
 
2926
/* For mktime.c:  */
 
2927
#ifndef __P
 
2928
# if defined PROTOTYPES
 
2929
#  define __P(args) args
 
2930
# else
 
2931
#  define __P(args) ()
 
2932
# endif  /* GCC.  */
 
2933
#endif /* __P */
 
2934
 
 
2935
/* Don't include "string.h" or <stdlib.h> in non-C code.  */
 
2936
#ifndef NOT_C_CODE
 
2937
#ifdef HAVE_STRING_H
 
2938
#include "string.h"
 
2939
#endif
 
2940
#ifdef HAVE_STRINGS_H
 
2941
#include "strings.h"  /* May be needed for bcopy & al. */
 
2942
#endif
 
2943
#ifdef HAVE_STDLIB_H
 
2944
#include <stdlib.h>
 
2945
#endif
 
2946
#ifdef HAVE_ALLOCA_H
 
2947
# include <alloca.h>
 
2948
#elif defined __GNUC__
 
2949
# define alloca __builtin_alloca
 
2950
#elif defined _AIX
 
2951
# define alloca __alloca
 
2952
#else
 
2953
# include <stddef.h>
 
2954
# ifdef  __cplusplus
 
2955
extern "C"
 
2956
# endif
 
2957
void *alloca (size_t);
 
2958
#endif
 
2959
#ifndef HAVE_SIZE_T
 
2960
typedef unsigned size_t;
 
2961
#endif
 
2962
#endif /* NOT_C_CODE */
 
2963
 
 
2964
/* Define HAVE_X_I18N if we have usable i18n support.  */
 
2965
 
 
2966
#ifdef HAVE_X11R6
 
2967
#define HAVE_X_I18N
 
2968
#elif !defined X11R5_INHIBIT_I18N
 
2969
#define HAVE_X_I18N
 
2970
#endif
 
2971
 
 
2972
/* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
 
2973
 
 
2974
#if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
 
2975
#define HAVE_X11R6_XIM
 
2976
#endif
 
2977
 
 
2978
#if defined __GNUC__ && (__GNUC__ > 2 \
 
2979
                         || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
 
2980
#define NO_RETURN       __attribute__ ((__noreturn__))
 
2981
#else
 
2982
#define NO_RETURN       /* nothing */
 
2983
#endif
 
2984
 
 
2985
/* These won't be used automatically yet.  We also need to know, at least,
 
2986
   that the stack is continuous.  */
 
2987
#ifdef __GNUC__
 
2988
#  ifndef GC_SETJMP_WORKS
 
2989
  /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
 
2990
     see NON_SAVING_SETJMP in the target descriptions.  */
 
2991
  /* Exceptions (see NON_SAVING_SETJMP in target description) are
 
2992
     SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
 
2993
     Fixme: Deal with SVR3.  */
 
2994
#    define GC_SETJMP_WORKS 1
 
2995
#  endif
 
2996
#  ifndef GC_LISP_OBJECT_ALIGNMENT
 
2997
#    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
 
2998
#  endif
 
2999
#endif
 
3000
 
 
3001
#ifndef HAVE_BCOPY
 
3002
#define bcopy(a,b,s) memcpy (b,a,s)
 
3003
#endif
 
3004
#ifndef HAVE_BZERO
 
3005
#define bzero(a,s) memset (a,0,s)
 
3006
#endif
 
3007
#ifndef HAVE_BCMP
 
3008
#define BCMP memcmp
 
3009
#endif
 
3010
 
 
3011
#endif /* EMACS_CONFIG_H */
 
3012
 
 
3013
/*
 
3014
Local Variables:
 
3015
mode: c
 
3016
End:
 
3017
*/
 
3018
])dnl
 
3019
 
 
3020
#### Report on what we decided to do.
 
3021
#### Report GTK as a toolkit, even if it doesn't use Xt.
 
3022
#### It makes printing result more understandable as using GTK sets
 
3023
#### toolkit_scroll_bars to yes by default.
 
3024
if test "${HAVE_GTK}" = "yes"; then
 
3025
  USE_X_TOOLKIT=GTK
 
3026
fi
 
3027
 
 
3028
echo "
 
3029
Configured for \`${canonical}'.
 
3030
 
 
3031
  Where should the build process find the source code?    ${srcdir}
 
3032
  What operating system and machine description files should Emacs use?
 
3033
        \`${opsysfile}' and \`${machfile}'
 
3034
  What compiler should emacs be built with?               ${CC} ${CFLAGS}
 
3035
  Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
 
3036
  Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
 
3037
  Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
 
3038
  What window system should Emacs use?                    ${window_system}
 
3039
  What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
 
3040
 
 
3041
if test -n "${x_includes}"; then
 
3042
echo "  Where do we find X Windows header files?                ${x_includes}"
 
3043
else
 
3044
echo "  Where do we find X Windows header files?                Standard dirs"
 
3045
fi
 
3046
if test -n "${x_libraries}"; then
 
3047
echo "  Where do we find X Windows libraries?                   ${x_libraries}"
 
3048
else
 
3049
echo "  Where do we find X Windows libraries?                   Standard dirs"
 
3050
fi
 
3051
 
 
3052
echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
 
3053
echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
 
3054
echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
 
3055
echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
 
3056
echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $ac_gif_lib_name"
 
3057
echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
 
3058
echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
 
3059
echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
 
3060
echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
 
3061
echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
 
3062
 
 
3063
echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
 
3064
echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
 
3065
echo "  Does Emacs use -lotf?                                   ${HAVE_LIBOTF}"
 
3066
echo "  Does Emacs use -lxft?                                   ${HAVE_XFT}"
 
3067
 
 
3068
echo "  Does Emacs use toolkit scroll bars?                     ${USE_TOOLKIT_SCROLL_BARS}"
 
3069
echo
 
3070
 
 
3071
if test $USE_XASSERTS = yes; then
 
3072
   echo "  Compiling with asserts turned on."
 
3073
   CPPFLAGS="$CPPFLAGS -DXASSERTS=1"
 
3074
fi
 
3075
 
 
3076
echo
 
3077
 
 
3078
if test "$HAVE_NS" = "yes"; then
 
3079
   echo
 
3080
   echo "You must run \"make install\" in order to test the built application.
 
3081
The installed application will go to nextstep/Emacs.app and can be
 
3082
run or moved from there."
 
3083
   if test "$EN_NS_SELF_CONTAINED" = "yes"; then
 
3084
      echo "The application will be fully self-contained."
 
3085
    else
 
3086
      echo "The lisp resources for the application will be installed under ${prefix}.
 
3087
You may need to run \"make install\" with sudo.  The application will fail
 
3088
to run if these resources are not installed."
 
3089
   fi
 
3090
   echo
 
3091
fi
 
3092
 
 
3093
 
 
3094
# Remove any trailing slashes in these variables.
 
3095
[test "${prefix}" != NONE &&
 
3096
  prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
 
3097
test "${exec_prefix}" != NONE &&
 
3098
  exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
 
3099
 
 
3100
# Now get this: Some word that is part of the ${srcdir} directory name
 
3101
# or the ${configuration} value might, just might, happen to be an
 
3102
# identifier like `sun4' or `i386' or something, and be predefined by
 
3103
# the C preprocessor to some helpful value like 1, or maybe the empty
 
3104
# string.  Needless to say consequent macro substitutions are less
 
3105
# than conducive to the makefile finding the correct directory.
 
3106
[
 
3107
case $canonical in
 
3108
     i[456]86-*) extra_undefs=i386 ;;
 
3109
     *) extra_undefs= ;;
 
3110
esac
 
3111
cpp_undefs="`echo $srcdir $configuration $canonical unix $extra_undefs |
 
3112
  sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
 
3113
  -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g'`"]
 
3114
 
 
3115
## Check if the C preprocessor will convert `..' to `. .'.  If so, set
 
3116
## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
 
3117
## from Makefile.c can correctly provide the arg `-traditional' to the
 
3118
## C preprocessor.
 
3119
 
 
3120
AC_EGREP_CPP(yes..yes,
 
3121
        [yes..yes],
 
3122
        CPP_NEED_TRADITIONAL=no,
 
3123
        CPP_NEED_TRADITIONAL=yes)
 
3124
 
 
3125
AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
 
3126
        doc/misc/Makefile \
 
3127
        src/Makefile.c:src/Makefile.in \
 
3128
        lwlib/Makefile lisp/Makefile leim/Makefile, [
 
3129
 
 
3130
### Make the necessary directories, if they don't exist.
 
3131
for dir in etc lisp ; do
 
3132
  test -d ${dir} || mkdir ${dir}
 
3133
done
 
3134
 
 
3135
# Build src/Makefile from ${srcdir}/src/Makefile.c
 
3136
# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
 
3137
# This must be done after src/config.h is built, since we rely on that file.
 
3138
 
 
3139
echo creating src/epaths.h
 
3140
${MAKE-make} epaths-force
 
3141
 
 
3142
# As of 2000-11-19, newest development versions of GNU cpp preprocess
 
3143
# `..' to `. .'  unless invoked with -traditional
 
3144
 
 
3145
if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
 
3146
  CPPFLAGS="$CPPFLAGS -traditional"
 
3147
fi
 
3148
 
 
3149
echo creating lib-src/Makefile
 
3150
( cd lib-src
 
3151
  rm -f junk.c junk1.c junk2.c
 
3152
  sed -e '/start of cpp stuff/q' \
 
3153
      < Makefile.c > junk1.c
 
3154
  sed -e '1,/start of cpp stuff/d'\
 
3155
      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
 
3156
      < Makefile.c > junk.c
 
3157
  $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
 
3158
      sed -e 's/^ /     /' -e '/^#/d' -e '/^[    ]*$/d' > junk2.c
 
3159
  cat junk1.c junk2.c > Makefile.new
 
3160
  rm -f junk.c junk1.c junk2.c
 
3161
  chmod 444 Makefile.new
 
3162
  mv -f Makefile.new Makefile
 
3163
)
 
3164
 
 
3165
echo creating src/Makefile
 
3166
( cd src
 
3167
  rm -f junk.c junk1.c junk2.c
 
3168
  sed -e '/start of cpp stuff/q' \
 
3169
      < Makefile.c > junk1.c
 
3170
  sed -e '1,/start of cpp stuff/d'\
 
3171
      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
 
3172
      < Makefile.c > junk.c
 
3173
  $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
 
3174
      sed -e 's/^ /     /' -e '/^#/d' -e '/^[    ]*$/d' > junk2.c
 
3175
  cat junk1.c junk2.c > Makefile.new
 
3176
  rm -f junk.c junk1.c junk2.c
 
3177
  chmod 444 Makefile.new
 
3178
  mv -f Makefile.new Makefile
 
3179
)
 
3180
 
 
3181
if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
 
3182
  echo creating src/.gdbinit
 
3183
  echo source $srcdir/src/.gdbinit > src/.gdbinit
 
3184
fi
 
3185
 
 
3186
], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"])
 
3187
 
 
3188
m4_if(dnl       Do not change this comment
 
3189
   arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
 
3190
)dnl