diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 12:19:15 +0000 |
commit | 6eb9c5a5657d1fe77b55cc261450f3538d35a94d (patch) | |
tree | 657d8194422a5daccecfd42d654b8a245ef7b4c8 /src/pl/plpython/Makefile | |
parent | Initial commit. (diff) | |
download | postgresql-13-upstream.tar.xz postgresql-13-upstream.zip |
Adding upstream version 13.4.upstream/13.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/pl/plpython/Makefile')
-rw-r--r-- | src/pl/plpython/Makefile | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile new file mode 100644 index 0000000..9e95285 --- /dev/null +++ b/src/pl/plpython/Makefile @@ -0,0 +1,170 @@ +# src/pl/plpython/Makefile + +subdir = src/pl/plpython +top_builddir = ../../.. +include $(top_builddir)/src/Makefile.global + + +# On Windows we have to remove -lpython from the link since we are +# building our own +ifeq ($(PORTNAME), win32) +override python_libspec = +endif + +override CPPFLAGS := -I. -I$(srcdir) $(python_includespec) $(CPPFLAGS) + +rpathdir = $(python_libdir) + +PGFILEDESC = "PL/Python - procedural language" + +NAME = plpython$(python_majorversion) + +OBJS = \ + $(WIN32RES) \ + plpy_cursorobject.o \ + plpy_elog.o \ + plpy_exec.o \ + plpy_main.o \ + plpy_planobject.o \ + plpy_plpymodule.o \ + plpy_procedure.o \ + plpy_resultobject.o \ + plpy_spi.o \ + plpy_subxactobject.o \ + plpy_typeio.o \ + plpy_util.o + +DATA = $(NAME)u.control $(NAME)u--1.0.sql +ifeq ($(python_majorversion),2) +DATA += plpythonu.control plpythonu--1.0.sql +endif + +# header files to install - it's not clear which of these might be needed +# so install them all. +INCS = plpython.h \ + plpy_cursorobject.h \ + plpy_elog.h \ + plpy_exec.h \ + plpy_main.h \ + plpy_planobject.h \ + plpy_plpymodule.h \ + plpy_procedure.h \ + plpy_resultobject.h \ + plpy_spi.h \ + plpy_subxactobject.h \ + plpy_typeio.h \ + plpy_util.h + +# Python on win32 ships with import libraries only for Microsoft Visual C++, +# which are not compatible with mingw gcc. Therefore we need to build a +# new import library to link with. +ifeq ($(PORTNAME), win32) + +pytverstr=$(subst .,,${python_version}) +PYTHONDLL=$(subst \,/,$(WINDIR))/system32/python${pytverstr}.dll + +OBJS += libpython${pytverstr}.a + +libpython${pytverstr}.a: python${pytverstr}.def + dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a + +python${pytverstr}.def: + pexports $(PYTHONDLL) > $@ + +endif # win32 + + +SHLIB_LINK = $(python_libspec) $(python_additional_libs) $(filter -lintl,$(LIBS)) + +REGRESS_OPTS = --dbname=$(PL_TESTDB) +# Only load plpythonu with Python 2. The test files themselves load +# the versioned language plpython(2|3)u. +ifeq ($(python_majorversion),2) +REGRESS_OPTS += --load-extension=plpythonu +endif + +REGRESS = \ + plpython_schema \ + plpython_populate \ + plpython_test \ + plpython_do \ + plpython_global \ + plpython_import \ + plpython_spi \ + plpython_newline \ + plpython_void \ + plpython_call \ + plpython_params \ + plpython_setof \ + plpython_record \ + plpython_trigger \ + plpython_types \ + plpython_error \ + plpython_ereport \ + plpython_unicode \ + plpython_quote \ + plpython_composite \ + plpython_subtransaction \ + plpython_transaction \ + plpython_drop + +REGRESS_PLPYTHON3_MANGLE := $(REGRESS) + +include $(top_srcdir)/src/Makefile.shlib + +all: all-lib + +# Ensure parallel safety if a build is started in this directory +$(OBJS): | submake-generated-headers + +install: all install-lib install-data + +installdirs: installdirs-lib + $(MKDIR_P) '$(DESTDIR)$(datadir)/extension' '$(DESTDIR)$(includedir_server)' '$(DESTDIR)$(pgxsdir)/src/pl/plpython' + +uninstall: uninstall-lib uninstall-data + +install-data: installdirs + $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA)) '$(DESTDIR)$(datadir)/extension/' + $(INSTALL_DATA) $(addprefix $(srcdir)/, $(INCS)) '$(DESTDIR)$(includedir_server)' + $(INSTALL_DATA) $(srcdir)/regress-python3-mangle.mk '$(DESTDIR)$(pgxsdir)/src/pl/plpython' + +uninstall-data: + rm -f $(addprefix '$(DESTDIR)$(datadir)/extension'/, $(notdir $(DATA))) + rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/, plpython.h plpy_util.h) + +.PHONY: install-data uninstall-data + + +include $(srcdir)/regress-python3-mangle.mk + + +check: submake-pg-regress + $(pg_regress_check) $(REGRESS_OPTS) $(REGRESS) + +installcheck: submake-pg-regress + $(pg_regress_installcheck) $(REGRESS_OPTS) $(REGRESS) + + +.PHONY: submake-pg-regress +submake-pg-regress: | submake-generated-headers + $(MAKE) -C $(top_builddir)/src/test/regress pg_regress$(X) + +clean distclean: clean-lib + rm -f $(OBJS) + rm -rf $(pg_regress_clean_files) +ifeq ($(PORTNAME), win32) + rm -f python${pytverstr}.def +endif + + +# Force this dependency to be known even without dependency info built: +plpy_plpymodule.o: spiexceptions.h + +spiexceptions.h: $(top_srcdir)/src/backend/utils/errcodes.txt generate-spiexceptions.pl + $(PERL) $(srcdir)/generate-spiexceptions.pl $< > $@ + +distprep: spiexceptions.h + +maintainer-clean: distclean + rm -f spiexceptions.h |