# Copyright (c) 2022-2023, PostgreSQL Global Development Group ecpg_sources = files( '../ecpglib/typename.c', 'c_keywords.c', 'descriptor.c', 'ecpg.c', 'ecpg_keywords.c', 'keywords.c', 'output.c', 'parser.c', 'type.c', 'variable.c', ) pgc = custom_target('pgc.c', input: 'pgc.l', output: 'pgc.c', command: flex_cmd, ) generated_sources += pgc ecpg_sources += pgc ecpg_files = [ 'ecpg.addons', 'ecpg.header', 'ecpg.tokens', 'ecpg.trailer', 'ecpg.type', ] preproc_y = custom_target('preproc.y', input: [ '../../../backend/parser/gram.y', ecpg_files, ], output: ['preproc.y'], command: [ perl, files('parse.pl'), '--srcdir', '@CURRENT_SOURCE_DIR@', '--parser', '@INPUT0@', '--output', '@OUTPUT0@', ], ) generated_sources += preproc_y check_rules = custom_target('preproc.y.check_rules', input: [ '../../../backend/parser/gram.y', ecpg_files, ], output: 'preproc.y.check_rules', command: [ perl, files('check_rules.pl'), '--srcdir', '@CURRENT_SOURCE_DIR@', '--parser', '@INPUT0@', '--stamp', '@OUTPUT0@', ], ) preproc = custom_target('preproc.c', input: preproc_y, kwargs: bison_kw, ) generated_sources += preproc.to_list() ecpg_sources += preproc c_kwlist = custom_target('c_kwlist_d.h', input: ['c_kwlist.h'], output: ['c_kwlist_d.h'], depends: check_rules, depend_files: gen_kwlist_deps, command: [gen_kwlist_cmd, '--varname', 'ScanCKeywords', '--no-case-fold'], ) generated_sources += c_kwlist ecpg_sources += c_kwlist ecpg_kwlist = custom_target('ecpg_kwlist_d.h', input: ['ecpg_kwlist.h'], output: ['ecpg_kwlist_d.h'], depend_files: gen_kwlist_deps, command: [gen_kwlist_cmd, '--varname', 'ScanECPGKeywords'], ) generated_sources += ecpg_kwlist ecpg_sources += ecpg_kwlist if host_system == 'windows' ecpg_sources += rc_bin_gen.process(win32ver_rc, extra_args: [ '--NAME', 'ecpg', '--FILEDESC', 'ecpg - embedded SQL precompiler for C',]) endif ecpg_exe = executable('ecpg', ecpg_sources, include_directories: ['.', ecpg_inc, postgres_inc, libpq_inc], c_pch: pch_postgres_fe_h, dependencies: [frontend_code], kwargs: default_bin_args, ) ecpg_targets += ecpg_exe subdir('po', if_found: libintl)