[Buildroot] [PATCH 08/12] boot/syslinux: bump version

Yann E. MORIN yann.morin.1998 at free.fr
Sat May 3 20:20:02 UTC 2014


Peter, All,

On 2014-05-03 22:08 +0200, Peter Korsgaard spake thusly:
> >>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> 
>  > From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>  > This new version has a very, very weird build system. There are different
>  > images that syslinux can now build:
>  >   - the plain legacy-bios images we already supported previously
>  >   - two new EFI32 and EFI64 applications
> 
>  > To build one or the other, the Makefile accepts one or more of:
>  >     make (bios|efi32|efi64)
> 
>  > Specify all of them, and it builds all. Specify 'install', and it installs
>  > all of them, as one may expect.
> 
>  > Still a regular behaviour, is to build only a subset (down to one):
>  >     make bios           <-- builds just the legacy-bios images
>  >     make efi32 bios     <-- builds just the legacy-bios and efi32 images
> 
>  > Where it gets weird is the install procedure. Can you guess how it's done?
>  > Hint: the syslinux guys have invented the multiple-argument parsing in
>  > pure Makefiles. To build then install only the bios images, one would do:
>  >     make bios
>  >     make bios install
> 
>  > Yep, that's it. make bios install. Two arguments, one action.
> 
>  > That makes for some funky workarounds in our install procedure...
> 
> Is that so odd? If you don't have an explicit configure step, then there
> isn't really anything for the install step to know what configuration
> you have built (besides looking for what binaries are available).

That's not really the point.

The point is that, to tell what to install, you have to tell it as a
_separate_ make argument.

A bit like if you were doing:
    make bios
    make install-bios

But that last part is in fact spelt:
    make install bios     (or : make bios install)

Then, internally, the Makefile will look at the MAKECMDGOALS to decide
what to do. If none of {bios,efi32,efi64} are specified, it calls itself
back with all on the command line. If one or more are specified, it uses
that list (called FRIMWARE_LIST) to do what it as to do with it (explained
below).

Then, it also look at the other MAKECMDGOALS to see what it has to do:
build or install. If nothing is specified (except the bios/efi32/efi64
targets), then it builds the targets in FIRMWARE_LIST, otherwise it
installs the targets in FIRMWARE_LIST.

But our install command is not so funky, indeed. The first time I wrote
it, it was way funkier. I just forgot to cool down that part in the
commit log.

> Committed this and the rest of the series, thanks.

Thanks! :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list