diff options
author | Paolo Bonzini | 2021-11-10 11:01:26 +0100 |
---|---|---|
committer | Paolo Bonzini | 2022-01-12 14:09:06 +0100 |
commit | eed56e9a89f7003e692982a11002bbc432cc2d9f (patch) | |
tree | acc24d25953e090c49c64bc15e18ea96d07da4af | |
parent | meson: build contrib/ executables after generated headers (diff) | |
download | qemu-eed56e9a89f7003e692982a11002bbc432cc2d9f.tar.gz qemu-eed56e9a89f7003e692982a11002bbc432cc2d9f.tar.xz qemu-eed56e9a89f7003e692982a11002bbc432cc2d9f.zip |
configure, meson: move config-poison.h to meson
This ensures that the file is regenerated properly whenever config-target.h
or config-devices.h files change.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | Makefile | 2 | ||||
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | meson.build | 12 | ||||
-rwxr-xr-x | scripts/make-config-poison.sh | 16 |
4 files changed, 29 insertions, 12 deletions
@@ -221,7 +221,7 @@ qemu-%.tar.bz2: distclean: clean -$(quiet-@)test -f build.ninja && $(NINJA) $(NINJAFLAGS) -t clean -g || : - rm -f config-host.mak config-poison.h + rm -f config-host.mak rm -f tests/tcg/config-*.mak rm -f config.status rm -f roms/seabios/config.mak @@ -3834,17 +3834,6 @@ if test -n "${deprecated_features}"; then echo " features: ${deprecated_features}" fi -# Create list of config switches that should be poisoned in common code... -# but filter out CONFIG_TCG and CONFIG_USER_ONLY which are special. -target_configs_h=$(ls *-config-devices.h *-config-target.h 2>/dev/null) -if test -n "$target_configs_h" ; then - sed -n -e '/CONFIG_TCG/d' -e '/CONFIG_USER_ONLY/d' \ - -e '/^#define / { s///; s/ .*//; s/^/#pragma GCC poison /p; }' \ - $target_configs_h | sort -u > config-poison.h -else - :> config-poison.h -fi - # Save the configure command line for later reuse. cat <<EOD >config.status #!/bin/sh diff --git a/meson.build b/meson.build index be592aa942..d36a18cb28 100644 --- a/meson.build +++ b/meson.build @@ -2028,6 +2028,18 @@ config_all += { 'CONFIG_ALL': true, } +target_configs_h = [] +foreach target: target_dirs + target_configs_h += config_target_h[target] + target_configs_h += config_devices_h.get(target, []) +endforeach +genh += custom_target('config-poison.h', + input: [target_configs_h], + output: 'config-poison.h', + capture: true, + command: [find_program('scripts/make-config-poison.sh'), + target_configs_h]) + ############## # Submodules # ############## diff --git a/scripts/make-config-poison.sh b/scripts/make-config-poison.sh new file mode 100755 index 0000000000..d222a04304 --- /dev/null +++ b/scripts/make-config-poison.sh @@ -0,0 +1,16 @@ +#! /bin/sh + +if test $# = 0; then + exit 0 +fi + +# Create list of config switches that should be poisoned in common code... +# but filter out CONFIG_TCG and CONFIG_USER_ONLY which are special. +exec sed -n \ + -e' /CONFIG_TCG/d' \ + -e '/CONFIG_USER_ONLY/d' \ + -e '/^#define / {' \ + -e 's///' \ + -e 's/ .*//' \ + -e 's/^/#pragma GCC poison /p' \ + -e '}' "$@" |