diff mbox

[15/17] Makefile: add qidl-generation of vmstate field descriptions

Message ID 1338858018-17189-16-git-send-email-mdroth@linux.vnet.ibm.com
State New
Headers show

Commit Message

Michael Roth June 5, 2012, 1 a.m. UTC
This will rebuild the vmstate descriptions in
$(SRC_DIR)/qidl-generated whenever we do a build where one of the
annotated sources has been modified. As a result, changes will be
reflected in the working tree so we can detect changes and commit
them in cases where the changes are correct/expected.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 Makefile.target |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/Makefile.target b/Makefile.target
index 45e4459..0844401 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -22,7 +22,7 @@  QEMU_CFLAGS += -I.. -I$(TARGET_PATH) -DNEED_CPU_H
 
 qidl-dir := $(SRC_PATH)/qidl-generated
 qapi-dir := $(BUILD_DIR)/qapi-generated
-QEMU_CFLAGS += -I$(qapi-dir)
+QEMU_CFLAGS += -I$(qapi-dir) -I$(qidl-dir)
 
 include $(SRC_PATH)/Makefile.objs
 
@@ -74,7 +74,7 @@  else
 stap:
 endif
 
-all: $(PROGS) stap
+all: $(PROGS) stap $(QIDL_VMSTATE)
 
 # Dummy command so that make thinks it has done something
 	@true
@@ -109,6 +109,19 @@  $(QIDL_DEVICE_VISITORS): $(QIDL_DEVICE_VISITOR_SOURCES)
 $(QIDL_DEVICES): $(QIDL_DEVICE_VISITORS)
 
 #########################################################
+# QIDL-generated vmstate field descriptions
+QIDL_SOURCES_VMSTATE_SHORT=hw/mc146818rtc_state.h
+QIDL_SOURCES_VMSTATE=$(addprefix $(SRC_PATH)/, $(QIDL_SOURCES_VMSTATE_SHORT))
+QIDL_VMSTATE=$(patsubst %.h,$(qidl-dir)/%_vmstate.h, $(subst _state,, $(notdir $(QIDL_SOURCES_VMSTATE))))
+
+$(QIDL_VMSTATE) qidl-vmstate: $(QIDL_SOURCES_VMSTATE)
+	mkdir -p $(qidl-dir)
+	for f in $(QIDL_SOURCES_VMSTATE); do \
+	vmstate_filename=$(qidl-dir)/`basename $$(basename $$f .h) _state`_vmstate.h; \
+	$(PYTHON) $(SRC_PATH)/scripts/qc.py --vmstate < $$f >$$vmstate_filename; \
+	done
+
+#########################################################
 # cpu emulator library
 libobj-y = exec.o translate-all.o cpu-exec.o translate.o
 libobj-y += tcg/tcg.o tcg/optimize.o