summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* make: Clean build messagesStefan Weil2015-07-271-1/+1
| | | | | | | | We want to have uniform build messages, so fix some messages which did not follow the standard pattern. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* Makefile: Add "make ctags"Fam Zheng2015-06-231-1/+6
| | | | | | | | This generates ctags file Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* Makefile: Fix "make cscope TAGS"Fam Zheng2015-06-231-5/+10
| | | | | | | | | | Cscope and TAGS files work in source directory rather than the build directory, also, don't ask users to run configure first, because they may have an out of tree build. Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* qemu-ga: Building Windows MSI installation with configure/MakefileYossi Hindin2015-06-171-1/+23
| | | | | | | | | | | | | New options were added to enable Windows MSI installation package creation: Option --enable-guest-agent-msi, like the name suggests, enables building Windows MSI package for QEMU guest agent; option --disable-guest-agent-msi disables MSI package creation; by default, no MSI package is created Signed-off-by: Yossi Hindin <yhindin@redhat.com> Message-Id: <1430913460-13174-5-git-send-email-yhindin@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* virtio-vga: add vgabios configurationGerd Hoffmann2015-06-121-1/+1
| | | | | | | Add seavgabios configuration for virtio-vga, hook up the new vgabios in the makefiles. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* arch_init: Drop target-x86_64.confIkey Doherty2015-06-021-6/+1
| | | | | | | | | | | The target-x86_64.conf sysconfig file has been empty and essentially ignored now for several years. This change removes the unused file to enable moving towards a stateless configuration. Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
* qapi: Turn generators' mandatory option -i into an argumentMarkus Armbruster2015-05-141-7/+7
| | | | | | | | | Mandatory option is silly, and the error handling is missing: the programs crash when -i isn't supplied. Make it an argument, and check it properly. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
* qapi: qapi-event.py option -b does nothing, drop itMarkus Armbruster2015-05-141-1/+1
| | | | | Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
* console-gl: add opengl rendering helper functionsGerd Hoffmann2015-05-051-0/+3
| | | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
* opengl: add shader build infrastructureGerd Hoffmann2015-05-051-0/+14
| | | | | | | | | perl script to transform shader programs into c include files with static string constands containing the shader programs, so we can easily embed them into qemu. Also some Makefile logic for them. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
* Use $(MAKE) for recursive makeEd Maste2015-04-021-3/+3
| | | | | | | | | On BSDs "make" is typically BSD make, while "gmake" is GNU make. Signed-off-by: Ed Maste <emaste@freebsd.org> Message-Id: <1427911118-21905-1-git-send-email-emaste@freebsd.org> [Fix $(INSTALLER) too as reported by Fam Zheng. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* build: pass .d file name to scripts/make_device_config.sh, fix makefile targetPaolo Bonzini2015-03-181-1/+2
| | | | | | | | | | | | | | | The .d file name must match exactly what is used in the SUBDIR_DEVICES_MAK_DEP variable. Instead of making assumptions in the make_device_config.sh script, just pass it in. Similarly, the makefile target may not match the output file name, because Makefile uses a temporary file. Instead of making assumptions on what the Makefile does, emit the config-devices.mak file to stdout, and use the passed-in destination as the makefile target Reported-by: Peter Maydell <peter.maydell@linaro.org> Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm_stat: add kvm_stat.1 man pageStefan Hajnoczi2015-03-101-0/+9
| | | | | | | | Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Ademar Reis <areis@redhat.com> Reviewed-by: Wei Huang <wei@redhat.com> Message-Id: <1425338947-10296-3-git-send-email-stefanha@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Makefile: don't silence mak file test with V=1Michael S. Tsirkin2015-02-271-3/+3
| | | | | | | | | V=1 should show what's going on, it's not nice to silence things unconditionally. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Message-Id: <1424332114-13440-1-git-send-email-mst@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Makefile: fix up parallel building under MSYS+MinGWVasily Efimov2015-02-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This patch enables parallel building of QEMU in MSYS+MinGW environment. Currently an attempt to build QEMU in parallel fails on generation of version.lo (and version.o too). The cause of the failure is that when listing prerequisites "Makefile" references "config-host.h" by absolute path in some rules and by relative path in others. Make cannot figure out that these references points to the same file which leads to the race: the generation of "version.*" which requires "$(BUILD_DIR)/config-host.h" is launched in parallel with the generation of "config-host.h" needed by other "Makefile" targets. This patch removes "$(BUILD_DIR)/" prefix from corresponding prerequisite of "version.*". There is no other prerequisites "$(BUILD_DIR)/config-host.h" found. Also note that not every version of MSYS is able to build QEMU in parallel, see: "http://sourceforge.net/p/mingw/bugs/1950/". The suggested version is 1.0.17. Signed-off-by: Vasily Efimov <real@ispras.ru> Message-Id: <1424264377-5992-1-git-send-email-real@ispras.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* Makefile: Remove config.status and common.env during 'make distclean'Thomas Huth2015-01-151-2/+2
| | | | | | | | config.status and tests/qemu-iotests/common.env are generated files that should be deleted during 'make distclean'. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* trace: install trace-events fileStefan Hajnoczi2014-09-261-0/+1
| | | | | | | | | | | | | | | Install the ./trace-events file into the data directory. This file contains the list of trace events that were built into QEMU at compile-time. The file is a handy reference for the set of trace events that the QEMU binary was built with. It is also needed by the simpletrace.py tool that parses binary trace data either emitted from QEMU when built with --enable-trace-backend=simple or by the SystemTap simpletrace script that QEMU provides. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1411486175-3017-1-git-send-email-stefanha@redhat.com
* Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' ↵Peter Maydell2014-08-151-0/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into staging Tracing pull request * remotes/stefanha/tags/tracing-pull-request: virtio-rng: add some trace events trace: add some tcg tracing support trace: teach lttng backend to use format strings trace: [tcg] Include TCG-tracing header on all targets trace: [tcg] Include event definitions in "trace.h" trace: [tcg] Generate TCG tracing routines trace: [tcg] Include TCG-tracing helpers trace: [tcg] Define TCG tracing helper routine wrappers trace: [tcg] Define TCG tracing helper routines trace: [tcg] Declare TCG tracing helper routines trace: [tcg] Add 'tcg' event property trace: [tcg] Argument type transformation machinery trace: [tcg] Argument type transformation rules trace: [tcg] Add documentation trace: install simpletrace SystemTap tapset simpletrace: add simpletrace.py --no-header option trace: add tracetool simpletrace_stap format trace: extract stap_escape() function for reuse Conflicts: Makefile.objs
| * trace: [tcg] Generate TCG tracing routinesLluís Vilanova2014-08-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Generate header "trace/generated-tcg-tracers.h" with the necessary routines for tracing events in guest code: * trace_${event}_tcg Convenience wrapper that calls the translation-time tracer 'trace_${event}_trans', and calls 'gen_helper_trace_${event}_exec to generate the TCG code to later trace the event at execution time. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
| * trace: [tcg] Define TCG tracing helper routine wrappersLluís Vilanova2014-08-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Generates header "trace/generated-helpers-wrappers.h" with definitions for TCG helper wrappers. These wrappers ('gen_helper_trace_${event}_exec_wrapper') transform mixed native and TCG argument types to TCG types and call the actual TCG helpers ('gen_helper_trace_${event}_exec_proxy'). Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
| * trace: [tcg] Define TCG tracing helper routinesLluís Vilanova2014-08-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Generates file "trace/generated-helpers.c" with TCG helper definitions to trace events in guest code at execution time. The helpers ('helper_trace_${event}_exec_proxy') cast the TCG-compatible native argument types to their original types (as defined in "trace-events") and call the tracing routine ('trace_${event}_exec'). Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
| * trace: [tcg] Declare TCG tracing helper routinesLluís Vilanova2014-08-121-0/+2
| | | | | | | | | | | | | | | | Generates file "trace/generated-helpers.h" with TCG helper declarations to trace events in guest code at execution time ('trace_${event}_exec_proxy'). Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* | build-sys: Move qapi-{types, visit, event}.o into util-obj-yFam Zheng2014-08-091-1/+1
|/ | | | | | | | These three objects are repeated in multiple times in Makefiles. Let's just add them to libqemuutil.a, and don't list explicitly elsewhere. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* PPC: e500: Actually install u-boot.e500Cole Robinson2014-07-081-1/+2
| | | | | Signed-off-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Alexander Graf <agraf@suse.de>
* qapi: move event definesWenchao Xia2014-06-271-1/+1
| | | | | | Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* build-sys: introduce install-prog macro to install&strip binaries and use itMichael Tokarev2014-06-241-10/+2
| | | | | | | | | Use common rule (macro) to install and strip binaries, and use it in all places where we install binaries, instead of fixing bugs like 1319493 in every place. (This fixes https://bugs.launchpad.net/bugs/1319493) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
* qapi: add new schema file qapi-event.jsonWenchao Xia2014-06-231-1/+2
| | | | | | | Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* qapi script: add event supportWenchao Xia2014-06-231-3/+8
| | | | | | | | | | | | | | | | | | | | qapi-event.py will parse the schema and generate qapi-event.c, then the API in qapi-event.c can be used to handle events in qemu code. All API have prefix "qapi_event". The script mainly includes two parts: generate API for each event define, generate an enum type for all defined events. Since in some cases the real emit behavior may change, for example, qemu-img would not send a event, a callback layer is used to control the behavior. As a result, the stubs at compile time can be saved, the binding of block layer code and monitor code will become looser. Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* qapi: Add includes from qapi/ as dependenciesMax Reitz2014-06-231-3/+6
| | | | | | | | | | | qapi-schema.json has been split into three smaller JSON files in qapi/. Add them as dependencies for the code generation in the Makefile, so changes to them will result in a rebuilt of all QAPI-dependent code. Signed-off-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* trace: Multi-backend tracingLluís Vilanova2014-06-091-2/+2
| | | | | | | | | | | | | | | Adds support to compile QEMU with multiple tracing backends at the same time. For example, you can compile QEMU with: $ ./configure --enable-trace-backends=ftrace,dtrace Where 'ftrace' can be handy for having an in-flight record of events, and 'dtrace' can be later used to extract more information from the system. This patch allows having both available without recompiling QEMU. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* Merge remote-tracking branch 'remotes/bonzini/configure' into stagingPeter Maydell2014-05-131-10/+12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * remotes/bonzini/configure: libcacard: remove libcacard-specific CFLAGS and LIBS from global vars build: simplify and fix fix-obj-vars build: convert some obj-specific CFLAGS to use new foo.o-cflags syntax build: add support for per-object -cflags and -libs to all rules Makefile: use $(INSTALL_LIB) for modules not $(INSTALL_PROG) Makefile.target: use $(INSTALL_PROG) for installing, not $(INSTALL) Makefile: strip tools and modules too build: simplify Makefile.target around unnest-vars invocations build: simplify Makefile.target a bit, use just one rule for softmmu build: Fix per-object variables for Makefile.target Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * build: convert some obj-specific CFLAGS to use new foo.o-cflags syntaxMichael Tokarev2014-05-081-6/+0
| | | | | | | | | | | | | | | | | | | | | | Current Makefile system allows using foo.o-cflags variables to store object-specific CFLAGS. Convert some usages of old syntax (using QEMU_CFLAGS += construct) to the new syntax. Do not touch multifile modules for now, as build system isn't ready for this. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * Makefile: use $(INSTALL_LIB) for modules not $(INSTALL_PROG)Michael Tokarev2014-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | We have $(INSTALL_LIB) which is the same as $(INSTALL_PROG) but uses correct permissions. Loadable objects (modules) are like shared libraries, not like programs. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Cc: Fam Zheng <famz@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * Makefile: strip tools and modules tooMichael Tokarev2014-05-081-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 52ba784d3 replaced $(STRIP_OPT) with $(STRIP) in some places (for example, Makefile.target), but not all of them. There are a few places remain in main Makefile which still uses $(STRIP_OPT). Replace these places with $(STRIP) too. While at it, simplify variable pattern substitution of the surrounding places, change $(patsubst pat,rep,$(var)) into $(var:pat=rep) which is much easier to read (this is probably a good idea to do everywhere). Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Cc: Fam Zheng <famz@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* | qapi: Use an explicit input fileLluís Vilanova2014-05-081-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | Use an explicit input file on the command-line instead of reading from standard input. It also outputs the proper file name when there's an error. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* | qapi: [trivial] Break long command linesLluís Vilanova2014-05-081-6/+18
|/ | | | | | | Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
* Makefile: add qga-vss-dll-obj-y to nested variablesTomoki Sekiyama2014-04-071-0/+1
| | | | | | | | | | The build rule for qga/vss-win32/qga-vss.dll is broken by commit ba1183da9a10b94611cad88c44a5c6df005f9b55, because it misses qga-vss-dll-obj-y in the list of nested variables. This fixes build of qga-vss.dll by adding qga-vss-dll-obj-y to the list. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
* Makefile: remove bashismMichael Tokarev2014-04-071-1/+1
| | | | | | | | | | | | | | | | | | When installing modules (when --enable-modules is specified for ./configure), Makefile uses the following construct to replace all slashes with dashes in module name: ${s//\//-} This is a bash-specific substitution mechanism. POSIX does not have it, and some operating systems (for example Debian) does not implement this construct in default shell (for example dash). Use more traditional way to perform the substitution: use `tr' tool. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Message-id: 1396707946-21351-1-git-send-email-mjt@msgid.tls.msk.ru Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* Makefile: Fix "make clean"Fam Zheng2014-03-171-4/+1
| | | | | | | | | | | | | | | | | This fixes a dangerous bug: "make clean" after "make distclean" will delete every single file including those under .git, if you do in-tree build! Rationale: A first "make distclean" will unset $(DSOSUF), a following "make distclean" or "make clean" will find all the files and delete it. Fix it by explicitly typing the file extensions here, and combine multiple find invocations into one. Signed-off-by: Fam Zheng <famz@redhat.com> Message-id: 1395020122-4957-1-git-send-email-famz@redhat.com Reviewed-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* build: Fix installation of target-dependent filesLluís Vilanova2014-03-081-1/+1
| | | | | | | | | Pass all the relevant sub-directory make variables. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20140120112153.5685.30949.stgit@fimbulvetr.bsc.es
* Merge remote-tracking branch 'remotes/mcayland/qemu-sparc' into stagingPeter Maydell2014-03-041-1/+1
|\ | | | | | | | | | | | | | | | | | | * remotes/mcayland/qemu-sparc: sun4m: Add Sun CG3 framebuffer initialisation function sun4m: Add Sun CG3 framebuffer and corresponding OpenBIOS FCode ROM sun4m: fix slavio timer RUN/STOP bit sun4m: Set HostID in NVRAM Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * sun4m: Add Sun CG3 framebuffer and corresponding OpenBIOS FCode ROMMark Cave-Ayland2014-02-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The CG3 framebuffer is a simple 8-bit framebuffer for use with operating systems such as early Solaris that do not have drivers for TCX. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> CC: Blue Swirl <blauwirbel@gmail.com> CC: Anthony Liguori <aliguori@amazon.com> CC: Peter Maydell <peter.maydell@linaro.org> CC: Bob Breuer <breuerr@mc.net> CC: Artyom Tarasenko <atar4qemu@gmail.com>
* | Makefile: Add missing dependency for system emulation (fix build)Stefan Weil2014-03-041-0/+1
|/ | | | | | | | | | | Comment from Makefile.objs: The system emulation needs this dependency (which was missing in Makefile), otherwise builds without tools (or massive parallel builds) fail. Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* Merge remote-tracking branch 'remotes/bonzini/configure' into stagingPeter Maydell2014-02-241-1/+28
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * remotes/bonzini/configure: build: softmmu targets do not have a "main.o" file configure: Disable libtool if -fPIE does not work with it (bug #1257099) block: convert block drivers linked with libs to modules Makefile: introduce common-obj-m and block-obj-m for DSO Makefile: install modules with "make install" module: implement module loading rules.mak: introduce DSO rules darwin: do not use -mdynamic-no-pic block: use per-object cflags and libs rules.mak: allow per object cflags and libs rules.mak: fix $(obj) to a real relative path util: Split out exec_dir from os_find_datadir Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * Makefile: introduce common-obj-m and block-obj-m for DSOFam Zheng2014-02-201-1/+3
| | | | | | | | | | | | | | | | $(common-obj-m) will include $(block-obj-m), like $(common-obj-y) does for $(block-obj-y). Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * Makefile: install modules with "make install"Fam Zheng2014-02-201-0/+6
| | | | | | | | | | | | | | Install all the modules to ${MODDIR}. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * module: implement module loadingFam Zheng2014-02-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds loading, stamp checking and initialization of modules. The init function of dynamic module is no longer directly called as __attribute__((constructor)) in static linked version, it is called only after passed the checking of presense of stamp symbol: qemu_stamp_$RELEASEHASH where $RELEASEHASH is generated by hashing version strings and content of configure script. With this, modules built from a different tree/version/configure will not be loaded. The module loading code requires gmodule-2.0. Modules are searched under - CONFIG_MODDIR - executable folder (to allow running qemu-{img,io} in the build directory) - ../ of executable folder (to allow running system emulator in the build directory) Modules are linked under their subdir respectively, then copied to top level of build directory for above convinience, e.g.: $(BUILD_DIR)/block/curl.so -> $(BUILD_DIR)/block-curl.so Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * rules.mak: introduce DSO rulesFam Zheng2014-02-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add necessary rules and flags for shared object generation. The new rules introduced here are: 1) %.o in $(common-obj-m) is compiled to %.o, then linked to %.so. 2) %.mo in $(common-obj-m) is the placeholder for %.so for pattern matching in Makefile. It's linked to "-shared" with all its dependencies (multiple *.o) as input. Which means the list of depended objects must be specified in each sub-Makefile.objs: foo.mo-objs := bar.o baz.o qux.o in the same style with foo.o-cflags and foo.o-libs. The objects here will be prefixed with "$(obj)/" if it's a subdirectory Makefile.objs. 3) For all files ending up in %.so, the following is added automatically: foo.o-cflags += -fPIC -DBUILD_DSO Also introduce --enable-modules in configure, the option will enable support of shared object build. Otherwise objects are static linked to executables. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * rules.mak: fix $(obj) to a real relative pathFam Zheng2014-02-201-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefile.target includes rule.mak and unnested common-obj-y, then prefix them with '../', this will ignore object specific QEMU_CFLAGS in subdir Makefile.objs: $(obj)/curl.o: QEMU_CFLAGS += $(CURL_CFLAGS) Because $(obj) here is './block', instead of '../block'. This doesn't hurt compiling because we basically build all .o from top Makefile, before entering Makefile.target, but it will affact arriving per-object libs support. The starting point of $(obj) is passed in as argument of unnest-vars, as well as nested variables, so that different Makefiles can pass in a right value. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* | Adapt Makefiles to the new LTTng ust interfaceMohamad Gebai2014-02-191-0/+5
|/ | | | | | | Add generation of new files for LTTng ust. Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
OpenPOWER on IntegriCloud