DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts
@ 2015-06-09 10:15 Maxim Uvarov
  2015-06-09 12:05 ` Olivier MATZ
  0 siblings, 1 reply; 5+ messages in thread
From: Maxim Uvarov @ 2015-06-09 10:15 UTC (permalink / raw)
  To: dev

Inherit build varibles only so that this file can be included
from other projects.

Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
---
 mk/rte.app.mk | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 34dff2a..b75925d 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -222,6 +222,7 @@ endif # ifeq ($(NO_AUTOLIBS),)
 
 LDLIBS += $(CPU_LDLIBS)
 
+ifneq ($(DPRK_APP_MK_SKIP_BUILD_TARGETS),1)
 .PHONY: all
 all: install
 
@@ -232,6 +233,7 @@ _postinstall: build
 
 .PHONY: build
 build: _postbuild
+endif
 
 exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
 
@@ -306,6 +308,7 @@ $(RTE_OUTPUT)/app/$(APP).map: $(APP)
 	@[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
 	$(Q)cp -f $(APP).map $(RTE_OUTPUT)/app
 
+ifneq ($(DPRK_APP_MK_SKIP_BUILD_TARGETS), 1)
 #
 # Clean all generated files
 #
@@ -317,7 +320,7 @@ clean: _postclean
 doclean:
 	$(Q)rm -rf $(APP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
 	  $(CMDS-all) $(INSTALL-FILES-all) .$(APP).cmd
-
+endif
 
 include $(RTE_SDK)/mk/internal/rte.compile-post.mk
 include $(RTE_SDK)/mk/internal/rte.install-post.mk
-- 
1.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts
  2015-06-09 10:15 [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts Maxim Uvarov
@ 2015-06-09 12:05 ` Olivier MATZ
  2015-06-09 12:59   ` Maxim Uvarov
  0 siblings, 1 reply; 5+ messages in thread
From: Olivier MATZ @ 2015-06-09 12:05 UTC (permalink / raw)
  To: Maxim Uvarov, dev

Hello Maxim,

On 06/09/2015 12:15 PM, Maxim Uvarov wrote:
> Inherit build varibles only so that this file can be included
> from other projects.
>
> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>

Can you detail a bit more what you want to do?
Why do you need to include rte.app.mk? This file is
internal to the dpdk framework.

By the way, the title is not understandable:
- why dpdk1.7.1 ?
- targerts -> targets
- not not ?

Regards,
Olivier


> ---
>   mk/rte.app.mk | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/mk/rte.app.mk b/mk/rte.app.mk
> index 34dff2a..b75925d 100644
> --- a/mk/rte.app.mk
> +++ b/mk/rte.app.mk
> @@ -222,6 +222,7 @@ endif # ifeq ($(NO_AUTOLIBS),)
>
>   LDLIBS += $(CPU_LDLIBS)
>
> +ifneq ($(DPRK_APP_MK_SKIP_BUILD_TARGETS),1)
>   .PHONY: all
>   all: install
>
> @@ -232,6 +233,7 @@ _postinstall: build
>
>   .PHONY: build
>   build: _postbuild
> +endif
>
>   exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
>
> @@ -306,6 +308,7 @@ $(RTE_OUTPUT)/app/$(APP).map: $(APP)
>   	@[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
>   	$(Q)cp -f $(APP).map $(RTE_OUTPUT)/app
>
> +ifneq ($(DPRK_APP_MK_SKIP_BUILD_TARGETS), 1)
>   #
>   # Clean all generated files
>   #
> @@ -317,7 +320,7 @@ clean: _postclean
>   doclean:
>   	$(Q)rm -rf $(APP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
>   	  $(CMDS-all) $(INSTALL-FILES-all) .$(APP).cmd
> -
> +endif
>
>   include $(RTE_SDK)/mk/internal/rte.compile-post.mk
>   include $(RTE_SDK)/mk/internal/rte.install-post.mk
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts
  2015-06-09 12:05 ` Olivier MATZ
@ 2015-06-09 12:59   ` Maxim Uvarov
  2015-06-09 14:37     ` Olivier MATZ
  0 siblings, 1 reply; 5+ messages in thread
From: Maxim Uvarov @ 2015-06-09 12:59 UTC (permalink / raw)
  To: Olivier MATZ, dev

On 06/09/15 15:05, Olivier MATZ wrote:
> Hello Maxim,
>
> On 06/09/2015 12:15 PM, Maxim Uvarov wrote:
>> Inherit build varibles only so that this file can be included
>> from other projects.
>>
>> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
>
> Can you detail a bit more what you want to do?
> Why do you need to include rte.app.mk? This file is
> internal to the dpdk framework.
>
> By the way, the title is not understandable:
> - why dpdk1.7.1 ?
> - targerts -> targets
> - not not ?
>
> Regards,
> Olivier

Sorry it was quick patch, some typos there. I intended to discuss the 
idea of what I need and might it it's useful for others.
I did ODP implementation with dpdk as back end. And staid on v1.7.1. But 
that patch should be good for the latest git,
if not I can update it.

So my environment is: I build library which calls dpdk functions. That 
library is used to build applications. I need to steal CFLAGS, LDFLAGS,
and build script from dpdk for my library and example apps. So I just 
point where dpdk is and my library build system should inherit the same
env which dpdk used. One reason is optimization and second reason is to 
compile in dpdk PMD drivers the same way as dpdk does that.

So in my Makefile I do: include $dpdk/mk/rte.app.mk

Is that needed for somebody else?

Thanks,
Maxim.

>
>
>> ---
>>   mk/rte.app.mk | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/mk/rte.app.mk b/mk/rte.app.mk
>> index 34dff2a..b75925d 100644
>> --- a/mk/rte.app.mk
>> +++ b/mk/rte.app.mk
>> @@ -222,6 +222,7 @@ endif # ifeq ($(NO_AUTOLIBS),)
>>
>>   LDLIBS += $(CPU_LDLIBS)
>>
>> +ifneq ($(DPRK_APP_MK_SKIP_BUILD_TARGETS),1)
>>   .PHONY: all
>>   all: install
>>
>> @@ -232,6 +233,7 @@ _postinstall: build
>>
>>   .PHONY: build
>>   build: _postbuild
>> +endif
>>
>>   exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
>>
>> @@ -306,6 +308,7 @@ $(RTE_OUTPUT)/app/$(APP).map: $(APP)
>>       @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
>>       $(Q)cp -f $(APP).map $(RTE_OUTPUT)/app
>>
>> +ifneq ($(DPRK_APP_MK_SKIP_BUILD_TARGETS), 1)
>>   #
>>   # Clean all generated files
>>   #
>> @@ -317,7 +320,7 @@ clean: _postclean
>>   doclean:
>>       $(Q)rm -rf $(APP) $(OBJS-all) $(DEPS-all) $(DEPSTMP-all) \
>>         $(CMDS-all) $(INSTALL-FILES-all) .$(APP).cmd
>> -
>> +endif
>>
>>   include $(RTE_SDK)/mk/internal/rte.compile-post.mk
>>   include $(RTE_SDK)/mk/internal/rte.install-post.mk
>>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts
  2015-06-09 12:59   ` Maxim Uvarov
@ 2015-06-09 14:37     ` Olivier MATZ
  2015-06-09 15:29       ` Maxim Uvarov
  0 siblings, 1 reply; 5+ messages in thread
From: Olivier MATZ @ 2015-06-09 14:37 UTC (permalink / raw)
  To: Maxim Uvarov, dev

Hi Maxim,

On 06/09/2015 02:59 PM, Maxim Uvarov wrote:
> On 06/09/15 15:05, Olivier MATZ wrote:
>> Hello Maxim,
>>
>> On 06/09/2015 12:15 PM, Maxim Uvarov wrote:
>>> Inherit build varibles only so that this file can be included
>>> from other projects.
>>>
>>> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
>>
>> Can you detail a bit more what you want to do?
>> Why do you need to include rte.app.mk? This file is
>> internal to the dpdk framework.
>>
>> By the way, the title is not understandable:
>> - why dpdk1.7.1 ?
>> - targerts -> targets
>> - not not ?
>>
>> Regards,
>> Olivier
>
> Sorry it was quick patch, some typos there. I intended to discuss the
> idea of what I need and might it it's useful for others.
> I did ODP implementation with dpdk as back end. And staid on v1.7.1. But
> that patch should be good for the latest git,
> if not I can update it.
>
> So my environment is: I build library which calls dpdk functions. That
> library is used to build applications. I need to steal CFLAGS, LDFLAGS,
> and build script from dpdk for my library and example apps. So I just
> point where dpdk is and my library build system should inherit the same
> env which dpdk used. One reason is optimization and second reason is to
> compile in dpdk PMD drivers the same way as dpdk does that.
>
> So in my Makefile I do: include $dpdk/mk/rte.app.mk
>
> Is that needed for somebody else?

Maybe you can use rte.extapp.mk and rte.extlib.mk instead?

There is no example for rte.extlib.mk, but it works the same
as rte.extapp.mk. You can start from an example in dpdk/examples
directory (for instance skeleton):
- remove the main()
- change "APP = basicfwd" to "LIB = basicfwd.a"
- change "include $(RTE_SDK)/mk/rte.extapp.mk" to
   "include $(RTE_SDK)/mk/rte.extlib.mk"

Then:
   cd examples/skeleton
   make RTE_SDK=/path/to/dpdk \
     RTE_TARGET=x86_64-native-linuxapp-gcc \
     O=/path/to/dstdir

This should generate a static lib that you can use in another
application example.

If you cannot use this model, another solution would be to generate
a pkg-config file in dpdk framework that could be used by other
build frameworks.

Regards,
Olivier

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts
  2015-06-09 14:37     ` Olivier MATZ
@ 2015-06-09 15:29       ` Maxim Uvarov
  0 siblings, 0 replies; 5+ messages in thread
From: Maxim Uvarov @ 2015-06-09 15:29 UTC (permalink / raw)
  To: Olivier MATZ, dev

On 06/09/15 17:37, Olivier MATZ wrote:
> Hi Maxim,
>
> On 06/09/2015 02:59 PM, Maxim Uvarov wrote:
>> On 06/09/15 15:05, Olivier MATZ wrote:
>>> Hello Maxim,
>>>
>>> On 06/09/2015 12:15 PM, Maxim Uvarov wrote:
>>>> Inherit build varibles only so that this file can be included
>>>> from other projects.
>>>>
>>>> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
>>>
>>> Can you detail a bit more what you want to do?
>>> Why do you need to include rte.app.mk? This file is
>>> internal to the dpdk framework.
>>>
>>> By the way, the title is not understandable:
>>> - why dpdk1.7.1 ?
>>> - targerts -> targets
>>> - not not ?
>>>
>>> Regards,
>>> Olivier
>>
>> Sorry it was quick patch, some typos there. I intended to discuss the
>> idea of what I need and might it it's useful for others.
>> I did ODP implementation with dpdk as back end. And staid on v1.7.1. But
>> that patch should be good for the latest git,
>> if not I can update it.
>>
>> So my environment is: I build library which calls dpdk functions. That
>> library is used to build applications. I need to steal CFLAGS, LDFLAGS,
>> and build script from dpdk for my library and example apps. So I just
>> point where dpdk is and my library build system should inherit the same
>> env which dpdk used. One reason is optimization and second reason is to
>> compile in dpdk PMD drivers the same way as dpdk does that.
>>
>> So in my Makefile I do: include $dpdk/mk/rte.app.mk
>>
>> Is that needed for somebody else?
>
> Maybe you can use rte.extapp.mk and rte.extlib.mk instead?
>
> There is no example for rte.extlib.mk, but it works the same
> as rte.extapp.mk. You can start from an example in dpdk/examples
> directory (for instance skeleton):
> - remove the main()
> - change "APP = basicfwd" to "LIB = basicfwd.a"
> - change "include $(RTE_SDK)/mk/rte.extapp.mk" to
>   "include $(RTE_SDK)/mk/rte.extlib.mk"
>
> Then:
>   cd examples/skeleton
>   make RTE_SDK=/path/to/dpdk \
>     RTE_TARGET=x86_64-native-linuxapp-gcc \
>     O=/path/to/dstdir
>
> This should generate a static lib that you can use in another
> application example.
>
> If you cannot use this model, another solution would be to generate
> a pkg-config file in dpdk framework that could be used by other
> build frameworks.
>
> Regards,
> Olivier
>

mk/rte.extlib.mk also references to mk/rte.lib.mk which has all: target.
And as soon I will include that Makefile it will do make all first. But 
I need only
cflags and ldflags.

To link pmds we did that hack:
https://git.linaro.org/lng/odp-dpdk.git/commitdiff/9e41f167a8f44b74af6a1e1ffe00dc6d305ac8a4?hp=ac1789bfe9ceb6bbe04b6455f996680a20441813
Which mostly solved problem. But I would add sse and other cflags 
especially for inline functions to or link.

Will take a look at examples/skeleton. Before I looked only to 1.7.1 and 
there is no such example. Looks like it appeared later.

Thank you,
Maxim.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-06-09 15:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-09 10:15 [dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts Maxim Uvarov
2015-06-09 12:05 ` Olivier MATZ
2015-06-09 12:59   ` Maxim Uvarov
2015-06-09 14:37     ` Olivier MATZ
2015-06-09 15:29       ` Maxim Uvarov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).