* [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC @ 2012-12-21 16:05 Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 01/27] qemu-option: move standard option definitions out of qemu-config.c Paolo Bonzini ` (27 more replies) 0 siblings, 28 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Here is a light version of the source reorganization I proposed last September. While working on it I noticed that a useful part to start from was the utility routines, because this helps identifying missing unit tests and modularity problems. Also, this file are relatively rarely changed. Hence, moving them will not complicate backports to stable branches, and will make the "action" more visible to anyone casually observing the tree. Hence, this is where this series starts from. After this series, the top directory has about 80 *.c and *.h files, down from over 250 in 1.3.0, which is already a fine improvement. Patch 1 makes qemu-config.c more modular: there is no need for tools to host the description of QEMU's command-line options. Patch 2 finishes the transition to libqemustub.a, removing qemu-tool.c and qemu-user.c. Patches 3 to 13 are a longish digression in libcacard, improving support for libtool in the build system and simplifying the integration between libcacard's build rules and the rest of the Makefiles. Also, vscclient is now linked to the dynamic library so that missing symbols (like the one fixed in patch 7) are caught early. (QEMU still duplicates the code; I'd fear for my physical integrity if I forced people to write "libtool --mode=execute gdb" instead of just "gdb"). Patches 14 to 22 create a new static library libqemuutil.a, whose component files all come from subdirectories of the top tree directory: qobject, util, qapi. Using a static library helps putting the number of *-obj-y variables on a diet, and limits the duplication in the Makefile rules. Patches 23 and 24 further limit the number and nesting of *-obj-y variables. Finally, patches 25 to 27 affect tracing, which is also moved to libqemuutil.a. Patch 25 is Lluis's already posted patch to introduce trace/Makefile.objs. Alon Levy (1): libcacard: fix missing symbol in libcacard.so Lluís Vilanova (1): build: Use separate makefile for "trace/" Paolo Bonzini (25): qemu-option: move standard option definitions out of qemu-config.c stubs: fully replace qemu-tool.c and qemu-user.c build: make libtool verbose when making with V=1 build: support linking with libtool objects/libraries build: move dtrace rules to rules.mak build: remove CONFIG_SMARTCARD libcacard: require libtool to build it libcacard: prepare to use -y trick in the Makefile libcacard: use per-target variable definitions libcacard: add list of exported symbols libcacard: rewrite Makefile in non-recursive style libcacard: link vscclient to dynamic library libcacard: list oslib-obj-y file explicitly build: rename oslib-obj-y to util-obj-y build: move util-obj-y to libqemuutil.a build: move files away from tools-obj-y, common-obj-y, user-obj-y build: move libqemuutil.a components to util/ build: move qobject files to qobject/ and libqemuutil.a build: consolidate multiple variables into universal-obj-y build: move QAPI definitions for QEMU out of qapi-obj-y build: move base QAPI files to libqemuutil.a build: move version-obj-y to the generic LINK rule build: remove coroutine-obj-y build: fold trace-obj-y into libqemuutil.a build: improve quiet output for .stp rules .gitignore | 8 +- Makefile | 71 +- Makefile.objs | 172 +---- Makefile.target | 17 +- block/iscsi.c | 27 + blockdev.c | 118 +++ configure | 85 +-- exec.c | 2 +- fsdev/Makefile.objs | 1 + fsdev/qemu-fsdev-dummy.c | 7 - fsdev/qemu-fsdev-opts.c | 85 ++ fsdev/qemu-fsdev.c | 8 - hw/Makefile.objs | 2 +- hw/qdev-monitor.c | 51 ++ hw/usb/Makefile.objs | 2 +- include/qemu/config-file.h | 5 - include/sysemu/sysemu.h | 8 + include/trace.h | 6 + libcacard/Makefile | 62 +- libcacard/libcacard.syms | 77 ++ monitor.c | 22 + net/net.c | 26 + qapi/Makefile.objs | 8 +- qemu-char.c | 72 ++ qemu-config.c | 894 -------------------- qemu-tool.c | 115 --- qemu-user.c | 37 - qobject/Makefile.objs | 3 + json-lexer.c => qobject/json-lexer.c | 0 json-parser.c => qobject/json-parser.c | 0 json-streamer.c => qobject/json-streamer.c | 0 qbool.c => qobject/qbool.c | 0 qdict.c => qobject/qdict.c | 0 qerror.c => qobject/qerror.c | 0 qfloat.c => qobject/qfloat.c | 0 qint.c => qobject/qint.c | 0 qjson.c => qobject/qjson.c | 0 qlist.c => qobject/qlist.c | 0 qstring.c => qobject/qstring.c | 0 qom/Makefile.objs | 6 +- rules.mak | 20 +- scripts/tracetool/backend/dtrace.py | 2 +- scripts/tracetool/format/h.py | 6 +- stubs/Makefile.objs | 13 + stubs/clock-warp.c | 7 + stubs/cpu-get-clock.c | 7 + stubs/cpu-get-icount.c | 9 + stubs/get-vm-name.c | 7 + stubs/iothread-lock.c | 10 + stubs/migr-blocker.c | 10 + stubs/mon-is-qmp.c | 7 + stubs/mon-print-filename.c | 6 + stubs/mon-printf.c | 10 + stubs/mon-protocol-event.c | 6 + stubs/mon-set-error.c | 8 + stubs/slirp.c | 17 + stubs/vm-stop.c | 7 + tests/Makefile | 48 +- trace/Makefile.objs | 58 ++ ui/spice-core.c | 84 ++ util/Makefile.objs | 10 + acl.c => util/acl.c | 0 aes.c => util/aes.c | 0 bitmap.c => util/bitmap.c | 0 bitops.c => util/bitops.c | 0 cache-utils.c => util/cache-utils.c | 0 compatfd.c => util/compatfd.c | 0 cutils.c => util/cutils.c | 0 envlist.c => util/envlist.c | 0 error.c => util/error.c | 0 .../event_notifier-posix.c | 0 .../event_notifier-win32.c | 0 host-utils.c => util/host-utils.c | 0 iov.c => util/iov.c | 0 module.c => util/module.c | 0 notify.c => util/notify.c | 0 osdep.c => util/osdep.c | 0 oslib-posix.c => util/oslib-posix.c | 0 oslib-win32.c => util/oslib-win32.c | 0 path.c => util/path.c | 0 util/qemu-config.c | 215 +++++ qemu-error.c => util/qemu-error.c | 0 qemu-option.c => util/qemu-option.c | 0 qemu-progress.c => util/qemu-progress.c | 0 qemu-sockets.c => util/qemu-sockets.c | 0 qemu-thread-posix.c => util/qemu-thread-posix.c | 0 qemu-thread-win32.c => util/qemu-thread-win32.c | 0 qemu-timer-common.c => util/qemu-timer-common.c | 0 uri.c => util/uri.c | 0 vl.c | 205 +++++ 90 files changed, 1368 insertions(+), 1401 deletions(-) create mode 100644 fsdev/qemu-fsdev-opts.c create mode 100644 include/trace.h create mode 100644 libcacard/libcacard.syms delete mode 100644 qemu-config.c delete mode 100644 qemu-tool.c delete mode 100644 qemu-user.c create mode 100644 qobject/Makefile.objs rename json-lexer.c => qobject/json-lexer.c (100%) rename json-parser.c => qobject/json-parser.c (100%) rename json-streamer.c => qobject/json-streamer.c (100%) rename qbool.c => qobject/qbool.c (100%) rename qdict.c => qobject/qdict.c (100%) rename qerror.c => qobject/qerror.c (100%) rename qfloat.c => qobject/qfloat.c (100%) rename qint.c => qobject/qint.c (100%) rename qjson.c => qobject/qjson.c (100%) rename qlist.c => qobject/qlist.c (100%) rename qstring.c => qobject/qstring.c (100%) create mode 100644 stubs/clock-warp.c create mode 100644 stubs/cpu-get-clock.c create mode 100644 stubs/cpu-get-icount.c create mode 100644 stubs/get-vm-name.c create mode 100644 stubs/iothread-lock.c create mode 100644 stubs/migr-blocker.c create mode 100644 stubs/mon-is-qmp.c create mode 100644 stubs/mon-print-filename.c create mode 100644 stubs/mon-printf.c create mode 100644 stubs/mon-protocol-event.c create mode 100644 stubs/mon-set-error.c create mode 100644 stubs/slirp.c create mode 100644 stubs/vm-stop.c create mode 100644 trace/Makefile.objs create mode 100644 util/Makefile.objs rename acl.c => util/acl.c (100%) rename aes.c => util/aes.c (100%) rename bitmap.c => util/bitmap.c (100%) rename bitops.c => util/bitops.c (100%) rename cache-utils.c => util/cache-utils.c (100%) rename compatfd.c => util/compatfd.c (100%) rename cutils.c => util/cutils.c (100%) rename envlist.c => util/envlist.c (100%) rename error.c => util/error.c (100%) rename event_notifier-posix.c => util/event_notifier-posix.c (100%) rename event_notifier-win32.c => util/event_notifier-win32.c (100%) rename host-utils.c => util/host-utils.c (100%) rename iov.c => util/iov.c (100%) rename module.c => util/module.c (100%) rename notify.c => util/notify.c (100%) rename osdep.c => util/osdep.c (100%) rename oslib-posix.c => util/oslib-posix.c (100%) rename oslib-win32.c => util/oslib-win32.c (100%) rename path.c => util/path.c (100%) create mode 100644 util/qemu-config.c rename qemu-error.c => util/qemu-error.c (100%) rename qemu-option.c => util/qemu-option.c (100%) rename qemu-progress.c => util/qemu-progress.c (100%) rename qemu-sockets.c => util/qemu-sockets.c (100%) rename qemu-thread-posix.c => util/qemu-thread-posix.c (100%) rename qemu-thread-win32.c => util/qemu-thread-win32.c (100%) rename qemu-timer-common.c => util/qemu-timer-common.c (100%) rename uri.c => util/uri.c (100%) ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 01/27] qemu-option: move standard option definitions out of qemu-config.c 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 02/27] stubs: fully replace qemu-tool.c and qemu-user.c Paolo Bonzini ` (26 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- block/iscsi.c | 27 ++ blockdev.c | 118 ++++++++ fsdev/Makefile.objs | 1 + fsdev/qemu-fsdev-dummy.c | 7 - fsdev/qemu-fsdev-opts.c | 85 ++++++ fsdev/qemu-fsdev.c | 8 - hw/qdev-monitor.c | 51 ++++ include/qemu/config-file.h | 5 - include/sysemu/sysemu.h | 8 + monitor.c | 22 ++ net/net.c | 26 ++ qemu-char.c | 72 +++++ qemu-config.c | 681 +------------------------------------------- ui/spice-core.c | 84 ++++++ vl.c | 205 +++++++++++++ 15 files changed, 700 insertions(+), 700 deletions(-) create mode 100644 fsdev/qemu-fsdev-opts.c diff --git a/block/iscsi.c b/block/iscsi.c index 041ee07..f08cf96 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -980,9 +980,36 @@ static BlockDriver bdrv_iscsi = { #endif }; +static QemuOptsList qemu_iscsi_opts = { + .name = "iscsi", + .head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head), + .desc = { + { + .name = "user", + .type = QEMU_OPT_STRING, + .help = "username for CHAP authentication to target", + },{ + .name = "password", + .type = QEMU_OPT_STRING, + .help = "password for CHAP authentication to target", + },{ + .name = "header-digest", + .type = QEMU_OPT_STRING, + .help = "HeaderDigest setting. " + "{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}", + },{ + .name = "initiator-name", + .type = QEMU_OPT_STRING, + .help = "Initiator iqn name to use when connecting", + }, + { /* end of list */ } + }, +}; + static void iscsi_block_init(void) { bdrv_register(&bdrv_iscsi); + qemu_add_opts(&qemu_iscsi_opts); } block_init(iscsi_block_init); diff --git a/blockdev.c b/blockdev.c index d724e2d..9126587 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1427,3 +1427,121 @@ BlockJobInfoList *qmp_query_block_jobs(Error **errp) bdrv_iterate(do_qmp_query_block_jobs_one, &prev); return dummy.next; } + +QemuOptsList qemu_drive_opts = { + .name = "drive", + .head = QTAILQ_HEAD_INITIALIZER(qemu_drive_opts.head), + .desc = { + { + .name = "bus", + .type = QEMU_OPT_NUMBER, + .help = "bus number", + },{ + .name = "unit", + .type = QEMU_OPT_NUMBER, + .help = "unit number (i.e. lun for scsi)", + },{ + .name = "if", + .type = QEMU_OPT_STRING, + .help = "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)", + },{ + .name = "index", + .type = QEMU_OPT_NUMBER, + .help = "index number", + },{ + .name = "cyls", + .type = QEMU_OPT_NUMBER, + .help = "number of cylinders (ide disk geometry)", + },{ + .name = "heads", + .type = QEMU_OPT_NUMBER, + .help = "number of heads (ide disk geometry)", + },{ + .name = "secs", + .type = QEMU_OPT_NUMBER, + .help = "number of sectors (ide disk geometry)", + },{ + .name = "trans", + .type = QEMU_OPT_STRING, + .help = "chs translation (auto, lba. none)", + },{ + .name = "media", + .type = QEMU_OPT_STRING, + .help = "media type (disk, cdrom)", + },{ + .name = "snapshot", + .type = QEMU_OPT_BOOL, + .help = "enable/disable snapshot mode", + },{ + .name = "file", + .type = QEMU_OPT_STRING, + .help = "disk image", + },{ + .name = "cache", + .type = QEMU_OPT_STRING, + .help = "host cache usage (none, writeback, writethrough, " + "directsync, unsafe)", + },{ + .name = "aio", + .type = QEMU_OPT_STRING, + .help = "host AIO implementation (threads, native)", + },{ + .name = "format", + .type = QEMU_OPT_STRING, + .help = "disk format (raw, qcow2, ...)", + },{ + .name = "serial", + .type = QEMU_OPT_STRING, + .help = "disk serial number", + },{ + .name = "rerror", + .type = QEMU_OPT_STRING, + .help = "read error action", + },{ + .name = "werror", + .type = QEMU_OPT_STRING, + .help = "write error action", + },{ + .name = "addr", + .type = QEMU_OPT_STRING, + .help = "pci address (virtio only)", + },{ + .name = "readonly", + .type = QEMU_OPT_BOOL, + .help = "open drive file as read-only", + },{ + .name = "iops", + .type = QEMU_OPT_NUMBER, + .help = "limit total I/O operations per second", + },{ + .name = "iops_rd", + .type = QEMU_OPT_NUMBER, + .help = "limit read operations per second", + },{ + .name = "iops_wr", + .type = QEMU_OPT_NUMBER, + .help = "limit write operations per second", + },{ + .name = "bps", + .type = QEMU_OPT_NUMBER, + .help = "limit total bytes per second", + },{ + .name = "bps_rd", + .type = QEMU_OPT_NUMBER, + .help = "limit read bytes per second", + },{ + .name = "bps_wr", + .type = QEMU_OPT_NUMBER, + .help = "limit write bytes per second", + },{ + .name = "copy-on-read", + .type = QEMU_OPT_BOOL, + .help = "copy read data from backing file into image file", + },{ + .name = "boot", + .type = QEMU_OPT_BOOL, + .help = "(deprecated, ignored)", + }, + { /* end of list */ } + }, +}; diff --git a/fsdev/Makefile.objs b/fsdev/Makefile.objs index cb1e250..ee16ca6 100644 --- a/fsdev/Makefile.objs +++ b/fsdev/Makefile.objs @@ -7,3 +7,4 @@ extra-obj-y = qemu-fsdev-dummy.o else common-obj-y = qemu-fsdev-dummy.o endif +common-obj-y += qemu-fsdev-opts.o diff --git a/fsdev/qemu-fsdev-dummy.c b/fsdev/qemu-fsdev-dummy.c index 4bcf38f..7dc2630 100644 --- a/fsdev/qemu-fsdev-dummy.c +++ b/fsdev/qemu-fsdev-dummy.c @@ -20,10 +20,3 @@ int qemu_fsdev_add(QemuOpts *opts) { return 0; } - -static void fsdev_register_config(void) -{ - qemu_add_opts(&qemu_fsdev_opts); - qemu_add_opts(&qemu_virtfs_opts); -} -machine_init(fsdev_register_config); diff --git a/fsdev/qemu-fsdev-opts.c b/fsdev/qemu-fsdev-opts.c new file mode 100644 index 0000000..6311c7a --- /dev/null +++ b/fsdev/qemu-fsdev-opts.c @@ -0,0 +1,85 @@ +/* + * Virtio 9p + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * later. See the COPYING file in the top-level directory. + */ + +#include "qemu/config-file.h" +#include "qemu/option.h" +#include "qemu/module.h" + +static QemuOptsList qemu_fsdev_opts = { + .name = "fsdev", + .implied_opt_name = "fsdriver", + .head = QTAILQ_HEAD_INITIALIZER(qemu_fsdev_opts.head), + .desc = { + { + .name = "fsdriver", + .type = QEMU_OPT_STRING, + }, { + .name = "path", + .type = QEMU_OPT_STRING, + }, { + .name = "security_model", + .type = QEMU_OPT_STRING, + }, { + .name = "writeout", + .type = QEMU_OPT_STRING, + }, { + .name = "readonly", + .type = QEMU_OPT_BOOL, + + }, { + .name = "socket", + .type = QEMU_OPT_STRING, + }, { + .name = "sock_fd", + .type = QEMU_OPT_NUMBER, + }, + + { /*End of list */ } + }, +}; + +static QemuOptsList qemu_virtfs_opts = { + .name = "virtfs", + .implied_opt_name = "fsdriver", + .head = QTAILQ_HEAD_INITIALIZER(qemu_virtfs_opts.head), + .desc = { + { + .name = "fsdriver", + .type = QEMU_OPT_STRING, + }, { + .name = "path", + .type = QEMU_OPT_STRING, + }, { + .name = "mount_tag", + .type = QEMU_OPT_STRING, + }, { + .name = "security_model", + .type = QEMU_OPT_STRING, + }, { + .name = "writeout", + .type = QEMU_OPT_STRING, + }, { + .name = "readonly", + .type = QEMU_OPT_BOOL, + }, { + .name = "socket", + .type = QEMU_OPT_STRING, + }, { + .name = "sock_fd", + .type = QEMU_OPT_NUMBER, + }, + + { /*End of list */ } + }, +}; + +static void fsdev_register_config(void) +{ + qemu_add_opts(&qemu_fsdev_opts); + qemu_add_opts(&qemu_virtfs_opts); +} +machine_init(fsdev_register_config); diff --git a/fsdev/qemu-fsdev.c b/fsdev/qemu-fsdev.c index 4cc04d4..6eaf36d 100644 --- a/fsdev/qemu-fsdev.c +++ b/fsdev/qemu-fsdev.c @@ -97,11 +97,3 @@ FsDriverEntry *get_fsdev_fsentry(char *id) } return NULL; } - -static void fsdev_register_config(void) -{ - qemu_add_opts(&qemu_fsdev_opts); - qemu_add_opts(&qemu_virtfs_opts); -} -machine_init(fsdev_register_config); - diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index b739867..93283ee 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -615,3 +615,54 @@ void qdev_machine_init(void) qdev_get_peripheral_anon(); qdev_get_peripheral(); } + +QemuOptsList qemu_device_opts = { + .name = "device", + .implied_opt_name = "driver", + .head = QTAILQ_HEAD_INITIALIZER(qemu_device_opts.head), + .desc = { + /* + * no elements => accept any + * sanity checking will happen later + * when setting device properties + */ + { /* end of list */ } + }, +}; + +QemuOptsList qemu_global_opts = { + .name = "global", + .head = QTAILQ_HEAD_INITIALIZER(qemu_global_opts.head), + .desc = { + { + .name = "driver", + .type = QEMU_OPT_STRING, + },{ + .name = "property", + .type = QEMU_OPT_STRING, + },{ + .name = "value", + .type = QEMU_OPT_STRING, + }, + { /* end of list */ } + }, +}; + +int qemu_global_option(const char *str) +{ + char driver[64], property[64]; + QemuOpts *opts; + int rc, offset; + + rc = sscanf(str, "%63[^.].%63[^=]%n", driver, property, &offset); + if (rc < 2 || str[offset] != '=') { + error_report("can't parse: \"%s\"", str); + return -1; + } + + opts = qemu_opts_create_nofail(&qemu_global_opts); + qemu_opt_set(opts, "driver", driver); + qemu_opt_set(opts, "property", property); + qemu_opt_set(opts, "value", str+offset+1); + return 0; +} diff --git a/include/qemu/config-file.h b/include/qemu/config-file.h index 486c77c..ccfccae 100644 --- a/include/qemu/config-file.h +++ b/include/qemu/config-file.h @@ -6,11 +6,6 @@ #include "qapi/error.h" #include "qemu/option.h" -extern QemuOptsList qemu_fsdev_opts; -extern QemuOptsList qemu_virtfs_opts; -extern QemuOptsList qemu_spice_opts; -extern QemuOptsList qemu_sandbox_opts; - QemuOptsList *qemu_find_opts(const char *group); QemuOptsList *qemu_find_opts_err(const char *group, Error **errp); void qemu_add_opts(QemuOptsList *list); diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 8eaa470..dd36c3f 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -182,4 +182,12 @@ char *get_boot_devices_list(uint32_t *size); bool usb_enabled(bool default_usb); +extern QemuOptsList qemu_drive_opts; +extern QemuOptsList qemu_chardev_opts; +extern QemuOptsList qemu_device_opts; +extern QemuOptsList qemu_netdev_opts; +extern QemuOptsList qemu_net_opts; +extern QemuOptsList qemu_global_opts; +extern QemuOptsList qemu_mon_opts; + #endif diff --git a/monitor.c b/monitor.c index 9cf419b..7b72219 100644 --- a/monitor.c +++ b/monitor.c @@ -4790,3 +4790,25 @@ int monitor_read_block_device_key(Monitor *mon, const char *device, return monitor_read_bdrv_key_start(mon, bs, completion_cb, opaque); } + +QemuOptsList qemu_mon_opts = { + .name = "mon", + .implied_opt_name = "chardev", + .head = QTAILQ_HEAD_INITIALIZER(qemu_mon_opts.head), + .desc = { + { + .name = "mode", + .type = QEMU_OPT_STRING, + },{ + .name = "chardev", + .type = QEMU_OPT_STRING, + },{ + .name = "default", + .type = QEMU_OPT_BOOL, + },{ + .name = "pretty", + .type = QEMU_OPT_BOOL, + }, + { /* end of list */ } + }, +}; diff --git a/net/net.c b/net/net.c index dbf3e1b..02b5458 100644 --- a/net/net.c +++ b/net/net.c @@ -1054,3 +1054,29 @@ unsigned compute_mcast_idx(const uint8_t *ep) } return crc >> 26; } + +QemuOptsList qemu_netdev_opts = { + .name = "netdev", + .implied_opt_name = "type", + .head = QTAILQ_HEAD_INITIALIZER(qemu_netdev_opts.head), + .desc = { + /* + * no elements => accept any params + * validation will happen later + */ + { /* end of list */ } + }, +}; + +QemuOptsList qemu_net_opts = { + .name = "net", + .implied_opt_name = "type", + .head = QTAILQ_HEAD_INITIALIZER(qemu_net_opts.head), + .desc = { + /* + * no elements => accept any params + * validation will happen later + */ + { /* end of list */ } + }, +}; diff --git a/qemu-char.c b/qemu-char.c index 6113d0a..d638876 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -2913,3 +2913,75 @@ CharDriverState *qemu_char_get_next_serial(void) return serial_hds[next_serial++]; } +QemuOptsList qemu_chardev_opts = { + .name = "chardev", + .implied_opt_name = "backend", + .head = QTAILQ_HEAD_INITIALIZER(qemu_chardev_opts.head), + .desc = { + { + .name = "backend", + .type = QEMU_OPT_STRING, + },{ + .name = "path", + .type = QEMU_OPT_STRING, + },{ + .name = "host", + .type = QEMU_OPT_STRING, + },{ + .name = "port", + .type = QEMU_OPT_STRING, + },{ + .name = "localaddr", + .type = QEMU_OPT_STRING, + },{ + .name = "localport", + .type = QEMU_OPT_STRING, + },{ + .name = "to", + .type = QEMU_OPT_NUMBER, + },{ + .name = "ipv4", + .type = QEMU_OPT_BOOL, + },{ + .name = "ipv6", + .type = QEMU_OPT_BOOL, + },{ + .name = "wait", + .type = QEMU_OPT_BOOL, + },{ + .name = "server", + .type = QEMU_OPT_BOOL, + },{ + .name = "delay", + .type = QEMU_OPT_BOOL, + },{ + .name = "telnet", + .type = QEMU_OPT_BOOL, + },{ + .name = "width", + .type = QEMU_OPT_NUMBER, + },{ + .name = "height", + .type = QEMU_OPT_NUMBER, + },{ + .name = "cols", + .type = QEMU_OPT_NUMBER, + },{ + .name = "rows", + .type = QEMU_OPT_NUMBER, + },{ + .name = "mux", + .type = QEMU_OPT_BOOL, + },{ + .name = "signal", + .type = QEMU_OPT_BOOL, + },{ + .name = "name", + .type = QEMU_OPT_STRING, + },{ + .name = "debug", + .type = QEMU_OPT_NUMBER, + }, + { /* end of list */ } + }, +}; diff --git a/qemu-config.c b/qemu-config.c index 2188c3e..47c81f7 100644 --- a/qemu-config.c +++ b/qemu-config.c @@ -5,667 +5,7 @@ #include "hw/qdev.h" #include "qapi/error.h" -static QemuOptsList qemu_drive_opts = { - .name = "drive", - .head = QTAILQ_HEAD_INITIALIZER(qemu_drive_opts.head), - .desc = { - { - .name = "bus", - .type = QEMU_OPT_NUMBER, - .help = "bus number", - },{ - .name = "unit", - .type = QEMU_OPT_NUMBER, - .help = "unit number (i.e. lun for scsi)", - },{ - .name = "if", - .type = QEMU_OPT_STRING, - .help = "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)", - },{ - .name = "index", - .type = QEMU_OPT_NUMBER, - .help = "index number", - },{ - .name = "cyls", - .type = QEMU_OPT_NUMBER, - .help = "number of cylinders (ide disk geometry)", - },{ - .name = "heads", - .type = QEMU_OPT_NUMBER, - .help = "number of heads (ide disk geometry)", - },{ - .name = "secs", - .type = QEMU_OPT_NUMBER, - .help = "number of sectors (ide disk geometry)", - },{ - .name = "trans", - .type = QEMU_OPT_STRING, - .help = "chs translation (auto, lba. none)", - },{ - .name = "media", - .type = QEMU_OPT_STRING, - .help = "media type (disk, cdrom)", - },{ - .name = "snapshot", - .type = QEMU_OPT_BOOL, - .help = "enable/disable snapshot mode", - },{ - .name = "file", - .type = QEMU_OPT_STRING, - .help = "disk image", - },{ - .name = "cache", - .type = QEMU_OPT_STRING, - .help = "host cache usage (none, writeback, writethrough, " - "directsync, unsafe)", - },{ - .name = "aio", - .type = QEMU_OPT_STRING, - .help = "host AIO implementation (threads, native)", - },{ - .name = "format", - .type = QEMU_OPT_STRING, - .help = "disk format (raw, qcow2, ...)", - },{ - .name = "serial", - .type = QEMU_OPT_STRING, - .help = "disk serial number", - },{ - .name = "rerror", - .type = QEMU_OPT_STRING, - .help = "read error action", - },{ - .name = "werror", - .type = QEMU_OPT_STRING, - .help = "write error action", - },{ - .name = "addr", - .type = QEMU_OPT_STRING, - .help = "pci address (virtio only)", - },{ - .name = "readonly", - .type = QEMU_OPT_BOOL, - .help = "open drive file as read-only", - },{ - .name = "iops", - .type = QEMU_OPT_NUMBER, - .help = "limit total I/O operations per second", - },{ - .name = "iops_rd", - .type = QEMU_OPT_NUMBER, - .help = "limit read operations per second", - },{ - .name = "iops_wr", - .type = QEMU_OPT_NUMBER, - .help = "limit write operations per second", - },{ - .name = "bps", - .type = QEMU_OPT_NUMBER, - .help = "limit total bytes per second", - },{ - .name = "bps_rd", - .type = QEMU_OPT_NUMBER, - .help = "limit read bytes per second", - },{ - .name = "bps_wr", - .type = QEMU_OPT_NUMBER, - .help = "limit write bytes per second", - },{ - .name = "copy-on-read", - .type = QEMU_OPT_BOOL, - .help = "copy read data from backing file into image file", - },{ - .name = "boot", - .type = QEMU_OPT_BOOL, - .help = "(deprecated, ignored)", - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_iscsi_opts = { - .name = "iscsi", - .head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head), - .desc = { - { - .name = "user", - .type = QEMU_OPT_STRING, - .help = "username for CHAP authentication to target", - },{ - .name = "password", - .type = QEMU_OPT_STRING, - .help = "password for CHAP authentication to target", - },{ - .name = "header-digest", - .type = QEMU_OPT_STRING, - .help = "HeaderDigest setting. " - "{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}", - },{ - .name = "initiator-name", - .type = QEMU_OPT_STRING, - .help = "Initiator iqn name to use when connecting", - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_chardev_opts = { - .name = "chardev", - .implied_opt_name = "backend", - .head = QTAILQ_HEAD_INITIALIZER(qemu_chardev_opts.head), - .desc = { - { - .name = "backend", - .type = QEMU_OPT_STRING, - },{ - .name = "path", - .type = QEMU_OPT_STRING, - },{ - .name = "host", - .type = QEMU_OPT_STRING, - },{ - .name = "port", - .type = QEMU_OPT_STRING, - },{ - .name = "localaddr", - .type = QEMU_OPT_STRING, - },{ - .name = "localport", - .type = QEMU_OPT_STRING, - },{ - .name = "to", - .type = QEMU_OPT_NUMBER, - },{ - .name = "ipv4", - .type = QEMU_OPT_BOOL, - },{ - .name = "ipv6", - .type = QEMU_OPT_BOOL, - },{ - .name = "wait", - .type = QEMU_OPT_BOOL, - },{ - .name = "server", - .type = QEMU_OPT_BOOL, - },{ - .name = "delay", - .type = QEMU_OPT_BOOL, - },{ - .name = "telnet", - .type = QEMU_OPT_BOOL, - },{ - .name = "width", - .type = QEMU_OPT_NUMBER, - },{ - .name = "height", - .type = QEMU_OPT_NUMBER, - },{ - .name = "cols", - .type = QEMU_OPT_NUMBER, - },{ - .name = "rows", - .type = QEMU_OPT_NUMBER, - },{ - .name = "mux", - .type = QEMU_OPT_BOOL, - },{ - .name = "signal", - .type = QEMU_OPT_BOOL, - },{ - .name = "name", - .type = QEMU_OPT_STRING, - },{ - .name = "debug", - .type = QEMU_OPT_NUMBER, - }, - { /* end of list */ } - }, -}; - -QemuOptsList qemu_fsdev_opts = { - .name = "fsdev", - .implied_opt_name = "fsdriver", - .head = QTAILQ_HEAD_INITIALIZER(qemu_fsdev_opts.head), - .desc = { - { - .name = "fsdriver", - .type = QEMU_OPT_STRING, - }, { - .name = "path", - .type = QEMU_OPT_STRING, - }, { - .name = "security_model", - .type = QEMU_OPT_STRING, - }, { - .name = "writeout", - .type = QEMU_OPT_STRING, - }, { - .name = "readonly", - .type = QEMU_OPT_BOOL, - - }, { - .name = "socket", - .type = QEMU_OPT_STRING, - }, { - .name = "sock_fd", - .type = QEMU_OPT_NUMBER, - }, - - { /*End of list */ } - }, -}; - -QemuOptsList qemu_virtfs_opts = { - .name = "virtfs", - .implied_opt_name = "fsdriver", - .head = QTAILQ_HEAD_INITIALIZER(qemu_virtfs_opts.head), - .desc = { - { - .name = "fsdriver", - .type = QEMU_OPT_STRING, - }, { - .name = "path", - .type = QEMU_OPT_STRING, - }, { - .name = "mount_tag", - .type = QEMU_OPT_STRING, - }, { - .name = "security_model", - .type = QEMU_OPT_STRING, - }, { - .name = "writeout", - .type = QEMU_OPT_STRING, - }, { - .name = "readonly", - .type = QEMU_OPT_BOOL, - }, { - .name = "socket", - .type = QEMU_OPT_STRING, - }, { - .name = "sock_fd", - .type = QEMU_OPT_NUMBER, - }, - - { /*End of list */ } - }, -}; - -static QemuOptsList qemu_device_opts = { - .name = "device", - .implied_opt_name = "driver", - .head = QTAILQ_HEAD_INITIALIZER(qemu_device_opts.head), - .desc = { - /* - * no elements => accept any - * sanity checking will happen later - * when setting device properties - */ - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_netdev_opts = { - .name = "netdev", - .implied_opt_name = "type", - .head = QTAILQ_HEAD_INITIALIZER(qemu_netdev_opts.head), - .desc = { - /* - * no elements => accept any params - * validation will happen later - */ - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_net_opts = { - .name = "net", - .implied_opt_name = "type", - .head = QTAILQ_HEAD_INITIALIZER(qemu_net_opts.head), - .desc = { - /* - * no elements => accept any params - * validation will happen later - */ - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_rtc_opts = { - .name = "rtc", - .head = QTAILQ_HEAD_INITIALIZER(qemu_rtc_opts.head), - .desc = { - { - .name = "base", - .type = QEMU_OPT_STRING, - },{ - .name = "clock", - .type = QEMU_OPT_STRING, - },{ - .name = "driftfix", - .type = QEMU_OPT_STRING, - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_global_opts = { - .name = "global", - .head = QTAILQ_HEAD_INITIALIZER(qemu_global_opts.head), - .desc = { - { - .name = "driver", - .type = QEMU_OPT_STRING, - },{ - .name = "property", - .type = QEMU_OPT_STRING, - },{ - .name = "value", - .type = QEMU_OPT_STRING, - }, - { /* end of list */ } - }, -}; - -QemuOptsList qemu_sandbox_opts = { - .name = "sandbox", - .implied_opt_name = "enable", - .head = QTAILQ_HEAD_INITIALIZER(qemu_sandbox_opts.head), - .desc = { - { - .name = "enable", - .type = QEMU_OPT_BOOL, - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_mon_opts = { - .name = "mon", - .implied_opt_name = "chardev", - .head = QTAILQ_HEAD_INITIALIZER(qemu_mon_opts.head), - .desc = { - { - .name = "mode", - .type = QEMU_OPT_STRING, - },{ - .name = "chardev", - .type = QEMU_OPT_STRING, - },{ - .name = "default", - .type = QEMU_OPT_BOOL, - },{ - .name = "pretty", - .type = QEMU_OPT_BOOL, - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_trace_opts = { - .name = "trace", - .implied_opt_name = "trace", - .head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head), - .desc = { - { - .name = "events", - .type = QEMU_OPT_STRING, - },{ - .name = "file", - .type = QEMU_OPT_STRING, - }, - { /* end of list */ } - }, -}; - -QemuOptsList qemu_spice_opts = { - .name = "spice", - .head = QTAILQ_HEAD_INITIALIZER(qemu_spice_opts.head), - .desc = { - { - .name = "port", - .type = QEMU_OPT_NUMBER, - },{ - .name = "tls-port", - .type = QEMU_OPT_NUMBER, - },{ - .name = "addr", - .type = QEMU_OPT_STRING, - },{ - .name = "ipv4", - .type = QEMU_OPT_BOOL, - },{ - .name = "ipv6", - .type = QEMU_OPT_BOOL, - },{ - .name = "password", - .type = QEMU_OPT_STRING, - },{ - .name = "disable-ticketing", - .type = QEMU_OPT_BOOL, - },{ - .name = "disable-copy-paste", - .type = QEMU_OPT_BOOL, - },{ - .name = "sasl", - .type = QEMU_OPT_BOOL, - },{ - .name = "x509-dir", - .type = QEMU_OPT_STRING, - },{ - .name = "x509-key-file", - .type = QEMU_OPT_STRING, - },{ - .name = "x509-key-password", - .type = QEMU_OPT_STRING, - },{ - .name = "x509-cert-file", - .type = QEMU_OPT_STRING, - },{ - .name = "x509-cacert-file", - .type = QEMU_OPT_STRING, - },{ - .name = "x509-dh-key-file", - .type = QEMU_OPT_STRING, - },{ - .name = "tls-ciphers", - .type = QEMU_OPT_STRING, - },{ - .name = "tls-channel", - .type = QEMU_OPT_STRING, - },{ - .name = "plaintext-channel", - .type = QEMU_OPT_STRING, - },{ - .name = "image-compression", - .type = QEMU_OPT_STRING, - },{ - .name = "jpeg-wan-compression", - .type = QEMU_OPT_STRING, - },{ - .name = "zlib-glz-wan-compression", - .type = QEMU_OPT_STRING, - },{ - .name = "streaming-video", - .type = QEMU_OPT_STRING, - },{ - .name = "agent-mouse", - .type = QEMU_OPT_BOOL, - },{ - .name = "playback-compression", - .type = QEMU_OPT_BOOL, - }, { - .name = "seamless-migration", - .type = QEMU_OPT_BOOL, - }, - { /* end of list */ } - }, -}; - -QemuOptsList qemu_option_rom_opts = { - .name = "option-rom", - .implied_opt_name = "romfile", - .head = QTAILQ_HEAD_INITIALIZER(qemu_option_rom_opts.head), - .desc = { - { - .name = "bootindex", - .type = QEMU_OPT_NUMBER, - }, { - .name = "romfile", - .type = QEMU_OPT_STRING, - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_machine_opts = { - .name = "machine", - .implied_opt_name = "type", - .merge_lists = true, - .head = QTAILQ_HEAD_INITIALIZER(qemu_machine_opts.head), - .desc = { - { - .name = "type", - .type = QEMU_OPT_STRING, - .help = "emulated machine" - }, { - .name = "accel", - .type = QEMU_OPT_STRING, - .help = "accelerator list", - }, { - .name = "kernel_irqchip", - .type = QEMU_OPT_BOOL, - .help = "use KVM in-kernel irqchip", - }, { - .name = "kvm_shadow_mem", - .type = QEMU_OPT_SIZE, - .help = "KVM shadow MMU size", - }, { - .name = "kernel", - .type = QEMU_OPT_STRING, - .help = "Linux kernel image file", - }, { - .name = "initrd", - .type = QEMU_OPT_STRING, - .help = "Linux initial ramdisk file", - }, { - .name = "append", - .type = QEMU_OPT_STRING, - .help = "Linux kernel command line", - }, { - .name = "dtb", - .type = QEMU_OPT_STRING, - .help = "Linux kernel device tree file", - }, { - .name = "dumpdtb", - .type = QEMU_OPT_STRING, - .help = "Dump current dtb to a file and quit", - }, { - .name = "phandle_start", - .type = QEMU_OPT_STRING, - .help = "The first phandle ID we may generate dynamically", - }, { - .name = "dt_compatible", - .type = QEMU_OPT_STRING, - .help = "Overrides the \"compatible\" property of the dt root node", - }, { - .name = "dump-guest-core", - .type = QEMU_OPT_BOOL, - .help = "Include guest memory in a core dump", - }, { - .name = "mem-merge", - .type = QEMU_OPT_BOOL, - .help = "enable/disable memory merge support", - },{ - .name = "usb", - .type = QEMU_OPT_BOOL, - .help = "Set on/off to enable/disable usb", - }, { - .name = "nvram", - .type = QEMU_OPT_STRING, - .help = "Drive backing persistent NVRAM", - }, - { /* End of list */ } - }, -}; - -QemuOptsList qemu_boot_opts = { - .name = "boot-opts", - .head = QTAILQ_HEAD_INITIALIZER(qemu_boot_opts.head), - .desc = { - /* the three names below are not used now */ - { - .name = "order", - .type = QEMU_OPT_STRING, - }, { - .name = "once", - .type = QEMU_OPT_STRING, - }, { - .name = "menu", - .type = QEMU_OPT_STRING, - /* following are really used */ - }, { - .name = "splash", - .type = QEMU_OPT_STRING, - }, { - .name = "splash-time", - .type = QEMU_OPT_STRING, - }, { - .name = "reboot-timeout", - .type = QEMU_OPT_STRING, - }, - { /*End of list */ } - }, -}; - -static QemuOptsList qemu_add_fd_opts = { - .name = "add-fd", - .head = QTAILQ_HEAD_INITIALIZER(qemu_add_fd_opts.head), - .desc = { - { - .name = "fd", - .type = QEMU_OPT_NUMBER, - .help = "file descriptor of which a duplicate is added to fd set", - },{ - .name = "set", - .type = QEMU_OPT_NUMBER, - .help = "ID of the fd set to add fd to", - },{ - .name = "opaque", - .type = QEMU_OPT_STRING, - .help = "free-form string used to describe fd", - }, - { /* end of list */ } - }, -}; - -static QemuOptsList qemu_object_opts = { - .name = "object", - .implied_opt_name = "qom-type", - .head = QTAILQ_HEAD_INITIALIZER(qemu_object_opts.head), - .desc = { - { } - }, -}; - -static QemuOptsList *vm_config_groups[32] = { - &qemu_drive_opts, - &qemu_chardev_opts, - &qemu_device_opts, - &qemu_netdev_opts, - &qemu_net_opts, - &qemu_rtc_opts, - &qemu_global_opts, - &qemu_mon_opts, - &qemu_trace_opts, - &qemu_option_rom_opts, - &qemu_machine_opts, - &qemu_boot_opts, - &qemu_iscsi_opts, - &qemu_sandbox_opts, - &qemu_add_fd_opts, - &qemu_object_opts, - NULL, -}; +static QemuOptsList *vm_config_groups[32]; static QemuOptsList *find_list(QemuOptsList **lists, const char *group, Error **errp) @@ -748,25 +88,6 @@ int qemu_set_option(const char *str) return 0; } -int qemu_global_option(const char *str) -{ - char driver[64], property[64]; - QemuOpts *opts; - int rc, offset; - - rc = sscanf(str, "%63[^.].%63[^=]%n", driver, property, &offset); - if (rc < 2 || str[offset] != '=') { - error_report("can't parse: \"%s\"", str); - return -1; - } - - opts = qemu_opts_create_nofail(&qemu_global_opts); - qemu_opt_set(opts, "driver", driver); - qemu_opt_set(opts, "property", property); - qemu_opt_set(opts, "value", str+offset+1); - return 0; -} - struct ConfigWriteData { QemuOptsList *list; FILE *fp; diff --git a/ui/spice-core.c b/ui/spice-core.c index 3e44779..0255909 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -417,6 +417,90 @@ static SpiceChannelList *qmp_query_spice_channels(void) return head; } +static QemuOptsList qemu_spice_opts = { + .name = "spice", + .head = QTAILQ_HEAD_INITIALIZER(qemu_spice_opts.head), + .desc = { + { + .name = "port", + .type = QEMU_OPT_NUMBER, + },{ + .name = "tls-port", + .type = QEMU_OPT_NUMBER, + },{ + .name = "addr", + .type = QEMU_OPT_STRING, + },{ + .name = "ipv4", + .type = QEMU_OPT_BOOL, + },{ + .name = "ipv6", + .type = QEMU_OPT_BOOL, + },{ + .name = "password", + .type = QEMU_OPT_STRING, + },{ + .name = "disable-ticketing", + .type = QEMU_OPT_BOOL, + },{ + .name = "disable-copy-paste", + .type = QEMU_OPT_BOOL, + },{ + .name = "sasl", + .type = QEMU_OPT_BOOL, + },{ + .name = "x509-dir", + .type = QEMU_OPT_STRING, + },{ + .name = "x509-key-file", + .type = QEMU_OPT_STRING, + },{ + .name = "x509-key-password", + .type = QEMU_OPT_STRING, + },{ + .name = "x509-cert-file", + .type = QEMU_OPT_STRING, + },{ + .name = "x509-cacert-file", + .type = QEMU_OPT_STRING, + },{ + .name = "x509-dh-key-file", + .type = QEMU_OPT_STRING, + },{ + .name = "tls-ciphers", + .type = QEMU_OPT_STRING, + },{ + .name = "tls-channel", + .type = QEMU_OPT_STRING, + },{ + .name = "plaintext-channel", + .type = QEMU_OPT_STRING, + },{ + .name = "image-compression", + .type = QEMU_OPT_STRING, + },{ + .name = "jpeg-wan-compression", + .type = QEMU_OPT_STRING, + },{ + .name = "zlib-glz-wan-compression", + .type = QEMU_OPT_STRING, + },{ + .name = "streaming-video", + .type = QEMU_OPT_STRING, + },{ + .name = "agent-mouse", + .type = QEMU_OPT_BOOL, + },{ + .name = "playback-compression", + .type = QEMU_OPT_BOOL, + }, { + .name = "seamless-migration", + .type = QEMU_OPT_BOOL, + }, + { /* end of list */ } + }, +}; + SpiceInfo *qmp_query_spice(Error **errp) { QemuOpts *opts = QTAILQ_FIRST(&qemu_spice_opts.head); diff --git a/vl.c b/vl.c index e6a8d89..cdf6f61 100644 --- a/vl.c +++ b/vl.c @@ -299,6 +299,195 @@ static struct { { .driver = "qxl-vga", .flag = &default_vga }, }; +static QemuOptsList qemu_rtc_opts = { + .name = "rtc", + .head = QTAILQ_HEAD_INITIALIZER(qemu_rtc_opts.head), + .desc = { + { + .name = "base", + .type = QEMU_OPT_STRING, + },{ + .name = "clock", + .type = QEMU_OPT_STRING, + },{ + .name = "driftfix", + .type = QEMU_OPT_STRING, + }, + { /* end of list */ } + }, +}; + +static QemuOptsList qemu_sandbox_opts = { + .name = "sandbox", + .implied_opt_name = "enable", + .head = QTAILQ_HEAD_INITIALIZER(qemu_sandbox_opts.head), + .desc = { + { + .name = "enable", + .type = QEMU_OPT_BOOL, + }, + { /* end of list */ } + }, +}; + +static QemuOptsList qemu_trace_opts = { + .name = "trace", + .implied_opt_name = "trace", + .head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head), + .desc = { + { + .name = "events", + .type = QEMU_OPT_STRING, + },{ + .name = "file", + .type = QEMU_OPT_STRING, + }, + { /* end of list */ } + }, +}; + +static QemuOptsList qemu_option_rom_opts = { + .name = "option-rom", + .implied_opt_name = "romfile", + .head = QTAILQ_HEAD_INITIALIZER(qemu_option_rom_opts.head), + .desc = { + { + .name = "bootindex", + .type = QEMU_OPT_NUMBER, + }, { + .name = "romfile", + .type = QEMU_OPT_STRING, + }, + { /* end of list */ } + }, +}; + +static QemuOptsList qemu_machine_opts = { + .name = "machine", + .implied_opt_name = "type", + .merge_lists = true, + .head = QTAILQ_HEAD_INITIALIZER(qemu_machine_opts.head), + .desc = { + { + .name = "type", + .type = QEMU_OPT_STRING, + .help = "emulated machine" + }, { + .name = "accel", + .type = QEMU_OPT_STRING, + .help = "accelerator list", + }, { + .name = "kernel_irqchip", + .type = QEMU_OPT_BOOL, + .help = "use KVM in-kernel irqchip", + }, { + .name = "kvm_shadow_mem", + .type = QEMU_OPT_SIZE, + .help = "KVM shadow MMU size", + }, { + .name = "kernel", + .type = QEMU_OPT_STRING, + .help = "Linux kernel image file", + }, { + .name = "initrd", + .type = QEMU_OPT_STRING, + .help = "Linux initial ramdisk file", + }, { + .name = "append", + .type = QEMU_OPT_STRING, + .help = "Linux kernel command line", + }, { + .name = "dtb", + .type = QEMU_OPT_STRING, + .help = "Linux kernel device tree file", + }, { + .name = "dumpdtb", + .type = QEMU_OPT_STRING, + .help = "Dump current dtb to a file and quit", + }, { + .name = "phandle_start", + .type = QEMU_OPT_STRING, + .help = "The first phandle ID we may generate dynamically", + }, { + .name = "dt_compatible", + .type = QEMU_OPT_STRING, + .help = "Overrides the \"compatible\" property of the dt root node", + }, { + .name = "dump-guest-core", + .type = QEMU_OPT_BOOL, + .help = "Include guest memory in a core dump", + }, { + .name = "mem-merge", + .type = QEMU_OPT_BOOL, + .help = "enable/disable memory merge support", + },{ + .name = "usb", + .type = QEMU_OPT_BOOL, + .help = "Set on/off to enable/disable usb", + }, + { /* End of list */ } + }, +}; + +static QemuOptsList qemu_boot_opts = { + .name = "boot-opts", + .head = QTAILQ_HEAD_INITIALIZER(qemu_boot_opts.head), + .desc = { + /* the three names below are not used now */ + { + .name = "order", + .type = QEMU_OPT_STRING, + }, { + .name = "once", + .type = QEMU_OPT_STRING, + }, { + .name = "menu", + .type = QEMU_OPT_STRING, + /* following are really used */ + }, { + .name = "splash", + .type = QEMU_OPT_STRING, + }, { + .name = "splash-time", + .type = QEMU_OPT_STRING, + }, { + .name = "reboot-timeout", + .type = QEMU_OPT_STRING, + }, + { /*End of list */ } + }, +}; + +static QemuOptsList qemu_add_fd_opts = { + .name = "add-fd", + .head = QTAILQ_HEAD_INITIALIZER(qemu_add_fd_opts.head), + .desc = { + { + .name = "fd", + .type = QEMU_OPT_NUMBER, + .help = "file descriptor of which a duplicate is added to fd set", + },{ + .name = "set", + .type = QEMU_OPT_NUMBER, + .help = "ID of the fd set to add fd to", + },{ + .name = "opaque", + .type = QEMU_OPT_STRING, + .help = "free-form string used to describe fd", + }, + { /* end of list */ } + }, +}; + +static QemuOptsList qemu_object_opts = { + .name = "object", + .implied_opt_name = "qom-type", + .head = QTAILQ_HEAD_INITIALIZER(qemu_object_opts.head), + .desc = { + { } + }, +}; + const char *qemu_get_vm_name(void) { return qemu_name; @@ -2569,6 +2758,22 @@ int main(int argc, char **argv, char **envp) module_call_init(MODULE_INIT_QOM); + qemu_add_opts(&qemu_drive_opts); + qemu_add_opts(&qemu_chardev_opts); + qemu_add_opts(&qemu_device_opts); + qemu_add_opts(&qemu_netdev_opts); + qemu_add_opts(&qemu_net_opts); + qemu_add_opts(&qemu_rtc_opts); + qemu_add_opts(&qemu_global_opts); + qemu_add_opts(&qemu_mon_opts); + qemu_add_opts(&qemu_trace_opts); + qemu_add_opts(&qemu_option_rom_opts); + qemu_add_opts(&qemu_machine_opts); + qemu_add_opts(&qemu_boot_opts); + qemu_add_opts(&qemu_sandbox_opts); + qemu_add_opts(&qemu_add_fd_opts); + qemu_add_opts(&qemu_object_opts); + runstate_init(); init_clocks(); -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 02/27] stubs: fully replace qemu-tool.c and qemu-user.c 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 01/27] qemu-option: move standard option definitions out of qemu-config.c Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 03/27] build: make libtool verbose when making with V=1 Paolo Bonzini ` (25 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- Makefile.objs | 3 +- exec.c | 2 +- qemu-tool.c | 115 -------------------------------------------- qemu-user.c | 37 -------------- stubs/Makefile.objs | 13 +++++ stubs/clock-warp.c | 7 +++ stubs/cpu-get-clock.c | 7 +++ stubs/cpu-get-icount.c | 9 ++++ stubs/get-vm-name.c | 7 +++ stubs/iothread-lock.c | 10 ++++ stubs/migr-blocker.c | 10 ++++ stubs/mon-is-qmp.c | 7 +++ stubs/mon-print-filename.c | 6 ++ stubs/mon-printf.c | 10 ++++ stubs/mon-protocol-event.c | 6 ++ stubs/mon-set-error.c | 8 +++ stubs/slirp.c | 17 +++++++ stubs/vm-stop.c | 7 +++ tests/Makefile | 18 ++++---- 20 files changed, 136 insertions(+), 165 deletions(-) delete mode 100644 qemu-tool.c delete mode 100644 qemu-user.c create mode 100644 stubs/clock-warp.c create mode 100644 stubs/cpu-get-clock.c create mode 100644 stubs/cpu-get-icount.c create mode 100644 stubs/get-vm-name.c create mode 100644 stubs/iothread-lock.c create mode 100644 stubs/migr-blocker.c create mode 100644 stubs/mon-is-qmp.c create mode 100644 stubs/mon-print-filename.c create mode 100644 stubs/mon-printf.c create mode 100644 stubs/mon-protocol-event.c create mode 100644 stubs/mon-set-error.c create mode 100644 stubs/slirp.c create mode 100644 stubs/vm-stop.c diff --git a/Makefile b/Makefile index a0321dd..52759c1 100644 --- a/Makefile +++ b/Makefile @@ -168,7 +168,7 @@ install-libcacard: libcacard.la qemu-img.o: qemu-img-cmds.h -tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-tool.o qemu-timer.o \ +tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-timer.o \ main-loop.o iohandler.o error.o tools-obj-$(CONFIG_POSIX) += compatfd.o diff --git a/Makefile.objs b/Makefile.objs index a637a4a..346bf9d 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -120,7 +120,6 @@ user-obj-y += envlist.o path.o user-obj-y += tcg-runtime.o host-utils.o user-obj-y += cache-utils.o user-obj-y += module.o -user-obj-y += qemu-user.o user-obj-y += qom/ ###################################################################### @@ -220,7 +219,7 @@ universal-obj-y += $(qapi-obj-y) ###################################################################### # guest agent -qga-obj-y = qga/ module.o qemu-tool.o +qga-obj-y = qga/ module.o qga-obj-$(CONFIG_POSIX) += qemu-sockets.o qemu-option.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) diff --git a/exec.c b/exec.c index 28abd7e..624d525 100644 --- a/exec.c +++ b/exec.c @@ -77,7 +77,7 @@ DEFINE_TLS(CPUArchState *,cpu_single_env); /* 0 = Do not count executed instructions. 1 = Precise instruction counting. 2 = Adaptive rate instruction counting. */ -int use_icount = 0; +int use_icount; #if !defined(CONFIG_USER_ONLY) diff --git a/qemu-tool.c b/qemu-tool.c deleted file mode 100644 index 1a474c4..0000000 --- a/qemu-tool.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Compatibility for qemu-img/qemu-nbd - * - * Copyright IBM, Corp. 2008 - * - * Authors: - * Anthony Liguori <aliguori@us.ibm.com> - * - * This work is licensed under the terms of the GNU GPL, version 2. See - * the COPYING file in the top-level directory. - * - * Contributions after 2012-01-13 are licensed under the terms of the - * GNU GPL, version 2 or (at your option) any later version. - */ - -#include "qemu-common.h" -#include "monitor/monitor.h" -#include "qemu/timer.h" -#include "qemu/log.h" -#include "migration/migration.h" -#include "qemu/main-loop.h" -#include "sysemu/sysemu.h" -#include "qemu/sockets.h" -#include "slirp/libslirp.h" - -#include <sys/time.h> - -struct QEMUBH -{ - QEMUBHFunc *cb; - void *opaque; -}; - -const char *qemu_get_vm_name(void) -{ - return NULL; -} - -Monitor *cur_mon; - -void vm_stop(RunState state) -{ - abort(); -} - -int monitor_cur_is_qmp(void) -{ - return 0; -} - -void monitor_set_error(Monitor *mon, QError *qerror) -{ -} - -void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) -{ -} - -void monitor_printf(Monitor *mon, const char *fmt, ...) -{ -} - -void monitor_print_filename(Monitor *mon, const char *filename) -{ -} - -void monitor_protocol_event(MonitorEvent event, QObject *data) -{ -} - -int64_t cpu_get_clock(void) -{ - return get_clock_realtime(); -} - -int64_t cpu_get_icount(void) -{ - abort(); -} - -void qemu_mutex_lock_iothread(void) -{ -} - -void qemu_mutex_unlock_iothread(void) -{ -} - -int use_icount; - -void qemu_clock_warp(QEMUClock *clock) -{ -} - -void slirp_update_timeout(uint32_t *timeout) -{ -} - -void slirp_select_fill(int *pnfds, fd_set *readfds, - fd_set *writefds, fd_set *xfds) -{ -} - -void slirp_select_poll(fd_set *readfds, fd_set *writefds, - fd_set *xfds, int select_error) -{ -} - -void migrate_add_blocker(Error *reason) -{ -} - -void migrate_del_blocker(Error *reason) -{ -} diff --git a/qemu-user.c b/qemu-user.c deleted file mode 100644 index f8b450c..0000000 --- a/qemu-user.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Stubs for QEMU user emulation - * - * Copyright (c) 2012 SUSE LINUX Products GmbH - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see - * <http://www.gnu.org/licenses/gpl-2.0.html> - */ - -#include "qemu-common.h" -#include "monitor/monitor.h" - -Monitor *cur_mon; - -int monitor_cur_is_qmp(void) -{ - return 0; -} - -void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) -{ -} - -void monitor_set_error(Monitor *mon, QError *qerror) -{ -} diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 035b29a..4cfaeb9 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -1,8 +1,21 @@ stub-obj-y += arch-query-cpu-def.o +stub-obj-y += clock-warp.o +stub-obj-y += cpu-get-clock.o +stub-obj-y += cpu-get-icount.o stub-obj-y += fdset-add-fd.o stub-obj-y += fdset-find-fd.o stub-obj-y += fdset-get-fd.o stub-obj-y += fdset-remove-fd.o stub-obj-y += get-fd.o +stub-obj-y += get-vm-name.o +stub-obj-y += iothread-lock.o +stub-obj-y += migr-blocker.o +stub-obj-y += mon-is-qmp.o +stub-obj-y += mon-printf.o +stub-obj-y += mon-print-filename.o +stub-obj-y += mon-protocol-event.o +stub-obj-y += mon-set-error.o stub-obj-y += set-fd-handler.o +stub-obj-y += slirp.o +stub-obj-y += vm-stop.o stub-obj-$(CONFIG_WIN32) += fd-register.o diff --git a/stubs/clock-warp.c b/stubs/clock-warp.c new file mode 100644 index 0000000..b64c462 --- /dev/null +++ b/stubs/clock-warp.c @@ -0,0 +1,7 @@ +#include "qemu-common.h" +#include "qemu/timer.h" + +void qemu_clock_warp(QEMUClock *clock) +{ +} + diff --git a/stubs/cpu-get-clock.c b/stubs/cpu-get-clock.c new file mode 100644 index 0000000..5b34c97 --- /dev/null +++ b/stubs/cpu-get-clock.c @@ -0,0 +1,7 @@ +#include "qemu-common.h" +#include "qemu/timer.h" + +int64_t cpu_get_clock(void) +{ + return get_clock_realtime(); +} diff --git a/stubs/cpu-get-icount.c b/stubs/cpu-get-icount.c new file mode 100644 index 0000000..d685859 --- /dev/null +++ b/stubs/cpu-get-icount.c @@ -0,0 +1,9 @@ +#include "qemu-common.h" +#include "qemu/timer.h" + +int use_icount; + +int64_t cpu_get_icount(void) +{ + abort(); +} diff --git a/stubs/get-vm-name.c b/stubs/get-vm-name.c new file mode 100644 index 0000000..e5f619f --- /dev/null +++ b/stubs/get-vm-name.c @@ -0,0 +1,7 @@ +#include "qemu-common.h" + +const char *qemu_get_vm_name(void) +{ + return NULL; +} + diff --git a/stubs/iothread-lock.c b/stubs/iothread-lock.c new file mode 100644 index 0000000..5d8aca1 --- /dev/null +++ b/stubs/iothread-lock.c @@ -0,0 +1,10 @@ +#include "qemu-common.h" +#include "qemu/main-loop.h" + +void qemu_mutex_lock_iothread(void) +{ +} + +void qemu_mutex_unlock_iothread(void) +{ +} diff --git a/stubs/migr-blocker.c b/stubs/migr-blocker.c new file mode 100644 index 0000000..300df6e --- /dev/null +++ b/stubs/migr-blocker.c @@ -0,0 +1,10 @@ +#include "qemu-common.h" +#include "migration/migration.h" + +void migrate_add_blocker(Error *reason) +{ +} + +void migrate_del_blocker(Error *reason) +{ +} diff --git a/stubs/mon-is-qmp.c b/stubs/mon-is-qmp.c new file mode 100644 index 0000000..1f0a8fd --- /dev/null +++ b/stubs/mon-is-qmp.c @@ -0,0 +1,7 @@ +#include "qemu-common.h" +#include "monitor/monitor.h" + +int monitor_cur_is_qmp(void) +{ + return 0; +} diff --git a/stubs/mon-print-filename.c b/stubs/mon-print-filename.c new file mode 100644 index 0000000..9c93964 --- /dev/null +++ b/stubs/mon-print-filename.c @@ -0,0 +1,6 @@ +#include "qemu-common.h" +#include "monitor/monitor.h" + +void monitor_print_filename(Monitor *mon, const char *filename) +{ +} diff --git a/stubs/mon-printf.c b/stubs/mon-printf.c new file mode 100644 index 0000000..0ce2ca6 --- /dev/null +++ b/stubs/mon-printf.c @@ -0,0 +1,10 @@ +#include "qemu-common.h" +#include "monitor/monitor.h" + +void monitor_printf(Monitor *mon, const char *fmt, ...) +{ +} + +void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) +{ +} diff --git a/stubs/mon-protocol-event.c b/stubs/mon-protocol-event.c new file mode 100644 index 0000000..0946e94 --- /dev/null +++ b/stubs/mon-protocol-event.c @@ -0,0 +1,6 @@ +#include "qemu-common.h" +#include "monitor/monitor.h" + +void monitor_protocol_event(MonitorEvent event, QObject *data) +{ +} diff --git a/stubs/mon-set-error.c b/stubs/mon-set-error.c new file mode 100644 index 0000000..d0411f9 --- /dev/null +++ b/stubs/mon-set-error.c @@ -0,0 +1,8 @@ +#include "qemu-common.h" +#include "monitor/monitor.h" + +Monitor *cur_mon; + +void monitor_set_error(Monitor *mon, QError *qerror) +{ +} diff --git a/stubs/slirp.c b/stubs/slirp.c new file mode 100644 index 0000000..9a3309a --- /dev/null +++ b/stubs/slirp.c @@ -0,0 +1,17 @@ +#include "qemu-common.h" +#include "slirp/slirp.h" + +void slirp_update_timeout(uint32_t *timeout) +{ +} + +void slirp_select_fill(int *pnfds, fd_set *readfds, + fd_set *writefds, fd_set *xfds) +{ +} + +void slirp_select_poll(fd_set *readfds, fd_set *writefds, + fd_set *xfds, int select_error) +{ +} + diff --git a/stubs/vm-stop.c b/stubs/vm-stop.c new file mode 100644 index 0000000..4568935 --- /dev/null +++ b/stubs/vm-stop.c @@ -0,0 +1,7 @@ +#include "qemu-common.h" +#include "sysemu/sysemu.h" + +void vm_stop(RunState state) +{ + abort(); +} diff --git a/tests/Makefile b/tests/Makefile index b60f0fb..969dc29 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -38,7 +38,7 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \ tests/test-qmp-commands.o tests/test-visitor-serialization.o -test-qapi-obj-y = $(qobject-obj-y) $(qapi-obj-y) qemu-tool.o +test-qapi-obj-y = $(qobject-obj-y) $(qapi-obj-y) test-qapi-obj-y += tests/test-qapi-visit.o tests/test-qapi-types.o test-qapi-obj-y += module.o @@ -49,7 +49,7 @@ tests/check-qstring$(EXESUF): tests/check-qstring.o qstring.o tests/check-qdict$(EXESUF): tests/check-qdict.o qdict.o qfloat.o qint.o qstring.o qbool.o qlist.o tests/check-qlist$(EXESUF): tests/check-qlist.o qlist.o qint.o tests/check-qfloat$(EXESUF): tests/check-qfloat.o qfloat.o -tests/check-qjson$(EXESUF): tests/check-qjson.o $(qobject-obj-y) qemu-tool.o +tests/check-qjson$(EXESUF): tests/check-qjson.o $(qobject-obj-y) libqemustub.a tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) iov.o libqemustub.a tests/test-aio$(EXESUF): tests/test-aio.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) libqemustub.a tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) libqemustub.a @@ -66,13 +66,13 @@ $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py $(gen-out-type) -o tests -p "test-" < $<, " GEN $@") -tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) -tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) -tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) -tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) -tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) +tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) libqemustub.a +tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y) libqemustub.a +tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) libqemustub.a +tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) libqemustub.a +tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) libqemustub.a +tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) libqemustub.a +tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) libqemustub.a tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y) tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y) -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 03/27] build: make libtool verbose when making with V=1 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 01/27] qemu-option: move standard option definitions out of qemu-config.c Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 02/27] stubs: fully replace qemu-tool.c and qemu-user.c Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries Paolo Bonzini ` (24 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 2 +- rules.mak | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index c26aac6..9fa109f 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -36,7 +36,7 @@ install-libcacard: @echo "libtool is missing, please install and rerun configure"; exit 1 else libcacard.la: $(libcacard.lib-y) $(QEMU_OBJS_LIB) - $(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs)," lt LINK $@") + $(call quiet-command,$(LIBTOOL) --mode=link --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs)," lt LINK $@") libcacard_srcpath=$(SRC_PATH)/libcacard libcacard.pc: $(libcacard_srcpath)/libcacard.pc.in diff --git a/rules.mak b/rules.mak index 8448b94..2f2d10d 100644 --- a/rules.mak +++ b/rules.mak @@ -24,8 +24,9 @@ ifeq ($(LIBTOOL),) %.lo: %.c @echo "missing libtool. please install and rerun configure"; exit 1 else +LIBTOOL += $(if $(V),,--quiet) %.lo: %.c - $(call quiet-command,$(LIBTOOL) --mode=compile --quiet --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," lt CC $@") + $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," lt CC $@") endif %.o: %.S -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (2 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 03/27] build: make libtool verbose when making with V=1 Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 05/27] build: move dtrace rules to rules.mak Paolo Bonzini ` (23 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber This patch moves the complication of using libtool to the generic rules.mak file. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- configure | 8 +++++++- libcacard/Makefile | 11 +++++++---- rules.mak | 10 ++++++++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/configure b/configure index b101d5c..a984b26 100755 --- a/configure +++ b/configure @@ -3651,7 +3651,13 @@ echo "MAKE=$make" >> $config_host_mak echo "INSTALL=$install" >> $config_host_mak echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak -echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak +if test -n "$libtool"; then + echo "INSTALL_PROG=\$(LIBTOOL) --mode=install $install -c -m 0755" >> $config_host_mak + echo "INSTALL_LIB=\$(LIBTOOL) --mode=install $install -c -m 0644" >> $config_host_mak +else + echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak + echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak +fi echo "PYTHON=$python" >> $config_host_mak echo "CC=$cc" >> $config_host_mak echo "CC_I386=$cc_i386" >> $config_host_mak diff --git a/libcacard/Makefile b/libcacard/Makefile index 9fa109f..34d503b 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -10,6 +10,9 @@ $(call set-vpath, $(SRC_PATH)) QEMU_OBJS=$(oslib-obj-y) qemu-timer-common.o $(trace-obj-y) $(stub-obj-y) QEMU_OBJS_LIB=$(patsubst %.o,%.lo,$(QEMU_OBJS)) +# libtool will build the .o files, too +$(libcacard-obj-y): | $(libcacard-lobj-y) + QEMU_CFLAGS+=-I../ libcacard.lib-y=$(patsubst %.o,%.lo,$(libcacard-y)) @@ -54,10 +57,10 @@ install-libcacard: libcacard.pc libcacard.la vscclient $(INSTALL_DIR) "$(DESTDIR)$(libdir)/pkgconfig" $(INSTALL_DIR) "$(DESTDIR)$(libcacard_includedir)" $(INSTALL_DIR) "$(DESTDIR)$(bindir)" - $(LIBTOOL) --mode=install $(INSTALL_PROG) vscclient "$(DESTDIR)$(bindir)" - $(LIBTOOL) --mode=install $(INSTALL_DATA) libcacard.la "$(DESTDIR)$(libdir)" - $(LIBTOOL) --mode=install $(INSTALL_DATA) libcacard.pc "$(DESTDIR)$(libdir)/pkgconfig" + $(INSTALL_PROG) vscclient "$(DESTDIR)$(bindir)" + $(INSTALL_LIB) libcacard.la "$(DESTDIR)$(libdir)" + $(INSTALL_DATA) libcacard.pc "$(DESTDIR)$(libdir)/pkgconfig" for inc in *.h; do \ - $(LIBTOOL) --mode=install $(INSTALL_DATA) $(libcacard_srcpath)/$$inc "$(DESTDIR)$(libcacard_includedir)"; \ + $(INSTALL_DATA) $(libcacard_srcpath)/$$inc "$(DESTDIR)$(libcacard_includedir)"; \ done endif diff --git a/rules.mak b/rules.mak index 2f2d10d..6a7af8a 100644 --- a/rules.mak +++ b/rules.mak @@ -23,10 +23,18 @@ QEMU_CFLAGS += -I$(<D) -I$(@D) ifeq ($(LIBTOOL),) %.lo: %.c @echo "missing libtool. please install and rerun configure"; exit 1 +LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ + $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \ + $(LIBS)," LINK $(TARGET_DIR)$@") else LIBTOOL += $(if $(V),,--quiet) %.lo: %.c $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," lt CC $@") +LINK = $(call quiet-command,\ + $(if $(filter %.lo %.la,$^),$(LIBTOOL) --mode=link --tag=CC \ + )$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ + $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \ + $(LIBS),$(if $(filter %.lo %.la,$^),"lt LINK ", " LINK ")"$(TARGET_DIR)$@") endif %.o: %.S @@ -35,8 +43,6 @@ endif %.o: %.m $(call quiet-command,$(OBJCC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," OBJC $(TARGET_DIR)$@") -LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(LIBS)," LINK $(TARGET_DIR)$@") - %$(EXESUF): %.o $(call LINK,$^) -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 05/27] build: move dtrace rules to rules.mak 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (3 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 06/27] build: remove CONFIG_SMARTCARD Paolo Bonzini ` (22 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile.objs | 8 -------- rules.mak | 9 +++++++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index 346bf9d..7858c4e 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -169,14 +169,6 @@ trace-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host trace-dtrace.o: trace-dtrace.dtrace $(GENERATED_HEADERS) $(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace-dtrace.o") -ifeq ($(LIBTOOL),) -trace-dtrace.lo: trace-dtrace.dtrace - @echo "missing libtool. please install and rerun configure."; exit 1 -else -trace-dtrace.lo: trace-dtrace.dtrace - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN trace-dtrace.o") -endif - trace/simple.o: trace/simple.c $(GENERATED_HEADERS) trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace.o diff --git a/rules.mak b/rules.mak index 6a7af8a..494fff8 100644 --- a/rules.mak +++ b/rules.mak @@ -23,6 +23,9 @@ QEMU_CFLAGS += -I$(<D) -I$(@D) ifeq ($(LIBTOOL),) %.lo: %.c @echo "missing libtool. please install and rerun configure"; exit 1 +%.lo: %.dtrace + @echo "missing libtool. please install and rerun configure."; exit 1 + LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \ $(LIBS)," LINK $(TARGET_DIR)$@") @@ -30,6 +33,9 @@ else LIBTOOL += $(if $(V),,--quiet) %.lo: %.c $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," lt CC $@") +%.lo: %.dtrace + $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN $(TARGET_DIR)$@") + LINK = $(call quiet-command,\ $(if $(filter %.lo %.la,$^),$(LIBTOOL) --mode=link --tag=CC \ )$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ @@ -43,6 +49,9 @@ endif %.o: %.m $(call quiet-command,$(OBJCC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," OBJC $(TARGET_DIR)$@") +%.o: %.dtrace + $(call quiet-command,dtrace -o $@ -G -s $<, " GEN $(TARGET_DIR)$@") + %$(EXESUF): %.o $(call LINK,$^) -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 06/27] build: remove CONFIG_SMARTCARD 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (4 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 05/27] build: move dtrace rules to rules.mak Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 07/27] libcacard: fix missing symbol in libcacard.so Paolo Bonzini ` (21 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber The passthru smartcard does not have the shared library dependency, build it unconditionally. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- configure | 67 ++++++++++++++++++------------------------------- hw/Makefile.objs | 2 +- hw/usb/Makefile.objs | 2 +- 3 files changed, 27 insertions(+), 44 deletions(-) diff --git a/configure b/configure index a984b26..2cdcfce 100755 --- a/configure +++ b/configure @@ -212,7 +212,6 @@ trace_backend="nop" trace_file="trace" spice="" rbd="" -smartcard="" smartcard_nss="" usb_redir="" opengl="" @@ -850,10 +849,6 @@ for opt do ;; --enable-xfsctl) xfs="yes" ;; - --disable-smartcard) smartcard="no" - ;; - --enable-smartcard) smartcard="yes" - ;; --disable-smartcard-nss) smartcard_nss="no" ;; --enable-smartcard-nss) smartcard_nss="yes" @@ -1114,8 +1109,6 @@ echo " --enable-spice enable spice" echo " --enable-rbd enable building the rados block device (rbd)" echo " --disable-libiscsi disable iscsi support" echo " --enable-libiscsi enable iscsi support" -echo " --disable-smartcard disable smartcard support" -echo " --enable-smartcard enable smartcard support" echo " --disable-smartcard-nss disable smartcard nss support" echo " --enable-smartcard-nss enable smartcard nss support" echo " --disable-usb-redir disable usb network redirection support" @@ -2771,43 +2764,37 @@ EOF fi # check for libcacard for smartcard support -if test "$smartcard" != "no" ; then - smartcard="yes" - smartcard_cflags="" - # TODO - what's the minimal nss version we support? - if test "$smartcard_nss" != "no"; then - cat > $TMPC << EOF +smartcard_cflags="" +# TODO - what's the minimal nss version we support? +if test "$smartcard_nss" != "no"; then + cat > $TMPC << EOF #include <pk11pub.h> int main(void) { PK11_FreeSlot(0); return 0; } EOF - smartcard_includes="-I\$(SRC_PATH)/libcacard" - libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" - libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" - test_cflags="$libcacard_cflags" - # The header files in nss < 3.13.3 have a bug which causes them to - # emit a warning. If we're going to compile QEMU with -Werror, then - # test that the headers don't have this bug. Otherwise we would pass - # the configure test but fail to compile QEMU later. - if test "$werror" = "yes"; then - test_cflags="-Werror $test_cflags" - fi - if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ - compile_prog "$test_cflags" "$libcacard_libs"; then - smartcard_nss="yes" - QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags" - QEMU_INCLUDES="$QEMU_INCLUDES $smartcard_includes" - libs_softmmu="$libcacard_libs $libs_softmmu" - else - if test "$smartcard_nss" = "yes"; then - feature_not_found "nss" - fi - smartcard_nss="no" + smartcard_includes="-I\$(SRC_PATH)/libcacard" + libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" + libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" + test_cflags="$libcacard_cflags" + # The header files in nss < 3.13.3 have a bug which causes them to + # emit a warning. If we're going to compile QEMU with -Werror, then + # test that the headers don't have this bug. Otherwise we would pass + # the configure test but fail to compile QEMU later. + if test "$werror" = "yes"; then + test_cflags="-Werror $test_cflags" + fi + if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ + compile_prog "$test_cflags" "$libcacard_libs"; then + smartcard_nss="yes" + QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags" + QEMU_INCLUDES="$QEMU_INCLUDES $smartcard_includes" + libs_softmmu="$libcacard_libs $libs_softmmu" + else + if test "$smartcard_nss" = "yes"; then + feature_not_found "nss" fi + smartcard_nss="no" fi fi -if test "$smartcard" = "no" ; then - smartcard_nss="no" -fi # check for usbredirparser for usb network redirection support if test "$usb_redir" != "no" ; then @@ -3532,10 +3519,6 @@ if test "$spice" = "yes" ; then echo "CONFIG_SPICE=y" >> $config_host_mak fi -if test "$smartcard" = "yes" ; then - echo "CONFIG_SMARTCARD=y" >> $config_host_mak -fi - if test "$smartcard_nss" = "yes" ; then echo "CONFIG_SMARTCARD_NSS=y" >> $config_host_mak echo "libcacard_libs=$libcacard_libs" >> $config_host_mak diff --git a/hw/Makefile.objs b/hw/Makefile.objs index 2778035..319b70e 100644 --- a/hw/Makefile.objs +++ b/hw/Makefile.objs @@ -31,7 +31,7 @@ common-obj-$(CONFIG_DMA) += dma.o common-obj-$(CONFIG_I82374) += i82374.o common-obj-$(CONFIG_HPET) += hpet.o common-obj-$(CONFIG_APPLESMC) += applesmc.o -common-obj-$(CONFIG_SMARTCARD) += ccid-card-passthru.o +common-obj-y += ccid-card-passthru.o common-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o common-obj-$(CONFIG_I8259) += i8259_common.o i8259.o common-obj-y += fifo.o diff --git a/hw/usb/Makefile.objs b/hw/usb/Makefile.objs index 5a4eeb6..f42655b 100644 --- a/hw/usb/Makefile.objs +++ b/hw/usb/Makefile.objs @@ -4,11 +4,11 @@ common-obj-$(CONFIG_USB_EHCI) += hcd-ehci.o hcd-ehci-pci.o hcd-ehci-sysbus.o common-obj-$(CONFIG_USB_XHCI) += hcd-xhci.o common-obj-y += libhw.o -common-obj-$(CONFIG_SMARTCARD) += dev-smartcard-reader.o common-obj-$(CONFIG_USB_REDIR) += redirect.o common-obj-y += core.o combined-packet.o bus.o desc.o dev-hub.o common-obj-y += host-$(HOST_USB).o dev-bluetooth.o common-obj-y += dev-hid.o dev-storage.o dev-wacom.o common-obj-y += dev-serial.o dev-network.o dev-audio.o +common-obj-y += dev-smartcard-reader.o common-obj-y += dev-uas.o -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 07/27] libcacard: fix missing symbol in libcacard.so 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (5 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 06/27] build: remove CONFIG_SMARTCARD Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 08/27] libcacard: require libtool to build it Paolo Bonzini ` (20 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber From: Alon Levy <alevy@redhat.com> Before patch: $ make libcacard.la $ nm ./libcacard/.libs/libcacard.so.0.0.0 | grep " U " | \ egrep -v "(g_)|(GLIBC)|(SECMOD)|(PK11)|(CERT)|(NSS)|(PORT)|(PR)" U error_set Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index 34d503b..08a47e0 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -7,7 +7,7 @@ libcacard_includedir=$(includedir)/cacard $(call set-vpath, $(SRC_PATH)) # objects linked into a shared library, built with libtool with -fPIC if required -QEMU_OBJS=$(oslib-obj-y) qemu-timer-common.o $(trace-obj-y) $(stub-obj-y) +QEMU_OBJS=$(oslib-obj-y) qemu-timer-common.o error.o $(trace-obj-y) $(stub-obj-y) QEMU_OBJS_LIB=$(patsubst %.o,%.lo,$(QEMU_OBJS)) # libtool will build the .o files, too -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 08/27] libcacard: require libtool to build it 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (6 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 07/27] libcacard: fix missing symbol in libcacard.so Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 09/27] libcacard: prepare to use -y trick in the Makefile Paolo Bonzini ` (19 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Do not fail at build time, instead just disable the library if libtool is not present. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 ++ configure | 3 ++- libcacard/Makefile | 8 -------- rules.mak | 6 +----- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 52759c1..68e3a83 100644 --- a/Makefile +++ b/Makefile @@ -157,12 +157,14 @@ libqemustub.a: $(stub-obj-y) ###################################################################### # Support building shared library libcacard +ifeq ($(CONFIG_SMARTCARD_NSS),y) .PHONY: libcacard.la install-libcacard libcacard.la: $(oslib-obj-y) qemu-timer-common.o $(trace-obj-y) $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C libcacard V="$(V)" TARGET_DIR="$*/" libcacard.la,) install-libcacard: libcacard.la $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C libcacard V="$(V)" TARGET_DIR="$*/" install-libcacard,) +endif ###################################################################### diff --git a/configure b/configure index 2cdcfce..e3533e2 100755 --- a/configure +++ b/configure @@ -2782,7 +2782,8 @@ EOF if test "$werror" = "yes"; then test_cflags="-Werror $test_cflags" fi - if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ + if test -n "$libtool" && + $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ compile_prog "$test_cflags" "$libcacard_libs"; then smartcard_nss="yes" QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags" diff --git a/libcacard/Makefile b/libcacard/Makefile index 08a47e0..a526eae 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -31,13 +31,6 @@ all: libcacard.la libcacard.pc ######################################################################### # Rules for building libcacard standalone library -ifeq ($(LIBTOOL),) -libcacard.la: - @echo "libtool is missing, please install and rerun configure"; exit 1 - -install-libcacard: - @echo "libtool is missing, please install and rerun configure"; exit 1 -else libcacard.la: $(libcacard.lib-y) $(QEMU_OBJS_LIB) $(call quiet-command,$(LIBTOOL) --mode=link --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs)," lt LINK $@") @@ -63,4 +56,3 @@ install-libcacard: libcacard.pc libcacard.la vscclient for inc in *.h; do \ $(INSTALL_DATA) $(libcacard_srcpath)/$$inc "$(DESTDIR)$(libcacard_includedir)"; \ done -endif diff --git a/rules.mak b/rules.mak index 494fff8..c6a455d 100644 --- a/rules.mak +++ b/rules.mak @@ -21,11 +21,7 @@ QEMU_CFLAGS += -I$(<D) -I$(@D) $(call quiet-command,$(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -c -o $@ $<," CC $(TARGET_DIR)$@") ifeq ($(LIBTOOL),) -%.lo: %.c - @echo "missing libtool. please install and rerun configure"; exit 1 -%.lo: %.dtrace - @echo "missing libtool. please install and rerun configure."; exit 1 - +LIBTOOL = /bin/false LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \ $(LIBS)," LINK $(TARGET_DIR)$@") -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 09/27] libcacard: prepare to use -y trick in the Makefile 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (7 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 08/27] libcacard: require libtool to build it Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 10/27] libcacard: use per-target variable definitions Paolo Bonzini ` (18 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Rename variables to follow the conventions of the rest of the build systems. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index a526eae..ddab5d8 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -7,17 +7,15 @@ libcacard_includedir=$(includedir)/cacard $(call set-vpath, $(SRC_PATH)) # objects linked into a shared library, built with libtool with -fPIC if required -QEMU_OBJS=$(oslib-obj-y) qemu-timer-common.o error.o $(trace-obj-y) $(stub-obj-y) -QEMU_OBJS_LIB=$(patsubst %.o,%.lo,$(QEMU_OBJS)) +libcacard-obj-y=$(oslib-obj-y) error.o $(trace-obj-y) $(stub-obj-y) $(libcacard-y) +libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y)) # libtool will build the .o files, too $(libcacard-obj-y): | $(libcacard-lobj-y) QEMU_CFLAGS+=-I../ -libcacard.lib-y=$(patsubst %.o,%.lo,$(libcacard-y)) - -vscclient: $(libcacard-y) $(QEMU_OBJS) vscclient.o cutils.o +vscclient: vscclient.o $(libcacard-obj-y) $(call quiet-command,$(CC) -o $@ $^ $(libcacard_libs) $(LIBS)," LINK $@") clean: @@ -31,7 +29,7 @@ all: libcacard.la libcacard.pc ######################################################################### # Rules for building libcacard standalone library -libcacard.la: $(libcacard.lib-y) $(QEMU_OBJS_LIB) +libcacard.la: $(libcacard-lobj-y) $(call quiet-command,$(LIBTOOL) --mode=link --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs)," lt LINK $@") libcacard_srcpath=$(SRC_PATH)/libcacard -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 10/27] libcacard: use per-target variable definitions 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (8 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 09/27] libcacard: prepare to use -y trick in the Makefile Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 11/27] libcacard: add list of exported symbols Paolo Bonzini ` (17 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber This lets the libcacard Makefile use more rules.mak magic. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index ddab5d8..7fc6a06 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -15,8 +15,9 @@ $(libcacard-obj-y): | $(libcacard-lobj-y) QEMU_CFLAGS+=-I../ +vscclient: LIBS += $(libcacard_libs) vscclient: vscclient.o $(libcacard-obj-y) - $(call quiet-command,$(CC) -o $@ $^ $(libcacard_libs) $(LIBS)," LINK $@") + $(call LINK,$^) clean: rm -f *.o */*.o *.d */*.d *.a */*.a *~ */*~ vscclient *.lo */*.lo .libs/* */.libs/* *.la */*.la *.pc @@ -29,8 +30,10 @@ all: libcacard.la libcacard.pc ######################################################################### # Rules for building libcacard standalone library +libcacard.la: LDFLAGS += -rpath $(libdir) -no-undefined +libcacard.la: LIBS += $(libcacard_libs) libcacard.la: $(libcacard-lobj-y) - $(call quiet-command,$(LIBTOOL) --mode=link --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs)," lt LINK $@") + $(call LINK,$^) libcacard_srcpath=$(SRC_PATH)/libcacard libcacard.pc: $(libcacard_srcpath)/libcacard.pc.in -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 11/27] libcacard: add list of exported symbols 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (9 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 10/27] libcacard: use per-target variable definitions Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 12/27] libcacard: rewrite Makefile in non-recursive style Paolo Bonzini ` (16 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Do not export internal QEMU symbols. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 3 +- libcacard/libcacard.syms | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletions(-) create mode 100644 libcacard/libcacard.syms diff --git a/libcacard/Makefile b/libcacard/Makefile index 7fc6a06..73fc817 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -30,7 +30,8 @@ all: libcacard.la libcacard.pc ######################################################################### # Rules for building libcacard standalone library -libcacard.la: LDFLAGS += -rpath $(libdir) -no-undefined +libcacard.la: LDFLAGS += -rpath $(libdir) -no-undefined \ + -export-syms $(SRC_PATH)/libcacard/libcacard.syms libcacard.la: LIBS += $(libcacard_libs) libcacard.la: $(libcacard-lobj-y) $(call LINK,$^) diff --git a/libcacard/libcacard.syms b/libcacard/libcacard.syms new file mode 100644 index 0000000..1697515 --- /dev/null +++ b/libcacard/libcacard.syms @@ -0,0 +1,77 @@ +cac_card_init +cac_is_cac_card +vcard_add_applet +vcard_apdu_delete +vcard_apdu_new +vcard_applet_get_aid +vcard_buffer_response_delete +vcard_buffer_response_new +vcard_delete_applet +vcard_emul_delete_key +vcard_emul_force_card_insert +vcard_emul_force_card_remove +vcard_emul_get_atr +vcard_emul_get_login_count +vcard_emul_init +vcard_emul_login +vcard_emul_options +vcard_emul_replay_insertion_events +vcard_emul_reset +vcard_emul_rsa_op +vcard_emul_type_from_string +vcard_emul_type_select +vcard_emul_usage +vcard_find_applet +vcard_free +vcard_get_atr +vcard_get_buffer_response +vcard_get_current_applet_private +vcard_get_private +vcard_get_type +vcard_init +vcard_make_response +vcard_new +vcard_new_applet +vcard_process_apdu +vcard_process_applet_apdu +vcard_reference +vcard_reset +vcard_response_delete +vcard_response_new +vcard_response_new_bytes +vcard_response_new_data +vcard_response_new_status_bytes +vcard_select_applet +vcard_set_applet_private +vcard_set_atr_func +vcard_set_buffer_response +vcard_set_type +vevent_delete +vevent_get_next_vevent +vevent_new +vevent_queue_init +vevent_queue_vevent +vevent_wait_next_vevent +vreader_add_reader +vreader_card_is_present +vreader_free +vreader_get_id +vreader_get_name +vreader_get_private +vreader_get_reader_by_id +vreader_get_reader_by_name +vreader_get_reader_list +vreader_init +vreader_insert_card +vreader_list_delete +vreader_list_get_first +vreader_list_get_next +vreader_list_get_reader +vreader_new +vreader_power_off +vreader_power_on +vreader_queue_card_event +vreader_reference +vreader_remove_reader +vreader_set_id +vreader_xfr_bytes -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 12/27] libcacard: rewrite Makefile in non-recursive style 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (10 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 11/27] libcacard: add list of exported symbols Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 13/27] libcacard: link vscclient to dynamic library Paolo Bonzini ` (15 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 35 +++++++++-------------------------- configure | 9 +-------- libcacard/Makefile | 33 +++++++++------------------------ 3 files changed, 19 insertions(+), 58 deletions(-) diff --git a/Makefile b/Makefile index 68e3a83..92f62e3 100644 --- a/Makefile +++ b/Makefile @@ -101,6 +101,14 @@ defconfig: -include config-all-devices.mak -include config-all-disas.mak +ifneq ($(wildcard config-host.mak),) +include $(SRC_PATH)/Makefile.objs +include $(SRC_PATH)/tests/Makefile +endif +ifeq ($(CONFIG_SMARTCARD_NSS),y) +include $(SRC_PATH)/libcacard/Makefile +endif + all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all config-host.h: config-host.h-timestamp @@ -113,12 +121,6 @@ SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS)) subdir-%: $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,) -ifneq ($(wildcard config-host.mak),) -include $(SRC_PATH)/Makefile.objs -endif - -subdir-libcacard: $(oslib-obj-y) $(trace-obj-y) qemu-timer-common.o - subdir-pixman: pixman/Makefile $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,) @@ -155,18 +157,6 @@ version-obj-$(CONFIG_WIN32) += version.o libqemustub.a: $(stub-obj-y) ###################################################################### -# Support building shared library libcacard - -ifeq ($(CONFIG_SMARTCARD_NSS),y) -.PHONY: libcacard.la install-libcacard -libcacard.la: $(oslib-obj-y) qemu-timer-common.o $(trace-obj-y) - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C libcacard V="$(V)" TARGET_DIR="$*/" libcacard.la,) - -install-libcacard: libcacard.la - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C libcacard V="$(V)" TARGET_DIR="$*/" install-libcacard,) -endif - -###################################################################### qemu-img.o: qemu-img-cmds.h @@ -180,10 +170,6 @@ qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y) libqemustub.a qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o -vscclient$(EXESUF): LIBS += $(libcacard_libs) -vscclient$(EXESUF): $(libcacard-y) $(oslib-obj-y) $(trace-obj-y) libcacard/vscclient.o libqemustub.a - $(call LINK, $^) - fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y) fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap @@ -195,10 +181,6 @@ qemu-ga$(EXESUF): QEMU_CFLAGS += -I qga/qapi-generated gen-out-type = $(subst .,-,$(suffix $@)) -ifneq ($(wildcard config-host.mak),) -include $(SRC_PATH)/tests/Makefile -endif - qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h :\ @@ -233,6 +215,7 @@ clean: rm -f qemu-options.def find . -name '*.[od]' -exec rm -f {} + rm -f *.a *.lo $(TOOLS) $(HELPERS-y) qemu-ga TAGS cscope.* *.pod *~ */*~ + rm -f *.la rm -Rf .libs rm -f qemu-img-cmds.h rm -f trace-dtrace.dtrace trace-dtrace.dtrace-timestamp diff --git a/configure b/configure index e3533e2..f521920 100755 --- a/configure +++ b/configure @@ -3130,9 +3130,6 @@ if test "$softmmu" = yes ; then tools="qemu-ga\$(EXESUF) $tools" fi fi - if test "$smartcard_nss" = "yes" ; then - tools="vscclient\$(EXESUF) $tools" - fi fi # Mac OS X ships with a broken assembler @@ -3963,9 +3960,6 @@ fi if test "$target_softmmu" = "yes" ; then echo "CONFIG_SOFTMMU=y" >> $config_target_mak echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak - if test "$smartcard_nss" = "yes" ; then - echo "subdir-$target: subdir-libcacard" >> $config_host_mak - fi case "$target_arch2" in i386|x86_64) echo "CONFIG_HAVE_CORE_DUMP=y" >> $config_target_mak @@ -4166,10 +4160,9 @@ DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32" DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas" DIRS="$DIRS roms/seabios roms/vgabios" DIRS="$DIRS qapi-generated" -DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace" FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" -FILES="$FILES tests/tcg/lm32/Makefile libcacard/Makefile" +FILES="$FILES tests/tcg/lm32/Makefile" FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps" FILES="$FILES pc-bios/spapr-rtas/Makefile" FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" diff --git a/libcacard/Makefile b/libcacard/Makefile index 73fc817..34ef3b4 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -1,10 +1,6 @@ --include ../config-host.mak --include $(SRC_PATH)/rules.mak --include $(SRC_PATH)/Makefile.objs - libcacard_includedir=$(includedir)/cacard -$(call set-vpath, $(SRC_PATH)) +TOOLS += vscclient$(EXESUF) # objects linked into a shared library, built with libtool with -fPIC if required libcacard-obj-y=$(oslib-obj-y) error.o $(trace-obj-y) $(stub-obj-y) $(libcacard-y) @@ -13,20 +9,12 @@ libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y)) # libtool will build the .o files, too $(libcacard-obj-y): | $(libcacard-lobj-y) -QEMU_CFLAGS+=-I../ +all: libcacard.la libcacard.pc -vscclient: LIBS += $(libcacard_libs) -vscclient: vscclient.o $(libcacard-obj-y) +vscclient$(EXESUF): LIBS += $(libcacard_libs) +vscclient$(EXESUF): libcacard/vscclient.o $(libcacard-obj-y) $(call LINK,$^) -clean: - rm -f *.o */*.o *.d */*.d *.a */*.a *~ */*~ vscclient *.lo */*.lo .libs/* */.libs/* *.la */*.la *.pc - rm -Rf .libs */.libs - -all: libcacard.la libcacard.pc -# Dummy command so that make thinks it has done something - @true - ######################################################################### # Rules for building libcacard standalone library @@ -36,25 +24,22 @@ libcacard.la: LIBS += $(libcacard_libs) libcacard.la: $(libcacard-lobj-y) $(call LINK,$^) -libcacard_srcpath=$(SRC_PATH)/libcacard -libcacard.pc: $(libcacard_srcpath)/libcacard.pc.in +libcacard.pc: $(SRC_PATH)/libcacard/libcacard.pc.in $(call quiet-command,sed -e 's|@LIBDIR@|$(libdir)|' \ -e 's|@INCLUDEDIR@|$(libcacard_includedir)|' \ -e 's|@VERSION@|$(shell cat $(SRC_PATH)/VERSION)|' \ - -e 's|@PREFIX@|$(prefix)|' \ - < $(libcacard_srcpath)/libcacard.pc.in > libcacard.pc,\ + -e 's|@PREFIX@|$(prefix)|' $< > libcacard.pc,\ " GEN $@") .PHONY: install-libcacard -install-libcacard: libcacard.pc libcacard.la vscclient +install: install-libcacard +install-libcacard: libcacard.pc libcacard.la $(INSTALL_DIR) "$(DESTDIR)$(libdir)" $(INSTALL_DIR) "$(DESTDIR)$(libdir)/pkgconfig" $(INSTALL_DIR) "$(DESTDIR)$(libcacard_includedir)" - $(INSTALL_DIR) "$(DESTDIR)$(bindir)" - $(INSTALL_PROG) vscclient "$(DESTDIR)$(bindir)" $(INSTALL_LIB) libcacard.la "$(DESTDIR)$(libdir)" $(INSTALL_DATA) libcacard.pc "$(DESTDIR)$(libdir)/pkgconfig" for inc in *.h; do \ - $(INSTALL_DATA) $(libcacard_srcpath)/$$inc "$(DESTDIR)$(libcacard_includedir)"; \ + $(INSTALL_DATA) $(SRC_PATH)/libcacard/$$inc "$(DESTDIR)$(libcacard_includedir)"; \ done -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 13/27] libcacard: link vscclient to dynamic library 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (11 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 12/27] libcacard: rewrite Makefile in non-recursive style Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 14/27] libcacard: list oslib-obj-y file explicitly Paolo Bonzini ` (14 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber There is no reason for vscclient to duplicate the code. rules.mak takes care of invoking libtool to do the link. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index 34ef3b4..63d82f4 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -11,8 +11,7 @@ $(libcacard-obj-y): | $(libcacard-lobj-y) all: libcacard.la libcacard.pc -vscclient$(EXESUF): LIBS += $(libcacard_libs) -vscclient$(EXESUF): libcacard/vscclient.o $(libcacard-obj-y) +vscclient$(EXESUF): libcacard/vscclient.o libcacard.la $(call LINK,$^) ######################################################################### -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 14/27] libcacard: list oslib-obj-y file explicitly 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (12 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 13/27] libcacard: link vscclient to dynamic library Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 15/27] build: rename oslib-obj-y to util-obj-y Paolo Bonzini ` (13 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber We will grow the list of files in the next patches, but libcacard should remain slim. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- libcacard/Makefile | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/libcacard/Makefile b/libcacard/Makefile index 63d82f4..7e26082 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -3,7 +3,11 @@ libcacard_includedir=$(includedir)/cacard TOOLS += vscclient$(EXESUF) # objects linked into a shared library, built with libtool with -fPIC if required -libcacard-obj-y=$(oslib-obj-y) error.o $(trace-obj-y) $(stub-obj-y) $(libcacard-y) +libcacard-obj-y = $(trace-obj-y) $(stub-obj-y) $(libcacard-y) +libcacard-obj-y += osdep.o cutils.o qemu-timer-common.o error.o +libcacard-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o +libcacard-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o + libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y)) # libtool will build the .o files, too -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 15/27] build: rename oslib-obj-y to util-obj-y 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (13 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 14/27] libcacard: list oslib-obj-y file explicitly Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 16/27] build: move util-obj-y to libqemuutil.a Paolo Bonzini ` (12 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber This prepares the creation of libqemuutil.a in the next patch. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 4 ++-- Makefile.objs | 10 +++++----- Makefile.target | 4 ++-- tests/Makefile | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 92f62e3..395cc08 100644 --- a/Makefile +++ b/Makefile @@ -160,7 +160,7 @@ libqemustub.a: $(stub-obj-y) qemu-img.o: qemu-img-cmds.h -tools-obj-y = $(oslib-obj-y) $(trace-obj-y) qemu-timer.o \ +tools-obj-y = $(util-obj-y) $(trace-obj-y) qemu-timer.o \ main-loop.o iohandler.o error.o tools-obj-$(CONFIG_POSIX) += compatfd.o @@ -206,7 +206,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(oslib-obj-y) $(trace-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y) libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) $(util-obj-y) $(trace-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y) libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index 7858c4e..682ceb1 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -22,10 +22,10 @@ qom-obj-y = qom/ universal-obj-y += $(qom-obj-y) ####################################################################### -# oslib-obj-y is code depending on the OS (win32 vs posix) -oslib-obj-y = osdep.o cutils.o qemu-timer-common.o -oslib-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o -oslib-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o +# util-obj-y is code depending on the OS (win32 vs posix) +util-obj-y = osdep.o cutils.o qemu-timer-common.o +util-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o +util-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o ####################################################################### # coroutines @@ -69,7 +69,7 @@ common-obj-y = $(block-obj-y) blockdev.o blockdev-nbd.o block/ common-obj-y += net/ common-obj-y += qom/ common-obj-y += readline.o -common-obj-y += $(oslib-obj-y) +common-obj-y += $(util-obj-y) common-obj-$(CONFIG_WIN32) += os-win32.o common-obj-$(CONFIG_POSIX) += os-posix.o diff --git a/Makefile.target b/Makefile.target index 8bbad38..c75d1cd 100644 --- a/Makefile.target +++ b/Makefile.target @@ -84,7 +84,7 @@ ifdef CONFIG_LINUX_USER QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user obj-y += linux-user/ -obj-y += gdbstub.o thunk.o user-exec.o $(oslib-obj-y) +obj-y += gdbstub.o thunk.o user-exec.o $(util-obj-y) endif #CONFIG_LINUX_USER @@ -96,7 +96,7 @@ ifdef CONFIG_BSD_USER QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH) obj-y += bsd-user/ -obj-y += gdbstub.o user-exec.o $(oslib-obj-y) +obj-y += gdbstub.o user-exec.o $(util-obj-y) endif #CONFIG_BSD_USER diff --git a/tests/Makefile b/tests/Makefile index 969dc29..a260b60 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -85,7 +85,7 @@ TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS))) QTEST_TARGETS=$(foreach TARGET,$(TARGETS), $(if $(check-qtest-$(TARGET)-y), $(TARGET),)) check-qtest-$(CONFIG_POSIX)=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y)) -qtest-obj-y = tests/libqtest.o $(oslib-obj-y) libqemustub.a +qtest-obj-y = tests/libqtest.o $(util-obj-y) libqemustub.a $(check-qtest-y): $(qtest-obj-y) .PHONY: check-help -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 16/27] build: move util-obj-y to libqemuutil.a 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (14 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 15/27] build: rename oslib-obj-y to util-obj-y Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 17/27] build: move files away from tools-obj-y, common-obj-y, user-obj-y Paolo Bonzini ` (11 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Use a static library to eliminate repetition in the linking rules. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 17 +++++++++-------- Makefile.objs | 1 - Makefile.target | 8 ++++---- tests/Makefile | 17 ++++++++--------- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 395cc08..043cdf3 100644 --- a/Makefile +++ b/Makefile @@ -130,7 +130,7 @@ pixman/Makefile: $(SRC_PATH)/pixman/configure $(SRC_PATH)/pixman/configure: (cd $(SRC_PATH)/pixman; autoreconf -v --install) -$(SUBDIR_RULES): libqemustub.a +$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(filter %-softmmu,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y) $(common-obj-y) $(extra-obj-y) @@ -152,25 +152,26 @@ version.o: $(SRC_PATH)/version.rc config-host.h version-obj-$(CONFIG_WIN32) += version.o ###################################################################### -# Build library with stubs +# Build libraries libqemustub.a: $(stub-obj-y) +libqemuutil.a: $(util-obj-y) ###################################################################### qemu-img.o: qemu-img-cmds.h -tools-obj-y = $(util-obj-y) $(trace-obj-y) qemu-timer.o \ +tools-obj-y = $(trace-obj-y) qemu-timer.o \ main-loop.o iohandler.o error.o tools-obj-$(CONFIG_POSIX) += compatfd.o -qemu-img$(EXESUF): qemu-img.o $(tools-obj-y) $(block-obj-y) libqemustub.a -qemu-nbd$(EXESUF): qemu-nbd.o $(tools-obj-y) $(block-obj-y) libqemustub.a -qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y) libqemustub.a +qemu-img$(EXESUF): qemu-img.o $(tools-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-nbd$(EXESUF): qemu-nbd.o $(tools-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o -fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y) +fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o $(trace-obj-y) libqemuutil.a libqemustub.a fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx @@ -206,7 +207,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(util-obj-y) $(trace-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y) libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index 682ceb1..f97861b 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -69,7 +69,6 @@ common-obj-y = $(block-obj-y) blockdev.o blockdev-nbd.o block/ common-obj-y += net/ common-obj-y += qom/ common-obj-y += readline.o -common-obj-y += $(util-obj-y) common-obj-$(CONFIG_WIN32) += os-win32.o common-obj-$(CONFIG_POSIX) += os-posix.o diff --git a/Makefile.target b/Makefile.target index c75d1cd..da74b22 100644 --- a/Makefile.target +++ b/Makefile.target @@ -84,7 +84,7 @@ ifdef CONFIG_LINUX_USER QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user obj-y += linux-user/ -obj-y += gdbstub.o thunk.o user-exec.o $(util-obj-y) +obj-y += gdbstub.o thunk.o user-exec.o endif #CONFIG_LINUX_USER @@ -96,7 +96,7 @@ ifdef CONFIG_BSD_USER QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH) obj-y += bsd-user/ -obj-y += gdbstub.o user-exec.o $(util-obj-y) +obj-y += gdbstub.o user-exec.o endif #CONFIG_BSD_USER @@ -161,12 +161,12 @@ endif #CONFIG_LINUX_USER ifdef QEMU_PROGW # The linker builds a windows executable. Make also a console executable. -$(QEMU_PROGW): $(all-obj-y) ../libqemustub.a +$(QEMU_PROGW): $(all-obj-y) ../libqemuutil.a ../libqemustub.a $(call LINK,$^) $(QEMU_PROG): $(QEMU_PROGW) $(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG)," GEN $(TARGET_DIR)$(QEMU_PROG)") else -$(QEMU_PROG): $(all-obj-y) ../libqemustub.a +$(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a $(call LINK,$^) endif diff --git a/tests/Makefile b/tests/Makefile index a260b60..2ec0a88 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -40,7 +40,6 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ test-qapi-obj-y = $(qobject-obj-y) $(qapi-obj-y) test-qapi-obj-y += tests/test-qapi-visit.o tests/test-qapi-types.o -test-qapi-obj-y += module.o $(test-obj-y): QEMU_INCLUDES += -Itests @@ -66,13 +65,13 @@ $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py $(gen-out-type) -o tests -p "test-" < $<, " GEN $@") -tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) libqemustub.a -tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y) libqemustub.a -tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) libqemustub.a -tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) libqemustub.a -tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) libqemustub.a -tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) libqemustub.a -tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) libqemustub.a +tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y) tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y) @@ -85,7 +84,7 @@ TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS))) QTEST_TARGETS=$(foreach TARGET,$(TARGETS), $(if $(check-qtest-$(TARGET)-y), $(TARGET),)) check-qtest-$(CONFIG_POSIX)=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y)) -qtest-obj-y = tests/libqtest.o $(util-obj-y) libqemustub.a +qtest-obj-y = tests/libqtest.o libqemuutil.a libqemustub.a $(check-qtest-y): $(qtest-obj-y) .PHONY: check-help -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 17/27] build: move files away from tools-obj-y, common-obj-y, user-obj-y 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (15 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 16/27] build: move util-obj-y to libqemuutil.a Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 18/27] build: move libqemuutil.a components to util/ Paolo Bonzini ` (10 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Split them between libqemuutil.a and, for those used by qemu-img/io/nbd, block-obj-y. Static libraries ensure that binaries such as qemu-ga do not include unused modules. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 10 +++------- Makefile.objs | 39 +++++++++++++++++++-------------------- tests/Makefile | 10 +++++----- 3 files changed, 27 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 043cdf3..88dfa82 100644 --- a/Makefile +++ b/Makefile @@ -161,13 +161,9 @@ libqemuutil.a: $(util-obj-y) qemu-img.o: qemu-img-cmds.h -tools-obj-y = $(trace-obj-y) qemu-timer.o \ - main-loop.o iohandler.o error.o -tools-obj-$(CONFIG_POSIX) += compatfd.o - -qemu-img$(EXESUF): qemu-img.o $(tools-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a -qemu-nbd$(EXESUF): qemu-nbd.o $(tools-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a -qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-img$(EXESUF): qemu-img.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-nbd$(EXESUF): qemu-nbd.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-io$(EXESUF): qemu-io.o cmd.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o diff --git a/Makefile.objs b/Makefile.objs index f97861b..a5d990f 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -11,7 +11,7 @@ universal-obj-y += qemu-log.o # QObject qobject-obj-y = qint.o qstring.o qdict.o qlist.o qfloat.o qbool.o qobject-obj-y += qjson.o json-lexer.o json-streamer.o json-parser.o -qobject-obj-y += qerror.o error.o qemu-error.o +qobject-obj-y += qerror.o universal-obj-y += $(qobject-obj-y) @@ -24,8 +24,15 @@ universal-obj-y += $(qom-obj-y) ####################################################################### # util-obj-y is code depending on the OS (win32 vs posix) util-obj-y = osdep.o cutils.o qemu-timer-common.o -util-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o -util-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o +util-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o event_notifier-win32.o +util-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o event_notifier-posix.o +util-obj-y += envlist.o path.o host-utils.o cache-utils.o module.o +util-obj-y += bitmap.o bitops.o +util-obj-y += acl.o +util-obj-y += error.o qemu-error.o +util-obj-$(CONFIG_POSIX) += compatfd.o +util-obj-y += iov.o aes.o qemu-config.o qemu-sockets.o uri.o notify.o +util-obj-y += qemu-option.o qemu-progress.o ####################################################################### # coroutines @@ -45,12 +52,12 @@ coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o ####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img -block-obj-y = iov.o cache-utils.o qemu-option.o module.o async.o -block-obj-y += nbd.o block.o blockjob.o aes.o qemu-config.o -block-obj-y += thread-pool.o qemu-progress.o qemu-sockets.o uri.o notify.o +block-obj-y = async.o thread-pool.o +block-obj-y += nbd.o block.o blockjob.o block-obj-y += $(coroutine-obj-y) $(qobject-obj-y) $(version-obj-y) -block-obj-$(CONFIG_POSIX) += event_notifier-posix.o aio-posix.o -block-obj-$(CONFIG_WIN32) += event_notifier-win32.o aio-win32.o +block-obj-y += main-loop.o iohandler.o qemu-timer.o +block-obj-$(CONFIG_POSIX) += aio-posix.o +block-obj-$(CONFIG_WIN32) += aio-win32.o block-obj-y += block/ block-obj-y += $(qapi-obj-y) qapi-types.o qapi-visit.o @@ -75,11 +82,10 @@ common-obj-$(CONFIG_POSIX) += os-posix.o common-obj-$(CONFIG_LINUX) += fsdev/ extra-obj-$(CONFIG_LINUX) += fsdev/ -common-obj-y += tcg-runtime.o host-utils.o main-loop.o +common-obj-y += tcg-runtime.o common-obj-y += buffered_file.o migration.o migration-tcp.o common-obj-y += qemu-char.o #aio.o -common-obj-y += block-migration.o iohandler.o -common-obj-y += bitmap.o bitops.o +common-obj-y += block-migration.o common-obj-y += page_cache.o common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.o @@ -95,9 +101,6 @@ common-obj-y += ui/ common-obj-y += bt-host.o bt-vhci.o common-obj-y += dma-helpers.o -common-obj-y += acl.o -common-obj-$(CONFIG_POSIX) += compatfd.o -common-obj-y += qemu-timer.o qemu-timer-common.o common-obj-y += qtest.o common-obj-y += vl.o @@ -115,10 +118,7 @@ endif # libuser user-obj-y = -user-obj-y += envlist.o path.o -user-obj-y += tcg-runtime.o host-utils.o -user-obj-y += cache-utils.o -user-obj-y += module.o +user-obj-y += tcg-runtime.o user-obj-y += qom/ ###################################################################### @@ -210,8 +210,7 @@ universal-obj-y += $(qapi-obj-y) ###################################################################### # guest agent -qga-obj-y = qga/ module.o -qga-obj-$(CONFIG_POSIX) += qemu-sockets.o qemu-option.o +qga-obj-y = qga/ vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) diff --git a/tests/Makefile b/tests/Makefile index 2ec0a88..cf0c0a3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -48,11 +48,11 @@ tests/check-qstring$(EXESUF): tests/check-qstring.o qstring.o tests/check-qdict$(EXESUF): tests/check-qdict.o qdict.o qfloat.o qint.o qstring.o qbool.o qlist.o tests/check-qlist$(EXESUF): tests/check-qlist.o qlist.o qint.o tests/check-qfloat$(EXESUF): tests/check-qfloat.o qfloat.o -tests/check-qjson$(EXESUF): tests/check-qjson.o $(qobject-obj-y) libqemustub.a -tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) iov.o libqemustub.a -tests/test-aio$(EXESUF): tests/test-aio.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) libqemustub.a -tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) libqemustub.a -tests/test-iov$(EXESUF): tests/test-iov.o iov.o +tests/check-qjson$(EXESUF): tests/check-qjson.o $(qobject-obj-y) libqemuutil.a libqemustub.a +tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(block-obj-y) libqemuutil.a libqemustub.a +tests/test-aio$(EXESUF): tests/test-aio.o $(block-obj-y) libqemuutil.a libqemustub.a +tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(block-obj-y) libqemuutil.a libqemustub.a +tests/test-iov$(EXESUF): tests/test-iov.o libqemuutil.a tests/test-qapi-types.c tests/test-qapi-types.h :\ $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 18/27] build: move libqemuutil.a components to util/ 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (16 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 17/27] build: move files away from tools-obj-y, common-obj-y, user-obj-y Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 19/27] build: move qobject files to qobject/ and libqemuutil.a Paolo Bonzini ` (9 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile.objs | 12 ++---------- libcacard/Makefile | 6 +++--- util/Makefile.objs | 10 ++++++++++ acl.c => util/acl.c | 0 aes.c => util/aes.c | 0 bitmap.c => util/bitmap.c | 0 bitops.c => util/bitops.c | 0 cache-utils.c => util/cache-utils.c | 0 compatfd.c => util/compatfd.c | 0 cutils.c => util/cutils.c | 0 envlist.c => util/envlist.c | 0 error.c => util/error.c | 0 .../event_notifier-posix.c | 0 .../event_notifier-win32.c | 0 host-utils.c => util/host-utils.c | 0 iov.c => util/iov.c | 0 module.c => util/module.c | 0 notify.c => util/notify.c | 0 osdep.c => util/osdep.c | 0 oslib-posix.c => util/oslib-posix.c | 0 oslib-win32.c => util/oslib-win32.c | 0 path.c => util/path.c | 0 qemu-config.c => util/qemu-config.c | 0 qemu-error.c => util/qemu-error.c | 0 qemu-option.c => util/qemu-option.c | 0 qemu-progress.c => util/qemu-progress.c | 0 qemu-sockets.c => util/qemu-sockets.c | 0 qemu-thread-posix.c => util/qemu-thread-posix.c | 0 qemu-thread-win32.c => util/qemu-thread-win32.c | 0 qemu-timer-common.c => util/qemu-timer-common.c | 0 uri.c => util/uri.c | 0 31 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 util/Makefile.objs rename acl.c => util/acl.c (100%) rename aes.c => util/aes.c (100%) rename bitmap.c => util/bitmap.c (100%) rename bitops.c => util/bitops.c (100%) rename cache-utils.c => util/cache-utils.c (100%) rename compatfd.c => util/compatfd.c (100%) rename cutils.c => util/cutils.c (100%) rename envlist.c => util/envlist.c (100%) rename error.c => util/error.c (100%) rename event_notifier-posix.c => util/event_notifier-posix.c (100%) rename event_notifier-win32.c => util/event_notifier-win32.c (100%) rename host-utils.c => util/host-utils.c (100%) rename iov.c => util/iov.c (100%) rename module.c => util/module.c (100%) rename notify.c => util/notify.c (100%) rename osdep.c => util/osdep.c (100%) rename oslib-posix.c => util/oslib-posix.c (100%) rename oslib-win32.c => util/oslib-win32.c (100%) rename path.c => util/path.c (100%) rename qemu-config.c => util/qemu-config.c (100%) rename qemu-error.c => util/qemu-error.c (100%) rename qemu-option.c => util/qemu-option.c (100%) rename qemu-progress.c => util/qemu-progress.c (100%) rename qemu-sockets.c => util/qemu-sockets.c (100%) rename qemu-thread-posix.c => util/qemu-thread-posix.c (100%) rename qemu-thread-win32.c => util/qemu-thread-win32.c (100%) rename qemu-timer-common.c => util/qemu-timer-common.c (100%) rename uri.c => util/uri.c (100%) diff --git a/Makefile.objs b/Makefile.objs index a5d990f..32289b2 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -23,16 +23,7 @@ universal-obj-y += $(qom-obj-y) ####################################################################### # util-obj-y is code depending on the OS (win32 vs posix) -util-obj-y = osdep.o cutils.o qemu-timer-common.o -util-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o event_notifier-win32.o -util-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o event_notifier-posix.o -util-obj-y += envlist.o path.o host-utils.o cache-utils.o module.o -util-obj-y += bitmap.o bitops.o -util-obj-y += acl.o -util-obj-y += error.o qemu-error.o -util-obj-$(CONFIG_POSIX) += compatfd.o -util-obj-y += iov.o aes.o qemu-config.o qemu-sockets.o uri.o notify.o -util-obj-y += qemu-option.o qemu-progress.o +util-obj-y += util/ ####################################################################### # coroutines @@ -220,6 +211,7 @@ QEMU_CFLAGS+=$(GLIB_CFLAGS) nested-vars += \ stub-obj-y \ + util-obj-y \ qga-obj-y \ qom-obj-y \ qapi-obj-y \ diff --git a/libcacard/Makefile b/libcacard/Makefile index 7e26082..05d33cc 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -4,9 +4,9 @@ TOOLS += vscclient$(EXESUF) # objects linked into a shared library, built with libtool with -fPIC if required libcacard-obj-y = $(trace-obj-y) $(stub-obj-y) $(libcacard-y) -libcacard-obj-y += osdep.o cutils.o qemu-timer-common.o error.o -libcacard-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o -libcacard-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o +libcacard-obj-y += util/osdep.o util/cutils.o util/qemu-timer-common.o util/error.o +libcacard-obj-$(CONFIG_WIN32) += util/oslib-win32.o util/qemu-thread-win32.o +libcacard-obj-$(CONFIG_POSIX) += util/oslib-posix.o util/qemu-thread-posix.o libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y)) diff --git a/util/Makefile.objs b/util/Makefile.objs new file mode 100644 index 0000000..5baeb53 --- /dev/null +++ b/util/Makefile.objs @@ -0,0 +1,10 @@ +util-obj-y = osdep.o cutils.o qemu-timer-common.o +util-obj-$(CONFIG_WIN32) += oslib-win32.o qemu-thread-win32.o event_notifier-win32.o +util-obj-$(CONFIG_POSIX) += oslib-posix.o qemu-thread-posix.o event_notifier-posix.o +util-obj-y += envlist.o path.o host-utils.o cache-utils.o module.o +util-obj-y += bitmap.o bitops.o +util-obj-y += acl.o +util-obj-y += error.o qemu-error.o +util-obj-$(CONFIG_POSIX) += compatfd.o +util-obj-y += iov.o aes.o qemu-config.o qemu-sockets.o uri.o notify.o +util-obj-y += qemu-option.o qemu-progress.o diff --git a/acl.c b/util/acl.c similarity index 100% rename from acl.c rename to util/acl.c diff --git a/aes.c b/util/aes.c similarity index 100% rename from aes.c rename to util/aes.c diff --git a/bitmap.c b/util/bitmap.c similarity index 100% rename from bitmap.c rename to util/bitmap.c diff --git a/bitops.c b/util/bitops.c similarity index 100% rename from bitops.c rename to util/bitops.c diff --git a/cache-utils.c b/util/cache-utils.c similarity index 100% rename from cache-utils.c rename to util/cache-utils.c diff --git a/compatfd.c b/util/compatfd.c similarity index 100% rename from compatfd.c rename to util/compatfd.c diff --git a/cutils.c b/util/cutils.c similarity index 100% rename from cutils.c rename to util/cutils.c diff --git a/envlist.c b/util/envlist.c similarity index 100% rename from envlist.c rename to util/envlist.c diff --git a/error.c b/util/error.c similarity index 100% rename from error.c rename to util/error.c diff --git a/event_notifier-posix.c b/util/event_notifier-posix.c similarity index 100% rename from event_notifier-posix.c rename to util/event_notifier-posix.c diff --git a/event_notifier-win32.c b/util/event_notifier-win32.c similarity index 100% rename from event_notifier-win32.c rename to util/event_notifier-win32.c diff --git a/host-utils.c b/util/host-utils.c similarity index 100% rename from host-utils.c rename to util/host-utils.c diff --git a/iov.c b/util/iov.c similarity index 100% rename from iov.c rename to util/iov.c diff --git a/module.c b/util/module.c similarity index 100% rename from module.c rename to util/module.c diff --git a/notify.c b/util/notify.c similarity index 100% rename from notify.c rename to util/notify.c diff --git a/osdep.c b/util/osdep.c similarity index 100% rename from osdep.c rename to util/osdep.c diff --git a/oslib-posix.c b/util/oslib-posix.c similarity index 100% rename from oslib-posix.c rename to util/oslib-posix.c diff --git a/oslib-win32.c b/util/oslib-win32.c similarity index 100% rename from oslib-win32.c rename to util/oslib-win32.c diff --git a/path.c b/util/path.c similarity index 100% rename from path.c rename to util/path.c diff --git a/qemu-config.c b/util/qemu-config.c similarity index 100% rename from qemu-config.c rename to util/qemu-config.c diff --git a/qemu-error.c b/util/qemu-error.c similarity index 100% rename from qemu-error.c rename to util/qemu-error.c diff --git a/qemu-option.c b/util/qemu-option.c similarity index 100% rename from qemu-option.c rename to util/qemu-option.c diff --git a/qemu-progress.c b/util/qemu-progress.c similarity index 100% rename from qemu-progress.c rename to util/qemu-progress.c diff --git a/qemu-sockets.c b/util/qemu-sockets.c similarity index 100% rename from qemu-sockets.c rename to util/qemu-sockets.c diff --git a/qemu-thread-posix.c b/util/qemu-thread-posix.c similarity index 100% rename from qemu-thread-posix.c rename to util/qemu-thread-posix.c diff --git a/qemu-thread-win32.c b/util/qemu-thread-win32.c similarity index 100% rename from qemu-thread-win32.c rename to util/qemu-thread-win32.c diff --git a/qemu-timer-common.c b/util/qemu-timer-common.c similarity index 100% rename from qemu-timer-common.c rename to util/qemu-timer-common.c diff --git a/uri.c b/util/uri.c similarity index 100% rename from uri.c rename to util/uri.c -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 19/27] build: move qobject files to qobject/ and libqemuutil.a 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (17 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 18/27] build: move libqemuutil.a components to util/ Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 20/27] build: consolidate multiple variables into universal-obj-y Paolo Bonzini ` (8 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- Makefile.objs | 17 +++-------------- qobject/Makefile.objs | 3 +++ json-lexer.c => qobject/json-lexer.c | 0 json-parser.c => qobject/json-parser.c | 0 json-streamer.c => qobject/json-streamer.c | 0 qbool.c => qobject/qbool.c | 0 qdict.c => qobject/qdict.c | 0 qerror.c => qobject/qerror.c | 0 qfloat.c => qobject/qfloat.c | 0 qint.c => qobject/qint.c | 0 qjson.c => qobject/qjson.c | 0 qlist.c => qobject/qlist.c | 0 qstring.c => qobject/qstring.c | 0 tests/Makefile | 14 +++++++------- 15 files changed, 14 insertions(+), 22 deletions(-) create mode 100644 qobject/Makefile.objs rename json-lexer.c => qobject/json-lexer.c (100%) rename json-parser.c => qobject/json-parser.c (100%) rename json-streamer.c => qobject/json-streamer.c (100%) rename qbool.c => qobject/qbool.c (100%) rename qdict.c => qobject/qdict.c (100%) rename qerror.c => qobject/qerror.c (100%) rename qfloat.c => qobject/qfloat.c (100%) rename qint.c => qobject/qint.c (100%) rename qjson.c => qobject/qjson.c (100%) rename qlist.c => qobject/qlist.c (100%) rename qstring.c => qobject/qstring.c (100%) diff --git a/Makefile b/Makefile index 88dfa82..a1e9fe0 100644 --- a/Makefile +++ b/Makefile @@ -203,7 +203,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) $(qapi-obj-y) $(qobject-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) $(qapi-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index 32289b2..0ba9b20 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,6 +1,7 @@ ####################################################################### -# Stub library, linked in tools +# Common libraries for tools and emulators stub-obj-y = stubs/ +util-obj-y = util/ qobject/ ####################################################################### # Target-independent parts used in system and user emulation @@ -8,24 +9,12 @@ universal-obj-y = universal-obj-y += qemu-log.o ####################################################################### -# QObject -qobject-obj-y = qint.o qstring.o qdict.o qlist.o qfloat.o qbool.o -qobject-obj-y += qjson.o json-lexer.o json-streamer.o json-parser.o -qobject-obj-y += qerror.o - -universal-obj-y += $(qobject-obj-y) - -####################################################################### # QOM qom-obj-y = qom/ universal-obj-y += $(qom-obj-y) ####################################################################### -# util-obj-y is code depending on the OS (win32 vs posix) -util-obj-y += util/ - -####################################################################### # coroutines coroutine-obj-y = qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o coroutine-obj-y += qemu-coroutine-sleep.o @@ -45,7 +34,7 @@ coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o block-obj-y = async.o thread-pool.o block-obj-y += nbd.o block.o blockjob.o -block-obj-y += $(coroutine-obj-y) $(qobject-obj-y) $(version-obj-y) +block-obj-y += $(coroutine-obj-y) $(version-obj-y) block-obj-y += main-loop.o iohandler.o qemu-timer.o block-obj-$(CONFIG_POSIX) += aio-posix.o block-obj-$(CONFIG_WIN32) += aio-win32.o diff --git a/qobject/Makefile.objs b/qobject/Makefile.objs new file mode 100644 index 0000000..c9ff59c --- /dev/null +++ b/qobject/Makefile.objs @@ -0,0 +1,3 @@ +util-obj-y = qint.o qstring.o qdict.o qlist.o qfloat.o qbool.o +util-obj-y += qjson.o json-lexer.o json-streamer.o json-parser.o +util-obj-y += qerror.o diff --git a/json-lexer.c b/qobject/json-lexer.c similarity index 100% rename from json-lexer.c rename to qobject/json-lexer.c diff --git a/json-parser.c b/qobject/json-parser.c similarity index 100% rename from json-parser.c rename to qobject/json-parser.c diff --git a/json-streamer.c b/qobject/json-streamer.c similarity index 100% rename from json-streamer.c rename to qobject/json-streamer.c diff --git a/qbool.c b/qobject/qbool.c similarity index 100% rename from qbool.c rename to qobject/qbool.c diff --git a/qdict.c b/qobject/qdict.c similarity index 100% rename from qdict.c rename to qobject/qdict.c diff --git a/qerror.c b/qobject/qerror.c similarity index 100% rename from qerror.c rename to qobject/qerror.c diff --git a/qfloat.c b/qobject/qfloat.c similarity index 100% rename from qfloat.c rename to qobject/qfloat.c diff --git a/qint.c b/qobject/qint.c similarity index 100% rename from qint.c rename to qobject/qint.c diff --git a/qjson.c b/qobject/qjson.c similarity index 100% rename from qjson.c rename to qobject/qjson.c diff --git a/qlist.c b/qobject/qlist.c similarity index 100% rename from qlist.c rename to qobject/qlist.c diff --git a/qstring.c b/qobject/qstring.c similarity index 100% rename from qstring.c rename to qobject/qstring.c diff --git a/tests/Makefile b/tests/Makefile index cf0c0a3..23718de 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -38,17 +38,17 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \ tests/test-qmp-commands.o tests/test-visitor-serialization.o -test-qapi-obj-y = $(qobject-obj-y) $(qapi-obj-y) +test-qapi-obj-y = $(qapi-obj-y) test-qapi-obj-y += tests/test-qapi-visit.o tests/test-qapi-types.o $(test-obj-y): QEMU_INCLUDES += -Itests -tests/check-qint$(EXESUF): tests/check-qint.o qint.o -tests/check-qstring$(EXESUF): tests/check-qstring.o qstring.o -tests/check-qdict$(EXESUF): tests/check-qdict.o qdict.o qfloat.o qint.o qstring.o qbool.o qlist.o -tests/check-qlist$(EXESUF): tests/check-qlist.o qlist.o qint.o -tests/check-qfloat$(EXESUF): tests/check-qfloat.o qfloat.o -tests/check-qjson$(EXESUF): tests/check-qjson.o $(qobject-obj-y) libqemuutil.a libqemustub.a +tests/check-qint$(EXESUF): tests/check-qint.o libqemuutil.a +tests/check-qstring$(EXESUF): tests/check-qstring.o libqemuutil.a +tests/check-qdict$(EXESUF): tests/check-qdict.o libqemuutil.a +tests/check-qlist$(EXESUF): tests/check-qlist.o libqemuutil.a +tests/check-qfloat$(EXESUF): tests/check-qfloat.o libqemuutil.a +tests/check-qjson$(EXESUF): tests/check-qjson.o libqemuutil.a libqemustub.a tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(block-obj-y) libqemuutil.a libqemustub.a tests/test-aio$(EXESUF): tests/test-aio.o $(block-obj-y) libqemuutil.a libqemustub.a tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(block-obj-y) libqemuutil.a libqemustub.a -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 20/27] build: consolidate multiple variables into universal-obj-y 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (18 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 19/27] build: move qobject files to qobject/ and libqemuutil.a Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 21/27] build: move QAPI definitions for QEMU out of qapi-obj-y Paolo Bonzini ` (7 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber The directory descent mechanism, and a less-flat tree both helped in making some *-obj-y definitions very short. Many of these often end up in universal-obj-y, and used to be separate only because of libuser (which is now part of history...). Consolidate these variables in a single one. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile.objs | 38 ++++++++------------------------------ Makefile.target | 7 +------ qom/Makefile.objs | 6 ++---- 3 files changed, 11 insertions(+), 40 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index 0ba9b20..e16f0a3 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -4,17 +4,6 @@ stub-obj-y = stubs/ util-obj-y = util/ qobject/ ####################################################################### -# Target-independent parts used in system and user emulation -universal-obj-y = -universal-obj-y += qemu-log.o - -####################################################################### -# QOM -qom-obj-y = qom/ - -universal-obj-y += $(qom-obj-y) - -####################################################################### # coroutines coroutine-obj-y = qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o coroutine-obj-y += qemu-coroutine-sleep.o @@ -54,7 +43,6 @@ endif common-obj-y = $(block-obj-y) blockdev.o blockdev-nbd.o block/ common-obj-y += net/ -common-obj-y += qom/ common-obj-y += readline.o common-obj-$(CONFIG_WIN32) += os-win32.o common-obj-$(CONFIG_POSIX) += os-posix.o @@ -62,7 +50,6 @@ common-obj-$(CONFIG_POSIX) += os-posix.o common-obj-$(CONFIG_LINUX) += fsdev/ extra-obj-$(CONFIG_LINUX) += fsdev/ -common-obj-y += tcg-runtime.o common-obj-y += buffered_file.o migration.o migration-tcp.o common-obj-y += qemu-char.o #aio.o common-obj-y += block-migration.o @@ -95,19 +82,6 @@ common-obj-y += qemu-seccomp.o endif ###################################################################### -# libuser - -user-obj-y = -user-obj-y += tcg-runtime.o -user-obj-y += qom/ - -###################################################################### -# disassemblers -# NOTE: the disassembler code is only needed for debugging - -universal-obj-y += disas/ - -###################################################################### # trace ifeq ($(TRACE_BACKEND),dtrace) @@ -163,8 +137,6 @@ trace-obj-y += trace/control.o $(trace-obj-y): $(GENERATED_HEADERS) -universal-obj-y += $(trace-obj-y) - ###################################################################### # smartcard @@ -185,6 +157,14 @@ qapi-obj-y += qapi-types.o qapi-visit.o common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o common-obj-y += qmp.o hmp.o +####################################################################### +# Target-independent parts used in system and user emulation +universal-obj-y = +universal-obj-y += qemu-log.o +universal-obj-y += tcg-runtime.o +universal-obj-y += qom/ +universal-obj-y += disas/ +universal-obj-y += $(trace-obj-y) universal-obj-y += $(qapi-obj-y) ###################################################################### @@ -202,10 +182,8 @@ nested-vars += \ stub-obj-y \ util-obj-y \ qga-obj-y \ - qom-obj-y \ qapi-obj-y \ block-obj-y \ - user-obj-y \ common-obj-y \ universal-obj-y \ extra-obj-y diff --git a/Makefile.target b/Makefile.target index da74b22..9cbe6fe 100644 --- a/Makefile.target +++ b/Makefile.target @@ -152,12 +152,7 @@ include $(SRC_PATH)/Makefile.objs all-obj-y = $(obj-y) all-obj-y += $(addprefix ../, $(universal-obj-y)) - -ifdef CONFIG_SOFTMMU -all-obj-y += $(addprefix ../, $(common-obj-y)) -else -all-obj-y += $(addprefix ../, $(user-obj-y)) -endif #CONFIG_LINUX_USER +all-obj-$(CONFIG_SOFTMMU) += $(addprefix ../, $(common-obj-y)) ifdef QEMU_PROGW # The linker builds a windows executable. Make also a console executable. diff --git a/qom/Makefile.objs b/qom/Makefile.objs index 5ef060a..1899a4c 100644 --- a/qom/Makefile.objs +++ b/qom/Makefile.objs @@ -1,4 +1,2 @@ -qom-obj-y = object.o container.o qom-qobject.o -qom-obj-twice-y = cpu.o -common-obj-y = $(qom-obj-twice-y) -user-obj-y = $(qom-obj-twice-y) +universal-obj-y = object.o container.o qom-qobject.o +universal-obj-y += cpu.o -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 21/27] build: move QAPI definitions for QEMU out of qapi-obj-y 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (19 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 20/27] build: consolidate multiple variables into universal-obj-y Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 22/27] build: move base QAPI files to libqemuutil.a Paolo Bonzini ` (6 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber There is no reason why for example qemu-ga should include all the definitions for the QEMU monitor. However, there are a few that are needed (qapi_free_SocketAddress, qapi_free_InetSocketAddress, ErrorClass_lookup). These should be moved to a separate "core" .json schema that goes into libqemuutil.a. For now, make this clearer by moving the qapi-*.o definitions out of libqemuutil.a. Once the above refactoring is done, qga-obj-y should not include anymore qapi-types.o and qapi-visit.o. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile.objs | 6 ++++-- tests/Makefile | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index e16f0a3..30351ea 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -152,7 +152,6 @@ common-obj-$(CONFIG_SMARTCARD_NSS) += $(libcacard-y) # qapi qapi-obj-y = qapi/ -qapi-obj-y += qapi-types.o qapi-visit.o common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o common-obj-y += qmp.o hmp.o @@ -166,11 +165,14 @@ universal-obj-y += qom/ universal-obj-y += disas/ universal-obj-y += $(trace-obj-y) universal-obj-y += $(qapi-obj-y) +universal-obj-y += qapi-types.o qapi-visit.o ###################################################################### # guest agent -qga-obj-y = qga/ +# FIXME: a few definitions from qapi-types.o/qapi-visit.o are needed +# by libqemuutil.a. These should be moved to a separate .json schema. +qga-obj-y = qga/ qapi-types.o qapi-visit.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) diff --git a/tests/Makefile b/tests/Makefile index 23718de..8cab3c3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -70,7 +70,7 @@ tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(te tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a -tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a +tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) qapi-types.o qapi-visit.o libqemuutil.a libqemustub.a tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y) -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 22/27] build: move base QAPI files to libqemuutil.a 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (20 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 21/27] build: move QAPI definitions for QEMU out of qapi-obj-y Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 23/27] build: move version-obj-y to the generic LINK rule Paolo Bonzini ` (5 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- Makefile.objs | 9 ++------- qapi/Makefile.objs | 8 ++++---- tests/Makefile | 3 +-- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index a1e9fe0..06b3ad5 100644 --- a/Makefile +++ b/Makefile @@ -203,7 +203,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) $(qapi-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index 30351ea..699358d 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,7 +1,7 @@ ####################################################################### # Common libraries for tools and emulators stub-obj-y = stubs/ -util-obj-y = util/ qobject/ +util-obj-y = util/ qobject/ qapi/ ####################################################################### # coroutines @@ -28,7 +28,7 @@ block-obj-y += main-loop.o iohandler.o qemu-timer.o block-obj-$(CONFIG_POSIX) += aio-posix.o block-obj-$(CONFIG_WIN32) += aio-win32.o block-obj-y += block/ -block-obj-y += $(qapi-obj-y) qapi-types.o qapi-visit.o +block-obj-y += qapi-types.o qapi-visit.o ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy) # Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add. @@ -151,8 +151,6 @@ common-obj-$(CONFIG_SMARTCARD_NSS) += $(libcacard-y) ###################################################################### # qapi -qapi-obj-y = qapi/ - common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o common-obj-y += qmp.o hmp.o @@ -164,8 +162,6 @@ universal-obj-y += tcg-runtime.o universal-obj-y += qom/ universal-obj-y += disas/ universal-obj-y += $(trace-obj-y) -universal-obj-y += $(qapi-obj-y) -universal-obj-y += qapi-types.o qapi-visit.o ###################################################################### # guest agent @@ -184,7 +180,6 @@ nested-vars += \ stub-obj-y \ util-obj-y \ qga-obj-y \ - qapi-obj-y \ block-obj-y \ common-obj-y \ universal-obj-y \ diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs index f9bd3b9..1f9c973 100644 --- a/qapi/Makefile.objs +++ b/qapi/Makefile.objs @@ -1,5 +1,5 @@ -qapi-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o -qapi-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o -qapi-obj-y += string-input-visitor.o string-output-visitor.o +util-obj-y = qapi-visit-core.o qapi-dealloc-visitor.o qmp-input-visitor.o +util-obj-y += qmp-output-visitor.o qmp-registry.o qmp-dispatch.o +util-obj-y += string-input-visitor.o string-output-visitor.o -common-obj-y += opts-visitor.o +util-obj-y += opts-visitor.o diff --git a/tests/Makefile b/tests/Makefile index 8cab3c3..7b02e34 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -38,8 +38,7 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \ tests/test-qmp-commands.o tests/test-visitor-serialization.o -test-qapi-obj-y = $(qapi-obj-y) -test-qapi-obj-y += tests/test-qapi-visit.o tests/test-qapi-types.o +test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o $(test-obj-y): QEMU_INCLUDES += -Itests -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 23/27] build: move version-obj-y to the generic LINK rule 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (21 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 22/27] build: move base QAPI files to libqemuutil.a Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 24/27] build: remove coroutine-obj-y Paolo Bonzini ` (4 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber There is no reason for it to be in block-obj-y, in particular. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- Makefile.objs | 3 +-- rules.mak | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 06b3ad5..ce87375 100644 --- a/Makefile +++ b/Makefile @@ -203,7 +203,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) $(version-obj-y) libqemuutil.a libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) libqemuutil.a libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index 699358d..60da50e 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -23,7 +23,7 @@ coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o block-obj-y = async.o thread-pool.o block-obj-y += nbd.o block.o blockjob.o -block-obj-y += $(coroutine-obj-y) $(version-obj-y) +block-obj-y += $(coroutine-obj-y) block-obj-y += main-loop.o iohandler.o qemu-timer.o block-obj-$(CONFIG_POSIX) += aio-posix.o block-obj-$(CONFIG_WIN32) += aio-win32.o @@ -56,7 +56,6 @@ common-obj-y += block-migration.o common-obj-y += page_cache.o common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.o -common-obj-$(CONFIG_WIN32) += version.o common-obj-$(CONFIG_SPICE) += spice-qemu-char.o diff --git a/rules.mak b/rules.mak index c6a455d..52755e8 100644 --- a/rules.mak +++ b/rules.mak @@ -23,7 +23,7 @@ QEMU_CFLAGS += -I$(<D) -I$(@D) ifeq ($(LIBTOOL),) LIBTOOL = /bin/false LINK = $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ - $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \ + $(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(version-obj-y) \ $(LIBS)," LINK $(TARGET_DIR)$@") else LIBTOOL += $(if $(V),,--quiet) @@ -35,7 +35,7 @@ LIBTOOL += $(if $(V),,--quiet) LINK = $(call quiet-command,\ $(if $(filter %.lo %.la,$^),$(LIBTOOL) --mode=link --tag=CC \ )$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ - $(sort $(filter %.o, $1)) $(filter-out %.o, $1) \ + $(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(version-obj-y) \ $(LIBS),$(if $(filter %.lo %.la,$^),"lt LINK ", " LINK ")"$(TARGET_DIR)$@") endif -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 24/27] build: remove coroutine-obj-y 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (22 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 23/27] build: move version-obj-y to the generic LINK rule Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 25/27] build: Use separate makefile for "trace/" Paolo Bonzini ` (3 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Just fold it into block-obj-y. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile.objs | 29 +++++++++++++---------------- 1 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Makefile.objs b/Makefile.objs index 60da50e..9713538 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -4,32 +4,29 @@ stub-obj-y = stubs/ util-obj-y = util/ qobject/ qapi/ ####################################################################### -# coroutines -coroutine-obj-y = qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o -coroutine-obj-y += qemu-coroutine-sleep.o -ifeq ($(CONFIG_UCONTEXT_COROUTINE),y) -coroutine-obj-$(CONFIG_POSIX) += coroutine-ucontext.o -else -ifeq ($(CONFIG_SIGALTSTACK_COROUTINE),y) -coroutine-obj-$(CONFIG_POSIX) += coroutine-sigaltstack.o -else -coroutine-obj-$(CONFIG_POSIX) += coroutine-gthread.o -endif -endif -coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o - -####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img block-obj-y = async.o thread-pool.o block-obj-y += nbd.o block.o blockjob.o -block-obj-y += $(coroutine-obj-y) block-obj-y += main-loop.o iohandler.o qemu-timer.o block-obj-$(CONFIG_POSIX) += aio-posix.o block-obj-$(CONFIG_WIN32) += aio-win32.o block-obj-y += block/ block-obj-y += qapi-types.o qapi-visit.o +block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o +block-obj-y += qemu-coroutine-sleep.o +ifeq ($(CONFIG_UCONTEXT_COROUTINE),y) +block-obj-$(CONFIG_POSIX) += coroutine-ucontext.o +else +ifeq ($(CONFIG_SIGALTSTACK_COROUTINE),y) +block-obj-$(CONFIG_POSIX) += coroutine-sigaltstack.o +else +block-obj-$(CONFIG_POSIX) += coroutine-gthread.o +endif +endif +block-obj-$(CONFIG_WIN32) += coroutine-win32.o + ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy) # Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add. # only pull in the actual virtio-9p device if we also enabled virtio. -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 25/27] build: Use separate makefile for "trace/" 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (23 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 24/27] build: remove coroutine-obj-y Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a Paolo Bonzini ` (2 subsequent siblings) 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber From: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- .gitignore | 8 ++-- Makefile | 15 +++++--- Makefile.objs | 57 ++-------------------------------- Makefile.target | 1 + include/trace.h | 6 +++ scripts/tracetool/backend/dtrace.py | 2 +- scripts/tracetool/format/h.py | 6 ++-- trace/Makefile.objs | 58 +++++++++++++++++++++++++++++++++++ 8 files changed, 85 insertions(+), 68 deletions(-) create mode 100644 include/trace.h create mode 100644 trace/Makefile.objs diff --git a/.gitignore b/.gitignore index 3a41765..0e38169 100644 --- a/.gitignore +++ b/.gitignore @@ -3,10 +3,10 @@ config-all-devices.* config-all-disas.* config-host.* config-target.* -trace.h -trace.c -trace-dtrace.h -trace-dtrace.dtrace +trace/generated-tracers.h +trace/generated-tracers.c +trace/generated-tracers-dtrace.h +trace/generated-tracers-dtrace.dtrace *-timestamp *-softmmu *-darwin-user diff --git a/Makefile b/Makefile index ce87375..406fd34 100644 --- a/Makefile +++ b/Makefile @@ -31,12 +31,15 @@ ifneq ($(filter-out %clean,$(MAKECMDGOALS)),$(if $(MAKECMDGOALS),,fail)) endif endif -GENERATED_HEADERS = config-host.h trace.h qemu-options.def +GENERATED_HEADERS = config-host.h qemu-options.def +GENERATED_HEADERS += qmp-commands.h qapi-types.h qapi-visit.h +GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c + +GENERATED_HEADERS += trace/generated-tracers.h ifeq ($(TRACE_BACKEND),dtrace) -GENERATED_HEADERS += trace-dtrace.h +GENERATED_HEADERS += trace/generated-tracers-dtrace.h endif -GENERATED_HEADERS += qmp-commands.h qapi-types.h qapi-visit.h -GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c trace.c +GENERATED_SOURCES += trace/generated-tracers.c # Don't try to regenerate Makefile or configure # We don't generate any of them @@ -215,9 +218,9 @@ clean: rm -f *.la rm -Rf .libs rm -f qemu-img-cmds.h - rm -f trace-dtrace.dtrace trace-dtrace.dtrace-timestamp @# May not be present in GENERATED_HEADERS - rm -f trace-dtrace.h trace-dtrace.h-timestamp + rm -f trace/generated-tracers-dtrace.dtrace* + rm -f trace/generated-tracers-dtrace.h* rm -f $(foreach f,$(GENERATED_HEADERS),$(f) $(f)-timestamp) rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp) rm -rf qapi-generated diff --git a/Makefile.objs b/Makefile.objs index 9713538..7b1afe1 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -80,58 +80,7 @@ endif ###################################################################### # trace -ifeq ($(TRACE_BACKEND),dtrace) -TRACE_H_EXTRA_DEPS=trace-dtrace.h -endif -trace.h: trace.h-timestamp $(TRACE_H_EXTRA_DEPS) -trace.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --format=h \ - --backend=$(TRACE_BACKEND) \ - < $< > $@," GEN trace.h") - @cmp -s $@ trace.h || cp $@ trace.h - -trace.c: trace.c-timestamp -trace.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --format=c \ - --backend=$(TRACE_BACKEND) \ - < $< > $@," GEN trace.c") - @cmp -s $@ trace.c || cp $@ trace.c - -trace.o: trace.c $(GENERATED_HEADERS) - -trace-dtrace.h: trace-dtrace.dtrace - $(call quiet-command,dtrace -o $@ -h -s $<, " GEN trace-dtrace.h") - -# Normal practice is to name DTrace probe file with a '.d' extension -# but that gets picked up by QEMU's Makefile as an external dependency -# rule file. So we use '.dtrace' instead -trace-dtrace.dtrace: trace-dtrace.dtrace-timestamp -trace-dtrace.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --format=d \ - --backend=$(TRACE_BACKEND) \ - < $< > $@," GEN trace-dtrace.dtrace") - @cmp -s $@ trace-dtrace.dtrace || cp $@ trace-dtrace.dtrace - -trace-dtrace.o: trace-dtrace.dtrace $(GENERATED_HEADERS) - $(call quiet-command,dtrace -o $@ -G -s $<, " GEN trace-dtrace.o") - -trace/simple.o: trace/simple.c $(GENERATED_HEADERS) - -trace-obj-$(CONFIG_TRACE_DTRACE) += trace-dtrace.o -ifneq ($(TRACE_BACKEND),dtrace) -trace-obj-y = trace.o -endif - -trace-obj-$(CONFIG_TRACE_DEFAULT) += trace/default.o -trace-obj-$(CONFIG_TRACE_SIMPLE) += trace/simple.o -trace-obj-$(CONFIG_TRACE_SIMPLE) += qemu-timer-common.o -trace-obj-$(CONFIG_TRACE_STDERR) += trace/stderr.o -trace-obj-y += trace/control.o - -$(trace-obj-y): $(GENERATED_HEADERS) +trace-obj-y += trace/ ###################################################################### # smartcard @@ -157,7 +106,6 @@ universal-obj-y += qemu-log.o universal-obj-y += tcg-runtime.o universal-obj-y += qom/ universal-obj-y += disas/ -universal-obj-y += $(trace-obj-y) ###################################################################### # guest agent @@ -179,5 +127,6 @@ nested-vars += \ block-obj-y \ common-obj-y \ universal-obj-y \ - extra-obj-y + extra-obj-y \ + trace-obj-y dummy := $(call unnest-vars) diff --git a/Makefile.target b/Makefile.target index 9cbe6fe..44c5341 100644 --- a/Makefile.target +++ b/Makefile.target @@ -152,6 +152,7 @@ include $(SRC_PATH)/Makefile.objs all-obj-y = $(obj-y) all-obj-y += $(addprefix ../, $(universal-obj-y)) +all-obj-y += $(addprefix ../, $(trace-obj-y)) all-obj-$(CONFIG_SOFTMMU) += $(addprefix ../, $(common-obj-y)) ifdef QEMU_PROGW diff --git a/include/trace.h b/include/trace.h new file mode 100644 index 0000000..c15f498 --- /dev/null +++ b/include/trace.h @@ -0,0 +1,6 @@ +#ifndef TRACE_H +#define TRACE_H + +#include "trace/generated-tracers.h" + +#endif /* TRACE_H */ diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backend/dtrace.py index 23c43e2..ad5eb3b 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -37,7 +37,7 @@ def c(events): def h(events): - out('#include "trace-dtrace.h"', + out('#include "trace/generated-tracers-dtrace.h"', '') for e in events: diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index 6ffb3c2..9a58de1 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -19,8 +19,8 @@ from tracetool import out def begin(events): out('/* This file is autogenerated by tracetool, do not edit. */', '', - '#ifndef TRACE_H', - '#define TRACE_H', + '#ifndef TRACE__GENERATED_TRACERS_H', + '#define TRACE__GENERATED_TRACERS_H', '', '#include "qemu-common.h"') @@ -32,7 +32,7 @@ def end(events): enabled = 1 out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled)) out('', - '#endif /* TRACE_H */') + '#endif /* TRACE__GENERATED_TRACERS_H */') def nop(events): for e in events: diff --git a/trace/Makefile.objs b/trace/Makefile.objs new file mode 100644 index 0000000..ed2e30b --- /dev/null +++ b/trace/Makefile.objs @@ -0,0 +1,58 @@ +# -*- mode: makefile -*- + +###################################################################### +# Auto-generated header for tracing routines + +$(obj)/generated-tracers.h: $(obj)/generated-tracers.h-timestamp +$(obj)/generated-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak + $(call quiet-command,$(TRACETOOL) \ + --format=h \ + --backend=$(TRACE_BACKEND) \ + < $< > $@," GEN $(patsubst %-timestamp,%,$@)") + @cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@) + +###################################################################### +# Auto-generated tracing routines (non-DTrace) + +ifneq ($(TRACE_BACKEND),dtrace) +$(obj)/generated-tracers.c: $(obj)/generated-tracers.c-timestamp +$(obj)/generated-tracers.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak + $(call quiet-command,$(TRACETOOL) \ + --format=c \ + --backend=$(TRACE_BACKEND) \ + < $< > $@," GEN $(patsubst %-timestamp,%,$@)") + @cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@) + +$(obj)/generated-tracers.o: $(obj)/generated-tracers.c $(obj)/generated-tracers.h +endif + + +###################################################################### +# Auto-generated DTrace code + +# Normal practice is to name DTrace probe file with a '.d' extension +# but that gets picked up by QEMU's Makefile as an external dependency +# rule file. So we use '.dtrace' instead +ifeq ($(TRACE_BACKEND),dtrace) +$(obj)/generated-tracers.dtrace: $(obj)/generated-tracers.dtrace-timestamp +$(obj)/generated-tracers.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/config-host.mak + $(call quiet-command,$(TRACETOOL) \ + --format=d \ + --backend=$(TRACE_BACKEND) \ + < $< > $@," GEN $(patsubst %-timestamp,%,$@)") + @cmp -s $@ $(patsubst %-timestamp,%,$@) || cp $@ $(patsubst %-timestamp,%,$@) + +$(obj)/generated-tracers-dtrace.h: $(obj)/generated-tracers.dtrace + $(call quiet-command,dtrace -o $@ -h -s $<, " GEN $@") + +$(obj)/generated-tracers.o: $(obj)/generated-tracers.dtrace +endif + +###################################################################### +# Backend code + +trace-obj-$(CONFIG_TRACE_DEFAULT) += default.o +trace-obj-$(CONFIG_TRACE_SIMPLE) += simple.o +trace-obj-$(CONFIG_TRACE_STDERR) += stderr.o +trace-obj-y += control.o +trace-obj-y += generated-tracers.o -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (24 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 25/27] build: Use separate makefile for "trace/" Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 27/27] build: improve quiet output for .stp rules Paolo Bonzini 2012-12-21 20:14 ` [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Lluís Vilanova 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 14 +++++++------- Makefile.objs | 10 ++-------- Makefile.target | 1 - libcacard/Makefile | 3 ++- tests/Makefile | 8 ++++---- trace/Makefile.objs | 10 +++++----- 6 files changed, 20 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 406fd34..964365d 100644 --- a/Makefile +++ b/Makefile @@ -135,9 +135,9 @@ $(SRC_PATH)/pixman/configure: $(SUBDIR_RULES): libqemuutil.a libqemustub.a -$(filter %-softmmu,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y) $(common-obj-y) $(extra-obj-y) +$(filter %-softmmu,$(SUBDIR_RULES)): $(universal-obj-y) $(common-obj-y) $(extra-obj-y) -$(filter %-user,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y) $(user-obj-y) +$(filter %-user,$(SUBDIR_RULES)): $(universal-obj-y) $(user-obj-y) ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) romsubdir-%: @@ -164,13 +164,13 @@ libqemuutil.a: $(util-obj-y) qemu-img.o: qemu-img-cmds.h -qemu-img$(EXESUF): qemu-img.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a -qemu-nbd$(EXESUF): qemu-nbd.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a -qemu-io$(EXESUF): qemu-io.o cmd.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-img$(EXESUF): qemu-img.o $(block-obj-y) libqemuutil.a libqemustub.a +qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) libqemuutil.a libqemustub.a +qemu-io$(EXESUF): qemu-io.o cmd.o $(block-obj-y) libqemuutil.a libqemustub.a qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o -fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o $(trace-obj-y) libqemuutil.a libqemustub.a +fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o libqemuutil.a libqemustub.a fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx @@ -206,7 +206,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) libqemuutil.a libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) libqemuutil.a libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index 7b1afe1..1bf7357 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,7 +1,7 @@ ####################################################################### # Common libraries for tools and emulators stub-obj-y = stubs/ -util-obj-y = util/ qobject/ qapi/ +util-obj-y = util/ qobject/ qapi/ trace/ ####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img @@ -78,11 +78,6 @@ common-obj-y += qemu-seccomp.o endif ###################################################################### -# trace - -trace-obj-y += trace/ - -###################################################################### # smartcard libcacard-y += libcacard/cac.o libcacard/event.o @@ -127,6 +122,5 @@ nested-vars += \ block-obj-y \ common-obj-y \ universal-obj-y \ - extra-obj-y \ - trace-obj-y + extra-obj-y dummy := $(call unnest-vars) diff --git a/Makefile.target b/Makefile.target index 44c5341..9cbe6fe 100644 --- a/Makefile.target +++ b/Makefile.target @@ -152,7 +152,6 @@ include $(SRC_PATH)/Makefile.objs all-obj-y = $(obj-y) all-obj-y += $(addprefix ../, $(universal-obj-y)) -all-obj-y += $(addprefix ../, $(trace-obj-y)) all-obj-$(CONFIG_SOFTMMU) += $(addprefix ../, $(common-obj-y)) ifdef QEMU_PROGW diff --git a/libcacard/Makefile b/libcacard/Makefile index 05d33cc..2629d07 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -3,10 +3,11 @@ libcacard_includedir=$(includedir)/cacard TOOLS += vscclient$(EXESUF) # objects linked into a shared library, built with libtool with -fPIC if required -libcacard-obj-y = $(trace-obj-y) $(stub-obj-y) $(libcacard-y) +libcacard-obj-y = $(stub-obj-y) $(libcacard-y) libcacard-obj-y += util/osdep.o util/cutils.o util/qemu-timer-common.o util/error.o libcacard-obj-$(CONFIG_WIN32) += util/oslib-win32.o util/qemu-thread-win32.o libcacard-obj-$(CONFIG_POSIX) += util/oslib-posix.o util/qemu-thread-posix.o +libcacard-obj-y += $(filter trace/%, $(util-obj-y)) libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y)) diff --git a/tests/Makefile b/tests/Makefile index 7b02e34..dfaf232 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -72,10 +72,10 @@ tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi- tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) qapi-types.o qapi-visit.o libqemuutil.a libqemustub.a tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a -tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y) -tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y) -tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o $(trace-obj-y) -tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o tests/libqtest.o $(trace-obj-y) +tests/rtc-test$(EXESUF): tests/rtc-test.o +tests/m48t59-test$(EXESUF): tests/m48t59-test.o +tests/fdc-test$(EXESUF): tests/fdc-test.o +tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o # QTest rules diff --git a/trace/Makefile.objs b/trace/Makefile.objs index ed2e30b..27fe26b 100644 --- a/trace/Makefile.objs +++ b/trace/Makefile.objs @@ -51,8 +51,8 @@ endif ###################################################################### # Backend code -trace-obj-$(CONFIG_TRACE_DEFAULT) += default.o -trace-obj-$(CONFIG_TRACE_SIMPLE) += simple.o -trace-obj-$(CONFIG_TRACE_STDERR) += stderr.o -trace-obj-y += control.o -trace-obj-y += generated-tracers.o +util-obj-$(CONFIG_TRACE_DEFAULT) += default.o +util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o +util-obj-$(CONFIG_TRACE_STDERR) += stderr.o +util-obj-y += control.o +util-obj-y += generated-tracers.o -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 27/27] build: improve quiet output for .stp rules 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (25 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a Paolo Bonzini @ 2012-12-21 16:05 ` Paolo Bonzini 2012-12-21 20:14 ` [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Lluís Vilanova 27 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-21 16:05 UTC (permalink / raw) To: qemu-devel; +Cc: alevy, vilanova, afaerber Mention the directory in which the .stp file is being generated. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile.target | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/Makefile.target b/Makefile.target index 9cbe6fe..2c28f54 100644 --- a/Makefile.target +++ b/Makefile.target @@ -54,7 +54,7 @@ $(QEMU_PROG).stp: $(SRC_PATH)/trace-events --binary=$(bindir)/$(QEMU_PROG) \ --target-arch=$(TARGET_ARCH) \ --target-type=$(TARGET_TYPE) \ - < $< > $@," GEN $(QEMU_PROG).stp") + < $< > $@," GEN $(TARGET_DIR)$(QEMU_PROG).stp") else stap: endif -- 1.7.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini ` (26 preceding siblings ...) 2012-12-21 16:05 ` [Qemu-devel] [PATCH 27/27] build: improve quiet output for .stp rules Paolo Bonzini @ 2012-12-21 20:14 ` Lluís Vilanova 2012-12-22 14:04 ` Paolo Bonzini 27 siblings, 1 reply; 31+ messages in thread From: Lluís Vilanova @ 2012-12-21 20:14 UTC (permalink / raw) To: Paolo Bonzini; +Cc: alevy, qemu-devel, afaerber Paolo Bonzini writes: [...] > Finally, patches 25 to 27 affect tracing, which is also moved to > libqemuutil.a. Patch 25 is Lluis's already posted patch to introduce > trace/Makefile.objs. I just skimmed through the patches, but is there a clean way to have files included only in binaries that are/aren't target system emulators? And what about files that contain conditionally compiled code according to that same condition? I'm asking because in the trace instrumentation patches (which I'll update next week rebased on latest master) I had to add build code to do it. Thanks, Lluis -- "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC 2012-12-21 20:14 ` [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Lluís Vilanova @ 2012-12-22 14:04 ` Paolo Bonzini 0 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2012-12-22 14:04 UTC (permalink / raw) To: Lluís Vilanova; +Cc: alevy, qemu-devel, afaerber Il 21/12/2012 21:14, Lluís Vilanova ha scritto: > Paolo Bonzini writes: > [...] >> Finally, patches 25 to 27 affect tracing, which is also moved to >> libqemuutil.a. Patch 25 is Lluis's already posted patch to introduce >> trace/Makefile.objs. > > I just skimmed through the patches, but is there a clean way to have files > included only in binaries that are/aren't target system emulators? And what > about files that contain conditionally compiled code according to that same > condition? > > I'm asking because in the trace instrumentation patches (which I'll update next > week rebased on latest master) I had to add build code to do it. Yes, this is what libqemustub does. Paolo ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PULL 00/27] More source reorganization and build system TLC @ 2013-01-12 17:35 Paolo Bonzini 2013-01-12 17:35 ` [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a Paolo Bonzini 0 siblings, 1 reply; 31+ messages in thread From: Paolo Bonzini @ 2013-01-12 17:35 UTC (permalink / raw) To: qemu-devel The following changes since commit 63fb2590839162afdf14d7c0ee02d460766c0956: Merge branch 'target-arm.next' of git://git.linaro.org/people/pmaydell/qemu-arm (2013-01-12 12:47:07 +0000) are available in the git repository at: git://github.com/bonzini/qemu.git stub for you to fetch changes up to b8f962d919682b9d2b5320315989d0c16ba33cbe: build: improve quiet output for .stp rules (2013-01-12 17:57:40 +0100) This is a light version of the source reorganization I proposed last September. While working on it I noticed that a useful part to start from was the utility routines, because this helps identifying missing unit tests and modularity problems. Also, these files are relatively rarely changed. Hence, moving them will not complicate backports to stable branches, and will make the "action" more visible to anyone casually observing the tree. Hence, this is where this series starts from. After this series, the top directory has about 80 *.c and *.h files, down from over 250 in 1.3.0, which is already a fine improvement. Patch 1 makes qemu-config.c more modular: there is no need for tools to host the description of QEMU's command-line options. Patch 2 finishes the transition to libqemustub.a, removing qemu-tool.c and qemu-user.c. Patches 3 to 13 are a longish digression in libcacard, improving support for libtool in the build system and simplifying the integration between libcacard's build rules and the rest of the Makefiles. Also, vscclient is now linked to the dynamic library so that missing symbols (like the one fixed in patch 7) are caught early. (QEMU still duplicates the code; I'd fear for my physical integrity if I forced people to write "libtool --mode=execute gdb" instead of just "gdb"). Patches 14 to 22 create a new static library libqemuutil.a, whose component files all come from subdirectories of the top tree directory: qobject, util, qapi. Using a static library helps putting the number of *-obj-y variables on a diet, and limits the duplication in the Makefile rules. Patches 23 and 24 further limit the number and nesting of *-obj-y variables. Finally, patches 25 to 27 affect tracing, which is also moved to libqemuutil.a. Patch 25 is Lluis's already posted patch to introduce trace/Makefile.objs. Only build-tested on Win32. v1->v2: Rebased. ---------------------------------------------------------------- Alon Levy (1): libcacard: fix missing symbol in libcacard.so Paolo Bonzini (26): qemu-option: move standard option definitions out of qemu-config.c stubs: fully replace qemu-tool.c and qemu-user.c build: make libtool verbose when making with V=1 build: support linking with libtool objects/libraries build: move dtrace rules to rules.mak build: remove CONFIG_SMARTCARD libcacard: require libtool to build it libcacard: prepare to use -y trick in the Makefile libcacard: use per-target variable definitions libcacard: add list of exported symbols libcacard: rewrite Makefile in non-recursive style libcacard: link vscclient to dynamic library libcacard: list oslib-obj-y file explicitly build: rename oslib-obj-y to util-obj-y build: move util-obj-y to libqemuutil.a build: move files away from tools-obj-y, common-obj-y, user-obj-y build: move libqemuutil.a components to util/ build: move qobject files to qobject/ and libqemuutil.a build: consolidate multiple variables into universal-obj-y build: move QAPI definitions for QEMU out of qapi-obj-y build: move base QAPI files to libqemuutil.a build: move version-obj-y to the generic LINK rule build: remove coroutine-obj-y build: some simplifications for "trace/Makefile.objs" build: fold trace-obj-y into libqemuutil.a build: improve quiet output for .stp rules Makefile | 57 +- Makefile.objs | 128 +-- Makefile.target | 17 +- block/iscsi.c | 27 + blockdev.c | 118 +++ configure | 85 +- exec.c | 2 +- fsdev/Makefile.objs | 1 + fsdev/qemu-fsdev-dummy.c | 7 - fsdev/qemu-fsdev-opts.c | 85 ++ fsdev/qemu-fsdev.c | 8 - hw/Makefile.objs | 7 +- hw/qdev-monitor.c | 51 ++ hw/usb/Makefile.objs | 2 +- include/qemu/config-file.h | 5 - include/sysemu/sysemu.h | 8 + trace.h => include/trace.h | 0 libcacard/Makefile | 62 +- libcacard/libcacard.syms | 77 ++ monitor.c | 22 + net/net.c | 26 + qapi/Makefile.objs | 8 +- qemu-char.c | 72 ++ qemu-config.c | 894 --------------------- qemu-tool.c | 115 --- qemu-user.c | 37 - qobject/Makefile.objs | 3 + json-lexer.c => qobject/json-lexer.c | 0 json-parser.c => qobject/json-parser.c | 0 json-streamer.c => qobject/json-streamer.c | 0 qbool.c => qobject/qbool.c | 0 qdict.c => qobject/qdict.c | 0 qerror.c => qobject/qerror.c | 0 qfloat.c => qobject/qfloat.c | 0 qint.c => qobject/qint.c | 0 qjson.c => qobject/qjson.c | 0 qlist.c => qobject/qlist.c | 0 qstring.c => qobject/qstring.c | 0 qom/Makefile.objs | 6 +- rules.mak | 20 +- stubs/Makefile.objs | 17 +- stubs/clock-warp.c | 7 + stubs/cpu-get-clock.c | 7 + stubs/cpu-get-icount.c | 9 + stubs/get-vm-name.c | 7 + stubs/iothread-lock.c | 10 + stubs/migr-blocker.c | 10 + stubs/mon-is-qmp.c | 7 + stubs/mon-print-filename.c | 6 + stubs/mon-printf.c | 10 + stubs/mon-protocol-event.c | 6 + stubs/mon-set-error.c | 8 + stubs/slirp.c | 17 + stubs/vm-stop.c | 7 + tests/Makefile | 48 +- trace/Makefile.objs | 44 +- ui/spice-core.c | 84 ++ util/Makefile.objs | 10 + acl.c => util/acl.c | 0 aes.c => util/aes.c | 0 bitmap.c => util/bitmap.c | 0 bitops.c => util/bitops.c | 0 cache-utils.c => util/cache-utils.c | 0 compatfd.c => util/compatfd.c | 0 cutils.c => util/cutils.c | 0 envlist.c => util/envlist.c | 0 error.c => util/error.c | 0 .../event_notifier-posix.c | 0 .../event_notifier-win32.c | 0 host-utils.c => util/host-utils.c | 0 iov.c => util/iov.c | 0 module.c => util/module.c | 0 notify.c => util/notify.c | 0 osdep.c => util/osdep.c | 0 oslib-posix.c => util/oslib-posix.c | 0 oslib-win32.c => util/oslib-win32.c | 0 path.c => util/path.c | 0 util/qemu-config.c | 215 +++++ qemu-error.c => util/qemu-error.c | 0 qemu-option.c => util/qemu-option.c | 0 qemu-progress.c => util/qemu-progress.c | 0 qemu-sockets.c => util/qemu-sockets.c | 0 qemu-thread-posix.c => util/qemu-thread-posix.c | 0 qemu-thread-win32.c => util/qemu-thread-win32.c | 0 qemu-timer-common.c => util/qemu-timer-common.c | 0 uri.c => util/uri.c | 0 vl.c | 205 +++++ 87 files changed, 1310 insertions(+), 1374 deletions(-) create mode 100644 fsdev/qemu-fsdev-opts.c rename trace.h => include/trace.h (100%) create mode 100644 libcacard/libcacard.syms delete mode 100644 qemu-config.c delete mode 100644 qemu-tool.c delete mode 100644 qemu-user.c create mode 100644 qobject/Makefile.objs rename json-lexer.c => qobject/json-lexer.c (100%) rename json-parser.c => qobject/json-parser.c (100%) rename json-streamer.c => qobject/json-streamer.c (100%) rename qbool.c => qobject/qbool.c (100%) rename qdict.c => qobject/qdict.c (100%) rename qerror.c => qobject/qerror.c (100%) rename qfloat.c => qobject/qfloat.c (100%) rename qint.c => qobject/qint.c (100%) rename qjson.c => qobject/qjson.c (100%) rename qlist.c => qobject/qlist.c (100%) rename qstring.c => qobject/qstring.c (100%) create mode 100644 stubs/clock-warp.c create mode 100644 stubs/cpu-get-clock.c create mode 100644 stubs/cpu-get-icount.c create mode 100644 stubs/get-vm-name.c create mode 100644 stubs/iothread-lock.c create mode 100644 stubs/migr-blocker.c create mode 100644 stubs/mon-is-qmp.c create mode 100644 stubs/mon-print-filename.c create mode 100644 stubs/mon-printf.c create mode 100644 stubs/mon-protocol-event.c create mode 100644 stubs/mon-set-error.c create mode 100644 stubs/slirp.c create mode 100644 stubs/vm-stop.c create mode 100644 util/Makefile.objs rename acl.c => util/acl.c (100%) rename aes.c => util/aes.c (100%) rename bitmap.c => util/bitmap.c (100%) rename bitops.c => util/bitops.c (100%) rename cache-utils.c => util/cache-utils.c (100%) rename compatfd.c => util/compatfd.c (100%) rename cutils.c => util/cutils.c (100%) rename envlist.c => util/envlist.c (100%) rename error.c => util/error.c (100%) rename event_notifier-posix.c => util/event_notifier-posix.c (100%) rename event_notifier-win32.c => util/event_notifier-win32.c (100%) rename host-utils.c => util/host-utils.c (100%) rename iov.c => util/iov.c (100%) rename module.c => util/module.c (100%) rename notify.c => util/notify.c (100%) rename osdep.c => util/osdep.c (100%) rename oslib-posix.c => util/oslib-posix.c (100%) rename oslib-win32.c => util/oslib-win32.c (100%) rename path.c => util/path.c (100%) create mode 100644 util/qemu-config.c rename qemu-error.c => util/qemu-error.c (100%) rename qemu-option.c => util/qemu-option.c (100%) rename qemu-progress.c => util/qemu-progress.c (100%) rename qemu-sockets.c => util/qemu-sockets.c (100%) rename qemu-thread-posix.c => util/qemu-thread-posix.c (100%) rename qemu-thread-win32.c => util/qemu-thread-win32.c (100%) rename qemu-timer-common.c => util/qemu-timer-common.c (100%) rename uri.c => util/uri.c (100%) -- 1.8.1 ^ permalink raw reply [flat|nested] 31+ messages in thread
* [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a 2013-01-12 17:35 [Qemu-devel] [PULL " Paolo Bonzini @ 2013-01-12 17:35 ` Paolo Bonzini 0 siblings, 0 replies; 31+ messages in thread From: Paolo Bonzini @ 2013-01-12 17:35 UTC (permalink / raw) To: qemu-devel Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 14 +++++++------- Makefile.objs | 11 ++--------- libcacard/Makefile | 3 ++- tests/Makefile | 8 ++++---- trace/Makefile.objs | 10 +++++----- 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index e92ce1f..adcd92e 100644 --- a/Makefile +++ b/Makefile @@ -135,9 +135,9 @@ $(SRC_PATH)/pixman/configure: $(SUBDIR_RULES): libqemuutil.a libqemustub.a -$(filter %-softmmu,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y) $(common-obj-y) $(extra-obj-y) +$(filter %-softmmu,$(SUBDIR_RULES)): $(universal-obj-y) $(common-obj-y) $(extra-obj-y) -$(filter %-user,$(SUBDIR_RULES)): $(universal-obj-y) $(trace-obj-y) $(user-obj-y) +$(filter %-user,$(SUBDIR_RULES)): $(universal-obj-y) $(user-obj-y) ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) romsubdir-%: @@ -165,13 +165,13 @@ libqemuutil.a: $(util-obj-y) qemu-img.o: qemu-img-cmds.h -qemu-img$(EXESUF): qemu-img.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a -qemu-nbd$(EXESUF): qemu-nbd.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a -qemu-io$(EXESUF): qemu-io.o cmd.o $(trace-obj-y) $(block-obj-y) libqemuutil.a libqemustub.a +qemu-img$(EXESUF): qemu-img.o $(block-obj-y) libqemuutil.a libqemustub.a +qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) libqemuutil.a libqemustub.a +qemu-io$(EXESUF): qemu-io.o cmd.o $(block-obj-y) libqemuutil.a libqemustub.a qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o -fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o $(trace-obj-y) libqemuutil.a libqemustub.a +fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o libqemuutil.a libqemustub.a fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx @@ -207,7 +207,7 @@ $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) -qemu-ga$(EXESUF): $(qga-obj-y) $(trace-obj-y) libqemuutil.a libqemustub.a +qemu-ga$(EXESUF): $(qga-obj-y) libqemuutil.a libqemustub.a $(call LINK, $^) clean: diff --git a/Makefile.objs b/Makefile.objs index bc56c61..d465a72 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,7 +1,7 @@ ####################################################################### # Common libraries for tools and emulators stub-obj-y = stubs/ -util-obj-y = util/ qobject/ qapi/ +util-obj-y = util/ qobject/ qapi/ trace/ ####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img @@ -78,11 +78,6 @@ common-obj-y += qemu-seccomp.o endif ###################################################################### -# trace - -trace-obj-y += trace/ - -###################################################################### # smartcard libcacard-y += libcacard/cac.o libcacard/event.o @@ -107,7 +102,6 @@ universal-obj-y += tcg-runtime.o universal-obj-y += hw/ universal-obj-y += qom/ universal-obj-y += disas/ -universal-obj-y += $(trace-obj-y) ###################################################################### # guest agent @@ -129,6 +123,5 @@ nested-vars += \ block-obj-y \ common-obj-y \ universal-obj-y \ - extra-obj-y \ - trace-obj-y + extra-obj-y dummy := $(call unnest-vars) diff --git a/libcacard/Makefile b/libcacard/Makefile index 05d33cc..2629d07 100644 --- a/libcacard/Makefile +++ b/libcacard/Makefile @@ -3,10 +3,11 @@ libcacard_includedir=$(includedir)/cacard TOOLS += vscclient$(EXESUF) # objects linked into a shared library, built with libtool with -fPIC if required -libcacard-obj-y = $(trace-obj-y) $(stub-obj-y) $(libcacard-y) +libcacard-obj-y = $(stub-obj-y) $(libcacard-y) libcacard-obj-y += util/osdep.o util/cutils.o util/qemu-timer-common.o util/error.o libcacard-obj-$(CONFIG_WIN32) += util/oslib-win32.o util/qemu-thread-win32.o libcacard-obj-$(CONFIG_POSIX) += util/oslib-posix.o util/qemu-thread-posix.o +libcacard-obj-y += $(filter trace/%, $(util-obj-y)) libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y)) diff --git a/tests/Makefile b/tests/Makefile index f224eb2..d97a571 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -104,10 +104,10 @@ tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi- tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) qapi-types.o qapi-visit.o libqemuutil.a libqemustub.a tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) libqemuutil.a libqemustub.a -tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y) -tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y) -tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o $(trace-obj-y) -tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o tests/libqtest.o $(trace-obj-y) +tests/rtc-test$(EXESUF): tests/rtc-test.o +tests/m48t59-test$(EXESUF): tests/m48t59-test.o +tests/fdc-test$(EXESUF): tests/fdc-test.o +tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o # QTest rules diff --git a/trace/Makefile.objs b/trace/Makefile.objs index ed2e30b..27fe26b 100644 --- a/trace/Makefile.objs +++ b/trace/Makefile.objs @@ -51,8 +51,8 @@ endif ###################################################################### # Backend code -trace-obj-$(CONFIG_TRACE_DEFAULT) += default.o -trace-obj-$(CONFIG_TRACE_SIMPLE) += simple.o -trace-obj-$(CONFIG_TRACE_STDERR) += stderr.o -trace-obj-y += control.o -trace-obj-y += generated-tracers.o +util-obj-$(CONFIG_TRACE_DEFAULT) += default.o +util-obj-$(CONFIG_TRACE_SIMPLE) += simple.o +util-obj-$(CONFIG_TRACE_STDERR) += stderr.o +util-obj-y += control.o +util-obj-y += generated-tracers.o -- 1.8.1 ^ permalink raw reply related [flat|nested] 31+ messages in thread
end of thread, other threads:[~2013-01-12 17:37 UTC | newest] Thread overview: 31+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-12-21 16:05 [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 01/27] qemu-option: move standard option definitions out of qemu-config.c Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 02/27] stubs: fully replace qemu-tool.c and qemu-user.c Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 03/27] build: make libtool verbose when making with V=1 Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 04/27] build: support linking with libtool objects/libraries Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 05/27] build: move dtrace rules to rules.mak Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 06/27] build: remove CONFIG_SMARTCARD Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 07/27] libcacard: fix missing symbol in libcacard.so Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 08/27] libcacard: require libtool to build it Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 09/27] libcacard: prepare to use -y trick in the Makefile Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 10/27] libcacard: use per-target variable definitions Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 11/27] libcacard: add list of exported symbols Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 12/27] libcacard: rewrite Makefile in non-recursive style Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 13/27] libcacard: link vscclient to dynamic library Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 14/27] libcacard: list oslib-obj-y file explicitly Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 15/27] build: rename oslib-obj-y to util-obj-y Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 16/27] build: move util-obj-y to libqemuutil.a Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 17/27] build: move files away from tools-obj-y, common-obj-y, user-obj-y Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 18/27] build: move libqemuutil.a components to util/ Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 19/27] build: move qobject files to qobject/ and libqemuutil.a Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 20/27] build: consolidate multiple variables into universal-obj-y Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 21/27] build: move QAPI definitions for QEMU out of qapi-obj-y Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 22/27] build: move base QAPI files to libqemuutil.a Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 23/27] build: move version-obj-y to the generic LINK rule Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 24/27] build: remove coroutine-obj-y Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 25/27] build: Use separate makefile for "trace/" Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a Paolo Bonzini 2012-12-21 16:05 ` [Qemu-devel] [PATCH 27/27] build: improve quiet output for .stp rules Paolo Bonzini 2012-12-21 20:14 ` [Qemu-devel] [PATCH 00/27] More source reorganization and build system TLC Lluís Vilanova 2012-12-22 14:04 ` Paolo Bonzini -- strict thread matches above, loose matches on Subject: below -- 2013-01-12 17:35 [Qemu-devel] [PULL " Paolo Bonzini 2013-01-12 17:35 ` [Qemu-devel] [PATCH 26/27] build: fold trace-obj-y into libqemuutil.a Paolo Bonzini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).