[U-Boot] [PATCH] Makefile: Include vendor common library in include search path

Tom Rini
2015-11-12T16:22:42Z

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>