Преглед изворни кода

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>
Paul Brook пре 15 година
родитељ
комит
a992fe3d0f
4 измењених фајлова са 16 додато и 21 уклоњено
  1. 15 5
      Makefile
  2. 1 1
      Makefile.target
  3. 0 11
      config.h
  4. 0 4
      configure

+ 15 - 5
Makefile

@@ -1,7 +1,7 @@
 # Makefile for QEMU.
 # Makefile for QEMU.
 
 
 # This needs to be defined before rules.mak
 # 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),)
 ifneq ($(wildcard config-host.mak),)
 # Put the all: rule here so that config-host.mak can contain dependencies.
 # 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)
 config-all-devices.mak: $(SUBDIR_DEVICES_MAK)
 	$(call quiet-command,cat $(SUBDIR_DEVICES_MAK) | grep "=y$$" | sort -u > $@,"  GEN   $@")
 	$(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
 -include config-all-devices.mak
 
 
 build-all: $(DOCS) $(TOOLS) recurse-all
 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: config-host.h-timestamp
 config-host.h-timestamp: config-host.mak
 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_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
 
 
 subdir-%: $(GENERATED_HEADERS)
 subdir-%: $(GENERATED_HEADERS)
@@ -246,7 +256,7 @@ clean:
 
 
 distclean: 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-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 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}
 	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 \
 	for d in $(TARGET_DIRS) libhw32 libhw64 libuser; do \

+ 1 - 1
Makefile.target

@@ -1,7 +1,7 @@
 # -*- Mode: makefile -*-
 # -*- Mode: makefile -*-
 
 
 # This needs to be defined before rules.mak
 # 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-host.mak
 include config-devices.mak
 include config-devices.mak

+ 0 - 11
config.h

@@ -1,13 +1,2 @@
-
 #include "config-host.h"
 #include "config-host.h"
 #include "config-target.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

+ 0 - 4
configure

@@ -2209,10 +2209,6 @@ if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$targ
   mkdir -p $target_dir/nwfpe
   mkdir -p $target_dir/nwfpe
 fi
 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
 # don't use ln -sf as not all "ln -sf" over write the file/link
 #
 #