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. *
*********************************************************************