From a992fe3d0fc185112677286f7a02204d8245b61e Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Sun, 22 Nov 2009 16:25:30 +0000 Subject: [PATCH] Makefile dependencies for device configs Add makefile dependencies for target specific device configs. These will copy the default config if none exists, obsoleting the old configure time code. If a config already exists but is older than the default then print a warning. Also remove config-devices.h. Code does not and should not care which devices are being built. Signed-off-by: Paul Brook --- Makefile | 20 +++++++++++++++----- Makefile.target | 2 +- config.h | 11 ----------- configure | 4 ---- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index d770e2a67..e9b09ca82 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Makefile for QEMU. # This needs to be defined before rules.mak -GENERATED_HEADERS = config-host.h config-all-devices.h +GENERATED_HEADERS = config-host.h ifneq ($(wildcard config-host.mak),) # Put the all: rule here so that config-host.mak can contain dependencies. @@ -41,6 +41,19 @@ SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_DIRS)) config-all-devices.mak: $(SUBDIR_DEVICES_MAK) $(call quiet-command,cat $(SUBDIR_DEVICES_MAK) | grep "=y$$" | sort -u > $@," GEN $@") +%/config-devices.mak: default-configs/%.mak + $(call quiet-command,cat $< > $@.tmp, " GEN $@") + @if test -f $@ ; then \ + echo "WARNING: $@ out of date." ;\ + echo "Run \"make defconfing\" to regenerate." ; \ + rm $@.tmp ; \ + else \ + mv $@.tmp $@ ; \ + fi + +defconfig: + rm -f config-all-devices.mak $(SUBDIR_DEVICES_MAK) + -include config-all-devices.mak build-all: $(DOCS) $(TOOLS) recurse-all @@ -48,9 +61,6 @@ build-all: $(DOCS) $(TOOLS) recurse-all config-host.h: config-host.h-timestamp config-host.h-timestamp: config-host.mak -config-all-devices.h: config-all-devices.h-timestamp -config-all-devices.h-timestamp: config-all-devices.mak - SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS)) subdir-%: $(GENERATED_HEADERS) @@ -246,7 +256,7 @@ clean: distclean: clean rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi - rm -f config-all-devices.mak config-all-devices.h* + rm -f config-all-devices.mak rm -f roms/seabios/config.mak roms/vgabios/config.mak rm -f qemu-{doc,tech}.{info,aux,cp,dvi,fn,info,ky,log,pg,toc,tp,vr} for d in $(TARGET_DIRS) libhw32 libhw64 libuser; do \ diff --git a/Makefile.target b/Makefile.target index ab774e529..2985658d9 100644 --- a/Makefile.target +++ b/Makefile.target @@ -1,7 +1,7 @@ # -*- Mode: makefile -*- # This needs to be defined before rules.mak -GENERATED_HEADERS = config-target.h config-devices.h +GENERATED_HEADERS = config-target.h include ../config-host.mak include config-devices.mak diff --git a/config.h b/config.h index 07d79d4ba..e20f78696 100644 --- a/config.h +++ b/config.h @@ -1,13 +1,2 @@ - #include "config-host.h" #include "config-target.h" - -/* We want to include different config files for specific targets - And for the common library. They need a different name because - we don't want to rely in paths */ - -#if defined(NEED_CPU_H) -#include "config-devices.h" -#else -#include "config-all-devices.h" -#endif diff --git a/configure b/configure index b65c11c72..1223fc829 100755 --- a/configure +++ b/configure @@ -2209,10 +2209,6 @@ if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$targ mkdir -p $target_dir/nwfpe fi -if test ! -f $target_dir/config-devices.mak ; then - cp $source_path/default-configs/${target}.mak $target_dir/config-devices.mak -fi - # # don't use ln -sf as not all "ln -sf" over write the file/link #