diff options
author | Paolo Bonzini | 2020-10-15 18:20:02 +0200 |
---|---|---|
committer | Paolo Bonzini | 2020-10-17 16:45:50 +0200 |
commit | 2b8575bd5fbc8a8880e9ecfb1c7e7990feb1fea6 (patch) | |
tree | 519304455f548a6a38acd0454ff9218fcc9ce5b7 | |
parent | add ninja to dockerfiles, CI configurations and test VMs (diff) | |
download | qemu-2b8575bd5fbc8a8880e9ecfb1c7e7990feb1fea6.tar.gz qemu-2b8575bd5fbc8a8880e9ecfb1c7e7990feb1fea6.tar.xz qemu-2b8575bd5fbc8a8880e9ecfb1c7e7990feb1fea6.zip |
build: cleanups to Makefile
Group similar rules, add comments to "else" and "endif" lines,
detect too-old config-host.mak before messing things up.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | Makefile | 45 |
1 files changed, 28 insertions, 17 deletions
@@ -30,13 +30,21 @@ UNCHECKED_GOALS := %clean TAGS cscope ctags dist \ help check-help print-% \ docker docker-% vm-help vm-test vm-build-% +all: +.PHONY: all clean distclean recurse-all dist msi FORCE + +# Don't try to regenerate Makefile or configure +# We don't generate any of them +Makefile: ; +configure: ; + # All following code might depend on configuration variables ifneq ($(wildcard config-host.mak),) -# Put the all: rule here so that config-host.mak can contain dependencies. -all: include config-host.mak git-submodule-update: +.git-submodule-status: git-submodule-update config-host.mak +Makefile: .git-submodule-status .PHONY: git-submodule-update @@ -84,9 +92,7 @@ Makefile.mtest: build.ninja scripts/mtest2make.py -include Makefile.mtest endif -Makefile: .git-submodule-status -.git-submodule-status: git-submodule-update config-host.mak - +# Ensure the build tree is okay. # Check that we're not trying to do an out-of-tree build from # a tree that's been used for an in-tree build. ifneq ($(realpath $(SRC_PATH)),$(realpath .)) @@ -97,6 +103,20 @@ seems to have been used for an in-tree build. You can fix this by running \ endif endif +# force a rerun of configure if config-host.mak is too old or corrupted +ifeq ($(MESON),) +.PHONY: config-host.mak +x := $(shell rm -rf meson-private meson-info meson-logs) +endif +ifeq ($(NINJA),) +.PHONY: config-host.mak +x := $(shell rm -rf meson-private meson-info meson-logs) +endif +ifeq ($(wildcard build.ninja),) +.PHONY: config-host.mak +x := $(shell rm -rf meson-private meson-info meson-logs) +endif + config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION @echo $@ is out-of-date, running configure @if test -f meson-private/coredata.dat; then \ @@ -114,15 +134,15 @@ plugins: $(call quiet-command,\ $(MAKE) $(SUBDIR_MAKEFLAGS) -C contrib/plugins V="$(V)", \ "BUILD", "example plugins") -endif +endif # $(CONFIG_PLUGIN) -else +else # config-host.mak does not exist config-host.mak: ifneq ($(filter-out $(UNCHECKED_GOALS),$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),,fail)) @echo "Please call configure before running make!" @exit 1 endif -endif +endif # config-host.mak does not exist # Only needed in case Makefile.ninja does not exist. .PHONY: ninja-clean ninja-distclean clean-ctlist @@ -131,20 +151,11 @@ ninja-clean:: ninja-distclean:: build.ninja: config-host.mak -# Don't try to regenerate Makefile or configure -# We don't generate any of them -Makefile: ; -configure: ; - -.PHONY: all clean distclean install \ - recurse-all dist msi FORCE - SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) include $(SRC_PATH)/tests/Makefile.include all: recurse-all -Makefile: ROM_DIRS = $(addprefix pc-bios/, $(ROMS)) ROM_DIRS_RULES=$(foreach t, all clean, $(addsuffix /$(t), $(ROM_DIRS))) |