aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-21meson: generate shader headersMarc-André Lureau4-19/+18
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: generate qemu-version.hMarc-André Lureau3-28/+38
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: keymap-genMarc-André Lureau3-38/+35
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add virtfs-proxy-helperMarc-André Lureau4-4/+19
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add qemu-edidMarc-André Lureau3-3/+5
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add qemu-keymapMarc-André Lureau3-8/+11
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add qemu-bridge-helperMarc-André Lureau2-5/+8
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: convert dummy Windows qga/qemu-ga targetPaolo Bonzini3-5/+6
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add msi generationMarc-André Lureau3-19/+27
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: convert vss-win32Marc-André Lureau6-33/+39
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: convert qemu-gaPaolo Bonzini9-74/+71
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add solaris and Haiku librariesPaolo Bonzini1-0/+8
There is no probing in configure, so no need to pass them as variables to meson. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add macos dependenciesMarc-André Lureau1-0/+9
There is no probing in configure, so no need to pass them as variables to meson. Do a regular meson dependency() instead. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/elf2dmp: convert to mesonMarc-André Lureau6-17/+11
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/ivshmem: convert to mesonMarc-André Lureau8-16/+13
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/vhost-user-gpu: convert to mesonMarc-André Lureau6-35/+29
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/vhost-user-input: convert to mesonMarc-André Lureau5-13/+6
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/rdmacm-mux: convert to MesonPaolo Bonzini5-9/+11
We can use config-host.mak to decide whether the tool has to be built, apart from that the conversion is straightforward. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/vhost-user-scsi: convert to MesonPaolo Bonzini5-7/+13
The libiscsi pkg-config information is extracted from config-host.mak and used to link vhost-user-blk. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21vhost-user-scsi: add compatibility for libiscsi 1.9.0Paolo Bonzini1-0/+2
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/vhost-user-blk: convert to MesonPaolo Bonzini5-5/+7
The GLib pkg-config information is extracted from config-host.mak and used to link vhost-user-blk. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21tools/virtiofsd: convert to MesonPaolo Bonzini10-27/+43
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21contrib/libvhost-user: convert to MesonPaolo Bonzini5-13/+16
Since libqemuutil.a has been converted to Meson, the conversion is straightforward. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add version.oMarc-André Lureau1-1/+7
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add remaining generated tcg trace helpersMarc-André Lureau2-51/+14
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21libqemuutil, qapi, trace: convert to mesonPaolo Bonzini27-525/+597
This shows how to do some "computations" in meson.build using its array and dictionary data structures, and also a basic usage of the sourceset module for conditional compilation. Notice the new "if have_system" part of util/meson.build, which fixes a bug in the old build system was buggy: util/dbus.c was built even for non-softmmu builds, but the dependency on -lgio was lost when the linking was done through libqemuutil.a. Because all of its users required gio otherwise, the bug was hidden. Meson instead propagates libqemuutil's dependencies down to its users, and shows the problem. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add testsuite Makefile generatorPaolo Bonzini3-2/+111
Rules to execute tests are generated by a simple Python program that integrates into the existing "make check" mechanism. This provides familiarity for developers, and also allows piecewise conversion of the testsuite Makefiles to meson. The generated rules are based on QEMU's existing test harness Makefile and TAP parser. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: add sparse supportPaolo Bonzini4-6/+35
Do not use cgcc; instead, extract compilation commands from compile_commands.json and invoke sparse directly. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: use coverage optionMarc-André Lureau5-42/+6
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: enable pieMarc-André Lureau1-0/+1
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: move summary to meson.buildPaolo Bonzini2-237/+245
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21build-sys: add meson submoduleMarc-André Lureau4-8/+69
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21build-sys hack: link with whole .fa archivesMarc-André Lureau1-5/+13
In order to link the *-obj-y files into tests, we will make static libraries of them in Meson, and then link them as whole archives into the tests. To separate regular static libraries from link-whole libraries, give them a different file extension. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21configure: generate Meson cross fileMarc-André Lureau2-10/+69
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21configure: integrate Meson in the build systemPaolo Bonzini4-22/+1107
The Meson build system is integrated in the existing configure/make steps by invoking Meson from the configure script and converting Meson's build.ninja rules to an included Makefile. build.ninja already provides tags/ctags/cscope rules, so they are removed. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21configure: add support for pseudo-"in source tree" buildsDaniel P. Berrangé2-3/+51
Meson requires the build dir to be separate from the source tree. Many people are used to just running "./configure && make" though and the meson conversion breaks that. This introduces some backcompat support to make it appear as if an "in source tree" build is being done, but with the results in the "build/" directory. This allows "./configure && make" to work as it did historically, albeit with the output binaries staying under build/. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21tests/vm: include setuptoolsPaolo Bonzini3-0/+3
They are a dependency of Meson, so install them. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21configure: prepare CFLAGS/CXXFLAGS/LDFLAGS for MesonPaolo Bonzini3-45/+41
Split between CFLAGS/QEMU_CFLAGS and CXXFLAGS/QEMU_CXXFLAGS so that we will use CFLAGS and CXXFLAGS for flags that we do not want to pass to add_project_arguments. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21configure: expand path variables for meson configureMarc-André Lureau1-15/+20
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21configure: do not include $(...) variables in config-host.makPaolo Bonzini1-16/+16
This ensures that Meson will be able to reuse the results of the tests that are performed in the configure script. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21nsis: use "make DESTDIR=" instead of "make prefix="Paolo Bonzini1-6/+6
The next patch will prevent modifying the prefix on "make install". Adjust the creation of the installer. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21tests/docker: add test script for static linux-user buildsPaolo Bonzini1-0/+24
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21tests/vm: check for Python YAML parser in the MakefilePaolo Bonzini2-10/+5
No need to do it in the configure file if it is only used for a help message. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21tests/vm: do not pollute configure with --efi-aarch64Paolo Bonzini2-19/+2
Just make EFI_AARCH64 a variable in the makefile that defaults to the efi firmware included with QEMU. It can be redefined on the "make" command line. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21build-sys hack: ensure target directory is thereMarc-André Lureau1-0/+1
By removing some unnest-vars calls, we miss some directory creation that may be required by some/dir/object.d. This will go away once everything is converted to Meson. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: rename .inc.h files to .h.incPaolo Bonzini8-13/+13
Make it consistent with '.c.inc' and '.rst.inc'. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21meson: rename included C source files to .c.incPaolo Bonzini99-174/+175
With Makefiles that have automatically generated dependencies, you generated includes are set as dependencies of the Makefile, so that they are built before everything else and they are available when first building the .c files. Alternatively you can use a fine-grained dependency, e.g. target/arm/translate.o: target/arm/decode-neon-shared.inc.c With Meson you have only one choice and it is a third option, namely "build at the beginning of the corresponding target"; the way you express it is to list the includes in the sources of that target. The problem is that Meson decides if something is a source vs. a generated include by looking at the extension: '.c', '.cc', '.m', '.C' are sources, while everything else is considered an include---including '.inc.c'. Use '.c.inc' to avoid this, as it is consistent with our other convention of using '.rst.inc' for included reStructuredText files. The editorconfig file is adjusted. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21trace: switch position of headers to what Meson requiresPaolo Bonzini96-41/+121
Meson doesn't enjoy the same flexibility we have with Make in choosing the include path. In particular the tracing headers are using $(build_root)/$(<D). In order to keep the include directives unchanged, the simplest solution is to generate headers with patterns like "trace/trace-audio.h" and place forwarding headers in the source tree such that for example "audio/trace.h" includes "trace/trace-audio.h". This patch is too ugly to be applied to the Makefiles now. It's only a way to separate the changes to the tracing header files from the Meson rewrite of the tracing logic. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21pc-bios/s390-ccw: do not use rules.makThomas Huth1-1/+17
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-08-21optionrom: simplify MakefileMarc-André Lureau1-26/+41
Make it independent from the rules.mak, and clean up to use pattern rules. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>