#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===# | |
# | |
# The LLVM Compiler Infrastructure | |
# | |
# This file is distributed under the University of Illinois Open Source | |
# License. See LICENSE.TXT for details. | |
# | |
#===------------------------------------------------------------------------===# | |
# | |
# This file is included by Makefile.common. It defines paths and other | |
# values specific to a particular installation of LLVM. | |
# | |
#===------------------------------------------------------------------------===# | |
# Define LLVM specific info and directories based on the autoconf variables | |
LLVMPackageName := @PACKAGE_NAME@ | |
LLVMVersion := @PACKAGE_VERSION@ | |
LLVM_CONFIGTIME := @LLVM_CONFIGTIME@ | |
########################################################################### | |
# Directory Configuration | |
# This section of the Makefile determines what is where. To be | |
# specific, there are several locations that need to be defined: | |
# | |
# o LLVM_SRC_ROOT : The root directory of the LLVM source code. | |
# o LLVM_OBJ_ROOT : The root directory containing the built LLVM code. | |
# | |
# o PROJ_SRC_DIR : The directory containing the code to build. | |
# o PROJ_SRC_ROOT : The root directory of the code to build. | |
# | |
# o PROJ_OBJ_DIR : The directory in which compiled code will be placed. | |
# o PROJ_OBJ_ROOT : The root directory in which compiled code is placed. | |
# | |
########################################################################### | |
PWD := @BINPWD@ | |
# Set the project name to LLVM if its not defined | |
ifndef PROJECT_NAME | |
PROJECT_NAME := $(LLVMPackageName) | |
endif | |
# The macro below is expanded when 'realpath' is not built-in. | |
# Built-in 'realpath' is available on GNU Make 3.81. | |
realpath = $(shell cd $(1); $(PWD)) | |
PROJ_OBJ_DIR := $(call realpath, .) | |
PROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL)) | |
ifeq ($(PROJECT_NAME),llvm) | |
LLVM_SRC_ROOT := $(call realpath, @abs_top_srcdir@) | |
LLVM_OBJ_ROOT := $(call realpath, @abs_top_builddir@) | |
PROJ_SRC_ROOT := $(LLVM_SRC_ROOT) | |
PROJ_SRC_DIR := $(call realpath, $(LLVM_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR))) | |
prefix := @prefix@ | |
PROJ_prefix := $(prefix) | |
PROJ_VERSION := $(LLVMVersion) | |
else | |
ifndef PROJ_SRC_ROOT | |
$(error Projects must define PROJ_SRC_ROOT) | |
endif | |
ifndef PROJ_OBJ_ROOT | |
$(error Projects must define PROJ_OBJ_ROOT) | |
endif | |
ifndef PROJ_INSTALL_ROOT | |
$(error Projects must define PROJ_INSTALL_ROOT) | |
endif | |
ifndef LLVM_SRC_ROOT | |
$(error Projects must define LLVM_SRC_ROOT) | |
endif | |
ifndef LLVM_OBJ_ROOT | |
$(error Projects must define LLVM_OBJ_ROOT) | |
endif | |
PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR))) | |
prefix := $(PROJ_INSTALL_ROOT) | |
PROJ_prefix := $(prefix) | |
ifndef PROJ_VERSION | |
PROJ_VERSION := 1.0 | |
endif | |
endif | |
LLVMMAKE := $(LLVM_SRC_ROOT)/make | |
PROJ_bindir := $(PROJ_prefix)/bin | |
PROJ_libdir := $(PROJ_prefix)/lib | |
PROJ_datadir := $(PROJ_prefix)/share | |
PROJ_docsdir := $(PROJ_prefix)/docs/llvm | |
PROJ_etcdir := $(PROJ_prefix)/etc/llvm | |
PROJ_includedir := $(PROJ_prefix)/include | |
PROJ_infodir := $(PROJ_prefix)/info | |
PROJ_mandir := $(PROJ_prefix)/share/man | |
# Determine if we're on a unix type operating system | |
LLVM_ON_UNIX:=@LLVM_ON_UNIX@ | |
LLVM_ON_WIN32:=@LLVM_ON_WIN32@ | |
# Host operating system for which LLVM will be run. | |
OS=@OS@ | |
HOST_OS=@HOST_OS@ | |
# Target operating system for which LLVM will compile for. | |
TARGET_OS=@TARGET_OS@ | |
# Target hardware architecture | |
ARCH=@ARCH@ | |
# Indicates, whether we're cross-compiling LLVM or not | |
LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@ | |
# Executable file extension for build platform (mainly for | |
# tablegen call if we're cross-compiling). | |
BUILD_EXEEXT=@BUILD_EXEEXT@ | |
# Compilers for the build platflorm (mainly for tablegen | |
# call if we're cross-compiling). | |
BUILD_CC=@BUILD_CC@ | |
BUILD_CXX=@BUILD_CXX@ | |
# Triple for configuring build tools when cross-compiling | |
BUILD_TRIPLE=@build@ | |
# Target triple (cpu-vendor-os) for which we should generate code | |
TARGET_TRIPLE=@target@ | |
# Extra options to compile LLVM with | |
EXTRA_OPTIONS=@EXTRA_OPTIONS@ | |
# Extra options to link LLVM with | |
EXTRA_LD_OPTIONS=@EXTRA_LD_OPTIONS@ | |
# Endian-ness of the target | |
ENDIAN=@ENDIAN@ | |
# Path to the C++ compiler to use. This is an optional setting, which defaults | |
# to whatever your gmake defaults to. | |
CXX = @CXX@ | |
# Path to the CC binary, which use used by testcases for native builds. | |
CC := @CC@ | |
# Linker flags. | |
LDFLAGS+=@LDFLAGS@ | |
# Path to the library archiver program. | |
AR_PATH = @AR@ | |
AR = @AR@ | |
# Path to the nm program | |
NM_PATH = @NM@ | |
# The pathnames of the programs we require to build | |
CMP := @CMP@ | |
CP := @CP@ | |
DATE := @DATE@ | |
FIND := @FIND@ | |
GREP := @GREP@ | |
INSTALL := @INSTALL@ | |
MKDIR := $(LLVM_SRC_ROOT)/autoconf/mkinstalldirs | |
MV := @MV@ | |
RANLIB := @RANLIB@ | |
RM := @RM@ | |
SED := @SED@ | |
TAR := @TAR@ | |
# Paths to miscellaneous programs we hope are present but might not be | |
PERL := @PERL@ | |
BZIP2 := @BZIP2@ | |
CAT := @CAT@ | |
DOT := @DOT@ | |
DOXYGEN := @DOXYGEN@ | |
GROFF := @GROFF@ | |
GZIPBIN := @GZIPBIN@ | |
OCAMLC := @OCAMLC@ | |
OCAMLOPT := @OCAMLOPT@ | |
OCAMLDEP := @OCAMLDEP@ | |
OCAMLDOC := @OCAMLDOC@ | |
GAS := @GAS@ | |
POD2HTML := @POD2HTML@ | |
POD2MAN := @POD2MAN@ | |
PDFROFF := @PDFROFF@ | |
RUNTEST := @RUNTEST@ | |
TCLSH := @TCLSH@ | |
ZIP := @ZIP@ | |
HAVE_PERL := @HAVE_PERL@ | |
HAVE_PTHREAD := @HAVE_PTHREAD@ | |
LIBS := @LIBS@ | |
# Targets that we should build | |
TARGETS_TO_BUILD=@TARGETS_TO_BUILD@ | |
# Path to directory where object files should be stored during a build. | |
# Set OBJ_ROOT to "." if you do not want to use a separate place for | |
# object files. | |
OBJ_ROOT := . | |
# What to pass as rpath flag to g++ | |
RPATH := @RPATH@ | |
# What to pass as -rdynamic flag to g++ | |
RDYNAMIC := @RDYNAMIC@ | |
# These are options that can either be enabled here, or can be enabled on the | |
# make command line (ie, make ENABLE_PROFILING=1): | |
# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put | |
# into the "Release" directories. Otherwise, LLVM code is not optimized and | |
# output is put in the "Debug" directories. | |
#ENABLE_OPTIMIZED = 1 | |
@ENABLE_OPTIMIZED@ | |
# When ENABLE_PROFILING is enabled, profile instrumentation is done | |
# and output is put into the "<Flavor>+Profile" directories, where | |
# <Flavor> is either Debug or Release depending on how other build | |
# flags are set. Otherwise, output is put in the <Flavor> | |
# directories. | |
#ENABLE_PROFILING = 1 | |
@ENABLE_PROFILING@ | |
# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will | |
# exclude assertion checks, otherwise they are included. | |
#DISABLE_ASSERTIONS = 1 | |
@DISABLE_ASSERTIONS@ | |
# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM | |
# code will include expensive checks, otherwise they are excluded. | |
#ENABLE_EXPENSIVE_CHECKS = 0 | |
@ENABLE_EXPENSIVE_CHECKS@ | |
# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug | |
# symbols. | |
#DEBUG_RUNTIME = 1 | |
@DEBUG_RUNTIME@ | |
# When DEBUG_SYMBOLS is enabled, the compiler libraries will retain debug | |
# symbols. | |
#DEBUG_SYMBOLS = 1 | |
@DEBUG_SYMBOLS@ | |
# The compiler flags to use for optimized builds. | |
OPTIMIZE_OPTION := @OPTIMIZE_OPTION@ | |
# When ENABLE_PROFILING is enabled, the llvm source base is built with profile | |
# information to allow gprof to be used to get execution frequencies. | |
#ENABLE_PROFILING = 1 | |
# When ENABLE_DOCS is disabled, docs/ will not be built. | |
ENABLE_DOCS = @ENABLE_DOCS@ | |
# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built | |
ENABLE_DOXYGEN = @ENABLE_DOXYGEN@ | |
# Do we want to enable threads? | |
ENABLE_THREADS := @ENABLE_THREADS@ | |
# Do we want to build with position independent code? | |
ENABLE_PIC := @ENABLE_PIC@ | |
# Do we want to build a shared library and link the tools with it? | |
ENABLE_SHARED := @ENABLE_SHARED@ | |
# Do we want to link the stdc++ into a shared library? (Cygming) | |
ENABLE_EMBED_STDCXX := @ENABLE_EMBED_STDCXX@ | |
# Use -fvisibility-inlines-hidden? | |
ENABLE_VISIBILITY_INLINES_HIDDEN := @ENABLE_VISIBILITY_INLINES_HIDDEN@ | |
# Do we want to allow timestamping information into builds? | |
ENABLE_TIMESTAMPS := @ENABLE_TIMESTAMPS@ | |
# This option tells the Makefiles to produce verbose output. | |
# It essentially prints the commands that make is executing | |
#VERBOSE = 1 | |
# Enable JIT for this platform | |
TARGET_HAS_JIT = @TARGET_HAS_JIT@ | |
# Environment variable to set to change the runtime shared library search path. | |
SHLIBPATH_VAR = @SHLIBPATH_VAR@ | |
# Shared library extension for host platform. | |
SHLIBEXT = @SHLIBEXT@ | |
# Executable file extension for host platform. | |
EXEEXT = @EXEEXT@ | |
# Things we just assume are "there" | |
ECHO := echo | |
# Get the options for causing archives to link all their content instead of | |
# just missing symbols, and the inverse of that. This is used for certain LLVM | |
# tools that permit loadable modules. It ensures that the LLVM symbols will be | |
# available to those loadable modules. | |
LINKALL := @LINKALL@ | |
NOLINKALL := @NOLINKALL@ | |
# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending | |
# on the check. | |
HUGE_VAL_SANITY = @HUGE_VAL_SANITY@ | |
# Bindings that we should build | |
BINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@ | |
ALL_BINDINGS := @ALL_BINDINGS@ | |
OCAML_LIBDIR := @OCAML_LIBDIR@ | |
# When compiling under Mingw/Cygwin, executables such as tblgen | |
# expect Windows paths, whereas the build system uses Unix paths. | |
# The function SYSPATH transforms Unix paths into Windows paths. | |
ifneq (,$(findstring -mno-cygwin, $(CXX))) | |
SYSPATH = $(shell echo $(1) | cygpath -m -f -) | |
else | |
SYSPATH = $(1) | |
endif | |
# Location of the plugin header file for gold. | |
BINUTILS_INCDIR := @BINUTILS_INCDIR@ | |
# Optional flags supported by the compiler | |
# -Wno-missing-field-initializers | |
NO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@ | |
# -Wno-variadic-macros | |
NO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@ | |
# Was polly found in tools/polly? | |
LLVM_HAS_POLLY = @LLVM_HAS_POLLY@ | |
# Flags supported by the linker. | |
# bfd ld / gold --version-script=file | |
HAVE_LINK_VERSION_SCRIPT = @HAVE_LINK_VERSION_SCRIPT@ |