[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