| # Copyright (c) 2022-2023, PostgreSQL Global Development Group |
| |
| catalog_headers = [ |
| 'pg_proc.h', |
| 'pg_type.h', |
| 'pg_attribute.h', |
| 'pg_class.h', |
| 'pg_attrdef.h', |
| 'pg_constraint.h', |
| 'pg_inherits.h', |
| 'pg_index.h', |
| 'pg_operator.h', |
| 'pg_opfamily.h', |
| 'pg_opclass.h', |
| 'pg_am.h', |
| 'pg_amop.h', |
| 'pg_amproc.h', |
| 'pg_language.h', |
| 'pg_largeobject_metadata.h', |
| 'pg_largeobject.h', |
| 'pg_aggregate.h', |
| 'pg_statistic.h', |
| 'pg_statistic_ext.h', |
| 'pg_statistic_ext_data.h', |
| 'pg_rewrite.h', |
| 'pg_trigger.h', |
| 'pg_event_trigger.h', |
| 'pg_description.h', |
| 'pg_cast.h', |
| 'pg_enum.h', |
| 'pg_namespace.h', |
| 'pg_conversion.h', |
| 'pg_depend.h', |
| 'pg_database.h', |
| 'pg_db_role_setting.h', |
| 'pg_tablespace.h', |
| 'pg_authid.h', |
| 'pg_auth_members.h', |
| 'pg_shdepend.h', |
| 'pg_shdescription.h', |
| 'pg_ts_config.h', |
| 'pg_ts_config_map.h', |
| 'pg_ts_dict.h', |
| 'pg_ts_parser.h', |
| 'pg_ts_template.h', |
| 'pg_extension.h', |
| 'pg_foreign_data_wrapper.h', |
| 'pg_foreign_server.h', |
| 'pg_user_mapping.h', |
| 'pg_foreign_table.h', |
| 'pg_policy.h', |
| 'pg_replication_origin.h', |
| 'pg_default_acl.h', |
| 'pg_init_privs.h', |
| 'pg_seclabel.h', |
| 'pg_shseclabel.h', |
| 'pg_collation.h', |
| 'pg_parameter_acl.h', |
| 'pg_partitioned_table.h', |
| 'pg_range.h', |
| 'pg_transform.h', |
| 'pg_sequence.h', |
| 'pg_publication.h', |
| 'pg_publication_namespace.h', |
| 'pg_publication_rel.h', |
| 'pg_subscription.h', |
| 'pg_subscription_rel.h', |
| ] |
| |
| bki_data = [ |
| 'pg_aggregate.dat', |
| 'pg_am.dat', |
| 'pg_amop.dat', |
| 'pg_amproc.dat', |
| 'pg_authid.dat', |
| 'pg_cast.dat', |
| 'pg_class.dat', |
| 'pg_collation.dat', |
| 'pg_conversion.dat', |
| 'pg_database.dat', |
| 'pg_language.dat', |
| 'pg_namespace.dat', |
| 'pg_opclass.dat', |
| 'pg_operator.dat', |
| 'pg_opfamily.dat', |
| 'pg_proc.dat', |
| 'pg_range.dat', |
| 'pg_tablespace.dat', |
| 'pg_ts_config.dat', |
| 'pg_ts_config_map.dat', |
| 'pg_ts_dict.dat', |
| 'pg_ts_parser.dat', |
| 'pg_ts_template.dat', |
| 'pg_type.dat', |
| ] |
| bki_data_f = files(bki_data) |
| |
| |
| input = [] |
| output_files = ['postgres.bki', 'system_constraints.sql', 'schemapg.h', 'system_fk_info.h'] |
| output_install = [dir_data, dir_data, dir_include_server / 'catalog', dir_include_server / 'catalog'] |
| |
| foreach h : catalog_headers |
| fname = h.split('.h')[0] + '_d.h' |
| input += files(h) |
| output_files += fname |
| output_install += dir_include_server / 'catalog' |
| endforeach |
| |
| generated_catalog_headers = custom_target('generated_catalog_headers', |
| output: output_files, |
| install_dir: output_install, |
| input: input, |
| depend_files: bki_data_f + catalog_pm, |
| build_by_default: true, |
| install: true, |
| command: [ |
| perl, |
| files('../../backend/catalog/genbki.pl'), |
| '--include-path=@SOURCE_ROOT@/src/include', |
| '--set-version=' + pg_version_major.to_string(), |
| '--output=@OUTDIR@', '@INPUT@' |
| ], |
| ) |
| |
| generated_headers += generated_catalog_headers.to_list() |
| |
| # autoconf generates the file there, ensure we get a conflict |
| generated_sources_ac += {'src/backend/catalog': output_files + ['bki-stamp']} |
| generated_sources_ac += {'src/include/catalog': ['header-stamp']} |
| |
| # 'reformat-dat-files' is a convenience target for rewriting the |
| # catalog data files in our standard format. This includes collapsing |
| # out any entries that are redundant with a BKI_DEFAULT annotation. |
| run_target('reformat-dat-files', |
| command: [perl, files('reformat_dat_file.pl'), '--output', '@CURRENT_SOURCE_DIR@', bki_data_f], |
| ) |
| |
| # 'expand-dat-files' is a convenience target for expanding out all |
| # default values in the catalog data files. This should be run before |
| # altering or removing any BKI_DEFAULT annotation. |
| run_target('expand-dat-files', |
| command: [perl, files('reformat_dat_file.pl'), '--output', '@CURRENT_SOURCE_DIR@', bki_data_f, '--full-tuples'], |
| ) |