xref: /dpdk/drivers/crypto/ipsec_mb/meson.build (revision 8484d74bd656bc0e951a3ed4e0816ee0fea5e593)
1c75542aeSFan Zhang# SPDX-License-Identifier: BSD-3-Clause
2c75542aeSFan Zhang# Copyright(c) 2021 Intel Corporation
3c75542aeSFan Zhang
45731efeaSTal Shnaidermanif is_windows
55731efeaSTal Shnaiderman    build = false
65731efeaSTal Shnaiderman    reason = 'not supported on Windows'
75731efeaSTal Shnaiderman    subdir_done()
85731efeaSTal Shnaidermanendif
95731efeaSTal Shnaiderman
10*8484d74bSBrian DooleyIMB_required_ver = '1.4.0'
110899a87cSRuifeng WangIMB_header = '#include<intel-ipsec-mb.h>'
120899a87cSRuifeng Wangif arch_subdir == 'arm'
130899a87cSRuifeng Wang    IMB_header = '#include<ipsec-mb.h>'
140899a87cSRuifeng Wangendif
15c75542aeSFan Zhanglib = cc.find_library('IPSec_MB', required: false)
16c75542aeSFan Zhangif not lib.found()
17c75542aeSFan Zhang    build = false
18c75542aeSFan Zhang    reason = 'missing dependency, "libIPSec_MB"'
19fb94d824SBruce Richardson# if the lib is found, check it's the right format
202909f9afSBruce Richardsonelif not cc.links(
21fb94d824SBruce Richardson        'int main(void) {return 0;}', dependencies: lib)
22fb94d824SBruce Richardson    build = false
23fb94d824SBruce Richardson    reason = 'incompatible dependency, "libIPSec_MB"'
24c75542aeSFan Zhangelse
25c75542aeSFan Zhang    ext_deps += lib
26c75542aeSFan Zhang
27c75542aeSFan Zhang    # version comes with quotes, so we split based on " and take the middle
28c75542aeSFan Zhang    imb_ver = cc.get_define('IMB_VERSION_STR',
290899a87cSRuifeng Wang        prefix : IMB_header).split('"')[1]
30c75542aeSFan Zhang
31c75542aeSFan Zhang    if (imb_ver == '') or (imb_ver.version_compare('<' + IMB_required_ver))
32c75542aeSFan Zhang        reason = 'IPSec_MB version >= @0@ is required, found version @1@'.format(
33c75542aeSFan Zhang            IMB_required_ver, imb_ver)
34c75542aeSFan Zhang        build = false
35c75542aeSFan Zhang    endif
36c75542aeSFan Zhangendif
37c75542aeSFan Zhang
38f88b0b89SDavid Marchandsources = files(
39f88b0b89SDavid Marchand        'ipsec_mb_private.c',
40c75542aeSFan Zhang        'ipsec_mb_ops.c',
41746825e5SPiotr Bronowski        'pmd_aesni_mb.c',
42bc9ef81cSPiotr Bronowski        'pmd_aesni_gcm.c',
43f1666288SKai Ji        'pmd_chacha_poly.c',
444f1cfda5SPiotr Bronowski        'pmd_kasumi.c',
45cde8df1bSPiotr Bronowski        'pmd_snow3g.c',
46f88b0b89SDavid Marchand        'pmd_zuc.c',
47c75542aeSFan Zhang)
48c75542aeSFan Zhangdeps += ['bus_vdev', 'net', 'security']
49d5d9e8feSThomas Monjalonrequire_iova_in_mbuf = false
50