Skip to content

Commit e358004

Browse files
committed
initial llvm-cbe commit
1 parent 12c5c6b commit e358004

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+110418
-0
lines changed

Makefile.common.in

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Set the name of the project here
2+
PROJECT_NAME := sample
3+
PROJ_VERSION := 0.9
4+
5+
# Set this variable to the top of the LLVM source tree.
6+
LLVM_SRC_ROOT = @LLVM_SRC@
7+
8+
# Set this variable to the top level directory where LLVM was built
9+
# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
10+
LLVM_OBJ_ROOT = @LLVM_OBJ@
11+
12+
# Set the directory root of this project's source files
13+
PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
14+
15+
# Set the root directory of this project's object files
16+
PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
17+
18+
# Set the root directory of this project's install prefix
19+
PROJ_INSTALL_ROOT := @prefix@
20+
21+
# Configuration file to set paths specific to local installation of LLVM
22+
include $(PROJ_OBJ_ROOT)/Makefile.llvm.config
23+
24+
# Include all of the build rules used for making LLVM
25+
include $(PROJ_SRC_ROOT)/Makefile.llvm.rules
26+

Makefile.llvm.config.in

+317
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,317 @@
1+
#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
2+
#
3+
# The LLVM Compiler Infrastructure
4+
#
5+
# This file is distributed under the University of Illinois Open Source
6+
# License. See LICENSE.TXT for details.
7+
#
8+
#===------------------------------------------------------------------------===#
9+
#
10+
# This file is included by Makefile.common. It defines paths and other
11+
# values specific to a particular installation of LLVM.
12+
#
13+
#===------------------------------------------------------------------------===#
14+
15+
# Define LLVM specific info and directories based on the autoconf variables
16+
LLVMVersion := @LLVM_VERSION@
17+
18+
###########################################################################
19+
# Directory Configuration
20+
# This section of the Makefile determines what is where. To be
21+
# specific, there are several locations that need to be defined:
22+
#
23+
# o LLVM_SRC_ROOT : The root directory of the LLVM source code.
24+
# o LLVM_OBJ_ROOT : The root directory containing the built LLVM code.
25+
#
26+
# o PROJ_SRC_DIR : The directory containing the code to build.
27+
# o PROJ_SRC_ROOT : The root directory of the code to build.
28+
#
29+
# o PROJ_OBJ_DIR : The directory in which compiled code will be placed.
30+
# o PROJ_OBJ_ROOT : The root directory in which compiled code is placed.
31+
#
32+
###########################################################################
33+
34+
PWD := @BINPWD@
35+
36+
# The macro below is expanded when 'realpath' is not built-in.
37+
# Built-in 'realpath' is available on GNU Make 3.81.
38+
realpath = $(shell cd $(1); $(PWD))
39+
40+
PROJ_OBJ_DIR := $(call realpath, .)
41+
PROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL))
42+
43+
ifndef PROJ_SRC_ROOT
44+
$(error Projects must define PROJ_SRC_ROOT)
45+
endif
46+
ifndef PROJ_OBJ_ROOT
47+
$(error Projects must define PROJ_OBJ_ROOT)
48+
endif
49+
ifndef PROJ_INSTALL_ROOT
50+
$(error Projects must define PROJ_INSTALL_ROOT)
51+
endif
52+
ifndef LLVM_SRC_ROOT
53+
$(error Projects must define LLVM_SRC_ROOT)
54+
endif
55+
ifndef LLVM_OBJ_ROOT
56+
$(error Projects must define LLVM_OBJ_ROOT)
57+
endif
58+
PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
59+
prefix := $(PROJ_INSTALL_ROOT)
60+
PROJ_prefix := $(prefix)
61+
ifndef PROJ_VERSION
62+
PROJ_VERSION := 1.0
63+
endif
64+
65+
PROJ_bindir := $(PROJ_prefix)/bin
66+
PROJ_libdir := $(PROJ_prefix)/lib
67+
PROJ_datadir := $(PROJ_prefix)/share
68+
PROJ_docsdir := $(PROJ_prefix)/docs/llvm
69+
PROJ_etcdir := $(PROJ_prefix)/etc/llvm
70+
PROJ_includedir := $(PROJ_prefix)/include
71+
PROJ_infodir := $(PROJ_prefix)/info
72+
PROJ_mandir := $(PROJ_prefix)/share/man
73+
74+
# Determine if we're on a unix type operating system
75+
LLVM_ON_UNIX:=@LLVM_ON_UNIX@
76+
LLVM_ON_WIN32:=@LLVM_ON_WIN32@
77+
78+
# Host operating system for which LLVM will be run.
79+
OS=@OS@
80+
HOST_OS=@HOST_OS@
81+
# Target operating system for which LLVM will compile for.
82+
TARGET_OS=@TARGET_OS@
83+
84+
# Target hardware architecture
85+
ARCH=@ARCH@
86+
87+
# Indicates, whether we're cross-compiling LLVM or not
88+
LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
89+
90+
# Executable file extension for build platform (mainly for
91+
# tablegen call if we're cross-compiling).
92+
BUILD_EXEEXT=@BUILD_EXEEXT@
93+
94+
# Compilers for the build platflorm (mainly for tablegen
95+
# call if we're cross-compiling).
96+
BUILD_CC=@BUILD_CC@
97+
BUILD_CXX=@BUILD_CXX@
98+
99+
# Triple for configuring build tools when cross-compiling
100+
BUILD_TRIPLE=@build@
101+
102+
# Target triple (cpu-vendor-os) for which we should generate code
103+
TARGET_TRIPLE=@target@
104+
105+
# Extra options to compile LLVM with
106+
EXTRA_OPTIONS=@EXTRA_OPTIONS@
107+
108+
# Extra options to link LLVM with
109+
EXTRA_LD_OPTIONS=@EXTRA_LD_OPTIONS@
110+
111+
# Endian-ness of the target
112+
ENDIAN=@ENDIAN@
113+
114+
# Path to the C++ compiler to use. This is an optional setting, which defaults
115+
# to whatever your gmake defaults to.
116+
CXX = @CXX@
117+
118+
# Path to the CC binary, which use used by testcases for native builds.
119+
CC := @CC@
120+
121+
# Linker flags.
122+
LDFLAGS+=@LDFLAGS@
123+
124+
# Path to the library archiver program.
125+
AR_PATH = @AR@
126+
AR = @AR@
127+
128+
# Path to the nm program
129+
NM_PATH = @NM@
130+
131+
# The pathnames of the programs we require to build
132+
CMP := @CMP@
133+
CP := @CP@
134+
DATE := @DATE@
135+
FIND := @FIND@
136+
GREP := @GREP@
137+
INSTALL := @INSTALL@
138+
MKDIR := $(PROJ_SRC_ROOT)/autoconf/mkinstalldirs
139+
MV := @MV@
140+
RANLIB := @RANLIB@
141+
RM := @RM@
142+
SED := @SED@
143+
TAR := @TAR@
144+
145+
# Paths to miscellaneous programs we hope are present but might not be
146+
BZIP2 := @BZIP2@
147+
CAT := @CAT@
148+
DOT := @DOT@
149+
DOXYGEN := @DOXYGEN@
150+
GROFF := @GROFF@
151+
GZIPBIN := @GZIPBIN@
152+
OCAMLC := @OCAMLC@
153+
OCAMLOPT := @OCAMLOPT@
154+
OCAMLDEP := @OCAMLDEP@
155+
OCAMLDOC := @OCAMLDOC@
156+
GAS := @GAS@
157+
POD2HTML := @POD2HTML@
158+
POD2MAN := @POD2MAN@
159+
PDFROFF := @PDFROFF@
160+
ZIP := @ZIP@
161+
162+
HAVE_PTHREAD := @HAVE_PTHREAD@
163+
164+
LIBS := @LIBS@
165+
166+
# Targets that we should build
167+
TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
168+
169+
# Path to directory where object files should be stored during a build.
170+
# Set OBJ_ROOT to "." if you do not want to use a separate place for
171+
# object files.
172+
OBJ_ROOT := .
173+
174+
# What to pass as rpath flag to g++
175+
RPATH := @RPATH@
176+
177+
# What to pass as -rdynamic flag to g++
178+
RDYNAMIC := @RDYNAMIC@
179+
180+
# These are options that can either be enabled here, or can be enabled on the
181+
# make command line (ie, make ENABLE_PROFILING=1):
182+
183+
# When ENABLE_LIBCPP is enabled, LLVM uses libc++ by default to build.
184+
#ENABLE_LIBCPP = 0
185+
ENABLE_LIBCPP = @ENABLE_LIBCPP@
186+
187+
# When ENABLE_CXX11 is enabled, LLVM uses c++11 mode by default to build.
188+
ENABLE_CXX11 = @ENABLE_CXX11@
189+
190+
# When ENABLE_WERROR is enabled, we'll pass -Werror on the command line
191+
ENABLE_WERROR = @ENABLE_WERROR@
192+
193+
# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put
194+
# into the "Release" directories. Otherwise, LLVM code is not optimized and
195+
# output is put in the "Debug" directories.
196+
#ENABLE_OPTIMIZED = 1
197+
@ENABLE_OPTIMIZED@
198+
199+
# When ENABLE_PROFILING is enabled, profile instrumentation is done
200+
# and output is put into the "<Flavor>+Profile" directories, where
201+
# <Flavor> is either Debug or Release depending on how other build
202+
# flags are set. Otherwise, output is put in the <Flavor>
203+
# directories.
204+
#ENABLE_PROFILING = 1
205+
@ENABLE_PROFILING@
206+
207+
# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will
208+
# exclude assertion checks, otherwise they are included.
209+
#DISABLE_ASSERTIONS = 1
210+
@DISABLE_ASSERTIONS@
211+
212+
# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM
213+
# code will include expensive checks, otherwise they are excluded.
214+
#ENABLE_EXPENSIVE_CHECKS = 0
215+
@ENABLE_EXPENSIVE_CHECKS@
216+
217+
# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug
218+
# symbols.
219+
#DEBUG_RUNTIME = 1
220+
@DEBUG_RUNTIME@
221+
222+
# When DEBUG_SYMBOLS is enabled, the compiler libraries will retain debug
223+
# symbols.
224+
#DEBUG_SYMBOLS = 1
225+
@DEBUG_SYMBOLS@
226+
227+
# The compiler flags to use for optimized builds.
228+
OPTIMIZE_OPTION := @OPTIMIZE_OPTION@
229+
230+
# When ENABLE_PROFILING is enabled, the llvm source base is built with profile
231+
# information to allow gprof to be used to get execution frequencies.
232+
#ENABLE_PROFILING = 1
233+
234+
# When ENABLE_DOCS is disabled, docs/ will not be built.
235+
ENABLE_DOCS = @ENABLE_DOCS@
236+
237+
# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built
238+
ENABLE_DOXYGEN = @ENABLE_DOXYGEN@
239+
240+
# Do we want to enable threads?
241+
ENABLE_THREADS := @ENABLE_THREADS@
242+
243+
# Do we want to build with position independent code?
244+
ENABLE_PIC := @ENABLE_PIC@
245+
246+
# Do we want to build a shared library and link the tools with it?
247+
ENABLE_SHARED := @ENABLE_SHARED@
248+
249+
# Do we want to link the stdc++ into a shared library? (Cygming)
250+
ENABLE_EMBED_STDCXX := @ENABLE_EMBED_STDCXX@
251+
252+
# Use -fvisibility-inlines-hidden?
253+
ENABLE_VISIBILITY_INLINES_HIDDEN := @ENABLE_VISIBILITY_INLINES_HIDDEN@
254+
255+
# Do we want to allow timestamping information into builds?
256+
ENABLE_TIMESTAMPS := @ENABLE_TIMESTAMPS@
257+
258+
# This option tells the Makefiles to produce verbose output.
259+
# It essentially prints the commands that make is executing
260+
#VERBOSE = 1
261+
262+
# Enable JIT for this platform
263+
TARGET_HAS_JIT = @TARGET_HAS_JIT@
264+
265+
# Environment variable to set to change the runtime shared library search path.
266+
SHLIBPATH_VAR = @SHLIBPATH_VAR@
267+
268+
# Shared library extension for host platform.
269+
SHLIBEXT = @SHLIBEXT@
270+
271+
# Executable file extension for host platform.
272+
EXEEXT = @EXEEXT@
273+
274+
# Things we just assume are "there"
275+
ECHO := echo
276+
277+
# Get the options for causing archives to link all their content instead of
278+
# just missing symbols, and the inverse of that. This is used for certain LLVM
279+
# tools that permit loadable modules. It ensures that the LLVM symbols will be
280+
# available to those loadable modules.
281+
LINKALL := @LINKALL@
282+
NOLINKALL := @NOLINKALL@
283+
284+
# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
285+
# on the check.
286+
HUGE_VAL_SANITY = @HUGE_VAL_SANITY@
287+
288+
# Bindings that we should build
289+
BINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@
290+
ALL_BINDINGS := @ALL_BINDINGS@
291+
OCAML_LIBDIR := @OCAML_LIBDIR@
292+
293+
# When compiling under Mingw/Cygwin, executables such as tblgen
294+
# expect Windows paths, whereas the build system uses Unix paths.
295+
# The function SYSPATH transforms Unix paths into Windows paths.
296+
ifneq (,$(findstring -mno-cygwin, $(CXX)))
297+
SYSPATH = $(shell echo $(1) | cygpath -m -f -)
298+
else
299+
SYSPATH = $(1)
300+
endif
301+
302+
# Location of the plugin header file for gold.
303+
BINUTILS_INCDIR := @BINUTILS_INCDIR@
304+
305+
# Optional flags supported by the compiler
306+
# -Wno-missing-field-initializers
307+
NO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@
308+
# -Wno-variadic-macros
309+
NO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@
310+
# -Wcovered-switch-default
311+
COVERED_SWITCH_DEFAULT = @COVERED_SWITCH_DEFAULT@
312+
313+
# Was polly found in tools/polly?
314+
LLVM_HAS_POLLY = @LLVM_HAS_POLLY@
315+
# Flags supported by the linker.
316+
# bfd ld / gold --version-script=file
317+
HAVE_LINK_VERSION_SCRIPT = @HAVE_LINK_VERSION_SCRIPT@

autoconf/AutoRegen.sh

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/sh
2+
die () {
3+
echo "$@" 1>&2
4+
exit 1
5+
}
6+
test -d autoconf && test -f autoconf/configure.ac && cd autoconf
7+
test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
8+
autoconf --version | egrep '2\.[56][0-9]' > /dev/null
9+
if test $? -ne 0 ; then
10+
die "Your autoconf was not detected as being 2.5x or 2.6x"
11+
fi
12+
cwd=`pwd`
13+
if test -d ../../../autoconf/m4 ; then
14+
cd ../../../autoconf/m4
15+
llvm_src_root=../..
16+
llvm_obj_root=../..
17+
cd $cwd
18+
elif test -d ../../llvm/autoconf/m4 ; then
19+
cd ../../llvm/autoconf/m4
20+
llvm_src_root=../..
21+
llvm_obj_root=../..
22+
cd $cwd
23+
else
24+
while true ; do
25+
echo "LLVM source root not found."
26+
read -p "Enter full path to LLVM source:" REPLY
27+
if test -d "$REPLY/autoconf/m4" ; then
28+
llvm_src_root="$REPLY"
29+
read -p "Enter full path to LLVM objects (empty for same as source):" REPLY
30+
if test -d "$REPLY" ; then
31+
llvm_obj_root="$REPLY"
32+
else
33+
llvm_obj_root="$llvm_src_root"
34+
fi
35+
break
36+
fi
37+
done
38+
fi
39+
echo "Regenerating aclocal.m4 with aclocal"
40+
rm -f aclocal.m4
41+
aclocal -I $cwd/m4 || die "aclocal failed"
42+
echo "Regenerating configure with autoconf"
43+
autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
44+
cd ..
45+
exit 0

autoconf/ExportMap.map

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
global: main;
3+
__progname;
4+
environ;
5+
6+
local: *;
7+
};

0 commit comments

Comments
 (0)