'common/qat', # depends on bus.
'common/sfc_efx', # depends on bus.
'mempool', # depends on common and bus.
+ 'dma', # depends on common and bus.
'net', # depends on common, bus, mempool
- 'raw', # depends on common, bus and net.
+ 'raw', # depends on common, bus, dma and net.
'crypto', # depends on common, bus and mempool (net in future).
'compress', # depends on common, bus, mempool.
'regex', # depends on common, bus, regexdev.
'vdpa', # depends on common, bus and mempool.
'event', # depends on common, bus, mempool and net.
'baseband', # depends on common and bus.
+ 'gpu', # depends on common and bus.
]
if meson.is_cross_build()
# add cmdline disabled drivers and meson disabled drivers together
disable_drivers += ',' + get_option('disable_drivers')
-disable_drivers = run_command(list_dir_globs, disable_drivers).stdout().split()
+disable_drivers = run_command(list_dir_globs, disable_drivers, check: true).stdout().split()
# add cmdline enabled drivers and meson enabled drivers together
enable_drivers = ',' + get_option('enable_drivers')
-enable_drivers = run_command(list_dir_globs, enable_drivers).stdout().split()
+enable_drivers = run_command(list_dir_globs, enable_drivers, check: true).stdout().split()
if enable_drivers.length() == 0
- enable_drivers = run_command(list_dir_globs, '*/*').stdout().split()
+ enable_drivers = run_command(list_dir_globs, '*/*', check: true).stdout().split()
endif
# these drivers must always be enabled, otherwise the build breaks
foreach subpath:subdirs
drivers = []
std_deps = []
+ log_prefix = ''
# subpath can be either "class" or "class/driver"
if subpath.contains('/')
# get already enabled drivers of the same class
enabled_drivers = get_variable(class + '_drivers', [])
+ # default log prefix can be defined per class
+ if log_prefix == ''
+ # default log name is pmd.class.driver
+ log_prefix = 'pmd.' + class
+ endif
+
foreach drv:drivers
drv_path = join_paths(class, drv)
build = false
reason = 'explicitly disabled via build config'
endif
- else
- # pull in driver directory which should update all the local variables
- subdir(drv_path)
endif
if build
+ # pull in driver directory which should update all the local variables
+ subdir(drv_path)
+
# get dependency objs from strings
shared_deps = ext_deps
static_deps = ext_deps
foreach d:deps
+ if not build
+ break
+ endif
if not is_variable('shared_rte_' + d)
build = false
reason = 'missing internal dependency, "@0@"'.format(d)
enabled_drivers += name
lib_name = '_'.join(['rte', class, name])
+ cflags += '-DRTE_LOG_DEFAULT_LOGTYPE=' + '.'.join([log_prefix, name])
dpdk_conf.set(lib_name.to_upper(), 1)
dpdk_extra_ldflags += pkgconfig_extra_libs
include_directories: includes,
dependencies: static_deps,
c_args: cflags)
- objs += tmp_lib.extract_all_objects()
+ objs += tmp_lib.extract_all_objects(recursive: true)
sources = custom_target(out_filename,
command: [pmdinfo, tmp_lib.full_path(), '@OUTPUT@', pmdinfogen],
output: out_filename,