[U-Boot] RFC: "make DESTDIR=xxx install" ?

Ulf Samuelsson ulf.samuelsson at atmel.com
Thu Aug 13 22:29:19 CEST 2009


Wolfgang Denk skrev:
> Dear Ulf Samuelsson,
> 
> In message <4A843392.4020800 at atmel.com> you wrote:
>> Many packages support installing the resulting binary in another
>> location, but U-Boot does not.
>>
>> When you use buildsystems like buildroot and openembedded,
>> you want to collect the end result in a target directory,
>> and while you can use internal knowledge about u-boot
>> to do so, it seems cleaner to me, to do a "make DESTDIR install".
> 
> Did you consider using out-of-tree builds for that? 

This still means that the external buildsystem need to
know the internals of u-boot.

It must know that the binary is called u-boot.bin
and where it is located (topdir).

> 
>> Since you may want to put the binaries for several
>> boards in the same directory (like /tftpboot)
> 
There is nothing to stop me calling u-boot with

make DESTDIR=/tftpboot/$(MACHINE)
TARGET=$(MACHINE)-u-boot-$(U_BOOT_VERSION)-$(REVISION).bin install


> In my experience this is not exactly a lucky choice; if youu have to
> maintain more than just a few boards, you definitely want to have a
> subdirectory per board in /tftpboot.
> 
>> it is not always good to call the binary simply u-boot.bin.
> 
> ...which then is not problem any more.

If you maintain just a couple of boards, then it is inconvenient to
have a subdirectory.
If the tftp command in u-boot would fetch from that subdirectory
automatically, then it would be less of a pain.

> 
>> I guess "make DESTDIR=<destination> TARGET=<name> install" would work
>>
>> Alternatively, we collect the final binary from several variables,
> 
> One question remains: what is "the final binary"?  for  example,  for
> the  "kilauea"  board  it  may be "u-boot.bin" (when booting from NOR
> flash), but it might also be "u-boot-nand.bin" (when booting from NOR
> flash). Oh, and board "foo"  uses  not  the  binary  image,  but  the
> S-Record  file  in  their factory installer, so we use "u-boot.srec".
> Another  board  requires  am  Intel  hex   image,   so   they   build
> "u-boot.hex". For the Marvell processors, we will use a special image
> format,  so  it's "u-boot.kwb". BlackFin uses some similar mechanism,
> but a different name, IIRC.

I am happy with u-boot.bin as a default,
but there is nothing stopping you from adding more parameters
like FORMAT=srec or FORMAT=hex.

If we come to use Kconfig, there will likely be board specific things
which can be used.

ifeq ($(CONFIG_BOARD_KILAUEA),y)
ifeq ($(CONFIG_BOARD_KILAUEA_NAND),y)
INSTALL_TARGETS += u-boot-nand.bin
else
INSTALL_TARGETS += u-boot.bin
end
endif

I think there are plenty of different solutions to this.

> 
> And no, we definitlely do not always want to build (and install) all
> these images. That would be just a waste of resources.
> 

You build what you currently build, and the make install
will copy that to another place.
I see no harm in copying both u-boot.bin and u-boot.srec,
since it is easier to delete what you see you do not need
than to get what you are not even aware is existing.

With the current method,assuming u-boot.bin is what you always
wanted in the past, u-boot.kwb would certainly NOT have been copied.



> Best regards,
> 
> Wolfgang Denk
> 

BR
Ulf Samuelsson


More information about the U-Boot mailing list