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

Reply via email to