[LLVMdev] Makefile.config

John Criswell criswell at cs.uiuc.edu
Thu Apr 1 16:03:02 PST 2004


Vinay S. Belgaumkar wrote:
> Hi John,
>    I have attached my Makefile.config.
>    I noticed that I did'nt have  SRC_ROOT and OBJ_ROOT variables defined 
> as such in my environment. But I noticed that this is defined in the 
> Makefile.config by default to the same values.
> All the same, I tried defining both these variables in my .cshrc, but I 
> still get the same error.

Sorry about the confusion.  SRC_ROOT and OBJ_ROOT are not environment 
variables that you need to set.  SRC_ROOT is shorthand for the directory 
containing the LLVM source, and OBJ_ROOT is the shorthand for the 
directory in which LLVM will be built.  They are simply terms which are 
convenient and make typing easier.
:)

>  The main directory for me is /home/llvm, and I have llvm/ ,  cfrontend/ 
> as the sub-directories of /home/llvm. So the configure, Makefile.config 
> etc files are in /home/llvm/llvm.
> 
> So, I run the following command from /home/llvm/llvm
> 
> ./configure --enable-spec95=/Fast-System/spec95/INTEGER/
> 
> The INTEGER directory contains subdirectories of the INT benchmarks - 
> like 099.go/ and 126.gcc/

I think your configuration for SPEC95 is not going to work.
Our configuration expects that you're using the same directory tree in 
which SPEC95 was shipped to you on the CD.  The only difference between 
our SPEC95 code and that found on the CD is a few fixes for compilation.

One thing you can try is to rename the INTEGER directory to CINT95.  In 
other words, set the variable SPEC95_ROOT in Makefile.config to 
/Fast-System/spec95 and put the integer benchmarks in 
/Fast-System/spec95/CINT95.

Now, if you do that, I believe it should work, as long as everything 
below CINT95 is exactly the same as it is in the SPEC95 CD.  If the 
directory /Fast-System/spec95/CINT95/099.go doesn't look like this, then 
you may still have problems:

DEBUG
DESCR.go
Makefile
README.go 
         Spec
VERSION 
         data
exe
result
run 
         src

-- John T.

> 
> 
> Thanx,
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> #===-- 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
> 
> # Endian-ness of the target
> ENDIAN=little
> 
> # 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 = /usr/bin/g++
> 
> # We have the same problem with the CC binary, which use used by testcases for
> # native builds.
> CC := /usr/bin/gcc
> 
> # Linker flags.
> LDFLAGS+=
> 
> # Libraries needed by tools
> TOOLLINKOPTS=-ldl 
> 
> # Path to the library archiver program.
> AR_PATH = ar
> 
> # The pathnames of the Flex and Bison programs, respectively.
> YACC     = bison -y
> BISON    = bison
> FLEX     = flex
> 
> # Paths to miscellaneous programs.
> RPWD    = pwd
> SED     = sed
> RM      = rm
> ECHO    = echo
> MKDIR   = /home/llvm/llvm/autoconf/mkinstalldirs
> DATE    = date
> MV      = mv
> INSTALL = /usr/bin/install -c
> DOT     = true dot
> ETAGS   = /usr/bin/etags
> ETAGSFLAGS = -l c++
> 
> # Determine the target for which LLVM should generate code.
> LLVMGCCARCH := i686-pc-linux-gnu/3.4-llvm
> 
> # Full pathnames of LLVM C/C++ front-end 'cc1' and 'cc1plus' binaries:
> LCC1 = /home/llvm/cfrontend/install/libexec/gcc/i686-pc-linux-gnu/3.4-llvm/cc1
> LCC1XX = /home/llvm/cfrontend/install/libexec/gcc/i686-pc-linux-gnu/3.4-llvm/cc1plus
> 
> # 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 := .
> 
> # 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/llvm/cfrontend/install/
> 
> # When this variable is set to 1, 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
> 
> # SPEC benchmarks:
> #	If these are set then run the SPEC benchmarks.
> #	You must provide the SPEC benchmarks on your own.
> 
> USE_SPEC95=1
> 
> # Path to the SPEC benchmarks.
> SPEC2000_ROOT := 
> SPEC95_ROOT := /Fast-System/spec95/INTEGER/
> 
> # Path to the Povray source code.
> 
> POVRAY_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
> 
> # Enable JIT for this platform
> TARGET_HAS_JIT=1
> 
> # Disable LLC diffs for testing.
> 
> 
> # Shared library extension for this platform.
> SHLIBEXT = .so
> 
> ###########################################################################
> # 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/llvm/llvm/$(patsubst $(BUILD_OBJ_ROOT)%,%,$(BUILD_OBJ_DIR)))
> endif
> 
> # Set the source root directory.
> ifndef BUILD_SRC_ROOT
> BUILD_SRC_ROOT := $(subst //,/,/home/llvm/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
> 
> # Installation directories, as provided by the configure script.
> exec_prefix = ${prefix}
> prefix = /usr/local
> program_transform_name = s,x,x,
> bindir = ${exec_prefix}/bin
> sbindir = ${exec_prefix}/sbin
> libexecdir = ${exec_prefix}/libexec
> datadir = ${prefix}/share
> sysconfdir = ${prefix}/etc
> sharedstatedir = ${prefix}/com 
> localstatedir = ${prefix}/var
> libdir = ${exec_prefix}/lib
> bytecode_libdir = $(LLVMGCCDIR)/bytecode-libs
> includedir = ${prefix}/include
> infodir = ${prefix}/info
> mandir = ${prefix}/man
> INSTALL_PROGRAM = ${INSTALL}
> INSTALL_SCRIPT = ${INSTALL}
> INSTALL_DATA = ${INSTALL} -m 644
> 


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