summaryrefslogtreecommitdiff
path: root/source/Interpreter/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'source/Interpreter/Makefile')
-rw-r--r--source/Interpreter/Makefile51
1 files changed, 51 insertions, 0 deletions
diff --git a/source/Interpreter/Makefile b/source/Interpreter/Makefile
new file mode 100644
index 0000000000000..2f25e67966040
--- /dev/null
+++ b/source/Interpreter/Makefile
@@ -0,0 +1,51 @@
+##===- source/Interpreter/Makefile ------------------------*- Makefile -*-===##
+#
+# The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+
+LLDB_LEVEL := ../..
+LIBRARYNAME := lldbInterpreter
+BUILD_ARCHIVE = 1
+include $(LLDB_LEVEL)/../../Makefile.config
+
+ifneq ($(HOST_OS),MingW)
+ifeq (,$(findstring -DLLDB_DISABLE_PYTHON,$(CXXFLAGS)))
+DO_BUILD_LLDBWrapPython = 1
+BUILT_SOURCES := LLDBWrapPython.cpp
+endif
+endif
+
+include $(LLDB_LEVEL)/Makefile
+-include $(PROJ_OBJ_DIR)/LLDBWrapPython.cpp.d
+
+ifeq ($(DO_BUILD_LLDBWrapPython),1)
+# Drop -Wfour-char-constants, which we are not currently clean with.
+EXTRA_OPTIONS += -Wno-four-char-constants
+
+# Drop -Wself-assign, -Wmissing-field-initializers, -Wsometimes-uninitialized,
+# -Wcast-qual, and -Wdeprecated-register which we are not clean with due to SWIG
+# generated cpp source.
+EXTRA_OPTIONS += -Wno-missing-field-initializers -Wno-self-assign -Wno-sometimes-uninitialized -Wno-cast-qual -Wno-deprecated-register
+
+PYTHON_DIR := $(PROJ_OBJ_ROOT)/$(BuildMode)
+
+SWIG_SOURCES := $(shell find $(PROJ_SRC_DIR)/$(LLDB_LEVEL)/scripts -type f -name '*.swig' -print)
+
+LLDBWrapPython.cpp lldb.py: $(PROJ_SRC_DIR)/$(LLDB_LEVEL)/scripts/Python/modify-python-lldb.py \
+ $(wildcard $(PROJ_SRC_DIR)/$(LLDB_LEVEL)/scripts/interface/*.i) \
+ ${SWIG_SOURCES}
+ $(Echo) Generating LLDBWrapPython.cpp
+ $(Verb) "$(PROJ_SRC_DIR)/$(LLDB_LEVEL)/scripts/prepare_bindings.py" "--src-root=$(PROJ_SRC_DIR)/$(LLDB_LEVEL)" "--target-dir=$(PROJ_OBJ_DIR)" "--config-build-dir=$(PROJ_OBJ_DIR)" "--prefix=$(PYTHON_DIR)" $(if $(DISABLE_AUTO_DEPENDENCIES),,-M) --find-swig
+ $(Verb) "$(PROJ_SRC_DIR)/$(LLDB_LEVEL)/scripts/finish-swig-wrapper-classes.sh" "$(PROJ_SRC_DIR)/$(LLDB_LEVEL)" "$(PROJ_OBJ_DIR)" "$(PROJ_OBJ_DIR)" "$(PYTHON_DIR)" -m
+
+install-local:: lldb.py
+ $(Echo) Installing $(BuildMode) LLDB python modules
+ $(Verb) "$(PROJ_SRC_DIR)/$(LLDB_LEVEL)/scripts/prepare_bindings.py" "--src-root=$(PROJ_SRC_DIR)/$(LLDB_LEVEL)" "--target-dir=$(PROJ_OBJ_DIR)" "--config-build-dir=$(PROJ_OBJ_DIR)" "--prefix=$(DESTDIR)$(prefix)" --find-swig
+
+clean-local::
+ $(Verb) $(RM) -f LLDBWrapPython.cpp lldb.py
+endif