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

Nishanth Menon nm at ti.com
Tue Nov 10 15:55:19 CET 2015


On 12:25-20151110, Masahiro Yamada wrote:
> 2015-11-10 5:24 GMT+09:00 Simon Glass <sjg at 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


More information about the U-Boot mailing list