kbuild: generate u-boot.cfg as a byproduct of include/autoconf.mk
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 26 Sep 2016 04:05:01 +0000 (13:05 +0900)
committerTom Rini <trini@konsulko.com>
Fri, 7 Oct 2016 14:26:34 +0000 (14:26 +0000)
commite19b0fb4851f8b6371d91adb34c68c3566140d3f
tree7bb90148f2ee99b80da8a861223d1dfdca21724b
parent1406992f4f21f6d62e3ec0b700da1660519b14c0
kbuild: generate u-boot.cfg as a byproduct of include/autoconf.mk

Our build system still parses ad-hoc CONFIG options in header files
and generates include/autoconf.mk so that Makefiles can reference
them.  This gimmick was introduced in the pre-Kconfig days and will
be kept until Kconfig migration is completed.

The include/autoconf.mk is generated like follows:

  [1] Preprocess include/common.h with -DDO_DEPS_ONLY and
      retrieve macros into include/autoconf.mk.tmp
  [2] Reformat include/autoconf.mk.dep into include/autoconf.mk
      with tools/scripts/define2mk.sed script
  [3] Remove include/autoconf.mk.tmp

Here, include/autoconf.mk.tmp is similar to u-boot.cfg, which is
also generated by preprocessing include/config.h with -DDO_DEPS_ONLY.
In other words, there is much overlap among include/autoconf.mk and
u-boot.cfg build rules.

So, the idea is to split the build rule of include/autoconf.mk
into two stages.  The first preprocesses headers into u-boot.cfg.
The second parses the u-boot.cfg into include/autoconf.mk.  The
build rules of u-boot.cfg in Makefile and spl/Makefile will be gone.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Makefile
scripts/Makefile.autoconf
scripts/Makefile.spl