| #------------------------------------------------------------------------- |
| # |
| # Makefile-- |
| # Makefile the LLVM JIT provider, building it into a shared library. |
| # |
| # Note that this file is recursed into from src/Makefile, not by the |
| # parent directory.. |
| # |
| # IDENTIFICATION |
| # src/backend/jit/llvm/Makefile |
| # |
| #------------------------------------------------------------------------- |
| |
| subdir = src/backend/jit/llvm |
| top_builddir = ../../../.. |
| include $(top_builddir)/src/Makefile.global |
| |
| ifneq ($(with_llvm), yes) |
| $(error "not building with LLVM support") |
| endif |
| |
| PGFILEDESC = "llvmjit - JIT using LLVM" |
| NAME = llvmjit |
| |
| # LLVM 14 produces deprecation warnings. We'll need to make some changes |
| # before the relevant functions are removed, but for now silence the warnings. |
| ifeq ($(GCC), yes) |
| LLVM_CFLAGS += -Wno-deprecated-declarations |
| endif |
| |
| # All files in this directory use LLVM. |
| CFLAGS += $(LLVM_CFLAGS) |
| CXXFLAGS += $(LLVM_CXXFLAGS) |
| override CPPFLAGS := $(LLVM_CPPFLAGS) $(CPPFLAGS) |
| SHLIB_LINK += $(LLVM_LIBS) |
| |
| # Because this module includes C++ files, we need to use a C++ |
| # compiler for linking. Makefile.shlib uses $(COMPILER) to build |
| # loadable modules. |
| override COMPILER = $(CXX) $(CFLAGS) |
| |
| OBJS = \ |
| $(WIN32RES) |
| |
| # Infrastructure |
| OBJS += \ |
| llvmjit.o \ |
| llvmjit_error.o \ |
| llvmjit_inline.o \ |
| llvmjit_wrap.o \ |
| SectionMemoryManager.o |
| |
| # Code generation |
| OBJS += \ |
| llvmjit_deform.o \ |
| llvmjit_expr.o |
| |
| all: all-shared-lib llvmjit_types.bc |
| |
| install: all installdirs install-lib install-types |
| |
| installdirs: installdirs-lib |
| |
| uninstall: uninstall-lib uninstall-types |
| |
| # Note this is intentionally not in bitcodedir, as it's not for inlining */ |
| install-types: llvmjit_types.bc |
| $(INSTALL_DATA) llvmjit_types.bc '$(DESTDIR)$(pkglibdir)' |
| |
| uninstall-types: |
| rm -f '$(DESTDIR)$(pkglibdir)/llvmjit_types.bc' |
| |
| include $(top_srcdir)/src/Makefile.shlib |
| |
| clean distclean maintainer-clean: clean-lib |
| rm -f $(OBJS) |
| rm -f llvmjit_types.bc |