[U-Boot] [RFC PATCH 3/4] Add new folder and build system for SPL
Aneesh V
aneesh at ti.com
Fri Jul 8 13:32:57 CEST 2011
Dear Wolfgang,
On Friday 08 July 2011 02:47 PM, Wolfgang Denk wrote:
> Dear Daniel Schwierzeck,
>
> In message<1309883182-12854-4-git-send-email-daniel.schwierzeck at googlemail.com> you wrote:
> ...
Let's consider an out-of-tree build. Then,
$(OBJTREE) is BUILD_DIR here.
>> +# create 'spl/obj' within OBJTREE for spl
>> +OBJTREE := $(OBJTREE)/spl/obj
>> +LNDIR := $(OBJTREE)
>> +
>> +include $(TOPDIR)/config.mk
Here:
$(OBJTREE) => BUILD_DIR/spl/obj
$(obj) => BUILD_DIR/spl/obj/spl
>> +# We want the final binaries in this directory
>> +obj := $(obj)../
First of all, this was really intended to be:
+obj := $(obj)../../
(The original implementation was a mistake!)
So, here:
$(obj) => BUILD_DIR/spl/
I was trying to make an exception for the the spl directory, so that
the final images are in BUILD_DIR/spl/
>> +START = $(OBJTREE)/$(CPUDIR)/start.o
>
> I don't really like these "../" parts. Can we please try to omit
> these? We can use $(TOPDIR) and/or $(OBJTREE) instead to express the
> path names, can't we?
Please note that even if we use $(OBJTREE), to achieve the above, we
will need:
+obj := $(OBJTREE)/../
Please note that $(OBJTREE) needs to be updated before including
config.mk while $(obj) needs to be updated after it.
The solution I see to this problem is to have BUILD_DIR/spl/ as the
OBJTREE instead of BUILD_DIR/spl/obj. But this will create problems for
in-tree builds if TOPDIR/spl also had folders for source files like
nand, one-nand etc. In that case you will have something like this:
spl/
nand/ - source files
spl/nand/ - object files for the above directory
one-nand/ - source files
spl/one-nand/ - object files for the above directory
arch/... - object files
u-boot-spl - final elf target
u-boot-spl.bin - final binary image
I used BUILD_DIR/spl/obj as OBJTREE to avoid this problem.
If we could keep nand-boot.c etc in the regular source tree we can have
something like this:
spl/
arch/... - object files
drivers/... - object files
u-boot-spl - final elf target
u-boot-spl.bin - final binary image
Indeed this seems to be more logical for me. All source files for SPL
remain in the regular source tree and just use BUILD_DIR/spl as a
remote build directory.
best regards,
Aneesh
More information about the U-Boot
mailing list