[dpdk-dev] [PATCH] dpdk1.7.1 rte.app.mk add options not not build targerts

Maxim Uvarov maxim.uvarov at linaro.org
Tue Jun 9 17:29:21 CEST 2015


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 at 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.


More information about the dev mailing list