trace: add meson custom_target() depend_files for tracetool

Re-generate tracetool output when the tracetool source code changes. Use
the same approach as qapi_gen_depends and introduce a tracetool_depends
files list so meson is aware of the dependencies.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210125110958.214017-1-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2021-01-25 11:09:58 +00:00
parent 09612de7e9
commit 0572d6cd29
2 changed files with 41 additions and 8 deletions

View File

@ -1632,6 +1632,31 @@ tracetool = [
python, files('scripts/tracetool.py'), python, files('scripts/tracetool.py'),
'--backend=' + config_host['TRACE_BACKENDS'] '--backend=' + config_host['TRACE_BACKENDS']
] ]
tracetool_depends = files(
'scripts/tracetool/backend/log.py',
'scripts/tracetool/backend/__init__.py',
'scripts/tracetool/backend/dtrace.py',
'scripts/tracetool/backend/ftrace.py',
'scripts/tracetool/backend/simple.py',
'scripts/tracetool/backend/syslog.py',
'scripts/tracetool/backend/ust.py',
'scripts/tracetool/format/tcg_h.py',
'scripts/tracetool/format/ust_events_c.py',
'scripts/tracetool/format/ust_events_h.py',
'scripts/tracetool/format/__init__.py',
'scripts/tracetool/format/d.py',
'scripts/tracetool/format/tcg_helper_c.py',
'scripts/tracetool/format/simpletrace_stap.py',
'scripts/tracetool/format/c.py',
'scripts/tracetool/format/h.py',
'scripts/tracetool/format/tcg_helper_h.py',
'scripts/tracetool/format/log_stap.py',
'scripts/tracetool/format/stap.py',
'scripts/tracetool/format/tcg_helper_wrapper_h.py',
'scripts/tracetool/__init__.py',
'scripts/tracetool/transform.py',
'scripts/tracetool/vcpu.py'
)
qemu_version_cmd = [find_program('scripts/qemu-version.sh'), qemu_version_cmd = [find_program('scripts/qemu-version.sh'),
meson.current_source_dir(), meson.current_source_dir(),
@ -2219,7 +2244,8 @@ foreach target : target_dirs
'--target-type=' + target_type, '--target-type=' + target_type,
'--probe-prefix=qemu.' + target_type + '.' + target_name, '--probe-prefix=qemu.' + target_type + '.' + target_name,
'@INPUT@', '@OUTPUT@' '@INPUT@', '@OUTPUT@'
]) ],
depend_files: tracetool_depends)
endforeach endforeach
endif endif
endforeach endforeach

View File

@ -12,17 +12,20 @@ foreach dir : [ '.' ] + trace_events_subdirs
trace_h = custom_target(fmt.format('trace', 'h'), trace_h = custom_target(fmt.format('trace', 'h'),
output: fmt.format('trace', 'h'), output: fmt.format('trace', 'h'),
input: trace_events_file, input: trace_events_file,
command: [ tracetool, group, '--format=h', '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, group, '--format=h', '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
genh += trace_h genh += trace_h
trace_c = custom_target(fmt.format('trace', 'c'), trace_c = custom_target(fmt.format('trace', 'c'),
output: fmt.format('trace', 'c'), output: fmt.format('trace', 'c'),
input: trace_events_file, input: trace_events_file,
command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, group, '--format=c', '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
if 'CONFIG_TRACE_UST' in config_host if 'CONFIG_TRACE_UST' in config_host
trace_ust_h = custom_target(fmt.format('trace-ust', 'h'), trace_ust_h = custom_target(fmt.format('trace-ust', 'h'),
output: fmt.format('trace-ust', 'h'), output: fmt.format('trace-ust', 'h'),
input: trace_events_file, input: trace_events_file,
command: [ tracetool, group, '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, group, '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
trace_ss.add(trace_ust_h, lttng, urcubp) trace_ss.add(trace_ust_h, lttng, urcubp)
genh += trace_ust_h genh += trace_ust_h
endif endif
@ -31,7 +34,8 @@ foreach dir : [ '.' ] + trace_events_subdirs
trace_dtrace = custom_target(fmt.format('trace-dtrace', 'dtrace'), trace_dtrace = custom_target(fmt.format('trace-dtrace', 'dtrace'),
output: fmt.format('trace-dtrace', 'dtrace'), output: fmt.format('trace-dtrace', 'dtrace'),
input: trace_events_file, input: trace_events_file,
command: [ tracetool, group, '--format=d', '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, group, '--format=d', '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
trace_dtrace_h = custom_target(fmt.format('trace-dtrace', 'h'), trace_dtrace_h = custom_target(fmt.format('trace-dtrace', 'h'),
output: fmt.format('trace-dtrace', 'h'), output: fmt.format('trace-dtrace', 'h'),
input: trace_dtrace, input: trace_dtrace,
@ -66,7 +70,8 @@ foreach d : [
gen = custom_target(d[0], gen = custom_target(d[0],
output: d[0], output: d[0],
input: meson.source_root() / 'trace-events', input: meson.source_root() / 'trace-events',
command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, '--group=root', '--format=@0@'.format(d[1]), '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
specific_ss.add(when: 'CONFIG_TCG', if_true: gen) specific_ss.add(when: 'CONFIG_TCG', if_true: gen)
endforeach endforeach
@ -74,11 +79,13 @@ if 'CONFIG_TRACE_UST' in config_host
trace_ust_all_h = custom_target('trace-ust-all.h', trace_ust_all_h = custom_target('trace-ust-all.h',
output: 'trace-ust-all.h', output: 'trace-ust-all.h',
input: trace_events_files, input: trace_events_files,
command: [ tracetool, '--group=all', '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, '--group=all', '--format=ust-events-h', '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
trace_ust_all_c = custom_target('trace-ust-all.c', trace_ust_all_c = custom_target('trace-ust-all.c',
output: 'trace-ust-all.c', output: 'trace-ust-all.c',
input: trace_events_files, input: trace_events_files,
command: [ tracetool, '--group=all', '--format=ust-events-c', '@INPUT@', '@OUTPUT@' ]) command: [ tracetool, '--group=all', '--format=ust-events-c', '@INPUT@', '@OUTPUT@' ],
depend_files: tracetool_depends)
trace_ss.add(trace_ust_all_h, trace_ust_all_c) trace_ss.add(trace_ust_all_h, trace_ust_all_c)
genh += trace_ust_all_h genh += trace_ust_all_h
endif endif