# -*- mode: makefile -*-

######################################################################
# Auto-generated event descriptions

$(obj)/generated-events.h: $(obj)/generated-events.h-timestamp
$(obj)/generated-events.h-timestamp: $(SRC_PATH)/trace-events
	$(call quiet-command,$(TRACETOOL) \
		--format=events-h \
		--backend=events \
		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)

$(obj)/generated-events.c: $(obj)/generated-events.c-timestamp $(BUILD_DIR)/config-host.mak
$(obj)/generated-events.c-timestamp: $(SRC_PATH)/trace-events
	$(call quiet-command,$(TRACETOOL) \
		--format=events-c \
		--backend=events \
		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)

util-obj-y += generated-events.o


######################################################################
# Auto-generated tracing routines

$(obj)/generated-tracers.h: $(obj)/generated-tracers.h-timestamp
	@cmp -s $< $@ || cp $< $@
$(obj)/generated-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
	$(call quiet-command,$(TRACETOOL) \
		--format=h \
		--backend=$(TRACE_BACKEND) \
		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")

######################################################################
# Auto-generated tracing routines (non-DTrace)

ifneq ($(TRACE_BACKEND),dtrace)
$(obj)/generated-tracers.c: $(obj)/generated-tracers.c-timestamp
	@cmp -s $< $@ || cp $< $@
$(obj)/generated-tracers.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
	$(call quiet-command,$(TRACETOOL) \
		--format=c \
		--backend=$(TRACE_BACKEND) \
		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")

$(obj)/generated-tracers.o: $(obj)/generated-tracers.c $(obj)/generated-tracers.h
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
ifeq ($(TRACE_BACKEND),dtrace)
$(obj)/generated-tracers.dtrace: $(obj)/generated-tracers.dtrace-timestamp
$(obj)/generated-tracers.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak
	$(call quiet-command,$(TRACETOOL) \
		--format=d \
		--backend=$(TRACE_BACKEND) \
		< $< > $@,"  GEN   $(patsubst %-timestamp,%,$@)")
	@cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@)

$(obj)/generated-tracers-dtrace.h: $(obj)/generated-tracers.dtrace
	$(call quiet-command,dtrace -o $@ -h -s $<, "  GEN   $@")

$(obj)/generated-tracers.o: $(obj)/generated-tracers.dtrace
endif

######################################################################
# Backend code

util-obj-$(CONFIG_TRACE_DEFAULT) += default.o
util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o
util-obj-$(CONFIG_TRACE_STDERR) += stderr.o
util-obj-y += control.o
util-obj-y += generated-tracers.o
