* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
@ 2015-11-05 7:28 Nishanth Menon
2015-11-05 7:32 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-05 7:28 UTC (permalink / raw)
To: u-boot
When the vendor common libraries exists, then board should be able to
reference headers located there, rather than having to do weird logic
such as '#include "../common/xyz.h"'.
Signed-off-by: Nishanth Menon <nm@ti.com>
---
Makefile | 1 +
board/ti/am57xx/board.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 3c21f8ddf9e9..75d5ea802dfd 100644
--- a/Makefile
+++ b/Makefile
@@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
# U-Boot objects....order is important (i.e. start must be first)
HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
+UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
libs-y += lib/
libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-05 7:28 [U-Boot] [PATCH] Makefile: Include vendor common library in include search path Nishanth Menon
@ 2015-11-05 7:32 ` Nishanth Menon
2015-11-06 0:15 ` Simon Glass
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-05 7:32 UTC (permalink / raw)
To: u-boot
On 11/05/2015 01:28 AM, Nishanth Menon wrote:
> When the vendor common libraries exists, then board should be able to
> reference headers located there, rather than having to do weird logic
> such as '#include "../common/xyz.h"'.
>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>
> Makefile | 1 +
> board/ti/am57xx/board.c | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
apply, and will wait to repost in case of further comments.
>
> diff --git a/Makefile b/Makefile
> index 3c21f8ddf9e9..75d5ea802dfd 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
> # U-Boot objects....order is important (i.e. start must be first)
>
> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
>
> libs-y += lib/
> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>
--
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-05 7:32 ` Nishanth Menon
@ 2015-11-06 0:15 ` Simon Glass
2015-11-06 3:30 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2015-11-06 0:15 UTC (permalink / raw)
To: u-boot
Hi,
On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
>> When the vendor common libraries exists, then board should be able to
>> reference headers located there, rather than having to do weird logic
>> such as '#include "../common/xyz.h"'.
>>
>> Signed-off-by: Nishanth Menon <nm@ti.com>
>> ---
>>
>> Makefile | 1 +
>> board/ti/am57xx/board.c | 2 +-
>> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
> apply, and will wait to repost in case of further comments.
>
>>
>> diff --git a/Makefile b/Makefile
>> index 3c21f8ddf9e9..75d5ea802dfd 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>> # U-Boot objects....order is important (i.e. start must be first)
>>
>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
>>
>> libs-y += lib/
>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>
>
I suppose this is OK. But it might be hard to figure out where a
header file is coming from. I wonder if we could make it support:
#include <board-common/...>
and it would find the file?
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-06 0:15 ` Simon Glass
@ 2015-11-06 3:30 ` Nishanth Menon
2015-11-06 4:50 ` Masahiro Yamada
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-06 3:30 UTC (permalink / raw)
To: u-boot
On Thu, Nov 5, 2015 at 6:15 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
>> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
>>> When the vendor common libraries exists, then board should be able to
>>> reference headers located there, rather than having to do weird logic
>>> such as '#include "../common/xyz.h"'.
>>>
>>> Signed-off-by: Nishanth Menon <nm@ti.com>
>>> ---
>>>
>>> Makefile | 1 +
>>> board/ti/am57xx/board.c | 2 +-
>>> 2 files changed, 2 insertions(+), 1 deletion(-)
>>
>> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
>> apply, and will wait to repost in case of further comments.
>>
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 3c21f8ddf9e9..75d5ea802dfd 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>>> # U-Boot objects....order is important (i.e. start must be first)
>>>
>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
>>>
>>> libs-y += lib/
>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>>
>>
>
> I suppose this is OK. But it might be hard to figure out where a
> header file is coming from. I wonder if we could make it support:
>
> #include <board-common/...>
>
> and it would find the file?
>
Hmmm... Are folks ok if I create a softlink?
--
---
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-06 3:30 ` Nishanth Menon
@ 2015-11-06 4:50 ` Masahiro Yamada
2015-11-06 17:10 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Masahiro Yamada @ 2015-11-06 4:50 UTC (permalink / raw)
To: u-boot
2015-11-06 12:30 GMT+09:00 Nishanth Menon <nm@ti.com>:
> On Thu, Nov 5, 2015 at 6:15 PM, Simon Glass <sjg@chromium.org> wrote:
>> Hi,
>>
>> On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
>>> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
>>>> When the vendor common libraries exists, then board should be able to
>>>> reference headers located there, rather than having to do weird logic
>>>> such as '#include "../common/xyz.h"'.
>>>>
>>>> Signed-off-by: Nishanth Menon <nm@ti.com>
>>>> ---
>>>>
>>>> Makefile | 1 +
>>>> board/ti/am57xx/board.c | 2 +-
>>>> 2 files changed, 2 insertions(+), 1 deletion(-)
>>>
>>> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
>>> apply, and will wait to repost in case of further comments.
>>>
>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index 3c21f8ddf9e9..75d5ea802dfd 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>>>> # U-Boot objects....order is important (i.e. start must be first)
>>>>
>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
>>>>
>>>> libs-y += lib/
>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>>>
>>>
>>
>> I suppose this is OK. But it might be hard to figure out where a
>> header file is coming from. I wonder if we could make it support:
>>
>> #include <board-common/...>
>>
>> and it would find the file?
>>
>
> Hmmm... Are folks ok if I create a softlink?
Or, you can maybe add the following into board/ti/am57xx/Makefile.
subdir-ccflags-y := -I$(src)/../common
then, you can use #include <xyz.h> from your board/ti/am57xx/board.c
But, I personally wouldn't do this in this case
for the reason Simon mentioned.
How many vender-common do we have
and is it worth supporting #include <board-common/...>?
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-06 4:50 ` Masahiro Yamada
@ 2015-11-06 17:10 ` Nishanth Menon
2015-11-06 18:23 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-06 17:10 UTC (permalink / raw)
To: u-boot
On 11/05/2015 10:50 PM, Masahiro Yamada wrote:
> 2015-11-06 12:30 GMT+09:00 Nishanth Menon <nm@ti.com>:
>> On Thu, Nov 5, 2015 at 6:15 PM, Simon Glass <sjg@chromium.org> wrote:
>>> Hi,
>>>
>>> On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
>>>> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
>>>>> When the vendor common libraries exists, then board should be able to
>>>>> reference headers located there, rather than having to do weird logic
>>>>> such as '#include "../common/xyz.h"'.
>>>>>
>>>>> Signed-off-by: Nishanth Menon <nm@ti.com>
>>>>> ---
>>>>>
>>>>> Makefile | 1 +
>>>>> board/ti/am57xx/board.c | 2 +-
>>>>> 2 files changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
>>>> apply, and will wait to repost in case of further comments.
>>>>
>>>>>
>>>>> diff --git a/Makefile b/Makefile
>>>>> index 3c21f8ddf9e9..75d5ea802dfd 100644
>>>>> --- a/Makefile
>>>>> +++ b/Makefile
>>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>>>>> # U-Boot objects....order is important (i.e. start must be first)
>>>>>
>>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
>>>>>
>>>>> libs-y += lib/
>>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>>>>
>>>>
>>>
>>> I suppose this is OK. But it might be hard to figure out where a
>>> header file is coming from. I wonder if we could make it support:
>>>
>>> #include <board-common/...>
>>>
>>> and it would find the file?
>>>
>>
>> Hmmm... Are folks ok if I create a softlink?
>
>
> Or, you can maybe add the following into board/ti/am57xx/Makefile.
>
> subdir-ccflags-y := -I$(src)/../common
>
> then, you can use #include <xyz.h> from your board/ti/am57xx/board.c
I could, OR i could even do ../common/xyz.h (which is what current
board files do)
>
>
>
> But, I personally wouldn't do this in this case
> for the reason Simon mentioned.
>
I agree as well. but the files are built without explicit board level
Makefile rules, but the root Makefile(which makes this happen) does
not ensure the headers are made available - that sounds contradictory.
>
> How many vender-common do we have
> and is it worth supporting #include <board-common/...>?
Surprisingly larger set that what I expected:
$ git branch -v|grep "^*"
* master c3c016cf7536 sf: Add SPI NOR protection mechanism
$ find board/ -iname "common"|wc -l
19
$ git grep "#include \"../common" board/|wc -l
141
--
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-06 17:10 ` Nishanth Menon
@ 2015-11-06 18:23 ` Nishanth Menon
2015-11-06 23:58 ` Simon Glass
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-06 18:23 UTC (permalink / raw)
To: u-boot
On 11:10-20151106, Nishanth Menon wrote:
> On 11/05/2015 10:50 PM, Masahiro Yamada wrote:
> > 2015-11-06 12:30 GMT+09:00 Nishanth Menon <nm@ti.com>:
> >> On Thu, Nov 5, 2015 at 6:15 PM, Simon Glass <sjg@chromium.org> wrote:
> >>> Hi,
> >>>
> >>> On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
> >>>> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
> >>>>> When the vendor common libraries exists, then board should be able to
> >>>>> reference headers located there, rather than having to do weird logic
> >>>>> such as '#include "../common/xyz.h"'.
> >>>>>
> >>>>> Signed-off-by: Nishanth Menon <nm@ti.com>
> >>>>> ---
> >>>>>
> >>>>> Makefile | 1 +
> >>>>> board/ti/am57xx/board.c | 2 +-
> >>>>> 2 files changed, 2 insertions(+), 1 deletion(-)
> >>>>
> >>>> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
> >>>> apply, and will wait to repost in case of further comments.
> >>>>
> >>>>>
> >>>>> diff --git a/Makefile b/Makefile
> >>>>> index 3c21f8ddf9e9..75d5ea802dfd 100644
> >>>>> --- a/Makefile
> >>>>> +++ b/Makefile
> >>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
> >>>>> # U-Boot objects....order is important (i.e. start must be first)
> >>>>>
> >>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
> >>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
> >>>>>
> >>>>> libs-y += lib/
> >>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
> >>>>>
> >>>>
> >>>
> >>> I suppose this is OK. But it might be hard to figure out where a
> >>> header file is coming from. I wonder if we could make it support:
> >>>
> >>> #include <board-common/...>
> >>>
> >>> and it would find the file?
> >>>
> >>
> >> Hmmm... Are folks ok if I create a softlink?
> >
> >
> > Or, you can maybe add the following into board/ti/am57xx/Makefile.
> >
> > subdir-ccflags-y := -I$(src)/../common
> >
> > then, you can use #include <xyz.h> from your board/ti/am57xx/board.c
>
> I could, OR i could even do ../common/xyz.h (which is what current
> board files do)
>
> >
> >
> >
> > But, I personally wouldn't do this in this case
> > for the reason Simon mentioned.
> >
>
> I agree as well. but the files are built without explicit board level
> Makefile rules, but the root Makefile(which makes this happen) does
> not ensure the headers are made available - that sounds contradictory.
>
> >
> > How many vender-common do we have
> > and is it worth supporting #include <board-common/...>?
>
> Surprisingly larger set that what I expected:
> $ git branch -v|grep "^*"
> * master c3c016cf7536 sf: Add SPI NOR protection mechanism
> $ find board/ -iname "common"|wc -l
> 19
> $ git grep "#include \"../common" board/|wc -l
> 141
>
Illustration Purposes only: example of how a
#include <board-common/xyz.h" could be done - is this what folks want me
to do?
diff --git a/Kconfig b/Kconfig
index 821b464db207..6e825be0545e 100644
--- a/Kconfig
+++ b/Kconfig
@@ -224,6 +224,8 @@ endmenu # Boot images
source "common/Kconfig"
+source "board/Kconfig"
+
source "dts/Kconfig"
source "net/Kconfig"
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0d756cbc55a2..62c9b90eac79 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -356,6 +356,7 @@ config TARGET_AM335X_EVM
select DM
select DM_SERIAL
select DM_GPIO
+ select CREATE_BOARD_SYMLINK
config TARGET_AM335X_SL50
bool "Support am335x_sl50"
diff --git a/scripts/Makefile.autoconf b/scripts/Makefile.autoconf
index d668982cc1dd..3f9b969c2271 100644
--- a/scripts/Makefile.autoconf
+++ b/scripts/Makefile.autoconf
@@ -125,6 +125,23 @@ else
ln -fsn $$dest arch/$(ARCH)/include/asm/arch
endif
endif
+ifdef CONFIG_CREATE_BOARD_SYMLINK
+ifneq ($(KBUILD_SRC),)
+ if [ -d $(KBUILD_SRC)/board/$(VENDOR)/common/include ]; then \
+ dest=board/$(VENDOR)/common/include; \
+ else \
+ dest=board/$(VENDOR)/common; \
+ fi; \
+ ln -fsn $(KBUILD_SRC)/$$dest include/board-common
+else
+ if [ -d board/$(VENDOR)/common/include ]; then \
+ dest=board/$(VENDOR)/common/include; \
+ else \
+ dest=board/$(VENDOR)/common; \
+ fi; \
+ ln -fsn ../$$dest include/board-common
+endif
+endif
PHONY += FORCE
FORCE:
--
Regards,
Nishanth Menon
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-06 18:23 ` Nishanth Menon
@ 2015-11-06 23:58 ` Simon Glass
2015-11-08 2:18 ` Tom Rini
0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2015-11-06 23:58 UTC (permalink / raw)
To: u-boot
Hi,
On 6 November 2015 at 10:23, Nishanth Menon <nm@ti.com> wrote:
> On 11:10-20151106, Nishanth Menon wrote:
>> On 11/05/2015 10:50 PM, Masahiro Yamada wrote:
>> > 2015-11-06 12:30 GMT+09:00 Nishanth Menon <nm@ti.com>:
>> >> On Thu, Nov 5, 2015 at 6:15 PM, Simon Glass <sjg@chromium.org> wrote:
>> >>> Hi,
>> >>>
>> >>> On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
>> >>>> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
>> >>>>> When the vendor common libraries exists, then board should be able to
>> >>>>> reference headers located there, rather than having to do weird logic
>> >>>>> such as '#include "../common/xyz.h"'.
>> >>>>>
>> >>>>> Signed-off-by: Nishanth Menon <nm@ti.com>
>> >>>>> ---
>> >>>>>
>> >>>>> Makefile | 1 +
>> >>>>> board/ti/am57xx/board.c | 2 +-
>> >>>>> 2 files changed, 2 insertions(+), 1 deletion(-)
>> >>>>
>> >>>> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
>> >>>> apply, and will wait to repost in case of further comments.
>> >>>>
>> >>>>>
>> >>>>> diff --git a/Makefile b/Makefile
>> >>>>> index 3c21f8ddf9e9..75d5ea802dfd 100644
>> >>>>> --- a/Makefile
>> >>>>> +++ b/Makefile
>> >>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>> >>>>> # U-Boot objects....order is important (i.e. start must be first)
>> >>>>>
>> >>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>> >>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
>> >>>>>
>> >>>>> libs-y += lib/
>> >>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>> >>>>>
>> >>>>
>> >>>
>> >>> I suppose this is OK. But it might be hard to figure out where a
>> >>> header file is coming from. I wonder if we could make it support:
>> >>>
>> >>> #include <board-common/...>
>> >>>
>> >>> and it would find the file?
>> >>>
>> >>
>> >> Hmmm... Are folks ok if I create a softlink?
>> >
>> >
>> > Or, you can maybe add the following into board/ti/am57xx/Makefile.
>> >
>> > subdir-ccflags-y := -I$(src)/../common
>> >
>> > then, you can use #include <xyz.h> from your board/ti/am57xx/board.c
>>
>> I could, OR i could even do ../common/xyz.h (which is what current
>> board files do)
>>
>> >
>> >
>> >
>> > But, I personally wouldn't do this in this case
>> > for the reason Simon mentioned.
>> >
>>
>> I agree as well. but the files are built without explicit board level
>> Makefile rules, but the root Makefile(which makes this happen) does
>> not ensure the headers are made available - that sounds contradictory.
>>
>> >
>> > How many vender-common do we have
>> > and is it worth supporting #include <board-common/...>?
>>
>> Surprisingly larger set that what I expected:
>> $ git branch -v|grep "^*"
>> * master c3c016cf7536 sf: Add SPI NOR protection mechanism
>> $ find board/ -iname "common"|wc -l
>> 19
>> $ git grep "#include \"../common" board/|wc -l
>> 141
>>
> Illustration Purposes only: example of how a
> #include <board-common/xyz.h" could be done - is this what folks want me
> to do?
> diff --git a/Kconfig b/Kconfig
> index 821b464db207..6e825be0545e 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -224,6 +224,8 @@ endmenu # Boot images
>
> source "common/Kconfig"
>
> +source "board/Kconfig"
> +
> source "dts/Kconfig"
>
> source "net/Kconfig"
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 0d756cbc55a2..62c9b90eac79 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -356,6 +356,7 @@ config TARGET_AM335X_EVM
> select DM
> select DM_SERIAL
> select DM_GPIO
> + select CREATE_BOARD_SYMLINK
>
> config TARGET_AM335X_SL50
> bool "Support am335x_sl50"
> diff --git a/scripts/Makefile.autoconf b/scripts/Makefile.autoconf
> index d668982cc1dd..3f9b969c2271 100644
> --- a/scripts/Makefile.autoconf
> +++ b/scripts/Makefile.autoconf
> @@ -125,6 +125,23 @@ else
> ln -fsn $$dest arch/$(ARCH)/include/asm/arch
> endif
> endif
> +ifdef CONFIG_CREATE_BOARD_SYMLINK
> +ifneq ($(KBUILD_SRC),)
> + if [ -d $(KBUILD_SRC)/board/$(VENDOR)/common/include ]; then \
> + dest=board/$(VENDOR)/common/include; \
> + else \
> + dest=board/$(VENDOR)/common; \
> + fi; \
> + ln -fsn $(KBUILD_SRC)/$$dest include/board-common
> +else
> + if [ -d board/$(VENDOR)/common/include ]; then \
> + dest=board/$(VENDOR)/common/include; \
> + else \
> + dest=board/$(VENDOR)/common; \
> + fi; \
> + ln -fsn ../$$dest include/board-common
> +endif
> +endif
>
> PHONY += FORCE
> FORCE:
> --
It looks reasonable to me. Tom and Masahiro may have opinions on this too.
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-06 23:58 ` Simon Glass
@ 2015-11-08 2:18 ` Tom Rini
2015-11-08 15:56 ` menon.nishanth at gmail.com
0 siblings, 1 reply; 22+ messages in thread
From: Tom Rini @ 2015-11-08 2:18 UTC (permalink / raw)
To: u-boot
On Fri, Nov 06, 2015 at 03:58:17PM -0800, Simon Glass wrote:
> Hi,
>
> On 6 November 2015 at 10:23, Nishanth Menon <nm@ti.com> wrote:
> > On 11:10-20151106, Nishanth Menon wrote:
> >> On 11/05/2015 10:50 PM, Masahiro Yamada wrote:
> >> > 2015-11-06 12:30 GMT+09:00 Nishanth Menon <nm@ti.com>:
> >> >> On Thu, Nov 5, 2015 at 6:15 PM, Simon Glass <sjg@chromium.org> wrote:
> >> >>> Hi,
> >> >>>
> >> >>> On 5 November 2015 at 00:32, Nishanth Menon <nm@ti.com> wrote:
> >> >>>> On 11/05/2015 01:28 AM, Nishanth Menon wrote:
> >> >>>>> When the vendor common libraries exists, then board should be able to
> >> >>>>> reference headers located there, rather than having to do weird logic
> >> >>>>> such as '#include "../common/xyz.h"'.
> >> >>>>>
> >> >>>>> Signed-off-by: Nishanth Menon <nm@ti.com>
> >> >>>>> ---
> >> >>>>>
> >> >>>>> Makefile | 1 +
> >> >>>>> board/ti/am57xx/board.c | 2 +-
> >> >>>>> 2 files changed, 2 insertions(+), 1 deletion(-)
> >> >>>>
> >> >>>> Arrgh.. Apologies on the diffstat messup, but anyways, the patch does
> >> >>>> apply, and will wait to repost in case of further comments.
> >> >>>>
> >> >>>>>
> >> >>>>> diff --git a/Makefile b/Makefile
> >> >>>>> index 3c21f8ddf9e9..75d5ea802dfd 100644
> >> >>>>> --- a/Makefile
> >> >>>>> +++ b/Makefile
> >> >>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
> >> >>>>> # U-Boot objects....order is important (i.e. start must be first)
> >> >>>>>
> >> >>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
> >> >>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/board/$(VENDOR)/common)
> >> >>>>>
> >> >>>>> libs-y += lib/
> >> >>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
> >> >>>>>
> >> >>>>
> >> >>>
> >> >>> I suppose this is OK. But it might be hard to figure out where a
> >> >>> header file is coming from. I wonder if we could make it support:
> >> >>>
> >> >>> #include <board-common/...>
> >> >>>
> >> >>> and it would find the file?
> >> >>>
> >> >>
> >> >> Hmmm... Are folks ok if I create a softlink?
> >> >
> >> >
> >> > Or, you can maybe add the following into board/ti/am57xx/Makefile.
> >> >
> >> > subdir-ccflags-y := -I$(src)/../common
> >> >
> >> > then, you can use #include <xyz.h> from your board/ti/am57xx/board.c
> >>
> >> I could, OR i could even do ../common/xyz.h (which is what current
> >> board files do)
> >>
> >> >
> >> >
> >> >
> >> > But, I personally wouldn't do this in this case
> >> > for the reason Simon mentioned.
> >> >
> >>
> >> I agree as well. but the files are built without explicit board level
> >> Makefile rules, but the root Makefile(which makes this happen) does
> >> not ensure the headers are made available - that sounds contradictory.
> >>
> >> >
> >> > How many vender-common do we have
> >> > and is it worth supporting #include <board-common/...>?
> >>
> >> Surprisingly larger set that what I expected:
> >> $ git branch -v|grep "^*"
> >> * master c3c016cf7536 sf: Add SPI NOR protection mechanism
> >> $ find board/ -iname "common"|wc -l
> >> 19
> >> $ git grep "#include \"../common" board/|wc -l
> >> 141
> >>
> > Illustration Purposes only: example of how a
> > #include <board-common/xyz.h" could be done - is this what folks want me
> > to do?
> > diff --git a/Kconfig b/Kconfig
> > index 821b464db207..6e825be0545e 100644
> > --- a/Kconfig
> > +++ b/Kconfig
> > @@ -224,6 +224,8 @@ endmenu # Boot images
> >
> > source "common/Kconfig"
> >
> > +source "board/Kconfig"
> > +
> > source "dts/Kconfig"
> >
> > source "net/Kconfig"
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > index 0d756cbc55a2..62c9b90eac79 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -356,6 +356,7 @@ config TARGET_AM335X_EVM
> > select DM
> > select DM_SERIAL
> > select DM_GPIO
> > + select CREATE_BOARD_SYMLINK
> >
> > config TARGET_AM335X_SL50
> > bool "Support am335x_sl50"
> > diff --git a/scripts/Makefile.autoconf b/scripts/Makefile.autoconf
> > index d668982cc1dd..3f9b969c2271 100644
> > --- a/scripts/Makefile.autoconf
> > +++ b/scripts/Makefile.autoconf
> > @@ -125,6 +125,23 @@ else
> > ln -fsn $$dest arch/$(ARCH)/include/asm/arch
> > endif
> > endif
> > +ifdef CONFIG_CREATE_BOARD_SYMLINK
> > +ifneq ($(KBUILD_SRC),)
> > + if [ -d $(KBUILD_SRC)/board/$(VENDOR)/common/include ]; then \
> > + dest=board/$(VENDOR)/common/include; \
> > + else \
> > + dest=board/$(VENDOR)/common; \
> > + fi; \
> > + ln -fsn $(KBUILD_SRC)/$$dest include/board-common
> > +else
> > + if [ -d board/$(VENDOR)/common/include ]; then \
> > + dest=board/$(VENDOR)/common/include; \
> > + else \
> > + dest=board/$(VENDOR)/common; \
> > + fi; \
> > + ln -fsn ../$$dest include/board-common
> > +endif
> > +endif
> >
> > PHONY += FORCE
> > FORCE:
> > --
>
> It looks reasonable to me. Tom and Masahiro may have opinions on this too.
Conceptually fine with me. Do we really need a config option for it
tho?
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151107/aa952467/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-08 2:18 ` Tom Rini
@ 2015-11-08 15:56 ` menon.nishanth at gmail.com
2015-11-08 16:38 ` Tom Rini
0 siblings, 1 reply; 22+ messages in thread
From: menon.nishanth at gmail.com @ 2015-11-08 15:56 UTC (permalink / raw)
To: u-boot
On Sat, Nov 7, 2015 at 8:18 PM, Tom Rini <trini@konsulko.com> wrote:
> Conceptually fine with me. Do we really need a config option for it
> tho?
I was following the lines of CONFIG_CREATE_ARCH_SYMLINK here. Is there
some reason why you'd not want it so?
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-08 15:56 ` menon.nishanth at gmail.com
@ 2015-11-08 16:38 ` Tom Rini
2015-11-09 16:03 ` Masahiro Yamada
0 siblings, 1 reply; 22+ messages in thread
From: Tom Rini @ 2015-11-08 16:38 UTC (permalink / raw)
To: u-boot
On Sun, Nov 08, 2015 at 09:56:18AM -0600, menon.nishanth at gmail.com wrote:
> On Sat, Nov 7, 2015 at 8:18 PM, Tom Rini <trini@konsulko.com> wrote:
>
> > Conceptually fine with me. Do we really need a config option for it
> > tho?
>
> I was following the lines of CONFIG_CREATE_ARCH_SYMLINK here. Is there
> some reason why you'd not want it so?
Masahiro?
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151108/9021c525/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-08 16:38 ` Tom Rini
@ 2015-11-09 16:03 ` Masahiro Yamada
2015-11-09 17:37 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Masahiro Yamada @ 2015-11-09 16:03 UTC (permalink / raw)
To: u-boot
2015-11-09 1:38 GMT+09:00 Tom Rini <trini@konsulko.com>:
> On Sun, Nov 08, 2015 at 09:56:18AM -0600, menon.nishanth at gmail.com wrote:
>> On Sat, Nov 7, 2015 at 8:18 PM, Tom Rini <trini@konsulko.com> wrote:
>>
>> > Conceptually fine with me. Do we really need a config option for it
>> > tho?
>>
>> I was following the lines of CONFIG_CREATE_ARCH_SYMLINK here. Is there
>> some reason why you'd not want it so?
>
> Masahiro?
>
Is this an improvement?
I am unhappy because I was hoping
we could stop creating symbolic links during building
in a long run.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-09 16:03 ` Masahiro Yamada
@ 2015-11-09 17:37 ` Nishanth Menon
2015-11-09 20:24 ` Simon Glass
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-09 17:37 UTC (permalink / raw)
To: u-boot
On 11/09/2015 10:03 AM, Masahiro Yamada wrote:
> 2015-11-09 1:38 GMT+09:00 Tom Rini <trini@konsulko.com>:
>> On Sun, Nov 08, 2015 at 09:56:18AM -0600, menon.nishanth at gmail.com wrote:
>>> On Sat, Nov 7, 2015 at 8:18 PM, Tom Rini <trini@konsulko.com> wrote:
>>>
>>>> Conceptually fine with me. Do we really need a config option for it
>>>> tho?
>>>
>>> I was following the lines of CONFIG_CREATE_ARCH_SYMLINK here. Is there
>>> some reason why you'd not want it so?
>>
>> Masahiro?
>>
>
> Is this an improvement?
>
>
> I am unhappy because I was hoping
> we could stop creating symbolic links during building
> in a long run.
OK. what do we do?
option 1:
#include "..common/xyz.h"
141 something usage in board files do this for now..
option 2:
-I...common (auto generated - original patch)
#include "xyz.h"
we dont like that since it does not tell us that xyz.h is a
board-common header.
option 3:
#include <board-common/xyz.h>
this needs a soft link which we dont like either.
are there any other ways to do this?
--
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-09 17:37 ` Nishanth Menon
@ 2015-11-09 20:24 ` Simon Glass
2015-11-10 3:25 ` Masahiro Yamada
0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2015-11-09 20:24 UTC (permalink / raw)
To: u-boot
Hi Masahiro,
On 9 November 2015 at 09:37, Nishanth Menon <nm@ti.com> wrote:
> On 11/09/2015 10:03 AM, Masahiro Yamada wrote:
>> 2015-11-09 1:38 GMT+09:00 Tom Rini <trini@konsulko.com>:
>>> On Sun, Nov 08, 2015 at 09:56:18AM -0600, menon.nishanth at gmail.com wrote:
>>>> On Sat, Nov 7, 2015 at 8:18 PM, Tom Rini <trini@konsulko.com> wrote:
>>>>
>>>>> Conceptually fine with me. Do we really need a config option for it
>>>>> tho?
>>>>
>>>> I was following the lines of CONFIG_CREATE_ARCH_SYMLINK here. Is there
>>>> some reason why you'd not want it so?
>>>
>>> Masahiro?
>>>
>>
>> Is this an improvement?
>>
>>
>> I am unhappy because I was hoping
>> we could stop creating symbolic links during building
>> in a long run.
But how? I don't see that it is possible if we want to have a sensible
prefix for each include.
>
> OK. what do we do?
> option 1:
> #include "..common/xyz.h"
> 141 something usage in board files do this for now..
>
> option 2:
> -I...common (auto generated - original patch)
> #include "xyz.h"
> we dont like that since it does not tell us that xyz.h is a
> board-common header.
>
> option 3:
> #include <board-common/xyz.h>
>
> this needs a soft link which we dont like either.
Well, I like it :-)
>
> are there any other ways to do this?
>
> --
> Regards,
> Nishanth Menon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-09 20:24 ` Simon Glass
@ 2015-11-10 3:25 ` Masahiro Yamada
2015-11-10 14:55 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Masahiro Yamada @ 2015-11-10 3:25 UTC (permalink / raw)
To: u-boot
2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>> I am unhappy because I was hoping
>>> we could stop creating symbolic links during building
>>> in a long run.
>
> But how? I don't see that it is possible if we want to have a sensible
> prefix for each include.
[step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
[step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
[step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
For example, mach-uniphier finished [1] and [2],
so it does not require the symbolic link.
(several ARM SoCs finished [1])
I think this is the way ARM should do, at least.
The topic of debate is PowerPC. Should we introduce mach-<soc>
directories or not?
>>
>> OK. what do we do?
>> option 1:
>> #include "..common/xyz.h"
>> 141 something usage in board files do this for now..
>>
>> option 2:
>> -I...common (auto generated - original patch)
>> #include "xyz.h"
>> we dont like that since it does not tell us that xyz.h is a
>> board-common header.
>>
>> option 3:
>> #include <board-common/xyz.h>
>>
>> this needs a soft link which we dont like either.
>
> Well, I like it :-)
>
>>
>> are there any other ways to do this?
>>
>> --
>> Regards,
>> Nishanth Menon
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>
>
> Regards,
> Simon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-10 3:25 ` Masahiro Yamada
@ 2015-11-10 14:55 ` Nishanth Menon
2015-11-10 15:34 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-10 14:55 UTC (permalink / raw)
To: u-boot
On 12:25-20151110, Masahiro Yamada wrote:
> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
> >>> I am unhappy because I was hoping
> >>> we could stop creating symbolic links during building
> >>> in a long run.
> >
> > But how? I don't see that it is possible if we want to have a sensible
> > prefix for each include.
>
>
> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
>
> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
>
> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
>
>
> For example, mach-uniphier finished [1] and [2],
> so it does not require the symbolic link.
> (several ARM SoCs finished [1])
>
>
> I think this is the way ARM should do, at least.
>
> The topic of debate is PowerPC. Should we introduce mach-<soc>
> directories or not?
>
OK: Option 4:
How about this guys? include/board-common is an actual directory
and instead of headers being located in board/$(VENDOR)/common or
board/$(VENDOR)/common/include, we move the common headers to
include/board/$(VENDOR)/ Directory. This will make the usage as follows:
#include <$(VENDOR)/xyz.h>
I know this does not exactly meet Simon's suggestion here of being
identifiably board-common/xyz.h -> but at least knowing the prefix as
vendor name implies a board common header.
diff --git a/Makefile b/Makefile
index 3c21f8ddf9e9..2bd684199512 100644
--- a/Makefile
+++ b/Makefile
@@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
# U-Boot objects....order is important (i.e. start must be first)
HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
+UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
libs-y += lib/
libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
How does this sound?
--
Regards,
Nishanth Menon
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-10 14:55 ` Nishanth Menon
@ 2015-11-10 15:34 ` Nishanth Menon
2015-11-12 16:16 ` Simon Glass
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-10 15:34 UTC (permalink / raw)
To: u-boot
On 11/10/2015 08:55 AM, Nishanth Menon wrote:
> On 12:25-20151110, Masahiro Yamada wrote:
>> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>>>> I am unhappy because I was hoping
>>>>> we could stop creating symbolic links during building
>>>>> in a long run.
>>>
>>> But how? I don't see that it is possible if we want to have a sensible
>>> prefix for each include.
>>
>>
>> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
>>
>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
>>
>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
>>
>>
>> For example, mach-uniphier finished [1] and [2],
>> so it does not require the symbolic link.
>> (several ARM SoCs finished [1])
>>
>>
>> I think this is the way ARM should do, at least.
>>
>> The topic of debate is PowerPC. Should we introduce mach-<soc>
>> directories or not?
>>
>
> OK: Option 4:
>
> How about this guys? include/board-common is an actual directory
> and instead of headers being located in board/$(VENDOR)/common or
> board/$(VENDOR)/common/include, we move the common headers to
> include/board/$(VENDOR)/ Directory. This will make the usage as follows:
>
> #include <$(VENDOR)/xyz.h>
>
> I know this does not exactly meet Simon's suggestion here of being
> identifiably board-common/xyz.h -> but at least knowing the prefix as
> vendor name implies a board common header.
>
> diff --git a/Makefile b/Makefile
> index 3c21f8ddf9e9..2bd684199512 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
> # U-Boot objects....order is important (i.e. start must be first)
>
> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
>
> libs-y += lib/
> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>
> How does this sound?
>
Spin off from option 4 is option 5 -> where we dont have the Makefile
change. the board includes are located in
include/board-common/$(VENDOR)/ directory.
Usage will be:
#include <board-common/$(VENDOR)/xyz.h>
Almost meets Simon's needs(identifiable as board common header) and I
think matches what Masahiro-san wants as well(no symlinks).
OK, i am out of ideas at least for now... Any other suggestions / opinions?
--
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-10 15:34 ` Nishanth Menon
@ 2015-11-12 16:16 ` Simon Glass
2015-11-12 16:22 ` Tom Rini
0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2015-11-12 16:16 UTC (permalink / raw)
To: u-boot
Hi,
On 10 November 2015 at 08:34, Nishanth Menon <nm@ti.com> wrote:
> On 11/10/2015 08:55 AM, Nishanth Menon wrote:
>> On 12:25-20151110, Masahiro Yamada wrote:
>>> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>>>>> I am unhappy because I was hoping
>>>>>> we could stop creating symbolic links during building
>>>>>> in a long run.
>>>>
>>>> But how? I don't see that it is possible if we want to have a sensible
>>>> prefix for each include.
>>>
>>>
>>> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
>>>
>>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
>>>
>>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
>>>
>>>
>>> For example, mach-uniphier finished [1] and [2],
>>> so it does not require the symbolic link.
>>> (several ARM SoCs finished [1])
>>>
>>>
>>> I think this is the way ARM should do, at least.
>>>
>>> The topic of debate is PowerPC. Should we introduce mach-<soc>
>>> directories or not?
>>>
>>
>> OK: Option 4:
>>
>> How about this guys? include/board-common is an actual directory
>> and instead of headers being located in board/$(VENDOR)/common or
>> board/$(VENDOR)/common/include, we move the common headers to
>> include/board/$(VENDOR)/ Directory. This will make the usage as follows:
>>
>> #include <$(VENDOR)/xyz.h>
>>
>> I know this does not exactly meet Simon's suggestion here of being
>> identifiably board-common/xyz.h -> but at least knowing the prefix as
>> vendor name implies a board common header.
>>
>> diff --git a/Makefile b/Makefile
>> index 3c21f8ddf9e9..2bd684199512 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>> # U-Boot objects....order is important (i.e. start must be first)
>>
>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
>>
>> libs-y += lib/
>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>
>> How does this sound?
>>
> Spin off from option 4 is option 5 -> where we dont have the Makefile
> change. the board includes are located in
> include/board-common/$(VENDOR)/ directory.
>
>
> Usage will be:
>
> #include <board-common/$(VENDOR)/xyz.h>
>
>
> Almost meets Simon's needs(identifiable as board common header) and I
> think matches what Masahiro-san wants as well(no symlinks).
>
>
> OK, i am out of ideas at least for now... Any other suggestions / opinions?
If we don't want a symlink then option 5 seems good to me. Thanks very
much for looking into this in so much detail, Nishanth.
Thoughts - Masahiro? Tom?
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-12 16:16 ` Simon Glass
@ 2015-11-12 16:22 ` Tom Rini
2015-11-12 16:45 ` Nishanth Menon
0 siblings, 1 reply; 22+ messages in thread
From: Tom Rini @ 2015-11-12 16:22 UTC (permalink / raw)
To: u-boot
On Thu, Nov 12, 2015 at 09:16:00AM -0700, Simon Glass wrote:
> Hi,
>
> On 10 November 2015 at 08:34, Nishanth Menon <nm@ti.com> wrote:
> > On 11/10/2015 08:55 AM, Nishanth Menon wrote:
> >> On 12:25-20151110, Masahiro Yamada wrote:
> >>> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
> >>>>>> I am unhappy because I was hoping
> >>>>>> we could stop creating symbolic links during building
> >>>>>> in a long run.
> >>>>
> >>>> But how? I don't see that it is possible if we want to have a sensible
> >>>> prefix for each include.
> >>>
> >>>
> >>> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
> >>>
> >>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
> >>>
> >>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
> >>>
> >>>
> >>> For example, mach-uniphier finished [1] and [2],
> >>> so it does not require the symbolic link.
> >>> (several ARM SoCs finished [1])
> >>>
> >>>
> >>> I think this is the way ARM should do, at least.
> >>>
> >>> The topic of debate is PowerPC. Should we introduce mach-<soc>
> >>> directories or not?
> >>>
> >>
> >> OK: Option 4:
> >>
> >> How about this guys? include/board-common is an actual directory
> >> and instead of headers being located in board/$(VENDOR)/common or
> >> board/$(VENDOR)/common/include, we move the common headers to
> >> include/board/$(VENDOR)/ Directory. This will make the usage as follows:
> >>
> >> #include <$(VENDOR)/xyz.h>
> >>
> >> I know this does not exactly meet Simon's suggestion here of being
> >> identifiably board-common/xyz.h -> but at least knowing the prefix as
> >> vendor name implies a board common header.
> >>
> >> diff --git a/Makefile b/Makefile
> >> index 3c21f8ddf9e9..2bd684199512 100644
> >> --- a/Makefile
> >> +++ b/Makefile
> >> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
> >> # U-Boot objects....order is important (i.e. start must be first)
> >>
> >> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
> >> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
> >>
> >> libs-y += lib/
> >> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
> >>
> >> How does this sound?
> >>
> > Spin off from option 4 is option 5 -> where we dont have the Makefile
> > change. the board includes are located in
> > include/board-common/$(VENDOR)/ directory.
> >
> >
> > Usage will be:
> >
> > #include <board-common/$(VENDOR)/xyz.h>
> >
> >
> > Almost meets Simon's needs(identifiable as board common header) and I
> > think matches what Masahiro-san wants as well(no symlinks).
> >
> >
> > OK, i am out of ideas at least for now... Any other suggestions / opinions?
>
> If we don't want a symlink then option 5 seems good to me. Thanks very
> much for looking into this in so much detail, Nishanth.
>
> Thoughts - Masahiro? Tom?
No symlink should mean Masahiro is happy, so if you're fine with #5 then
that works for me too, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151112/8e9e90fe/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-12 16:22 ` Tom Rini
@ 2015-11-12 16:45 ` Nishanth Menon
2015-11-12 16:56 ` Simon Glass
0 siblings, 1 reply; 22+ messages in thread
From: Nishanth Menon @ 2015-11-12 16:45 UTC (permalink / raw)
To: u-boot
On 11/12/2015 10:22 AM, Tom Rini wrote:
> On Thu, Nov 12, 2015 at 09:16:00AM -0700, Simon Glass wrote:
>> Hi,
>>
>> On 10 November 2015 at 08:34, Nishanth Menon <nm@ti.com> wrote:
>>> On 11/10/2015 08:55 AM, Nishanth Menon wrote:
>>>> On 12:25-20151110, Masahiro Yamada wrote:
>>>>> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>>>>>>> I am unhappy because I was hoping
>>>>>>>> we could stop creating symbolic links during building
>>>>>>>> in a long run.
>>>>>>
>>>>>> But how? I don't see that it is possible if we want to have a sensible
>>>>>> prefix for each include.
>>>>>
>>>>>
>>>>> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
>>>>>
>>>>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
>>>>>
>>>>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
>>>>>
>>>>>
>>>>> For example, mach-uniphier finished [1] and [2],
>>>>> so it does not require the symbolic link.
>>>>> (several ARM SoCs finished [1])
>>>>>
>>>>>
>>>>> I think this is the way ARM should do, at least.
>>>>>
>>>>> The topic of debate is PowerPC. Should we introduce mach-<soc>
>>>>> directories or not?
>>>>>
>>>>
>>>> OK: Option 4:
>>>>
>>>> How about this guys? include/board-common is an actual directory
>>>> and instead of headers being located in board/$(VENDOR)/common or
>>>> board/$(VENDOR)/common/include, we move the common headers to
>>>> include/board/$(VENDOR)/ Directory. This will make the usage as follows:
>>>>
>>>> #include <$(VENDOR)/xyz.h>
>>>>
>>>> I know this does not exactly meet Simon's suggestion here of being
>>>> identifiably board-common/xyz.h -> but at least knowing the prefix as
>>>> vendor name implies a board common header.
>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index 3c21f8ddf9e9..2bd684199512 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>>>> # U-Boot objects....order is important (i.e. start must be first)
>>>>
>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
>>>>
>>>> libs-y += lib/
>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>>>
>>>> How does this sound?
>>>>
>>> Spin off from option 4 is option 5 -> where we dont have the Makefile
>>> change. the board includes are located in
>>> include/board-common/$(VENDOR)/ directory.
>>>
>>>
>>> Usage will be:
>>>
>>> #include <board-common/$(VENDOR)/xyz.h>
>>>
>>>
>>> Almost meets Simon's needs(identifiable as board common header) and I
>>> think matches what Masahiro-san wants as well(no symlinks).
>>>
>>>
>>> OK, i am out of ideas at least for now... Any other suggestions / opinions?
>>
>> If we don't want a symlink then option 5 seems good to me. Thanks very
>> much for looking into this in so much detail, Nishanth.
>>
>> Thoughts - Masahiro? Tom?
>
> No symlink should mean Masahiro is happy, so if you're fine with #5 then
> that works for me too, thanks!
>
I just have yet another option 6 variation -> looking at the mach
strategy:
UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1),
-I$(srctree)/board/$(VENDOR)/common/include)
vendors should create common headers in
board/$(VENDOR)/include/board-common/xyz.h
the users then can do:
#include <board-common/xyz.h>
How does that sound? ofcourse, similar to mach, it requires some
discipline..
--
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-12 16:45 ` Nishanth Menon
@ 2015-11-12 16:56 ` Simon Glass
2015-11-12 17:05 ` Tom Rini
0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2015-11-12 16:56 UTC (permalink / raw)
To: u-boot
Hi Nishanth,
On 12 November 2015 at 09:45, Nishanth Menon <nm@ti.com> wrote:
> On 11/12/2015 10:22 AM, Tom Rini wrote:
>> On Thu, Nov 12, 2015 at 09:16:00AM -0700, Simon Glass wrote:
>>> Hi,
>>>
>>> On 10 November 2015 at 08:34, Nishanth Menon <nm@ti.com> wrote:
>>>> On 11/10/2015 08:55 AM, Nishanth Menon wrote:
>>>>> On 12:25-20151110, Masahiro Yamada wrote:
>>>>>> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
>>>>>>>>> I am unhappy because I was hoping
>>>>>>>>> we could stop creating symbolic links during building
>>>>>>>>> in a long run.
>>>>>>>
>>>>>>> But how? I don't see that it is possible if we want to have a sensible
>>>>>>> prefix for each include.
>>>>>>
>>>>>>
>>>>>> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
>>>>>>
>>>>>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
>>>>>>
>>>>>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
>>>>>>
>>>>>>
>>>>>> For example, mach-uniphier finished [1] and [2],
>>>>>> so it does not require the symbolic link.
>>>>>> (several ARM SoCs finished [1])
>>>>>>
>>>>>>
>>>>>> I think this is the way ARM should do, at least.
>>>>>>
>>>>>> The topic of debate is PowerPC. Should we introduce mach-<soc>
>>>>>> directories or not?
>>>>>>
>>>>>
>>>>> OK: Option 4:
>>>>>
>>>>> How about this guys? include/board-common is an actual directory
>>>>> and instead of headers being located in board/$(VENDOR)/common or
>>>>> board/$(VENDOR)/common/include, we move the common headers to
>>>>> include/board/$(VENDOR)/ Directory. This will make the usage as follows:
>>>>>
>>>>> #include <$(VENDOR)/xyz.h>
>>>>>
>>>>> I know this does not exactly meet Simon's suggestion here of being
>>>>> identifiably board-common/xyz.h -> but at least knowing the prefix as
>>>>> vendor name implies a board common header.
>>>>>
>>>>> diff --git a/Makefile b/Makefile
>>>>> index 3c21f8ddf9e9..2bd684199512 100644
>>>>> --- a/Makefile
>>>>> +++ b/Makefile
>>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
>>>>> # U-Boot objects....order is important (i.e. start must be first)
>>>>>
>>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
>>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
>>>>>
>>>>> libs-y += lib/
>>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
>>>>>
>>>>> How does this sound?
>>>>>
>>>> Spin off from option 4 is option 5 -> where we dont have the Makefile
>>>> change. the board includes are located in
>>>> include/board-common/$(VENDOR)/ directory.
>>>>
>>>>
>>>> Usage will be:
>>>>
>>>> #include <board-common/$(VENDOR)/xyz.h>
>>>>
>>>>
>>>> Almost meets Simon's needs(identifiable as board common header) and I
>>>> think matches what Masahiro-san wants as well(no symlinks).
>>>>
>>>>
>>>> OK, i am out of ideas at least for now... Any other suggestions / opinions?
>>>
>>> If we don't want a symlink then option 5 seems good to me. Thanks very
>>> much for looking into this in so much detail, Nishanth.
>>>
>>> Thoughts - Masahiro? Tom?
>>
>> No symlink should mean Masahiro is happy, so if you're fine with #5 then
>> that works for me too, thanks!
>>
>
> I just have yet another option 6 variation -> looking at the mach
> strategy:
>
> UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1),
> -I$(srctree)/board/$(VENDOR)/common/include)
>
> vendors should create common headers in
> board/$(VENDOR)/include/board-common/xyz.h
>
> the users then can do:
> #include <board-common/xyz.h>
>
> How does that sound? ofcourse, similar to mach, it requires some
> discipline..
Looks good, and it's nice that the files are in board/
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [U-Boot] [PATCH] Makefile: Include vendor common library in include search path
2015-11-12 16:56 ` Simon Glass
@ 2015-11-12 17:05 ` Tom Rini
0 siblings, 0 replies; 22+ messages in thread
From: Tom Rini @ 2015-11-12 17:05 UTC (permalink / raw)
To: u-boot
On Thu, Nov 12, 2015 at 09:56:26AM -0700, Simon Glass wrote:
> Hi Nishanth,
>
> On 12 November 2015 at 09:45, Nishanth Menon <nm@ti.com> wrote:
> > On 11/12/2015 10:22 AM, Tom Rini wrote:
> >> On Thu, Nov 12, 2015 at 09:16:00AM -0700, Simon Glass wrote:
> >>> Hi,
> >>>
> >>> On 10 November 2015 at 08:34, Nishanth Menon <nm@ti.com> wrote:
> >>>> On 11/10/2015 08:55 AM, Nishanth Menon wrote:
> >>>>> On 12:25-20151110, Masahiro Yamada wrote:
> >>>>>> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg@chromium.org>:
> >>>>>>>>> I am unhappy because I was hoping
> >>>>>>>>> we could stop creating symbolic links during building
> >>>>>>>>> in a long run.
> >>>>>>>
> >>>>>>> But how? I don't see that it is possible if we want to have a sensible
> >>>>>>> prefix for each include.
> >>>>>>
> >>>>>>
> >>>>>> [step 1] move SoC-specific headers to arch/<arch>/mach-<soc>/include/mach
> >>>>>>
> >>>>>> [step 2] change #include <asm/arch/foo.h> to #include <mach/foo.h>
> >>>>>>
> >>>>>> [step 3] Drop CONFIG_CREATE_ARCH_SYMLINK
> >>>>>>
> >>>>>>
> >>>>>> For example, mach-uniphier finished [1] and [2],
> >>>>>> so it does not require the symbolic link.
> >>>>>> (several ARM SoCs finished [1])
> >>>>>>
> >>>>>>
> >>>>>> I think this is the way ARM should do, at least.
> >>>>>>
> >>>>>> The topic of debate is PowerPC. Should we introduce mach-<soc>
> >>>>>> directories or not?
> >>>>>>
> >>>>>
> >>>>> OK: Option 4:
> >>>>>
> >>>>> How about this guys? include/board-common is an actual directory
> >>>>> and instead of headers being located in board/$(VENDOR)/common or
> >>>>> board/$(VENDOR)/common/include, we move the common headers to
> >>>>> include/board/$(VENDOR)/ Directory. This will make the usage as follows:
> >>>>>
> >>>>> #include <$(VENDOR)/xyz.h>
> >>>>>
> >>>>> I know this does not exactly meet Simon's suggestion here of being
> >>>>> identifiably board-common/xyz.h -> but at least knowing the prefix as
> >>>>> vendor name implies a board common header.
> >>>>>
> >>>>> diff --git a/Makefile b/Makefile
> >>>>> index 3c21f8ddf9e9..2bd684199512 100644
> >>>>> --- a/Makefile
> >>>>> +++ b/Makefile
> >>>>> @@ -620,6 +620,7 @@ c_flags := $(KBUILD_CFLAGS) $(cpp_flags)
> >>>>> # U-Boot objects....order is important (i.e. start must be first)
> >>>>>
> >>>>> HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
> >>>>> +UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1), -I$(srctree)/include/board-common)
> >>>>>
> >>>>> libs-y += lib/
> >>>>> libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
> >>>>>
> >>>>> How does this sound?
> >>>>>
> >>>> Spin off from option 4 is option 5 -> where we dont have the Makefile
> >>>> change. the board includes are located in
> >>>> include/board-common/$(VENDOR)/ directory.
> >>>>
> >>>>
> >>>> Usage will be:
> >>>>
> >>>> #include <board-common/$(VENDOR)/xyz.h>
> >>>>
> >>>>
> >>>> Almost meets Simon's needs(identifiable as board common header) and I
> >>>> think matches what Masahiro-san wants as well(no symlinks).
> >>>>
> >>>>
> >>>> OK, i am out of ideas at least for now... Any other suggestions / opinions?
> >>>
> >>> If we don't want a symlink then option 5 seems good to me. Thanks very
> >>> much for looking into this in so much detail, Nishanth.
> >>>
> >>> Thoughts - Masahiro? Tom?
> >>
> >> No symlink should mean Masahiro is happy, so if you're fine with #5 then
> >> that works for me too, thanks!
> >>
> >
> > I just have yet another option 6 variation -> looking at the mach
> > strategy:
> >
> > UBOOTINCLUDE += $(if $(HAVE_VENDOR_COMMON_LIB:y=1),
> > -I$(srctree)/board/$(VENDOR)/common/include)
> >
> > vendors should create common headers in
> > board/$(VENDOR)/include/board-common/xyz.h
> >
> > the users then can do:
> > #include <board-common/xyz.h>
> >
> > How does that sound? ofcourse, similar to mach, it requires some
> > discipline..
>
> Looks good, and it's nice that the files are in board/
#6 it is, thanks again Nishanth!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151112/5e33227f/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2015-11-12 17:05 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-05 7:28 [U-Boot] [PATCH] Makefile: Include vendor common library in include search path Nishanth Menon
2015-11-05 7:32 ` Nishanth Menon
2015-11-06 0:15 ` Simon Glass
2015-11-06 3:30 ` Nishanth Menon
2015-11-06 4:50 ` Masahiro Yamada
2015-11-06 17:10 ` Nishanth Menon
2015-11-06 18:23 ` Nishanth Menon
2015-11-06 23:58 ` Simon Glass
2015-11-08 2:18 ` Tom Rini
2015-11-08 15:56 ` menon.nishanth at gmail.com
2015-11-08 16:38 ` Tom Rini
2015-11-09 16:03 ` Masahiro Yamada
2015-11-09 17:37 ` Nishanth Menon
2015-11-09 20:24 ` Simon Glass
2015-11-10 3:25 ` Masahiro Yamada
2015-11-10 14:55 ` Nishanth Menon
2015-11-10 15:34 ` Nishanth Menon
2015-11-12 16:16 ` Simon Glass
2015-11-12 16:22 ` Tom Rini
2015-11-12 16:45 ` Nishanth Menon
2015-11-12 16:56 ` Simon Glass
2015-11-12 17:05 ` Tom Rini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.