X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Fmeson.build;h=24adbe44c9a6c740062daefedc3410e203899d07;hb=4d75f3fcdedd86327c5d515e8fe5ece1ef16394d;hp=3a9a6c3be4cb88ef2d79fc442e31049e9f9d4cb2;hpb=99a2dd955fba6e4cc23b77d590a033650ced9c45;p=dpdk.git diff --git a/lib/meson.build b/lib/meson.build index 3a9a6c3be4..24adbe44c9 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -3,7 +3,7 @@ # process all libraries equally, as far as possible -# "core" libs first, then others alphebetically as far as possible +# "core" libs first, then others alphabetically as far as possible # NOTE: for speed of meson runs, the dependencies in the subdirectories # sometimes skip deps that would be implied by others, e.g. if mempool is # given as a dep, no need to mention ring. This is especially true for the @@ -27,12 +27,14 @@ libraries = [ 'acl', 'bbdev', 'bitratestats', + 'bpf', 'cfgfile', 'compressdev', 'cryptodev', 'distributor', 'efd', 'eventdev', + 'gpudev', 'gro', 'gso', 'ip_frag', @@ -41,10 +43,11 @@ libraries = [ 'latencystats', 'lpm', 'member', + 'pcapng', 'power', - 'pdump', 'rawdev', 'regexdev', + 'dmadev', 'rib', 'reorder', 'sched', @@ -54,32 +57,45 @@ libraries = [ 'ipsec', # ipsec lib depends on net, crypto and security 'fib', #fib lib depends on rib 'port', # pkt framework libs which use other libs from above + 'pdump', # pdump lib depends on bpf 'table', 'pipeline', 'flow_classify', # flow_classify lib depends on pkt framework table lib - 'bpf', 'graph', 'node', ] -if is_windows - libraries = [ - 'kvargs', - 'telemetry', - 'eal', - 'ring', - 'rcu', - 'mempool', - 'mbuf', - 'net', - 'meter', - 'ethdev', - 'pci', - 'cmdline', - 'hash', - 'cfgfile', - ] # only supported libraries for windows -endif +optional_libs = [ + 'bitratestats', + 'cfgfile', + 'flow_classify', + 'gpudev', + 'gro', + 'gso', + 'kni', + 'jobstats', + 'latencystats', + 'metrics', + 'node', + 'pdump', + 'pipeline', + 'port', + 'power', + 'table', + 'vhost', +] + +disabled_libs = [] +opt_disabled_libs = run_command(list_dir_globs, get_option('disable_libs'), + check: true).stdout().split() +foreach l:opt_disabled_libs + if not optional_libs.contains(l) + warning('Cannot disable mandatory library "@0@"'.format(l)) + continue + endif + disabled_libs += l +endforeach + default_cflags = machine_args default_cflags += ['-DALLOW_EXPERIMENTAL_API'] @@ -114,28 +130,39 @@ foreach l:libraries deps += ['eal'] endif - subdir(l) + if disabled_libs.contains(l) + build = false + reason = 'explicitly disabled via build config' + else + subdir(l) + endif if name != l warning('Library name, "@0@", and directory name, "@1@", do not match'.format(name, l)) endif - if not build - dpdk_libs_disabled += name - set_variable(name.underscorify() + '_disable_reason', reason) - continue - endif - shared_deps = ext_deps static_deps = ext_deps foreach d:deps + if not build + break + endif if not is_variable('shared_rte_' + d) - error('Missing internal dependency "@0@" for @1@ [@2@]' + build = false + reason = 'missing internal dependency, "@0@"'.format(d) + message('Disabling @1@ [@2@]: missing internal dependency "@0@"' .format(d, name, 'lib/' + l)) + else + shared_deps += [get_variable('shared_rte_' + d)] + static_deps += [get_variable('static_rte_' + d)] endif - shared_deps += [get_variable('shared_rte_' + d)] - static_deps += [get_variable('static_rte_' + d)] endforeach + if not build + dpdk_libs_disabled += name + set_variable(name.underscorify() + '_disable_reason', reason) + continue + endif + enabled_libs += name dpdk_conf.set('RTE_LIB_' + name.to_upper(), 1) install_headers(headers) @@ -144,17 +171,19 @@ foreach l:libraries install_headers(driver_sdk_headers) endif dpdk_chkinc_headers += headers + dpdk_chkinc_headers += driver_sdk_headers libname = 'rte_' + name includes += include_directories(l) - if is_windows and use_function_versioning + if developer_mode and is_windows and use_function_versioning message('@0@: Function versioning is not supported by Windows.'.format(name)) endif if use_function_versioning cflags += '-DRTE_USE_FUNCTION_VERSIONING' endif + cflags += '-DRTE_LOG_DEFAULT_LOGTYPE=lib.' + l # first build static lib static_lib = static_library(libname, @@ -205,7 +234,7 @@ foreach l:libraries endif lk_deps = [version_map, def_file, mingw_map] - if not is_windows + if developer_mode and not is_windows # on unix systems check the output of the # check-symbols.sh script, using it as a # dependency of the .so build