[v2,2/2] build: add drivers_install_subdir meson option
Checks
Commit Message
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>
---
meson.build | 10 ++++++++--
meson_options.txt | 2 ++
2 files changed, 10 insertions(+), 2 deletions(-)
Comments
On Tue, Oct 02, 2018 at 02:06:46PM +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>
> ---
> meson.build | 10 ++++++++--
> meson_options.txt | 2 ++
> 2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index 4bd04b9de3..9f7f17f7fe 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 == 'dpdk/pmds-XX.YY'
> + 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
Not sure I like this degree of hard-coding of paths. While meson doesn't
have a string replace function, we can still use "sed" via run_command to
perform some substitution, or else get a little creative using split if it
can be made work. That would allow us to put in e.g "<VERSION>" as a
generic placeholder in the text.
/Bruce
On Tue, 2018-10-02 at 15:28 +0100, Bruce Richardson wrote:
> On Tue, Oct 02, 2018 at 02:06:46PM +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>
> > ---
> > meson.build | 10 ++++++++--
> > meson_options.txt | 2 ++
> > 2 files changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/meson.build b/meson.build
> > index 4bd04b9de3..9f7f17f7fe 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 == 'dpdk/pmds-XX.YY'
> > + 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
>
> Not sure I like this degree of hard-coding of paths. While meson
> doesn't
> have a string replace function, we can still use "sed" via
> run_command to
> perform some substitution, or else get a little creative using split
> if it
> can be made work. That would allow us to put in e.g "<VERSION>" as a
> generic placeholder in the text.
>
> /Bruce
Do you mean for the "if pmd_subdir_opt == 'dpdk/pmds-XX.YY'" bit? I can
change that to "== 'dpdk/pmds-<VERSION>'" if you prefer?
On Tue, Oct 02, 2018 at 03:59:48PM +0100, Luca Boccassi wrote:
> On Tue, 2018-10-02 at 15:28 +0100, Bruce Richardson wrote:
> > On Tue, Oct 02, 2018 at 02:06:46PM +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>
> > > ---
> > > meson.build | 10 ++++++++--
> > > meson_options.txt | 2 ++
> > > 2 files changed, 10 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/meson.build b/meson.build
> > > index 4bd04b9de3..9f7f17f7fe 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 == 'dpdk/pmds-XX.YY'
> > > + 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
> >
> > Not sure I like this degree of hard-coding of paths. While meson
> > doesn't
> > have a string replace function, we can still use "sed" via
> > run_command to
> > perform some substitution, or else get a little creative using split
> > if it
> > can be made work. That would allow us to put in e.g "<VERSION>" as a
> > generic placeholder in the text.
> >
> > /Bruce
>
> Do you mean for the "if pmd_subdir_opt == 'dpdk/pmds-XX.YY'" bit? I can
> change that to "== 'dpdk/pmds-<VERSION>'" if you prefer?
>
Yes, though I was more thinking of:
"if pmd_subdir_opt.contains('<VERSION>')" ...
rather than matching on the whole string.
/Bruce
On Tue, 2018-10-02 at 16:19 +0100, Bruce Richardson wrote:
> On Tue, Oct 02, 2018 at 03:59:48PM +0100, Luca Boccassi wrote:
> > On Tue, 2018-10-02 at 15:28 +0100, Bruce Richardson wrote:
> > > On Tue, Oct 02, 2018 at 02:06:46PM +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>
> > > > ---
> > > > meson.build | 10 ++++++++--
> > > > meson_options.txt | 2 ++
> > > > 2 files changed, 10 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/meson.build b/meson.build
> > > > index 4bd04b9de3..9f7f17f7fe 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 == 'dpdk/pmds-XX.YY'
> > > > + 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
> > >
> > > Not sure I like this degree of hard-coding of paths. While meson
> > > doesn't
> > > have a string replace function, we can still use "sed" via
> > > run_command to
> > > perform some substitution, or else get a little creative using
> > > split
> > > if it
> > > can be made work. That would allow us to put in e.g "<VERSION>"
> > > as a
> > > generic placeholder in the text.
> > >
> > > /Bruce
> >
> > Do you mean for the "if pmd_subdir_opt == 'dpdk/pmds-XX.YY'" bit? I
> > can
> > change that to "== 'dpdk/pmds-<VERSION>'" if you prefer?
> >
>
> Yes, though I was more thinking of:
> "if pmd_subdir_opt.contains('<VERSION>')" ...
> rather than matching on the whole string.
>
> /Bruce
Ok, fixed in v3
@@ -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 == 'dpdk/pmds-XX.YY'
+ 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
@@ -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-XX.YY',
+ 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,