contrib/meson.build (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
cc = meson.get_compiler('c')
native_arch_args = []
cpu = host_machine.cpu_family()
if cpu == 'x86_64'
foreach arg : ['-mavx2', '-mbmi2']
if cc.has_argument(arg)
native_arch_args += arg
endif
endforeach
elif cpu == 'aarch64'
if cc.has_argument('-march=armv8.4-a+sha3')
native_arch_args += '-march=armv8.4-a+sha3'
endif
endif
contrib_config_inc = include_directories('config')
pqc_c_args = [
'-O3',
'-ffreestanding',
'-fno-stack-protector', # no libc: don't emit __stack_chk_fail references
'-fomit-frame-pointer',
] + native_arch_args
mlkem_inc = include_directories('mlkem-native')
mlkem_config_arg = '-DMLK_CONFIG_FILE="circe_mlkem_config.h"'
mlkem_lib = static_library(
'circe-mlkem',
[
'mlkem-native/mlkem/mlkem_native.c',
'mlkem-native/mlkem/mlkem_native_asm.S',
],
c_args: pqc_c_args + [mlkem_config_arg],
include_directories: [mlkem_inc, contrib_config_inc],
dependencies: [common_dep],
)
mlkem_dep = declare_dependency(
link_with: mlkem_lib,
include_directories: [mlkem_inc, contrib_config_inc],
compile_args: [mlkem_config_arg],
dependencies: [common_dep],
)
set_variable(meson.project_name() + '_mlkem_dep', mlkem_dep)
mldsa_inc = include_directories('mldsa-native')
mldsa_config_arg = '-DMLD_CONFIG_FILE="circe_mldsa_config.h"'
mldsa_lib = static_library(
'circe-mldsa',
[
'mldsa-native/mldsa/mldsa_native.c',
'mldsa-native/mldsa/mldsa_native_asm.S',
],
c_args: pqc_c_args + [mldsa_config_arg],
include_directories: [mldsa_inc, contrib_config_inc],
dependencies: [common_dep],
)
mldsa_dep = declare_dependency(
link_with: mldsa_lib,
include_directories: [mldsa_inc, contrib_config_inc],
compile_args: [mldsa_config_arg],
dependencies: [common_dep],
)
set_variable(meson.project_name() + '_mldsa_dep', mldsa_dep)
|