LLVM build cleanup
This commit is contained in:
parent
e47f410536
commit
a0ff3db258
23
Makefile.in
23
Makefile.in
|
@ -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
|
||||
######################################################################
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 $@
|
||||
|
|
|
@ -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)
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue