diff options
Diffstat (limited to 'Makefile.common')
-rw-r--r-- | Makefile.common | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/Makefile.common b/Makefile.common index 92f5118b..268de9f8 100644 --- a/Makefile.common +++ b/Makefile.common @@ -5,7 +5,8 @@ include $(LEVEL)/Makefile.config # Include LLVM's Master Makefile config and rules. include $(LLVM_OBJ_ROOT)/Makefile.config -ifeq ($(BYTECODE_LIBRARY), 1) +BUILDING_RUNTIME:=$(if $(or $(BYTECODE_LIBRARY),$(MODULE_NAME)),1,0) +ifeq ($(BUILDING_RUNTIME),1) # # Override make variables based on the runtime configuration. We want # to override whatever the user may have said on the command line, @@ -18,15 +19,27 @@ override ENABLE_PROFILING := $(RUNTIME_ENABLE_PROFILING) override ENABLE_COVERAGE := $(RUNTIME_ENABLE_COVERAGE) override DEBUG_SYMBOLS := $(RUNTIME_DEBUG_SYMBOLS) endif +BYTECODE_DESTINATION:=$(DESTDIR)$(PROJ_libdir)/klee/runtime include $(PROJ_SRC_ROOT)/Makefile.rules +# We have to build the bytecode install directory manually. +# FIXME: Doing it this way is potentially racey! +install:: + $(MKDIR) $(BYTECODE_DESTINATION) + # LLVMCC was added in 2.7. ifeq ($(LLVMCC),) LLVMCC := $(LLVMGCC) LLVMCXX := $(LLVMGXX) endif +# Deliberately override the host compiler +# so that we use what was detected when KLEE was configured +# and not LLVM. +CC := $(KLEE_HOST_C_COMPILER) +CXX := $(KLEE_HOST_CXX_COMPILER) + # Needed to build runtime library using clang (gnu89 is the gcc default) C.Flags += -std=gnu89 @@ -38,10 +51,9 @@ endif # This is filename that KLEE will look for when trying to load klee-uclibc KLEE_UCLIBC_BCA_NAME="klee-uclibc.bca" -LD.Flags += $(STP_LDFLAGS) CXX.Flags += $(STP_CFLAGS) CXX.Flags += -DKLEE_DIR=\"$(PROJ_OBJ_ROOT)\" -DKLEE_INSTALL_BIN_DIR=\"$(PROJ_bindir)\" -CXX.Flags += -DKLEE_INSTALL_LIB_DIR=\"$(PROJ_libdir)\" +CXX.Flags += -DKLEE_INSTALL_RUNTIME_DIR=\"$(BYTECODE_DESTINATION)\" ifeq ($(ENABLE_UCLIBC),1) CXX.Flags += -DKLEE_UCLIBC_BCA_NAME=\"$(KLEE_UCLIBC_BCA_NAME)\" |