~ubuntu-branches/ubuntu/wily/clamav/wily

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/autoconf/configure.ac

  • Committer: Package Import Robot
  • Author(s): Scott Kitterman, Sebastian Andrzej Siewior, Andreas Cadhalpun, Scott Kitterman, Javier Fernández-Sanguino
  • Date: 2015-01-28 00:25:13 UTC
  • mfrom: (0.48.14 sid)
  • Revision ID: package-import@ubuntu.com-20150128002513-lil2oi74cooy4lzr
Tags: 0.98.6+dfsg-1
[ Sebastian Andrzej Siewior ]
* update "fix-ssize_t-size_t-off_t-printf-modifier", include of misc.h was
  missing but was pulled in via the systemd patch.
* Don't leak return codes from libmspack to clamav API. (Closes: #774686).

[ Andreas Cadhalpun ]
* Add patch to avoid emitting incremental progress messages when not
  outputting to a terminal. (Closes: #767350)
* Update lintian-overrides for unused-file-paragraph-in-dep5-copyright.
* clamav-base.postinst: always chown /var/log/clamav and /var/lib/clamav
  to clamav:clamav, not only on fresh installations. (Closes: #775400)
* Adapt the clamav-daemon and clamav-freshclam logrotate scripts,
  so that they correctly work under systemd.
* Move the PidFile variable from the clamd/freshclam configuration files
  to the init scripts. This makes the init scripts more robust against
  misconfiguration and avoids error messages with systemd. (Closes: #767353)
* debian/copyright: drop files from Files-Excluded only present in github
  tarballs
* Drop Workaround-a-bug-in-libc-on-Hurd.patch, because hurd got fixed.
  (see #752237)
* debian/rules: Remove useless --with-system-tommath --without-included-ltdl
  configure options.

[ Scott Kitterman ]
* Stop stripping llvm when repacking the tarball as the system llvm on some
  releases is too old to use
* New upstream bugfix release
  - Library shared object revisions.
  - Includes a patch from Sebastian Andrzej Siewior making ClamAV pid files
    compatible with systemd.
  - Fix a heap out of bounds condition with crafted Yoda's crypter files.
    This issue was discovered by Felix Groebert of the Google Security Team.
  - Fix a heap out of bounds condition with crafted mew packer files. This
    issue was discovered by Felix Groebert of the Google Security Team.
  - Fix a heap out of bounds condition with crafted upx packer files. This
    issue was discovered by Kevin Szkudlapski of Quarkslab.
  - Fix a heap out of bounds condition with crafted upack packer files. This
    issue was discovered by Sebastian Andrzej Siewior. CVE-2014-9328.
  - Compensate a crash due to incorrect compiler optimization when handling
    crafted petite packer files. This issue was discovered by Sebastian
    Andrzej Siewior.
* Update lintian override for embedded zlib to match new so version

[ Javier Fernández-Sanguino ]
* Updated Spanish Debconf template translation (Closes: #773563)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl === configure.ac --------------------------------------------------------===
 
2
dnl                     The LLVM Compiler Infrastructure
 
3
dnl
 
4
dnl This file is distributed under the University of Illinois Open Source
 
5
dnl License. See LICENSE.TXT for details.
 
6
dnl
 
7
dnl===-----------------------------------------------------------------------===
 
8
dnl This is the LLVM configuration script. It is processed by the autoconf
 
9
dnl program to produce a script named configure. This script contains the
 
10
dnl configuration checks that LLVM needs in order to support multiple platforms.
 
11
dnl This file is composed of 10 sections per the recommended organization of
 
12
dnl autoconf input defined in the autoconf documentation. As this file evolves,
 
13
dnl please keep the various types of checks within their sections. The sections
 
14
dnl are as follows:
 
15
dnl
 
16
dnl SECTION 1: Initialization & Setup
 
17
dnl SECTION 2: Architecture, target, and host checks
 
18
dnl SECTION 3: Command line arguments for the configure script.
 
19
dnl SECTION 4: Check for programs we need and that they are the right version
 
20
dnl SECTION 5: Check for libraries
 
21
dnl SECTION 6: Check for header files
 
22
dnl SECTION 7: Check for types and structures
 
23
dnl SECTION 8: Check for specific functions needed
 
24
dnl SECTION 9: Additional checks, variables, etc.
 
25
dnl SECTION 10: Specify the output files and generate it
 
26
dnl
 
27
dnl===-----------------------------------------------------------------------===
 
28
dnl===
 
29
dnl=== SECTION 1: Initialization & Setup
 
30
dnl===
 
31
dnl===-----------------------------------------------------------------------===
 
32
dnl Initialize autoconf and define the package name, version number and
 
33
dnl email address for reporting bugs.
 
34
AC_INIT([[llvm]],[[2.8]],[llvmbugs@cs.uiuc.edu])
 
35
 
 
36
dnl Provide a copyright substitution and ensure the copyright notice is included
 
37
dnl in the output of --version option of the generated configure script.
 
38
AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign."])
 
39
AC_COPYRIGHT([Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.])
 
40
 
 
41
dnl Indicate that we require autoconf 2.59 or later. Ths is needed because we
 
42
dnl use some autoconf macros only available in 2.59.
 
43
AC_PREREQ(2.59)
 
44
 
 
45
dnl Verify that the source directory is valid. This makes sure that we are
 
46
dnl configuring LLVM and not some other package (it validates --srcdir argument)
 
47
AC_CONFIG_SRCDIR([lib/VMCore/Module.cpp])
 
48
 
 
49
dnl Place all of the extra autoconf files into the config subdirectory. Tell
 
50
dnl various tools where the m4 autoconf macros are.
 
51
AC_CONFIG_AUX_DIR([autoconf])
 
52
 
 
53
dnl Quit if the source directory has already been configured.
 
54
dnl NOTE: This relies upon undocumented autoconf behavior.
 
55
if test ${srcdir} != "." ; then
 
56
  if test -f ${srcdir}/include/llvm/Config/config.h ; then
 
57
    AC_MSG_ERROR([Already configured in ${srcdir}])
 
58
  fi
 
59
fi
 
60
 
 
61
dnl Configure all of the projects present in our source tree. While we could
 
62
dnl just AC_CONFIG_SUBDIRS on the set of directories in projects that have a
 
63
dnl configure script, that usage of the AC_CONFIG_SUBDIRS macro is deprecated.
 
64
dnl Instead we match on the known projects.
 
65
 
 
66
dnl
 
67
dnl One tricky part of doing this is that some projects depend upon other
 
68
dnl projects.  For example, several projects rely upon the LLVM test suite.
 
69
dnl We want to configure those projects first so that their object trees are
 
70
dnl created before running the configure scripts of projects that depend upon
 
71
dnl them.
 
72
dnl
 
73
 
 
74
dnl Several projects use llvm-gcc, so configure that first
 
75
if test -d ${srcdir}/projects/llvm-gcc ; then
 
76
  AC_CONFIG_SUBDIRS([projects/llvm-gcc])
 
77
fi
 
78
 
 
79
dnl Several projects use the LLVM test suite, so configure it next.
 
80
if test -d ${srcdir}/projects/test-suite ; then
 
81
  AC_CONFIG_SUBDIRS([projects/test-suite])
 
82
fi
 
83
 
 
84
dnl llvm-test is the old name of the test-suite, kept here for backwards
 
85
dnl compatibility
 
86
if test -d ${srcdir}/projects/llvm-test ; then
 
87
  AC_CONFIG_SUBDIRS([projects/llvm-test])
 
88
fi
 
89
 
 
90
dnl Some projects use poolalloc; configure that next
 
91
if test -d ${srcdir}/projects/poolalloc ; then
 
92
  AC_CONFIG_SUBDIRS([projects/poolalloc])
 
93
fi
 
94
 
 
95
if test -d ${srcdir}/projects/llvm-poolalloc ; then
 
96
  AC_CONFIG_SUBDIRS([projects/llvm-poolalloc])
 
97
fi
 
98
 
 
99
dnl Check for all other projects
 
100
for i in `ls ${srcdir}/projects`
 
101
do
 
102
  if test -d ${srcdir}/projects/${i} ; then
 
103
    case ${i} in
 
104
      sample)       AC_CONFIG_SUBDIRS([projects/sample])    ;;
 
105
      privbracket)  AC_CONFIG_SUBDIRS([projects/privbracket]) ;;
 
106
      llvm-stacker) AC_CONFIG_SUBDIRS([projects/llvm-stacker]) ;;
 
107
      llvm-reopt)   AC_CONFIG_SUBDIRS([projects/llvm-reopt]);;
 
108
      llvm-java)    AC_CONFIG_SUBDIRS([projects/llvm-java]) ;;
 
109
      llvm-tv)      AC_CONFIG_SUBDIRS([projects/llvm-tv])   ;;
 
110
      safecode)     AC_CONFIG_SUBDIRS([projects/safecode]) ;;
 
111
      llvm-kernel)  AC_CONFIG_SUBDIRS([projects/llvm-kernel]) ;;
 
112
      llvm-gcc)       ;;
 
113
      test-suite)     ;;
 
114
      llvm-test)      ;;
 
115
      poolalloc)      ;;
 
116
      llvm-poolalloc) ;;
 
117
      *)
 
118
        AC_MSG_WARN([Unknown project (${i}) won't be configured automatically])
 
119
        ;;
 
120
    esac
 
121
  fi
 
122
done
 
123
 
 
124
dnl===-----------------------------------------------------------------------===
 
125
dnl===
 
126
dnl=== SECTION 2: Architecture, target, and host checks
 
127
dnl===
 
128
dnl===-----------------------------------------------------------------------===
 
129
 
 
130
dnl Check the target for which we're compiling and the host that will do the
 
131
dnl compilations. This will tell us which LLVM compiler will be used for
 
132
dnl compiling SSA into object code. This needs to be done early because
 
133
dnl following tests depend on it.
 
134
AC_CANONICAL_TARGET
 
135
 
 
136
dnl Determine the platform type and cache its value. This helps us configure
 
137
dnl the System library to the correct build platform.
 
138
AC_CACHE_CHECK([type of operating system we're going to host on],
 
139
               [llvm_cv_os_type],
 
140
[case $host in
 
141
  *-*-aix*)
 
142
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
143
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
144
    llvm_cv_os_type="AIX"
 
145
    llvm_cv_platform_type="Unix" ;;
 
146
  *-*-irix*)
 
147
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
148
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
149
    llvm_cv_os_type="IRIX"
 
150
    llvm_cv_platform_type="Unix" ;;
 
151
  *-*-cygwin*)
 
152
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
153
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
154
    llvm_cv_os_type="Cygwin"
 
155
    llvm_cv_platform_type="Unix" ;;
 
156
  *-*-darwin*)
 
157
    llvm_cv_link_all_option="-Wl,-all_load"
 
158
    llvm_cv_no_link_all_option="-Wl,-noall_load"
 
159
    llvm_cv_os_type="Darwin"
 
160
    llvm_cv_platform_type="Unix" ;;
 
161
  *-*-minix*)
 
162
    llvm_cv_link_all_option="-Wl,-all_load"
 
163
    llvm_cv_no_link_all_option="-Wl,-noall_load"
 
164
    llvm_cv_os_type="Minix"
 
165
    llvm_cv_platform_type="Unix" ;;
 
166
  *-*-freebsd*)
 
167
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
168
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
169
    llvm_cv_os_type="FreeBSD"
 
170
    llvm_cv_platform_type="Unix" ;;
 
171
  *-*-openbsd*)
 
172
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
173
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
174
    llvm_cv_os_type="OpenBSD"
 
175
    llvm_cv_platform_type="Unix" ;;
 
176
  *-*-netbsd*)
 
177
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
178
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
179
    llvm_cv_os_type="NetBSD"
 
180
    llvm_cv_platform_type="Unix" ;;
 
181
  *-*-dragonfly*)
 
182
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
183
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
184
    llvm_cv_os_type="DragonFly"
 
185
    llvm_cv_platform_type="Unix" ;;
 
186
  *-*-hpux*)
 
187
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
188
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
189
    llvm_cv_os_type="HP-UX"
 
190
    llvm_cv_platform_type="Unix" ;;
 
191
  *-*-interix*)
 
192
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
193
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
194
    llvm_cv_os_type="Interix"
 
195
    llvm_cv_platform_type="Unix" ;;
 
196
  *-*-linux*)
 
197
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
198
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
199
    llvm_cv_os_type="Linux"
 
200
    llvm_cv_platform_type="Unix" ;;
 
201
  *-*-solaris*)
 
202
    llvm_cv_link_all_option="-Wl,-z,allextract"
 
203
    llvm_cv_no_link_all_option="-Wl,-z,defaultextract"
 
204
    llvm_cv_os_type="SunOS"
 
205
    llvm_cv_platform_type="Unix" ;;
 
206
  *-*-auroraux*)
 
207
    llvm_cv_link_all_option="-Wl,-z,allextract"
 
208
    llvm_cv_link_all_option="-Wl,-z,defaultextract"
 
209
    llvm_cv_os_type="AuroraUX"
 
210
    llvm_cv_platform_type="Unix" ;;
 
211
  *-*-win32*)
 
212
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
213
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
214
    llvm_cv_os_type="Win32"
 
215
    llvm_cv_platform_type="Win32" ;;
 
216
  *-*-mingw*)
 
217
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
218
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
219
    llvm_cv_os_type="MingW"
 
220
    llvm_cv_platform_type="Win32" ;;
 
221
  *-*-haiku*)
 
222
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
223
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
224
    llvm_cv_os_type="Haiku"
 
225
    llvm_cv_platform_type="Unix" ;;
 
226
  *-unknown-eabi*)
 
227
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
228
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
229
    llvm_cv_os_type="Freestanding"
 
230
    llvm_cv_platform_type="Unix" ;;
 
231
  *-unknown-elf*)
 
232
    llvm_cv_link_all_option="-Wl,--whole-archive"
 
233
    llvm_cv_no_link_all_option="-Wl,--no-whole-archive"
 
234
    llvm_cv_os_type="Freestanding"
 
235
    llvm_cv_platform_type="Unix" ;;
 
236
  *)
 
237
    llvm_cv_link_all_option=""
 
238
    llvm_cv_no_link_all_option=""
 
239
    llvm_cv_os_type="Unknown"
 
240
    llvm_cv_platform_type="Unknown" ;;
 
241
esac])
 
242
 
 
243
AC_CACHE_CHECK([type of operating system we're going to target],
 
244
               [llvm_cv_target_os_type],
 
245
[case $target in
 
246
  *-*-aix*)
 
247
    llvm_cv_target_os_type="AIX" ;;
 
248
  *-*-irix*)
 
249
    llvm_cv_target_os_type="IRIX" ;;
 
250
  *-*-cygwin*)
 
251
    llvm_cv_target_os_type="Cygwin" ;;
 
252
  *-*-darwin*)
 
253
    llvm_cv_target_os_type="Darwin" ;;
 
254
  *-*-minix*)
 
255
    llvm_cv_target_os_type="Minix" ;;
 
256
  *-*-freebsd*)
 
257
    llvm_cv_target_os_type="FreeBSD" ;;
 
258
  *-*-openbsd*)
 
259
    llvm_cv_target_os_type="OpenBSD" ;;
 
260
  *-*-netbsd*)
 
261
    llvm_cv_target_os_type="NetBSD" ;;
 
262
  *-*-dragonfly*)
 
263
    llvm_cv_target_os_type="DragonFly" ;;
 
264
  *-*-hpux*)
 
265
    llvm_cv_target_os_type="HP-UX" ;;
 
266
  *-*-interix*)
 
267
    llvm_cv_target_os_type="Interix" ;;
 
268
  *-*-linux*)
 
269
    llvm_cv_target_os_type="Linux" ;;
 
270
  *-*-solaris*)
 
271
    llvm_cv_target_os_type="SunOS" ;;
 
272
  *-*-auroraux*)
 
273
    llvm_cv_target_os_type="AuroraUX" ;;
 
274
  *-*-win32*)
 
275
    llvm_cv_target_os_type="Win32" ;;
 
276
  *-*-mingw*)
 
277
    llvm_cv_target_os_type="MingW" ;;
 
278
  *-*-haiku*)
 
279
    llvm_cv_target_os_type="Haiku" ;;
 
280
  *-unknown-eabi*)
 
281
    llvm_cv_target_os_type="Freestanding" ;;
 
282
  *)
 
283
    llvm_cv_target_os_type="Unknown" ;;
 
284
esac])
 
285
 
 
286
dnl Make sure we aren't attempting to configure for an unknown system
 
287
if test "$llvm_cv_os_type" = "Unknown" ; then
 
288
  AC_MSG_ERROR([Operating system is unknown, configure can't continue])
 
289
fi
 
290
 
 
291
dnl Set the "OS" Makefile variable based on the platform type so the
 
292
dnl makefile can configure itself to specific build hosts
 
293
AC_SUBST(OS,$llvm_cv_os_type)
 
294
AC_SUBST(HOST_OS,$llvm_cv_os_type)
 
295
AC_SUBST(TARGET_OS,$llvm_cv_target_os_type)
 
296
 
 
297
dnl Set the LINKALL and NOLINKALL Makefile variables based on the platform
 
298
AC_SUBST(LINKALL,$llvm_cv_link_all_option)
 
299
AC_SUBST(NOLINKALL,$llvm_cv_no_link_all_option)
 
300
 
 
301
dnl Set the "LLVM_ON_*" variables based on llvm_cv_platform_type
 
302
dnl This is used by lib/System to determine the basic kind of implementation
 
303
dnl to use.
 
304
case $llvm_cv_platform_type in
 
305
  Unix)
 
306
    AC_DEFINE([LLVM_ON_UNIX],[1],[Define if this is Unixish platform])
 
307
    AC_SUBST(LLVM_ON_UNIX,[1])
 
308
    AC_SUBST(LLVM_ON_WIN32,[0])
 
309
    ;;
 
310
  Win32)
 
311
    AC_DEFINE([LLVM_ON_WIN32],[1],[Define if this is Win32ish platform])
 
312
    AC_SUBST(LLVM_ON_UNIX,[0])
 
313
    AC_SUBST(LLVM_ON_WIN32,[1])
 
314
    ;;
 
315
esac
 
316
 
 
317
dnl Determine what our target architecture is and configure accordingly.
 
318
dnl This will allow Makefiles to make a distinction between the hardware and
 
319
dnl the OS.
 
320
AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch],
 
321
[case $target in
 
322
  i?86-*)                 llvm_cv_target_arch="x86" ;;
 
323
  amd64-* | x86_64-*)     llvm_cv_target_arch="x86_64" ;;
 
324
  sparc*-*)               llvm_cv_target_arch="Sparc" ;;
 
325
  powerpc*-*)             llvm_cv_target_arch="PowerPC" ;;
 
326
  alpha*-*)               llvm_cv_target_arch="Alpha" ;;
 
327
  arm*-*)                 llvm_cv_target_arch="ARM" ;;
 
328
  mips-*)                 llvm_cv_target_arch="Mips" ;;
 
329
  pic16-*)                llvm_cv_target_arch="PIC16" ;;
 
330
  xcore-*)                llvm_cv_target_arch="XCore" ;;
 
331
  msp430-*)               llvm_cv_target_arch="MSP430" ;;
 
332
  s390x-*)                llvm_cv_target_arch="SystemZ" ;;
 
333
  bfin-*)                 llvm_cv_target_arch="Blackfin" ;;
 
334
  mblaze-*)               llvm_cv_target_arch="MBlaze" ;;
 
335
  *)                      llvm_cv_target_arch="Unknown" ;;
 
336
esac])
 
337
 
 
338
if test "$llvm_cv_target_arch" = "Unknown" ; then
 
339
  AC_MSG_WARN([Configuring LLVM for an unknown target archicture])
 
340
fi
 
341
 
 
342
# Determine the LLVM native architecture for the target
 
343
case "$llvm_cv_target_arch" in
 
344
    x86)     LLVM_NATIVE_ARCH="X86" ;;
 
345
    x86_64)  LLVM_NATIVE_ARCH="X86" ;;
 
346
    *)       LLVM_NATIVE_ARCH="$llvm_cv_target_arch" ;;
 
347
esac
 
348
 
 
349
dnl Define a substitution, ARCH, for the target architecture
 
350
AC_SUBST(ARCH,$llvm_cv_target_arch)
 
351
 
 
352
dnl Check for the endianness of the target
 
353
AC_C_BIGENDIAN(AC_SUBST([ENDIAN],[big]),AC_SUBST([ENDIAN],[little]))
 
354
 
 
355
dnl Check for build platform executable suffix if we're crosscompiling
 
356
if test "$cross_compiling" = yes; then
 
357
  AC_SUBST(LLVM_CROSS_COMPILING, [1])
 
358
  AC_BUILD_EXEEXT
 
359
  ac_build_prefix=${build_alias}-
 
360
  AC_CHECK_PROG(BUILD_CXX, ${ac_build_prefix}g++, ${ac_build_prefix}g++)
 
361
  if test -z "$BUILD_CXX"; then
 
362
     AC_CHECK_PROG(BUILD_CXX, g++, g++)
 
363
     if test -z "$BUILD_CXX"; then
 
364
       AC_CHECK_PROG(BUILD_CXX, c++, c++, , , /usr/ucb/c++)
 
365
     fi
 
366
  fi
 
367
else
 
368
  AC_SUBST(LLVM_CROSS_COMPILING, [0])
 
369
fi
 
370
 
 
371
dnl Check to see if there's a .svn or .git directory indicating that this
 
372
dnl build is being done from a checkout. This sets up several defaults for
 
373
dnl the command line switches. When we build with a checkout directory,
 
374
dnl we get a debug with assertions turned on. Without, we assume a source
 
375
dnl release and we get an optimized build without assertions.
 
376
dnl See --enable-optimized and --enable-assertions below
 
377
if test -d ".svn" -o -d "${srcdir}/.svn" -o -d ".git" -o -d "${srcdir}/.git"; then
 
378
  cvsbuild="yes"
 
379
  optimize="no"
 
380
  AC_SUBST(CVSBUILD,[[CVSBUILD=1]])
 
381
else
 
382
  cvsbuild="no"
 
383
  optimize="yes"
 
384
fi
 
385
 
 
386
dnl===-----------------------------------------------------------------------===
 
387
dnl===
 
388
dnl=== SECTION 3: Command line arguments for the configure script.
 
389
dnl===
 
390
dnl===-----------------------------------------------------------------------===
 
391
 
 
392
dnl --enable-optimized : check whether they want to do an optimized build:
 
393
AC_ARG_ENABLE(optimized, AS_HELP_STRING(
 
394
 --enable-optimized,[Compile with optimizations enabled (default is YES)]),,enableval="yes")
 
395
if test ${enableval} = "no" ; then
 
396
  AC_SUBST(ENABLE_OPTIMIZED,[[]])
 
397
else
 
398
  AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
 
399
fi
 
400
 
 
401
dnl --enable-profiling : check whether they want to do a profile build:
 
402
AC_ARG_ENABLE(profiling, AS_HELP_STRING(
 
403
 --enable-profiling,[Compile with profiling enabled (default is NO)]),,enableval="no")
 
404
if test ${enableval} = "no" ; then
 
405
  AC_SUBST(ENABLE_PROFILING,[[]])
 
406
else
 
407
  AC_SUBST(ENABLE_PROFILING,[[ENABLE_PROFILING=1]])
 
408
fi
 
409
 
 
410
dnl --enable-assertions : check whether they want to turn on assertions or not:
 
411
AC_ARG_ENABLE(assertions,AS_HELP_STRING(
 
412
  --enable-assertions,[Compile with assertion checks enabled (default is NO)]),, enableval="no")
 
413
if test ${enableval} = "yes" ; then
 
414
  AC_SUBST(DISABLE_ASSERTIONS,[[]])
 
415
else
 
416
  AC_SUBST(DISABLE_ASSERTIONS,[[DISABLE_ASSERTIONS=1]])
 
417
fi
 
418
 
 
419
dnl --enable-expensive-checks : check whether they want to turn on expensive debug checks:
 
420
AC_ARG_ENABLE(expensive-checks,AS_HELP_STRING(
 
421
  --enable-expensive-checks,[Compile with expensive debug checks enabled (default is NO)]),, enableval="no")
 
422
if test ${enableval} = "yes" ; then
 
423
  AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[ENABLE_EXPENSIVE_CHECKS=1]])
 
424
  AC_SUBST(EXPENSIVE_CHECKS,[[yes]])
 
425
else
 
426
  AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[]])
 
427
  AC_SUBST(EXPENSIVE_CHECKS,[[no]])
 
428
fi
 
429
 
 
430
dnl --enable-debug-runtime : should runtime libraries have debug symbols?
 
431
AC_ARG_ENABLE(debug-runtime,
 
432
   AS_HELP_STRING(--enable-debug-runtime,[Build runtime libs with debug symbols (default is NO)]),,enableval=no)
 
433
if test ${enableval} = "no" ; then
 
434
  AC_SUBST(DEBUG_RUNTIME,[[]])
 
435
else
 
436
  AC_SUBST(DEBUG_RUNTIME,[[DEBUG_RUNTIME=1]])
 
437
fi
 
438
 
 
439
dnl --enable-debug-symbols : should even optimized compiler libraries
 
440
dnl have debug symbols?
 
441
AC_ARG_ENABLE(debug-symbols,
 
442
   AS_HELP_STRING(--enable-debug-symbols,[Build compiler with debug symbols (default is NO if optimization is on and YES if it's off)]),,enableval=no)
 
443
if test ${enableval} = "no" ; then
 
444
  AC_SUBST(DEBUG_SYMBOLS,[[]])
 
445
else
 
446
  AC_SUBST(DEBUG_SYMBOLS,[[DEBUG_SYMBOLS=1]])
 
447
fi
 
448
 
 
449
dnl --enable-jit: check whether they want to enable the jit
 
450
AC_ARG_ENABLE(jit,
 
451
  AS_HELP_STRING(--enable-jit,
 
452
                 [Enable Just In Time Compiling (default is YES)]),,
 
453
  enableval=default)
 
454
if test ${enableval} = "no"
 
455
then
 
456
  AC_SUBST(JIT,[[]])
 
457
else
 
458
  case "$llvm_cv_target_arch" in
 
459
    x86)         AC_SUBST(TARGET_HAS_JIT,1) ;;
 
460
    Sparc)       AC_SUBST(TARGET_HAS_JIT,0) ;;
 
461
    PowerPC)     AC_SUBST(TARGET_HAS_JIT,1) ;;
 
462
    x86_64)      AC_SUBST(TARGET_HAS_JIT,1) ;;
 
463
    Alpha)       AC_SUBST(TARGET_HAS_JIT,1) ;;
 
464
    ARM)         AC_SUBST(TARGET_HAS_JIT,1) ;;
 
465
    Mips)        AC_SUBST(TARGET_HAS_JIT,0) ;;
 
466
    PIC16)       AC_SUBST(TARGET_HAS_JIT,0) ;;
 
467
    XCore)       AC_SUBST(TARGET_HAS_JIT,0) ;;
 
468
    MSP430)      AC_SUBST(TARGET_HAS_JIT,0) ;;
 
469
    SystemZ)     AC_SUBST(TARGET_HAS_JIT,0) ;;
 
470
    Blackfin)    AC_SUBST(TARGET_HAS_JIT,0) ;;
 
471
    MBlaze)      AC_SUBST(TARGET_HAS_JIT,0) ;;
 
472
    *)           AC_SUBST(TARGET_HAS_JIT,0) ;;
 
473
  esac
 
474
fi
 
475
 
 
476
dnl Allow enablement of doxygen generated documentation
 
477
AC_ARG_ENABLE(doxygen,
 
478
              AS_HELP_STRING([--enable-doxygen],
 
479
                             [Build doxygen documentation (default is NO)]),,
 
480
                             enableval=default)
 
481
case "$enableval" in
 
482
  yes) AC_SUBST(ENABLE_DOXYGEN,[1]) ;;
 
483
  no)  AC_SUBST(ENABLE_DOXYGEN,[0]) ;;
 
484
  default) AC_SUBST(ENABLE_DOXYGEN,[0]) ;;
 
485
  *) AC_MSG_ERROR([Invalid setting for --enable-doxygen. Use "yes" or "no"]) ;;
 
486
esac
 
487
 
 
488
dnl Allow disablement of threads
 
489
AC_ARG_ENABLE(threads,
 
490
              AS_HELP_STRING([--enable-threads],
 
491
                             [Use threads if available (default is YES)]),,
 
492
                             enableval=default)
 
493
case "$enableval" in
 
494
  yes) AC_SUBST(ENABLE_THREADS,[1]) ;;
 
495
  no)  AC_SUBST(ENABLE_THREADS,[0]) ;;
 
496
  default) AC_SUBST(ENABLE_THREADS,[1]) ;;
 
497
  *) AC_MSG_ERROR([Invalid setting for --enable-threads. Use "yes" or "no"]) ;;
 
498
esac
 
499
AC_DEFINE_UNQUOTED([ENABLE_THREADS],$ENABLE_THREADS,[Define if threads enabled])
 
500
 
 
501
dnl Allow building without position independent code
 
502
AC_ARG_ENABLE(pic,
 
503
  AS_HELP_STRING([--enable-pic],
 
504
                 [Build LLVM with Position Independent Code (default is YES)]),,
 
505
                 enableval=default)
 
506
case "$enableval" in
 
507
  yes) AC_SUBST(ENABLE_PIC,[1]) ;;
 
508
  no)  AC_SUBST(ENABLE_PIC,[0]) ;;
 
509
  default) AC_SUBST(ENABLE_PIC,[1]) ;;
 
510
  *) AC_MSG_ERROR([Invalid setting for --enable-pic. Use "yes" or "no"]) ;;
 
511
esac
 
512
AC_DEFINE_UNQUOTED([ENABLE_PIC],$ENABLE_PIC,
 
513
                   [Define if position independent code is enabled])
 
514
 
 
515
dnl Allow building a shared library and linking tools against it.
 
516
AC_ARG_ENABLE(shared,
 
517
  AS_HELP_STRING([--enable-shared],
 
518
                 [Build a shared library and link tools against it (default is NO)]),,
 
519
                 enableval=default)
 
520
case "$enableval" in
 
521
  yes) AC_SUBST(ENABLE_SHARED,[1]) ;;
 
522
  no)  AC_SUBST(ENABLE_SHARED,[0]) ;;
 
523
  default) AC_SUBST(ENABLE_SHARED,[0]) ;;
 
524
  *) AC_MSG_ERROR([Invalid setting for --enable-shared. Use "yes" or "no"]) ;;
 
525
esac
 
526
 
 
527
dnl Enable embedding timestamp information into build.
 
528
AC_ARG_ENABLE(timestamps,
 
529
  AS_HELP_STRING([--enable-timestamps],
 
530
                 [Enable embedding timestamp information in build (default is YES)]),,
 
531
                 enableval=default)
 
532
case "$enableval" in
 
533
  yes) AC_SUBST(ENABLE_TIMESTAMPS,[1]) ;;
 
534
  no)  AC_SUBST(ENABLE_TIMESTAMPS,[0]) ;;
 
535
  default) AC_SUBST(ENABLE_TIMESTAMPS,[1]) ;;
 
536
  *) AC_MSG_ERROR([Invalid setting for --enable-timestamps. Use "yes" or "no"]) ;;
 
537
esac
 
538
AC_DEFINE_UNQUOTED([ENABLE_TIMESTAMPS],$ENABLE_TIMESTAMPS,
 
539
                   [Define if timestamp information (e.g., __DATE___) is allowed])
 
540
 
 
541
dnl Allow specific targets to be specified for building (or not)
 
542
TARGETS_TO_BUILD=""
 
543
AC_ARG_ENABLE([targets],AS_HELP_STRING([--enable-targets],
 
544
    [Build specific host targets: all or target1,target2,... Valid targets are:
 
545
     host, x86, x86_64, sparc, powerpc, alpha, arm, mips, spu, pic16,
 
546
     xcore, msp430, systemz, blackfin, cbe, and cpp (default=all)]),,
 
547
    enableval=all)
 
548
if test "$enableval" = host-only ; then
 
549
  enableval=host
 
550
fi
 
551
case "$enableval" in
 
552
  all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha ARM Mips CellSPU PIC16 XCore MSP430 SystemZ Blackfin CBackend CppBackend MBlaze" ;;
 
553
  *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do
 
554
      case "$a_target" in
 
555
        x86)      TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
 
556
        x86_64)   TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
 
557
        sparc)    TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;;
 
558
        powerpc)  TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;;
 
559
        alpha)    TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;;
 
560
        arm)      TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;;
 
561
        mips)     TARGETS_TO_BUILD="Mips $TARGETS_TO_BUILD" ;;
 
562
        spu)      TARGETS_TO_BUILD="CellSPU $TARGETS_TO_BUILD" ;;
 
563
        pic16)    TARGETS_TO_BUILD="PIC16 $TARGETS_TO_BUILD" ;;
 
564
        xcore)    TARGETS_TO_BUILD="XCore $TARGETS_TO_BUILD" ;;
 
565
        msp430)   TARGETS_TO_BUILD="MSP430 $TARGETS_TO_BUILD" ;;
 
566
        systemz)  TARGETS_TO_BUILD="SystemZ $TARGETS_TO_BUILD" ;;
 
567
        blackfin) TARGETS_TO_BUILD="Blackfin $TARGETS_TO_BUILD" ;;
 
568
        cbe)      TARGETS_TO_BUILD="CBackend $TARGETS_TO_BUILD" ;;
 
569
        cpp)      TARGETS_TO_BUILD="CppBackend $TARGETS_TO_BUILD" ;;
 
570
        mblaze)   TARGETS_TO_BUILD="MBlaze $TARGETS_TO_BUILD" ;;
 
571
        host) case "$llvm_cv_target_arch" in
 
572
            x86)         TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
 
573
            x86_64)      TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
 
574
            Sparc)       TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;;
 
575
            PowerPC)     TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;;
 
576
            Alpha)       TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;;
 
577
            ARM)         TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;;
 
578
            Mips)        TARGETS_TO_BUILD="Mips $TARGETS_TO_BUILD" ;;
 
579
            MBlaze)      TARGETS_TO_BUILD="MBlaze $TARGETS_TO_BUILD" ;;
 
580
            CellSPU|SPU) TARGETS_TO_BUILD="CellSPU $TARGETS_TO_BUILD" ;;
 
581
            PIC16)       TARGETS_TO_BUILD="PIC16 $TARGETS_TO_BUILD" ;;
 
582
            XCore)       TARGETS_TO_BUILD="XCore $TARGETS_TO_BUILD" ;;
 
583
            MSP430)      TARGETS_TO_BUILD="MSP430 $TARGETS_TO_BUILD" ;;
 
584
            s390x)       TARGETS_TO_BUILD="SystemZ $TARGETS_TO_BUILD" ;;
 
585
            Blackfin)    TARGETS_TO_BUILD="Blackfin $TARGETS_TO_BUILD" ;;
 
586
            *)       AC_MSG_ERROR([Can not set target to build]) ;;
 
587
          esac ;;
 
588
        *) AC_MSG_ERROR([Unrecognized target $a_target]) ;;
 
589
      esac
 
590
  done
 
591
  ;;
 
592
esac
 
593
AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD)
 
594
 
 
595
# Determine whether we are building LLVM support for the native architecture.
 
596
# If so, define LLVM_NATIVE_ARCH to that LLVM target.
 
597
for a_target in $TARGETS_TO_BUILD; do
 
598
  if test "$a_target" = "$LLVM_NATIVE_ARCH"; then
 
599
    AC_DEFINE_UNQUOTED(LLVM_NATIVE_ARCH, $LLVM_NATIVE_ARCH,
 
600
      [LLVM architecture name for the native architecture, if available])
 
601
    LLVM_NATIVE_TARGET="LLVMInitialize${LLVM_NATIVE_ARCH}Target"
 
602
    LLVM_NATIVE_TARGETINFO="LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo"
 
603
    LLVM_NATIVE_ASMPRINTER="LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter"
 
604
    AC_DEFINE_UNQUOTED(LLVM_NATIVE_TARGET, $LLVM_NATIVE_TARGET,
 
605
      [LLVM name for the native Target init function, if available])
 
606
    AC_DEFINE_UNQUOTED(LLVM_NATIVE_TARGETINFO, $LLVM_NATIVE_TARGETINFO,
 
607
      [LLVM name for the native TargetInfo init function, if available])
 
608
    AC_DEFINE_UNQUOTED(LLVM_NATIVE_ASMPRINTER, $LLVM_NATIVE_ASMPRINTER,
 
609
      [LLVM name for the native AsmPrinter init function, if available])
 
610
  fi
 
611
done
 
612
 
 
613
# Build the LLVM_TARGET and LLVM_... macros for Targets.def and the individual
 
614
# target feature def files.
 
615
LLVM_ENUM_TARGETS=""
 
616
LLVM_ENUM_ASM_PRINTERS=""
 
617
LLVM_ENUM_ASM_PARSERS=""
 
618
LLVM_ENUM_DISASSEMBLERS=""
 
619
for target_to_build in $TARGETS_TO_BUILD; do
 
620
  LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS"
 
621
  if test -f ${srcdir}/lib/Target/${target_to_build}/AsmPrinter/Makefile ; then
 
622
    LLVM_ENUM_ASM_PRINTERS="LLVM_ASM_PRINTER($target_to_build) $LLVM_ENUM_ASM_PRINTERS";
 
623
  fi
 
624
  if test -f ${srcdir}/lib/Target/${target_to_build}/AsmParser/Makefile ; then
 
625
    LLVM_ENUM_ASM_PARSERS="LLVM_ASM_PARSER($target_to_build) $LLVM_ENUM_ASM_PARSERS";
 
626
  fi
 
627
  if test -f ${srcdir}/lib/Target/${target_to_build}/Disassembler/Makefile ; then
 
628
    LLVM_ENUM_DISASSEMBLERS="LLVM_DISASSEMBLER($target_to_build) $LLVM_ENUM_DISASSEMBLERS";
 
629
  fi
 
630
done
 
631
AC_SUBST(LLVM_ENUM_TARGETS)
 
632
AC_SUBST(LLVM_ENUM_ASM_PRINTERS)
 
633
AC_SUBST(LLVM_ENUM_ASM_PARSERS)
 
634
AC_SUBST(LLVM_ENUM_DISASSEMBLERS)
 
635
 
 
636
dnl Prevent the CBackend from using printf("%a") for floating point so older
 
637
dnl C compilers that cannot deal with the 0x0p+0 hex floating point format
 
638
dnl can still compile the CBE's output
 
639
AC_ARG_ENABLE([cbe-printf-a],AS_HELP_STRING([--enable-cbe-printf-a],
 
640
  [Enable C Backend output with hex floating point via %a  (default is YES)]),,
 
641
  enableval=default)
 
642
case "$enableval" in
 
643
  yes) AC_SUBST(ENABLE_CBE_PRINTF_A,[1]) ;;
 
644
  no)  AC_SUBST(ENABLE_CBE_PRINTF_A,[0]) ;;
 
645
  default)  AC_SUBST(ENABLE_CBE_PRINTF_A,[1]) ;;
 
646
  *) AC_MSG_ERROR([Invalid setting for --enable-cbe-printf-a. Use "yes" or "no"]) ;;
 
647
esac
 
648
AC_DEFINE_UNQUOTED([ENABLE_CBE_PRINTF_A],$ENABLE_CBE_PRINTF_A,
 
649
                   [Define if CBE is enabled for printf %a output])
 
650
 
 
651
dnl Allow a specific llvm-gcc/llvm-g++ pair to be used with this LLVM config.
 
652
AC_ARG_WITH(llvmgccdir,
 
653
  AS_HELP_STRING([--with-llvmgccdir],
 
654
    [Specify location of llvm-gcc install dir (default searches PATH)]),,
 
655
    withval=default)
 
656
case "$withval" in
 
657
  default) WITH_LLVMGCCDIR=default ;;
 
658
  /* | [[A-Za-z]]:[[\\/]]*)      WITH_LLVMGCCDIR=$withval ;;
 
659
  *) AC_MSG_ERROR([Invalid path for --with-llvmgccdir. Provide full path]) ;;
 
660
esac
 
661
 
 
662
dnl Allow a specific llvm-gcc compiler to be used with this LLVM config.
 
663
AC_ARG_WITH(llvmgcc,
 
664
  AS_HELP_STRING([--with-llvmgcc],
 
665
    [Specify location of llvm-gcc driver (default searches PATH)]),
 
666
    LLVMGCC=$with_llvmgcc
 
667
      WITH_LLVMGCCDIR="",)
 
668
 
 
669
dnl Allow a specific llvm-g++ compiler to be used with this LLVM config.
 
670
AC_ARG_WITH(llvmgxx,
 
671
  AS_HELP_STRING([--with-llvmgxx],
 
672
    [Specify location of llvm-g++ driver (default searches PATH)]),
 
673
    LLVMGXX=$with_llvmgxx
 
674
    WITH_LLVMGCCDIR="",)
 
675
 
 
676
if test -n "$LLVMGCC"; then
 
677
   LLVMGCCCOMMAND="$LLVMGCC"
 
678
fi
 
679
 
 
680
if test -n "$LLVMGXX"; then
 
681
   LLVMGXXCOMMAND="$LLVMGXX"
 
682
fi
 
683
 
 
684
if test -n "$LLVMGCC" && test -z "$LLVMGXX"; then
 
685
   AC_MSG_ERROR([Invalid llvm-g++. Use --with-llvmgxx when --with-llvmgcc is used]);
 
686
fi
 
687
 
 
688
if test -n "$LLVMGXX" && test -z "$LLVMGCC"; then
 
689
   AC_MSG_ERROR([Invalid llvm-gcc. Use --with-llvmgcc when --with-llvmgxx is used]);
 
690
fi
 
691
 
 
692
dnl Allow a specific Clang compiler to be used with this LLVM config.
 
693
AC_ARG_WITH(clang,
 
694
  AS_HELP_STRING([--with-clang],
 
695
    [Specify location of clang compiler (default is --with-built-clang)]),
 
696
    [],[with_clang=default])
 
697
 
 
698
dnl Enable use of the built Clang.
 
699
AC_ARG_WITH(built-clang,
 
700
  AS_HELP_STRING([--with-built-clang],
 
701
    [Use the compiled Clang as the LLVM compiler (default=check)]),
 
702
    [],[with_built_clang=check])
 
703
 
 
704
dnl Select the Clang compiler option.
 
705
dnl
 
706
dnl If --with-clang is given, always honor that; otherwise honor
 
707
dnl --with-built-clang, or check if we have the clang sources.
 
708
AC_MSG_CHECKING([clang compiler])
 
709
WITH_CLANGPATH=""
 
710
WITH_BUILT_CLANG=0
 
711
if test "$with_clang" != "default"; then
 
712
   WITH_CLANGPATH="$with_clang"
 
713
   if ! test -x "$WITH_CLANGPATH"; then
 
714
     AC_MSG_ERROR([invalid --with-clang, path does not specify an executable])
 
715
   fi
 
716
elif test "$with_built_clang" = "yes"; then
 
717
   WITH_BUILT_CLANG=1
 
718
elif test "$with_built_clang" = "no"; then
 
719
   WITH_BUILT_CLANG=0
 
720
else
 
721
   if test "$with_built_clang" != "check"; then
 
722
      AC_MSG_ERROR([invalid value for --with-built-clang.])
 
723
   fi
 
724
 
 
725
   if test -f ${srcdir}/tools/clang/README.txt; then
 
726
     WITH_BUILT_CLANG=1
 
727
   fi
 
728
fi
 
729
 
 
730
if ! test -z "$WITH_CLANGPATH"; then
 
731
   AC_MSG_RESULT([$WITH_CLANGPATH])
 
732
   WITH_CLANGXXPATH=`"$WITH_CLANGPATH" --print-prog-name=clang++`
 
733
elif test "$WITH_BUILT_CLANG" = "1"; then
 
734
   AC_MSG_RESULT([built])
 
735
else
 
736
   AC_MSG_RESULT([none])
 
737
fi
 
738
AC_SUBST(CLANGPATH,$WITH_CLANGPATH)
 
739
AC_SUBST(CLANGXXPATH,$WITH_CLANGXXPATH)
 
740
AC_SUBST(ENABLE_BUILT_CLANG,$WITH_BUILT_CLANG)
 
741
 
 
742
dnl Override the option to use for optimized builds.
 
743
AC_ARG_WITH(optimize-option,
 
744
  AS_HELP_STRING([--with-optimize-option],
 
745
                 [Select the compiler options to use for optimized builds]),,
 
746
                 withval=default)
 
747
AC_MSG_CHECKING([optimization flags])
 
748
case "$withval" in
 
749
  default)
 
750
    case "$llvm_cv_os_type" in
 
751
    FreeBSD) optimize_option=-O2 ;;
 
752
    MingW) optimize_option=-O2 ;;
 
753
    *)     optimize_option=-O3 ;;
 
754
    esac ;;
 
755
  *) optimize_option="$withval" ;;
 
756
esac
 
757
AC_SUBST(OPTIMIZE_OPTION,$optimize_option)
 
758
AC_MSG_RESULT([$optimize_option])
 
759
 
 
760
dnl Specify extra build options
 
761
AC_ARG_WITH(extra-options,
 
762
  AS_HELP_STRING([--with-extra-options],
 
763
                 [Specify additional options to compile LLVM with]),,
 
764
                 withval=default)
 
765
case "$withval" in
 
766
  default) EXTRA_OPTIONS= ;;
 
767
  *) EXTRA_OPTIONS=$withval ;;
 
768
esac
 
769
AC_SUBST(EXTRA_OPTIONS,$EXTRA_OPTIONS)
 
770
 
 
771
dnl Allow specific bindings to be specified for building (or not)
 
772
AC_ARG_ENABLE([bindings],AS_HELP_STRING([--enable-bindings],
 
773
    [Build specific language bindings: all,auto,none,{binding-name} (default=auto)]),,
 
774
    enableval=default)
 
775
BINDINGS_TO_BUILD=""
 
776
case "$enableval" in
 
777
  yes | default | auto) BINDINGS_TO_BUILD="auto" ;;
 
778
  all ) BINDINGS_TO_BUILD="ocaml" ;;
 
779
  none | no) BINDINGS_TO_BUILD="" ;;
 
780
  *)for a_binding in `echo $enableval|sed -e 's/,/ /g' ` ; do
 
781
      case "$a_binding" in
 
782
        ocaml) BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" ;;
 
783
        *) AC_MSG_ERROR([Unrecognized binding $a_binding]) ;;
 
784
      esac
 
785
  done
 
786
  ;;
 
787
esac
 
788
 
 
789
dnl Allow the ocaml libdir to be overridden. This could go in a configure
 
790
dnl script for bindings/ocaml/configure, except that its auto value depends on
 
791
dnl OCAMLC, which is found here to support tests.
 
792
AC_ARG_WITH([ocaml-libdir],
 
793
  [AS_HELP_STRING([--with-ocaml-libdir],
 
794
    [Specify install location for ocaml bindings (default is stdlib)])],
 
795
  [],
 
796
  [withval=auto])
 
797
case "$withval" in
 
798
  auto) with_ocaml_libdir="$withval" ;;
 
799
  /* | [[A-Za-z]]:[[\\/]]*) with_ocaml_libdir="$withval" ;;
 
800
  *) AC_MSG_ERROR([Invalid path for --with-ocaml-libdir. Provide full path]) ;;
 
801
esac
 
802
 
 
803
AC_ARG_WITH(c-include-dirs,
 
804
  AS_HELP_STRING([--with-c-include-dirs],
 
805
    [Colon separated list of directories clang will search for headers]),,
 
806
    withval="")
 
807
AC_DEFINE_UNQUOTED(C_INCLUDE_DIRS,"$withval",
 
808
                   [Directories clang will search for headers])
 
809
 
 
810
AC_ARG_WITH(cxx-include-root,
 
811
  AS_HELP_STRING([--with-cxx-include-root],
 
812
    [Directory with the libstdc++ headers.]),,
 
813
    withval="")
 
814
AC_DEFINE_UNQUOTED(CXX_INCLUDE_ROOT,"$withval",
 
815
                   [Directory with the libstdc++ headers.])
 
816
 
 
817
AC_ARG_WITH(cxx-include-arch,
 
818
  AS_HELP_STRING([--with-cxx-include-arch],
 
819
    [Architecture of the libstdc++ headers.]),,
 
820
    withval="")
 
821
AC_DEFINE_UNQUOTED(CXX_INCLUDE_ARCH,"$withval",
 
822
                   [Arch the libstdc++ headers.])
 
823
 
 
824
AC_ARG_WITH(cxx-include-32bit-dir,
 
825
  AS_HELP_STRING([--with-cxx-include-32bit-dir],
 
826
    [32 bit multilib dir.]),,
 
827
    withval="")
 
828
AC_DEFINE_UNQUOTED(CXX_INCLUDE_32BIT_DIR,"$withval",
 
829
                   [32 bit multilib directory.])
 
830
 
 
831
AC_ARG_WITH(cxx-include-64bit-dir,
 
832
  AS_HELP_STRING([--with-cxx-include-64bit-dir],
 
833
    [64 bit multilib directory.]),,
 
834
    withval="")
 
835
AC_DEFINE_UNQUOTED(CXX_INCLUDE_64BIT_DIR,"$withval",
 
836
                   [64 bit multilib directory.])
 
837
 
 
838
dnl Allow linking of LLVM with GPLv3 binutils code.
 
839
AC_ARG_WITH(binutils-include,
 
840
  AS_HELP_STRING([--with-binutils-include],
 
841
    [Specify path to binutils/include/ containing plugin-api.h file for gold plugin.]),,
 
842
  withval=default)
 
843
case "$withval" in
 
844
  default) WITH_BINUTILS_INCDIR=default ;;
 
845
  /* | [[A-Za-z]]:[[\\/]]*)      WITH_BINUTILS_INCDIR=$withval ;;
 
846
  *) AC_MSG_ERROR([Invalid path for --with-binutils-include. Provide full path]) ;;
 
847
esac
 
848
if test "x$WITH_BINUTILS_INCDIR" != xdefault ; then
 
849
  AC_SUBST(BINUTILS_INCDIR,$WITH_BINUTILS_INCDIR)
 
850
  if test ! -f "$WITH_BINUTILS_INCDIR/plugin-api.h"; then
 
851
     echo "$WITH_BINUTILS_INCDIR/plugin-api.h"
 
852
     AC_MSG_ERROR([Invalid path to directory containing plugin-api.h.]);
 
853
  fi
 
854
fi
 
855
 
 
856
dnl --enable-libffi : check whether the user wants to turn off libffi:
 
857
AC_ARG_ENABLE(libffi,AS_HELP_STRING(
 
858
  --enable-libffi,[Check for the presence of libffi (default is NO)]),
 
859
  [case "$enableval" in
 
860
    yes) llvm_cv_enable_libffi="yes" ;;
 
861
    no)  llvm_cv_enable_libffi="no"  ;;
 
862
    *) AC_MSG_ERROR([Invalid setting for --enable-libffi. Use "yes" or "no"]) ;;
 
863
  esac],
 
864
  llvm_cv_enable_libffi=no)
 
865
 
 
866
dnl===-----------------------------------------------------------------------===
 
867
dnl===
 
868
dnl=== SECTION 4: Check for programs we need and that they are the right version
 
869
dnl===
 
870
dnl===-----------------------------------------------------------------------===
 
871
 
 
872
dnl Check for compilation tools
 
873
AC_PROG_CPP
 
874
AC_PROG_CC(gcc)
 
875
AC_PROG_CXX(g++)
 
876
 
 
877
AC_PROG_NM
 
878
AC_SUBST(NM)
 
879
 
 
880
dnl Check for the tools that the makefiles require
 
881
AC_CHECK_GNU_MAKE
 
882
AC_PROG_LN_S
 
883
AC_PATH_PROG(CMP, [cmp], [cmp])
 
884
AC_PATH_PROG(CP, [cp], [cp])
 
885
AC_PATH_PROG(DATE, [date], [date])
 
886
AC_PATH_PROG(FIND, [find], [find])
 
887
AC_PATH_PROG(GREP, [grep], [grep])
 
888
AC_PATH_PROG(MKDIR,[mkdir],[mkdir])
 
889
AC_PATH_PROG(MV,   [mv],   [mv])
 
890
AC_PROG_RANLIB
 
891
AC_CHECK_TOOL(AR, ar, false)
 
892
AC_PATH_PROG(RM,   [rm],   [rm])
 
893
AC_PATH_PROG(SED,  [sed],  [sed])
 
894
AC_PATH_PROG(TAR,  [tar],  [gtar])
 
895
AC_PATH_PROG(BINPWD,[pwd],  [pwd])
 
896
 
 
897
dnl Looking for misc. graph plotting software
 
898
AC_PATH_PROG(GRAPHVIZ, [Graphviz], [echo Graphviz])
 
899
if test "$GRAPHVIZ" != "echo Graphviz" ; then
 
900
  AC_DEFINE([HAVE_GRAPHVIZ],[1],[Define if the Graphviz program is available])
 
901
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
902
  if test "$llvm_cv_os_type" = "MingW" ; then
 
903
    GRAPHVIZ=`echo $GRAPHVIZ | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
904
  fi
 
905
  AC_DEFINE_UNQUOTED([LLVM_PATH_GRAPHVIZ],"$GRAPHVIZ${EXEEXT}",
 
906
   [Define to path to Graphviz program if found or 'echo Graphviz' otherwise])
 
907
fi
 
908
AC_PATH_PROG(DOT, [dot], [echo dot])
 
909
if test "$DOT" != "echo dot" ; then
 
910
  AC_DEFINE([HAVE_DOT],[1],[Define if the dot program is available])
 
911
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
912
  if test "$llvm_cv_os_type" = "MingW" ; then
 
913
    DOT=`echo $DOT | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
914
  fi
 
915
  AC_DEFINE_UNQUOTED([LLVM_PATH_DOT],"$DOT${EXEEXT}",
 
916
   [Define to path to dot program if found or 'echo dot' otherwise])
 
917
fi
 
918
AC_PATH_PROG(FDP, [fdp], [echo fdp])
 
919
if test "$FDP" != "echo fdp" ; then
 
920
  AC_DEFINE([HAVE_FDP],[1],[Define if the neat program is available])
 
921
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
922
  if test "$llvm_cv_os_type" = "MingW" ; then
 
923
    FDP=`echo $FDP | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
924
  fi
 
925
  AC_DEFINE_UNQUOTED([LLVM_PATH_FDP],"$FDP${EXEEXT}",
 
926
   [Define to path to fdp program if found or 'echo fdp' otherwise])
 
927
fi
 
928
AC_PATH_PROG(NEATO, [neato], [echo neato])
 
929
if test "$NEATO" != "echo neato" ; then
 
930
  AC_DEFINE([HAVE_NEATO],[1],[Define if the neat program is available])
 
931
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
932
  if test "$llvm_cv_os_type" = "MingW" ; then
 
933
    NEATO=`echo $NEATO | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
934
  fi
 
935
  AC_DEFINE_UNQUOTED([LLVM_PATH_NEATO],"$NEATO${EXEEXT}",
 
936
   [Define to path to neato program if found or 'echo neato' otherwise])
 
937
fi
 
938
AC_PATH_PROG(TWOPI, [twopi], [echo twopi])
 
939
if test "$TWOPI" != "echo twopi" ; then
 
940
  AC_DEFINE([HAVE_TWOPI],[1],[Define if the neat program is available])
 
941
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
942
  if test "$llvm_cv_os_type" = "MingW" ; then
 
943
    TWOPI=`echo $TWOPI | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
944
  fi
 
945
  AC_DEFINE_UNQUOTED([LLVM_PATH_TWOPI],"$TWOPI${EXEEXT}",
 
946
   [Define to path to twopi program if found or 'echo twopi' otherwise])
 
947
fi
 
948
AC_PATH_PROG(CIRCO, [circo], [echo circo])
 
949
if test "$CIRCO" != "echo circo" ; then
 
950
  AC_DEFINE([HAVE_CIRCO],[1],[Define if the neat program is available])
 
951
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
952
  if test "$llvm_cv_os_type" = "MingW" ; then
 
953
    CIRCO=`echo $CIRCO | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
954
  fi
 
955
  AC_DEFINE_UNQUOTED([LLVM_PATH_CIRCO],"$CIRCO${EXEEXT}",
 
956
   [Define to path to circo program if found or 'echo circo' otherwise])
 
957
fi
 
958
AC_PATH_PROGS(GV, [gv gsview32], [echo gv])
 
959
if test "$GV" != "echo gv" ; then
 
960
  AC_DEFINE([HAVE_GV],[1],[Define if the gv program is available])
 
961
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
962
  if test "$llvm_cv_os_type" = "MingW" ; then
 
963
    GV=`echo $GV | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
964
  fi
 
965
  AC_DEFINE_UNQUOTED([LLVM_PATH_GV],"$GV${EXEEXT}",
 
966
   [Define to path to gv program if found or 'echo gv' otherwise])
 
967
fi
 
968
AC_PATH_PROG(DOTTY, [dotty], [echo dotty])
 
969
if test "$DOTTY" != "echo dotty" ; then
 
970
  AC_DEFINE([HAVE_DOTTY],[1],[Define if the dotty program is available])
 
971
  dnl If we're targeting for mingw we should emit windows paths, not msys
 
972
  if test "$llvm_cv_os_type" = "MingW" ; then
 
973
    DOTTY=`echo $DOTTY | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' `
 
974
  fi
 
975
  AC_DEFINE_UNQUOTED([LLVM_PATH_DOTTY],"$DOTTY${EXEEXT}",
 
976
   [Define to path to dotty program if found or 'echo dotty' otherwise])
 
977
fi
 
978
 
 
979
dnl Look for a sufficiently recent version of Perl.
 
980
dnl CLAMAV local: don't need Perl, we use automake buildsystem not llvm-config
 
981
dnl LLVM_PROG_PERL([5.006])
 
982
dnl AC_SUBST(PERL)
 
983
dnl if test x"$PERL" = xnone; then
 
984
   AC_SUBST(HAVE_PERL,0)
 
985
dnl   AC_MSG_ERROR([perl is required but was not found, please install it])
 
986
dnl else
 
987
dnl   AC_SUBST(HAVE_PERL,1)
 
988
dnl fi
 
989
 
 
990
dnl Find the install program
 
991
AC_PROG_INSTALL
 
992
dnl Prepend src dir to install path dir if it's a relative path
 
993
dnl This is a hack for installs that take place in something other
 
994
dnl than the top level.
 
995
case "$INSTALL" in
 
996
 [[\\/$]]* | ?:[[\\/]]* ) ;;
 
997
 *)  INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
 
998
esac
 
999
 
 
1000
dnl Checks for documentation and testing tools that we can do without. If these
 
1001
dnl are not found then they are set to "true" which always succeeds but does
 
1002
dnl nothing. This just lets the build output show that we could have done
 
1003
dnl something if the tool was available.
 
1004
AC_PATH_PROG(BZIP2, [bzip2])
 
1005
AC_PATH_PROG(CAT, [cat])
 
1006
AC_PATH_PROG(DOXYGEN, [doxygen])
 
1007
AC_PATH_PROG(GROFF, [groff])
 
1008
AC_PATH_PROG(GZIP, [gzip])
 
1009
AC_PATH_PROG(POD2HTML, [pod2html])
 
1010
AC_PATH_PROG(POD2MAN, [pod2man])
 
1011
AC_PATH_PROG(PDFROFF, [pdfroff])
 
1012
AC_PATH_PROG(RUNTEST, [runtest])
 
1013
DJ_AC_PATH_TCLSH
 
1014
AC_PATH_PROG(ZIP, [zip])
 
1015
AC_PATH_PROGS(OCAMLC, [ocamlc])
 
1016
AC_PATH_PROGS(OCAMLOPT, [ocamlopt])
 
1017
AC_PATH_PROGS(OCAMLDEP, [ocamldep])
 
1018
AC_PATH_PROGS(OCAMLDOC, [ocamldoc])
 
1019
AC_PATH_PROGS(GAS, [gas as])
 
1020
 
 
1021
dnl Get the version of the linker in use.
 
1022
AC_LINK_GET_VERSION
 
1023
 
 
1024
dnl Determine whether the linker supports the -R option.
 
1025
AC_LINK_USE_R
 
1026
 
 
1027
dnl Determine whether the linker supports the -export-dynamic option.
 
1028
AC_LINK_EXPORT_DYNAMIC
 
1029
 
 
1030
dnl Determine whether the linker supports the --version-script option.
 
1031
AC_LINK_VERSION_SCRIPT
 
1032
 
 
1033
dnl Check for libtool and the library that has dlopen function (which must come
 
1034
dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with
 
1035
dnl libtool).
 
1036
AC_LIBTOOL_DLOPEN
 
1037
AC_LIB_LTDL
 
1038
 
 
1039
if test "$WITH_LLVMGCCDIR" = "default" ; then
 
1040
  LLVMGCC="llvm-gcc${EXEEXT}"
 
1041
  LLVMGXX="llvm-g++${EXEEXT}"
 
1042
  LLVMGCCCOMMAND="$LLVMGCC"
 
1043
  LLVMGXXCOMMAND="$LLVMGXX"
 
1044
  AC_SUBST(LLVMGCCCOMMAND,$LLVMGCCCOMMAND)
 
1045
  AC_SUBST(LLVMGXXCOMMAND,$LLVMGXXCOMMAND)
 
1046
  AC_PATH_PROG(LLVMGCC, $LLVMGCC, [])
 
1047
  AC_PATH_PROG(LLVMGXX, $LLVMGXX, [])
 
1048
else
 
1049
  if test -z "$LLVMGCC"; then
 
1050
    LLVMGCC="$WITH_LLVMGCCDIR/bin/llvm-gcc${EXEEXT}"
 
1051
    LLVMGCCCOMMAND="$LLVMGCC"
 
1052
  fi
 
1053
  if test -z "$LLVMGXX"; then
 
1054
    LLVMGXX="$WITH_LLVMGCCDIR/bin/llvm-g++${EXEEXT}"
 
1055
    LLVMGXXCOMMAND="$LLVMGXX"
 
1056
  fi
 
1057
 
 
1058
  AC_SUBST(LLVMGCC,$LLVMGCC)
 
1059
  AC_SUBST(LLVMGXX,$LLVMGXX)
 
1060
  AC_SUBST(LLVMGCCCOMMAND,$LLVMGCCCOMMAND)
 
1061
  AC_SUBST(LLVMGXXCOMMAND,$LLVMGXXCOMMAND)
 
1062
fi
 
1063
 
 
1064
dnl Select the LLVM capable compiler to use, we default to using llvm-gcc if
 
1065
dnl found, otherwise clang if available.
 
1066
AC_ARG_WITH(llvmcc,
 
1067
  AS_HELP_STRING([--with-llvmcc=<name>],
 
1068
    [Choose the LLVM capable compiler to use (llvm-gcc, clang, or none; default=check)]),
 
1069
    [],[with_llvmcc=check])
 
1070
AC_MSG_CHECKING([LLVM capable compiler])
 
1071
if test "$with_llvmcc" != "check"; then
 
1072
   if (test "$with_llvmcc" != "llvm-gcc" &&
 
1073
       test "$with_llvmcc" != "clang" &&
 
1074
       test "$with_llvmcc" != "none"); then
 
1075
      AC_MSG_ERROR([invalid value for --with-llvmcc, expected 'llvm-gcc', 'clang', or 'none'.])
 
1076
   fi
 
1077
   WITH_LLVMCC="$with_llvmcc"
 
1078
elif test -n "$LLVMGCC"; then
 
1079
   WITH_LLVMCC=llvm-gcc
 
1080
elif test -n "$WITH_CLANGPATH" || test "$WITH_BUILT_CLANG" -ne "0"; then
 
1081
   WITH_LLVMCC=clang
 
1082
else
 
1083
   WITH_LLVMCC=none
 
1084
fi
 
1085
AC_MSG_RESULT([$WITH_LLVMCC])
 
1086
AC_SUBST(LLVMCC_OPTION,$WITH_LLVMCC)
 
1087
 
 
1088
AC_MSG_CHECKING([tool compatibility])
 
1089
 
 
1090
dnl Ensure that compilation tools are GCC or a GNU compatible compiler such as
 
1091
dnl ICC; we use GCC specific options in the makefiles so the compiler needs
 
1092
dnl to support those options.
 
1093
dnl "icc" emits gcc signatures
 
1094
dnl "icc -no-gcc" emits no gcc signature BUT is still compatible
 
1095
ICC=no
 
1096
IXX=no
 
1097
case $CC in
 
1098
  icc*|icpc*)
 
1099
    ICC=yes
 
1100
    IXX=yes
 
1101
    ;;
 
1102
   *)
 
1103
    ;;
 
1104
esac
 
1105
 
 
1106
if test "$GCC" != "yes" && test "$ICC" != "yes"
 
1107
then
 
1108
  AC_MSG_ERROR([gcc|icc required but not found])
 
1109
fi
 
1110
 
 
1111
dnl Ensure that compilation tools are GCC; we use GCC specific extensions
 
1112
if test "$GXX" != "yes" && test "$IXX" != "yes"
 
1113
then
 
1114
  AC_MSG_ERROR([g++|icc required but not found])
 
1115
fi
 
1116
 
 
1117
dnl Verify that GCC is version 3.0 or higher
 
1118
if test "$GCC" = "yes"
 
1119
then
 
1120
  AC_COMPILE_IFELSE([[#if !defined(__GNUC__) || __GNUC__ < 3
 
1121
#error Unsupported GCC version
 
1122
#endif
 
1123
]], [], [AC_MSG_ERROR([gcc 3.x required, but you have a lower version])])
 
1124
fi
 
1125
 
 
1126
dnl Check for GNU Make.  We use its extensions, so don't build without it
 
1127
if test -z "$llvm_cv_gnu_make_command"
 
1128
then
 
1129
  AC_MSG_ERROR([GNU Make required but not found])
 
1130
fi
 
1131
 
 
1132
dnl Tool compatibility is okay if we make it here.
 
1133
AC_MSG_RESULT([ok])
 
1134
 
 
1135
dnl Check optional compiler flags.
 
1136
AC_MSG_CHECKING([optional compiler flags])
 
1137
CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros])
 
1138
CXX_FLAG_CHECK(NO_MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers])
 
1139
AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS])
 
1140
 
 
1141
dnl===-----------------------------------------------------------------------===
 
1142
dnl===
 
1143
dnl=== SECTION 5: Check for libraries
 
1144
dnl===
 
1145
dnl===-----------------------------------------------------------------------===
 
1146
 
 
1147
AC_CHECK_LIB(m,sin)
 
1148
if test "$llvm_cv_os_type" = "MingW" ; then
 
1149
  AC_CHECK_LIB(imagehlp, main)
 
1150
  AC_CHECK_LIB(psapi, main)
 
1151
fi
 
1152
 
 
1153
dnl dlopen() is required for plugin support.
 
1154
AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],
 
1155
               [Define if dlopen() is available on this platform.]),
 
1156
               AC_MSG_WARN([dlopen() not found - disabling plugin support]))
 
1157
 
 
1158
dnl libffi is optional; used to call external functions from the interpreter
 
1159
if test "$llvm_cv_enable_libffi" = "yes" ; then
 
1160
  AC_SEARCH_LIBS(ffi_call,ffi,AC_DEFINE([HAVE_FFI_CALL],[1],
 
1161
                 [Define if libffi is available on this platform.]),
 
1162
                 AC_MSG_ERROR([libffi not found - configure without --enable-libffi to compile without it]))
 
1163
fi
 
1164
 
 
1165
dnl mallinfo is optional; the code can compile (minus features) without it
 
1166
AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],
 
1167
               [Define if mallinfo() is available on this platform.]))
 
1168
 
 
1169
dnl pthread locking functions are optional - but llvm will not be thread-safe
 
1170
dnl without locks.
 
1171
if test "$ENABLE_THREADS" -eq 1 ; then
 
1172
  AC_CHECK_LIB(pthread, pthread_mutex_init)
 
1173
  AC_SEARCH_LIBS(pthread_mutex_lock,pthread,
 
1174
                 AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1],
 
1175
                           [Have pthread_mutex_lock]))
 
1176
  AC_SEARCH_LIBS(pthread_rwlock_init,pthread,
 
1177
                 AC_DEFINE([HAVE_PTHREAD_RWLOCK_INIT],[1],
 
1178
                 [Have pthread_rwlock_init]))
 
1179
  AC_SEARCH_LIBS(pthread_getspecific,pthread,
 
1180
                 AC_DEFINE([HAVE_PTHREAD_GETSPECIFIC],[1],
 
1181
                 [Have pthread_getspecific]))
 
1182
fi
 
1183
 
 
1184
dnl Allow extra x86-disassembler library
 
1185
AC_ARG_WITH(udis86,
 
1186
  AS_HELP_STRING([--with-udis86=<path>],
 
1187
    [Use udis86 external x86 disassembler library]),
 
1188
    [
 
1189
      AC_SUBST(USE_UDIS86, [1])
 
1190
      case "$withval" in
 
1191
        /usr/lib|yes) ;;
 
1192
        *) LDFLAGS="$LDFLAGS -L${withval}" ;;
 
1193
      esac
 
1194
      AC_CHECK_LIB(udis86, ud_init, [], [
 
1195
        echo "Error! You need to have libudis86 around."
 
1196
        exit -1
 
1197
      ])
 
1198
    ],
 
1199
    AC_SUBST(USE_UDIS86, [0]))
 
1200
AC_DEFINE_UNQUOTED([USE_UDIS86],$USE_UDIS86,
 
1201
                   [Define if use udis86 library])
 
1202
 
 
1203
dnl Allow OProfile support for JIT output.
 
1204
AC_ARG_WITH(oprofile,
 
1205
  AS_HELP_STRING([--with-oprofile=<prefix>],
 
1206
    [Tell OProfile >= 0.9.4 how to symbolize JIT output]),
 
1207
    [
 
1208
      AC_SUBST(USE_OPROFILE, [1])
 
1209
      case "$withval" in
 
1210
        /usr|yes) llvm_cv_oppath=/usr/lib/oprofile ;;
 
1211
        no) llvm_cv_oppath=
 
1212
            AC_SUBST(USE_OPROFILE, [0]) ;;
 
1213
        *) llvm_cv_oppath="${withval}/lib/oprofile"
 
1214
           CPPFLAGS="-I${withval}/include";;
 
1215
      esac
 
1216
      if test -n "$llvm_cv_oppath" ; then
 
1217
        LIBS="$LIBS -L${llvm_cv_oppath} -Wl,-rpath,${llvm_cv_oppath}"
 
1218
        dnl Work around http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537744:
 
1219
        dnl libbfd is not included properly in libopagent in some Debian
 
1220
        dnl versions.  If libbfd isn't found at all, we assume opagent works
 
1221
        dnl anyway.
 
1222
        AC_SEARCH_LIBS(bfd_init, bfd, [], [])
 
1223
        AC_SEARCH_LIBS(op_open_agent, opagent, [], [
 
1224
          echo "Error! You need to have libopagent around."
 
1225
          exit -1
 
1226
        ])
 
1227
        AC_CHECK_HEADER([opagent.h], [], [
 
1228
          echo "Error! You need to have opagent.h around."
 
1229
          exit -1
 
1230
          ])
 
1231
      fi
 
1232
    ],
 
1233
    [
 
1234
      AC_SUBST(USE_OPROFILE, [0])
 
1235
    ])
 
1236
AC_DEFINE_UNQUOTED([USE_OPROFILE],$USE_OPROFILE,
 
1237
                   [Define if we have the oprofile JIT-support library])
 
1238
 
 
1239
dnl===-----------------------------------------------------------------------===
 
1240
dnl===
 
1241
dnl=== SECTION 6: Check for header files
 
1242
dnl===
 
1243
dnl===-----------------------------------------------------------------------===
 
1244
 
 
1245
dnl First, use autoconf provided macros for specific headers that we need
 
1246
dnl We don't check for ancient stuff or things that are guaranteed to be there
 
1247
dnl by the C++ standard. We always use the <cfoo> versions of <foo.h> C headers.
 
1248
dnl Generally we're looking for POSIX headers.
 
1249
AC_HEADER_DIRENT
 
1250
AC_HEADER_MMAP_ANONYMOUS
 
1251
AC_HEADER_STAT
 
1252
AC_HEADER_STDC
 
1253
AC_HEADER_SYS_WAIT
 
1254
AC_HEADER_TIME
 
1255
 
 
1256
AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h])
 
1257
AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h termios.h unistd.h])
 
1258
AC_CHECK_HEADERS([utime.h windows.h])
 
1259
AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/resource.h sys/time.h])
 
1260
AC_CHECK_HEADERS([sys/types.h sys/ioctl.h malloc/malloc.h mach/mach.h])
 
1261
AC_CHECK_HEADERS([valgrind/valgrind.h])
 
1262
if test "$ENABLE_THREADS" -eq 1 ; then
 
1263
  AC_CHECK_HEADERS(pthread.h,
 
1264
                   AC_SUBST(HAVE_PTHREAD, 1),
 
1265
                   AC_SUBST(HAVE_PTHREAD, 0))
 
1266
else
 
1267
  AC_SUBST(HAVE_PTHREAD, 0)
 
1268
fi
 
1269
 
 
1270
dnl Try to find ffi.h.
 
1271
if test "$llvm_cv_enable_libffi" = "yes" ; then
 
1272
  AC_CHECK_HEADERS([ffi.h ffi/ffi.h])
 
1273
fi
 
1274
 
 
1275
dnl Try to find Darwin specific crash reporting libraries.
 
1276
AC_CHECK_HEADERS([CrashReporterClient.h])
 
1277
 
 
1278
dnl Try to find Darwin specific crash reporting global.
 
1279
AC_MSG_CHECKING([__crashreporter_info__])
 
1280
AC_LINK_IFELSE(
 
1281
  AC_LANG_SOURCE(
 
1282
    [[extern const char *__crashreporter_info__;
 
1283
      int main() {
 
1284
        __crashreporter_info__ = "test";
 
1285
        return 0;
 
1286
      }
 
1287
    ]]),
 
1288
  AC_MSG_RESULT(yes)
 
1289
  AC_DEFINE(HAVE_CRASHREPORTER_INFO, 1, Can use __crashreporter_info__),
 
1290
  AC_MSG_RESULT(no)
 
1291
  AC_DEFINE(HAVE_CRASHREPORTER_INFO, 0,
 
1292
            Define if __crashreporter_info__ exists.))
 
1293
 
 
1294
dnl===-----------------------------------------------------------------------===
 
1295
dnl===
 
1296
dnl=== SECTION 7: Check for types and structures
 
1297
dnl===
 
1298
dnl===-----------------------------------------------------------------------===
 
1299
 
 
1300
AC_HUGE_VAL_CHECK
 
1301
AC_TYPE_PID_T
 
1302
AC_TYPE_SIZE_T
 
1303
AC_DEFINE_UNQUOTED([RETSIGTYPE],[void],[Define as the return type of signal handlers (`int' or `void').])
 
1304
AC_STRUCT_TM
 
1305
AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
 
1306
AC_CHECK_TYPES([uint64_t],,
 
1307
         AC_CHECK_TYPES([u_int64_t],,
 
1308
         AC_MSG_ERROR([Type uint64_t or u_int64_t required but not found])))
 
1309
 
 
1310
dnl===-----------------------------------------------------------------------===
 
1311
dnl===
 
1312
dnl=== SECTION 8: Check for specific functions needed
 
1313
dnl===
 
1314
dnl===-----------------------------------------------------------------------===
 
1315
 
 
1316
AC_CHECK_FUNCS([backtrace ceilf floorf roundf rintf nearbyintf getcwd ])
 
1317
AC_CHECK_FUNCS([powf fmodf strtof round ])
 
1318
AC_CHECK_FUNCS([getpagesize getrusage getrlimit setrlimit gettimeofday ])
 
1319
AC_CHECK_FUNCS([isatty mkdtemp mkstemp ])
 
1320
AC_CHECK_FUNCS([mktemp posix_spawn realpath sbrk setrlimit strdup ])
 
1321
AC_CHECK_FUNCS([strerror strerror_r strerror_s setenv ])
 
1322
AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ])
 
1323
AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp])
 
1324
AC_C_PRINTF_A
 
1325
AC_FUNC_RAND48
 
1326
 
 
1327
dnl Check for variations in the Standard C++ library and STL. These macros are
 
1328
dnl provided by LLVM in the autoconf/m4 directory.
 
1329
AC_FUNC_ISNAN
 
1330
AC_FUNC_ISINF
 
1331
 
 
1332
dnl Check for mmap support.We also need to know if /dev/zero is required to
 
1333
dnl be opened for allocating RWX memory.
 
1334
dnl Make sure we aren't attempting to configure for an unknown system
 
1335
if test "$llvm_cv_platform_type" = "Unix" ; then
 
1336
  AC_FUNC_MMAP
 
1337
  AC_FUNC_MMAP_FILE
 
1338
  AC_NEED_DEV_ZERO_FOR_MMAP
 
1339
 
 
1340
  if test "$ac_cv_func_mmap_fixed_mapped" = "no"
 
1341
  then
 
1342
    AC_MSG_WARN([mmap() of a fixed address required but not supported])
 
1343
  fi
 
1344
  if test "$ac_cv_func_mmap_file" = "no"
 
1345
  then
 
1346
    AC_MSG_WARN([mmap() of files required but not found])
 
1347
  fi
 
1348
fi
 
1349
 
 
1350
dnl atomic builtins are required for threading support.
 
1351
AC_MSG_CHECKING(for GCC atomic builtins)
 
1352
dnl Since we'll be using these atomic builtins in C++ files we should test
 
1353
dnl the C++ compiler.
 
1354
AC_LANG_PUSH([C++])
 
1355
AC_LINK_IFELSE(
 
1356
  AC_LANG_SOURCE(
 
1357
    [[int main() {
 
1358
        volatile unsigned long val = 1;
 
1359
        __sync_synchronize();
 
1360
        __sync_val_compare_and_swap(&val, 1, 0);
 
1361
        __sync_add_and_fetch(&val, 1);
 
1362
        __sync_sub_and_fetch(&val, 1);
 
1363
        return 0;
 
1364
      }
 
1365
    ]]),
 
1366
  AC_LANG_POP([C++])
 
1367
  AC_MSG_RESULT(yes)
 
1368
  AC_DEFINE(LLVM_MULTITHREADED, 1, Build multithreading support into LLVM),
 
1369
  AC_MSG_RESULT(no)
 
1370
  AC_DEFINE(LLVM_MULTITHREADED, 0, Build multithreading support into LLVM)
 
1371
  AC_MSG_WARN([LLVM will be built thread-unsafe because atomic builtins are missing]))
 
1372
 
 
1373
dnl===-----------------------------------------------------------------------===
 
1374
dnl===
 
1375
dnl=== SECTION 9: Additional checks, variables, etc.
 
1376
dnl===
 
1377
dnl===-----------------------------------------------------------------------===
 
1378
 
 
1379
dnl Handle 32-bit linux systems running a 64-bit kernel.
 
1380
dnl This has to come after section 4 because it invokes the compiler.
 
1381
if test "$llvm_cv_os_type" = "Linux" -a "$llvm_cv_target_arch" = "x86_64" ; then
 
1382
  AC_IS_LINUX_MIXED
 
1383
  if test "$llvm_cv_linux_mixed" = "yes"; then
 
1384
    llvm_cv_target_arch="x86"
 
1385
    ARCH="x86"
 
1386
  fi
 
1387
fi
 
1388
 
 
1389
dnl Check, whether __dso_handle is present
 
1390
AC_CHECK_FUNCS([__dso_handle])
 
1391
 
 
1392
dnl See if the llvm-gcc executable can compile to LLVM assembly
 
1393
AC_CACHE_CHECK([whether llvm-gcc is sane],[llvm_cv_llvmgcc_sanity],
 
1394
[llvm_cv_llvmgcc_sanity="no"
 
1395
if test -x "$LLVMGCC" ; then
 
1396
  cp /dev/null conftest.c
 
1397
  "$LLVMGCC" -emit-llvm -S -o - conftest.c | \
 
1398
      grep 'target datalayout =' > /dev/null 2>&1
 
1399
  if test $? -eq 0 ; then
 
1400
    llvm_cv_llvmgcc_sanity="yes"
 
1401
  fi
 
1402
  rm conftest.c
 
1403
fi])
 
1404
 
 
1405
dnl Since we have a sane llvm-gcc, identify it and its sub-tools
 
1406
if test "$llvm_cv_llvmgcc_sanity" = "yes" ; then
 
1407
  AC_MSG_CHECKING([llvm-gcc component support])
 
1408
  llvmcc1path=`"$LLVMGCC" --print-prog-name=cc1`
 
1409
  AC_SUBST(LLVMCC1,$llvmcc1path)
 
1410
  llvmcc1pluspath=`"$LLVMGCC" --print-prog-name=cc1plus`
 
1411
  AC_SUBST(LLVMCC1PLUS,$llvmcc1pluspath)
 
1412
  llvmgccdir=`echo "$llvmcc1path" | sed 's,/libexec/.*,,'`
 
1413
  AC_SUBST(LLVMGCCDIR,$llvmgccdir)
 
1414
  llvmgcclangs=[`"$LLVMGCC" -v --help 2>&1 | grep '^Configured with:' | sed 's/^.*--enable-languages=\([^ ]*\).*/\1/'`]
 
1415
  AC_SUBST(LLVMGCC_LANGS,$llvmgcclangs)
 
1416
  AC_MSG_RESULT([ok])
 
1417
fi
 
1418
 
 
1419
dnl Propagate the shared library extension that the libltdl checks did to
 
1420
dnl the Makefiles so we can use it there too
 
1421
AC_SUBST(SHLIBEXT,$libltdl_cv_shlibext)
 
1422
 
 
1423
dnl Propagate the run-time library path variable that the libltdl
 
1424
dnl checks found to the Makefiles so we can use it there too
 
1425
AC_SUBST(SHLIBPATH_VAR,$libltdl_cv_shlibpath_var)
 
1426
 
 
1427
# Translate the various configuration directories and other basic
 
1428
# information into substitutions that will end up in Makefile.config.in
 
1429
# that these configured values can be used by the makefiles
 
1430
if test "${prefix}" = "NONE" ; then
 
1431
  prefix="/usr/local"
 
1432
fi
 
1433
eval LLVM_PREFIX="${prefix}";
 
1434
eval LLVM_BINDIR="${prefix}/bin";
 
1435
eval LLVM_LIBDIR="${prefix}/lib";
 
1436
eval LLVM_DATADIR="${prefix}/share/llvm";
 
1437
eval LLVM_DOCSDIR="${prefix}/share/doc/llvm";
 
1438
eval LLVM_ETCDIR="${prefix}/etc/llvm";
 
1439
eval LLVM_INCLUDEDIR="${prefix}/include";
 
1440
eval LLVM_INFODIR="${prefix}/info";
 
1441
eval LLVM_MANDIR="${prefix}/man";
 
1442
LLVM_CONFIGTIME=`date`
 
1443
AC_SUBST(LLVM_PREFIX)
 
1444
AC_SUBST(LLVM_BINDIR)
 
1445
AC_SUBST(LLVM_LIBDIR)
 
1446
AC_SUBST(LLVM_DATADIR)
 
1447
AC_SUBST(LLVM_DOCSDIR)
 
1448
AC_SUBST(LLVM_ETCDIR)
 
1449
AC_SUBST(LLVM_INCLUDEDIR)
 
1450
AC_SUBST(LLVM_INFODIR)
 
1451
AC_SUBST(LLVM_MANDIR)
 
1452
AC_SUBST(LLVM_CONFIGTIME)
 
1453
 
 
1454
# Place the various directores into the config.h file as #defines so that we
 
1455
# can know about the installation paths within LLVM.
 
1456
AC_DEFINE_UNQUOTED(LLVM_PREFIX,"$LLVM_PREFIX",
 
1457
                   [Installation prefix directory])
 
1458
AC_DEFINE_UNQUOTED(LLVM_BINDIR, "$LLVM_BINDIR",
 
1459
                   [Installation directory for binary executables])
 
1460
AC_DEFINE_UNQUOTED(LLVM_LIBDIR, "$LLVM_LIBDIR",
 
1461
                   [Installation directory for libraries])
 
1462
AC_DEFINE_UNQUOTED(LLVM_DATADIR, "$LLVM_DATADIR",
 
1463
                   [Installation directory for data files])
 
1464
AC_DEFINE_UNQUOTED(LLVM_DOCSDIR, "$LLVM_DOCSDIR",
 
1465
                   [Installation directory for documentation])
 
1466
AC_DEFINE_UNQUOTED(LLVM_ETCDIR, "$LLVM_ETCDIR",
 
1467
                   [Installation directory for config files])
 
1468
AC_DEFINE_UNQUOTED(LLVM_INCLUDEDIR, "$LLVM_INCLUDEDIR",
 
1469
                   [Installation directory for include files])
 
1470
AC_DEFINE_UNQUOTED(LLVM_INFODIR, "$LLVM_INFODIR",
 
1471
                   [Installation directory for .info files])
 
1472
AC_DEFINE_UNQUOTED(LLVM_MANDIR, "$LLVM_MANDIR",
 
1473
                   [Installation directory for man pages])
 
1474
AC_DEFINE_UNQUOTED(LLVM_CONFIGTIME, "$LLVM_CONFIGTIME",
 
1475
                   [Time at which LLVM was configured])
 
1476
AC_DEFINE_UNQUOTED(LLVM_HOSTTRIPLE, "$host",
 
1477
                   [Host triple we were built on])
 
1478
 
 
1479
# Determine which bindings to build.
 
1480
if test "$BINDINGS_TO_BUILD" = auto ; then
 
1481
  BINDINGS_TO_BUILD=""
 
1482
  if test "x$OCAMLC" != x -a "x$OCAMLDEP" != x ; then
 
1483
    BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD"
 
1484
  fi
 
1485
fi
 
1486
AC_SUBST(BINDINGS_TO_BUILD,$BINDINGS_TO_BUILD)
 
1487
 
 
1488
# This isn't really configurey, but it avoids having to repeat the list in
 
1489
# other files.
 
1490
AC_SUBST(ALL_BINDINGS,ocaml)
 
1491
 
 
1492
# Do any work necessary to ensure that bindings have what they need.
 
1493
binding_prereqs_failed=0
 
1494
for a_binding in $BINDINGS_TO_BUILD ; do
 
1495
  case "$a_binding" in
 
1496
  ocaml)
 
1497
    if test "x$OCAMLC" = x ; then
 
1498
      AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamlc not found. Try configure OCAMLC=/path/to/ocamlc])
 
1499
      binding_prereqs_failed=1
 
1500
    fi
 
1501
    if test "x$OCAMLDEP" = x ; then
 
1502
      AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamldep not found. Try configure OCAMLDEP=/path/to/ocamldep])
 
1503
      binding_prereqs_failed=1
 
1504
    fi
 
1505
    if test "x$OCAMLOPT" = x ; then
 
1506
      AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamlopt not found. Try configure OCAMLOPT=/path/to/ocamlopt])
 
1507
      dnl ocamlopt is optional!
 
1508
    fi
 
1509
    if test "x$with_ocaml_libdir" != xauto ; then
 
1510
      AC_SUBST(OCAML_LIBDIR,$with_ocaml_libdir)
 
1511
    else
 
1512
      ocaml_stdlib="`"$OCAMLC" -where`"
 
1513
      if test "$LLVM_PREFIX" '<' "$ocaml_stdlib" -a "$ocaml_stdlib" '<' "$LLVM_PREFIX~"
 
1514
      then
 
1515
        # ocaml stdlib is beneath our prefix; use stdlib
 
1516
        AC_SUBST(OCAML_LIBDIR,$ocaml_stdlib)
 
1517
      else
 
1518
        # ocaml stdlib is outside our prefix; use libdir/ocaml
 
1519
        AC_SUBST(OCAML_LIBDIR,$LLVM_LIBDIR/ocaml)
 
1520
      fi
 
1521
    fi
 
1522
    ;;
 
1523
  esac
 
1524
done
 
1525
if test "$binding_prereqs_failed" = 1 ; then
 
1526
  AC_MSG_ERROR([Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings.])
 
1527
fi
 
1528
 
 
1529
dnl Determine whether the compiler supports -fvisibility-inlines-hidden.
 
1530
AC_CXX_USE_VISIBILITY_INLINES_HIDDEN
 
1531
 
 
1532
dnl Determine linker rpath flag
 
1533
if test "$llvm_cv_link_use_r" = "yes" ; then
 
1534
  RPATH="-Wl,-R"
 
1535
else
 
1536
  RPATH="-Wl,-rpath"
 
1537
fi
 
1538
AC_SUBST(RPATH)
 
1539
 
 
1540
dnl Determine linker rdynamic flag
 
1541
if test "$llvm_cv_link_use_export_dynamic" = "yes" ; then
 
1542
  RDYNAMIC="-Wl,-export-dynamic"
 
1543
else
 
1544
  RDYNAMIC=""
 
1545
fi
 
1546
AC_SUBST(RDYNAMIC)
 
1547
 
 
1548
dnl===-----------------------------------------------------------------------===
 
1549
dnl===
 
1550
dnl=== SECTION 10: Specify the output files and generate it
 
1551
dnl===
 
1552
dnl===-----------------------------------------------------------------------===
 
1553
 
 
1554
dnl Configure header files
 
1555
dnl WARNING: dnl If you add or remove any of the following config headers, then
 
1556
dnl you MUST also update Makefile.rules so that the variable FilesToConfig
 
1557
dnl contains the same list of files as AC_CONFIG_HEADERS below. This ensures the
 
1558
dnl files can be updated automatically when their *.in sources change.
 
1559
AC_CONFIG_HEADERS([include/llvm/Config/config.h include/llvm/Config/llvm-config.h])
 
1560
AH_TOP([#ifndef CONFIG_H
 
1561
#define CONFIG_H])
 
1562
AH_BOTTOM([#endif])
 
1563
 
 
1564
AC_CONFIG_FILES([include/llvm/Config/Targets.def])
 
1565
AC_CONFIG_FILES([include/llvm/Config/AsmPrinters.def])
 
1566
AC_CONFIG_FILES([include/llvm/Config/AsmParsers.def])
 
1567
AC_CONFIG_FILES([include/llvm/Config/Disassemblers.def])
 
1568
AC_CONFIG_HEADERS([include/llvm/System/DataTypes.h])
 
1569
 
 
1570
dnl Configure the makefile's configuration data
 
1571
AC_CONFIG_FILES([Makefile.config])
 
1572
 
 
1573
dnl Configure the RPM spec file for LLVM
 
1574
AC_CONFIG_FILES([llvm.spec])
 
1575
 
 
1576
dnl Configure llvmc's Base plugin
 
1577
dnl ClamAV local: no tools
 
1578
dnl AC_CONFIG_FILES([tools/llvmc/src/Base.td])
 
1579
 
 
1580
dnl Do the first stage of configuration for llvm-config.in.
 
1581
dnl AC_CONFIG_FILES([tools/llvm-config/llvm-config.in])
 
1582
 
 
1583
dnl Do special configuration of Makefiles
 
1584
AC_CONFIG_COMMANDS([setup],,[llvm_src="${srcdir}"])
 
1585
AC_CONFIG_MAKEFILE(Makefile)
 
1586
AC_CONFIG_MAKEFILE(Makefile.common)
 
1587
AC_CONFIG_MAKEFILE(examples/Makefile)
 
1588
AC_CONFIG_MAKEFILE(lib/Makefile)
 
1589
AC_CONFIG_MAKEFILE(runtime/Makefile)
 
1590
AC_CONFIG_MAKEFILE(test/Makefile)
 
1591
AC_CONFIG_MAKEFILE(test/Makefile.tests)
 
1592
AC_CONFIG_MAKEFILE(unittests/Makefile)
 
1593
AC_CONFIG_MAKEFILE(tools/Makefile)
 
1594
AC_CONFIG_MAKEFILE(utils/Makefile)
 
1595
AC_CONFIG_MAKEFILE(projects/Makefile)
 
1596
AC_CONFIG_MAKEFILE(bindings/Makefile)
 
1597
AC_CONFIG_MAKEFILE(bindings/ocaml/Makefile.ocaml)
 
1598
 
 
1599
dnl Finally, crank out the output
 
1600
AC_OUTPUT