# Defines the order of dependencies evaluation
subdirs = [
- 'common',
- 'bus',
- 'common/cnxk', # depends on bus.
- 'common/mlx5', # depends on bus.
- 'common/qat', # depends on bus.
- 'common/sfc_efx', # depends on bus.
- 'mempool', # depends on common and bus.
- 'net', # depends on common, bus, mempool
- 'raw', # depends on common, bus 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.
+ 'common',
+ 'bus',
+ 'common/cnxk', # depends on bus.
+ 'common/mlx5', # depends on bus.
+ '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, 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()
- disable_drivers += ',' + meson.get_cross_property('disable_drivers', '')
- enable_drivers += ',' + meson.get_cross_property('enable_drivers', '')
+ disable_drivers += ',' + meson.get_cross_property('disable_drivers', '')
+ enable_drivers += ',' + meson.get_cross_property('enable_drivers', '')
endif
# 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
default_cflags += ['-DALLOW_INTERNAL_API']
if cc.has_argument('-Wno-format-truncation')
- default_cflags += '-Wno-format-truncation'
+ default_cflags += '-Wno-format-truncation'
endif
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,