[LLVMdev] Re: Makefile.config&setenv

John Criswell criswell at cs.uiuc.edu
Fri Dec 5 09:47:00 PST 2003


yue wrote:
> hi,
> about [LLVMdev] another question
> 
> thanks
> 
> yueqiang

	One other thing you might want to try is to put your object tree in a 
directory that is *not* inside of your source tree.  Currently, we don't 
support using separate object trees that are subdirectories of the 
source tree.

	In other words:

Will work:
==========
SRC_ROOT=/home/yue/llvm
OBJ_ROOT=/home/yue/llvm

SRC_ROOT=/home/yue/llvm
OBJ_ROOT=/home/yue/obj

Might/will not work:
====================
SRC_ROOT=/home/hue/llvm
OBJ_ROOT=/home/yue/llvm/obj

-- John T.

> 
> 
> ------------------------------------------------------------------------
> 
> #===-- Makefile.config - Local configuration for LLVM ------*- makefile -*--====
> #
> # This file is included by Makefile.common.  It defines paths and other
> # values specific to a particular installation of LLVM.
> #===-----------------------------------------------------------------------====
> 
> #
> # Target operating system for which LLVM will be compiled.
> #
> OS=Linux
> 
> #
> # Target hardware architecture
> #
> ARCH=x86
> 
> # Path to the C++ compiler to use.  This is an optional setting, which defaults
> # to whatever your gmake defaults to.
> #
> # Under Linux, for some reason the compiler driver wants to search the PATH to
> # find the system assembler, which breaks if the LLVM assembler is in our path.
> # Hack it to use the assembler in /usr/bin directly.
> #
> CXX = g++
> 
> # We have the same problem with the CC binary, which use used by testcases for
> # native builds.
> #
> CC := gcc
> 
> #
> # Compilation flags for the C and C++ compilers.
> #
> 
> #
> # Removing the compiler flags for now.  They interfere with the test suite
> # (which has its own autoconf stuff), and we don't use -DHAVE_CONFIG_H anyway.
> #
> #CPPFLAGS+=-DHAVE_CONFIG_H
> #CCFLAGS+=-DHAVE_CONFIG_H
> LDFLAGS+=
> 
> #
> # Removed since it prevents the tests from working properly.
> #
> #LIBS+=-ldl 
> 
> #
> # Libraries needed by tools
> #
> TOOLLINKOPTS=-ldl 
> 
> #
> # Path to the archiver program.
> #
> AR_PATH = /usr/bin/ar
> 
> #
> # The pathnames of the Flex and Bison programs, respectively.
> #
> BISON    = bison
> FLEX     = flex
> 
> #
> # Paths to miscellaneous programs.
> #
> RPWD    = /bin/pwd
> SED     = /bin/sed
> RM      = /bin/rm
> ECHO    = /bin/echo
> MKDIR   = /home/yue/llvm/autoconf/mkinstalldirs
> DATE    = /bin/date
> MV      = /bin/mv
> INSTALL = /usr/bin/install -c
> DOT     = false
> ETAGS   = false
> 
> #
> # Determine the target for which LLVM should generate code.
> #
> LLVMGCCARCH := i686-pc-linux-gnu/3.4-llvm
> 
> # 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 = .
> OBJ_ROOT := .
> 
> # Path to location for LLVM front-end this should only be specified here if you
> # want to override the value set in Makefile.$(uname)
> #
> LLVMGCCDIR := /home/yue/cfrontend/x86/llvm-gcc/
> 
> # When this setting is set to true, programs in the llvm/test/Programs hierarchy
> # are not recompiled from source code.  Instead, the bytecode for the file is
> # pulled from the BYTECODE_REPOSITORY directory.  This can be useful when disk
> # space is limited or when you just don't want to spend time running the C
> # frontend.
> #
> #USE_PRECOMPILED_BYTECODE := 1
> 
> 
> # This path specifies the cannonical location of bytecode files for compiled
> # versions of the test/Programs/* programs.  This is used as the bytecode source
> # when USE_PRECOMPILED_BYTECODE is specified or when source code is not
> # available for the program (such as SPEC).
> #
> BYTECODE_REPOSITORY := /home/vadve/lattner/LLVMPrograms
> 
> # Path to location for purify, this is only needed if you build with
> # ENABLE_PURIFY=1
> # 
> PURIFY = 
> 
> #
> # SPEC benchmarks:
> #	Set the USE_SPEC variable to enable the use of the SPEC benchmarks.
> #	You must provide the SPEC benchmarks on your own.
> #
> 
> 
> #
> # Path to the SPEC benchmarks.  If you have the SPEC benchmarks, place the
> # path here.
> #
> #SPEC_ROOT := /home/vadve/shared/benchmarks/speccpu2000/benchspec
> SPEC_ROOT := 
> 
> #
> # Path to the PAPI code.  This is used by the reoptimizer only.
> #
> #PAPIDIR := /home/vadve/shared/papi-2.3.4.1
> PAPIDIR := /home/vadve/shared/Sparc/papi-2.3.4.1
> 
> # 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, Release builds of all of the LLVM code are
> # turned on, and Debug builds are turned off.
> #
> #ENABLE_OPTIMIZED = 1
> 
> 
> # 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
> 
> #
> # This option tells the Makefiles to produce verbose output.
> # It essentially prints the commands that make is executing
> #
> #VERBOSE = 1
> 
> # When ENABLE_PURIFY is set to 1, the LLVM tools are linked with purify (which
> # must be locally installed) to allow for some automated memory error debugging.
> #
> #ENABLE_PURIFY = 1
> 
> 
> #
> # Enable JIT for this platform
> #
> TARGET_HAS_JIT=1
> 
> #
> # Disable LLC diffs for testing.
> #
> 
> 
> ###########################################################################
> # 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 BUILD_SRC_DIR  : The directory containing the code to build.
> #	o BUILD_SRC_ROOT : The root directory of the code to build.
> #
> #	o BUILD_OBJ_DIR  : The directory in which compiled code will be placed.
> #	o BUILD_OBJ_ROOT : The root directory in which compiled code is placed.
> #
> ###########################################################################
> 
> #
> # Set the object build directory.  By default, it is the current directory.
> #
> ifndef BUILD_OBJ_DIR
> BUILD_OBJ_DIR := $(subst //,/,$(shell $(RPWD)))
> endif
> 
> #
> # Set the root of the object directory.
> #
> ifndef BUILD_OBJ_ROOT
> BUILD_OBJ_ROOT := $(subst //,/,$(shell cd $(BUILD_OBJ_DIR)/$(LEVEL); $(RPWD)))
> endif
> 
> #
> # Set the source build directory.  That is almost always the current directory.
> #
> ifndef BUILD_SRC_DIR
> BUILD_SRC_DIR := $(subst //,/,/home/yue/llvm/$(patsubst $(BUILD_OBJ_ROOT)%,%,$(BUILD_OBJ_DIR)))
> endif
> 
> #
> # Set the source root directory.
> #
> ifndef BUILD_SRC_ROOT
> BUILD_SRC_ROOT := $(subst //,/,/home/yue/llvm)
> endif
> 
> #
> # Set the LLVM object directory.
> #
> ifndef LLVM_OBJ_ROOT
> ifdef LLVM_SRC_ROOT
> LLVM_OBJ_ROOT := $(shell cd $(LLVM_SRC_ROOT); $(RPWD))
> else
> LLVM_OBJ_ROOT := $(BUILD_OBJ_ROOT)
> endif
> endif
> 
> #
> # Set the LLVM source directory.
> # It is typically the root directory of what we're compiling now.
> #
> ifndef LLVM_SRC_ROOT
> LLVM_SRC_ROOT := $(BUILD_SRC_ROOT)
> endif
> 
> #
> # Set SourceDir for backwards compatbility.
> #
> ifndef SourceDir
> SourceDir=$(BUILD_SRC_DIR)
> endif
> 
> 
> 
> ------------------------------------------------------------------------
> 
> #! /bin/sh
> 
> PATH=/home/yue/llvm/obj/tools/Debug:${PATH}; export PATH
> SRC_ROOT=/home/yue/llvm; export SRC_ROOT
> OBJ_ROOT=/home/yue/llvm/obj; export OBJ_ROOT
> LLVMGCCDIR=/home/yue/cfrontend/x86/llvm-gcc; export LLVMGCCDIR
> LLVM_LIB_SEARCH_PATH=/home/yue/cfrontend/x86/llvm-gcc/bytecode-libs; export LLVM_LIB_SEARCH_PATH
> 
> alias llvmgcc='/home/yue/cfrontend/x86/llvm-gcc/bin/gcc'
> alias llvmg++='/home/yue/cfrontend/x86/llvm-gcc/bin/g++'
> 


-- 
*********************************************************************
* John T. Criswell                         Email: criswell at uiuc.edu *
* Research Programmer                                               *
* University of Illinois at Urbana-Champaign                        *
*                                                                   *
* "It's today!" said Piglet. "My favorite day," said Pooh.          *
*********************************************************************





More information about the llvm-dev mailing list