aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2009-11-22 16:25:30 +0000
committerPaul Brook <paul@codesourcery.com>2009-11-22 21:24:54 +0000
commita992fe3d0fc185112677286f7a02204d8245b61e (patch)
treec3cc533d4bb8e1ed5dfebba895bdd4bdb31e67d4
parent60c9af07aa1239fa7281326b691501378c9e53d1 (diff)
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 <paul@codesourcery.com>
-rw-r--r--Makefile20
-rw-r--r--Makefile.target2
-rw-r--r--config.h11
-rwxr-xr-xconfigure4
4 files changed, 16 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index d770e2a674..e9b09ca825 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 ab774e529b..2985658d9d 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 07d79d4ba1..e20f78696a 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 b65c11c725..1223fc8293 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
#