Makefile.config.in revision e5ab51d51f6e5cebf57db76c7f8527febc6a2b71
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. 79b8f542e2746b28721b3ec603c3aaaa10ea708fcMisha 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 427cf8fc7a45373aab97ce58130087b8b5db064f54Chris Lattner# The macro below is expanded when 'realpath' is not built-in. 437cf8fc7a45373aab97ce58130087b8b5db064f54Chris Lattner# Built-in 'realpath' is available on GNU Make 3.81. 447cf8fc7a45373aab97ce58130087b8b5db064f54Chris Lattnerrealpath = $(shell cd $(1); $(PWD)) 457cf8fc7a45373aab97ce58130087b8b5db064f54Chris Lattner 467cf8fc7a45373aab97ce58130087b8b5db064f54Chris LattnerPROJ_OBJ_DIR := $(call realpath, .) 477cf8fc7a45373aab97ce58130087b8b5db064f54Chris LattnerPROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL)) 48b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer 49e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA TakumiCLANG_SRC_ROOT := @CLANG_SRC_ROOT@ 50e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi 511b22fde3b225e4e465e6b53ca9ce03461223488fReid Spencerifeq ($(PROJECT_NAME),llvm) 527cf8fc7a45373aab97ce58130087b8b5db064f54Chris LattnerLLVM_SRC_ROOT := $(call realpath, @abs_top_srcdir@) 537cf8fc7a45373aab97ce58130087b8b5db064f54Chris LattnerLLVM_OBJ_ROOT := $(call realpath, @abs_top_builddir@) 547cf8fc7a45373aab97ce58130087b8b5db064f54Chris LattnerPROJ_SRC_ROOT := $(LLVM_SRC_ROOT) 55e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA TakumiPROJ_SRC_DIR := $(LLVM_SRC_ROOT)$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)) 56e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi 57e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumiifneq ($(CLANG_SRC_ROOT),) 58e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi CLANG_SRC_ROOT:= $(call realpath, $(CLANG_SRC_ROOT)) 59e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi PROJ_SRC_DIR := $(patsubst $(LLVM_SRC_ROOT)/tools/clang%,$(CLANG_SRC_ROOT)%,$(PROJ_SRC_DIR)) 60e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumiendif 61e5ab51d51f6e5cebf57db76c7f8527febc6a2b71NAKAMURA Takumi 6232b169114e586e61a95f11043aa6032f11995fb7Reid Spencerprefix := @prefix@ 6332b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_prefix := $(prefix) 64b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerPROJ_VERSION := $(LLVMVersion) 65b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerelse 66b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_SRC_ROOT 67b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define PROJ_SRC_ROOT) 68b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 69b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_OBJ_ROOT 70b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define PROJ_OBJ_ROOT) 71b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 72b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_INSTALL_ROOT 73b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define PROJ_INSTALL_ROOT) 74b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 75b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef LLVM_SRC_ROOT 76b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define LLVM_SRC_ROOT) 77b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 78b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef LLVM_OBJ_ROOT 79b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer$(error Projects must define LLVM_OBJ_ROOT) 80b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 817cf8fc7a45373aab97ce58130087b8b5db064f54Chris LattnerPROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR))) 8232b169114e586e61a95f11043aa6032f11995fb7Reid Spencerprefix := $(PROJ_INSTALL_ROOT) 8332b169114e586e61a95f11043aa6032f11995fb7Reid SpencerPROJ_prefix := $(prefix) 84b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerifndef PROJ_VERSION 85b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerPROJ_VERSION := 1.0 86b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 87b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencerendif 88e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer 898475ec068c213d0bf73f7686d82491a8f12e3b32Reid SpencerLLVMMAKE := $(LLVM_SRC_ROOT)/make 908475ec068c213d0bf73f7686d82491a8f12e3b32Reid Spencer 91d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_bindir := $(PROJ_prefix)/bin 92d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_libdir := $(PROJ_prefix)/lib 93d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_datadir := $(PROJ_prefix)/share 94d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_docsdir := $(PROJ_prefix)/docs/llvm 95d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_etcdir := $(PROJ_prefix)/etc/llvm 96d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_includedir := $(PROJ_prefix)/include 97d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_infodir := $(PROJ_prefix)/info 98d4076cfc834da5255d2f7a15b6f9c7cd80132223Erick TryzelaarPROJ_mandir := $(PROJ_prefix)/share/man 9932b169114e586e61a95f11043aa6032f11995fb7Reid Spencer 100bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid Spencer# Determine if we're on a unix type operating system 101bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid SpencerLLVM_ON_UNIX:=@LLVM_ON_UNIX@ 102bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid SpencerLLVM_ON_WIN32:=@LLVM_ON_WIN32@ 103bbf7a8af5a7781cf0f721770ab81333f22c0f464Reid Spencer 104e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton Korobeynikov# Host operating system for which LLVM will be run. 1057a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellOS=@OS@ 106e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton KorobeynikovHOST_OS=@HOST_OS@ 107e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton Korobeynikov# Target operating system for which LLVM will compile for. 108e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton KorobeynikovTARGET_OS=@TARGET_OS@ 1097a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 1107659545ceef542dc9951673e1f9085ef2d045699John Criswell# Target hardware architecture 1117659545ceef542dc9951673e1f9085ef2d045699John CriswellARCH=@ARCH@ 1127659545ceef542dc9951673e1f9085ef2d045699John Criswell 113e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Indicates, whether we're cross-compiling LLVM or not 114e2cfe5d23225fa74febd5f170b919bba2c495308Reid SpencerLLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@ 115e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer 116e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Executable file extension for build platform (mainly for 117e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# tablegen call if we're cross-compiling). 118e2cfe5d23225fa74febd5f170b919bba2c495308Reid SpencerBUILD_EXEEXT=@BUILD_EXEEXT@ 119e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer 120673612ec72e0e246ca671a3977666424b5ed77ccJim Grosbach# Compilers for the build platflorm (mainly for tablegen 121673612ec72e0e246ca671a3977666424b5ed77ccJim Grosbach# call if we're cross-compiling). 122673612ec72e0e246ca671a3977666424b5ed77ccJim GrosbachBUILD_CC=@BUILD_CC@ 123673612ec72e0e246ca671a3977666424b5ed77ccJim GrosbachBUILD_CXX=@BUILD_CXX@ 124673612ec72e0e246ca671a3977666424b5ed77ccJim Grosbach 1255e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen# Triple for configuring build tools when cross-compiling 1265e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu SenBUILD_TRIPLE=@build@ 1275e869c353c01f168712ae33cb7de2e9ba5cdf658Shantonu Sen 12818224032d3b26cad39991fc569948f15cf5ed953Reid Spencer# Target triple (cpu-vendor-os) for which we should generate code 12918224032d3b26cad39991fc569948f15cf5ed953Reid SpencerTARGET_TRIPLE=@target@ 13018224032d3b26cad39991fc569948f15cf5ed953Reid Spencer 131cf9be26e5d99c50b350aa8c5bf6ce6bc8322b213Evan Cheng# Extra options to compile LLVM with 132cf9be26e5d99c50b350aa8c5bf6ce6bc8322b213Evan ChengEXTRA_OPTIONS=@EXTRA_OPTIONS@ 133cf9be26e5d99c50b350aa8c5bf6ce6bc8322b213Evan Cheng 134e2a91a76dffcf8cda97b835f0693f9dc6f26ba68Daniel Dunbar# Extra options to link LLVM with 135e2a91a76dffcf8cda97b835f0693f9dc6f26ba68Daniel DunbarEXTRA_LD_OPTIONS=@EXTRA_LD_OPTIONS@ 136e2a91a76dffcf8cda97b835f0693f9dc6f26ba68Daniel Dunbar 1370021c31b60706f0a35f0858c112ebdc709f3d3e7John Criswell# Endian-ness of the target 1380021c31b60706f0a35f0858c112ebdc709f3d3e7John CriswellENDIAN=@ENDIAN@ 1390021c31b60706f0a35f0858c112ebdc709f3d3e7John Criswell 1407a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Path to the C++ compiler to use. This is an optional setting, which defaults 1417a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# to whatever your gmake defaults to. 1427a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellCXX = @CXX@ 1437a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 144b5a2e40dd8f6b6550d4191f6d74edcb641d0153fMisha Brukman# Path to the CC binary, which use used by testcases for native builds. 1457a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellCC := @CC@ 1467a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 147f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# Linker flags. 148b812e76b56f96815c08b850fd688ff835862b22aJohn CriswellLDFLAGS+=@LDFLAGS@ 14949bf862719c5ac24ddc9eafa35e51dd68904b1beJohn Criswell 150f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# Path to the library archiver program. 1517a73b80b9052136c8cd2234eb3433a07df7cf38eJohn CriswellAR_PATH = @AR@ 152e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton KorobeynikovAR = @AR@ 1537a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 1541bc686433bd5dea7ef4b8b5d97cd9461f041b56fReid Spencer# Path to the nm program 1551bc686433bd5dea7ef4b8b5d97cd9461f041b56fReid SpencerNM_PATH = @NM@ 1561bc686433bd5dea7ef4b8b5d97cd9461f041b56fReid Spencer 157151f8ba3645defc371eb4b68427384e411305734Reid Spencer# The pathnames of the programs we require to build 1588a2d4718257aa1a97dad9f9f8cce719b539c694bReid SpencerCMP := @CMP@ 1598a2d4718257aa1a97dad9f9f8cce719b539c694bReid SpencerCP := @CP@ 160e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerDATE := @DATE@ 161e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerFIND := @FIND@ 162e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerGREP := @GREP@ 163e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerINSTALL := @INSTALL@ 164b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerMKDIR := $(LLVM_SRC_ROOT)/autoconf/mkinstalldirs 165e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerMV := @MV@ 166e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerRANLIB := @RANLIB@ 167e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerRM := @RM@ 168e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerSED := @SED@ 169e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerTAR := @TAR@ 170e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer 171e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer# Paths to miscellaneous programs we hope are present but might not be 1729b8f542e2746b28721b3ec603c3aaaa10ea708fcMisha BrukmanPERL := @PERL@ 173e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerBZIP2 := @BZIP2@ 17468cb31901c590cabceee6e6356d62c84142114cbmike-mCAT := @CAT@ 175e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerDOT := @DOT@ 176e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerDOXYGEN := @DOXYGEN@ 177e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerGROFF := @GROFF@ 178031d30781acaecb58f64a7b480818a219594e99fEric ChristopherGZIPBIN := @GZIPBIN@ 179279219a3d5faeb18a9f0c91c1fbbb8404c5d0225Gordon HenriksenOCAMLC := @OCAMLC@ 180279219a3d5faeb18a9f0c91c1fbbb8404c5d0225Gordon HenriksenOCAMLOPT := @OCAMLOPT@ 181279219a3d5faeb18a9f0c91c1fbbb8404c5d0225Gordon HenriksenOCAMLDEP := @OCAMLDEP@ 182279219a3d5faeb18a9f0c91c1fbbb8404c5d0225Gordon HenriksenOCAMLDOC := @OCAMLDOC@ 1833a67f5050307789b8ff0db80f19b2b4c8a95cf81Duncan SandsGAS := @GAS@ 184e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerPOD2HTML := @POD2HTML@ 185e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerPOD2MAN := @POD2MAN@ 18668cb31901c590cabceee6e6356d62c84142114cbmike-mPDFROFF := @PDFROFF@ 187e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerRUNTEST := @RUNTEST@ 1880fcb9410b9c51a179b3c7a80291f00dac344038cReid SpencerTCLSH := @TCLSH@ 189e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerZIP := @ZIP@ 1907a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 1911000b73397bd72b71ede338caf5b6379072d94a4Reid SpencerHAVE_PERL := @HAVE_PERL@ 1921000b73397bd72b71ede338caf5b6379072d94a4Reid SpencerHAVE_PTHREAD := @HAVE_PTHREAD@ 193b195d9d365e5f960c93ddfdf10638d5d147d9f6fReid Spencer 1945a870448d12a786098e9ec5018cd2bb3f5f673fdReid SpencerLIBS := @LIBS@ 1955a870448d12a786098e9ec5018cd2bb3f5f673fdReid Spencer 1966530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen# Targets that we should build 1976530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon HenriksenTARGETS_TO_BUILD=@TARGETS_TO_BUILD@ 1986530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen 1997a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Path to directory where object files should be stored during a build. 2007a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Set OBJ_ROOT to "." if you do not want to use a separate place for 2017a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# object files. 2027f33695eac684bac5e925cf2039c8f9b001ceb7fJohn CriswellOBJ_ROOT := . 2037a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 2041dace48f538d44156cdb71834e718b9ad93d2711Nick Lewycky# What to pass as rpath flag to g++ 2051dace48f538d44156cdb71834e718b9ad93d2711Nick LewyckyRPATH := @RPATH@ 2061dace48f538d44156cdb71834e718b9ad93d2711Nick Lewycky 20718f99072a61429cc6aec9bd3dc611867819d962bNick Lewycky# What to pass as -rdynamic flag to g++ 20818f99072a61429cc6aec9bd3dc611867819d962bNick LewyckyRDYNAMIC := @RDYNAMIC@ 20918f99072a61429cc6aec9bd3dc611867819d962bNick Lewycky 2107a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# These are options that can either be enabled here, or can be enabled on the 211f1dd2004c07126944c9384d25e866215fd93c3bbBrian Gaeke# make command line (ie, make ENABLE_PROFILING=1): 2127a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 213c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put 2149b8f542e2746b28721b3ec603c3aaaa10ea708fcMisha Brukman# into the "Release" directories. Otherwise, LLVM code is not optimized and 215c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer# output is put in the "Debug" directories. 2167a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#ENABLE_OPTIMIZED = 1 2177a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell@ENABLE_OPTIMIZED@ 2187a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 219dbefd0c15be7daa3d74a0a9a04a068ea76c641f8David Greene# When ENABLE_PROFILING is enabled, profile instrumentation is done 220dbefd0c15be7daa3d74a0a9a04a068ea76c641f8David Greene# and output is put into the "<Flavor>+Profile" directories, where 2216418cb3f4b558ff917509b661e29b5a556f0e11dGabor Greif# <Flavor> is either Debug or Release depending on how other build 2226418cb3f4b558ff917509b661e29b5a556f0e11dGabor Greif# flags are set. Otherwise, output is put in the <Flavor> 223dbefd0c15be7daa3d74a0a9a04a068ea76c641f8David Greene# directories. 224dbefd0c15be7daa3d74a0a9a04a068ea76c641f8David Greene#ENABLE_PROFILING = 1 225dbefd0c15be7daa3d74a0a9a04a068ea76c641f8David Greene@ENABLE_PROFILING@ 226dbefd0c15be7daa3d74a0a9a04a068ea76c641f8David Greene 227895f32c212032e546c743bf0a815044981521160Mikhail Glushenkov# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will 2281a5a551919198a7e508624c6f555119815e4c66eReid Spencer# exclude assertion checks, otherwise they are included. 229c28ccd86b574cdcde54fa68f2f28e18f4b49498eReid Spencer#DISABLE_ASSERTIONS = 1 230c28ccd86b574cdcde54fa68f2f28e18f4b49498eReid Spencer@DISABLE_ASSERTIONS@ 231c4329cf5059a7caedc45d77e6ee80e92b8123394Reid Spencer 232a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM 233a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene# code will include expensive checks, otherwise they are excluded. 234a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene#ENABLE_EXPENSIVE_CHECKS = 0 235a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene@ENABLE_EXPENSIVE_CHECKS@ 236a696d24ad275608540aba1e5c668bbd52e04317eDavid Greene 2378b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug 2388b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer# symbols. 2398b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer#DEBUG_RUNTIME = 1 2408b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer@DEBUG_RUNTIME@ 2418b2e1419cf24a33df5a87c99e367528b44dc28cfReid Spencer 2427fd82e56a8d6fd48dd22f85ce502c24ff599d7a8Jeffrey Yasskin# When DEBUG_SYMBOLS is enabled, the compiler libraries will retain debug 2437fd82e56a8d6fd48dd22f85ce502c24ff599d7a8Jeffrey Yasskin# symbols. 2447fd82e56a8d6fd48dd22f85ce502c24ff599d7a8Jeffrey Yasskin#DEBUG_SYMBOLS = 1 2457fd82e56a8d6fd48dd22f85ce502c24ff599d7a8Jeffrey Yasskin@DEBUG_SYMBOLS@ 2467fd82e56a8d6fd48dd22f85ce502c24ff599d7a8Jeffrey Yasskin 2471fce948ccbd67fff3fc7df954cd1c38f7991398dDaniel Dunbar# The compiler flags to use for optimized builds. 2481fce948ccbd67fff3fc7df954cd1c38f7991398dDaniel DunbarOPTIMIZE_OPTION := @OPTIMIZE_OPTION@ 2491fce948ccbd67fff3fc7df954cd1c38f7991398dDaniel Dunbar 2507a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# When ENABLE_PROFILING is enabled, the llvm source base is built with profile 2517a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# information to allow gprof to be used to get execution frequencies. 2527a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#ENABLE_PROFILING = 1 2537a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 2549d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola# When ENABLE_DOCS is disabled, docs/ will not be built. 2559d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael EspindolaENABLE_DOCS = @ENABLE_DOCS@ 2569d9ae9fb59ee3897ffc21dfa3b7078478ac6d674Rafael Espindola 257e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built 258e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid SpencerENABLE_DOXYGEN = @ENABLE_DOXYGEN@ 259e1200219ec6f4d6ff7f54933ccad462c8dfdbb70Reid Spencer 260b756c79d125c402931d0852f34c3444e947fcc8aReid Spencer# Do we want to enable threads? 261b756c79d125c402931d0852f34c3444e947fcc8aReid SpencerENABLE_THREADS := @ENABLE_THREADS@ 262b756c79d125c402931d0852f34c3444e947fcc8aReid Spencer 26389b0d995d26d9e70b9c8d7fab8b99f1e89ac11bbReid Spencer# Do we want to build with position independent code? 26489b0d995d26d9e70b9c8d7fab8b99f1e89ac11bbReid SpencerENABLE_PIC := @ENABLE_PIC@ 26589b0d995d26d9e70b9c8d7fab8b99f1e89ac11bbReid Spencer 266c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin# Do we want to build a shared library and link the tools with it? 267c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey YasskinENABLE_SHARED := @ENABLE_SHARED@ 268c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin 2698eac88621626e196db2cb76492dc60c71c7c7fbbNAKAMURA Takumi# Do we want to link the stdc++ into a shared library? (Cygming) 2708eac88621626e196db2cb76492dc60c71c7c7fbbNAKAMURA TakumiENABLE_EMBED_STDCXX := @ENABLE_EMBED_STDCXX@ 2718eac88621626e196db2cb76492dc60c71c7c7fbbNAKAMURA Takumi 272ecfe67c21799891f27597455ed84c70de7769f36Daniel Dunbar# Use -fvisibility-inlines-hidden? 273ecfe67c21799891f27597455ed84c70de7769f36Daniel DunbarENABLE_VISIBILITY_INLINES_HIDDEN := @ENABLE_VISIBILITY_INLINES_HIDDEN@ 274ecfe67c21799891f27597455ed84c70de7769f36Daniel Dunbar 275dd464df687faf544e83684d0c0e4da87c05f8bfeDaniel Dunbar# Do we want to allow timestamping information into builds? 276dd464df687faf544e83684d0c0e4da87c05f8bfeDaniel DunbarENABLE_TIMESTAMPS := @ENABLE_TIMESTAMPS@ 277dd464df687faf544e83684d0c0e4da87c05f8bfeDaniel Dunbar 278e9676508acff14a88bd45ef15b024c9b98773a5eMisha Brukman# This option tells the Makefiles to produce verbose output. 2797a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# It essentially prints the commands that make is executing 2807a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell#VERBOSE = 1 2817a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 2827a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Enable JIT for this platform 283b195d9d365e5f960c93ddfdf10638d5d147d9f6fReid SpencerTARGET_HAS_JIT = @TARGET_HAS_JIT@ 2847a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 285c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin# Environment variable to set to change the runtime shared library search path. 286c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey YasskinSHLIBPATH_VAR = @SHLIBPATH_VAR@ 287c90171961d020d93e4ce548016d8ccb8aab00c57Jeffrey Yasskin 288e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Shared library extension for host platform. 28988aeace3189c214115e5170bcedf1888235c4c08Brian GaekeSHLIBEXT = @SHLIBEXT@ 29088aeace3189c214115e5170bcedf1888235c4c08Brian Gaeke 291e2cfe5d23225fa74febd5f170b919bba2c495308Reid Spencer# Executable file extension for host platform. 292e6d468f6f77b52e5ccc4592d1024829d8f5cf70bJohn CriswellEXEEXT = @EXEEXT@ 293e6d468f6f77b52e5ccc4592d1024829d8f5cf70bJohn Criswell 294b2cb4861511692d8566b50fa34720eeb09ed617eReid Spencer# Things we just assume are "there" 295b2cb4861511692d8566b50fa34720eeb09ed617eReid SpencerECHO := echo 296a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer 297a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# Get the options for causing archives to link all their content instead of 298a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# just missing symbols, and the inverse of that. This is used for certain LLVM 299a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# tools that permit loadable modules. It ensures that the LLVM symbols will be 300a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid Spencer# available to those loadable modules. 301a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid SpencerLINKALL := @LINKALL@ 302a773bd54f32ceb55af08286fe00c6ec1b73e5b9aReid SpencerNOLINKALL := @NOLINKALL@ 303b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid Spencer 304b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid Spencer# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending 305b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid Spencer# on the check. 306b2ed0526ce53e6418ddf3aef42f7abeffd8d7346Reid SpencerHUGE_VAL_SANITY = @HUGE_VAL_SANITY@ 3076530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen 3086530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen# Bindings that we should build 3091d4e0782ba9761e3c664de53b837b74c0c818ff1Gordon HenriksenBINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@ 3101d4e0782ba9761e3c664de53b837b74c0c818ff1Gordon HenriksenALL_BINDINGS := @ALL_BINDINGS@ 3111d4e0782ba9761e3c664de53b837b74c0c818ff1Gordon HenriksenOCAML_LIBDIR := @OCAML_LIBDIR@ 3126530e9d8e6dfc8f16fe509701967e4ade99fae6cGordon Henriksen 313163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner# When compiling under Mingw/Cygwin, executables such as tblgen 314163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner# expect Windows paths, whereas the build system uses Unix paths. 315163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner# The function SYSPATH transforms Unix paths into Windows paths. 316163974de4763c21db3c312aec0ffb834f5203d13Chris Lattnerifneq (,$(findstring -mno-cygwin, $(CXX))) 317163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner SYSPATH = $(shell echo $(1) | cygpath -m -f -) 318163974de4763c21db3c312aec0ffb834f5203d13Chris Lattnerelse 319163974de4763c21db3c312aec0ffb834f5203d13Chris Lattner SYSPATH = $(1) 320163974de4763c21db3c312aec0ffb834f5203d13Chris Lattnerendif 321e2be5d5fd8bd8d353567ad02d61bdf32b9dfa66cNick Lewycky 322e2be5d5fd8bd8d353567ad02d61bdf32b9dfa66cNick Lewycky# Location of the plugin header file for gold. 323e2be5d5fd8bd8d353567ad02d61bdf32b9dfa66cNick LewyckyBINUTILS_INCDIR := @BINUTILS_INCDIR@ 3242373c99433b634b8cf9c4deb28d68d1be255a564Mikhail Glushenkov 3258039e03777b9db1d90fecfaf413945c45560b727Julien Lerouge# Optional flags supported by the compiler 3268039e03777b9db1d90fecfaf413945c45560b727Julien Lerouge# -Wno-missing-field-initializers 3278039e03777b9db1d90fecfaf413945c45560b727Julien LerougeNO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@ 3288039e03777b9db1d90fecfaf413945c45560b727Julien Lerouge# -Wno-variadic-macros 3298039e03777b9db1d90fecfaf413945c45560b727Julien LerougeNO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@ 330e05f609b61c23846ee21a24a97631d2364f55078Dan Gohman 331baaadb2672e70916eb7e35b48b5ca34bec772fb8Tobias Grosser# Was polly found in tools/polly? 332baaadb2672e70916eb7e35b48b5ca34bec772fb8Tobias GrosserLLVM_HAS_POLLY = @LLVM_HAS_POLLY@ 333e05f609b61c23846ee21a24a97631d2364f55078Dan Gohman# Flags supported by the linker. 334da612d62260220618af9be428aa827d5d04f344fDan Gohman# bfd ld / gold --version-script=file 335da612d62260220618af9be428aa827d5d04f344fDan GohmanHAVE_LINK_VERSION_SCRIPT = @HAVE_LINK_VERSION_SCRIPT@ 336