aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2009-11-05 17:19:57 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-11-12 11:23:54 -0600
commitf527c57935e22b56952d1ed1af36070b682ecf70 (patch)
tree70f98a9294db58bb7839a1e1af021a5536941048
parent593831de5dce5f5b9ce1226e0d8353eecb1176e4 (diff)
fix parallel build
Based on a ideas of Daniel Jacobowitz + Stefan Weil Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--Makefile8
-rw-r--r--Makefile.target6
-rw-r--r--rules.mak2
3 files changed, 10 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index dbbff3ee21..7be0a15dbd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,8 @@
# Makefile for QEMU.
+# This needs to be defined before rules.mak
+GENERATED_HEADERS = config-host.h config-all-devices.h
+
ifneq ($(wildcard config-host.mak),)
# Put the all: rule here so that config-host.mak can contain dependencies.
all: build-all
@@ -40,8 +43,7 @@ config-all-devices.mak: $(SUBDIR_DEVICES_MAK)
-include config-all-devices.mak
-build-all: config-host.h config-all-devices.h $(DOCS) $(TOOLS)
- $(call quiet-command, $(MAKE) $(SUBDIR_MAKEFLAGS) recurse-all,)
+build-all: $(DOCS) $(TOOLS) recurse-all
config-host.h: config-host.h-timestamp
config-host.h-timestamp: config-host.mak
@@ -51,7 +53,7 @@ config-all-devices.h-timestamp: config-all-devices.mak
SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
-subdir-%: config-host.h config-all-devices.h
+subdir-%: $(GENERATED_HEADERS)
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,)
$(filter %-softmmu,$(SUBDIR_RULES)): libqemu_common.a
diff --git a/Makefile.target b/Makefile.target
index bc3c375c39..7068dc5e08 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -1,5 +1,8 @@
# -*- Mode: makefile -*-
+# This needs to be defined before rules.mak
+GENERATED_HEADERS = config-target.h config-devices.h
+
include ../config-host.mak
include config-devices.mak
include config-target.mak
@@ -33,8 +36,7 @@ config-target.h-timestamp: config-target.mak
config-devices.h: config-devices.h-timestamp
config-devices.h-timestamp: config-devices.mak
-all: config-target.h config-devices.h
- $(call quiet-command, $(MAKE) $(PROGS),)
+all: $(PROGS)
# Dummy command so that make thinks it has done something
@true
diff --git a/rules.mak b/rules.mak
index 5d7e8bb092..4eb1f90306 100644
--- a/rules.mak
+++ b/rules.mak
@@ -13,7 +13,7 @@ MAKEFLAGS += -rR
QEMU_CFLAGS += -MMD -MP -MT $@
-%.o: %.c
+%.o: %.c $(GENERATED_HEADERS)
$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) -c -o $@ $<," CC $(TARGET_DIR)$@")
%.o: %.S