From 93b043df3d52470737de054d034756cefa7ed66d Mon Sep 17 00:00:00 2001 From: Nicolas Chautru Date: Thu, 3 Sep 2020 18:05:35 -0700 Subject: [PATCH] baseband/turbo_sw: detect dependencies automatically The meson for the turbo_sw PMD is updated to prevent the requirement for any device specific toplevel flags to be passed down (unlike what used to be the case with make). The linking to the optional libraries is purely auto detected at build time and flags are then set appropriately. Signed-off-by: Nicolas Chautru Acked-by: Bruce Richardson --- drivers/baseband/turbo_sw/meson.build | 43 ++++++++++++++------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build index f5a1ab3fcb..55ef4e4ec7 100644 --- a/drivers/baseband/turbo_sw/meson.build +++ b/drivers/baseband/turbo_sw/meson.build @@ -3,28 +3,28 @@ path = get_option('flexran_sdk') -if dpdk_conf.has('RTE_BBDEV_SDK_AVX2') - lib = cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: false) - if not lib.found() - build = false - reason = 'missing dependency, "libturbo"' - else - ext_deps += cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: true) - ext_deps += cc.find_library('libcrc', dirs: [path + '/lib_crc'], required: true) - ext_deps += cc.find_library('librate_matching', dirs: [path + '/lib_rate_matching'], required: true) - ext_deps += cc.find_library('libcommon', dirs: [path + '/lib_common'], required: true) - ext_deps += cc.find_library('libstdc++', required: true) - ext_deps += cc.find_library('libirc', required: true) - ext_deps += cc.find_library('libimf', required: true) - ext_deps += cc.find_library('libipps', required: true) - ext_deps += cc.find_library('libsvml', required: true) - includes += include_directories(path + '/lib_turbo') - includes += include_directories(path + '/lib_crc') - includes += include_directories(path + '/lib_rate_matching') - includes += include_directories(path + '/lib_common') - endif +# check for FlexRAN SDK libraries for AVX2 +lib4g = cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: false) +if lib4g.found() + ext_deps += cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: true) + ext_deps += cc.find_library('libcrc', dirs: [path + '/lib_crc'], required: true) + ext_deps += cc.find_library('librate_matching', dirs: [path + '/lib_rate_matching'], required: true) + ext_deps += cc.find_library('libcommon', dirs: [path + '/lib_common'], required: true) + ext_deps += cc.find_library('libstdc++', required: true) + ext_deps += cc.find_library('libirc', required: true) + ext_deps += cc.find_library('libimf', required: true) + ext_deps += cc.find_library('libipps', required: true) + ext_deps += cc.find_library('libsvml', required: true) + includes += include_directories(path + '/lib_turbo') + includes += include_directories(path + '/lib_crc') + includes += include_directories(path + '/lib_rate_matching') + includes += include_directories(path + '/lib_common') + cflags += ['-DRTE_BBDEV_SDK_AVX2'] endif -if dpdk_conf.has('RTE_BBDEV_SDK_AVX512') + +# check for FlexRAN SDK libraries for AVX512 +lib5g = cc.find_library('libldpc_decoder_5gnr', dirs: [path + '/lib_ldpc_decoder_5gnr'], required: false) +if lib5g.found() ext_deps += cc.find_library('libldpc_encoder_5gnr', dirs: [path + '/lib_ldpc_encoder_5gnr'], required: true) ext_deps += cc.find_library('libldpc_decoder_5gnr', dirs: [path + '/lib_ldpc_decoder_5gnr'], required: true) ext_deps += cc.find_library('libLDPC_ratematch_5gnr', dirs: [path + '/lib_LDPC_ratematch_5gnr'], required: true) @@ -33,6 +33,7 @@ if dpdk_conf.has('RTE_BBDEV_SDK_AVX512') includes += include_directories(path + '/lib_ldpc_decoder_5gnr') includes += include_directories(path + '/lib_LDPC_ratematch_5gnr') includes += include_directories(path + '/lib_rate_dematching_5gnr') + cflags += ['-DRTE_BBDEV_SDK_AVX512'] endif deps += ['bbdev', 'bus_vdev', 'ring'] -- 2.20.1