From patchwork Tue Dec 11 21:49:18 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Llu=C3=ADs_Vilanova?= X-Patchwork-Id: 205309 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id DC5C92C0082 for ; Wed, 12 Dec 2012 08:49:36 +1100 (EST) Received: from localhost ([::1]:44383 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TiXhm-0007Jk-Dm for incoming@patchwork.ozlabs.org; Tue, 11 Dec 2012 16:49:34 -0500 Received: from eggs.gnu.org ([208.118.235.92]:35585) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TiXha-0007JR-8j for qemu-devel@nongnu.org; Tue, 11 Dec 2012 16:49:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TiXhY-0005sU-HB for qemu-devel@nongnu.org; Tue, 11 Dec 2012 16:49:22 -0500 Received: from roura.ac.upc.es ([147.83.33.10]:57099) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TiXhY-0005qw-5j for qemu-devel@nongnu.org; Tue, 11 Dec 2012 16:49:20 -0500 Received: from gw.ac.upc.edu (gw.ac.upc.es [147.83.30.3]) by roura.ac.upc.es (8.13.8/8.13.8) with ESMTP id qBBLnI18019151; Tue, 11 Dec 2012 22:49:18 +0100 Received: from localhost (unknown [84.88.51.85]) by gw.ac.upc.edu (Postfix) with ESMTP id 2E9DD6B006C; Tue, 11 Dec 2012 22:49:18 +0100 (CET) From: =?utf-8?b?TGx1w61z?= Vilanova To: qemu-devel@nongnu.org Date: Tue, 11 Dec 2012 22:49:18 +0100 Message-Id: <20121211214917.977.90626.stgit@fimbulvetr.bsc.es> X-Mailer: git-send-email 1.7.10.4 User-Agent: StGit/0.16 MIME-Version: 1.0 X-MIME-Autoconverted: from 8bit to quoted-printable by roura.ac.upc.es id qBBLnI18019151 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 147.83.33.10 Cc: Stefan Hajnoczi Subject: [Qemu-devel] [PATCH] build: Use separate makefile for "trace/" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: LluĂ­s Vilanova --- .gitignore | 6 +-- Makefile | 8 ++- Makefile.objs | 64 +--------------------------- scripts/tracetool/backend/dtrace.py | 2 - trace/Makefile.objs | 81 +++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 69 deletions(-) create mode 100644 trace/Makefile.objs diff --git a/.gitignore b/.gitignore index bd6ba1c..b67a37e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,9 @@ config-all-devices.* config-host.* config-target.* trace.h -trace.c -trace-dtrace.h -trace-dtrace.dtrace +trace/generated.c +trace/generated-dtrace.h +trace/generated-dtrace.dtrace *-timestamp *-softmmu *-darwin-user diff --git a/Makefile b/Makefile index e9d6848..9dbcca3 100644 --- a/Makefile +++ b/Makefile @@ -33,10 +33,10 @@ endif GENERATED_HEADERS = config-host.h trace.h qemu-options.def ifeq ($(TRACE_BACKEND),dtrace) -GENERATED_HEADERS += trace-dtrace.h +GENERATED_HEADERS += trace/generated-dtrace.h endif GENERATED_HEADERS += qmp-commands.h qapi-types.h qapi-visit.h -GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c trace.c +GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c trace/generated.c # Don't try to regenerate Makefile or configure # We don't generate any of them @@ -252,9 +252,9 @@ clean: rm -f *.a *.lo $(TOOLS) $(HELPERS-y) qemu-ga TAGS cscope.* *.pod *~ */*~ rm -Rf .libs rm -f qemu-img-cmds.h - rm -f trace-dtrace.dtrace trace-dtrace.dtrace-timestamp @# May not be present in GENERATED_HEADERS - rm -f trace-dtrace.h trace-dtrace.h-timestamp + rm -f trace/generated-dtrace.dtrace trace/generated-dtrace.dtrace-timestamp + rm -f trace/generated-dtrace.h trace/generated-dtrace.h-timestamp rm -f $(foreach f,$(GENERATED_HEADERS),$(f) $(f)-timestamp) rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp) rm -rf qapi-generated diff --git a/Makefile.objs b/Makefile.objs index 3c7abca..24832a2 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -147,66 +147,7 @@ libdis-$(CONFIG_LM32_DIS) += lm32-dis.o ###################################################################### # trace -ifeq ($(TRACE_BACKEND),dtrace) -TRACE_H_EXTRA_DEPS=trace-dtrace.h -endif -trace.h: trace.h-timestamp $(TRACE_H_EXTRA_DEPS) -trace.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --format=h \ - --backend=$(TRACE_BACKEND) \ - < $< > $@," GEN trace.h") - @cmp -s $@ trace.h || cp $@ trace.h - -trace.c: trace.c-timestamp -trace.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --format=c \ - --backend=$(TRACE_BACKEND) \ - < $< > $@," GEN trace.c") - @cmp -s $@ trace.c || cp $@ trace.c - -trace.o: trace.c $(GENERATED_HEADERS) - -trace-dtrace.h: trace-dtrace.dtrace - $(call quiet-command,dtrace -o $@ -h -s $<, " GEN trace-dtrace.h") - -# Normal practice is to name DTrace probe file with a '.d' extension -# but that gets picked up by QEMU's Makefile as an external dependency -# rule file. So we use '.dtrace' instead -trace-dtrace.dtrace: trace-dtrace.dtrace-timestamp -trace-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --format=d \ - --backend=$(TRACE_BACKEND) \ - < $< > $@," GEN trace-dtrace.dtrace") - @cmp -s $@ trace-dtrace.dtrace || cp $@ trace-dtrace.dtrace - -trace-dtrace.o: trace-dtrace.dtrace $(GENERATED_HEADERS) - $(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace-dtrace.o") - -ifeq ($(LIBTOOL),) -trace-dtrace.lo: trace-dtrace.dtrace - @echo "missing libtool. please install and rerun configure."; exit 1 -else -trace-dtrace.lo: trace-dtrace.dtrace - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN trace-dtrace.o") -endif - -trace/simple.o: trace/simple.c $(GENERATED_HEADERS) - -trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace.o -ifneq ($(TRACE_BACKEND),dtrace) -trace-obj-y = trace.o -endif - -trace-obj-$(CONFIG_TRACE_DEFAULT) += trace/default.o -trace-obj-$(CONFIG_TRACE_SIMPLE) += trace/simple.o -trace-obj-$(CONFIG_TRACE_SIMPLE) += qemu-timer-common.o -trace-obj-$(CONFIG_TRACE_STDERR) += trace/stderr.o -trace-obj-y += trace/control.o - -$(trace-obj-y): $(GENERATED_HEADERS) +trace-obj-y += trace/ ###################################################################### # smartcard @@ -250,5 +191,6 @@ nested-vars += \ block-obj-y \ user-obj-y \ common-obj-y \ - extra-obj-y + extra-obj-y \ + trace-obj-y dummy := $(call unnest-vars) diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backend/dtrace.py index 23c43e2..0cbc68a 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -37,7 +37,7 @@ def c(events): def h(events): - out('#include "trace-dtrace.h"', + out('#include "trace/generated-dtrace.h"', '') for e in events: diff --git a/trace/Makefile.objs b/trace/Makefile.objs new file mode 100644 index 0000000..d7e8cdf --- /dev/null +++ b/trace/Makefile.objs @@ -0,0 +1,81 @@ +# -*- mode: makefile -*- + +trace/simple.o: trace/simple.c $(GENERATED_HEADERS) + +trace-obj-$(CONFIG_TRACE_DEFAULT) += default.o +trace-obj-$(CONFIG_TRACE_SIMPLE) += simple.o +trace-obj-$(CONFIG_TRACE_SIMPLE) += ../qemu-timer-common.o +trace-obj-$(CONFIG_TRACE_STDERR) += stderr.o +trace-obj-y += control.o + + +###################################################################### +# Auto-generated tracing routines + +# NOTE: "trace.h" is kept in the top-level dir to shorten common include path +ifeq ($(TRACE_BACKEND),dtrace) +TRACE_H_EXTRA_DEPS=trace/generated-dtrace.h +endif +trace.h: trace.h-timestamp $(TRACE_H_EXTRA_DEPS) +trace.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak + $(call quiet-command,$(TRACETOOL) \ + --format=h \ + --backend=$(TRACE_BACKEND) \ + < $< > $@," GEN trace.h") + @cmp -s $@ trace.h || cp $@ trace.h + + +trace/generated.c: trace/generated.c-timestamp +trace/generated.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak + $(call quiet-command,$(TRACETOOL) \ + --format=c \ + --backend=$(TRACE_BACKEND) \ + < $< > $@," GEN trace/generated.c") + @cmp -s $@ trace/generated.c || cp $@ trace/generated.c + +trace/generated.o: trace/generated.c trace.h + + +ifneq ($(TRACE_BACKEND),dtrace) +trace-obj-y += generated.o +endif + + +###################################################################### +# Auto-generated DTrace code + +# Normal practice is to name DTrace probe file with a '.d' extension +# but that gets picked up by QEMU's Makefile as an external dependency +# rule file. So we use '.dtrace' instead +trace/generated-dtrace.dtrace: trace/generated-dtrace.dtrace-timestamp +trace/generated-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak + $(call quiet-command,$(TRACETOOL) \ + --format=d \ + --backend=$(TRACE_BACKEND) \ + < $< > $@," GEN trace/generated-dtrace.dtrace") + @cmp -s $@ trace/generated-dtrace.dtrace || cp $@ trace/generated-dtrace.dtrace + + +trace/generated-dtrace.h: trace/generated-dtrace.dtrace + $(call quiet-command,dtrace -o $@ -h -s $<, " GEN trace/generated-dtrace.h") + +trace/generated-dtrace.o: trace/generated-dtrace.dtrace $(GENERATED_HEADERS) + $(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace/generated-dtrace.o") + + +ifeq ($(LIBTOOL),) +trace/generated-dtrace.lo: trace/generated-dtrace.dtrace + @echo "missing libtool. please install and rerun configure."; exit 1 +else +trace/generated-dtrace.lo: trace/generated-dtrace.dtrace + $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN trace/generated-dtrace.lo") +endif + + +trace-obj-$(CONFIG_TRACE_DTRACE) += generated-dtrace.o + + +###################################################################### +# Keep at bottom + +$(trace-obj-y): $(GENERATED_HEADERS)