LLVM build cleanup

This commit is contained in:
Brian Anderson 2011-11-01 17:09:44 -07:00
parent e47f410536
commit a0ff3db258
6 changed files with 35 additions and 18 deletions

View File

@ -62,8 +62,6 @@ CFG_INFO := $(info cfg: make restarts: $(MAKE_RESTARTS))
endif
CFG_INFO := $(info cfg: shell host triple $(CFG_HOST_TRIPLE))
CFG_INFO := $(info cfg: llvm host triple $(CFG_LLVM_TRIPLE))
CFG_INFO := $(info cfg: llvm target triples $(CFG_TARGET_TRIPLES))
ifdef CFG_DISABLE_OPTIMIZE
$(info cfg: disabling rustc optimization (CFG_DISABLE_OPTIMIZE))
@ -194,6 +192,23 @@ COMPILER_CRATE := $(S)src/comp/rustc.rc
COMPILER_INPUTS := $(wildcard $(addprefix $(S)src/comp/, \
rustc.rc *.rs */*.rs */*/*.rs))
######################################################################
# LLVM macros
######################################################################
LLVM_CONFIG:=$(CFG_LLVM_INST_DIR)/bin/llvm-config
LLVM_VERSION=$(shell "$(LLVM_CONFIG)" --version)
LLVM_BINDIR=$(shell "$(LLVM_CONFIG)" --bindir)
LLVM_INCDIR=$(shell "$(LLVM_CONFIG)" --includedir)
LLVM_LIBDIR=$(shell "$(LLVM_CONFIG)" --libdir)
LLVM_LIBS=$(shell "$(LLVM_CONFIG)" --libs)
LLVM_LDFLAGS=$(shell "$(LLVM_CONFIG)" --ldflags)
LLVM_CXXFLAGS=$(shell "$(LLVM_CONFIG)" --cxxflags)
LLVM_HOST_TRIPLE=$(shell "$(LLVM_CONFIG)" --host-target)
LLVM_AS=$(CFG_LLVM_BINDIR)/llvm-as$(X)
LLC=$(CFG_LLVM_BINDIR)/llc$(X)
######################################################################
# Exports for sub-utilities
######################################################################
@ -213,10 +228,6 @@ export CFG_PREFIX
# Subprograms
######################################################################
LLVM_AS := $(CFG_LLVM_BINDIR)/llvm-as$(X)
LLC := $(CFG_LLVM_BINDIR)/llc$(X)
######################################################################
# Per-stage targets and runner
######################################################################

8
configure vendored
View File

@ -498,13 +498,14 @@ step_msg "configuring LLVM"
CFG_LLVM_SRC_DIR=${CFG_SRC_DIR}src/llvm
CFG_LLVM_BUILD_DIR=${CFG_BUILD_DIR}/llvm
# Just use LLVM straight from its build directory to avoid 'make install' time
CFG_LLVM_INST_DIR=${CFG_LLVM_BUILD_DIR}/Release+Asserts
LLVM_TARGETS="--enable-targets=x86,x86_64"
LLVM_DISABLE="--disable-docs"
LLVM_BUILD="--build=${CFG_HOST_TRIPLE}"
LLVM_HOST="--host=${CFG_HOST_TRIPLE}"
LLVM_TARGET="--target=${CFG_HOST_TRIPLE}"
LLVM_OPTS="--enable-optimized --disable-docs"
LLVM_CXX_32="g++ -m32"
LLVM_CC_32="gcc -m32"
@ -525,7 +526,10 @@ CFLAGS=$LLVM_CFLAGS
CXXFLAGS=$LLVM_CXXFLAGS
LDFLAGS=$LLVM_LDFLAGS
LLVM_FLAGS="$LLVM_TARGETS $LLVM_DISABLE $LLVM_BUILD $LLVM_HOST $LLVM_TARGET"
LLVM_FLAGS="$LLVM_TARGETS $LLVM_OPTS $LLVM_BUILD $LLVM_HOST $LLVM_TARGET"
msg "configuring LLVM with:"
msg "$LLVM_FLAGS"
export CXX
export CC

View File

@ -14,11 +14,11 @@ rt/%.d: rt/%.cpp $(MKFILES)
$(Q)rm -f $@.tmp.bak
$(Q)mv $@.tmp $@
rustllvm/%.d: rustllvm/%.cpp $(MKFILES)
rustllvm/%.d: rustllvm/%.cpp $(MKFILES) $(LLVM_CONFIG)
@$(call E, dep: $@)
$(Q)$(call CFG_DEPEND_C, $@ \
$(subst $(S)src/,,$(patsubst %.cpp, %.o, $<)), \
$(CFG_LLVM_CXXFLAGS) $(RUSTLLVM_INCS)) $< >$@.tmp
$(LLVM_CXXFLAGS) $(RUSTLLVM_INCS)) $< >$@.tmp
$(Q)$(CFG_PATH_MUNGE) $@.tmp
$(Q)rm -f $@.tmp.bak
$(Q)mv $@.tmp $@

View File

@ -1,5 +1,7 @@
.PHONY: $(CFG_LLVM_INST_DIR)/bin/llc
# This is just a rough approximation of LLVM deps
LLVM_DEPS:=$(wildcard $(addprefix $(CFG_LLVM_SRC_DIR)/, \
* */*h */*/*h */*/*/*h */*cpp */*/*cpp */*/*/*cpp))
$(CFG_LLVM_INST_DIR)/bin/llc:
$(LLVM_CONFIG): $(LLVM_DEPS)
@$(call E, make: llvm)
$(Q)make -C $(CFG_LLVM_BUILD_DIR)

View File

@ -154,7 +154,6 @@ ifdef CFG_WINDOWSY
CFG_EXE_SUFFIX := .exe
CFG_LIB_NAME=$(1).dll
CFG_DEF_SUFFIX := .def
CFG_LDPATH :=$(CFG_LLVM_BINDIR)
CFG_LDPATH :=$(CFG_LDPATH):$$PATH
CFG_RUN=PATH="$(CFG_LDPATH):$(1)" $(2)
CFG_RUN_TARG=$(call CFG_RUN,$(HOST_LIB$(1)),$(2))

View File

@ -14,7 +14,7 @@ endif
RUSTLLVM_DEF_$(1) := rustllvm/rustllvm$$(CFG_DEF_SUFFIX)
RUSTLLVM_INCS_$(1) := -iquote $$(CFG_LLVM_INCDIR) \
RUSTLLVM_INCS_$(1) := -iquote $$(LLVM_INCDIR) \
-iquote $$(S)src/rustllvm/include
RUSTLLVM_OBJS_OBJS_$(1) := $$(RUSTLLVM_OBJS_CS_$(1):rustllvm/%.cpp=rustllvm/$(1)/%.o)
@ -22,13 +22,14 @@ rustllvm/$(1)/$(CFG_RUSTLLVM): $$(RUSTLLVM_OBJS_OBJS_$(1)) \
$$(MKFILES) $$(RUSTLLVM_DEF_$(1))
@$$(call E, link: $$@)
$$(Q)$$(call CFG_LINK_C_$(1),$$@,$$(RUSTLLVM_OBJS_OBJS_$(1)) \
$$(CFG_GCCISH_PRE_LIB_FLAGS) $$(CFG_LLVM_LIBS) \
$$(CFG_GCCISH_PRE_LIB_FLAGS) $$(LLVM_LIBS) \
$$(CFG_GCCISH_POST_LIB_FLAGS) \
$$(CFG_LLVM_LDFLAGS),$$(RUSTLLVM_DEF_$(1)),$$(CFG_RUSTLLVM))
$$(LLVM_LDFLAGS),$$(RUSTLLVM_DEF_$(1)),$$(CFG_RUSTLLVM))
rustllvm/$(1)/%.o: rustllvm/%.cpp $$(MKFILES) $$(CFG_LLVM_INST_DIR)/bin/llc
rustllvm/$(1)/%.o: rustllvm/%.cpp $$(MKFILES) \
$$(CFG_LLVM_INST_DIR)/bin/llvm-config
@$$(call E, compile: $$@)
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(CFG_LLVM_CXXFLAGS) $$(RUSTLLVM_INCS_$(1))) $$<
$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(LLVM_CXXFLAGS) $$(RUSTLLVM_INCS_$(1))) $$<
endef
# Instantiate template for all stages