[v3,2/2] build: add drivers_install_subdir meson option

Message ID 20181002152556.17041-2-bluca@debian.org (mailing list archive)
State Superseded, archived
Headers
Series [v3,1/2] build: change default PMD installation subdir to dpdk/pmds-XX.YY |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Luca Boccassi Oct. 2, 2018, 3:25 p.m. UTC
  Allow users and packagers to override the default dpdk/drivers
subdirectory where the PMDs get installed under $lib.

Signed-off-by: Luca Boccassi <bluca@debian.org>
---
v3: changed default value to <VERSION> and use string.contains rather
    than exact equivalence

 meson.build       | 10 ++++++++--
 meson_options.txt |  2 ++
 2 files changed, 10 insertions(+), 2 deletions(-)
  

Comments

Bruce Richardson Oct. 2, 2018, 3:58 p.m. UTC | #1
On Tue, Oct 02, 2018 at 04:25:56PM +0100, Luca Boccassi wrote:
> Allow users and packagers to override the default dpdk/drivers
> subdirectory where the PMDs get installed under $lib.
> 
> Signed-off-by: Luca Boccassi <bluca@debian.org>
> ---
> v3: changed default value to <VERSION> and use string.contains rather
>     than exact equivalence
> 
>  meson.build       | 10 ++++++++--
>  meson_options.txt |  2 ++
>  2 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index 4bd04b9de3..2e3cbac587 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -20,8 +20,14 @@ dpdk_extra_ldflags = []
>  pver = meson.project_version().split('.')
>  major_version = '@0@.@1@'.format(pver.get(0), pver.get(1))
>  
> -driver_install_path = join_paths(get_option('libdir'), 'dpdk',
> -	'pmds-' + major_version)
> +pmd_subdir_opt = get_option('drivers_install_subdir')
> +if pmd_subdir_opt.contains('<VERSION>')
> +	driver_install_path = join_paths(get_option('libdir'),
> +		'dpdk', 'pmds-' + major_version)
> +else
> +	driver_install_path = join_paths(get_option('libdir'),
> +		pmd_subdir_opt)
> +endif
>  eal_pmd_path = join_paths(get_option('prefix'), driver_install_path)
>  

The diff (to your patch) below demonstrates more of what I had in mind :-)
Basically do a replace of '<VERSION>' with the version number, leaving the
remaining string unchanged.

/Bruce

diff --git a/meson.build b/meson.build
index 2e3cbac58..11697861c 100644
--- a/meson.build
+++ b/meson.build
@@ -22,12 +22,9 @@ major_version = '@0@.@1@'.format(pver.get(0), pver.get(1))
 
 pmd_subdir_opt = get_option('drivers_install_subdir')
 if pmd_subdir_opt.contains('<VERSION>')
-	driver_install_path = join_paths(get_option('libdir'),
-		'dpdk', 'pmds-' + major_version)
-else
-	driver_install_path = join_paths(get_option('libdir'),
-		pmd_subdir_opt)
+	pmd_subdir_opt = major_version.join(pmd_subdir_opt.split('<VERSION>'))
 endif
+driver_install_path = join_paths(get_option('libdir'), pmd_subdir_opt)
 eal_pmd_path = join_paths(get_option('prefix'), driver_install_path)
 
 # configure the build, and make sure configs here and in config folder are
  
Luca Boccassi Oct. 2, 2018, 4:21 p.m. UTC | #2
On Tue, 2018-10-02 at 16:58 +0100, Bruce Richardson wrote:
> On Tue, Oct 02, 2018 at 04:25:56PM +0100, Luca Boccassi wrote:
> > Allow users and packagers to override the default dpdk/drivers
> > subdirectory where the PMDs get installed under $lib.
> > 
> > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > ---
> > v3: changed default value to <VERSION> and use string.contains
> > rather
> >     than exact equivalence
> > 
> >  meson.build       | 10 ++++++++--
> >  meson_options.txt |  2 ++
> >  2 files changed, 10 insertions(+), 2 deletions(-)
> > 
> > diff --git a/meson.build b/meson.build
> > index 4bd04b9de3..2e3cbac587 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -20,8 +20,14 @@ dpdk_extra_ldflags = []
> >  pver = meson.project_version().split('.')
> >  major_version = '@0@.@1@'.format(pver.get(0), pver.get(1))
> >  
> > -driver_install_path = join_paths(get_option('libdir'), 'dpdk',
> > -	'pmds-' + major_version)
> > +pmd_subdir_opt = get_option('drivers_install_subdir')
> > +if pmd_subdir_opt.contains('<VERSION>')
> > +	driver_install_path = join_paths(get_option('libdir'),
> > +		'dpdk', 'pmds-' + major_version)
> > +else
> > +	driver_install_path = join_paths(get_option('libdir'),
> > +		pmd_subdir_opt)
> > +endif
> >  eal_pmd_path = join_paths(get_option('prefix'),
> > driver_install_path)
> >  
> 
> The diff (to your patch) below demonstrates more of what I had in
> mind :-)
> Basically do a replace of '<VERSION>' with the version number,
> leaving the
> remaining string unchanged.
> 
> /Bruce
> 
> diff --git a/meson.build b/meson.build
> index 2e3cbac58..11697861c 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -22,12 +22,9 @@ major_version = '@0@.@1@'.format(pver.get(0),
> pver.get(1))
>  
>  pmd_subdir_opt = get_option('drivers_install_subdir')
>  if pmd_subdir_opt.contains('<VERSION>')
> -	driver_install_path = join_paths(get_option('libdir'),
> -		'dpdk', 'pmds-' + major_version)
> -else
> -	driver_install_path = join_paths(get_option('libdir'),
> -		pmd_subdir_opt)
> +	pmd_subdir_opt =
> major_version.join(pmd_subdir_opt.split('<VERSION>'))
>  endif
> +driver_install_path = join_paths(get_option('libdir'),
> pmd_subdir_opt)
>  eal_pmd_path = join_paths(get_option('prefix'), driver_install_path)
>  
>  # configure the build, and make sure configs here and in config
> folder are

Ok, pushed in v4
  

Patch

diff --git a/meson.build b/meson.build
index 4bd04b9de3..2e3cbac587 100644
--- a/meson.build
+++ b/meson.build
@@ -20,8 +20,14 @@  dpdk_extra_ldflags = []
 pver = meson.project_version().split('.')
 major_version = '@0@.@1@'.format(pver.get(0), pver.get(1))
 
-driver_install_path = join_paths(get_option('libdir'), 'dpdk',
-	'pmds-' + major_version)
+pmd_subdir_opt = get_option('drivers_install_subdir')
+if pmd_subdir_opt.contains('<VERSION>')
+	driver_install_path = join_paths(get_option('libdir'),
+		'dpdk', 'pmds-' + major_version)
+else
+	driver_install_path = join_paths(get_option('libdir'),
+		pmd_subdir_opt)
+endif
 eal_pmd_path = join_paths(get_option('prefix'), driver_install_path)
 
 # configure the build, and make sure configs here and in config folder are
diff --git a/meson_options.txt b/meson_options.txt
index d14bde892d..10b5416151 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,7 @@ 
 option('allow_invalid_socket_id', type: 'boolean', value: false,
 	description: 'allow out-of-range NUMA socket id\'s for platforms that don\'t report the value correctly')
+option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
+	description: 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.')
 option('enable_driver_mlx_glue', type: 'boolean', value: false,
 	description: 'Enable glue library for Mellanox PMDs')
 option('enable_kmods', type: 'boolean', value: true,