On Mon, Aug 9, 2010 at 8:17 AM, ali hagigat <hagigat...@gmail.com> wrote:

> I want to know how coreboot.rom,  means the final product is built.
> What rule makes it and where is it? How its format is CBFS while this
> format seems unknown for GNC tool chain like gcc?


The short answer is that you should check
src/arch/i386/Makefile.*<http://tracker.coreboot.org/trac/coreboot/browser#trunk/src/arch/i386>to
see how the various Coreboot-related targets are built. Many modules
must
be built separately, sometimes with different compilers (e.g. ASL) and with
different rules, and then formed into a single image at the end. This can
appear ugly at first (especially when you dive into the Makefiles), but in
fact it's a relatively elegant solution for the nature of Coreboot.

You are correct that the final coreboot.rom file is not a normal executable.
It is more akin to an archive -- CBFS is essentially a simple archive
format.

Coreboot currently uses the Linux kernel build system. If you are truly
interested in this subject, I recommend reading the Linux kernel build
system documentation:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/kbuild/makefiles.txt;h=c375313cb12882a956364664b22a927bc96b936e;hb=HEAD
.
If you have lots of patience (or hair to pull), I suggest adapting the
Kernel build system to configure and build a "hello world" program ;-)

There are several steps and if you are not already intimately familiar with
GNU Make and the Linux kernel build system then this is not a good place to
start. I do not mean to sound rude, but the Linux and Coreboot build systems
are much more complicated than a make or gcc commands you may be familiar
with from small projects.

-- 
David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to