From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ulf Samuelsson Date: Thu, 13 Aug 2009 22:29:19 +0200 Subject: [U-Boot] RFC: "make DESTDIR=xxx install" ? In-Reply-To: <20090813180653.CFB3F833DBD2@gemini.denx.de> References: <4A843392.4020800@atmel.com> <20090813180653.CFB3F833DBD2@gemini.denx.de> Message-ID: <4A84779F.7010201@atmel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk skrev: > Dear Ulf Samuelsson, > > In message <4A843392.4020800@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= TARGET= 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