Currently kernel modules are installed into /usr/src/ instead of /lib/modules when meson build system is used. This patch fixes that.
Old build option "kernel_dir" is changed to "kernel_version". Signed-off-by: Igor Ryzhov <iryz...@nfware.com> --- kernel/linux/igb_uio/meson.build | 2 +- kernel/linux/kni/meson.build | 2 +- kernel/linux/meson.build | 16 +++++++++------- meson_options.txt | 4 ++-- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build index f5a9d5ccf..5093610e3 100644 --- a/kernel/linux/igb_uio/meson.build +++ b/kernel/linux/igb_uio/meson.build @@ -16,5 +16,5 @@ custom_target('igb_uio', 'modules'], depends: mkfile, install: true, - install_dir: kernel_dir + '/../extra/dpdk', + install_dir: kernel_install_dir + '/extra/dpdk', build_by_default: get_option('enable_kmods')) diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build index a9f48b0e6..8a902d2ed 100644 --- a/kernel/linux/kni/meson.build +++ b/kernel/linux/kni/meson.build @@ -25,5 +25,5 @@ custom_target('rte_kni', depends: kni_mkfile, console: true, install: true, - install_dir: kernel_dir + '/../extra/dpdk', + install_dir: kernel_install_dir + '/extra/dpdk', build_by_default: get_option('enable_kmods')) diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build index a37c95752..5a9303b33 100644 --- a/kernel/linux/meson.build +++ b/kernel/linux/meson.build @@ -3,19 +3,21 @@ subdirs = ['igb_uio', 'kni'] -# if we are cross-compiling we need kernel_dir specified -if get_option('kernel_dir') == '' and meson.is_cross_build() - warning('Need "kernel_dir" option for kmod compilation when cross-compiling') +# if we are cross-compiling we need kernel_version specified +if get_option('kernel_version') == '' and meson.is_cross_build() + warning('Need "kernel_version" option for kmod compilation when cross-compiling') subdir_done() endif -kernel_dir = get_option('kernel_dir') -if kernel_dir == '' - # use default path for native builds +kernel_version = get_option('kernel_version') +if kernel_version == '' + # use default version for native builds kernel_version = run_command('uname', '-r').stdout().strip() - kernel_dir = '/lib/modules/' + kernel_version + '/build' endif +kernel_dir = '/lib/modules/' + kernel_version + '/build' +kernel_install_dir = '/lib/modules/' + kernel_version + # test running make in kernel directory, using "make kernelversion" make_returncode = run_command('make', '-sC', kernel_dir, 'kernelversion').returncode() diff --git a/meson_options.txt b/meson_options.txt index 16d9f92c6..5ca50d8dc 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -14,8 +14,8 @@ option('ibverbs_link', type: 'combo', choices : ['shared', 'dlopen'], value: 'sh description: 'Linkage method (shared/dlopen) for Mellanox PMDs with ibverbs dependencies.') option('include_subdir_arch', type: 'string', value: '', description: 'subdirectory where to install arch-dependent headers') -option('kernel_dir', type: 'string', value: '', - description: 'path to the kernel for building kernel modules, they will be installed in $DEST_DIR/$kernel_dir/../extra/dpdk') +option('kernel_version', type: 'string', value: '', + description: 'kernel version for building kernel modules') option('lib_musdk_dir', type: 'string', value: '', description: 'path to the MUSDK library installation directory') option('machine', type: 'string', value: 'native', -- 2.21.0