'pdump',
'rawdev',
'regexdev',
+ 'dmadev',
'rib',
'reorder',
'sched',
'ethdev',
'pci',
'cmdline',
+ 'metrics',
'hash',
+ 'timer',
+ 'bitratestats',
+ 'cryptodev',
'cfgfile',
+ 'gro',
+ 'gso',
+ 'latencystats',
+ 'pdump',
+ 'stack',
+ 'security',
] # only supported libraries for windows
endif
+optional_libs = [
+ 'kni',
+ 'power',
+ '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']
default_cflags += ['-DALLOW_INTERNAL_API']
deps += ['eal']
endif
- dir_name = 'librte_' + l
- subdir(dir_name)
+ 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
foreach d:deps
if not is_variable('shared_rte_' + d)
error('Missing internal dependency "@0@" for @1@ [@2@]'
- .format(d, name, 'lib/' + dir_name))
+ .format(d, name, 'lib/' + l))
endif
shared_deps += [get_variable('shared_rte_' + d)]
static_deps += [get_variable('static_rte_' + d)]
dpdk_chkinc_headers += headers
libname = 'rte_' + name
- includes += include_directories(dir_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,
cflags += '-DRTE_BUILD_SHARED_LIB'
endif
version_map = '@0@/@1@/version.map'.format(
- meson.current_source_dir(), dir_name)
- implib = dir_name + '.dll.a'
+ meson.current_source_dir(), l)
+ implib = 'librte_' + l + '.dll.a'
def_file = custom_target(libname + '_def',
command: [map_to_win_cmd, '@INPUT@', '@OUTPUT@'],
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
set_variable('shared_rte_' + name, shared_dep)
set_variable('static_rte_' + name, static_dep)
if developer_mode
- message('lib/@0@: Defining dependency "@1@"'.format(dir_name, name))
+ message('lib/@0@: Defining dependency "@1@"'.format(l, name))
endif
endforeach