[dpdk-dev] mk: allow exec-env specific targets
Checks
Commit Message
Add a hook in generic rte.sdkbuild.mk file
to include exec-env specific targets.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
Useful in integrating some custom targets in nonstandard execution environments.
For example, a bare-metal-simulator exec execution environment may need
a target to run the dpdk applications.
---
mk/exec-env/bsdapp/rte.extra.mk | 30 ++++++++++++++++++++++++++++++
mk/exec-env/linuxapp/rte.extra.mk | 30 ++++++++++++++++++++++++++++++
mk/rte.sdkbuild.mk | 2 ++
3 files changed, 62 insertions(+)
create mode 100644 mk/exec-env/bsdapp/rte.extra.mk
create mode 100644 mk/exec-env/linuxapp/rte.extra.mk
Comments
06/06/2017 08:36, Jerin Jacob:
> Add a hook in generic rte.sdkbuild.mk file
> to include exec-env specific targets.
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---
> Useful in integrating some custom targets in nonstandard execution environments.
> For example, a bare-metal-simulator exec execution environment may need
> a target to run the dpdk applications.
> ---
This patch is just including an empty file.
Please explain how it can help with a real example.
-----Original Message-----
> Date: Tue, 06 Jun 2017 08:46:12 +0200
> From: Thomas Monjalon <thomas@monjalon.net>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] mk: allow exec-env specific targets
>
> 06/06/2017 08:36, Jerin Jacob:
> > Add a hook in generic rte.sdkbuild.mk file
> > to include exec-env specific targets.
> >
> > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > ---
> > Useful in integrating some custom targets in nonstandard execution environments.
> > For example, a bare-metal-simulator exec execution environment may need
> > a target to run the dpdk applications.
> > ---
>
> This patch is just including an empty file.
Do you like to add check for the file is present or not ? and if present,
invoke the file.
> Please explain how it can help with a real example.
We are evaluating on running DPDK on a nonstandard execution environment like
bare metal where I would to keep all my execution environment specific
change at following location. So that I can easy move around different
version of DPDK without merge conflict.
$(RTE_SDK)mk/exec-env/my-exec-env
$(RTE_SDK)lib/librte_eal/my-exec-env
I believe, The existing target like "exec-env-appinstall" in mk/exec-env/linuxapp/rte.app.mk,
solves the same purpose.
06/06/2017 09:02, Jerin Jacob:
> From: Thomas Monjalon <thomas@monjalon.net>
> > 06/06/2017 08:36, Jerin Jacob:
> > > Add a hook in generic rte.sdkbuild.mk file
> > > to include exec-env specific targets.
> > >
> > > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > > ---
> > > Useful in integrating some custom targets in nonstandard execution environments.
> > > For example, a bare-metal-simulator exec execution environment may need
> > > a target to run the dpdk applications.
> > > ---
> >
> > This patch is just including an empty file.
>
> Do you like to add check for the file is present or not ? and if present,
> invoke the file.
The dash prefixing does the check:
-include
> > Please explain how it can help with a real example.
>
> We are evaluating on running DPDK on a nonstandard execution environment like
> bare metal where I would to keep all my execution environment specific
> change at following location. So that I can easy move around different
> version of DPDK without merge conflict.
>
> $(RTE_SDK)mk/exec-env/my-exec-env
> $(RTE_SDK)lib/librte_eal/my-exec-env
>
> I believe, The existing target like "exec-env-appinstall" in mk/exec-env/linuxapp/rte.app.mk,
> solves the same purpose.
I do not understand.
If you want to add a new environment, why not just adding it?
-----Original Message-----
> Date: Tue, 06 Jun 2017 09:16:34 +0200
> From: Thomas Monjalon <thomas@monjalon.net>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] mk: allow exec-env specific targets
>
> 06/06/2017 09:02, Jerin Jacob:
> > From: Thomas Monjalon <thomas@monjalon.net>
> > > 06/06/2017 08:36, Jerin Jacob:
> > > > Add a hook in generic rte.sdkbuild.mk file
> > > > to include exec-env specific targets.
> > > >
> > > > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > > > ---
> > > > Useful in integrating some custom targets in nonstandard execution environments.
> > > > For example, a bare-metal-simulator exec execution environment may need
> > > > a target to run the dpdk applications.
> > > > ---
> > >
> > > This patch is just including an empty file.
> >
> > Do you like to add check for the file is present or not ? and if present,
> > invoke the file.
>
> The dash prefixing does the check:
> -include
OK
>
> > > Please explain how it can help with a real example.
> >
> > We are evaluating on running DPDK on a nonstandard execution environment like
> > bare metal where I would to keep all my execution environment specific
> > change at following location. So that I can easy move around different
> > version of DPDK without merge conflict.
> >
> > $(RTE_SDK)mk/exec-env/my-exec-env
> > $(RTE_SDK)lib/librte_eal/my-exec-env
> >
> > I believe, The existing target like "exec-env-appinstall" in mk/exec-env/linuxapp/rte.app.mk,
> > solves the same purpose.
>
> I do not understand.
> If you want to add a new environment, why not just adding it?
I do not understand it either. In exiting makefile infrastructure,
How do you add an exec environment specific target(s) with out changing
the common code?
>
-----Original Message-----
> Date: Tue, 6 Jun 2017 13:20:42 +0530
> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> To: Thomas Monjalon <thomas@monjalon.net>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] mk: allow exec-env specific targets
> User-Agent: Mutt/1.8.3 (2017-05-23)
>
> -----Original Message-----
> > Date: Tue, 06 Jun 2017 09:16:34 +0200
> > From: Thomas Monjalon <thomas@monjalon.net>
> > To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] mk: allow exec-env specific targets
> >
> > 06/06/2017 09:02, Jerin Jacob:
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > 06/06/2017 08:36, Jerin Jacob:
> > > > > Add a hook in generic rte.sdkbuild.mk file
> > > > > to include exec-env specific targets.
> > > > >
> > > > > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > > > > ---
> > > > > Useful in integrating some custom targets in nonstandard execution environments.
> > > > > For example, a bare-metal-simulator exec execution environment may need
> > > > > a target to run the dpdk applications.
> > > > > ---
> > > >
> > > > This patch is just including an empty file.
> > >
> > > Do you like to add check for the file is present or not ? and if present,
> > > invoke the file.
> >
> > The dash prefixing does the check:
> > -include
>
> OK
>
> >
> > > > Please explain how it can help with a real example.
> > >
> > > We are evaluating on running DPDK on a nonstandard execution environment like
> > > bare metal where I would to keep all my execution environment specific
> > > change at following location. So that I can easy move around different
> > > version of DPDK without merge conflict.
> > >
> > > $(RTE_SDK)mk/exec-env/my-exec-env
> > > $(RTE_SDK)lib/librte_eal/my-exec-env
> > >
> > > I believe, The existing target like "exec-env-appinstall" in mk/exec-env/linuxapp/rte.app.mk,
> > > solves the same purpose.
> >
> > I do not understand.
> > If you want to add a new environment, why not just adding it?
>
> I do not understand it either. In exiting makefile infrastructure,
> How do you add an exec environment specific target(s) with out changing
> the common code?
As disucssed in IRC, I will send the v2 with following changes,
- Change mk/exec-env/$(RTE_EXEC_ENV)/rte.extra.mk to
mk/exec-env/$(RTE_EXEC_ENV)/rte.custom.mk
- Remove empty files and include through -include
>
> >
06/06/2017 11:05, Jerin Jacob:
> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > From: Thomas Monjalon <thomas@monjalon.net>
> > > 06/06/2017 09:02, Jerin Jacob:
> > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > > Please explain how it can help with a real example.
> > > >
> > > > We are evaluating on running DPDK on a nonstandard execution environment like
> > > > bare metal where I would to keep all my execution environment specific
> > > > change at following location. So that I can easy move around different
> > > > version of DPDK without merge conflict.
> > > >
> > > > $(RTE_SDK)mk/exec-env/my-exec-env
> > > > $(RTE_SDK)lib/librte_eal/my-exec-env
> > > >
> > > > I believe, The existing target like "exec-env-appinstall" in mk/exec-env/linuxapp/rte.app.mk,
> > > > solves the same purpose.
> > >
> > > I do not understand.
> > > If you want to add a new environment, why not just adding it?
> >
> > I do not understand it either. In exiting makefile infrastructure,
> > How do you add an exec environment specific target(s) with out changing
> > the common code?
>
> As disucssed in IRC, I will send the v2 with following changes,
> - Change mk/exec-env/$(RTE_EXEC_ENV)/rte.extra.mk to
> mk/exec-env/$(RTE_EXEC_ENV)/rte.custom.mk
> - Remove empty files and include through -include
It will help defining some new local environments.
However, in the general case, it is better to upstream environment changes
and make everybody able to use it.
new file mode 100644
@@ -0,0 +1,30 @@
+# BSD LICENSE
+#
+# Copyright(c) 2017 Cavium. All rights reserved.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Cavium nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
new file mode 100644
@@ -0,0 +1,30 @@
+# BSD LICENSE
+#
+# Copyright(c) 2017 Cavium. All rights reserved.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Cavium nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -38,6 +38,8 @@ else
include $(RTE_SDK)/mk/rte.vars.mk
endif
+include $(RTE_SDK)/mk/exec-env/$(RTE_EXEC_ENV)/rte.extra.mk
+
buildtools: | lib
drivers: | lib buildtools
app: | lib buildtools drivers