pkg = import('pkgconfig')
pkg_extra_cflags = ['-include', 'rte_config.h'] + machine_args
if is_freebsd
- pkg_extra_cflags += ['-D__BSD_VISIBLE']
+ pkg_extra_cflags += ['-D__BSD_VISIBLE']
endif
# When calling pkg-config --static --libs, pkg-config will always output the
pkg.generate(name: 'dpdk-libs',
- filebase: 'libdpdk-libs',
- description: '''Internal-only DPDK pkgconfig file. Not for direct use.
+ filebase: 'libdpdk-libs',
+ description: '''Internal-only DPDK pkgconfig file. Not for direct use.
Use libdpdk.pc instead of this file to query DPDK compile/link arguments''',
- version: meson.project_version(),
- subdirs: [get_option('include_subdir_arch'), '.'],
- extra_cflags: pkg_extra_cflags,
- libraries: ['-Wl,--as-needed'] + dpdk_libraries,
- libraries_private: dpdk_extra_ldflags)
+ version: meson.project_version(),
+ subdirs: [get_option('include_subdir_arch'), '.'],
+ extra_cflags: pkg_extra_cflags,
+ libraries: ['-Wl,--as-needed'] + dpdk_libraries,
+ libraries_private: dpdk_extra_ldflags)
+platform_flags = []
+if not is_windows
+ platform_flags += ['-Wl,--export-dynamic'] # ELF only
+endif
pkg.generate(name: 'DPDK', # main DPDK pkgconfig file
- filebase: 'libdpdk',
- version: meson.project_version(),
- description: '''The Data Plane Development Kit (DPDK).
+ filebase: 'libdpdk',
+ version: meson.project_version(),
+ description: '''The Data Plane Development Kit (DPDK).
Note that CFLAGS might contain an -march flag higher than typical baseline.
This is required for a number of static inline functions in the public headers.''',
- requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs
- # if libbsd is not enabled, then this is blank
- libraries_private: ['-Wl,--whole-archive'] +
- dpdk_drivers + dpdk_static_libraries +
- ['-Wl,--no-whole-archive']
+ requires: ['libdpdk-libs', libbsd], # may need libbsd for string funcs
+ # if libbsd is not enabled, then this is blank
+ libraries_private: ['-Wl,--whole-archive'] +
+ dpdk_drivers + dpdk_static_libraries +
+ ['-Wl,--no-whole-archive'] + platform_flags
)
# For static linking with dependencies as shared libraries,