aboutsummaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2010-10-02trace: avoid unnecessary recompilation if nothing changedBlue Swirl
Add logic to detect changes in generated files. If the old and new files are identical, don't touch the generated file. This avoids a lot of churn since many files depend on trace.h. Based on suggestion by Paolo Bonzini. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-02Makefile: fix config-devices.mak generationBlue Swirl
The logic of detecting changes in default-configs/*.mak is flawed as can be demonstrated by 'touch default-configs/*.mak' followed by make. This results in a message claiming that user made changes to the */config-devices.mak files. Fix by separating the detection of changes made by the user and changes in the default-configs. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-09-26mingw: add version information to the executablesBlue Swirl
Add QEMU version information to the executables, based on earlier work by C. W. Betts and Robert Riebisch. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-09-21trace: Fix user emulator dependency on trace objectsAndreas Färber
On a clean build, after generating trace.h, make would recurse into *-*-user without a clue how to build ../trace.o (added to $(obj-y) in Makefile.target) since its generation rule is in the main Makefile. The softmmus are seemingly unaffected because the $(TOOLS), which each have a dependency on $(trace-obj-y), are built first for the build-all target. Add a dependency on $(trace-obj-y) for %-user, as done for the qemu-* tools. Let's be paranoid and do the same for %-softmmu while at it, just in case someone messes with $(TOOLS) or calls the Makefile target directly. Signed-off-by: Andreas Färber <andreas.faerber@web.de> Acked-by: Stefan Weil <weil@mail.berlios.de> Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Cc: Prerna Saxena <prerna@linux.vnet.ibm.com> Cc: Blue Swirl <blauwirbel@gmail.com> Cc: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-09-09trace: Add simple built-in tracing backendStefan Hajnoczi
This patch adds a simple tracer which produces binary trace files. To try out the simple backend: $ ./configure --trace-backend=simple $ make After running QEMU you can pretty-print the trace: $ ./simpletrace.py trace-events trace.log The output of simpletrace.py looks like this: qemu_realloc 0.699 ptr=0x24363f0 size=0x3 newptr=0x24363f0 qemu_free 0.768 ptr=0x24363f0 ^ ^---- timestamp delta (us) |____ trace event name Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> trace: Make trace record fields 64-bit Explicitly use 64-bit fields in trace records so that timestamps and magic numbers work for 32-bit host builds. Includes fixes from Prerna Saxena <prerna@linux.vnet.ibm.com>. Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2010-09-09trace: Add trace-events file for declaring trace eventsStefan Hajnoczi
This patch introduces the trace-events file where trace events can be declared like so: qemu_malloc(size_t size) "size %zu" qemu_free(void *ptr) "ptr %p" These trace event declarations are processed by a new tool called tracetool to generate code for the trace events. Trace event declarations are independent of the backend tracing system (LTTng User Space Tracing, ftrace markers, DTrace). The default "nop" backend generates empty trace event functions. Therefore trace events are disabled by default. The trace-events file serves two purposes: 1. Adding trace events is easy. It is not necessary to understand the details of a backend tracing system. The trace-events file is a single location where trace events can be declared without code duplication. 2. QEMU is not tightly coupled to one particular backend tracing system. In order to support tracing across QEMU host platforms and to anticipate new backend tracing systems that are currently maturing, it is important to be flexible and not tied to one system. This commit includes fixes from Prerna Saxena <prerna@linux.vnet.ibm.com> and Blue Swirl <blauwirbel@gmail.com>. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2010-07-26ui: move all ui components in ui/Corentin Chary
Move sdl, vnc, curses and cocoa UI into ui/ to cleanup the root directory. Also remove some unnecessary explicit targets from Makefile. aliguori: fix build when srcdir != objdir Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-07-11Makefile: Not every shell support {}Hidetoshi Seto
So interpret it by hand. Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-07-11Makefile: add fsdev/*.{o,d} to cleanHidetoshi Seto
There were fsdev/qemu-fsdev.{o,d} not removed at "make clean". Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-07-01Makefile: add qemu-options.def to distcleanHidetoshi Seto
Remove generated qemu-options.def at "make distclean". Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-06-01vnc: add missing target for vnc-encodings-*.oCorentin Chary
vnc-encodings-*.c dependencies where missing. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-06-01QMP: Introduce commands documentationJan Kiszka
One of the most important missing feature in QMP today is its supported commands documentation. The plan is to make it part of self-description support, however self-description is a big task we have been postponing for a long time now and still don't know when it's going to be done. In order not to compromise QMP adoption and make users' life easier, this commit adds a simple text documentation which fully describes all QMP supported commands. This is not ideal for a number of reasons (harder to maintain, text-only, etc) but does improve the current situation. To avoid at least divering from the user monitor help and texi snippets, QMP bits are also maintained inside qemu-monitor.hx, and hxtool is extended to generate a single text file from them. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-06-01Add dependency of JSON unit tests on config-host.hJan Kiszka
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-06-01vnc: add basic tight supportCorentin Chary
Add support for tight encoding [1]. This patch only add support for "basic" tight compression without any filter. [1] http://tigervnc.org/cgi-bin/rfbproto#tight-encoding. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-05-22Fix tarbin Makefile ruleStuart Brady
The 'tarbin' Makefile rule doesn't include qemu-system-sparc64, but should do, now that sparc64-softmmu is in the default target list. The rule attempts to tar up binaries that were not built if a target list was passed to the configure script -- in which case, it will either fail, or otherwise include binaries from previous builds. Fix both problems once and for all by building a list of binaries to include in the tarball, using the list of targets to be built. Signed-off-by: Stuart Brady <sdb@zubnet.me.uk> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-05-18target-s390: add firmware codeAlexander Graf
This patch adds a firmware blob to the S390 target. The blob is a simple implementation of a virtio client that tries to read the second stage bootloader from sectors described as of offset 0x20 in the MBR. In combination with an updated zipl this allows for booting from virtio block devices. This firmware is built from the same sources as the second stage bootloader. You can find a virtio capable s390-tools in this repo: git://repo.or.cz/s390-tools.git Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-05-03vnc: split encoding in specific filesCorentin Chary
This will allow to implement new encodings (tight, zrle, ..) in a cleaner way. This may hurt performances, because some functions like vnc_convert_pixel are not static anymore, but should not be a problem with gcc 4.5 and the new -flto. Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-04-28iov: Introduce a new file for helpers around iovs, add iov_from_buf()Amit Shah
The virtio-net code uses iov_fill() which fills an iov from a linear buffer. The virtio-serial-bus code does something similar in an open-coded function. Create a new iov.c file that has iov_from_buf(). Convert virtio-net and virtio-serial-bus over to use this functionality. virtio-net used ints to hold sizes, the new function is going to use size_t types. Later commits will add the opposite functionality -- going from an iov to a linear buffer. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-03-27error: Link qemu-img, qemu-nbd, qemu-io with qemu-error.oMarkus Armbruster
The location tracking interface is used by code shared with qemi-img, qemu-nbd and qemu-io, so it needs to be available there. Commit 827b0813 provides it in a rather hamfisted way: it adds a dummy implementation to qemu-tool.c. It's cleaner to provide the real thing, and put a few more dummy monitor functions into qemu-tool.c. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-03-21Compile disassemblers only onceBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-03-13install: honor DESTDIR on sysconfdir populationAndre Przywara
When creating and populating $sysconfdir, we should prepend $DESTDIR as we do with all other paths. Reported-by: Frank Arnold <frank.arnold@amd.com> Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-03-06Documentation: Modify rule for html output (better looking output format)Stefan Weil
To create html output from texi input, texi2html was used. Output from makeinfo looks cleaner, so replace the old rule and use makeinfo now. For those who want to use their own variant of html output, the macros MAKEINFO and MAKEINFOFLAGS allow customisation. Option "-I ." is not needed (the current directory is searched by default), so remove it. Please note that the build requirements changed, too: makeinfo is required for doc builds. texi2html is no longer used. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-03-04Makefile: Fix names of GPXE ROM filesStefan Weil
da51e79b7ff2126cc2448749d657a4f6e3b1270f added two new ROM files and removed an old one for eepro100.c. These changes were missing in Makefile (which resulted in a broken "make install"). Reported by Lucas Meneghel Rodrigues, thanks. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-27Fix 'make install' from non-srcdir buildAmit Shah
Commit b5ec5ce0 broke 'make install' from non source-dir build. Fix. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-02-22Add cpu model configuration support..john cooper
This is a reimplementation of prior versions which adds the ability to define cpu models for contemporary processors. The added models are likewise selected via -cpu <name>, and are intended to displace the existing convention of "-cpu qemu64" augmented with a series of feature flags. A primary motivation was determination of a least common denominator within a given processor class to simplify guest migration. It is still possible to modify an arbitrary model via additional feature flags however the goal here was to make doing so unnecessary in typical usage. The other consideration was providing models names reflective of current processors. Both AMD and Intel have reviewed the models in terms of balancing generality of migration vs. excessive feature downgrade relative to released silicon. This version of the patch replaces the prior hard wired definitions with a configuration file approach for new models. Existing models are thus far left as-is but may easily be transitioned to (or may be overridden by) the configuration file representation. Proposed new model definitions are provided here for current AMD and Intel processors. Each model consists of a name used to select it on the command line (-cpu <name>), and a model_id which corresponds to a least common denominator commercial instance of the processor class. A table of names/model_ids may be queried via "-cpu ?model": : x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron) x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron) x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron) x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7) x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2) x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2) : Also added is "-cpu ?dump" which exhaustively outputs all config data for all defined models, and "-cpu ?cpuid" which enumerates all qemu recognized CPUID feature flags. The pseudo cpuid flag 'check' when added to the feature flag list will warn when feature flags (either implicit in a cpu model or explicit on the command line) would have otherwise been quietly unavailable to a guest: # qemu-system-x86_64 ... -cpu Nehalem,check warning: host cpuid 0000_0001 lacks requested flag 'sse4.2|sse4_2' [0x00100000] warning: host cpuid 0000_0001 lacks requested flag 'popcnt' [0x00800000] A similar 'enforce' pseudo flag exists which in addition to the above causes qemu to error exit if requested flags are unavailable. Configuration data for a cpu model resides in the target config file which by default will be installed as: /usr/local/etc/qemu/target-<arch>.conf The format of this file should be self explanatory given the definitions for the above six models and essentially mimics the structure of the static x86_def_t x86_defs. Encoding of cpuid flags names now allows aliases for both the configuration file and the command line which reconciles some Intel/AMD/Linux/Qemu naming differences. This patch was tested relative to qemu.git. Signed-off-by: john cooper <john.cooper@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-10Documentation: Add build support for documentation in pdf formatStefan Weil
Makefile already supported dvi, html and info formats, but pdf was missing. pdf is especially convenient for printing and for documentation reviews. I hope it will help to improve qemu's documentation. Make now supports the new target 'pdf' which will create qemu-doc.pdf and qemu-tech.pdf. It is also possible to build both files individually. texi2pdf and texi2dvi are rather noisy, so normally some less important warnings are suppressed. When make is called with V=1 (verbose mode), warnings are not suppressed. The patch also sorts the documentation targets alphabetically and wraps a line which was too long. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-02-03QDict: New qdict_get_double()Markus Armbruster
Helper function just like qdict_get_int(), just for QFloat/double. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-26Fix generation of config-host.hJuan Quintela
This patch improves Anthony patch a6a853c86275efd89996ce59612a000c5873db5d Once there, it improves handling of object files for qemu tools cc: Andreas Färber <andreas.faerber@web.de> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-20make: qemu-img depends on config-host.hAnthony Liguori
Fixes mingw32 build out of tree. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-14Makefile: Fix message for missing configureStefan Weil
When make is called without a valid configuration, it should tell the user what to do. Revision 0e8c9214ba1d4128cf92442cd343bc3733478261 was a regression which resulted in a message which was no longer user friendly (reported by Aurelien Jarno). This patch restores the old behaviour. Cc: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Andreas Färber <afaerber@opensolaris.org> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2010-01-08finish VPATH -> vpath translationPaolo Bonzini
This adds a few more vpath suffixes and points the remaining two paths explicitly to $(SRC_PATH) in order to eliminate the VPATH assignment from config-host.mak. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Cc: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-08Makefile: remove obsolete libuser.a ruleBlue Swirl
libuser.a was removed by 0e8c9214ba1d4128cf92442cd343bc3733478261. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-01-08Makefile: Update unmodified config-devices.mak automaticallyStefan Weil
This makes rebuilds after source updates easier for most users (who don't edit config-devices.mak). Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-08Use vpath directivePaolo Bonzini
The vpath directive has two advantages over the VPATH variable: 1) it allows to skip searching of .o files; 2) the default semantics are to append to the vpath, so there is no confusion between "VPATH=xyz" and "VPATH+=xyz". Since "vpath %.c %.h PATH" is not valid, I'm introducing a wrapper macro to append one or more directories to the vpath. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-07Drop --whole-archive and static librariesAndreas Färber
Juan has contributed a cool Makefile infrastructure that enables us to drop static libraries completely: Move shared obj-y definitions to Makefile.objs, prefixed {common-,hw-,user-}, and link those object files directly into the executables. Replace HWLIB by HWDIR, specifying only the directory. Drop --whole-archive and ARLIBS in Makefiles and configure. Drop GENERATED_HEADERS dependency in rules.mak, since this rebuilds all common objects after generating a target-specific header; add dependency rules to Makefile and Makefile.target instead. v2: - Don't try to include /config.mak for user emulators - Changes to user object paths ("Quickfix for libuser.a drop") were obsoleted by "user_only: compile everything with -fpie" (Kirill A. Shutemov) v3: - Fix dependency modelling for tools - Remove comment on GENERATED_HEADERS obsoleted by this patch Signed-off-by: Andreas Färber <afaerber@opensolaris.org> Cc: Blue Swirl <blauwirbel@gmail.com> Cc: Palle Lyckegaard <palle@lyckegaard.dk> Cc: Ben Taylor <bentaylor.solx86@gmail.com> Cc: Juan Quintela <quintela@trasno.org> Cc: Kirill A. Shutemov <kirill@shutemov.name> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-12-17Fix a make -j raceJuergen Lock
Make libuser.a depend on $(GENERATED_HEADERS) too so make -j won't start building it before the headers exist. (There may be more bugs like this but at least this makes (g)make -j4 started from scratch on a quadcore now always complete here again.) Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-12-12block: Convert bdrv_info() to QObjectLuiz Capitulino
Each block device information is stored in a QDict and the returned QObject is a QList of all devices. This commit should not change user output. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-12QDict: Introduce qdict_get_qlist()Luiz Capitulino
A helper function to get a QList from a QDict. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-12QDict: Introduce qdict_get_qbool()Luiz Capitulino
This is a helper function that does type checking before retrieving a QBool from the dictionary. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-12Makefile: move QObject objs to their own entryLuiz Capitulino
Other subsystems will need to link against them. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03Fix build for mingw32 on windows ($$ expansion)Stefan Weil
Make using mingw32 on windows fails when running grep "=y$$". The command is expanded to grep "=y$ and the missing " results in an error. I don't expect a file config-devices.mak with =y somewhere in the middle of a line (they are always at the end of the line), so simplifying the regular expression to =y seems to be permitted. This avoids problems with wrong expansion. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03net: move parse_macaddr() to net/util.[ch]Mark McLoughlin
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03net: move dump backend code from net.c to net/dump.cMark McLoughlin
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03net: move socket backend code from net.c to net/socket.cMark McLoughlin
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03net: move vde code from net.c to net/vde.cMark McLoughlin
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03net: move slirp code from net.c to net/slirp.cMark McLoughlin
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03Introduce QErrorLuiz Capitulino
QError is a high-level data type which represents an exception in QEMU, it stores the following error information: - class Error class name (eg. "ServiceUnavailable") - description A detailed error description, which can contain references to run-time error data - filename The file name of where the error occurred - line number The exact line number of the error - function The function name of where the error occurred - run-time data Any run-time error data Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-02Makefile: Remove unneeded prerequisitesStefan Weil
Thanks to f527c57935e22b56952d1ed1af36070b682ecf70 (fix parallel build), these prerequisites are redundant now and can be removed. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-24Makefile: Fix spellingStefan Weil
Replace defconfing -> defconfig Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-11-22DS1338 RTCPaul Brook
Implement MAXIM SD1338 RTC+NVRAM. Signed-off-by: Paul Brook <paul@codesourcery.com>