fuzz_sources = ['fuzz.cc', 'fuzz.h']
cpp_flags = [
- f'-DKEA_LFC_INSTALLATION="@PREFIX@/sbin/kea-lfc"',
- f'-DKEA_LFC_SOURCES="@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc"',
+ f'-DKEA_LFC_INSTALLATION="@KEA_LFC_INSTALLED@"',
+ f'-DKEA_LFC_SOURCES="@KEA_LFC_BUILT@"',
]
if FUZZING_WITH_CLUSTERFUZZLITE
cpp_flags = ['-fsanitize=fuzzer', '-gdwarf-4']
SBINDIR = get_option('sbindir')
SYSCONFDIR = get_option('sysconfdir')
-DHCP_DATA_DIR = LOCALSTATEDIR / 'run/kea'
-DEFAULT_HOOKS_PATH = PREFIX / 'lib/kea/hooks'
-TEST_CA_DIR = TOP_SOURCE_DIR / 'src/lib/asiolink/testutils/ca'
DATABASE_SCRIPTS_DIR = TOP_BUILD_DIR / 'src/share/database/scripts'
+DHCP_DATA_DIR = LOCALSTATEDIR / 'run/kea'
+DEFAULT_HOOKS_PATH = PREFIX / LIBDIR / 'kea/hooks'
+KEA_ADMIN_BUILT = TOP_BUILD_DIR / 'src/bin/lfc/kea-admin'
+KEA_ADMIN_INSTALLED = PREFIX / SBINDIR / 'kea-admin'
+KEA_LFC_BUILT = TOP_BUILD_DIR / 'src/bin/lfc/kea-lfc'
+KEA_LFC_INSTALLED = PREFIX / SBINDIR / 'kea-lfc'
LEGAL_LOG_DIR = PREFIX / LOCALSTATEDIR / 'lib/kea'
+TEST_CA_DIR = TOP_SOURCE_DIR / 'src/lib/asiolink/testutils/ca'
#### Build Options
kea_admin_conf_data = configuration_data()
kea_admin_conf_data.set('prefix', PREFIX)
-kea_admin_conf_data.set('exec_prefix', PREFIX)
-kea_admin_conf_data.set('datarootdir', PREFIX / DATADIR)
+kea_admin_conf_data.set('exec_prefix', '${prefix}')
+kea_admin_conf_data.set('datarootdir', '${prefix}/@DATADIR@')
kea_admin_conf_data.set('PACKAGE', 'kea')
kea_admin_conf_data.set('PACKAGE_NAME', 'kea')
kea_admin_conf_data.set('PACKAGE_VERSION', PROJECT_VERSION)
kea_admin_conf_data.set('EXTENDED_VERSION', PROJECT_VERSION + ' (tarball)')
kea_admin_conf_data.set('abs_top_builddir', TOP_BUILD_DIR)
kea_admin_conf_data.set('abs_top_srcdir', TOP_SOURCE_DIR)
-kea_admin_conf_data.set('sbindir', PREFIX / SBINDIR)
+kea_admin_conf_data.set('sbindir', f'${prefix}/@SBINDIR@')
kea_admin_conf_data.set('variables', 'variables')
configure_file(
input: 'kea-admin.in',
dependencies: [CRYPTO_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [agent_lib] + LIBS_BUILT_SO_FAR,
)
subdir('tests')
dependencies: [CRYPTO_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [d2_lib] + LIBS_BUILT_SO_FAR,
)
subdir('tests')
dependencies: [CRYPTO_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [dhcp4_lib] + LIBS_BUILT_SO_FAR,
)
subdir('tests')
f'-DCFG_EXAMPLES="@TOP_SOURCE_DIR@/doc/examples/kea4"',
f'-DDHCP_DATA_DIR="@current_build_dir@"',
f'-DSYNTAX_FILE="@current_source_dir@/../dhcp4_parser.yy"',
- f'-DKEA_LFC_EXECUTABLE="@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc"',
+ f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_BUILT@"',
f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
],
dependencies: dhcp4_tests_deps,
dependencies: [CRYPTO_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [dhcp6_lib] + LIBS_BUILT_SO_FAR,
)
subdir('tests')
f'-DCFG_EXAMPLES="@TOP_SOURCE_DIR@/doc/examples/kea6"',
f'-DDHCP_DATA_DIR="@current_build_dir@"',
f'-DSYNTAX_FILE="@current_source_dir@/../dhcp6_parser.yy"',
- f'-DKEA_LFC_EXECUTABLE="@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc"',
+ f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_BUILT@"',
f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
],
dependencies: dhcp6_tests_deps,
keactrl_conf_data = configuration_data()
keactrl_conf_data.set('prefix', PREFIX)
-keactrl_conf_data.set('sysconfdir', PREFIX / SYSCONFDIR)
+keactrl_conf_data.set('sysconfdir', '${prefix}/@SYSCONFDIR@')
keactrl_conf_data.set('PACKAGE', 'kea')
-keactrl_conf_data.set('exec_prefix', PREFIX)
-keactrl_conf_data.set('sbindir', PREFIX / SBINDIR)
+keactrl_conf_data.set('exec_prefix', '${prefix}')
+keactrl_conf_data.set('sbindir', '${prefix}/' + SBINDIR)
if NETCONF_DEP.found()
keactrl_conf_data.set('HAVE_NETCONF', 'yes')
else
'main.cc',
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [lfc_lib] + LIBS_BUILT_SO_FAR,
)
subdir('tests')
dependencies: [NETCONF_DEP, CRYPTO_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [netconf_lib] + LIBS_BUILT_SO_FAR,
override_options: ['cpp_std=c++20'],
)
'main.cc',
include_directories: [include_directories('.')] + INCLUDES,
install: true,
- install_dir: 'sbin',
+ install_dir: SBINDIR,
link_with: [perfdhcp_lib] + LIBS_BUILT_SO_FAR,
)
subdir('tests')
sources,
cpp_args: [
f'-DDHCP_DATA_DIR="@PREFIX@/@DHCP_DATA_DIR@"',
- f'-DKEA_LFC_EXECUTABLE="@PREFIX@/@SBINDIR@/kea-lfc"',
+ f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_INSTALLED@"',
],
dependencies: [CRYPTO_DEP],
include_directories: [include_directories('.')] + INCLUDES,
cpp_args: [
f'-DTEST_DATA_BUILDDIR="@current_build_dir@"',
f'-DDHCP_DATA_DIR="@current_build_dir@"',
- f'-DKEA_LFC_BUILD_DIR="@TOP_BUILD_DIR@/src/bin/lfc"',
+ f'-DKEA_LFC_BUILD_DIR="@KEA_LFC_BUILT@"',
f'-DDEFAULT_HOOKS_PATH="@DEFAULT_HOOKS_PATH@"',
],
dependencies: [CRYPTO_DEP, GTEST_DEP],
'kea-mysql',
'mysql_binding.cc',
'mysql_connection.cc',
- cpp_args: [f'-DKEA_ADMIN="@PREFIX@/@SBINDIR@/kea-admin"'],
+ cpp_args: [f'-DKEA_ADMIN="@KEA_ADMIN_INSTALLED@"'],
dependencies: [MYSQL_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
'run_unittests.cc',
cpp_args: [
f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
- f'-DKEA_ADMIN="@TOP_BUILD_DIR@/src/bin/admin/kea-admin"',
+ f'-DKEA_ADMIN="@KEA_ADMIN_BUILT@"',
],
dependencies: [GTEST_DEP, MYSQL_DEP],
include_directories: [include_directories('.')] + INCLUDES,
'kea-pgsql',
'pgsql_connection.cc',
'pgsql_exchange.cc',
- cpp_args: [f'-DKEA_ADMIN="@PREFIX@/@SBINDIR@/kea-admin"'],
+ cpp_args: [f'-DKEA_ADMIN="@KEA_ADMIN_INSTALLED@"'],
dependencies: [POSTGRESQL_DEP],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
'run_unittests.cc',
cpp_args: [
f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
- f'-DKEA_ADMIN="@TOP_BUILD_DIR@/src/bin/admin/kea-admin"',
+ f'-DKEA_ADMIN="@KEA_ADMIN_BUILT@"',
],
dependencies: [GTEST_DEP, POSTGRESQL_DEP],
include_directories: [include_directories('.')] + INCLUDES,
krb5_config = find_program('krb5-config', required: false)
if krb5_config.found()
+ # Detect vendor.
+ vendor_cmd = run_command([krb5_config, '--vendor'], check: false)
+ vendor = 'unknown'
+ if vendor_cmd.returncode() == 0
+ vendor = vendor_cmd.stdout().strip()
+ else
+ all = run_command([krb5_config, '--all'], check: false)
+ if all.returncode() == 0
+ foreach i : all.stdout().split('\n')
+ if i.startswith('Vendor')
+ vendor = i.split(':')[1].strip()
+ break
+ endif
+ endforeach
+ endif
+ endif
+
cflags = run_command([krb5_config, '--cflags', 'gssapi'], check: false)
libs = run_command([krb5_config, '--libs', 'gssapi'], check: false)
version = run_command([krb5_config, '--version'], check: false)
- vendor = run_command([krb5_config, '--vendor'], check: false)
- if cflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0 and vendor.returncode() == 0
+ if cflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0
krb5_version = version.stdout().strip()
krb5 = declare_dependency(
compile_args: cflags.stdout().split(),