1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-05 02:22:28 +03:00

meson: Add basic PGXS compatibility

Generate a Makefile.global that's complete enough for PGXS to work for some
extensions. It is likely that this compatibility layer will not suffice for
every extension and not all platforms - we can expand it over time.

This allows extensions to use a single buildsystem across all the supported
postgres versions. Once all supported PG versions support meson, we can remove
the compatibility layer.

Reviewed-by: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Discussion: https://postgr.es/m/20221005200710.luvw5evhwf6clig6@awork3.anarazel.de
This commit is contained in:
Andres Freund
2022-12-06 18:56:46 -08:00
parent 9db49fc5bf
commit 5bdd0cfb91
6 changed files with 311 additions and 11 deletions

View File

@@ -10,3 +10,40 @@ subdir('bin')
subdir('pl')
subdir('interfaces')
### Generate a Makefile.global that's complete enough for PGXS to work.
#
# This is somewhat ugly, but allows extensions to use a single buildsystem
# across all the supported postgres versions. Once all supported PG versions
# support meson, we can remove all of this.
#
# XXX: Should we make this optional?
# pgxs_cdata is built in makefiles/meson.build, but some of the generated
# files are output into src/
subdir('makefiles')
makefile_global = configure_file(
input: 'Makefile.global.in',
output: 'Makefile.global',
configuration: pgxs_cdata,
install: true,
install_dir: dir_pgxs / 'src',
)
configure_files += makefile_global
makefile_port = configure_file(
input: 'makefiles' / 'Makefile.@0@'.format(portname),
output: 'Makefile.port',
copy: true,
install_dir: dir_pgxs / 'src')
configure_files += makefile_port
install_data(
'Makefile.shlib', 'nls-global.mk',
install_dir: dir_pgxs / 'src')
install_data(
'makefiles/pgxs.mk',
install_dir: dir_pgxs / 'src' / 'makefiles')