[OpenWrt-Devel] How to handle multiple providers?

Alexandru Ardelean ardeleanalex at gmail.com
Fri Jan 23 11:07:43 EST 2015


I don't think you need to explicitly include the .config file [in case
you're doing that].
Running the build should create those vars cleanly.

On Fri, Jan 23, 2015 at 2:53 PM, Mats Karrman <mats.dev.list at gmail.com>
wrote:

>  Thanks for your help!
>
> I was actually working on something similar to your (2), using CONFIG_
> variables but there were some trouble with the logic behind including the
> .config file and then also, all string options are exported with "quotes"
> around them and that messed up the DEPENDENCY declaration.
>
> BR // Mats
>
>
> On 2015-01-23 08:18, Alexandru Ardelean wrote:
>
>   Well, you need to specifiy Ax in the DEPENDS section of B.
>  Since there are 3 Ax, you can do it 2 ways:
>
> 1) Create Bx (x = 1-3) packages; B1 depends on A1, B2 depends on A2, B3
> depends on A3; so, if you select the correct Bx, the correct Ax will also
> get built.
>  You can also use build variants to keep Bx in a single Makefile; you can
> check the  package/ncurses/Makefile for hints.
>  The build variants does not seem too popular, but you can try it.
>
> 2) In the Makefile of B you can do a "dynamic" DEPENDS.
> Before the package definition (i.e.  define Package/B ) you can add a
> A_DEPENDS variable.
>  You can do something like:
> ifeq ($(A_DEPENDS),)
>     ifeq ($(CONFIG_A1),y)
>          A_DEPENDS := A1
>     endif
>  endif
>  ifeq ($(A_DEPENDS),)
>    ifeq ($(CONFIG_A2),y)
>          A_DEPENDS := A2
>     endif
>  endif
>  ifeq ($(A_DEPENDS),)
>    ifeq ($(CONFIG_A3),y)
>          A_DEPENDS := A3
>     endif
>  endif
>  A_DEPENDS should equal to either A1, A2 or A3, if either is selected.
> Note that CONFIG_Ax is as defined in the .config file.
>  Then
> define Package/B
>    DEPENDS:= ............ $(A_DEPENDS)
>  endef
>
>  If I look at this approach, it does what you asked for.
> But all in all, I would say there would be a cleaner approach if Ax and B
> are known.
>
>  If the assumption would be that Ax are similar packages (or variants of
> a base A), then I'd make a single package A, and define some options to it.
>  Based on those options A would be a variation of type Ax (x = 1 - 3).
>  Then
>  define Package/B
>   DEPENDS:= ............ A
>  endef
>
>  And you can configure A with whatever options you need.
>
>
> On Thu, Jan 22, 2015 at 8:34 PM, Mats Karrman <mats.dev.list at gmail.com>
> wrote:
>
>> Hi,
>>
>> I'm struggling with a problem and I can't really get it to work as I want.
>>
>> Say you have 3 packages, A1, A2 and A3, that all provide the include file
>> "f.h".
>> I also have package B that build-time depends on "f.h".
>>
>> I will enable either A1, A2 or A3 in the .config for a build but how do I
>> make
>> OpenWRT understand that it cannot build B until either of Ax is built?
>>
>> I'd be ever so greatfull for some good hints on how to solve this.
>>
>> (and oh, I'm on "Attitude-Adjustment")
>>
>> Best regards,
>> Mats
>> _______________________________________________
>> openwrt-devel mailing list
>> openwrt-devel at lists.openwrt.org
>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20150123/b935745e/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list