[PATCH v1 0/5] Makefile: sort out dependencies among targets

Junjie Mao

Dependencies among targets in Makefiles today have the following issues:

1. Phony targets are used for intermediate files. That causes unnecessary
rebuilds of almost all sources even no source file is changed. As an
example, invoke "make hypervisor-install" after "make hypervisor" will
rebuild the hypervisor before the installation steps are carried out.

2. Dependencies on validated XMLs are not stated explicitly. That causes
random error messages (mostly Python stack traces) to be shown when
invalid board or scenario XML is given in addition to the validation
errors, which confuses users.

3. Copied XMLs do not explicitly depend on user-given ones (when user
specifies them) though they actually are. That prevents users from
updating the board and/or scenario XMLs for an existing build without
a fresh rebuild.

This patch series aims at solving the issues above by sorting out the
dependencies in the Makefile:

* Patch 1 to 3 focuses on cleaning up unnecessary phony targets.

* Patch 4 makes dependency on validated XMLs explicit.

* Patch 5 updates dependency of board and scenario XMLs that are copied
into the build directory.

Junjie Mao (5):
Makefile: specify default goal using the variable .DEFAULT_GOAL
Makefile: clean up unnecessary phony targets
Makefile: drop the dependency on hvdefconfig
Makefile: make dependencies on validated configurations explicit
Makefile: retake XMLs from users if they are updated

Makefile | 2 +-
hypervisor/Makefile | 38 +++++++++--------
hypervisor/scripts/genconf.sh | 7 ++--
hypervisor/scripts/makefile/config.mk | 59 ++++++++++++---------------
misc/hv_prebuild/Makefile | 6 +--
5 files changed, 53 insertions(+), 59 deletions(-)