~ubuntu-branches/debian/sid/clamav/sid

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Andreas Cadhalpun, Andreas Cadhalpun, Sebastian Andrzej Siewior, Frans Spiesschaert
  • Date: 2014-10-15 06:50:20 UTC
  • mfrom: (1.3.13) (42.1.4 experimental)
  • Revision ID: package-import@ubuntu.com-20141015065020-0cpy1hdueggaw35s
Tags: 0.98.5~rc1+dfsg-1
[ Andreas Cadhalpun ]
* Import new upstream release candidate.
* Drop patches included upstream and update the others.
* Add 4 new symbols to libclamav6.symbols.
* Fix debian/copyright.
* Update lintian overrides.
* Update Standards-Version to 3.9.6 (no changes needed).
* Add Breaks and Replaces for old clamd package to clamdscan.
* Remove unnecessary shlibs:Depends from clamav-dbg.
* Add patches to support LLVM 3.5.

[ Sebastian Andrzej Siewior ]
* Add embedded copy of libmspack to be used as fallback, when libmspack-dev
  is not available.

[ Frans Spiesschaert ]
* Updated Dutch Debconf template translation (Closes: #763634)

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