Makefile.llvm.config.in revision b2bc6e4ad6a15fd93bc256f26bcb2a05c052fb25
1#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
2#
3#                     The LLVM Compiler Infrastructure
4#
5# This file is distributed under the University of Illinois Open Source
6# License. See LICENSE.TXT for details.
7#
8#===------------------------------------------------------------------------===#
9#
10# This file is included by Makefile.common.  It defines paths and other
11# values specific to a particular installation of LLVM.
12#
13#===------------------------------------------------------------------------===#
14
15# Define LLVM specific info and directories based on the autoconf variables
16LLVMVersion       := @LLVM_VERSION@
17
18###########################################################################
19# Directory Configuration
20#	This section of the Makefile determines what is where.  To be
21#	specific, there are several locations that need to be defined:
22#
23#	o LLVM_SRC_ROOT  : The root directory of the LLVM source code.
24#	o LLVM_OBJ_ROOT  : The root directory containing the built LLVM code.
25#
26#	o PROJ_SRC_DIR  : The directory containing the code to build.
27#	o PROJ_SRC_ROOT : The root directory of the code to build.
28#
29#	o PROJ_OBJ_DIR  : The directory in which compiled code will be placed.
30#	o PROJ_OBJ_ROOT : The root directory in which compiled code is placed.
31#
32###########################################################################
33
34PWD := @BINPWD@
35
36# The macro below is expanded when 'realpath' is not built-in.
37# Built-in 'realpath' is available on GNU Make 3.81.
38realpath = $(shell cd $(1); $(PWD))
39
40PROJ_OBJ_DIR  := $(call realpath, .)
41PROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL))
42
43ifndef PROJ_SRC_ROOT
44$(error Projects must define PROJ_SRC_ROOT)
45endif
46ifndef PROJ_OBJ_ROOT
47$(error Projects must define PROJ_OBJ_ROOT)
48endif
49ifndef PROJ_INSTALL_ROOT
50$(error Projects must define PROJ_INSTALL_ROOT)
51endif
52ifndef LLVM_SRC_ROOT
53$(error Projects must define LLVM_SRC_ROOT)
54endif
55ifndef LLVM_OBJ_ROOT
56$(error Projects must define LLVM_OBJ_ROOT)
57endif
58PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
59prefix          := $(PROJ_INSTALL_ROOT)
60PROJ_prefix     := $(prefix)
61ifndef PROJ_VERSION
62PROJ_VERSION := 1.0
63endif
64
65PROJ_bindir     := $(PROJ_prefix)/bin
66PROJ_libdir     := $(PROJ_prefix)/lib
67PROJ_datadir    := $(PROJ_prefix)/share
68PROJ_docsdir    := $(PROJ_prefix)/docs/llvm
69PROJ_etcdir     := $(PROJ_prefix)/etc/llvm
70PROJ_includedir := $(PROJ_prefix)/include
71PROJ_infodir    := $(PROJ_prefix)/info
72PROJ_mandir     := $(PROJ_prefix)/share/man
73
74# Determine if we're on a unix type operating system
75LLVM_ON_UNIX:=@LLVM_ON_UNIX@
76LLVM_ON_WIN32:=@LLVM_ON_WIN32@
77
78# Host operating system for which LLVM will be run.
79OS=@OS@
80HOST_OS=@HOST_OS@
81# Target operating system for which LLVM will compile for.
82TARGET_OS=@TARGET_OS@
83
84# Target hardware architecture
85ARCH=@ARCH@
86
87# Indicates, whether we're cross-compiling LLVM or not
88LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
89
90# Executable file extension for build platform (mainly for
91# tablegen call if we're cross-compiling).
92BUILD_EXEEXT=@BUILD_EXEEXT@
93
94# Compilers for the build platflorm (mainly for tablegen
95# call if we're cross-compiling).
96BUILD_CC=@BUILD_CC@
97BUILD_CXX=@BUILD_CXX@
98
99# Triple for configuring build tools when cross-compiling
100BUILD_TRIPLE=@build@
101
102# Target triple (cpu-vendor-os) for which we should generate code
103TARGET_TRIPLE=@target@
104
105# Extra options to compile LLVM with
106EXTRA_OPTIONS=@EXTRA_OPTIONS@
107
108# Extra options to link LLVM with
109EXTRA_LD_OPTIONS=@EXTRA_LD_OPTIONS@
110
111# Endian-ness of the target
112ENDIAN=@ENDIAN@
113
114# Path to the C++ compiler to use.  This is an optional setting, which defaults
115# to whatever your gmake defaults to.
116CXX = @CXX@
117
118# Path to the CC binary, which use used by testcases for native builds.
119CC := @CC@
120
121# Linker flags.
122LDFLAGS+=@LDFLAGS@
123
124# Path to the library archiver program.
125AR_PATH = @AR@
126AR = @AR@
127
128# Path to the nm program
129NM_PATH = @NM@
130
131# The pathnames of the programs we require to build
132CMP        := @CMP@
133CP         := @CP@
134DATE       := @DATE@
135FIND       := @FIND@
136GREP       := @GREP@
137INSTALL    := @INSTALL@
138MKDIR      := $(PROJ_SRC_ROOT)/autoconf/mkinstalldirs
139MV         := @MV@
140RANLIB     := @RANLIB@
141RM         := @RM@
142SED        := @SED@
143TAR        := @TAR@
144
145# Paths to miscellaneous programs we hope are present but might not be
146BZIP2      := @BZIP2@
147CAT        := @CAT@
148DOT        := @DOT@
149DOXYGEN    := @DOXYGEN@
150GROFF      := @GROFF@
151GZIPBIN    := @GZIPBIN@
152OCAMLC     := @OCAMLC@
153OCAMLOPT   := @OCAMLOPT@
154OCAMLDEP   := @OCAMLDEP@
155OCAMLDOC   := @OCAMLDOC@
156GAS        := @GAS@
157POD2HTML   := @POD2HTML@
158POD2MAN    := @POD2MAN@
159PDFROFF    := @PDFROFF@
160RUNTEST    := @RUNTEST@
161TCLSH      := @TCLSH@
162ZIP        := @ZIP@
163
164HAVE_PTHREAD := @HAVE_PTHREAD@
165
166LIBS       := @LIBS@
167
168# Targets that we should build
169TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
170
171# Path to directory where object files should be stored during a build.
172# Set OBJ_ROOT to "." if you do not want to use a separate place for
173# object files.
174OBJ_ROOT := .
175
176# What to pass as rpath flag to g++
177RPATH := @RPATH@
178
179# What to pass as -rdynamic flag to g++
180RDYNAMIC := @RDYNAMIC@
181
182# These are options that can either be enabled here, or can be enabled on the
183# make command line (ie, make ENABLE_PROFILING=1):
184
185# When ENABLE_LIBCPP is enabled, LLVM uses libc++ by default to build.
186#ENABLE_LIBCPP = 0
187ENABLE_LIBCPP = @ENABLE_LIBCPP@
188
189# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put
190# into the "Release" directories. Otherwise, LLVM code is not optimized and
191# output is put in the "Debug" directories.
192#ENABLE_OPTIMIZED = 1
193@ENABLE_OPTIMIZED@
194
195# When ENABLE_PROFILING is enabled, profile instrumentation is done
196# and output is put into the "<Flavor>+Profile" directories, where
197# <Flavor> is either Debug or Release depending on how other build
198# flags are set. Otherwise, output is put in the <Flavor>
199# directories.
200#ENABLE_PROFILING = 1
201@ENABLE_PROFILING@
202
203# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will
204# exclude assertion checks, otherwise they are included.
205#DISABLE_ASSERTIONS = 1
206@DISABLE_ASSERTIONS@
207
208# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM
209# code will include expensive checks, otherwise they are excluded.
210#ENABLE_EXPENSIVE_CHECKS = 0
211@ENABLE_EXPENSIVE_CHECKS@
212
213# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug
214# symbols.
215#DEBUG_RUNTIME = 1
216@DEBUG_RUNTIME@
217
218# When DEBUG_SYMBOLS is enabled, the compiler libraries will retain debug
219# symbols.
220#DEBUG_SYMBOLS = 1
221@DEBUG_SYMBOLS@
222
223# The compiler flags to use for optimized builds.
224OPTIMIZE_OPTION := @OPTIMIZE_OPTION@
225
226# When ENABLE_PROFILING is enabled, the llvm source base is built with profile
227# information to allow gprof to be used to get execution frequencies.
228#ENABLE_PROFILING = 1
229
230# When ENABLE_DOCS is disabled, docs/ will not be built.
231ENABLE_DOCS = @ENABLE_DOCS@
232
233# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built
234ENABLE_DOXYGEN = @ENABLE_DOXYGEN@
235
236# Do we want to enable threads?
237ENABLE_THREADS := @ENABLE_THREADS@
238
239# Do we want to build with position independent code?
240ENABLE_PIC := @ENABLE_PIC@
241
242# Do we want to build a shared library and link the tools with it?
243ENABLE_SHARED := @ENABLE_SHARED@
244
245# Do we want to link the stdc++ into a shared library? (Cygming)
246ENABLE_EMBED_STDCXX := @ENABLE_EMBED_STDCXX@
247
248# Use -fvisibility-inlines-hidden?
249ENABLE_VISIBILITY_INLINES_HIDDEN := @ENABLE_VISIBILITY_INLINES_HIDDEN@
250
251# Do we want to allow timestamping information into builds?
252ENABLE_TIMESTAMPS := @ENABLE_TIMESTAMPS@
253
254# This option tells the Makefiles to produce verbose output.
255# It essentially prints the commands that make is executing
256#VERBOSE = 1
257
258# Enable JIT for this platform
259TARGET_HAS_JIT = @TARGET_HAS_JIT@
260
261# Environment variable to set to change the runtime shared library search path.
262SHLIBPATH_VAR = @SHLIBPATH_VAR@
263
264# Shared library extension for host platform.
265SHLIBEXT = @SHLIBEXT@
266
267# Executable file extension for host platform.
268EXEEXT = @EXEEXT@
269
270# Things we just assume are "there"
271ECHO := echo
272
273# Get the options for causing archives to link all their content instead of
274# just missing symbols, and the inverse of that. This is used for certain LLVM
275# tools that permit loadable modules. It ensures that the LLVM symbols will be
276# available to those loadable modules.
277LINKALL := @LINKALL@
278NOLINKALL := @NOLINKALL@
279
280# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
281# on the check.
282HUGE_VAL_SANITY = @HUGE_VAL_SANITY@
283
284# Bindings that we should build
285BINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@
286ALL_BINDINGS      := @ALL_BINDINGS@
287OCAML_LIBDIR      := @OCAML_LIBDIR@
288
289# When compiling under Mingw/Cygwin, executables such as tblgen
290# expect Windows paths, whereas the build system uses Unix paths.
291# The function SYSPATH transforms Unix paths into Windows paths.
292ifneq (,$(findstring -mno-cygwin, $(CXX)))
293  SYSPATH = $(shell echo $(1) | cygpath -m -f -)
294else
295  SYSPATH = $(1)
296endif
297
298# Location of the plugin header file for gold.
299BINUTILS_INCDIR := @BINUTILS_INCDIR@
300
301# Optional flags supported by the compiler
302# -Wno-missing-field-initializers
303NO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@
304# -Wno-variadic-macros
305NO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@
306# -Wcovered-switch-default
307COVERED_SWITCH_DEFAULT = @COVERED_SWITCH_DEFAULT@
308
309# Was polly found in tools/polly?
310LLVM_HAS_POLLY = @LLVM_HAS_POLLY@
311# Flags supported by the linker.
312# bfd ld / gold --version-script=file
313HAVE_LINK_VERSION_SCRIPT = @HAVE_LINK_VERSION_SCRIPT@
314