@ -137,184 +137,60 @@ FULL_VERSION := $(if $(QEMU_PKGVERSION),$(VERSION) ($(QEMU_PKGVERSION)),$(VERSIO
generated-files-y = qemu-version.h config-host.h qemu-options.def
GENERATED_QAPI_FILES = qapi/qapi-builtin-types.h qapi/qapi-builtin-types.c
GENERATED_QAPI_FILES += qapi/qapi-types.h qapi/qapi-types.c
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-types-%.h)
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-types-%.c)
GENERATED_QAPI_FILES += qapi/qapi-builtin-visit.h qapi/qapi-builtin-visit.c
GENERATED_QAPI_FILES += qapi/qapi-visit.h qapi/qapi-visit.c
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-visit-%.h)
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-visit-%.c)
GENERATED_QAPI_FILES += qapi/qapi-init-commands.h qapi/qapi-init-commands.c
GENERATED_QAPI_FILES += qapi/qapi-commands.h qapi/qapi-commands.c
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-commands-%.h)
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-commands-%.c)
GENERATED_QAPI_FILES += qapi/qapi-emit-events.h qapi/qapi-emit-events.c
GENERATED_QAPI_FILES += qapi/qapi-events.h qapi/qapi-events.c
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-events-%.h)
GENERATED_QAPI_FILES += $( QAPI_MODULES:%= qapi/qapi-events-%.c)
GENERATED_QAPI_FILES += qapi/qapi-introspect.c qapi/qapi-introspect.h
GENERATED_QAPI_FILES += qapi/qapi-doc.texi
# The following list considers only the storage daemon main module. All other
# modules are currently shared with the main schema, so we don't actually
# generate additional files.
GENERATED_STORAGE_DAEMON_QAPI_FILES = storage-daemon/qapi/qapi-commands.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-commands.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-emit-events.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-emit-events.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-events.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-events.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-init-commands.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-init-commands.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-introspect.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-introspect.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-types.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-types.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-visit.h
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-visit.c
GENERATED_STORAGE_DAEMON_QAPI_FILES += storage-daemon/qapi/qapi-doc.texi
generated-files-y += $( GENERATED_QAPI_FILES)
generated-files-y += $( GENERATED_STORAGE_DAEMON_QAPI_FILES)
generated-files-y += trace/generated-tcg-tracers.h
generated-files-y += trace/generated-helpers-wrappers.h
generated-files-y += trace/generated-helpers.h
generated-files-y += trace/generated-helpers.c
generated-files-$(CONFIG_TRACE_UST) += trace-ust-all.h
generated-files-$(CONFIG_TRACE_UST) += trace-ust-all.c
generated-files-y += module_block.h
TRACE_HEADERS = trace/trace-root.h
TRACE_SOURCES = trace/trace-root.c
TRACE_DTRACE =
i f d e f C O N F I G _ T R A C E _ D T R A C E
TRACE_HEADERS += trace-dtrace-root.h $( trace-events-subdirs:%= %/trace-dtrace.h)
TRACE_DTRACE += trace-dtrace-root.dtrace $( trace-events-subdirs:%= %/trace-dtrace.dtrace)
e n d i f
i f d e f C O N F I G _ T R A C E _ U S T
TRACE_HEADERS += trace-ust-root.h $( trace-events-subdirs:%= %/trace-ust.h)
e n d i f
generated-files-y += $( BUILD_DIR) /trace-events-all
generated-files-y += .git-submodule-status
trace-group-name = $( shell dirname $1 | sed -e 's/[^a-zA-Z0-9]/_/g' )
trace-group-suffix = $( shell echo $1 | sed -e 's/[^a-zA-Z0-9]/_/g' )
tracetool-y = $( SRC_PATH) /scripts/tracetool.py
tracetool-y += $( shell find $( SRC_PATH) /scripts/tracetool -name "*.py" )
d e f i n e _ _ t r a c e _ r u l e s
TRACE_HEADERS += trace/trace-$2 .h
TRACE_SOURCES += trace/trace-$2 .c
trace-obj-y += trace/trace-$2 .o
trace/trace-$2.h : trace /trace -$2.h -timestamp
@cmp $$ < $$ @ >/dev/null 2>& 1 || cp $$ < $$ @
trace/trace-$2.h-timestamp : $( SRC_PATH ) /$1/trace -events $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
$( call quiet-command,$( TRACETOOL) \
--group= $2 \
--format= h \
--backends= $( TRACE_BACKENDS) \
$$ < > $$ @,"GEN" ," $$ (@:%-timestamp=%) " )
trace/trace-$2.c : trace /trace -$2.c -timestamp
@cmp $$ < $$ @ >/dev/null 2>& 1 || cp $$ < $$ @
trace/trace-$2.c-timestamp : $( SRC_PATH ) /$1/trace -events $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
$( call quiet-command,$( TRACETOOL) \
--group= $2 \
--format= c \
--backends= $( TRACE_BACKENDS) \
$$ < > $$ @,"GEN" ," $$ (@:%-timestamp=%) " )
e n d e f
%/trace-ust.h : %/trace -ust .h -timestamp
trace/generated-helpers-wrappers.h : trace /generated -helpers -wrappers .h -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
%/trace-ust.h-timestamp : $( SRC_PATH ) /%/trace -events $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
$( call quiet-command,$( TRACETOOL) \
--group= $( call trace-group-name,$@ ) \
--format= ust-events-h \
--backends= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( @:%-timestamp= %) " )
%/trace-dtrace.dtrace : %/trace -dtrace .dtrace -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
%/trace-dtrace.dtrace-timestamp : $( SRC_PATH ) /%/trace -events $( BUILD_DIR ) /config -host .mak $( tracetool -y )
$( call quiet-command,$( TRACETOOL) \
--group= $( call trace-group-name,$@ ) \
--format= d \
--backends= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( @:%-timestamp= %) " )
%/trace-dtrace.h : %/trace -dtrace .dtrace $( tracetool -y )
$( call quiet-command,dtrace -o $@ -h -s $<, "GEN" ," $@ " )
%/trace-dtrace.o : %/trace -dtrace .dtrace $( tracetool -y )
trace/trace-root.h : trace /trace -root .h -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
trace/trace-root.h-timestamp : $( SRC_PATH ) /trace -events $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
trace/generated-helpers-wrappers.h-timestamp : $( SRC_PATH ) /trace -events $( BUILD_DIR ) /config -host .mak $( tracetool -y )
@mkdir -p $( dir $@ )
$( call quiet-command,$( TRACETOOL) \
--group= root \
--format= h \
--backends = $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( @:%-timestamp= % ) " )
--format= tcg-helper-wrapper-h \
--backend= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( patsubst %-timestamp,%,$@ ) " )
trace/trace-root.c : trace /trace -root .c -timestamp
trace/generated-helpers.h : trace /generated -helpers .h -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
trace/trace-root.c-timestamp : $( SRC_PATH ) /trace -events $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
trace/generated-helpers.h-timestamp : $( SRC_PATH ) /trace -events $( BUILD_DIR ) /config -host .mak $( tracetool -y )
@mkdir -p $( dir $@ )
$( call quiet-command,$( TRACETOOL) \
--group= root \
--format= c \
--backends = $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( @:%-timestamp= % ) " )
--format= tcg-helper-h \
--backend= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( patsubst %-timestamp,%,$@ ) " )
trace-ust-root.h : trace -ust -root .h -timestamp
trace/generated-helpers.c : trace /generated -helpers .c -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
trace-ust-root.h-timestamp : $( SRC_PATH ) /trace -events $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
trace/generated-helpers.c-timestamp : $( SRC_PATH ) /trace -events $( BUILD_DIR ) /config -host .mak $( tracetool -y )
@mkdir -p $( dir $@ )
$( call quiet-command,$( TRACETOOL) \
--group= root \
--format= ust-events-h \
--backends= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( @:%-timestamp= %) " )
trace-ust-all.h : trace -ust -all .h -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
trace-ust-all.h-timestamp : $( trace -events -files ) $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
$( call quiet-command,$( TRACETOOL) \
--group= all \
--format= ust-events-h \
--backends= $( TRACE_BACKENDS) \
$( trace-events-files) > $@ ,"GEN" ," $( @:%-timestamp= %) " )
--format= tcg-helper-c \
--backend= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( patsubst %-timestamp,%,$@ ) " )
trace-ust-all.c : trace -ust -all .c -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
trace-ust-all.c-timestamp : $( trace -events -files ) $( tracetool -y ) $( BUILD_DIR ) /config -host .mak
$( call quiet-command,$( TRACETOOL) \
--group= all \
--format= ust-events-c \
--backends= $( TRACE_BACKENDS) \
$( trace-events-files) > $@ ,"GEN" ," $( @:%-timestamp= %) " )
trace/generated-helpers.o : trace /generated -helpers .c
trace-dtrace-root.dtrace : trace -dtrace -root .dtrace -timestamp
trace/generated-tcg-tracers.h : trace /generated -tcg -tracers .h -timestamp
@cmp $< $@ >/dev/null 2>& 1 || cp $< $@
trace-dtrace-root.dtrace-timestamp : $( SRC_PATH ) /trace -events $( BUILD_DIR ) /config -host .mak $( tracetool -y )
trace/generated-tcg-tracers.h-timestamp : $( SRC_PATH ) /trace -events $( BUILD_DIR ) /config -host .mak $( tracetool -y )
@mkdir -p $( dir $@ )
$( call quiet-command,$( TRACETOOL) \
--group= root \
--format= d \
--backends= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( @:%-timestamp= %) " )
trace-dtrace-root.h : trace -dtrace -root .dtrace
$( call quiet-command,dtrace -o $@ -h -s $<, "GEN" ," $@ " )
trace-dtrace-root.o : trace -dtrace -root .dtrace
--format= tcg-h \
--backend= $( TRACE_BACKENDS) \
$< > $@ ,"GEN" ," $( patsubst %-timestamp,%,$@ ) " )
KEYCODEMAP_GEN = $( SRC_PATH) /ui/keycodemapdb/tools/keymap-gen
KEYCODEMAP_CSV = $( SRC_PATH) /ui/keycodemapdb/data/keymaps.csv
@ -485,10 +361,8 @@ include $(SRC_PATH)/Makefile.objs
e n d i f
dummy := $( call unnest-vars,, \
stub-obj-y \
authz-obj-y \
chardev-obj-y \
util-obj-y \
qga-obj-y \
elf2dmp-obj-y \
ivshmem-client-obj-y \
@ -509,14 +383,7 @@ dummy := $(call unnest-vars,, \
qom-obj-y \
io-obj-y \
common-obj-y \
common-obj-m \
trace-obj-y)
dummy := $( foreach DIR,$( trace-events-subdirs) ,$( eval $( call __trace_rules,$( DIR) ,$( call trace-group-suffix,$( DIR) ) ) ) )
generated-files-y += $( TRACE_HEADERS)
generated-files-y += $( TRACE_SOURCES)
common-obj-m)
i n c l u d e $( SRC_PATH ) / t e s t s / M a k e f i l e . i n c l u d e
@ -630,8 +497,7 @@ Makefile: $(version-obj-y)
######################################################################
# Build libraries
libqemuutil.a : $( util -obj -y ) $( trace -obj -y ) $( stub -obj -y )
libvhost-user.a : $( libvhost -user -obj -y ) $( util -obj -y ) $( stub -obj -y )
libvhost-user.a : $( libvhost -user -obj -y )
######################################################################
@ -694,27 +560,6 @@ qga/qapi-generated/qapi-gen-timestamp: $(SRC_PATH)/qga/qapi-schema.json $(qapi-p
"GEN" ," $( @:%-timestamp= %) " )
@>$@
qapi-modules = $( SRC_PATH) /qapi/qapi-schema.json \
$( QAPI_MODULES:%= $( SRC_PATH) /qapi/%.json)
$(GENERATED_QAPI_FILES) : qapi -gen -timestamp ;
qapi-gen-timestamp : $( qapi -modules ) $( qapi -py )
$( call quiet-command,$( PYTHON) $( SRC_PATH) /scripts/qapi-gen.py \
-o "qapi" -b $<, \
"GEN" ," $( @:%-timestamp= %) " )
@>$@
qapi-modules-storage-daemon = \
$( SRC_PATH) /storage-daemon/qapi/qapi-schema.json \
$( QAPI_MODULES_STORAGE_DAEMON:%= $( SRC_PATH) /qapi/%.json)
$(GENERATED_STORAGE_DAEMON_QAPI_FILES) : storage -daemon /qapi /qapi -gen -timestamp ;
storage-daemon/qapi/qapi-gen-timestamp : $( qapi -modules -storage -daemon ) $( qapi -py )
$( call quiet-command,$( PYTHON) $( SRC_PATH) /scripts/qapi-gen.py \
-o "storage-daemon/qapi" $<, \
"GEN" ," $( @:%-timestamp= %) " )
@>$@
QGALIB_GEN = $( addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qapi-commands.h qga-qapi-init-commands.h)
$(qga-obj-y) : $( QGALIB_GEN )
@ -752,9 +597,9 @@ ivshmem-client$(EXESUF): $(ivshmem-client-obj-y) $(COMMON_LDADDS)
ivshmem-server$(EXESUF) : $( ivshmem -server -obj -y ) $( COMMON_LDADDS )
$( call LINK, $^)
e n d i f
vhost-user-scsi$(EXESUF) : $( vhost -user -scsi -obj -y ) libvhost -user .a
vhost-user-scsi$(EXESUF) : $( vhost -user -scsi -obj -y ) libvhost -user .a $( COMMON_LDADDS )
$( call LINK, $^)
vhost-user-blk$(EXESUF) : $( vhost -user -blk -obj -y ) libvhost -user .a
vhost-user-blk$(EXESUF) : $( vhost -user -blk -obj -y ) libvhost -user .a $( COMMON_LDADDS )
$( call LINK, $^)
rdmacm-mux$(EXESUF) : LIBS += "-libumad "
@ -767,12 +612,12 @@ virtiofsd$(EXESUF): $(virtiofsd-obj-y) libvhost-user.a $(COMMON_LDADDS)
$( call LINK, $^)
e n d i f
vhost-user-gpu$(EXESUF) : $( vhost -user -gpu -obj -y ) $( libvhost -user -obj -y ) libqemuutil .a
vhost-user-gpu$(EXESUF) : $( vhost -user -gpu -obj -y ) libvhost -user .a $( COMMON_LDADDS )
$( call LINK, $^)
i f d e f C O N F I G _ V H O S T _ U S E R _ I N P U T
i f d e f C O N F I G _ L I N U X
vhost-user-input$(EXESUF) : $( vhost -user -input -obj -y ) libvhost -user .a libqemuutil .a
vhost-user-input$(EXESUF) : $( vhost -user -input -obj -y ) libvhost -user .a $( COMMON_LDADDS )
$( call LINK, $^)
# build by default, do not install
@ -801,9 +646,6 @@ clean: recurse-clean ninja-clean clean-ctlist
rm -f fsdev/*.pod scsi/*.pod
rm -f qemu-img-cmds.h
rm -f ui/shader/*-vert.h ui/shader/*-frag.h
@# May not be present in generated-files-y
rm -f trace/generated-tracers-dtrace.dtrace*
rm -f trace/generated-tracers-dtrace.h*
rm -f $( foreach f,$( generated-files-y) ,$( f) $( f) -timestamp)
rm -f qapi-gen-timestamp
rm -f storage-daemon/qapi/qapi-gen-timestamp
@ -1033,7 +875,9 @@ endif
set -e; for x in $( KEYMAPS) ; do \
$( INSTALL_DATA) $( SRC_PATH) /pc-bios/keymaps/$$ x " $( DESTDIR) $( qemu_datadir) /keymaps " ; \
done
$( INSTALL_DATA) $( BUILD_DIR) /trace-events-all " $( DESTDIR) $( qemu_datadir) /trace-events-all "
for d in $( TARGET_DIRS) ; do \
$( MAKE) $( SUBDIR_MAKEFLAGS) TARGET_DIR = $$ d/ -C $$ d $@ || exit 1 ; \
done
# opengl shader programs
ui/shader/%-vert.h : $( SRC_PATH ) /ui /shader /%.vert $( SRC_PATH ) /scripts /shaderinclude .pl
@ -1244,10 +1088,6 @@ Makefile: $(generated-files-y)
e n d i f
e n d i f
.SECONDARY : $( TRACE_HEADERS ) $( TRACE_HEADERS :%=%-timestamp ) \
$( TRACE_SOURCES) $( TRACE_SOURCES:%= %-timestamp) \
$( TRACE_DTRACE) $( TRACE_DTRACE:%= %-timestamp)
# Include automatically generated dependency files
# Dependencies in Makefile.objs files come from our recursive subdir rules
- i n c l u d e $( wildcard *.d tests /*.d )