mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00

Having tracetool.py figure out the right group name from just the input filename is not practical when considering the different build vs src path combinations. Instead simply take the group name as a command line arg from the Makefile, which can trivially provide the right name. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 20170125161417.31949-6-berrange@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
151 lines
5.3 KiB
Makefile
151 lines
5.3 KiB
Makefile
# -*- mode: makefile -*-
|
|
|
|
######################################################################
|
|
# tracetool source files
|
|
# Every rule that invokes tracetool must depend on this so code is regenerated
|
|
# if tracetool itself changes.
|
|
|
|
tracetool-y = $(SRC_PATH)/scripts/tracetool.py
|
|
tracetool-y += $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py")
|
|
|
|
$(BUILD_DIR)/trace-events-all: $(trace-events-y:%=$(SRC_PATH)/%)
|
|
$(call quiet-command,cat $^ > $@)
|
|
|
|
######################################################################
|
|
# Auto-generated event descriptions for LTTng ust code
|
|
|
|
ifeq ($(findstring ust,$(TRACE_BACKENDS)),ust)
|
|
|
|
$(obj)/generated-ust-provider.h: $(obj)/generated-ust-provider.h-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-ust-provider.h-timestamp: $(BUILD_DIR)/trace-events-all $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=ust-events-h \
|
|
--backends=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-ust.c: $(obj)/generated-ust.c-timestamp $(BUILD_DIR)/config-host.mak
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-ust.c-timestamp: $(BUILD_DIR)/trace-events-all $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=ust-events-c \
|
|
--backends=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-tracers.h: $(obj)/generated-ust-provider.h
|
|
$(obj)/generated-tracers.c: $(obj)/generated-ust.c
|
|
|
|
endif
|
|
|
|
|
|
######################################################################
|
|
# Auto-generated tracing routines
|
|
|
|
##################################################
|
|
# Execution level
|
|
|
|
$(obj)/generated-tracers.h: $(obj)/generated-tracers.h-timestamp
|
|
@cmp -s $< $@ || cp $< $@
|
|
$(obj)/generated-tracers.h-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=h \
|
|
--backends=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
##############################
|
|
# non-DTrace
|
|
|
|
$(obj)/generated-tracers.c: $(obj)/generated-tracers.c-timestamp
|
|
@cmp -s $< $@ || cp $< $@
|
|
$(obj)/generated-tracers.c-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=c \
|
|
--backends=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-tracers.o: $(obj)/generated-tracers.c $(obj)/generated-tracers.h
|
|
|
|
##############################
|
|
# DTrace
|
|
|
|
# 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
|
|
ifeq ($(findstring dtrace,$(TRACE_BACKENDS)),dtrace)
|
|
|
|
$(obj)/generated-tracers-dtrace.dtrace: $(obj)/generated-tracers-dtrace.dtrace-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-tracers-dtrace.dtrace-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=d \
|
|
--backends=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-tracers-dtrace.h: $(obj)/generated-tracers-dtrace.dtrace
|
|
$(call quiet-command,dtrace -o $@ -h -s $<,"GEN","$@")
|
|
|
|
$(obj)/generated-tracers-dtrace.o: $(obj)/generated-tracers-dtrace.dtrace
|
|
|
|
util-obj-y += generated-tracers-dtrace.o
|
|
endif
|
|
|
|
##################################################
|
|
# Translation level
|
|
|
|
$(obj)/generated-helpers-wrappers.h: $(obj)/generated-helpers-wrappers.h-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-helpers-wrappers.h-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=tcg-helper-wrapper-h \
|
|
--backend=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-helpers.h: $(obj)/generated-helpers.h-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-helpers.h-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=tcg-helper-h \
|
|
--backend=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-helpers.c: $(obj)/generated-helpers.c-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-helpers.c-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=tcg-helper-c \
|
|
--backend=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
$(obj)/generated-helpers.o: $(obj)/generated-helpers.c
|
|
|
|
target-obj-y += generated-helpers.o
|
|
|
|
|
|
$(obj)/generated-tcg-tracers.h: $(obj)/generated-tcg-tracers.h-timestamp
|
|
@cmp $< $@ >/dev/null 2>&1 || cp $< $@
|
|
$(obj)/generated-tcg-tracers.h-timestamp: $(BUILD_DIR)/trace-events-all $(BUILD_DIR)/config-host.mak $(tracetool-y)
|
|
$(call quiet-command,$(TRACETOOL) \
|
|
--group=all \
|
|
--format=tcg-h \
|
|
--backend=$(TRACE_BACKENDS) \
|
|
$< > $@,"GEN","$(patsubst %-timestamp,%,$@)")
|
|
|
|
|
|
######################################################################
|
|
# Backend code
|
|
|
|
util-obj-y += generated-tracers.o
|
|
util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o
|
|
util-obj-$(CONFIG_TRACE_FTRACE) += ftrace.o
|
|
util-obj-$(CONFIG_TRACE_UST) += generated-ust.o
|
|
util-obj-y += control.o
|
|
target-obj-y += control-target.o
|
|
util-obj-y += qmp.o
|