blob: a4d641040f336a781264be1d3433d28164ba887a [file] [log] [blame]
Misha Brukman6d5ab862004-04-24 00:10:56 +00001#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
2#
3# The LLVM Compiler Infrastructure
4#
Chris Lattner57360d12007-12-29 20:11:13 +00005# This file is distributed under the University of Illinois Open Source
6# License. See LICENSE.TXT for details.
Misha Brukman9b8f5422009-01-09 16:44:42 +00007#
Misha Brukman6d5ab862004-04-24 00:10:56 +00008#===------------------------------------------------------------------------===#
John Criswell7a73b802003-06-30 21:59:07 +00009#
10# This file is included by Makefile.common. It defines paths and other
11# values specific to a particular installation of LLVM.
Brian Gaekef1dd2002004-01-16 21:31:34 +000012#
Misha Brukman6d5ab862004-04-24 00:10:56 +000013#===------------------------------------------------------------------------===#
John Criswell7a73b802003-06-30 21:59:07 +000014
Reid Spencerb2cb4862005-01-16 02:20:42 +000015# Define LLVM specific info and directories based on the autoconf variables
Dylan Noblesmith7fe0e032011-12-18 18:50:16 +000016LLVMPackageName := @PACKAGE_TARNAME@
Reid Spencerb2cb4862005-01-16 02:20:42 +000017LLVMVersion := @PACKAGE_VERSION@
Stephen Hines36b56882014-04-23 16:57:46 -070018LLVM_VERSION_MAJOR := @LLVM_VERSION_MAJOR@
19LLVM_VERSION_MINOR := @LLVM_VERSION_MINOR@
20LLVM_VERSION_PATCH := @LLVM_VERSION_PATCH@
21LLVM_VERSION_SUFFIX := @LLVM_VERSION_SUFFIX@
Reid Spencere1200212004-11-29 04:53:50 +000022LLVM_CONFIGTIME := @LLVM_CONFIGTIME@
Reid Spencerb2cb4862005-01-16 02:20:42 +000023
24###########################################################################
25# Directory Configuration
26# This section of the Makefile determines what is where. To be
27# specific, there are several locations that need to be defined:
28#
29# o LLVM_SRC_ROOT : The root directory of the LLVM source code.
30# o LLVM_OBJ_ROOT : The root directory containing the built LLVM code.
31#
32# o PROJ_SRC_DIR : The directory containing the code to build.
33# o PROJ_SRC_ROOT : The root directory of the code to build.
34#
35# o PROJ_OBJ_DIR : The directory in which compiled code will be placed.
36# o PROJ_OBJ_ROOT : The root directory in which compiled code is placed.
37#
38###########################################################################
39
Reid Spenceraea7fe42006-07-28 05:05:00 +000040PWD := @BINPWD@
Reid Spencerb2cb4862005-01-16 02:20:42 +000041# Set the project name to LLVM if its not defined
42ifndef PROJECT_NAME
Reid Spencer1b22fde2006-08-07 23:23:39 +000043PROJECT_NAME := $(LLVMPackageName)
Reid Spencerb2cb4862005-01-16 02:20:42 +000044endif
45
Chris Lattner7cf8fc72010-08-03 22:53:22 +000046# The macro below is expanded when 'realpath' is not built-in.
47# Built-in 'realpath' is available on GNU Make 3.81.
48realpath = $(shell cd $(1); $(PWD))
49
50PROJ_OBJ_DIR := $(call realpath, .)
51PROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL))
Reid Spencerb2cb4862005-01-16 02:20:42 +000052
NAKAMURA Takumie5ab51d2011-10-16 02:54:26 +000053CLANG_SRC_ROOT := @CLANG_SRC_ROOT@
54
Dylan Noblesmith7fe0e032011-12-18 18:50:16 +000055ifeq ($(PROJECT_NAME),$(LLVMPackageName))
Chris Lattner7cf8fc72010-08-03 22:53:22 +000056LLVM_SRC_ROOT := $(call realpath, @abs_top_srcdir@)
57LLVM_OBJ_ROOT := $(call realpath, @abs_top_builddir@)
58PROJ_SRC_ROOT := $(LLVM_SRC_ROOT)
NAKAMURA Takumie5ab51d2011-10-16 02:54:26 +000059PROJ_SRC_DIR := $(LLVM_SRC_ROOT)$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR))
60
61ifneq ($(CLANG_SRC_ROOT),)
62 CLANG_SRC_ROOT:= $(call realpath, $(CLANG_SRC_ROOT))
63 PROJ_SRC_DIR := $(patsubst $(LLVM_SRC_ROOT)/tools/clang%,$(CLANG_SRC_ROOT)%,$(PROJ_SRC_DIR))
64endif
65
Reid Spencer32b16912007-01-17 20:24:45 +000066prefix := @prefix@
67PROJ_prefix := $(prefix)
Jordan Rose92080522012-10-01 18:40:32 +000068program_prefix := @program_prefix@
Reid Spencerb2cb4862005-01-16 02:20:42 +000069PROJ_VERSION := $(LLVMVersion)
70else
71ifndef PROJ_SRC_ROOT
72$(error Projects must define PROJ_SRC_ROOT)
73endif
74ifndef PROJ_OBJ_ROOT
75$(error Projects must define PROJ_OBJ_ROOT)
76endif
77ifndef PROJ_INSTALL_ROOT
78$(error Projects must define PROJ_INSTALL_ROOT)
79endif
80ifndef LLVM_SRC_ROOT
81$(error Projects must define LLVM_SRC_ROOT)
82endif
83ifndef LLVM_OBJ_ROOT
84$(error Projects must define LLVM_OBJ_ROOT)
85endif
Chris Lattner7cf8fc72010-08-03 22:53:22 +000086PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
Reid Spencer32b16912007-01-17 20:24:45 +000087prefix := $(PROJ_INSTALL_ROOT)
88PROJ_prefix := $(prefix)
Reid Spencerb2cb4862005-01-16 02:20:42 +000089ifndef PROJ_VERSION
90PROJ_VERSION := 1.0
91endif
92endif
Reid Spencere1200212004-11-29 04:53:50 +000093
Bob Wilsonae7e2a42011-11-28 07:59:52 +000094INTERNAL_PREFIX := @INTERNAL_PREFIX@
95ifneq ($(INTERNAL_PREFIX),)
96PROJ_internal_prefix := $(INTERNAL_PREFIX)
97else
98PROJ_internal_prefix := $(prefix)
99endif
100
Erick Tryzelaard4076cf2010-03-04 20:56:19 +0000101PROJ_bindir := $(PROJ_prefix)/bin
102PROJ_libdir := $(PROJ_prefix)/lib
103PROJ_datadir := $(PROJ_prefix)/share
104PROJ_docsdir := $(PROJ_prefix)/docs/llvm
105PROJ_etcdir := $(PROJ_prefix)/etc/llvm
106PROJ_includedir := $(PROJ_prefix)/include
107PROJ_infodir := $(PROJ_prefix)/info
108PROJ_mandir := $(PROJ_prefix)/share/man
Reid Spencer32b16912007-01-17 20:24:45 +0000109
Reid Spencerbbf7a8a2004-12-31 22:54:28 +0000110# Determine if we're on a unix type operating system
111LLVM_ON_UNIX:=@LLVM_ON_UNIX@
112LLVM_ON_WIN32:=@LLVM_ON_WIN32@
113
Anton Korobeynikove55db742009-08-18 00:40:33 +0000114# Host operating system for which LLVM will be run.
John Criswell7a73b802003-06-30 21:59:07 +0000115OS=@OS@
Anton Korobeynikove55db742009-08-18 00:40:33 +0000116HOST_OS=@HOST_OS@
117# Target operating system for which LLVM will compile for.
118TARGET_OS=@TARGET_OS@
John Criswell7a73b802003-06-30 21:59:07 +0000119
Danil Malyshevbb8cef52012-05-17 21:07:47 +0000120# Host hardware architecture
121HOST_ARCH=@HOST_ARCH@
John Criswell76595452003-07-01 22:07:39 +0000122# Target hardware architecture
John Criswell76595452003-07-01 22:07:39 +0000123ARCH=@ARCH@
Daniel Dunbara7de1d62011-11-12 00:18:02 +0000124TARGET_NATIVE_ARCH := $(ARCH)
Stephen Hines36b56882014-04-23 16:57:46 -0700125LLVM_NATIVE_ARCH := @LLVM_NATIVE_ARCH@
John Criswell76595452003-07-01 22:07:39 +0000126
Reid Spencere2cfe5d2006-07-26 21:14:56 +0000127# Indicates, whether we're cross-compiling LLVM or not
128LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
129
130# Executable file extension for build platform (mainly for
131# tablegen call if we're cross-compiling).
132BUILD_EXEEXT=@BUILD_EXEEXT@
133
Jim Grosbach673612e2008-10-02 22:56:44 +0000134# Compilers for the build platflorm (mainly for tablegen
135# call if we're cross-compiling).
136BUILD_CC=@BUILD_CC@
137BUILD_CXX=@BUILD_CXX@
138
Shantonu Sen5e869c32009-09-02 23:52:23 +0000139# Triple for configuring build tools when cross-compiling
140BUILD_TRIPLE=@build@
141
Peter Collingbournefbb662f2013-01-16 17:27:22 +0000142# Target triple (cpu-vendor-os) which LLVM is compiled for
143HOST_TRIPLE=@host@
144
Reid Spencer18224032004-11-07 19:12:53 +0000145# Target triple (cpu-vendor-os) for which we should generate code
146TARGET_TRIPLE=@target@
147
Evan Chengcf9be262006-06-20 22:16:32 +0000148# Extra options to compile LLVM with
149EXTRA_OPTIONS=@EXTRA_OPTIONS@
150
Daniel Dunbare2a91a72011-06-16 22:30:38 +0000151# Extra options to link LLVM with
152EXTRA_LD_OPTIONS=@EXTRA_LD_OPTIONS@
153
John Criswell0021c312004-02-13 21:57:29 +0000154# Endian-ness of the target
155ENDIAN=@ENDIAN@
156
John Criswell7a73b802003-06-30 21:59:07 +0000157# Path to the C++ compiler to use. This is an optional setting, which defaults
158# to whatever your gmake defaults to.
John Criswell7a73b802003-06-30 21:59:07 +0000159CXX = @CXX@
160
Misha Brukmanb5a2e402004-06-17 15:39:58 +0000161# Path to the CC binary, which use used by testcases for native builds.
John Criswell7a73b802003-06-30 21:59:07 +0000162CC := @CC@
163
Patrik Hagglund6c440fc2013-02-04 08:15:53 +0000164# C/C++ preprocessor flags.
165CPPFLAGS += @CPPFLAGS@
166
167# C compiler flags.
168CFLAGS += @CFLAGS@
169
170# C++ compiler flags.
171CXXFLAGS += @CXXFLAGS@
172
Brian Gaekef1dd2002004-01-16 21:31:34 +0000173# Linker flags.
Patrik Hagglund6c440fc2013-02-04 08:15:53 +0000174LDFLAGS += @LDFLAGS@
John Criswell49bf8622003-06-30 22:33:53 +0000175
Brian Gaekef1dd2002004-01-16 21:31:34 +0000176# Path to the library archiver program.
John Criswell7a73b802003-06-30 21:59:07 +0000177AR_PATH = @AR@
Anton Korobeynikove55db742009-08-18 00:40:33 +0000178AR = @AR@
John Criswell7a73b802003-06-30 21:59:07 +0000179
Reid Spencer1bc68642006-07-27 23:00:30 +0000180# Path to the nm program
181NM_PATH = @NM@
182
Reid Spencer151f8ba2004-10-25 08:27:37 +0000183# The pathnames of the programs we require to build
Reid Spencer8a2d4712004-12-16 17:48:14 +0000184CMP := @CMP@
185CP := @CP@
Reid Spencere1200212004-11-29 04:53:50 +0000186DATE := @DATE@
187FIND := @FIND@
Reid Spencere1200212004-11-29 04:53:50 +0000188GREP := @GREP@
189INSTALL := @INSTALL@
Reid Spencerb2cb4862005-01-16 02:20:42 +0000190MKDIR := $(LLVM_SRC_ROOT)/autoconf/mkinstalldirs
Reid Spencere1200212004-11-29 04:53:50 +0000191MV := @MV@
Reid Spencere1200212004-11-29 04:53:50 +0000192RANLIB := @RANLIB@
193RM := @RM@
194SED := @SED@
195TAR := @TAR@
Saleem Abdulrasool3ef8b0a2013-01-30 04:07:37 +0000196PYTHON := @PYTHON@
Reid Spencere1200212004-11-29 04:53:50 +0000197
198# Paths to miscellaneous programs we hope are present but might not be
199BZIP2 := @BZIP2@
mike-m68cb3192010-05-06 23:45:43 +0000200CAT := @CAT@
Reid Spencere1200212004-11-29 04:53:50 +0000201DOT := @DOT@
202DOXYGEN := @DOXYGEN@
Reid Spencere1200212004-11-29 04:53:50 +0000203GROFF := @GROFF@
Eric Christopher031d3072010-12-10 01:31:51 +0000204GZIPBIN := @GZIPBIN@
Stephen Hines37ed9c12014-12-01 14:51:49 -0800205GO := @GO@
206OCAMLFIND := @OCAMLFIND@
Duncan Sands3a67f502008-10-22 09:42:14 +0000207GAS := @GAS@
Reid Spencere1200212004-11-29 04:53:50 +0000208POD2HTML := @POD2HTML@
209POD2MAN := @POD2MAN@
mike-m68cb3192010-05-06 23:45:43 +0000210PDFROFF := @PDFROFF@
Reid Spencere1200212004-11-29 04:53:50 +0000211ZIP := @ZIP@
John Criswell7a73b802003-06-30 21:59:07 +0000212
Stephen Hines36b56882014-04-23 16:57:46 -0700213HAVE_LIBZ := @HAVE_LIBZ@
214HAVE_DLOPEN := @HAVE_DLOPEN@
Reid Spencer1000b732006-12-01 00:37:14 +0000215HAVE_PTHREAD := @HAVE_PTHREAD@
Stephen Hines36b56882014-04-23 16:57:46 -0700216HAVE_TERMINFO := @HAVE_TERMINFO@
Reid Spencerb195d9d2006-03-23 23:21:29 +0000217
Stephen Hines37ed9c12014-12-01 14:51:49 -0800218HAVE_OCAMLOPT := @HAVE_OCAMLOPT@
219HAVE_OCAML_OUNIT := @HAVE_OCAML_OUNIT@
220
Reid Spencer5a870442005-04-22 17:14:14 +0000221LIBS := @LIBS@
222
Stephen Hines36b56882014-04-23 16:57:46 -0700223# Targets that are possible to build
224ALL_TARGETS := @ALL_TARGETS@
225
Gordon Henriksen6530e9d2007-10-02 09:50:18 +0000226# Targets that we should build
227TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
228
Stephen Hines36b56882014-04-23 16:57:46 -0700229# Targets supporting JIT
230TARGETS_WITH_JIT := @TARGETS_WITH_JIT@
231
John Criswell7a73b802003-06-30 21:59:07 +0000232# Path to directory where object files should be stored during a build.
233# Set OBJ_ROOT to "." if you do not want to use a separate place for
234# object files.
John Criswell7f336952003-09-06 14:44:17 +0000235OBJ_ROOT := .
John Criswell7a73b802003-06-30 21:59:07 +0000236
Nick Lewycky1dace482009-03-03 04:55:15 +0000237# What to pass as rpath flag to g++
238RPATH := @RPATH@
239
Nick Lewycky18f99072009-03-05 08:20:21 +0000240# What to pass as -rdynamic flag to g++
241RDYNAMIC := @RDYNAMIC@
242
John Criswell7a73b802003-06-30 21:59:07 +0000243# These are options that can either be enabled here, or can be enabled on the
Brian Gaekef1dd2002004-01-16 21:31:34 +0000244# make command line (ie, make ENABLE_PROFILING=1):
John Criswell7a73b802003-06-30 21:59:07 +0000245
Eric Christopherbee515f2011-11-11 22:51:42 +0000246# When ENABLE_LIBCPP is enabled, LLVM uses libc++ by default to build.
247#ENABLE_LIBCPP = 0
248ENABLE_LIBCPP = @ENABLE_LIBCPP@
249
Stephen Hines36b56882014-04-23 16:57:46 -0700250# When ENABLE_CXX1Y is enabled, LLVM uses c++1y mode by default to build.
251# Otherwise it uses the baseline c++11.
252ENABLE_CXX1Y = @ENABLE_CXX1Y@
Eric Christopher82120022012-08-03 19:47:14 +0000253
Eric Christopher1baa3812013-06-25 01:12:25 +0000254# When ENABLE_SPLIT_DWARF is enabled, LLVM uses -gfission to build in debug mode.
255ENABLE_SPLIT_DWARF = @ENABLE_SPLIT_DWARF@
256
Stephen Hines36b56882014-04-23 16:57:46 -0700257# When enabled, clang will have plugin support.
258CLANG_PLUGIN_SUPPORT = @CLANG_PLUGIN_SUPPORT@
259
Roman Divackyd14baf42012-12-13 16:07:19 +0000260# When ENABLE_CLANG_ARCMT is enabled, clang will have ARCMigrationTool.
261ENABLE_CLANG_ARCMT = @ENABLE_CLANG_ARCMT@
262
Roman Divackyd14baf42012-12-13 16:07:19 +0000263# When ENABLE_CLANG_STATIC_ANALYZER is enabled, clang will have StaticAnalyzer.
264ENABLE_CLANG_STATIC_ANALYZER = @ENABLE_CLANG_STATIC_ANALYZER@
265
Eric Christopher09a88732012-08-03 19:58:20 +0000266# When ENABLE_WERROR is enabled, we'll pass -Werror on the command line
267ENABLE_WERROR = @ENABLE_WERROR@
268
Stephen Hines36b56882014-04-23 16:57:46 -0700269# When ENABLE_TERMINFO is enabled, we use terminfo.
270ENABLE_TERMINFO = @ENABLE_TERMINFO@
271
Reid Spencerc4329cf2006-04-07 15:59:41 +0000272# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put
Misha Brukman9b8f5422009-01-09 16:44:42 +0000273# into the "Release" directories. Otherwise, LLVM code is not optimized and
Reid Spencerc4329cf2006-04-07 15:59:41 +0000274# output is put in the "Debug" directories.
John Criswell7a73b802003-06-30 21:59:07 +0000275#ENABLE_OPTIMIZED = 1
276@ENABLE_OPTIMIZED@
277
David Greenedbefd0c2009-04-17 14:49:22 +0000278# When ENABLE_PROFILING is enabled, profile instrumentation is done
279# and output is put into the "<Flavor>+Profile" directories, where
Gabor Greif6418cb32010-07-07 13:58:46 +0000280# <Flavor> is either Debug or Release depending on how other build
281# flags are set. Otherwise, output is put in the <Flavor>
David Greenedbefd0c2009-04-17 14:49:22 +0000282# directories.
283#ENABLE_PROFILING = 1
284@ENABLE_PROFILING@
285
Mikhail Glushenkov895f32c2009-07-03 03:52:07 +0000286# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will
Reid Spencer1a5a5512006-04-09 23:39:43 +0000287# exclude assertion checks, otherwise they are included.
Reid Spencerc28ccd82006-04-09 20:42:14 +0000288#DISABLE_ASSERTIONS = 1
289@DISABLE_ASSERTIONS@
Reid Spencerc4329cf2006-04-07 15:59:41 +0000290
David Greenea696d242007-06-28 19:36:08 +0000291# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM
292# code will include expensive checks, otherwise they are excluded.
293#ENABLE_EXPENSIVE_CHECKS = 0
294@ENABLE_EXPENSIVE_CHECKS@
295
Pirama Arumuga Nainar2c3e0052015-05-06 11:46:36 -0700296# --enable-abi-breaking-checks : decide whether we should compile in asserts and
297# checks that make the build ABI incompatible with an llvm built without these
298# checks enabled.
299ENABLE_ABI_BREAKING_CHECKS = @ENABLE_ABI_BREAKING_CHECKS@
300
Reid Spencer8b2e1412006-11-17 03:32:33 +0000301# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug
302# symbols.
303#DEBUG_RUNTIME = 1
304@DEBUG_RUNTIME@
305
Jeffrey Yasskin7fd82e52009-09-27 17:47:29 +0000306# When DEBUG_SYMBOLS is enabled, the compiler libraries will retain debug
307# symbols.
308#DEBUG_SYMBOLS = 1
309@DEBUG_SYMBOLS@
310
Daniel Dunbar8b5bee42012-08-14 18:14:20 +0000311# When KEEP_SYMBOLS is enabled, installed executables will never have their
312# symbols stripped.
313#KEEP_SYMBOLS = 1
314@KEEP_SYMBOLS@
315
Daniel Dunbar1fce9482009-11-04 04:32:50 +0000316# The compiler flags to use for optimized builds.
317OPTIMIZE_OPTION := @OPTIMIZE_OPTION@
318
John Criswell7a73b802003-06-30 21:59:07 +0000319# When ENABLE_PROFILING is enabled, the llvm source base is built with profile
320# information to allow gprof to be used to get execution frequencies.
John Criswell7a73b802003-06-30 21:59:07 +0000321#ENABLE_PROFILING = 1
John Criswell7a73b802003-06-30 21:59:07 +0000322
Rafael Espindola9d9ae9f2010-11-12 19:24:06 +0000323# When ENABLE_DOCS is disabled, docs/ will not be built.
324ENABLE_DOCS = @ENABLE_DOCS@
325
Reid Spencere1200212004-11-29 04:53:50 +0000326# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built
327ENABLE_DOXYGEN = @ENABLE_DOXYGEN@
328
Reid Spencerb756c792006-06-01 01:09:43 +0000329# Do we want to enable threads?
Saleem Abdulrasool11486ff2013-01-31 01:34:59 +0000330ENABLE_THREADS := @LLVM_ENABLE_THREADS@
Reid Spencerb756c792006-06-01 01:09:43 +0000331
Alexey Samsonovee03c942013-04-23 08:28:39 +0000332# Do we want to enable zlib?
333ENABLE_ZLIB := @LLVM_ENABLE_ZLIB@
334
Reid Spencer89b0d992006-12-16 22:07:52 +0000335# Do we want to build with position independent code?
336ENABLE_PIC := @ENABLE_PIC@
337
Jeffrey Yasskinc9017192010-02-25 06:34:33 +0000338# Do we want to build a shared library and link the tools with it?
339ENABLE_SHARED := @ENABLE_SHARED@
340
NAKAMURA Takumi8eac8862010-12-29 03:59:14 +0000341# Do we want to link the stdc++ into a shared library? (Cygming)
342ENABLE_EMBED_STDCXX := @ENABLE_EMBED_STDCXX@
343
Daniel Dunbarecfe67c2008-09-02 17:35:16 +0000344# Use -fvisibility-inlines-hidden?
345ENABLE_VISIBILITY_INLINES_HIDDEN := @ENABLE_VISIBILITY_INLINES_HIDDEN@
346
Daniel Dunbardd464df2010-05-10 20:11:56 +0000347# Do we want to allow timestamping information into builds?
348ENABLE_TIMESTAMPS := @ENABLE_TIMESTAMPS@
349
Misha Brukmane9676502003-07-02 21:20:04 +0000350# This option tells the Makefiles to produce verbose output.
John Criswell7a73b802003-06-30 21:59:07 +0000351# It essentially prints the commands that make is executing
John Criswell7a73b802003-06-30 21:59:07 +0000352#VERBOSE = 1
John Criswell7a73b802003-06-30 21:59:07 +0000353
John Criswell7a73b802003-06-30 21:59:07 +0000354# Enable JIT for this platform
Reid Spencerb195d9d2006-03-23 23:21:29 +0000355TARGET_HAS_JIT = @TARGET_HAS_JIT@
John Criswell7a73b802003-06-30 21:59:07 +0000356
Reid Spencere2cfe5d2006-07-26 21:14:56 +0000357# Shared library extension for host platform.
Brian Gaeke88aeace2004-01-21 19:39:07 +0000358SHLIBEXT = @SHLIBEXT@
359
Reid Spencere2cfe5d2006-07-26 21:14:56 +0000360# Executable file extension for host platform.
John Criswelle6d468f2004-06-01 19:04:38 +0000361EXEEXT = @EXEEXT@
362
Reid Spencerb2cb4862005-01-16 02:20:42 +0000363# Things we just assume are "there"
364ECHO := echo
Reid Spencera773bd52006-08-04 18:18:08 +0000365
366# Get the options for causing archives to link all their content instead of
367# just missing symbols, and the inverse of that. This is used for certain LLVM
368# tools that permit loadable modules. It ensures that the LLVM symbols will be
369# available to those loadable modules.
370LINKALL := @LINKALL@
371NOLINKALL := @NOLINKALL@
Reid Spencerb2ed05262006-11-03 18:04:08 +0000372
373# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
374# on the check.
375HUGE_VAL_SANITY = @HUGE_VAL_SANITY@
Gordon Henriksen6530e9d2007-10-02 09:50:18 +0000376
377# Bindings that we should build
Gordon Henriksen1d4e0782007-10-02 16:42:10 +0000378BINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@
Gordon Henriksen1d4e0782007-10-02 16:42:10 +0000379OCAML_LIBDIR := @OCAML_LIBDIR@
Gordon Henriksen6530e9d2007-10-02 09:50:18 +0000380
Chris Lattner163974d2008-01-15 22:50:50 +0000381# When compiling under Mingw/Cygwin, executables such as tblgen
382# expect Windows paths, whereas the build system uses Unix paths.
383# The function SYSPATH transforms Unix paths into Windows paths.
384ifneq (,$(findstring -mno-cygwin, $(CXX)))
385 SYSPATH = $(shell echo $(1) | cygpath -m -f -)
386else
387 SYSPATH = $(1)
388endif
Nick Lewyckye2be5d52009-02-03 07:10:08 +0000389
390# Location of the plugin header file for gold.
391BINUTILS_INCDIR := @BINUTILS_INCDIR@
Mikhail Glushenkov2373c992009-07-03 03:52:47 +0000392
Julien Lerouge8039e032009-10-26 19:58:44 +0000393# Optional flags supported by the compiler
394# -Wno-missing-field-initializers
395NO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@
396# -Wno-variadic-macros
397NO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@
Rafael Espindola9993a3a2012-02-28 23:32:06 +0000398# -Wcovered-switch-default
399COVERED_SWITCH_DEFAULT = @COVERED_SWITCH_DEFAULT@
David Greened2f82162013-01-09 22:11:13 +0000400# -Wno-uninitialized
401NO_UNINITIALIZED = @NO_UNINITIALIZED@
402# -Wno-maybe-uninitialized
403NO_MAYBE_UNINITIALIZED = @NO_MAYBE_UNINITIALIZED@
Stephen Hines37ed9c12014-12-01 14:51:49 -0800404# -Wno-comment
405NO_COMMENT = @NO_COMMENT@
Dan Gohmane05f6092010-04-16 22:58:15 +0000406
Tobias Grosserbaaadb22010-10-30 00:54:26 +0000407# Was polly found in tools/polly?
408LLVM_HAS_POLLY = @LLVM_HAS_POLLY@
Dan Gohmane05f6092010-04-16 22:58:15 +0000409# Flags supported by the linker.
Dan Gohmanda612d62010-06-01 14:56:56 +0000410# bfd ld / gold --version-script=file
411HAVE_LINK_VERSION_SCRIPT = @HAVE_LINK_VERSION_SCRIPT@
Eli Bendersky61b18512012-03-13 08:33:15 +0000412
Eric Christopher46e6bcf2012-08-03 19:47:19 +0000413# Flags to control using libxml2
414LIBXML2_LIBS := @LIBXML2_LIBS@
415LIBXML2_INC := @LIBXML2_INC@
416
Eli Bendersky61b18512012-03-13 08:33:15 +0000417# Flags to control building support for Intel JIT Events API
418USE_INTEL_JITEVENTS := @USE_INTEL_JITEVENTS@
419INTEL_JITEVENTS_INCDIR := @INTEL_JITEVENTS_INCDIR@
420INTEL_JITEVENTS_LIBDIR := @INTEL_JITEVENTS_LIBDIR@
421
422# Flags to control building support for OProfile JIT API
423USE_OPROFILE := @USE_OPROFILE@
Preston Gurd75493542012-05-07 19:38:40 +0000424
425ifeq ($(USE_INTEL_JITEVENTS), 1)
426 OPTIONAL_COMPONENTS += IntelJITEvents
427endif
428ifeq ($(USE_OPROFILE), 1)
429 OPTIONAL_COMPONENTS += OProfileJIT
430endif