'baseband', # depends on common and bus.
'raw'] # depends on common, bus, mempool, net and event.
+disabled_drivers = get_option('disable_drivers').split(',')
+
default_cflags = machine_args
if cc.has_argument('-Wno-format-truncation')
default_cflags += '-Wno-format-truncation'
# pull in driver directory which should assign to each of the above
subdir(drv_path)
+ # skip disabled drivers. For meson 0.49 change this to use
+ # "in" keyword
+ foreach disable_path: disabled_drivers
+ if drv_path == disable_path
+ build = false
+ reason = 'Explicitly disabled via build config'
+ endif
+ endforeach
+ if build
+ # get dependency objs from strings
+ shared_deps = ext_deps
+ static_deps = ext_deps
+ foreach d:deps
+ if not is_variable('shared_rte_' + d)
+ build = false
+ reason = 'Missing internal dependency, "@0@"'.format(d)
+ message('Disabling @1@ [@2@]: missing internal dependency "@0@"'
+ .format(d, name, 'drivers/' + drv_path))
+ else
+ shared_deps += [get_variable('shared_rte_' + d)]
+ static_deps += [get_variable('static_rte_' + d)]
+ endif
+ endforeach
+ endif
+
if not build
# some driver directories are placeholders which
# are never built, so we allow suppression of the
cflags += '-DALLOW_EXPERIMENTAL_API'
endif
- # get dependency objs from strings
- shared_objs = []
- static_objs = []
- foreach d:deps
- if not is_variable('shared_rte_' + d)
- error('Missing dependency ' + d +
- ' for driver ' + lib_name)
- endif
- shared_objs += [get_variable('shared_rte_' + d)]
- static_objs += [get_variable('static_rte_' + d)]
- endforeach
- shared_objs += ext_deps
- static_objs += ext_deps
dpdk_extra_ldflags += pkgconfig_extra_libs
# generate pmdinfo sources by building a temporary
tmp_lib = static_library('tmp_' + lib_name,
sources,
include_directories: includes,
- dependencies: static_objs,
+ dependencies: static_deps,
c_args: cflags)
objs += tmp_lib.extract_all_objects()
sources = custom_target(out_filename,
sources,
objects: objs,
include_directories: includes,
- dependencies: static_objs,
+ dependencies: static_deps,
c_args: cflags,
install: true)
sources,
objects: objs,
include_directories: includes,
- dependencies: shared_objs,
+ dependencies: shared_deps,
c_args: cflags,
link_args: '-Wl,--version-script=' + version_map,
link_depends: version_map,
# testpmd or other built-in apps can find it if necessary
shared_dep = declare_dependency(link_with: shared_lib,
include_directories: includes,
- dependencies: shared_objs)
+ dependencies: shared_deps)
static_dep = declare_dependency(link_with: static_lib,
include_directories: includes,
- dependencies: static_objs)
+ dependencies: static_deps)
dpdk_drivers += static_lib
set_variable('shared_@0@'.format(lib_name), shared_dep)
set_variable('static_@0@'.format(lib_name), static_dep)
+ dependency_name = ''.join(lib_name.split('rte_'))
+ message('drivers/@0@: Defining dependency "@1@"'.format(
+ drv_path, dependency_name))
endif # build
endforeach