Makefile.config.in revision 163974de4763c21db3c312aec0ffb834f5203d13
16d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
26d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#
36d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#                     The LLVM Compiler Infrastructure
46d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#
557360d1f1cede3b26744d0ce3ade814fcc0f332dChris Lattner# This file is distributed under the University of Illinois Open Source
657360d1f1cede3b26744d0ce3ade814fcc0f332dChris Lattner# License. See LICENSE.TXT for details.
76d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman# 
86d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===------------------------------------------------------------------------===#
97a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#
107a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# This file is included by Makefile.common.  It defines paths and other
117a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# values specific to a particular installation of LLVM.
12f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke#
136d5ab866fc1492c12b1f2531bbe7dcdb55ac9e15Misha Brukman#===------------------------------------------------------------------------===#
147a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
15b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer# Define LLVM specific info and directories based on the autoconf variables
16b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerLLVMPackageName   := @PACKAGE_NAME@
17b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerLLVMVersion       := @PACKAGE_VERSION@
18e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerLLVM_CONFIGTIME   := @LLVM_CONFIGTIME@
19b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer
20b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer###########################################################################
21b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer# Directory Configuration
22b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	This section of the Makefile determines what is where.  To be
23b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	specific, there are several locations that need to be defined:
24b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#
25b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	o LLVM_SRC_ROOT  : The root directory of the LLVM source code.
26b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	o LLVM_OBJ_ROOT  : The root directory containing the built LLVM code.
27b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#
28b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	o PROJ_SRC_DIR  : The directory containing the code to build.
29b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	o PROJ_SRC_ROOT : The root directory of the code to build.
30b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#
31b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	o PROJ_OBJ_DIR  : The directory in which compiled code will be placed.
32b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#	o PROJ_OBJ_ROOT : The root directory in which compiled code is placed.
33b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer#
34b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer###########################################################################
35b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer
36aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerPWD := @BINPWD@
37b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer# Set the project name to LLVM if its not defined
38b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJECT_NAME
391b22fde3b225e4e465e6b53ca9ce03461223488fReid SpencerPROJECT_NAME := $(LLVMPackageName)
40b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
41b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer
42aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerPROJ_OBJ_DIR  := $(shell $(PWD))
43aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerPROJ_OBJ_ROOT := $(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); $(PWD))
44b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer
451b22fde3b225e4e465e6b53ca9ce03461223488fReid Spencerifeq ($(PROJECT_NAME),llvm)
46aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerLLVM_SRC_ROOT   := $(shell cd @abs_top_srcdir@; $(PWD))
47aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerLLVM_OBJ_ROOT   := $(shell cd @abs_top_builddir@; $(PWD))
48aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerPROJ_SRC_ROOT   := $(shell cd $(LLVM_SRC_ROOT); $(PWD))
49aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerPROJ_SRC_DIR    := $(shell cd $(LLVM_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
5032b169114e586e61a95f11043aa6032f11995fb7Reid Spencerprefix          := @prefix@
5132b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_prefix     := $(prefix)
52b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerPROJ_VERSION    := $(LLVMVersion)
53b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerelse
54b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_SRC_ROOT
55b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define PROJ_SRC_ROOT)
56b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
57b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_OBJ_ROOT
58b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define PROJ_OBJ_ROOT)
59b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
60b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_INSTALL_ROOT
61b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define PROJ_INSTALL_ROOT)
62b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
63b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef LLVM_SRC_ROOT
64b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define LLVM_SRC_ROOT)
65b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
66b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef LLVM_OBJ_ROOT
67b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define LLVM_OBJ_ROOT)
68b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
69aea7fe4abd1f54edd3cbdadcbd8f0e2e99c5acf3Reid SpencerPROJ_SRC_DIR := $(shell cd $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
7032b169114e586e61a95f11043aa6032f11995fb7Reid Spencerprefix          := $(PROJ_INSTALL_ROOT)
7132b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_prefix     := $(prefix)
72b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_VERSION
73b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerPROJ_VERSION := 1.0
74b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
75b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif
76e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer
778475ec068c213d0bf73f7686d82491a8f12e3b32Reid SpencerLLVMMAKE := $(LLVM_SRC_ROOT)/make
788475ec068c213d0bf73f7686d82491a8f12e3b32Reid Spencer
7932b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_bindir     := $(DESTDIR)$(PROJ_prefix)/bin
8032b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_libdir     := $(DESTDIR)$(PROJ_prefix)/lib
8132b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_datadir    := $(DESTDIR)$(PROJ_prefix)/share
8232b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_docsdir    := $(DESTDIR)$(PROJ_prefix)/docs/llvm
8332b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_etcdir     := $(DESTDIR)$(PROJ_prefix)/etc/llvm
8432b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_includedir := $(DESTDIR)$(PROJ_prefix)/include
8532b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_infodir    := $(DESTDIR)$(PROJ_prefix)/info
863c94f6ae077dcc48eff681097241b47b24b7b70bBill WendlingPROJ_mandir     := $(DESTDIR)$(PROJ_prefix)/share/man
8732b169114e586e61a95f11043aa6032f11995fb7Reid Spencer
88bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid Spencer# Determine if we're on a unix type operating system
89bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid SpencerLLVM_ON_UNIX:=@LLVM_ON_UNIX@
90bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid SpencerLLVM_ON_WIN32:=@LLVM_ON_WIN32@
91bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid Spencer
927a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Target operating system for which LLVM will be compiled.
937a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellOS=@OS@
947a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
957659545ceef542dc9951673e1f9085ef2d045699John Criswell# Target hardware architecture
967659545ceef542dc9951673e1f9085ef2d045699John CriswellARCH=@ARCH@
977659545ceef542dc9951673e1f9085ef2d045699John Criswell
98e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Indicates, whether we're cross-compiling LLVM or not
99e2cfe5d23225fa74febd5f170b919bba2c495308Reid SpencerLLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
100e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer
101e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Executable file extension for build platform (mainly for
102e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# tablegen call if we're cross-compiling).
103e2cfe5d23225fa74febd5f170b919bba2c495308Reid SpencerBUILD_EXEEXT=@BUILD_EXEEXT@
104e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer
10518224032d3b26cad39991fc569948f15cf5ed953Reid Spencer# Target triple (cpu-vendor-os) for which we should generate code
10618224032d3b26cad39991fc569948f15cf5ed953Reid SpencerTARGET_TRIPLE=@target@
10718224032d3b26cad39991fc569948f15cf5ed953Reid Spencer
108cf9be26e5d99c50b350aa8c5bf6ce6bc8322b213Evan Cheng# Extra options to compile LLVM with
109cf9be26e5d99c50b350aa8c5bf6ce6bc8322b213Evan ChengEXTRA_OPTIONS=@EXTRA_OPTIONS@
110cf9be26e5d99c50b350aa8c5bf6ce6bc8322b213Evan Cheng
1110021c31b60706f0a35f0858c112ebdc709f3d3e7John Criswell# Endian-ness of the target
1120021c31b60706f0a35f0858c112ebdc709f3d3e7John CriswellENDIAN=@ENDIAN@
1130021c31b60706f0a35f0858c112ebdc709f3d3e7John Criswell
1147a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Path to the C++ compiler to use.  This is an optional setting, which defaults
1157a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# to whatever your gmake defaults to.
1167a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellCXX = @CXX@
1177a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
118b5a2e40dd8f6b6550d4191f6d74edcb641d0153fMisha Brukman# Path to the CC binary, which use used by testcases for native builds.
1197a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellCC := @CC@
1207a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
121f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# Linker flags.
122b812e76b56f96815c08b850fd688ff835862b22aJohn CriswellLDFLAGS+=@LDFLAGS@
12349bf862719c5ac24ddc9eafa35e51dd68904b1beJohn Criswell
124f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# Path to the library archiver program.
1257a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellAR_PATH = @AR@
1267a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
1271bc686433bd5dea7ef4b8b5d97cd9461f041b56fReid Spencer# Path to the nm program
1281bc686433bd5dea7ef4b8b5d97cd9461f041b56fReid SpencerNM_PATH = @NM@
1291bc686433bd5dea7ef4b8b5d97cd9461f041b56fReid Spencer
130151f8ba3645defc371eb4b68427384e411305734Reid Spencer# The pathnames of the programs we require to build
131e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerBISON      := @BISON@
1328a2d4718257aa1a97dad9f9f8cce719b539c694bReid SpencerCMP        := @CMP@
1338a2d4718257aa1a97dad9f9f8cce719b539c694bReid SpencerCP         := @CP@
134e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerDATE       := @DATE@
135e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerFIND       := @FIND@
136e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerFLEX       := @LEX@
137e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerGREP       := @GREP@
138e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerINSTALL    := @INSTALL@
139b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerMKDIR      := $(LLVM_SRC_ROOT)/autoconf/mkinstalldirs
140e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerMV         := @MV@
141e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerRANLIB     := @RANLIB@
142e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerRM         := @RM@
143e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerSED        := @SED@
144e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerTAR        := @TAR@
145e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerYACC       := @YACC@
146e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer
147e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer# Paths to miscellaneous programs we hope are present but might not be
148b195d9d365e5f960c93ddfdf10638d5d147d9f6fReid SpencerPERL       := @PERL@ 
149e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerBZIP2      := @BZIP2@
150e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerDOT        := @DOT@
151e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerDOXYGEN    := @DOXYGEN@
152e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerGROFF      := @GROFF@
153e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerGZIP       := @GZIP@
1540908d49c22775d20a88f595845b515f669d528f7Gordon HenriksenOCAMLC     := @OCAMLC@
1550908d49c22775d20a88f595845b515f669d528f7Gordon HenriksenOCAMLOPT   := @OCAMLOPT@
156a8c3660c1a4be5d4887f1899bc3c8e62b875c6c0Gordon HenriksenOCAMLDEP   := @OCAMLDEP@
157e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerPOD2HTML   := @POD2HTML@
158e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerPOD2MAN    := @POD2MAN@
159e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerRUNTEST    := @RUNTEST@
1600fcb9410b9c51a179b3c7a80291f00dac344038cReid SpencerTCLSH      := @TCLSH@
161e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerZIP        := @ZIP@
1627a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
1631000b73397bd72b71ede338caf5b6379072d94a4Reid SpencerHAVE_PERL    := @HAVE_PERL@
1641000b73397bd72b71ede338caf5b6379072d94a4Reid SpencerHAVE_PTHREAD := @HAVE_PTHREAD@
165b195d9d365e5f960c93ddfdf10638d5d147d9f6fReid Spencer
1665a870448d12a786098e9ec5018cd2bb3f5f673fdReid SpencerLIBS       := @LIBS@
1675a870448d12a786098e9ec5018cd2bb3f5f673fdReid Spencer
1686530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen# Targets that we should build
1696530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon HenriksenTARGETS_TO_BUILD=@TARGETS_TO_BUILD@
1706530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen
1717908035f47ee637a2e9b585e3057b0f974dc75caReid Spencer# Path to location for LLVM C/C++ front-end. You can modify this if you
1727908035f47ee637a2e9b585e3057b0f974dc75caReid Spencer# want to override the value set by configure.
1737908035f47ee637a2e9b585e3057b0f974dc75caReid SpencerLLVMGCCDIR := @LLVMGCCDIR@
1747908035f47ee637a2e9b585e3057b0f974dc75caReid Spencer
1757a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Determine the target for which LLVM should generate code.
176a6cb9a1c4d76c05c1d35eb84503195e628c898a7Reid Spencerifeq (@LLVMGCC_MAJVERS@,3)
1777a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellLLVMGCCARCH := @target@/3.4-llvm
178a6cb9a1c4d76c05c1d35eb84503195e628c898a7Reid Spencerelse
179a6cb9a1c4d76c05c1d35eb84503195e628c898a7Reid SpencerLLVMGCCARCH := @target@/@LLVMGCC_VERSION@
180a6cb9a1c4d76c05c1d35eb84503195e628c898a7Reid Spencerendif
1817a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
182282d8c166f5da5b23fb60f21d45ef9db441220edReid Spencer# Determine the path where the library executables are
183282d8c166f5da5b23fb60f21d45ef9db441220edReid SpencerLLVMGCCLIBEXEC := @LLVMGCCLIBEXEC@
184282d8c166f5da5b23fb60f21d45ef9db441220edReid Spencer
185f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# Full pathnames of LLVM C/C++ front-end 'cc1' and 'cc1plus' binaries:
1867908035f47ee637a2e9b585e3057b0f974dc75caReid SpencerLLVMGCC  := @LLVMGCC@
1877908035f47ee637a2e9b585e3057b0f974dc75caReid SpencerLLVMGXX  := @LLVMGXX@
1887908035f47ee637a2e9b585e3057b0f974dc75caReid SpencerLLVMCC1  := @LLVMCC1@
1897908035f47ee637a2e9b585e3057b0f974dc75caReid SpencerLLVMCC1PLUS := @LLVMCC1PLUS@
1907917d3af3f51a3584a87a44548d584a5ac253cfcReid SpencerLLVMGCC_VERSION := @LLVMGCC_VERSION@
1917917d3af3f51a3584a87a44548d584a5ac253cfcReid SpencerLLVMGCC_MAJVERS := @LLVMGCC_MAJVERS@
1921addff971503bbe322ec3e498ca7645418a6f736Reid SpencerLLVMGCC_LANGS := @LLVMGCC_LANGS@
193f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke
1947a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Path to directory where object files should be stored during a build.
1957a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Set OBJ_ROOT to "." if you do not want to use a separate place for
1967a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# object files.
1977f33695eac684bac5e925cf2039c8f9b001ceb7fJohn CriswellOBJ_ROOT := .
1987a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
1997a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# These are options that can either be enabled here, or can be enabled on the
200f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# make command line (ie, make ENABLE_PROFILING=1):
2017a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
202c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put
203c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer# into the "Release" directories. Otherwise, LLVM code is not optimized and 
204c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer# output is put in the "Debug" directories.
2057a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#ENABLE_OPTIMIZED = 1
2067a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell@ENABLE_OPTIMIZED@
2077a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
2081a5a551919198a7e508624c6f555119815e4c66eReid Spencer# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will 
2091a5a551919198a7e508624c6f555119815e4c66eReid Spencer# exclude assertion checks, otherwise they are included.
210c28ccd86b574cdcde54fa68f2f28e18f4b49498eReid Spencer#DISABLE_ASSERTIONS = 1
211c28ccd86b574cdcde54fa68f2f28e18f4b49498eReid Spencer@DISABLE_ASSERTIONS@
212c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer
213a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM
214a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene# code will include expensive checks, otherwise they are excluded.
215a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene#ENABLE_EXPENSIVE_CHECKS = 0
216a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene@ENABLE_EXPENSIVE_CHECKS@
217a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene
2188b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug
2198b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer# symbols.
2208b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#DEBUG_RUNTIME = 1
2218b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer@DEBUG_RUNTIME@
2228b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer
2237a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# When ENABLE_PROFILING is enabled, the llvm source base is built with profile
2247a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# information to allow gprof to be used to get execution frequencies.
2257a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#ENABLE_PROFILING = 1
2267a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
227e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built
228e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerENABLE_DOXYGEN = @ENABLE_DOXYGEN@
229e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer
230b756c79d125c402931d0852f34c3444e947fcc8aReid Spencer# Do we want to enable threads?
231b756c79d125c402931d0852f34c3444e947fcc8aReid SpencerENABLE_THREADS := @ENABLE_THREADS@
232b756c79d125c402931d0852f34c3444e947fcc8aReid Spencer
23389b0d995d26d9e70b9c8d7fab8b99f1e89ac11bbReid Spencer# Do we want to build with position independent code?
23489b0d995d26d9e70b9c8d7fab8b99f1e89ac11bbReid SpencerENABLE_PIC := @ENABLE_PIC@
23589b0d995d26d9e70b9c8d7fab8b99f1e89ac11bbReid Spencer
236e9676508acff14a88bd45ef15b024c9b98773a5eMisha Brukman# This option tells the Makefiles to produce verbose output.
2377a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# It essentially prints the commands that make is executing
2387a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#VERBOSE = 1
2397a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
2407a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Enable JIT for this platform
241b195d9d365e5f960c93ddfdf10638d5d147d9f6fReid SpencerTARGET_HAS_JIT = @TARGET_HAS_JIT@
2427a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell
243e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Shared library extension for host platform.
24488aeace3189c214115e5170bcedf1888235c4c08Brian GaekeSHLIBEXT = @SHLIBEXT@
24588aeace3189c214115e5170bcedf1888235c4c08Brian Gaeke
246e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Executable file extension for host platform.
247e6d468f6f77b52e5ccc4592d1024829d8f5cf70bJohn CriswellEXEEXT = @EXEEXT@
248e6d468f6f77b52e5ccc4592d1024829d8f5cf70bJohn Criswell
249b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer# Things we just assume are "there"
250b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerECHO := echo
251a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer
252a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# Get the options for causing archives to link all their content instead of
253a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# just missing symbols, and the inverse of that. This is used for certain LLVM
254a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# tools that permit loadable modules. It ensures that the LLVM symbols will be
255a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# available to those loadable modules.
256a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid SpencerLINKALL := @LINKALL@
257a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid SpencerNOLINKALL := @NOLINKALL@
258b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid Spencer
259b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid Spencer# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
260b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid Spencer# on the check.
261b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid SpencerHUGE_VAL_SANITY = @HUGE_VAL_SANITY@
2626530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen
2636530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen# Bindings that we should build
2641d4e0782ba9761e3c664de53b837b74c0c818ff1Gordon HenriksenBINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@
2651d4e0782ba9761e3c664de53b837b74c0c818ff1Gordon HenriksenALL_BINDINGS      := @ALL_BINDINGS@
2661d4e0782ba9761e3c664de53b837b74c0c818ff1Gordon HenriksenOCAML_LIBDIR      := @OCAML_LIBDIR@
2676530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen
268163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner# When compiling under Mingw/Cygwin, executables such as tblgen
269163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner# expect Windows paths, whereas the build system uses Unix paths.
270163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner# The function SYSPATH transforms Unix paths into Windows paths.
271163974de4763c21db3c312aec0ffb834f5203d13Chris Lattnerifneq (,$(findstring -mno-cygwin, $(CXX)))
272163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner  SYSPATH = $(shell echo $(1) | cygpath -m -f -)
273163974de4763c21db3c312aec0ffb834f5203d13Chris Lattnerelse
274163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner  SYSPATH = $(1)
275163974de4763c21db3c312aec0ffb834f5203d13Chris Lattnerendif
276