From: Michael Zimmermann <sigmaepsilon92@gmail.com>
To: edk2-devel-01 <edk2-devel@lists.01.org>,
Yonghong Zhu <yonghong.zhu@intel.com>,
Liming Gao <liming.gao@intel.com>
Subject: Questions about the build process
Date: Sat, 30 Jun 2018 08:46:46 +0200 [thread overview]
Message-ID: <CAN9vWDJ3tpTBcnjTdWA2Po+O+Up0x=rXK6EiVbtZCLfR8XX0kQ@mail.gmail.com> (raw)
Out of curiosity I took a closer look at how the build system works
internall(especially the Makefile generation and parallel builds) and
I got some questions which I hope you can answer:
Why are we using make at all?
As far as I can see we're not using any special make functionality and
most dependency calculation is done in the python build tool anyway.
So why don't we just run the build commands ourselves from within the
build tool?
Why is every module being build separately / Why don't we generate one
makefile which does everything ?
To give an opposite view on the previous question, why don't we
generate makefiles which contain the whole internal dependency graph
so the build tool can then call a top level 'make' and not worry about
anything. We wouldn't even have to implement any kind of parallel
build support(which we currently have a lot of code for) because make
would do that for us.
If scrambled log output during parallel builds is a concern, then we
could switch to the "ninja" build system which would probably be way
more suited for edk2's usecase because it's a pretty fast low level
language which also gives you proper logs when building in parallel.
ninja is available for linux, mac and windows.
Thanks
Michael
next reply other threads:[~2018-06-30 6:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-30 6:46 Michael Zimmermann [this message]
2018-07-02 9:11 ` Questions about the build process Gao, Liming
2018-07-02 11:15 ` Michael Zimmermann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAN9vWDJ3tpTBcnjTdWA2Po+O+Up0x=rXK6EiVbtZCLfR8XX0kQ@mail.gmail.com' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox