[U-Boot] MAKEALL

Masahiro Yamada
2014-02-12T10:42:52Z

Hi Albert,

> > It might also be worth looking at tools/buildman, which automatically
> > allocates one build thread per CPU.
>
> Jumping in late, but my question is incidental and not urgent anyway.
>
> Would using buildman make the multiple build / multiple CPU code in
> MAKEALL useless? I'm wondering whether we could apply the Unix
> philosophy here (1), let buildman alone deal with handling parallel
> builds, and remove code from MAKEALL.

I think parallel build feature is missing from buildman.
So, buildman cannot check if -j option is working correctly.

Note:
Please do not be confused by the difference of
what "parallel" means.

[1] MAKEALL runs single "make" thread by default.
(You can change this with BUILD_NBUILDS variable)
One "make" thread runs multiple jobs by giving -j option.
(You can change this with BUILD_NCPUS variable)

[2] buildman runs multiple "make" threads.
Each make thread runs one job (that is, always -j 1 ).

Besides parallel build , I notice some differences between MAKEALL and
buildman.

- MAKEALL runs "make mrproper" everty time before "make",
but buildman doesn't.
This means objects are remaining, that were generated
by the previous commit.
So, even if some build rules in makefiles get broken at an
intermediate commit, buildman possibly cannot detect the error.

- MAKEALL can select in-tree-build or out-of-tree build
by BUILD_DIR option, but buildman always does out-of-tree build.

(Simon, please correct me if I am wrong.)

If you touch only C sources, buildman is enough (and faster).

But if you change make targets, it is highly recommended
to check with MAKEALL.
At least, I need both. (for Kbuild and Kconfig work)

I guess we cannot replace MAKEALL with buildman for now.

Best Regards
Masahiro Yamada