diff --git a/AUTHORS b/AUTHORS index 1adc118..a559205 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,24 +1,74 @@ Virt Viewer Authors =================== -The Virt Viewer application is written by +The Virt Viewer application is maintained by - Daniel P. Berrange + Daniel P. Berrange (Original author) + Christophe Fergeau + Marc-André Lureau + Hans de Goede With additional patches from: - Chris Lalancette - Atsushi SAKAI - Richard W.M. Jones - Guido G\374nther - Hiroyuki Kaguchi + Atsushi SAKAI + Chris Lalancette + Guannan Ren + Guido G\374nther + Hans de Goede + Hiroyuki Kaguchi + Jiri Denemark + Pavel Raiskup + Richard W.M. Jones Ronnie Sahlberg - Marc-André Lureau + Yann E. MORIN + Yonit Halperin + Zeeshan Ali (Khattak) ...send patches to get your name here... -The Translation team are listed in the .po files for their -languages under the po/ directory. +Translations have been provided by + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ...and more... + +For full translation credits see the header of the individual +files in the po/ directory. -- End diff --git a/ChangeLog b/ChangeLog index f179525..223ed54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,974 +1,2029 @@ +2012-09-17 Daniel P. Berrange + + Update for 0.5.4 releae + +2012-09-14 Daniel P. Berrange + + Use a more specific regex to fix enum include paths + Simply doing a search replace on $(srcdir) doesn't work very + well in non-VPATH builds. Use a more specific regex that won't + generate false matches + + Look in builddir for icons & strip build dir prefix from enum file includs + + Don't include generated icons in tar.gz and clean them up + + Convert to use Mingw64 toolchain for Windows biulds + +2012-08-13 Christophe Fergeau + + Document -f=auto-conf in remote-viewer --help + virt-viewer does not support -f=auto-conf so this does not change the + option there. + Fixes rhbz#718001 + +2012-08-10 Christophe Fergeau + + Use real binary name in help message + Now that we have 2 distinct binaries, remote-viewer and virt-viewer, + 'PACKAGE' can no longer be used in error messages as the name of the + binary. This causes a small inconsistency when running + 'remote-viewer --foobar' as the error message would be: + 'Unknown option --foobar + Run 'virt-viewer --help' to see a full list of available command line options' + + This commit makes sure we use argv[0] for this message. + Fixes rhbz#814150 + +2012-07-23 Marc-André Lureau + + Show status page by default if display not ready + Switch back to status page if display is not ready. + + Make status widget visible immediately + GtkNotebook will use the currently visible widget as default page. + If we don't show status widget before we append the display, the + current page will be on display. Quoting Gtk+ documentation: + + "Note that due to historical reasons, GtkNotebook refuses to switch to + a page unless the child widget is visible. Therefore, it is + recommended to show child widgets before adding them to a notebook." + + vnc: when session is disconnected, make the display as non-ready + + Simplify display flag handling + + Add VirtViewerSession::session-display-updated + Rebuild menu when agent is connected. Only when the agent is running + may a display be enabled/disabled. + + Make the display submenu insensitive if display can't be selected + + spice: factor out main channel lookup code + + Add VirtViewerDisplay::selectable property + This property will be set when the display can be selected to be + "enabled" and shown (this can involve creating/connecting an + additional guest monitor, and may need guest agent cooperation for + example). + + Add virt_viewer_window_get_display() + Getter used in following changes. + + Hook up handling of Monitors + Rely on spice-gtk display channel monitors property to manage + displays. The same display channel may now provide several monitors, + the SpiceDisplay widget must be told which monitor to display + + Bump glib > 2.22, add compat file + We use API from 2.22, and some from further version. Add + virt-glib-compat.h fallback file for those. + + Use SpiceDisplay:ready property instead of channel mark + The display can now check several conditions before the display can be + shown, use that instead of display mark, which was not high-level + enough. + + Number display starting from 1 + + Prevent from adding the same display several time in the session + In virt_viewer_session_spice_display_monitors(), we (re)add the + display unconditionnaly every time we receive a new MonitorConfig. + + Add a DISABLED display hint + This flag will help to track whether the display has been + removed/closed and whether it really has a valid display. + + Ready in contrast, is used to "hide" temporarily the display (when + starting or redrawing the display, to avoid artifacts) + + Use virt_viewer_connect_object() for display + When display is released, detach signal automatically. + + Fix various crash related to not cleaning up signal handlers properly, + due to no longer 1-1 only relation between display widget and channel. + + Rebuild display menu when a window is added or removed + + Mark a menu string as translatable + + Run-time check values before doing bad computation + + Turn display:show-hint into flags type + + Destroy dialog immediately after run + If the parent is already destroyed, it looks like the dialog is + destroyed too. This avoids a crash when calling app_quit(). + + build: generate enums type boilerplate + + spice: disconnect signal handlers when either object is destroyed + Use virt_viewer_signal_connect_object(), a copy of telepathy + utility function tp_g_signal_connect_object(). This function + will take care of removing signal handler if any of emitter or + attached object are destroyed. + + The following patches will have this condition met, since there is no + longer 1-1 relation between channel and display. The channels can + continue to be around when some of the display are removed. + + spice: improve fullscreen=auto-conf + Do keep client monitor position, do not align monitors automatically. + The align property is only available since v0.12.101. + +2012-07-03 Marc-André Lureau + + build: allow building with newer glibc-headers and -O0 + Fix copied from libvirt, commit by Eric Blake. + + glibc 2.15 (on Fedora 17) coupled with explicit disabling of + optimization during development dies a painful death: + + /usr/include/features.h:314:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp] + + Work around this by only conditionally defining _FORTIFY_SOURCE, + in the case where glibc can actually use it. The trick is using + AH_VERBATIM instead of AC_DEFINE. + +2012-06-15 Christophe Fergeau + + Revert "Fix virt_viewer_app_activate return value" + This reverts commit 3ce6df7c309068f36e2602692da809a153ed5688. This + commit broke virt-viewer which expects this function to return -1 + or 0 on error, and a positive value on success in + virt_viewer_initial_connect. + +2012-06-13 Christophe Fergeau + + Fix virt_viewer_app_activate return value + VirtViewerApp::activate is expected to return -1 on errors. + It calls the VirtViewerSession::open_* methods, which return FALSE + on error. However, VirtViewerApp::activate directly returns these + boolean instead of testing the returned value and properly returning + -1 on errors. This caused errors in these open methodes to be ignored. + + Fix various memory leaks + ==25063== 59 bytes in 1 blocks are definitely lost in loss record 5,163 of 9,502 + ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) + ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159) + ==25063== by 0x3DE3862D0B: g_strdup (gstrfuncs.c:356) + ==25063== by 0x41F40A: connected (remote-viewer-main.c:186) + ==25063== by 0x3DE400F663: g_closure_invoke (gclosure.c:777) + ==25063== by 0x3DE40206D7: signal_emit_unlocked_R (gsignal.c:3547) + ==25063== by 0x3DE402866C: g_signal_emit_valist (gsignal.c:3296) + ==25063== by 0x3DE4028CCF: g_signal_emit_by_name (gsignal.c:3389) + ==25063== by 0x41AA53: reemit_signal_VOID (virt-viewer-session-ovirt.c:211) + ==25063== by 0x3DE400F942: _g_closure_invoke_va (gclosure.c:840) + ==25063== by 0x3DE4027D87: g_signal_emit_valist (gsignal.c:3207) + ==25063== by 0x3DE4028CCF: g_signal_emit_by_name (gsignal.c:3389) + + ==25063== 14 bytes in 1 blocks are definitely lost in loss record 623 of 9,502 + ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) + ==25063== by 0x34561092F7: __vasprintf_chk (vasprintf_chk.c:82) + ==25063== by 0x3DE3882F1A: g_vasprintf (stdio2.h:199) + ==25063== by 0x3DE3862EDC: g_strdup_vprintf (gstrfuncs.c:509) + ==25063== by 0x3DE3862F7B: g_strdup_printf (gstrfuncs.c:535) + ==25063== by 0x40CBAE: virt_viewer_app_update_pretty_address (virt-viewer-app.c:1538) + ==25063== by 0x40FB55: virt_viewer_app_free_connect_info (virt-viewer-app.c:1707) + ==25063== by 0x40FBE9: virt_viewer_app_dispose (virt-viewer-app.c:1291) + ==25063== by 0x3DE40144F7: g_object_unref (gobject.c:2981) + ==25063== by 0x40C31A: main (remote-viewer-main.c:336) + + ==25063== 10 bytes in 1 blocks are definitely lost in loss record 491 of 9,502 + ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) + ==25063== by 0x34561092F7: __vasprintf_chk (vasprintf_chk.c:82) + ==25063== by 0x3DE3882F1A: g_vasprintf (stdio2.h:199) + ==25063== by 0x3DE3862EDC: g_strdup_vprintf (gstrfuncs.c:509) + ==25063== by 0x3DE3862F7B: g_strdup_printf (gstrfuncs.c:535) + ==25063== by 0x40DE36: window_update_menu_displays_cb (virt-viewer-app.c:1640) + ==25063== by 0x3DE383833F: g_hash_table_foreach (ghash.c:1524) + ==25063== by 0x3DE400F663: g_closure_invoke (gclosure.c:777) + ==25063== by 0x3DE40206D7: signal_emit_unlocked_R (gsignal.c:3547) + ==25063== by 0x3DE402866C: g_signal_emit_valist (gsignal.c:3296) + ==25063== by 0x3DE40287C1: g_signal_emit (gsignal.c:3352) + ==25063== by 0x5772F95: gtk_widget_show (gtkwidget.c:3225) + + ==25063== 8,431 (72 direct, 8,359 indirect) bytes in 1 blocks are definitely lost in loss record 9,468 of 9,502 + ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) + ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159) + ==25063== by 0x3DE38616B1: g_slice_alloc (gslice.c:1003) + ==25063== by 0x3DE3861C05: g_slice_alloc0 (gslice.c:1029) + ==25063== by 0x3DE402F96F: g_type_create_instance (gtype.c:1872) + ==25063== by 0x3DE40147A7: g_object_constructor (gobject.c:1849) + ==25063== by 0x3DE4016260: g_object_newv (gobject.c:1632) + ==25063== by 0x3DE40168AB: g_object_new (gobject.c:1542) + ==25063== by 0x40C4BD: virt_viewer_util_load_ui (virt-viewer-util.c:41) + ==25063== by 0x40C7EB: virt_viewer_auth_collect_credentials (virt-viewer-auth.c:43) + ==25063== by 0x41B391: authenticate_cb (virt-viewer-session-ovirt.c:430) + ==25063== by 0x3458C05E8F: ffi_call_unix64 (unix64.S:75) + + ==25063== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 3,962 of 9,502 + ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263) + ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159) + ==25063== by 0x3DE38616B1: g_slice_alloc (gslice.c:1003) + ==25063== by 0x3DE38629F2: g_slist_append (gslist.c:222) + ==25063== by 0x41483C: virt_viewer_window_init (virt-viewer-window.c:323) + ==25063== by 0x3DE402FA05: g_type_create_instance (gtype.c:1892) + ==25063== by 0x3DE40147A7: g_object_constructor (gobject.c:1849) + ==25063== by 0x3DE4015D70: g_object_newv (gobject.c:1713) + ==25063== by 0x3DE401655F: g_object_new_valist (gobject.c:1830) + ==25063== by 0x3DE4016893: g_object_new (gobject.c:1545) + ==25063== by 0x40DA34: virt_viewer_app_window_new (virt-viewer-app.c:590) + ==25063== by 0x40E300: virt_viewer_app_constructor (virt-viewer-app.c:1336) + + ==30355== 4 bytes in 1 blocks are definitely lost in loss record 53 of 9,267 + ==30355== at 0x4A0884D: malloc (vg_replace_malloc.c:263) + ==30355== by 0x3DE384D2BE: g_malloc (gmem.c:159) + ==30355== by 0x3DE3862D0B: g_strdup (gstrfuncs.c:356) + ==30355== by 0x3DE40360FC: value_copy_string (gvaluetypes.c:276) + ==30355== by 0x3DE40340CA: g_value_transform (gvalue.c:535) + ==30355== by 0x3FDAE621DD: gdk_screen_get_setting (gdkevents-x11.c:3022) + ==30355== by 0x3FDB3C7415: gtk_settings_get_property (gtksettings.c:1152) + ==30355== by 0x3DE4017A74: g_object_get_property (gobject.c:1289) + ==30355== by 0x414991: virt_viewer_window_disable_modifiers (virt-viewer-window.c:616) + ==30355== by 0x415922: virt_viewer_window_keyboard_grab (virt-viewer-window.c:931) + ==30355== by 0x3DE400F942: _g_closure_invoke_va (gclosure.c:840) + ==30355== by 0x3DE4027D87: g_signal_emit_valist (gsignal.c:3207) + + Don't leak SPICE ticket + +2012-05-17 Marc-André Lureau + + spice: use weak references to display channel + Fix switch-host migration with Spice. + + spice-gtk doesn't like channels staying around when they should be + destroyed/finalized, ie removed from session. + + spice-gtk should probably learned to handle better the case of non + cooperating clients, and be able to dissociate a channel from a + session without waiting for it to be disposed, but for now, the + relation is quite tight. + +2012-05-15 Daniel P. Berrange + + Avoid use of deprecated GTK3 pointer APIs + The gtk_widget_get_pointer() API is deprecated in GTK3 since it + is not aware of multiple pointers. Replace its usage in autoDrawer.c + with GdkDeviceManager and friends + + Adapt to avoid use of deprecated GTK3 style & size APIs + The GtkStyle API has been deprecated in favour of GtkStyleContext. + Update ovBox.c to use the latter if building with GtK3. Also replace + use of the gtk_widget_size_request API with gtk_widget_get_preferred_size. + +2012-05-15 Marc-André Lureau + + Release v0.5.3 + + nsis: fix .nsis file paths + - look up for icons under the DESTDIR directory + - don't ship gstaudiofx, unneeded + - add missing libtasn + +2012-05-14 Marc-André Lureau + + dist: ship .ico in tarball + Some distros (a 4-letters) don't have icotool. + Let's ship the .ico in the tarball. + + The build will fail if icoutil is not installed when + building from git or when the .ico is absent. The error + should be explicit. + + nsis: IE policy to launch silentely remote-viewer + Add IE ElevationPolicy for the remote-viewer client. + + http://msdn.microsoft.com/en-us/library/bb250462%28v=vs.85%29.aspx + + nsis: fix removal of start menu directory + +2012-05-08 Daniel P. Berrange + + Avoid race condition when disposing of app + When disposing of the VirtViewerApp, we free the hash table + containing the windows. This causes each window to be freed, + which in turn causes the visibility callback to be invoked. + This can then get NULL pointers from the self->priv->windows + usage. + + Blank out priv->windows before unrefing the hashs and add + a check to ensure priv->windows is non-NULL. + +2012-05-04 Daniel P. Berrange + + Ensure windows are destroyed when display closes + When running virt-viewer with the --reconnect argument, when + the session closes, the VirtViewerWindow instances were being + freed, but not the GtkWindow itself. So the orphaned window + stayed around doing nothing. The GtkBuilder instance was also + leaked. + + Fix these two leaks & also add some debugging to help future + troubleshooting + +2012-05-02 Daniel P. Berrange + + Change 'OK' button to 'Close' button in USB device selection + The USB device selection applies immediately, so the dialog + should be using 'Close' instead of 'OK' for its primary button + +2012-04-27 Christophe Fergeau + + g_getenv returns a const string + When switching from getenv to g_getenv, 'doms' declaration + wasn't changed from char * to const char *, which causes + a gcc warning. + +2012-04-26 Daniel P. Berrange + + Replace getenv/setenv with g_getenv/g_setenv for Win32 portability + +2012-04-25 Daniel P. Berrange + + Add debugging when performing fullscreen auto-configuration + + Refresh translations from transifex + + Really fix debug output on glib >= 2.31 + + Fix debug output on glib >= 2.31 + +2012-04-23 Daniel P. Berrange + + Set the remote-viewer binary application name + Currently the window titles for remote-view have 'remote-viewer' + appended them. This is based off the argv[0] name. We should be + setting the GLib application name though, so we can get a localized + 'Remote Viewer' string in the titlebar + + Add support for raw IPv6 addresses in VNC & libvirt URIs + Support vnc://[x:y:z:]:5901/ for raw IPv6 addresses in URIs, + and qemu+ssh://root@[x:y:x:]:22/ for raw IPv6 addresses in + libvirt URIs + +2012-04-19 Daniel P. Berrange + + Fix scaling of window to avoid integer truncation + Use round() instead of integer truncation when scaling the window, + to avoid floating point precision problems on i386 + +2012-04-18 Daniel P. Berrange + + Add a desktop file for launching remote-viewer + Enable automagic handling of spice:// URLs in firefox by + registering a desktop handler for remote-viewer with the + SPICE URI scheme + +2012-04-17 Daniel P. Berrange + + Give remote-viewer priority over spicec for spice-xpi-client + + Add manpage docs for the --attach option + + Fix manpage to s/--fullscreen/--full-screen/ + +2012-04-17 Christophe Fergeau + + Fix automatic usb redir through controller + remote-viewer is currently trying to use + SpiceUsbDeviceManager::auto-connect to control whether USB devices + should be automatically connected or not. However, this property + is more or less an internal spice-gtk property which is toggled + by SpiceGtkSession when the SPICE widget gets/loses focus. + + SpiceGtkSession has an "auto-usbredir" property which can be used + by applications to enable/disable automatic usb redirection through + SPICE. Since this property is helpfully bound to + VirtViewerSession::auto-usbredir, use this when the controller + is told to enable/disable USB redirection. + + Without this change, automatic USB redirection will always get reenabled + as soon as there's a focus change since SpiceGtkSession::auto-usbredir + defaults to be enabled in spice-gtk. + +2012-04-05 Daniel P. Berrange + + Ensure windres & icotool are present on Win32 builds + Builds are failing with an obscure error message + + make[3]: Entering directory `/var/lib/builder/source-root/virt-viewer/build/icons' + GEN virt-viewer.ico + /bin/sh: -c: command not found + make[3]: *** [virt-viewer.ico] Error 127 + + This is because configure.ac does not enforce that icotool + is present on Win32. + + * configure.ac: Mandate windres & icotool on Win32 + + Require F17 for spice in RPM builds + + Exclude windows-cmdline-wrapper.c from some syntax check rules + + Add Yonit to authors file + + Fix some syntax violations in git.mk + +2012-04-05 Zeeshan Ali (Khattak) + + Minor simplification/optimization of VirtViewerDisplay + +2012-04-04 Daniel P. Berrange + + Fix typo in variable names for Win32 command helper + + Fix close of VNC displays + When clicking the close button on a virt-viewer window with + a VNC session open, while the VNC session terminates, the + window does not go away. + + The problem is that the virt_viewer_session_vnc_disconnected + method never gets invoked. The close button triggers a call + to virt_viewer_session_clear_displays which unrefs the + VirtViewerDisplayVnc instance. This in turn triggers a call + to gtk_container_destroy, which destroys all widgets it + contains, ie the VncDisplay * object. + + With the VncDisplay object in its dispose phase, no signals + will ever be emitted, thus the 'vnc-disconnected' signal + never gets seen. + + The design issue is that VirtViewerDisplayVnc is assuming + it owns the VncDisplay, whereas in fact the real owner is + the VirtViewerSessionVnc object. + + The solution is to introduce a new virt_viewer_display_close + method which can be used to de-parent the widget before + VirtViewerDisplay is unref'd. + + The VirtViewerSessionVnc object also needs to hold a full ref + on the VncDisplay object, not merely a floating reference + + * virt-viewer-display-spice.c, virt-viewer-display.c, + virt-viewer-display.h: Add virt_viewer_display_close + * virt-viewer-display-vnc.c: Deparent VNC widget in + virt_viewer_display_close impl + * virt-viewer-session-vnc.c: Improve logging + * virt-viewer-session.c: Call virt_viewer_display_close + before unrefing display + * virt-viewer-window.c: Improve logging + +2012-04-04 Christophe Fergeau + + Propagate USB redirection controller messages + +2012-04-03 Yonit Halperin + + Add support for the SPICE properties disable-effects & color-depth + +2012-04-03 Christophe Fergeau + + build-sys: fix Windows specific LDFLAGS on non-mingw + +2012-04-02 Marc-André Lureau + + nsis: fix a few missing icons + + nsis: add the remote-viewer cmdline wrapper + + remote-viewer: make it a GUI/windows application with hybrid console + If the application can attach to its parent console, redirect + input/output. So that will work nicely with the command line wrapper. + + Add a Windows command line wrapper + Add a small command line wrapper, to be able to call GUI/windows application from the console + +2012-04-01 Marc-André Lureau + + Disable mnemonics via gtk-enable-mnemonics settings + This has 2 advantages, and I can't figure any drawback: + - it fixes the issue of mnemonic hints being draw when pressing Alt + key (character underlined), even when they were disabled. + - it simplifies the code :) + + Disable menu items that would fail when there is no display + + build-sys: simplify autogen.sh + It should support NOCONFIGURE=1 ./autogen.sh && mingw32-configure + +2012-03-30 Marc-André Lureau + + build-sys: use git.mk to generate gitignore + This makefile is just fantastic, it forces you into good practices, + support various build targets (my windows builddir ignore the right + files etc..) + + The more I use it, the more I like it. + + win32: add a few Windows sepecific data + Add application icon and manifest + + win32: clean-up the NSIS installer, allow user install + + Fix recent --spice-controller regression, add error message + The current code will attempt to dereference args if + --spice-controller, even if args is NULL. + + Let's not accept any extra argument/uri on the command line if using + the controller. Beside, the conditionnal block looks better outside of + the if condition. + +2012-03-29 Hans de Goede + + usbredir: listen for device-error signal + +2012-03-29 Marc-André Lureau + + remote-viewer: press Enter to connect in dialog + + Remove unused variable i + + remote-viewer: add a simple connection dialog + If the user doesn't provide URI, let's show a simple dialog to enter it. + + Also save & list recently used URLs in that dialog. + + Fix g_thread_init deprecation warning + Although the doc says it is only deprecated since >2.32, it's actually + >2.31 according to glib git log. + +2012-03-21 Marc-Andre Lureau + + Do not warn if the display is shown and not ready + Lower warning message to debug level. There are various racy ways it + ends up calling show_display although the display is not yet + ready. This is not such a big problem, although it would be nice to + handle this case better + + Notify focus state when the foreign menu title is set + The current code only inform of focus state when the listener is ready. + spice-gtk controller code lacks signal when a client connects, but a + client will set the title when connected and send a notify signal. + Use this event to notify of application focus state. + + Do not try to unref NULL menu + + Don't leak foreign menu + The RemoveViewer object will have its own ref. + +2012-03-21 Marc-André Lureau + + spice: handle switch-host event + Do not disconnect session when switching host (non-seamless migration + method). + + Also, handle a bit better main channel events and do not disconnect on + unknown events, however raise unhandled event message to warning + level. + + spice: remove usage of deprecated audio api + + Display correct key bindings to release cursor + If the accels are enabled (with Spice controller custom bindings), + show the configured keybinding in the title bar. + + spice: implement --fullscreen=auto-conf + - auto-conf is an optionnal argument to --fullscreen: + it will set the guest display configuration to match the client + display configuration, by sending the client monitors size and + position to capable guests. + +2012-03-18 Marc-André Lureau + + Fix indentation + +2012-03-16 Marc-André Lureau + + Do not crash so easily when given invalid uri + 'remote-viewer foobar' shouldn't crash + +2012-03-13 Daniel P. Berrange + + Updated translations + +2012-03-09 Marc-André Lureau + + Make sure we call g_thread_init() + GThread is needed by spice-gtk + + Notify of focus state when a client connects + The current code notifies the controller when the remote-viewer + application starts, but not when the client is connected. We should do + the later instead + +2012-03-09 Daniel P. Berrange + + Update NEWS for 0.5.2 release + + Import newer translations from transifex + + Fix libvirt/SPICE min versions + We require libvirt >= 0.9.7 to get virDomainOpenGraphics + + We require spice-gtk >= 0.11 to get the fix for dealing with + authentication over an SSH tunnel + + We requires spice-protocol >= 0.10.1 to get a constant + required by USB redirection + +2012-03-08 Marc-André Lureau + + Add a send-key menu in fullscreen + +2012-03-07 Marc-André Lureau + + build: fix autogen message + When running ./autogen.sh on a pristine git checkout, I got: + + libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and + libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. + You should add the contents of '/usr/share/aclocal/intltool.m4' to 'aclocal.m4'. + +2012-03-07 Hans de Goede + + virt-viewer-window: Don't try to resize non visible windows + Trying to resize not visible windows leads to the following being printed + to the console: + Gdk-CRITICAL **: IA__gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)' + + This gets triggered by the gdk_screen_get_monitor_geometry() call in + virt_viewer_window_resize() + + virt-viewer-window: Add show / hide utility functions + + virt-viewer-window: Move checks before resize to virt_viewer_window_resize + + virt-viewer-window: Remove useless tests for priv->window != NULL + priv->window gets set on init and never unset, so there is no need to check + for it. + +2012-03-07 Daniel P. Berrange + + Update AUTHORS file + + Refresh translations + +2012-03-06 Hans de Goede + + virt-viewer-window: Add a USB device selection to the fullscreen menu (v2) + Note this button only gets shown on USB redir capable virtual machines. + + Changes in v2: + -Use gtk_widget_set_visible for simpler code + + window: Call virt_viewer_app_quit instead of gtk_main_quit + When quiting from the fullscreen menu call virt_viewer_app_quit instead of + gtk_main_quit so that the session gets properly disconnected before quiting. + + virt_viewer_app_quit: Cleanly close the connection before quiting + Even though the previous patches in this series ensure that the session + gets properly finalized, we still need to wait for the disconnect signal, + as spice-glib uses co-routines which need some time to cleanly close the + connection / session. + + session-spice: Delay the disconnected signal till all channels are closed + Before this patch session-spice would emit the disconnected signal as soon + as the main channel is closed, but other channels may still be open at + that time and raising the disconnected signal usally leads to the app class + calling gtk_main_quit, at which point the other channels never get properly + finalized (as there co-routines still hold a reference to them). + + This is esp. bad for usbredir channels as these re-attach the kernel driver + for redirected devices when finalized. So exiting without properly finalizing + them leads to the formerly redirected devices not being usuable until the + driver is manually reloaded or the device is unplugged and re-plugged + (the kernel does not automatically re-bind kernel drivers when userspace + closes a usbfs node). + + This patch fixes this by delaying the emitting of the disconnect signal + until the last channel has been destroyed. + + virt-viewer-app: unref the session on dispose + With this patch combined with the previous patches in this series, the + VirtViewerSession (finally) gets properly finalized on exit. + + virt-viewer-display: Use a borrowed reference to session + Before this patch there was a cyclic reference between VirtViewerSesion and + VirtViewerDisplay, since all VirtViewerDisplays are created / destroyed by + VirtViewerSession it is safe to assume that lifetime of VirtViewerSession >= + VirtViewerDisplay, so VirtViewerDisplay can take a borrowed reference + breaking the circle, and allowing proper cleanup on exit. + + Note that there is no g_object_unref removed from virt-viewer-display, this + because there is no finalize / dispose and before this patch + VirtViewerDisplay never unref-ed the reference it hold to the session. + + virt-viewer-window: Use a borrowed reference to app + Before this patch there was a cyclic reference between VirtViewerApp and + VirtViewerWindow, since all VirtViewerWindows are created / destroyed by + VirtViewerApp it is safe to assume that lifetime of VirtViewerApp >= + VirtViewerWindow, so VirtViewerWindow can take a borrowed reference + breaking the circle, and allowing proper cleanup on exit. + + virt-viewer-app: main_window is part of our windows hashtable + This means that: + 1) There is no need to explictly set its title separately + 2) It is unref-ed when we do g_hash_table_unref(priv->windows), so it + should not be unref-ed separately otherwise it is unref-ed twice! + + Notice that 2 was never a problem because of circular references + between VirtViewerApp and VirtViewerWindow, but once the follow + up patch to this one breaks the circle 2 becomes an issue. + + session-spice: dispose should chain up to dispose not finalize!! + + usbredir: Gnome HIG-ify USB device selection dialog + These changes match the changes already made to the spice-gtk + usb device selection widget to match the spacing advised by the Gnome HIG. + + usbredir: Shrink the usb device selection dialog when devices are unplugged + +2012-03-05 Christophe Fergeau + + Don't attempt to translate "" + The empty string has a magic meaning for gettext, it's used to + store a translation header with all kind of information about the + po file. This is not something we want to use as a window title, so + change to _("") to "" when we want an empty string. + + Fix path to spice-controller.h + +2012-03-01 Daniel P. Berrange + + Remove trailing blank line + +2012-03-01 Marc-André Lureau + + fix make distcheck + + Prepare for release 0.5.2 + + update .mailmap + +2012-03-01 Marc-Andre Lureau + + remote-viewer: support spice foreign menu + +2012-03-01 Marc-André Lureau + + Add property app:has-focus + + Fix compilation with gtk 2.18 + + spice: fix connecting via ssh to a password-protected server + spice_session_connect() will attempt to connect directly to the + server, we need to continue calling spice_session_open_fd() for ssh + tunnel to work. + + spice: fix double unref of main channel + When doing unref() on a channel, channel-destroy signal may be emitted + during object dispose time, and it will attempt to unref() the channel + again likely leading to a crash. + + It may be that spice-gtk should have a different/simpler object + life-cycle model, but it's also a good assumption to not take strong + references on the channels, but just keep a weak reference as the + session is really the channel life-cycle manager. + + https://bugzilla.redhat.com/show_bug.cgi?id=797082 + +2012-02-27 Daniel P. Berrange + + Import translations + +2012-02-23 Marc-André Lureau + + nsis: set HKCU "Software\spice-space.org\spicex\client" + With recent RHEV portal plugin, the Spice client is chosen according + to this key. + +2012-02-22 Marc-André Lureau + + remote-viewer: add smartcard controller message + + spice: teach customizable key bindings with controller + Tested with RHEVM 3.0 instance with custom bindings for fullscreen & + ungrab. + + Small code simplification + + Use the accelgroup to define key bindings + With accelgroups, we can redefine the keybindings + + Add hidden menu smartcard remove/insert and release-cursor + + Add virt_viewer_app_get_session() + + spice: implement smartcard-{insert,remove} virtual methods + + Add smartcard-{insert,remove} and release-cursor virtual methods + + Do not disable accelgroup if accels are enabled + + Add VirtViewerApp:enable-accel property + + Require an accel group for full-screen menu + Bump Gtk depedency to 2.18, since we already use symbols from it. + +2012-02-17 Daniel P. Berrange + + Prepare for release 0.5.1 + +2012-02-16 Daniel P. Berrange + + Remove virt-viewer.pot from git, as it is generated dynamically + + Add back compat for GObject 2.22 which lacks GBinding + + Relax GTK-VNC version again + A previous commit needlessly increased the min required GTK-VNC + + Only link remote-viewer program against SPICE controller + + Remove use of a libtool convenience library + The use of a libtool convenience library causes some platforms to + loose the ability to use the GNU_RELRO security feature in the + resulting binary. Refactor the makefile to simply compile the + common files twice, once for virt-viewer & once for remote-viewer + + Import latest translations from transifex + +2012-02-15 Daniel P. Berrange + + Adjust POTFILES.in check to strip type prefix + + Add transifex configuration file + +2012-02-14 Daniel P. Berrange + + Fix inclusion of GtkBuilder files in virt-viewer.pot + + Refresh translation files + + Update for release 0.5.0 + +2012-02-14 Marc-André Lureau + + First %d in controller title should be substituted with window nth + + Add libp11-kit-0.dll to nsis script + +2012-02-14 Daniel P. Berrange + + Set pretty icon for remote-viewer windows too + + Don't hardcode 'localhost' in no @listen parameter is given + If no @listen parameter is given, we must not hardcode 'localhost' + since we can't assume we are running on the same host. Instead use + the hostname from the connection URI + + Extract tlsPort for SPICE and use it to enable secure connections + +2012-02-08 Daniel P. Berrange + + Don't do whitespace checks on icons + + Set transient parent for screenshot dialog + + Ensure auth popup windows have correct transient parent + +2012-02-08 Marc-André Lureau + + Make the password field activates default widget + When pressing "Enter", the default auth dialog action isn't activated. + Setting activates_default to TRUE fixes this issue. + + Do not resize guest desktop if !auto-resize + If auto-resize is enabled, the guest desktop size will be resized to + match current window*zoom size. + + This can be a problem if the user explicitely set the desktop size to + a different resolution and want to keep it. Disabling auto-resize + sounds like a simple way to allow that. + + Resize Spice guest display to the container size + The SpiceDisplay doesn't receive the full allocation, because + VirtViewerDisplay maintains current aspect ratio. However, the guest + display can be resize up to its container size. + + This fixes going full-screen and not getting native resolution for + instance. + +2012-02-08 Daniel P. Berrange + + Ensure About dialog has transient hints setup + + Import a pretty icon for virt-viewer application + + Re-added GtkBuilder XML files to POTFILES.in + Adapt syntax-check rule to allow XML files in POTFILES.in and + re-add the GtkBuilder XML files + + Implement SPICE desktop resizing that takes account of zoom level + The standard SPICE widget guest resize implementation does not + take into account the zoom level settings in virt-viewer, because + it has no knowledge of this functionality. The guest resize can, + however, be done by calling spice_main_set_display() directly. + This allows virt-viewer to resize the guest taking into account + zoom levels. + + ie, if virt-viewer is run with --zoom 50 and the window + is resized to 400x300, then the guest agent should + be told to set its resolution to 800x600 + +2012-02-07 Daniel P. Berrange + + Revert support for resizing guest desktop + The SpiceDisplay widget has built-in support for resizing the + guest desktop, but this does not know that virt-viewer has a + zoom level setting. This makes the virt-viewer zoom completely + inoperable. Revert use of the 'resize-guest' property. + +2012-02-06 Marc-André Lureau + + Add spice-xpi-client-remote-viewer alternative + + man: add remote-viewer man page + +2012-02-06 Daniel P. Berrange + + Import GNULIB rules for syntax checking code + + Add config.h to every source file + + Use exit() constants + + copyright fix + + End of file whitespace cleanup + + Update POTFILES.in + + Replace @FOO@ with $(FOO) in all Makefile.am + + Update copyright headers + + Remove useless if() before free() + + Update AUTHORS file + + Simplify no-op debug macro & fix plugin header + + Fix makefile.am subsitutions for plugin + + Convert TABS to spaces & reindent everywhere + +2012-02-06 Hans de Goede + + Only make the USB device selection sensitive when the vm is USB capable + + Add a menu entry for USB device selection + +2012-02-06 Marc-André Lureau + + Grab the focus when showing the display + Override the grab_focus() method in the display class. Since both VNC + and Spice displays are the direct child, let's just grab the child. + It can be that this behaviour need to be overriden if Spice or VNC + display become more complex (using sub-childs or different objects) + +2012-01-31 Daniel P. Berrange + + Ignore more generated files + +2012-01-31 Guannan Ren + + Disconnect virt-viewer when receiving signal session-cancelled + + Register a new signal session-cancelled + + Tune the first argument in calls to g_type_class_add_private() + +2012-01-31 Daniel P. Berrange + + Support for virDomainOpenGraphics API + Add a new flag --attach, which instructs virt-viewer to attach + to the target display using virDomainOpenGraphics, instead of + initiating a VNC/SPICE connection directly. + + Make VNC support opening connections based on URI + + Adapt remote-viewer so that it builds without SPICE + +2012-01-31 Marc-André Lureau + + Add virt-viewer.nsis + Use ${DESTDIR} variable and @prefix@ to look for files. + Can't easily be generated, it has too much customization. + +2012-01-31 Marc-André Lureau + + Enable spice auto-usbredir + + Remove usage of deprecated property + + Add error dialog for USB redirection failure + + Resize guest desktop with SPICE + This is the method we prefer, even though we can't keep aspect ratio. + We could eventually support aspect ration in spice-gtk. + +2012-01-31 Marc-André Lureau + + build: make libvirt optionnal + +2012-01-31 Marc-André Lureau + + Use a first letter capital in help + The GLib/GNOME convention seems to have first letter as capital for + option description strings. + +2012-01-31 Marc-André Lureau + + Add spice_get_option_group() + + Add spice controller support in remote-viewer + Usage is simply "remote-viewer --spice-controller" + + Add remote-viewer program + This program is meant for direct URI connections. + ex: remote-viewer vnc://uri + +2012-01-30 Marc-André Lureau + + Add a few property getters, used by controller + - virt_viewer_app_get_windows() + - virt_viewer_window_get_builder() + - "VirtViewerSessionSpice:spice-session" property + + build: use AM_GLIB_GNU_GETTEXT + Using intltool macro only causes build issues on exotic platforms, + such as MinGW. + + As long as this bug isn't fixed, we should use AM_GLIB_GNU_GETTEXT + https://bugs.launchpad.net/intltool/+bug/398571 + + NB this partially reverts + + 3473c4bb49adc0caca58dc1a8b6ce81c6870558a + + The difference is the ordering of the rules. With AM_GLIB_GNU_GETTEXT + appearing after IT_PROG_INTLTOOL, the --disable-nls arg to configure + is broken. Thus AM_GLIB_GNU_GETTEXT is called first in this change. + +2012-01-30 Marc-André Lureau + + Make virt_viewer_activate() a vfunc + since other equivalent methods are already overridable. + + Add window-added & window-removed signals + + Use graphical URI for connection + If specified, use URI for connection details + + Add virt_viewer_session_open_uri + + build: replace deprecated functions + +2012-01-30 Daniel P. Berrange + + Add support for --system arg to autogen.sh + +2011-11-09 Daniel P. Berrange + + Prep for 0.4.2 release + +2011-11-07 Daniel P. Berrange + + Automatically generate changelog from GIT history during make dist + +2011-11-07 Marc-André Lureau + + Update POTFILES.in, fix make distcheck + +2011-11-07 Daniel P. Berrange + + Ignore some more generated files + +2011-11-07 Marc-André Lureau + + build: make gtk-vnc optional + +2011-11-07 Daniel P. Berrange + + Require GTK-VNC 0.4.3 and remove redundant realize() call + Remove call to gtk_widget_realize for the GTK-VNC widget. Requires + GTK-VNC >= 0.4.3 + +2011-11-07 Marc-André Lureau + + Emit display-desktop-resize from set_desktop_size() + +2011-11-07 Daniel P. Berrange + + Don't include INSTALL file in GIT + + Revert 1a56de3acad6a19fd958fae9278cf1c97fdabb18 + The GLIB2 check previously removed was misleading because it in + fact checked for gmodule-export-2.0 which is needed to export + the signal handlers. Revert the previous commit, but rename the + var to GMODULE2 to make it clearer + + Always use canonical URI from libvirt connection + The URI we feed into libvirt may be an alias, so always query the + actual URI used internally + +2011-11-04 Daniel P. Berrange + + Update automated build to test both GTK2 and GTK3 builds + + Update mingw32 RPM specfile to use GTK3 on F15 or later + + Remove pkgconfig check for GLIB2 since it is implied by GTK2/3 + +2011-11-03 Daniel P. Berrange + + Fix configure arg for disabling spice + + Print configuration summary + +2011-10-11 Daniel P. Berrange + + Fix broken keycombos for F9->F12 menu + The table for sending C-A-Fn to guests had messed up mappings + for F9->F12 + + Wire up SpiceDisplay grab signals + To ensure that we can put the key release sequence message in the + title bar, wire up VirtViewerDisplaySpice to the grab signals + in SpiceDisplay + + Fix setting of window title with --wait + When waiting for a VM to appear or start, set the initial window + title to the command line arg. When the VM actually appears then + update it to the real VM name + +2011-09-28 Daniel P. Berrange + + Fix crash from previous commit when using UNIX sockets + Code in the previous commit would use 'ghost' even when it was + NULL, as with UNIX domain socket based connections. + +2011-09-19 Daniel P. Berrange + + Fix hostname when XML gives a wildcard address + When the guest XML contains a wildcard address like 0.0.0.0 or ::, + we can't directly use connect() on it. Instead we have to use the + hostname/IP from the libvirt URI. + +2011-09-16 Daniel P. Berrange + + Propagate primary window zoom level to secondary windows + Ensure that all windows get a default zoom level of 100. Propagate + the primary window's zoom level to all secondary windows when + initially creating them + + Fix setting of window title with domain name + +2011-08-16 Daniel P. Berrange + + Fix setting of initial zoom level on display + +2011-08-16 Guido Günther + + ff callbacks must be invoked from a clean stack + If 'ff' callbacks are invoked directly from the remove + callback they will likely deadlock in libvirt. They must + be invoked from a clean stack, so switch to using a + glib idle callback. + +2011-08-14 Guido Günther + + Don't print (null) as user + + Don't print incorrect port numbers + The port isn't 22 when we connect to an alternate port given in + .ssh/config. + + Don't hardcode ssh port to 0 + Many thanks to Luca Capello for debugging this. + +2011-08-12 Daniel P. Berrange + + Fix inverted sshport test that broke SSH tunnelling + +2011-08-04 Marc-André Lureau + + Return if xmlParseURI() failed, instead of crashing + + Lookup UI file correctly, to fix Windows support + + Mark exported function for gtkbuild to lookup on Windows + + Make title more translatable and using application name + + Use g_printerr for errors instead of fprintf(stderr,..) + + Lower severity of unhandled Spice events + + Add virt_viewer_app_show_display() + Similar to previous virt_viewer_app_show_status(). + Used later on by Spice controller to switch between display and status. + + Fix fullscreen should hide taskbar on Windows + +2011-08-04 Daniel P. Berrange + + Update for 0.4.1 release + + Update authors & copyright dates + + Fix sort order of displays submenu + +2011-08-03 Guido Günther + + Don't hardcode SSH port to 22 + To allow $HOME/.ssh/config to override the default SSH port, + don't hardcode '-p 22' in the command line. + +2011-08-03 Pavel Raiskup + + Remove unreachable condition in authentication dialog + +2011-07-26 Daniel P. Berrange + + Remove duplicated struct definition + +2011-07-26 Marc-André Lureau + + If only one display, fullscreen should be on the current display + + Show status on all open windows + The split virt_viewer_notebook_show_status() to + virt_viewer_notebook_show_status_va() is unnecessary + in the end, but it's more future-proof. + + Add a "Displays" submenu, and warn when closing last display + + Don't ignore creation of secondary displays + + Use app fullscreen property instead of app.start() argument + + Implement app_set_fullscreen() to go over existing windows + + Show display and rise its window when we have the display show hint + Track event for Spice, and imitate it for VNC. + + Change enter/leave fullscreen to take/restore position + That allow positionning windows in multi-head. + + Also, get rid of window_state_cb, since it's impossible to + properly catch the event to do the right thing, ie move to a different + screen before go full-screen, or disallow it in case nb physical + monitors < nb virtual monitors. + + Add nth window to virt_viewer_app_window_new() + + Introduce fullscreen property and virt_viewer_app_set_fullscreen() + + Let virt_viewer_notebook_show_status take varags + + Status messages can be translated + + Add show-hint property to display + + Split VirtViewerApp window into VirtViewerWindow + +2011-07-22 Marc-André Lureau + + Inherit from VirtViewerApp for VirtViewer + Make it a real GObject. + + The parts specific to virt should go in virt-viewer.c + + Turn VirtViewer into a VirtViewerApp object + + Split virt_viewer_start() and virt_viewer_new() + + Split virt_viewer_activate() and virt_viewer_set_domain() + + Split virt_viewer_create_session() out of virt_viewer_extract_connect_info() + For future reusability + + Reorder _VirtViewer to make it easier to split with RemoteViewer + + Extract scheme in virt_viewer_extract_host() + Needed for remote-viewer. + +2011-07-18 Daniel P. Berrange + + Remove use of AM_GLIB_GNU_GETTEXT + Since we already invoke the intltool macros, also invoking + AM_GLIB_GNU_GETTEXT is wrong and causes problems with the + later makefile rules + +2011-07-12 Daniel P. Berrange + + Fix build requirements for GTK3 + + Remove bogus hardcoded check for GTK2 + + Disable SPICE unless on x86 architectures + + Fix compat with GTK 2.18.0 + + Updates for 0.4.0 release + + Remove virt-viewer-priv.h from sources, since it is gone + + Remove duplicated typedefs + + Annotate unused variables + + Fix leak of graphics type attribute from XML + + Fix leak of command line arguments + +2011-07-11 Daniel P. Berrange + + Split pull part of VirtViewerDisplay out into VirtViewerSession + To facilitate introduction of multi-head support, pull some of + the VirtViewerDisplay class out into a new VirtViewerSession + class. + + Avoid (null) in titlebar + + Fix colour of status label to show up on black background + + Fix reconnecting of SPICE display + +2011-07-11 Marc-André Lureau + + Fill space on the display alignment with black + + Add support for --fullscreen option + + Skip non-primary monitors in SPICE + +2011-07-11 Daniel P. Berrange + + Remove circular dependancy between VirtViewerDisplay and VirtViewer + Add many signals to VirtViewerDisplay which are emitted when various + events occur. This lets us remove all the code in the VirtViewerDisplay + subclasses which call back into VirtViewer methods. Instead VirtViewer + can simply connect signals to the display + + Turn VirtViewerDisplay into a proper Gtk widget + Turn VirtViewerDisplay into a Gtk widget instead of just a GObject, + by merging the functionality from VirtViewerAlign + +2011-07-11 Daniel P. Berrange + + Update to optionally build with GTK3 + +2011-07-01 Daniel P. Berrange + + Replace use of GtkAlignment with a custom align widget + To use the GtkAlignment we have to play evil tricks overriding + its size request, to make it reallocate the child to the preferred + size we desire based on the virtual desktop size + zoom level. + + By replacing the GtkAlignment with a custom widget we can + directly implement the layout/sizing semantics we want without + playing stupid games + + Introduce standard naming convention to files & methods + All source files must be named + + virt-viewer-XXXX + + All methods named + + virt_viewer_XXX + +2011-07-01 Daniel P. Berrange + + Fix some compile warnings + + Convert from Glade to GtkBuilder + + Refactor configure.ac to pull out required version + + Enable use of scaling from spice >= 0.6 + Make the SPICE widget operate in the same way as the VNC widget + with display scaling, and auto-resize, but preserving guest + aspect ratio + + Hide menu bar on fullscreen & add a hiding toolbar + * src/Makefile.am, src/view/autoDrawer.c, src/view/autoDrawer.c + src/view/drawer.c, src/view/drawer.h, src/view/ovBox.c, + src/view/ovBox.c: Import auto-drawer from vinagre + * src/viewer-priv.h, src/viewer.c, src/viewer.glade, + src/display-vnc.c: Insert an auto-drawer above the + notebook and display an auto-hiding toolbar when fullscreen + +2011-06-30 Daniel P. Berrange + + Add message about whether it is VNC or SPICE display + + Add some useful data for the --verbose flag + +2011-05-23 Daniel P. Berrange + + Fix re-connect after authentication failure + viewer->display will be non-NULL if we have already attempted a + connection. So, remove the check for it being NULL, and instead + skip the widget setup step. + +2011-05-23 Jiri Denemark + + Add support for listen attribute + Virt-viewer now parses listen attribute from graphics element to be able + to connect to domains configured with explicit listen address: + + + +2011-05-23 Daniel P. Berrange + + Replace .hgignore with .gitignore + 2011-02-21 Daniel P. Berrange - * configure.ac: + Added tag release-0.3.1 for changeset f71b32a6a583 + + Updates for 0.3.1 release + Fix typo in SPICE configure setup - [cfb261f0ffed] [tip] - - * .hgtags: + Added tag release-0.3.0 for changeset 807203083e74 - [22b287a68428] - - * ChangeLog, NEWS, README, configure.ac: + Updates for 0.3.0 release - [807203083e74] [release-0.3.0] - - * virt-viewer.spec.in: + Fix misc RPM specfile bugs - [74bd54a2be1b] 2011-02-11 Daniel P. Berrange - * Merge heads - [63a275e6efad] + Merge heads + + Disable mozilla plugin since it doesn't build currently + + Enable SPICE in Fedora 15 or later 2011-02-08 yurchor - * po/uk.po: l10n: Updates to Ukrainian (uk) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [42abba3e0529] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-02-08 elsupergomez - * po/es.po: l10n: Updates to Spanish (Castilian) (es) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [f59694a06f0e] - -2011-02-11 Daniel P. Berrange - - * autobuild.sh: - Disable mozilla plugin since it doesn't build currently - [a15854eff628] - - * virt-viewer.spec.in: - Enable SPICE in Fedora 15 or later - [4e4482cfc5df] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-02-07 Daniel P. Berrange - * configure.ac: Update pkg-config check for spice-gtk library - [35b857dedeee] 2011-02-04 warrink - * po/nl.po: l10n: Updates to Dutch (Flemish) (nl) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [4bdba329fd50] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-02-04 raven - * po/pl.po: l10n: Updates to Polish (pl) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [819835e085c6] - - * po/pl.po: + Transmitted-via: Transifex (translate.fedoraproject.org) + l10n: Updates to Polish (pl) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [8e8defe7444c] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-02-03 Daniel P. Berrange - * src/viewer.c: Fix waiting for VM based on UUID - [607c42b3aba6] - - * src/viewer-priv.h, src/viewer.c: + Support connections over UNIX sockets - [4f6b2cf8d10a] - - * src/viewer.c: + Avoid fetching XML document multiple times when extracting graphics - [eccf7b274d8c] 2011-01-29 fdaluisio - * po/it.po: l10n: Updates to Italian (it) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [c1559894facc] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-01-28 tomspur - * po/de.po: l10n: Updates to German (de) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [8e6056966e8c] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-01-12 andreyjktl - * po/ru.po: l10n: Updates to Russian (ru) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [6a5fa15abaa3] + Transmitted-via: Transifex (translate.fedoraproject.org) 2011-01-10 elsupergomez - * po/es.po: l10n: Updates to Spanish (Castilian) (es) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [aaf4f61830cc] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-12-21 jassy - * po/pa.po: l10n: Updates to Panjabi (Punjabi) (pa) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [72eb4f8f3bc0] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-12-16 warrink - * po/nl.po: l10n: Updates to Dutch (Flemish) (nl) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [c2bc3efb0265] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-12-15 raven - * po/pl.po: l10n: Updates to Polish (pl) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [879ab95fa860] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-12-10 Marc-André Lureau - * configure.ac, src/Makefile.am, src/viewer.c: build: make spice-gtk dependency optional - [992d73fd6a85] 2010-11-30 Marc-André Lureau - * src/display-spice.c, src/display-vnc.c, src/display.h, src/viewer.c, - src/viewer.glade: viewer: add support for spice resize-guest - And also turn on clipboard sharing. - [328f3f0f57d2] - - * AUTHORS, configure.ac, man/Makefile.am, man/virt-viewer.pod, - po/POTFILES.in, src/Makefile.am, src/auth.c, src/auth.h, src - /display-spice.c, src/display-spice.h, src/display-vnc.c, src - /display-vnc.h, src/display.c, src/display.h, src/viewer-priv.h, - src/viewer.c, src/viewer.glade: + viewer: Add support for Spice - [e9167b61921b] 2010-11-19 Marc-André Lureau - * src/viewer.c: viewer: generalize extract_port() into viewer_extract_xpath_string() - [dbcb547de1e9] - - * src/viewer.c: + viewer: silence a few warnings of unused variables - [bc2713b7997b] - - * src/viewer.c: + viewer: split vnc display creation out of viewer_activate() - [de2d7bf9bd1e] 2010-12-14 Daniel P. Berrange - * src/auth.c: Improve auth dialog message when no address is available - [526813f252f3] 2010-11-17 tombo - * po/it.po: l10n: Updates to Italian (it) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [fa512d3379da] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-10-04 giallu - * po/it.po: l10n: Updates to Italian (it) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [d0eba3f3dcf4] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-09-30 aron - * po/zh_CN.po: l10n: Updates to Chinese (China) (zh_CN) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [eb3fb9f7894c] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-08-10 bozzo - * po/fr.po: l10n: Updates to French (fr) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [d5bc241ed9f7] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-08-03 warrink - * po/nl.po: l10n: First Dutch translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [bfb63c06f06d] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-07-22 ankit - * po/gu.po: l10n: Updates to Gujarati (gu) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [44d8dc6c88f7] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-07-09 Daniel P. Berrange - * Merge heads - [45de382c1988] - -2010-07-06 raven - - * po/pl.po: - l10n: Updates to Polish (pl) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [c374cc9b4e33] - -2010-07-06 elsupergomez - - * po/es.po: - l10n: Updates to Spanish (Castilian) (es) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [5c703e23a2b4] + Merge heads 2010-07-09 Ronnie Sahlberg - * man/virt-viewer.pod: Misc fixes to command line args in virt-viewer manpage - Fix three issues with the manpage for virt-viewer : * Short option for --reconnect is -r, not -w * Show that the short option for zoom takes an argument * Add the --debug argument. - [67e2d8113af9] + +2010-07-06 raven + + l10n: Updates to Polish (pl) translation + Transmitted-via: Transifex (translate.fedoraproject.org) + +2010-07-06 elsupergomez + + l10n: Updates to Spanish (Castilian) (es) translation + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-07-05 Ronnie Sahlberg - * AUTHORS, man/virt-viewer.pod, src/main.c, src/viewer.c, - src/viewer.glade, src/viewer.h: Add support for zoom levels - Add a menu for zooming in/out of the virtual desktop. Add a --zoom command line to set the initial zoom level. Defaults to 100% zoom at startup - [99cd453a8746] 2010-07-05 Daniel P. Berrange - * po/LINGUAS: Add all current languages to LINGUAS file - - No locale files were being installed since all the languages were - missing in LINGUAS - [9111b6888676] + No locale files were being installed since all the + languages were missing in LINGUAS 2010-06-27 zoltanh721 - * po/hu.po: l10n: Updates to Hungarian (hu) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [10cd88edd331] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-06-25 htaira - * po/ja.po: l10n: Updates to Japanese (ja) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [31ea04a18446] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-06-09 htaira - * po/ja.po: l10n: Updates to Japanese (ja) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [a0786647b8e9] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-04-14 mvdz - * po/uk.po: l10n: Updates to Ukrainian (uk) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [47d846d27fdd] - -2010-03-31 enshahar - - * po/ko.po: + Transmitted-via: Transifex (translate.fedoraproject.org) + +2010-04-01 enshahar + l10n: Updates to Korean (ko) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [4ea747fc1d6b] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-03-30 webappz - * po/hu.po: l10n: Updates to Hungarian (hu) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [c2e41385dabf] - - * po/hu.po: + Transmitted-via: Transifex (translate.fedoraproject.org) + l10n: Updates to Hungarian (hu) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [f38b2e86c5ef] - - * po/hu.po: + Transmitted-via: Transifex (translate.fedoraproject.org) + l10n: Updates to Hungarian (hu) translation - - Transmitted-via: Transifex (translate.fedoraproject.org) - [2e4d842c62af] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-03-22 mvdz - * po/uk.po: l10n: Added Ukrainian translation. - - Transmitted-via: Transifex (translate.fedoraproject.org) - [88ad52cdf0aa] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-03-14 amitakhya - * po/as.po: l10n: Adding Assamese translations. - - Transmitted-via: Transifex (translate.fedoraproject.org) - [f815e2c8e5ad] + Transmitted-via: Transifex (translate.fedoraproject.org) 2010-02-26 runab - * po/bn_IN.po: Sending translation for po/bn_IN.po - [5c79b3bd5068] 2010-02-24 rajesh - * po/hi.po: Sending translation for po/hi.po - [c8f2537692e0] 2010-02-20 snicore - * po/hu.po: Sending translation for po/hu.po - [1462825b8e02] 2010-02-08 anipeter - * po/ml.po: Sending translation for po/ml.po - [cd1284f62107] 2010-02-01 mgiri - * po/or.po: Sending translation for po/or.po - [78feb4d583ed] 2010-01-29 ifelix - * po/ta.po: Sending translation for po/ta.po - [7d4d3f5993a2] 2010-01-29 jassy - * po/pa.po: Sending translation for Punjabi - [a5842cd7e908] 2010-01-28 sandeeps - * po/mr.po: Sending translation for po/mr.po - [9de827a3645a] 2010-01-28 shanky - * po/kn.po: Sending translation for po/kn.po - [32bedf3379c1] 2010-01-28 giallu - * po/it.po: Sending translation for Italian - [4169a6aa9f03] 2010-01-28 jassy - * po/pa.po: Sending translation for po/pa.po - [90ae444ba69c] 2010-01-28 kkrothap - * po/te.po: Sending translation for po/te.po - [fca3f9a5bc8b] 2010-01-28 mospina - * po/ko.po: Sending translation for Korean - [185dc845cc3f] - -2010-01-25 "Daniel P. Berrange - - * po/it_IT.po: + +2010-01-25 Daniel P. Berrange + Remove bogus it_IT.po file, correct name was it.po - [87e34764f943] 2010-01-24 tchuang - * po/zh_TW.po: Sending translation for po/zh_TW.po - [e50f8116a8ab] 2010-01-24 raven - * po/it.po: Sending translation for po/it.po - [9b614ce582ea] 2010-01-23 giallu - * po/it_IT.po: Sending translation for po/it_IT.po - [ee470027df65] 2010-01-22 hedda - * po/de.po: Sending translation for German - [557f60ac53b3] 2010-01-22 leahliu - * po/zh_CN.po: Sending translation for Chinese (Simplified) - [c9d98ce01d93] 2010-01-22 khasida - * po/ja.po: Sending translation for po/ja.po - [34d80402dbed] 2010-01-22 mospina - * po/ko.po: Sending translation for po/ko.po - [2b9684476fe6] - - * po/es.po: + Sending translation for Spanish - [e08c6128ea8f] 2010-01-22 ypoyarko - * po/ru.po: Sending translation for Russian - [b11d479ee1f4] 2010-01-22 gcintra - * po/pt_BR.po: Sending translation for po/pt_BR.po - [892a90a8af67] 2010-01-22 samfreemanz - * po/fr.po: Sending translation for French - [5b55be5a0e46] 2010-01-22 hedda - * po/de.po: Sending translation for po/de.po - [b13384930995] 2010-01-22 leahliu - * po/zh_CN.po: Sending translation for Chinese (Simplified) - [a2e13f979d94] 2010-01-21 leahliu - * po/zh_CN.po: Sending translation for po/zh_CN.po - [18b0c5353fef] 2010-01-21 ypoyarko - * po/ru.po: Sending translation for po/ru.po - [f22e478e8046] 2010-01-21 mospina - * po/es.po: Sending translation for po/es.po - [cd6be7781059] 2010-01-21 swkothar - * po/gu.po: Sending translation for po/gu.po - [ed59815240d9] 2010-01-18 renault - * po/fr.po: Sending translation for po/fr.po - [f0a3b5b30f92] - -2010-01-15 "Daniel P. Berrange - - * .hgtags: + +2010-01-15 Daniel P. Berrange + Added tag release-0.2.1 for changeset 13bcca43c859 - [236029760251] - - * AUTHORS, ChangeLog, NEWS, README, configure.ac: + Updates for 0.2.1 release - [13bcca43c859] [release-0.2.1] 2010-01-13 raven - * po/pl.po: Sending translation for Polish - [d114aac4cfb8] - -2010-01-12 "Daniel P. Berrange - - * src/viewer.c: + +2010-01-12 Daniel P. Berrange + Add message dialog displays for important error scenarios - [6d1f30e5fb71] - - * src/auth.glade: + Fix warning with default widget focus in auth dialog - [e0e91e221add] - - * src/viewer.c: - Add dialog to alert user to unsuccessful authentication & retry - Alert user if VNC server has no compatible auth methods Support VNC - bell & cut text events - [f098a86755a7] - - * configure.ac: + + Add dialog to alert user to unsuccessful authentication & retry Alert user if VNC server has no compatible auth methods Support VNC bell & cut text events + Turn on automake's silent build rules if available - [d388340febbc] - - * src/main.c, src/viewer.c: + Various cleanups for Glib/GTK and BZ 474213 - [c13f1d31eab7] 2010-01-11 raven - * po/pl.po: Sending translation for Polish - [31af732a9a55] - -2010-01-11 "Daniel P. Berrange - - * .hgignore, mingw32-virt-viewer.spec.in, po/LINGUAS, po/virt- - viewer.pot, src/about.glade, virt-viewer.spec.in: - Add 'pl' to LINGUAS. Remove accidentally committed .pot file and add - it to .hgignore. Add RPM specfile magic for translations. Fix typo - in about.glade URL - [09c9db915104] + +2010-01-11 Daniel P. Berrange + + Add 'pl' to LINGUAS. Remove accidentally committed .pot file and add it to .hgignore. Add RPM specfile magic for translations. Fix typo in about.glade URL 2010-01-11 raven - * po/pl.po, po/virt-viewer.pot: Sending translation for po/pl.po - [affb21844c39] - -2010-01-11 "Daniel P. Berrange - - * .hgignore, Makefile.am, autogen.sh, configure.ac, intltool- - extract.in, intltool-merge.in, intltool-update.in, po/LINGUAS, - po/POTFILES.in, src/Makefile.am, src/main.c: + +2010-01-11 Daniel P. Berrange + Add support for i18n of the UI - - Add all the boilerplate code required for doing i18n of the UI. No - translations available yet though - [07db22b2f766] - -2009-08-15 "Yann E. MORIN" - - * src/util.h: + Add all the boilerplate code required for doing i18n of the UI. + No translations available yet though + +2009-08-15 Yann E. MORIN" + viewer: fix build on 'old' GTK2 - - Debian lenny has gtk2 2.12.12, which is missing - gtk_widget_get_window. Provide our own function if GTK2 <= 2.12 . - - Highly inspired from: http://osdir.com/ml/svn-commits- - list/2009-08/msg00725.html - [e05cd5be9c36] - -2009-07-29 "Daniel P. Berrange - - * .hgtags: + Debian lenny has gtk2 2.12.12, which is missing gtk_widget_get_window. + Provide our own function if GTK2 <= 2.12 . + + Highly inspired from: http://osdir.com/ml/svn-commits-list/2009-08/msg00725.html + +2009-07-29 Daniel P. Berrange + Added tag release-0.2.0 for changeset b38a2c67ebfd - [99ba88ee7820] - - * NEWS, configure.ac, virt-viewer.spec.in: + Update for 0.2.0 release - [b38a2c67ebfd] [release-0.2.0] - - * plugin/Makefile.am: - Disable compile errors in plugin till we figure out what's up with - the header files - [f2fabc428441] - - * mingw32-virt-viewer.spec.in, virt-viewer.spec.in: + + Disable compile errors in plugin till we figure out what's up with the header files + Update deps in rpm - [d5ef17c7856e] - - * src/viewer.c: + Ensure VNC display is centered if being scaled - [f5e758b7a271] - - * src/auth.glade: + Ensure password is not echoed - [e826ca02a7d4] - - * src/auth.c, src/auth.glade, src/auth.h, src/util.h, src/viewer.c: + Add support for libvirt graphical auth - [a8e92767179f] - - * plugin/Makefile.am, src/Makefile.am, src/auth.c, src/auth.h, - src/events.c, src/events.h, src/util.c, src/util.h, src/viewer.c, - src/viewer.h: + Pull auth code out into separate file - [1471c65b8280] - -2009-07-28 "Daniel P. Berrange - - * plugin/Makefile.am, plugin/npshell.c, plugin/npupp.h, - plugin/test.html, plugin/virt-viewer-plugin.c, plugin/virt-viewer- - plugin.h, src/viewer.c: + +2009-07-28 Daniel P. Berrange + Make plugin work again - [68646d3db76d] - - * src/viewer.c: + Add compatability logic for drivers without domain event support - [c29276a0f2ec] - - * src/viewer.c: + Fix mouse / key grab vs modifier disabling mixup - [6cdf7dfa223d] - - * configure.ac, mingw32-virt-viewer.spec.in, plugin/Makefile.am, - src/Makefile.am, src/events.c, src/events.h, src/viewer.c, virt- - viewer.spec.in: - Pull glib event loop integration into tree until libvirt-glib is - more mature - [dd92609022ac] - - * src/viewer.c, src/viewer.glade: + + Pull glib event loop integration into tree until libvirt-glib is more mature + Re-write the way scaling/resizing works - - * Default to auto-resize mode where we try to fit the VNC widget 1:1 - in the main window - * If local desktop is not large enough for VNC widget, scale down, - maintaining aspect ratio - * Allow the user to turn off auto-resize and have total manual control - over window size + * Default to auto-resize mode where we try to fit the VNC widget 1:1 in the main window + * If local desktop is not large enough for VNC widget, scale down, maintaining aspect ratio + * Allow the user to turn off auto-resize and have total manual control over window size * Always scale the display in fullscreen mode - [3521ee2a63e6] - - * plugin/virt-viewer-plugin.c, src/main.c, src/viewer.c, src/viewer.h: + Add a --debug command line flag - [1a3b36e0b6f2] - - * src/viewer.c: + Fix waiting for a VM that does not initially exist - [da53b8f99cdf] - - * plugin/Makefile.am, plugin/npshell.c, src/Makefile.am, src/main.c, - src/viewer.c: + Move most of viewer code out into viewer.c - [8f237adf2792] - -2008-11-28 "Daniel P. Berrange - - * autobuild.sh, configure.ac, mingw32-virt-viewer.spec.in, virt- - viewer.spec.in: + +2008-11-28 Daniel P. Berrange + Initial mingw32 build support - [92da1556bbf9] - - * src/main.c: + Use g_strdup & friends - [029b506ca4cf] - - * configure.ac, src/main.c, src/usleep.c: + Remove unused usleep code - [ac45bee371c8] - -2008-11-26 "Daniel P. Berrange - - * .hgignore, autogen.sh, configure.ac, man/virt-viewer.pod, - plugin/Makefile.am, plugin/npshell.c, plugin/virt-viewer-plugin.c, - plugin/virt-viewer-plugin.h, src/Makefile.am, src/about.glade, - src/auth.glade, src/main.c, src/viewer.glade, src/viewer.h, virt- - viewer.spec.in: - Re-write completely to use Glade, libvirt events, and libvirt-glib - integration - [8e98b3d44c8d] - -2008-11-03 "Daniel P. Berrange - - * plugin/Makefile.am: + +2008-11-26 Daniel P. Berrange + + Re-write completely to use Glade, libvirt events, and libvirt-glib integration + +2008-11-03 Daniel P. Berrange + Fix rule to use DESTDIR on plugin install - [e70af57502f9] - -2008-10-10 "Richard W.M. Jones - - * .hgignore, ChangeLog, configure.ac, src/Makefile.am, src/main.c, - src/usleep.c: - * configure.ac, src/Makefile.am, src/main.c, src/usleep.c: Support - for building on Windows using MinGW compiler toolchain (or - for cross-compiling using the same). - - * .hgignore: Ignore some generated files. - [2cce513346ae] - -2008-06-17 "Daniel P. Berrange - - * src/main.c: + +2008-10-10 Richard W.M. Jones + + * configure.ac, src/Makefile.am, src/main.c, src/usleep.c: Support for building on Windows using MinGW compiler toolchain (or for cross-compiling using the same). + * .hgignore: Ignore some generated files. + +2008-06-17 Daniel P. Berrange + Add error message when conecting to inactive VM (Hiroyuki Kaguchi) - [57d1fb020d57] - -2008-04-27 "Daniel P. Berrange - - * configure.ac, src/main.c: + +2008-04-28 Daniel P. Berrange + Use GTK apis for option parsing (Guido G\374nther) - [5299a3aaebb5] - -2008-04-23 "Daniel P. Berrange - - * AUTHORS, src/main.c: - Avoid caching inactive domain to workaround issues with older XenD - (Hiroyuki Kaguchi) - [7f20b8bb6abd] - -2008-04-22 "Daniel P. Berrange - - * AUTHORS, src/main.c: + +2008-04-24 Daniel P. Berrange + + Avoid caching inactive domain to workaround issues with older XenD (Hiroyuki Kaguchi) + +2008-04-22 Daniel P. Berrange + Call gtk_init early to ensure it grabs args like --sync - [5f14440985f8] - -2008-04-08 "Daniel P. Berrange - - * man/virt-viewer.pod: + +2008-04-08 Daniel P. Berrange + Fix manpage typo - [e2ee322e3d1a] - -2008-03-21 "Daniel P. Berrange - - * configure.ac: + +2008-03-21 Daniel P. Berrange + Bump GTK dep to 2.10.0 - [d8cf9d390762] - -2008-03-10 "Daniel P. Berrange - - * .hgtags: + +2008-03-10 Daniel P. Berrange + Added tag release-0.0.3 for changeset 05f9c167354b - [5d426425c850] - - * ChangeLog, NEWS: + Refresh news / changelog for release - [05f9c167354b] [release-0.0.3] - -2008-03-09 "Daniel P. Berrange - - * autobuild.sh, configure.ac, virt-viewer.spec.in: + +2008-03-09 Daniel P. Berrange + Added -plugin sub RPM, disabled by default, except for autobuild - [efcac0fc56b5] - -2008-03-08 "Daniel P. Berrange - - * configure.ac: + +2008-03-08 Daniel P. Berrange + Relax firefox plugin version to 1.5.0 - [0252cf01fe3c] - -2008-03-07 "Daniel P. Berrange - - * src/main.c: + +2008-03-07 Daniel P. Berrange + Disable scaling by default if running on composited window - [aadb3fb8316e] - - * src/main.c: + Block view menu accelerator & remove debug - [01e11e3566ff] - - * src/main.c, virt-viewer.spec.in: + Added support for desktop scaling with OpenGL - [23cd61984e4c] - -2008-03-05 "Daniel P. Berrange - - * .hgignore, acinclude.m4, autobuild.sh, autogen.sh, configure.ac, - plugin/Makefile.am, plugin/npshell.c, plugin/npunix.c, plugin/virt- - viewer-plugin.c, src/main.c: - Kill automake portability warnings. Use a config.h Cleanup misc - build issues. Build with fatal compile warnings - [7254e127a017] - - * src/main.c: + +2008-03-05 Daniel P. Berrange + + Kill automake portability warnings. Use a config.h Cleanup misc build issues. Build with fatal compile warnings + Disable menu accelerators when keyboard is grabbed (Chris Lalancett) - [50ed4d0b0632] - - * autogen.sh: + Fix type in autogen.sh output (Chris Lalancett) - [25932c2b565a] - -2008-01-25 "Daniel P. Berrange - - * .hgignore, Makefile.am, autogen.sh, configure.ac, - plugin/Makefile.am, plugin/npshell.c, plugin/npunix.c, - plugin/test.html, plugin/virt-viewer-plugin.c, plugin/virt-viewer- - plugin.h: + +2008-01-25 Daniel P. Berrange + Added browser plugin (Richard Jones) - [09761c04bdcd] - - * AUTHORS, src/Makefile.am, src/main.c, src/viewer.h: + Refactor main method for viewer to prepare for plugin (Richard Jones - [270fbc7d4192] - -2008-01-11 "Daniel P. Berrange - - * src/main.c: + +2008-01-11 Daniel P. Berrange + Whitespace fix - [fe1efb558b4b] - - * src/main.c: + Hide chars in passwd field - [69daa8257222] - -2008-01-10 "Daniel P. Berrange - - * AUTHORS, NEWS, README, man/virt-viewer.pod, src/main.c: + Fix a few typos (Atsushi SAKAI) - [a0d79af724b0] - -2007-11-29 "Daniel P. Berrange - - * AUTHORS, src/main.c: + +2007-11-29 Daniel P. Berrange + Use proper domain name in title bar, rather than VNC server title - [59fccec87973] - -2007-08-28 "Daniel P. Berrange - - * .hgtags: + +2007-08-29 Daniel P. Berrange + Added tag release-0.0.2 for changeset f3accb51c6f5 - [97f00b8df38a] - - * src/main.c: + Fix crash with no transport - [f3accb51c6f5] [release-0.0.2] - - * ChangeLog, NEWS, configure.ac, virt-viewer.spec.in: + New release 0.0.2 - [3d88506cc468] - - * man/virt-viewer.pod: + Document the '--direct' option - [0d9a8fd612d9] - - * src/main.c: + Support TLS credentials & improved SSH tunnelling - [2ca6f1a9ba64] - - * src/main.c: + Support for connecting over an SSH tunnel - [33102c06fd50] - -2007-08-27 "Daniel P. Berrange - - * Merge - [c40130b3a7ec] - - * src/main.c: + +2007-08-28 Daniel P. Berrange + + Merge + Added initial ability to connect remote hosts - [ac9cae161efb] - - * src/main.c: + Disable debug flag - [61d8448ba53f] - - * src/main.c: + Fixed delete-event handler args - [21f7b4c5c93c] - -2007-08-15 "Daniel P. Berrange - - * COPYING, INSTALL: + +2007-08-16 Daniel P. Berrange + Added COPYING/INSTALL files - [1f83ef35bb59] - - * .hgtags: + Added tag release-0.0.1 for changeset 2b78ab2d18ce - [916abae9a263] - - * virt-viewer.spec.in: + Fixed build requires & group. Removed exclusivearch - [2b78ab2d18ce] [release-0.0.1] - - * AUTHORS, NEWS, README, virt-viewer.spec.in: + Fill out authors, news & readme - [6a74d1951e33] - -2007-07-20 "Daniel P. Berrange - - * src/main.c: - Connected up screenshot & about menus - [7cd9b16e3185] - - * Makefile.am, configure.ac, man/Makefile.am, man/virt-viewer.pod, - virt-viewer.spec.in: + +2007-07-21 Daniel P. Berrange + + Connected up screenshot & about menus + +2007-07-20 Daniel P. Berrange + Added manual page - [db9f0ff467e5] - - * .hgignore, AUTHORS, ChangeLog, Makefile.am, NEWS, README, - acinclude.m4, autobuild.sh, autogen.sh, configure.ac, - src/Makefile.am, src/main.c, virt-viewer.spec.in: + Initial commit - [df454dc97f2f] - diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..ca88b6b --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,132 @@ +# Having a separate GNUmakefile lets me `include' the dynamically +# generated rules created via cfg.mk (package-local configuration) +# as well as maint.mk (generic maintainer rules). +# This makefile is used only if you run GNU Make. +# It is necessary if you want to build targets usually of interest +# only to the maintainer. + +# Copyright (C) 2001, 2003, 2006-2011 Free Software Foundation, Inc. + +# 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 3 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 . + +# Systems where /bin/sh is not the default shell need this. The $(shell) +# command below won't work with e.g. stock DOS/Windows shells. +ifeq ($(wildcard /bin/s[h]),/bin/sh) +SHELL = /bin/sh +else +# will be used only with the next shell-test line, then overwritten +# by a configured-in value +SHELL = sh +endif + +# If the user runs GNU make but has not yet run ./configure, +# give them a diagnostic. +_have-Makefile := $(shell test -f Makefile && echo yes) +ifeq ($(_have-Makefile),yes) + +# Make tar archive easier to reproduce. +export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner + +# Allow the user to add to this in the Makefile. +ALL_RECURSIVE_TARGETS = + +include Makefile + +# Some projects override e.g., _autoreconf here. +-include $(srcdir)/cfg.mk + +# Allow cfg.mk to override these. +_build-aux ?= build-aux +_autoreconf ?= autoreconf -v + +include $(srcdir)/maint.mk + +# Ensure that $(VERSION) is up to date for dist-related targets, but not +# for others: rerunning autoreconf and recompiling everything isn't cheap. +_have-git-version-gen := \ + $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes) +ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) + _is-dist-target ?= $(filter-out %clean, \ + $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS))) + _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) + ifneq (,$(_is-dist-target)$(_is-install-target)) + _curr-ver := $(shell cd $(srcdir) \ + && $(_build-aux)/git-version-gen \ + .tarball-version \ + $(git-version-gen-tag-sed-script)) + ifneq ($(_curr-ver),$(VERSION)) + ifeq ($(_curr-ver),UNKNOWN) + $(info WARNING: unable to verify if $(VERSION) is the correct version) + else + ifneq (,$(_is-install-target)) + # GNU Coding Standards state that 'make install' should not cause + # recompilation after 'make all'. But as long as changing the version + # string alters config.h, the cost of having 'make all' always have an + # up-to-date version is prohibitive. So, as a compromise, we merely + # warn when installing a version string that is out of date; the user + # should run 'autoreconf' (or something like 'make distcheck') to + # fix the version, 'make all' to propagate it, then 'make install'. + $(info WARNING: version string $(VERSION) is out of date;) + $(info run '$(MAKE) _version' to fix it) + else + $(info INFO: running autoreconf for new version string: $(_curr-ver)) +GNUmakefile: _version + touch GNUmakefile + endif + endif + endif + endif +endif + +.PHONY: _version +_version: + cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf) + $(MAKE) $(AM_MAKEFLAGS) Makefile + +else + +.DEFAULT_GOAL := abort-due-to-no-makefile +srcdir = . + +# The package can override .DEFAULT_GOAL to run actions like autoreconf. +-include ./cfg.mk +include ./maint.mk + +ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) +$(MAKECMDGOALS): abort-due-to-no-makefile +endif + +abort-due-to-no-makefile: + @echo There seems to be no Makefile in this directory. 1>&2 + @echo "You must run ./configure before running \`make'." 1>&2 + @exit 1 + +endif + +# Tell version 3.79 and up of GNU make to not build goals in this +# directory in parallel, in case someone tries to build multiple +# targets, and one of them can cause a recursive target to be invoked. + +# Only set this if Automake doesn't provide it. +AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) \ + dist distcheck tags ctags + +ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS) + +ifneq ($(word 2, $(MAKECMDGOALS)), ) +ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), ) +.NOTPARALLEL: +endif +endif diff --git a/INSTALL b/INSTALL index 23e5f25..6e90e07 100644 --- a/INSTALL +++ b/INSTALL @@ -1,16 +1,25 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. +Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. Basic Installation ================== -These are generic installation instructions. + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +32,9 @@ It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,30 +44,37 @@ may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with - the package. + the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is @@ -67,45 +83,69 @@ all sorts of other programs in order to regenerate files that came with the distribution. + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + Compilers and Options ===================== -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== -You can compile the package for more than one kind of computer at the + You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. Installation Names ================== -By default, `make install' installs the package's commands under + By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you @@ -116,16 +156,47 @@ In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to + Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The @@ -137,14 +208,58 @@ you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + Specifying the System Type ========================== -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: @@ -152,7 +267,8 @@ where SYSTEM can have one of these forms: - OS KERNEL-OS + OS + KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't @@ -170,9 +286,9 @@ Sharing Defaults ================ -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. @@ -181,7 +297,7 @@ Defining Variables ================== -Variables not defined in a site shell script can be set in the + Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set @@ -190,21 +306,30 @@ ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: - - /bin/bash ./configure CONFIG_SHELL=/bin/bash - -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== -`configure' recognizes the following options to control how it operates. + `configure' recognizes the following options to control how it +operates. `--help' `-h' - Print a summary of the options to `configure', and exit. + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. `--version' `-V' @@ -231,6 +356,15 @@ Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. - diff --git a/Makefile.am b/Makefile.am index f63cb0d..f307c06 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,21 +1,60 @@ +NULL = ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src man plugin po +SUBDIRS = icons src man plugin po data -EXTRA_DIST = @PACKAGE@.spec \ - intltool-extract.in \ - intltool-merge.in \ - intltool-update.in +EXTRA_DIST = \ + $(PACKAGE).spec \ + intltool-extract.in \ + intltool-merge.in \ + intltool-update.in \ + GNUmakefile \ + maint.mk \ + cfg.mk \ + build-aux/gitlog-to-changelog \ + build-aux/useless-if-before-free \ + build-aux/vc-list-files \ + $(NULL) -DISTCLEAN_FILES = @PACKAGE@.spec \ - intltool-extract \ - intltool-merge \ - intltool-update +DISTCLEAN_FILES = \ + $(PACKAGE).spec \ + intltool-extract \ + intltool-merge \ + intltool-update \ + $(NULL) -MAINTAINERCLEANFILES = \ - m4/libtool.m4 \ - m4/lt~obsolete.m4 \ - m4/ltoptions.m4 \ - m4/ltsugar.m4 \ - m4/ltversion.m4 +MAINTAINERCLEANFILES = \ + $(srcdir)/INSTALL \ + $(srcdir)/aclocal.m4 \ + $(srcdir)/autoscan.log \ + $(srcdir)/config.h.in \ + $(srcdir)/build-aux/compile \ + $(srcdir)/build-aux/config.guess \ + $(srcdir)/build-aux/config.sub \ + $(srcdir)/build-aux/depcomp \ + $(srcdir)/build-aux/install-sh \ + $(srcdir)/build-aux/ltmain.sh \ + $(srcdir)/build-aux/missing \ + $(srcdir)/m4/intltool.m4 \ + $(srcdir)/m4/libtool.m4 \ + $(srcdir)/m4/ltoptions.m4 \ + $(srcdir)/m4/ltsugar.m4 \ + $(srcdir)/m4/ltversion.m4 \ + $(srcdir)/m4/lt~obsolete.m4 \ + $(NULL) + +dist-hook: gen-ChangeLog + +# Generate the ChangeLog file (with all entries since the switch to git) +# and insert it into the directory we're about to use to create a tarball. +.PHONY: gen-ChangeLog +gen-ChangeLog: + if test -d .git || test -d ../.git; then \ + $(top_srcdir)/build-aux/gitlog-to-changelog \ + > $(distdir)/cl-t; \ + rm -f $(distdir)/ChangeLog; \ + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi + +-include $(top_srcdir)/git.mk diff --git a/Makefile.in b/Makefile.in index f7961a8..ca42301 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,29 +52,42 @@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/mingw32-virt-viewer.spec.in \ - $(srcdir)/virt-viewer.spec.in $(top_srcdir)/configure AUTHORS \ - COPYING ChangeLog INSTALL NEWS compile config.guess config.sub \ - depcomp install-sh ltmain.sh missing + $(srcdir)/mingw-virt-viewer.spec.in \ + $(srcdir)/virt-viewer.spec.in $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing $(top_srcdir)/configure \ + AUTHORS COPYING ChangeLog INSTALL NEWS build-aux/compile \ + build-aux/config.guess build-aux/config.sub \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = virt-viewer.spec mingw32-virt-viewer.spec +CONFIG_CLEAN_FILES = mingw-virt-viewer.spec virt-viewer.spec CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -68,21 +97,30 @@ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck + cscope distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags +CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -110,7 +148,10 @@ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best +DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -121,6 +162,8 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -144,6 +187,8 @@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB2_CFLAGS = @GLIB2_CFLAGS@ GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_API_VERSION = @GTK_API_VERSION@ @@ -153,15 +198,22 @@ GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -177,9 +229,11 @@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -200,16 +254,25 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -244,6 +307,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -263,30 +328,54 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +NULL = ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src man plugin po -EXTRA_DIST = @PACKAGE@.spec \ - intltool-extract.in \ - intltool-merge.in \ - intltool-update.in - -DISTCLEAN_FILES = @PACKAGE@.spec \ - intltool-extract \ - intltool-merge \ - intltool-update +SUBDIRS = icons src man plugin po data +EXTRA_DIST = \ + $(PACKAGE).spec \ + intltool-extract.in \ + intltool-merge.in \ + intltool-update.in \ + GNUmakefile \ + maint.mk \ + cfg.mk \ + build-aux/gitlog-to-changelog \ + build-aux/useless-if-before-free \ + build-aux/vc-list-files \ + $(NULL) + +DISTCLEAN_FILES = \ + $(PACKAGE).spec \ + intltool-extract \ + intltool-merge \ + intltool-update \ + $(NULL) MAINTAINERCLEANFILES = \ - m4/libtool.m4 \ - m4/lt~obsolete.m4 \ - m4/ltoptions.m4 \ - m4/ltsugar.m4 \ - m4/ltversion.m4 + $(srcdir)/INSTALL \ + $(srcdir)/aclocal.m4 \ + $(srcdir)/autoscan.log \ + $(srcdir)/config.h.in \ + $(srcdir)/build-aux/compile \ + $(srcdir)/build-aux/config.guess \ + $(srcdir)/build-aux/config.sub \ + $(srcdir)/build-aux/depcomp \ + $(srcdir)/build-aux/install-sh \ + $(srcdir)/build-aux/ltmain.sh \ + $(srcdir)/build-aux/missing \ + $(srcdir)/m4/intltool.m4 \ + $(srcdir)/m4/libtool.m4 \ + $(srcdir)/m4/ltoptions.m4 \ + $(srcdir)/m4/ltsugar.m4 \ + $(srcdir)/m4/ltversion.m4 \ + $(srcdir)/m4/lt~obsolete.m4 \ + $(NULL) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ @@ -322,10 +411,8 @@ $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -337,10 +424,10 @@ distclean-hdr: -rm -f config.h stamp-h1 +mingw-virt-viewer.spec: $(top_builddir)/config.status $(srcdir)/mingw-virt-viewer.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ virt-viewer.spec: $(top_builddir)/config.status $(srcdir)/virt-viewer.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ -mingw32-virt-viewer.spec: $(top_builddir)/config.status $(srcdir)/mingw32-virt-viewer.spec.in - cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo @@ -352,12 +439,12 @@ -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -367,7 +454,11 @@ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ @@ -381,37 +472,6 @@ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ @@ -419,6 +479,10 @@ ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done +cscopelist-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -483,8 +547,32 @@ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) + +clean-cscope: + -rm -f cscope.files + +cscope.files: clean-cscope cscopelist-recursive cscopelist + +cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) @@ -520,13 +608,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -546,6 +631,9 @@ || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ @@ -555,36 +643,36 @@ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) + $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another @@ -595,8 +683,8 @@ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -606,7 +694,7 @@ *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod a+w $(distdir) + chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) @@ -616,6 +704,7 @@ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -639,13 +728,21 @@ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 - $(am__remove_distdir) + $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -676,10 +773,15 @@ installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -763,24 +865,42 @@ uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ - ctags-recursive install-am install-strip tags-recursive + cscopelist-recursive ctags-recursive install-am install-strip \ + tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am - + all all-am am--refresh check check-am clean clean-cscope \ + clean-generic clean-libtool cscope cscopelist \ + cscopelist-recursive ctags ctags-recursive dist dist-all \ + dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +dist-hook: gen-ChangeLog + +# Generate the ChangeLog file (with all entries since the switch to git) +# and insert it into the directory we're about to use to create a tarball. +.PHONY: gen-ChangeLog +gen-ChangeLog: + if test -d .git || test -d ../.git; then \ + $(top_srcdir)/build-aux/gitlog-to-changelog \ + > $(distdir)/cl-t; \ + rm -f $(distdir)/ChangeLog; \ + mv $(distdir)/cl-t $(distdir)/ChangeLog; \ + fi + +-include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/NEWS b/NEWS index 177f975..47e23f6 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,96 @@ Virt Viewer News ================ + +0.5.4: Sep 17, 2012 +------------------- + + - Fix host migration with Spice + - Fix misc memory leaks + - Fix build with newer glibc and -O0 + - Improve automatic fullscreen Spice configuration + - Avoid crash when quiting application + - Rebuild display men whenever a window is added/removed + - Number displays starting from 1 instead of 0 + - Add support for handling multiple monitors with Spice + - Menu display menu insensitive if no displays can be selected + - Use real binary name in remote-viewer help message + - Document -f=auto-conf in remote-viewer help + +0.5.3: May 14, 2012 +------------------- + + - Add support for raw IPv6 addresses + - Add a remote-viewer.desktop file and register spice:// handling + - Add a simple connection dialog to remote-viewer + - Add remote-viewer --fullscreen=auto-conf option, to update guest + monitors configuration to match client + - Spice controller support for disable-effects, color-depth and + usbredir + - Spice controller interaction fixes + - Windows version and nsis installer improvements + - Import newer translations from transifex + - Misc reference leak / crash bugs fixed + + +0.5.2: Mar 09, 2012 +------------------- + + - Require libvirt >= 0.9.7, spice-gtk >= 0.11, spice-protocol >= 0.10.1 + - Import newer translations from transifex + - remote-viewer learned Spice controller customizable key bindings, + smartcard property, and foreign menu + - Fix Spice crash on re-connection + - Fix connecting via ssh to a password-protected server + - Add a sendkey menu in fullscreen mode + - Add USB device selection in fullscreen mode + - Misc reference leak / crash bugs fixed + +0.5.1: Feb 17, 2012 +------------------- + + - Import newer translations from transifex + - Fix build system to ensure we don't loose GNU_RELRO + security feature + - Don't link virt-viewer binary against spice controller + - Add back compat for GObject 2.22 which lacks GBinding + +0.5.0: Feb 14, 2012 +------------------- + + - Add a remote-viewer binary for connecting to a SPICE/VNC + server based on URI, instead of querying libvirt + - Add ability to attach to a local VM via libvirt instead of + connecting over UNIX sockets + - Add support for SPICE controller + - Allow build without libvirt, for remote-viewer only + - Automatically resize guest desktop when resizing window with SPICE + - Add support for redirecting host USB devices to remote guest + - Grab focus when first showing the display + - Register as a spice-xpi-client-remote alternative + - Add pretty icon for virt-viewer app + - Set transient window hints on all popups + - Activate password 'Ok' button when pressing Enter + - Support secure connections with SPICE + - Don't hardcode 'localhost' for hostname + +0.4.2: Nov 9, 2011 +------------------- + + - Fix exports of signal functions for GTK UI builder on Windows + - Avoid crash if xmlParseURI fails + - Fix inverted test for SSH port that broke tunnelling + - Don't hardcode port numbers for SSH if not requested by user + - Fix deadlock in event handling + - Fix initial zoom level for all windows + - Fix window title to include domain name + - Fix hostname used when XML gives a wildcard IP address + - Fix window title when waiting for domain to appear + - Fix key shortcust for F9-F12 menus + - Always ask libvirt for its canonical URI + - Allow build without GTK-VNC (ie spice only) + - Require GTK-VNC >= 0.4.3 + - Require SPICE-GTK >= 0.6.0 + 0.4.1: Aug 4, 2011 ------------------- diff --git a/README b/README index fca04c1..568540e 100644 --- a/README +++ b/README @@ -14,15 +14,19 @@ ./configure --with-gtk=3.0 (or =2.0) -Virt Viewer uses the GTK-VNC widget to provide a display -of the VNC protocol. This is available from +Virt Viewer uses the GTK-VNC (>= 0.4.3) widget to provide a +display of the VNC protocol, which is available from http://gtk-vnc.sourceforge.net/ -Optionally Virt Viewer can also provide a SPICE client -using the SPICE-GTK widget (>= 0.6) available from +Virt Viewer uses the SPICE-GTK (>= 0.12.101) widget to provide a +display of the SPICE protocol, which is available from: http://spice-space.org/page/Spice-Gtk + +Use of either SPICE-GTK or GTK-VNC can be disabled at time +of configure, with --without-gtk-vnc or --without-spice-gtk +respectively. Virt Viewer uses libvirt to lookup information about the guest OS display. This is available from diff --git a/acinclude.m4 b/acinclude.m4 index 73b5a7b..0c308bc 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -19,7 +19,7 @@ warnCFLAGS= - try_compiler_flags="-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables" + try_compiler_flags="-fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables" case "$enable_compile_warnings" in no) @@ -43,6 +43,13 @@ AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) ;; esac + + AH_VERBATIM([FORTIFY_SOURCE], + [/* Enable compile-time and run-time bounds-checking, and some warnings. */ + #if defined __OPTIMIZE__ && __OPTIMIZE__ + # define _FORTIFY_SOURCE 2 + #endif + ]) compiler_flags= for option in $try_compiler_flags; do diff --git a/aclocal.m4 b/aclocal.m4 index bb090aa..d77d5ab 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# generated automatically by aclocal 1.12.2 -*- Autoconf -*- + +# Copyright (C) 1996-2012 Free Software Foundation, Inc. + # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,200 +17,443 @@ [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) - - -dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) -# serial 40 IT_PROG_INTLTOOL -AC_DEFUN([IT_PROG_INTLTOOL], [ -AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_NLS])dnl - -case "$am__api_version" in - 1.[01234]) - AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) - ;; - *) - ;; -esac - -if test -n "$1"; then - AC_MSG_CHECKING([for intltool >= $1]) - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - ] - AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) - test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 1995-2002 Free Software Foundation, Inc. +# Copyright (C) 2001-2003,2004 Red Hat, Inc. +# +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# Added better handling of ALL_LINGUAS from GNU gettext version +# written by Bruno Haible, Owen Taylor 5/30/3002 +# +# Modified to require ngettext +# Matthias Clasen 08/06/2004 +# +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) fi - -AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) -AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) -AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) -if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +AC_SUBST($1)dnl +]) + +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, + [AC_TRY_LINK([ +#include +], + [return !ngettext ("","", 1)], + gt_cv_func_ngettext_libc=yes, + gt_cv_func_ngettext_libc=no) + ]) + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return !dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)])]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv)], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + AC_CHECK_FUNCS(dcgettext) + MSGFMT_OPTS= + AC_MSG_CHECKING([if msgfmt accepts -c]) + GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + AC_SUBST(MSGFMT_OPTS) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share and + dnl and CATOBJEXT=.gmo in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac]) + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) + + if test "$gt_cv_have_gettext" = "yes" ; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is not GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.ac. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLLIBS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +glib_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN([GLIB_DEFINE_LOCALEDIR], +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` fi - - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' - -_IT_SUBST(INTLTOOL_DESKTOP_RULE) -_IT_SUBST(INTLTOOL_DIRECTORY_RULE) -_IT_SUBST(INTLTOOL_KEYS_RULE) -_IT_SUBST(INTLTOOL_PROP_RULE) -_IT_SUBST(INTLTOOL_OAF_RULE) -_IT_SUBST(INTLTOOL_PONG_RULE) -_IT_SUBST(INTLTOOL_SERVER_RULE) -_IT_SUBST(INTLTOOL_SHEET_RULE) -_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) -_IT_SUBST(INTLTOOL_UI_RULE) -_IT_SUBST(INTLTOOL_XAM_RULE) -_IT_SUBST(INTLTOOL_KBD_RULE) -_IT_SUBST(INTLTOOL_XML_RULE) -_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) -_IT_SUBST(INTLTOOL_CAVES_RULE) -_IT_SUBST(INTLTOOL_SCHEMAS_RULE) -_IT_SUBST(INTLTOOL_THEME_RULE) -_IT_SUBST(INTLTOOL_SERVICE_RULE) -_IT_SUBST(INTLTOOL_POLICY_RULE) - -# Check the gettext tools to make sure they are GNU -AC_PATH_PROG(XGETTEXT, xgettext) -AC_PATH_PROG(MSGMERGE, msgmerge) -AC_PATH_PROG(MSGFMT, msgfmt) -AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) -if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi -xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" -mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" -mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) -fi - -AC_PATH_PROG(INTLTOOL_PERL, perl) -if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found]) -fi -AC_MSG_CHECKING([for perl >= 5.8.1]) -$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 -if test $? -ne 0; then - AC_MSG_ERROR([perl 5.8.1 is required for intltool]) -else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" - AC_MSG_RESULT([$IT_PERL_VERSION]) -fi -if test "x$2" != "xno-xml"; then - AC_MSG_CHECKING([for XML::Parser]) - if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - AC_MSG_RESULT([ok]) - else - AC_MSG_ERROR([XML::Parser perl module is required for intltool]) - fi -fi - -# Substitute ALL_LINGUAS so we can use it in po/Makefile -AC_SUBST(ALL_LINGUAS) - -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) - -IT_PO_SUBDIR([po]) - +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) ]) - -# IT_PO_SUBDIR(DIRNAME) -# --------------------- -# All po subdirs have to be declared with this macro; the subdir "po" is -# declared by IT_PROG_INTLTOOL. -# -AC_DEFUN([IT_PO_SUBDIR], -[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl -dnl The following CONFIG_COMMANDS should be executed at the very end -dnl of config.status. -AC_CONFIG_COMMANDS_PRE([ - AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then - AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) - fi - rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" - >"$1/stamp-it.tmp" - [sed '/^#/d - s/^[[].*] *// - /^[ ]*$/d - '"s|^| $ac_top_srcdir/|" \ - "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" - ] - [sed '/^POTFILES =/,/[^\\]$/ { - /^POTFILES =/!d - r $1/POTFILES - } - ' "$1/Makefile.in" >"$1/Makefile"] - rm -f "$1/Makefile.tmp" - mv "$1/stamp-it.tmp" "$1/stamp-it" - ]) +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_ac,[],[ +AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl -]) - -# _IT_SUBST(VARIABLE) -# ------------------- -# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST -# -AC_DEFUN([_IT_SUBST], -[ -AC_SUBST([$1]) -m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) -] -) - -# deprecated macros -AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) -# A hint is needed for aclocal from Automake <= 1.9.4: -# AC_DEFUN([AC_PROG_INTLTOOL], ...) + +# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) +# +# Create a temporary file with TEST-FILE as its contents and pass the +# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with +# 0 and perform ACTION-IF-FAIL for any other exit status. +AC_DEFUN([GLIB_RUN_PROG], +[cat >conftest.foo <<_ACEOF +$2 +_ACEOF +if AC_RUN_LOG([$1 conftest.foo]); then + m4_ifval([$3], [$3], [:]) +m4_ifvaln([$4], [else $4])dnl +echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD +sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD +fi]) # nls.m4 serial 5 (gettext-0.18) @@ -404,11 +647,13 @@ fi[]dnl ])# PKG_CHECK_MODULES -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- @@ -416,10 +661,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' +[am__api_version='1.12' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.12.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -435,22 +680,24 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl +[AM_AUTOMAKE_VERSION([1.12.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and @@ -469,7 +716,7 @@ # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you +# harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, @@ -495,22 +742,21 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 9 +# Copyright (C) 1997-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl @@ -529,16 +775,15 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 10 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 17 + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing @@ -548,7 +793,7 @@ # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was @@ -561,12 +806,13 @@ AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], @@ -574,8 +820,9 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -614,16 +861,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -632,16 +879,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -689,7 +936,7 @@ # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl @@ -699,28 +946,34 @@ # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 5 +# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ @@ -739,7 +992,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -751,21 +1004,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` @@ -783,7 +1034,7 @@ # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will +# is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], @@ -791,8 +1042,7 @@ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. +# Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -805,14 +1055,13 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 16 +# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 19 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -858,31 +1107,41 @@ # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl +[AC_DIAGNOSE([obsolete], +[$0: two- and three-arguments forms are deprecated. For more info, see: +http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl @@ -893,28 +1152,35 @@ [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +dnl Support for Objective C++ was only introduced in Autoconf 2.65, +dnl but we still cater to Autoconf 2.62. +m4_ifdef([AC_PROG_OBJCXX], +[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], @@ -942,11 +1208,13 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 # AM_PROG_INSTALL_SH # ------------------ @@ -961,9 +1229,9 @@ install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -986,13 +1254,13 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 +# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 # AM_MAKE_INCLUDE() # ----------------- @@ -1011,7 +1279,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -1036,8 +1304,7 @@ rm -f confinc confmf ]) -# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1073,14 +1340,13 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 6 +# Copyright (C) 1997-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 7 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -1110,45 +1376,19 @@ am_missing_run="$MISSING --run " else am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) + AC_MSG_WARN(['missing' script is too old or missing]) fi ]) -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 +# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -1156,13 +1396,13 @@ [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) -# ------------------------------ +# -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- +# ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) @@ -1175,22 +1415,18 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 5 +# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -1201,32 +1437,40 @@ esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$[2]" = conftest.file ) then @@ -1236,70 +1480,123 @@ AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 1 +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT -# (`yes' being less verbose, `no' or empty being verbose). +# ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. +# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 # AM_PROG_INSTALL_STRIP # --------------------- -# One issue with vendor `install' (even GNU) is that you can't +# One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize +# always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 +# Copyright (C) 2006-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -1308,24 +1605,24 @@ AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- +# -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 +# Copyright (C) 2004-2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory @@ -1336,10 +1633,11 @@ # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) @@ -1347,7 +1645,7 @@ _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. +# Solaris sh will not grok spaces in the rhs of '-'. for _am_tool in $_am_tools do case $_am_tool in @@ -1408,6 +1706,7 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([m4/intltool.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) diff --git a/build-aux/compile b/build-aux/compile new file mode 100755 index 0000000..7b4a9a7 --- /dev/null +++ b/build-aux/compile @@ -0,0 +1,342 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-03-05.13; # UTC + +# Copyright (C) 1999-2012 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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, 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 . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 0000000..c0adba9 --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1530 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-06-10' + +# This file 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 . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/config.sub b/build-aux/config.sub new file mode 100755 index 0000000..6205f84 --- /dev/null +++ b/build-aux/config.sub @@ -0,0 +1,1782 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-04-18' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file 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 . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ + | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i386-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/depcomp b/build-aux/depcomp new file mode 100755 index 0000000..debb6ff --- /dev/null +++ b/build-aux/depcomp @@ -0,0 +1,707 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2012-03-27.16; # UTC + +# Copyright (C) 1999-2012 Free Software Foundation, Inc. + +# 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, 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 . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' "$nl" < "$tmpdepfile" | +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependent.h'. + # Do two passes, one to just change these to + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. + # However on + # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\': + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + # tcc 0.9.26 (FIXME still under development at the moment of writing) + # will emit a similar output, but also prepend the continuation lines + # with horizontal tabulation characters. + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form 'foo.o: dependent.h', + # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. + # Do two passes, one to just change these to + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ + < "$tmpdepfile" > "$depfile" + sed ' + s/[ '"$tab"'][ '"$tab"']*/ /g + s/^ *// + s/ *\\*$// + s/^[^:]*: *// + /^$/d + /:$/d + s/$/ :/ + ' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' "$nl" < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog new file mode 100755 index 0000000..4559704 --- /dev/null +++ b/build-aux/gitlog-to-changelog @@ -0,0 +1,191 @@ +eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' + & eval 'exec perl -wS "$0" $argv:q' + if 0; +# Convert git log output to ChangeLog format. + +my $VERSION = '2009-10-30 13:46'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +# Copyright (C) 2008-2011 Free Software Foundation, Inc. + +# 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 3 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 . + +# Written by Jim Meyering + +use strict; +use warnings; +use Getopt::Long; +use POSIX qw(strftime); + +(my $ME = $0) =~ s|.*/||; + +# use File::Coda; # http://meyering.net/code/Coda/ +END { + defined fileno STDOUT or return; + close STDOUT and return; + warn "$ME: failed to close standard output: $!\n"; + $? ||= 1; +} + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try `$ME --help' for more information.\n"; + } + else + { + print $STREAM < ChangeLog + $ME -- -n 5 foo > last-5-commits-to-branch-foo + +EOF + } + exit $exit_code; +} + +# If the string $S is a well-behaved file name, simply return it. +# If it contains white space, quotes, etc., quote it, and return the new string. +sub shell_quote($) +{ + my ($s) = @_; + if ($s =~ m![^\w+/.,-]!) + { + # Convert each single quote to '\'' + $s =~ s/\'/\'\\\'\'/g; + # Then single quote the string. + $s = "'$s'"; + } + return $s; +} + +sub quoted_cmd(@) +{ + return join (' ', map {shell_quote $_} @_); +} + +{ + my $since_date = '1970-01-01 UTC'; + my $format_string = '%s%n%b%n'; + GetOptions + ( + help => sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + 'since=s' => \$since_date, + 'format=s' => \$format_string, + ) or usage 1; + + my @cmd = (qw (git log --log-size), "--since=$since_date", + '--pretty=format:%ct %an <%ae>%n%n'.$format_string, @ARGV); + open PIPE, '-|', @cmd + or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n" + . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); + + my $prev_date_line = ''; + while (1) + { + defined (my $in = ) + or last; + $in =~ /^log size (\d+)$/ + or die "$ME:$.: Invalid line (expected log size):\n$in"; + my $log_nbytes = $1; + + my $log; + my $n_read = read PIPE, $log, $log_nbytes; + $n_read == $log_nbytes + or die "$ME:$.: unexpected EOF\n"; + + my @line = split "\n", $log; + my $author_line = shift @line; + defined $author_line + or die "$ME:$.: unexpected EOF\n"; + $author_line =~ /^(\d+) (.*>)$/ + or die "$ME:$.: Invalid line " + . "(expected date/author/email):\n$author_line\n"; + + my $date_line = sprintf "%s $2\n", strftime ("%F", localtime ($1)); + # If this line would be the same as the previous date/name/email + # line, then arrange not to print it. + if ($date_line ne $prev_date_line) + { + $prev_date_line eq '' + or print "\n"; + print $date_line; + } + $prev_date_line = $date_line; + + # Omit "Signed-off-by..." lines. + @line = grep !/^Signed-off-by: .*>$/, @line; + + # If there were any lines + if (@line == 0) + { + warn "$ME: warning: empty commit message:\n $date_line\n"; + } + else + { + # Remove leading and trailing blank lines. + while ($line[0] =~ /^\s*$/) { shift @line; } + while ($line[$#line] =~ /^\s*$/) { pop @line; } + + # Prefix each non-empty line with a TAB. + @line = map { length $_ ? "\t$_" : '' } @line; + + print "\n", join ("\n", @line), "\n"; + } + + defined ($in = ) + or last; + $in ne "\n" + and die "$ME:$.: unexpected line:\n$in"; + } + + close PIPE + or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; + # FIXME-someday: include $PROCESS_STATUS in the diagnostic +} + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "my $VERSION = '" +# time-stamp-format: "%:y-%02m-%02d %02H:%02M" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "'; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh new file mode 100755 index 0000000..377bb86 --- /dev/null +++ b/build-aux/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-11-20.07; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100644 index 0000000..63ae69d --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,9655 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.2 +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 0000000..9a55648 --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,330 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2012-01-06.18; # UTC + +# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# 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, 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 . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, 'missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file 'aclocal.m4' + autoconf touch file 'configure' + autoheader touch file 'config.h.in' + autom4te touch the output file, or create a stub one + automake touch all 'Makefile.in' files + bison create 'y.tab.[ch]', if possible, from existing .[ch] + flex create 'lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create 'lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create 'y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running '$TOOL --version' or '$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified 'acinclude.m4' or '${configure_ac}'. You might want + to install the Automake and Perl packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified '${configure_ac}'. You might want to install the + Autoconf and GNU m4 packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified 'acconfig.h' or '${configure_ac}'. You might want + to install the Autoconf and GNU m4 packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. + You might want to install the Automake and Perl packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: '$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get '$1' as part of Autoconf from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: '$1' $msg. You should only need it if + you modified a '.y' file. You may need the Bison package + in order for those modifications to take effect. You can get + Bison from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified a '.l' file. You may need the Flex package + in order for those modifications to take effect. You can get + Flex from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + Help2man package in order for those modifications to take + effect. You can get Help2man from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified a '.texi' or '.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy 'make' (AIX, + DU, IRIX). You might want to install the Texinfo package or + the GNU make package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: '$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the 'README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing '$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/useless-if-before-free b/build-aux/useless-if-before-free new file mode 100755 index 0000000..b8f5a26 --- /dev/null +++ b/build-aux/useless-if-before-free @@ -0,0 +1,207 @@ +eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}' + & eval 'exec perl -wST "$0" $argv:q' + if 0; +# Detect instances of "if (p) free (p);". +# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces. + +my $VERSION = '2011-04-20 13:43'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +# Copyright (C) 2008-2011 Free Software Foundation, Inc. + +# 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 3 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 . + +# Written by Jim Meyering + +use strict; +use warnings; +use Getopt::Long; + +(my $ME = $0) =~ s|.*/||; + +# use File::Coda; # http://meyering.net/code/Coda/ +END { + defined fileno STDOUT or return; + close STDOUT and return; + warn "$ME: failed to close standard output: $!\n"; + $? ||= 1; +} + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try `$ME --help' for more information.\n"; + } + else + { + print $STREAM < sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + list => \$list, + 'name=s@' => \@name, + ) or usage 1; + + # Make sure we have the right number of non-option arguments. + # Always tell the user why we fail. + @ARGV < 1 + and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR; + + my $or = join '|', @name; + my $regexp = qr/(?:$or)/; + + # Set the input record separator. + # Note: this makes it impractical to print line numbers. + $/ = '"'; + + my $found_match = 0; + FILE: + foreach my $file (@ARGV) + { + open FH, '<', $file + or (warn "$ME: can't open `$file' for reading: $!\n"), + $err = EXIT_ERROR, next; + while (defined (my $line = )) + { + while ($line =~ + /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\) + # 1 2 3 + (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;| + \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg) + { + my $all = $1; + my ($lhs, $rhs) = ($2, $3); + my ($free_opnd, $braced_free_opnd) = ($4, $5); + my $non_NULL; + if (!defined $rhs) { $non_NULL = $lhs } + elsif (is_NULL $rhs) { $non_NULL = $lhs } + elsif (is_NULL $lhs) { $non_NULL = $rhs } + else { next } + + # Compare the non-NULL part of the "if" expression and the + # free'd expression, without regard to white space. + $non_NULL =~ tr/ \t//d; + my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd; + $e2 =~ tr/ \t//d; + if ($non_NULL eq $e2) + { + $found_match = 1; + $list + and (print "$file\0"), next FILE; + print "$file: $all\n"; + } + } + } + } + continue + { + close FH; + } + + $found_match && $err == EXIT_NO_MATCH + and $err = EXIT_MATCH; + + exit $err; +} + +my $foo = <<'EOF'; +# The above is to *find* them. +# This adjusts them, removing the unnecessary "if (p)" part. + +# FIXME: do something like this as an option (doesn't do braces): +free=xfree +git grep -l -z "$free *(" \ + | xargs -0 useless-if-before-free -l --name="$free" \ + | xargs -0 perl -0x3b -pi -e \ + 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s' + +# Use the following to remove redundant uses of kfree inside braces. +# Note that -0777 puts perl in slurp-whole-file mode; +# but we have plenty of memory, these days... +free=kfree +git grep -l -z "$free *(" \ + | xargs -0 useless-if-before-free -l --name="$free" \ + | xargs -0 perl -0777 -pi -e \ + 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms' + +Be careful that the result of the above transformation is valid. +If the matched string is followed by "else", then obviously, it won't be. + +When modifying files, refuse to process anything other than a regular file. +EOF + +## Local Variables: +## mode: perl +## indent-tabs-mode: nil +## eval: (add-hook 'write-file-hooks 'time-stamp) +## time-stamp-start: "my $VERSION = '" +## time-stamp-format: "%:y-%02m-%02d %02H:%02M" +## time-stamp-time-zone: "UTC" +## time-stamp-end: "'; # UTC" +## End: diff --git a/build-aux/vc-list-files b/build-aux/vc-list-files new file mode 100755 index 0000000..405e458 --- /dev/null +++ b/build-aux/vc-list-files @@ -0,0 +1,113 @@ +#!/bin/sh +# List version-controlled file names. + +# Print a version string. +scriptversion=2011-05-16.22; # UTC + +# Copyright (C) 2006-2011 Free Software Foundation, Inc. + +# 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 3 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 . + + +# List the specified version-controlled files. +# With no argument, list them all. With a single DIRECTORY argument, +# list the version-controlled files in that directory. + +# If there's an argument, it must be a single, "."-relative directory name. +# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/ + +postprocess= +case $1 in + --help) cat <. +EOF + exit ;; + + --version) + year=`echo "$scriptversion" | sed 's/[^0-9].*//'` + cat < +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. +EOF + exit ;; + + -C) + test "$2" = . || postprocess="| sed 's|^|$2/|'" + cd "$2" || exit 1 + shift; shift ;; +esac + +test $# = 0 && set . + +for dir +do + if test -d .git; then + test "x$dir" = x. \ + && dir= sed_esc= \ + || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } + # Ignore git symlinks - either they point into the tree, in which case + # we don't need to visit the target twice, or they point somewhere + # else (often into a submodule), in which case the content does not + # belong to this package. + eval exec git ls-tree -r 'HEAD:"$dir"' \ + \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess + elif test -d .hg; then + eval exec hg locate '"$dir/*"' $postprocess + elif test -d .bzr; then + test "$postprocess" = '' && postprocess="| sed 's|^\./||'" + eval exec bzr ls -R --versioned '"$dir"' $postprocess + elif test -d CVS; then + test "$postprocess" = '' && postprocess="| sed 's|^\./||'" + if test -x build-aux/cvsu; then + eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess + elif (cvsu --help) >/dev/null 2>&1; then + eval cvsu --find --types=AFGM '"$dir"' $postprocess + else + eval awk -F/ \''{ \ + if (!$1 && $3 !~ /^-/) { \ + f=FILENAME; \ + if (f ~ /CVS\/Entries$/) \ + f = substr(f, 1, length(f)-11); \ + print f $2; \ + }}'\'' \ + `find "$dir" -name Entries -print` /dev/null' $postprocess + fi + elif test -d .svn; then + eval exec svn list -R '"$dir"' $postprocess + else + echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 + exit 1 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/cfg.mk b/cfg.mk new file mode 100644 index 0000000..3f9b47b --- /dev/null +++ b/cfg.mk @@ -0,0 +1,137 @@ +# Customize Makefile.maint. -*- makefile -*- +# Copyright (C) 2008-2011 Red Hat, Inc. +# Copyright (C) 2003-2008 Free Software Foundation, Inc. + +# 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 3 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 . + +# Tests not to run as part of "make distcheck". +local-checks-to-skip = \ + changelog-check \ + check-AUTHORS \ + makefile-check \ + makefile_path_separator_check \ + patch-check \ + sc_GPL_version \ + sc_always_defined_macros \ + sc_cast_of_alloca_return_value \ + sc_cross_check_PATH_usage_in_tests \ + sc_dd_max_sym_length \ + sc_error_exit_success \ + sc_file_system \ + sc_immutable_NEWS \ + sc_makefile_path_separator_check \ + sc_obsolete_symbols \ + sc_prohibit_always_true_header_tests \ + sc_prohibit_S_IS_definition \ + sc_prohibit_atoi_atof \ + sc_prohibit_hash_without_use \ + sc_prohibit_jm_in_m4 \ + sc_prohibit_quote_without_use \ + sc_prohibit_quotearg_without_use \ + sc_prohibit_stat_st_blocks \ + sc_root_tests \ + sc_space_tab \ + sc_sun_os_names \ + sc_system_h_headers \ + sc_texinfo_acronym \ + sc_tight_scope \ + sc_two_space_separator_in_usage \ + sc_error_message_uppercase \ + sc_program_name \ + sc_require_test_exit_idiom \ + sc_makefile_check \ + sc_useless_cpp_parens + +# Files that should never cause syntax check failures. +VC_LIST_ALWAYS_EXCLUDE_REGEX = \ + (^HACKING|\.po|maint.mk)$$ + +# Functions like free() that are no-ops on NULL arguments. +useless_free_options = \ + --name=g_free \ + --name=xmlBufferFree \ + --name=xmlFree \ + --name=xmlFreeDoc \ + --name=xmlXPathFreeContext \ + --name=xmlFreeParserContext \ + --name=xmlXPathFreeObject + +# Ensure that no C source file, docs, or rng schema uses TABs for +# indentation. Also match *.h.in files, to get libvirt.h.in. Exclude +# files in gnulib, since they're imported. +space_indent_files=(\.(rng|s?[ch](\.in)?|html.in|py)|(daemon|tools)/.*\.in) +sc_TAB_in_indentation: + @prohibit='^ * ' \ + in_vc_files='$(space_indent_files)$$' \ + halt='indent with space, not TAB, in C, sh, html, py, and RNG schemas' \ + $(_sc_search_regexp) + +# G_GNUC_UNUSED should only be applied in implementations, not +# header declarations +sc_avoid_attribute_unused_in_header: + @prohibit='^[^#]*G_GNUC_UNUSED([^:]|$$)' \ + in_vc_files='\.h$$' \ + halt='use G_GNUC_UNUSED in .c rather than .h files' \ + $(_sc_search_regexp) + +# Enforce recommended preprocessor indentation style. +sc_preprocessor_indentation: + @if cppi --version >/dev/null 2>&1; then \ + $(VC_LIST_EXCEPT) | grep '\.[ch]$$' | xargs cppi -a -c \ + || { echo '$(ME): incorrect preprocessor indentation' 1>&2; \ + exit 1; }; \ + else \ + echo '$(ME): skipping test $@: cppi not installed' 1>&2; \ + fi + +sc_copyright_format: + @require='Copyright .*Red 'Hat', Inc\.' \ + containing='Copyright .*Red 'Hat \ + halt='Red Hat copyright is missing Inc.' \ + $(_sc_search_regexp) + @prohibit='Copyright [^(].*Red 'Hat \ + halt='consistently use (C) in Red Hat copyright' \ + $(_sc_search_regexp) + @prohibit='\' \ + halt='spell Red Hat as two words' \ + $(_sc_search_regexp) + +# We don't use this feature of maint.mk. +prev_version_file = /dev/null + +# Give credit where due: +# Ensure that each commit author email address (possibly mapped via +# git log's .mailmap) appears in our AUTHORS file. +sc_check_author_list: + @fail=0; \ + for i in $$(git log --pretty=format:%aE%n|sort -u|grep -v '^$$'); do \ + sanitized=$$(echo "$$i"|LC_ALL=C sed 's/\([^a-zA-Z0-9_@-]\)/\\\1/g'); \ + grep -iq "<$$sanitized>" $(srcdir)/AUTHORS \ + || { printf '%s\n' "$$i" >&2; fail=1; }; \ + done; \ + test $$fail = 1 \ + && echo '$(ME): committer(s) not listed in AUTHORS' >&2; \ + test $$fail = 0 + + +exclude_file_name_regexp--sc_preprocessor_indentation = ^*/*.[ch] +exclude_file_name_regexp--sc_prohibit_strcmp = ^*/*.[ch] +exclude_file_name_regexp--sc_require_config_h = ^plugin/|src/gbinding\.c|src/windows-cmdline-wrapper.c +exclude_file_name_regexp--sc_require_config_h_first = ^plugin/|src/gbinding\.c|src/windows-cmdline-wrapper.c + +exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^icons/ +exclude_file_name_regexp--sc_trailing_blank = ^icons/ + +exclude_file_name_regexp--sc_bindtextdomain = src/windows-cmdline-wrapper.c +exclude_file_name_regexp--sc_prohibit_magic_number_exit = src/windows-cmdline-wrapper.c diff --git a/compile b/compile deleted file mode 100755 index c0096a7..0000000 --- a/compile +++ /dev/null @@ -1,143 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. - -scriptversion=2009-10-06.20; # UTC - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. -# Written by Tom Tromey . -# -# 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, 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 . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; -esac - -ofile= -cfile= -eat= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/config.guess b/config.guess deleted file mode 100755 index dc84c68..0000000 --- a/config.guess +++ /dev/null @@ -1,1501 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-11-20' - -# This file 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.h.in b/config.h.in index 9d0ff94..cd9e4d7 100644 --- a/config.h.in +++ b/config.h.in @@ -1,7 +1,22 @@ /* config.h.in. Generated from configure.ac by autoheader. */ + +/* always defined to indicate that i18n is enabled */ +#undef ENABLE_NLS + +/* Enable compile-time and run-time bounds-checking, and some warnings. */ + #if defined __OPTIMIZE__ && __OPTIMIZE__ + # define _FORTIFY_SOURCE 2 + #endif + /* GETTEXT package name */ #undef GETTEXT_PACKAGE + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET + +/* Define to 1 if you have the `dcgettext' function. */ +#undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H @@ -9,8 +24,23 @@ /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Have gtk-vnc? */ +#undef HAVE_GTK_VNC + /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H + +/* Define if your file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Have libvirt? */ +#undef HAVE_LIBVIRT + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H diff --git a/config.sub b/config.sub deleted file mode 100755 index 2a55a50..0000000 --- a/config.sub +++ /dev/null @@ -1,1705 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-11-20' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze) - basic_machine=microblaze-xilinx - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/configure b/configure index 43f9b73..0113444 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for virt-viewer 0.4.1. +# Generated by GNU Autoconf 2.68 for virt-viewer 0.5.4. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -567,8 +567,8 @@ # Identity of this package. PACKAGE_NAME='virt-viewer' PACKAGE_TARNAME='virt-viewer' -PACKAGE_VERSION='0.4.1' -PACKAGE_STRING='virt-viewer 0.4.1' +PACKAGE_VERSION='0.5.4' +PACKAGE_STRING='virt-viewer 0.5.4' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -624,8 +624,14 @@ NSPR_CFLAGS HAVE_SPICE_GTK_FALSE HAVE_SPICE_GTK_TRUE +SPICE_PROTOCOL_LIBS +SPICE_PROTOCOL_CFLAGS +SPICE_CONTROLLER_LIBS +SPICE_CONTROLLER_CFLAGS SPICE_GTK_LIBS SPICE_GTK_CFLAGS +HAVE_GTK_VNC_FALSE +HAVE_GTK_VNC_TRUE GTK_VNC_LIBS GTK_VNC_CFLAGS GTK_LIBS @@ -637,22 +643,21 @@ GTK_VNC_API_VERSION GTK_REQUIRED GTK_API_VERSION +HAVE_LIBVIRT_FALSE +HAVE_LIBVIRT_TRUE LIBVIRT_LIBS LIBVIRT_CFLAGS LIBXML2_LIBS LIBXML2_CFLAGS GLIB2_LIBS GLIB2_CFLAGS +GLIB_MKENUMS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG -DATADIRNAME ALL_LINGUAS INTLTOOL_PERL -GMSGFMT -MSGFMT MSGMERGE -XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE @@ -672,12 +677,35 @@ INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE +MKINSTALLDIRS +POSUB +POFILES +PO_IN_DATADIR_FALSE +PO_IN_DATADIR_TRUE +INTLLIBS +INSTOBJEXT +GMOFILES +DATADIRNAME +CATOBJEXT +CATALOGS +XGETTEXT +GMSGFMT +MSGFMT_OPTS +MSGFMT USE_NLS GETTEXT_PACKAGE WARN_CFLAGS +WINDRES +ICOTOOL CPP OTOOL64 OTOOL @@ -703,6 +731,7 @@ am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -716,8 +745,12 @@ LDFLAGS CFLAGS CC +OS_WIN32_FALSE +OS_WIN32_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V host_os host_vendor host_cpu @@ -802,7 +835,9 @@ enable_compile_warnings enable_iso_c enable_nls +with_libvirt with_gtk +with_gtk_vnc with_spice_gtk enable_plugin ' @@ -830,6 +865,10 @@ GTK_VNC_LIBS SPICE_GTK_CFLAGS SPICE_GTK_LIBS +SPICE_CONTROLLER_CFLAGS +SPICE_CONTROLLER_LIBS +SPICE_PROTOCOL_CFLAGS +SPICE_PROTOCOL_LIBS NSPR_CFLAGS NSPR_LIBS FIREFOX_PLUGIN_CFLAGS @@ -1378,7 +1417,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures virt-viewer 0.4.1 to adapt to many kinds of systems. +\`configure' configures virt-viewer 0.5.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1448,7 +1487,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of virt-viewer 0.4.1:";; + short | recursive ) echo "Configuration of virt-viewer 0.5.4:";; esac cat <<\_ACEOF @@ -1456,10 +1495,12 @@ --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0') - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] @@ -1474,12 +1515,14 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). + --without-libvirt Ignore presence of libvirt and disable it --with-gtk=2.0|3.0 which gtk+ version to compile against (default: 2.0) + --without-gtk-vnc Ignore presence of gtk-vnc and disable it --without-spice-gtk Ignore presence of spice-gtk and disable it Some influential environment variables: @@ -1517,6 +1560,14 @@ C compiler flags for SPICE_GTK, overriding pkg-config SPICE_GTK_LIBS linker flags for SPICE_GTK, overriding pkg-config + SPICE_CONTROLLER_CFLAGS + C compiler flags for SPICE_CONTROLLER, overriding pkg-config + SPICE_CONTROLLER_LIBS + linker flags for SPICE_CONTROLLER, overriding pkg-config + SPICE_PROTOCOL_CFLAGS + C compiler flags for SPICE_PROTOCOL, overriding pkg-config + SPICE_PROTOCOL_LIBS + linker flags for SPICE_PROTOCOL, overriding pkg-config NSPR_CFLAGS C compiler flags for NSPR, overriding pkg-config NSPR_LIBS linker flags for NSPR, overriding pkg-config FIREFOX_PLUGIN_CFLAGS @@ -1594,7 +1645,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -virt-viewer configure 0.4.1 +virt-viewer configure 0.5.4 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1959,7 +2010,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by virt-viewer $as_me 0.4.1, which was +It was created by virt-viewer $as_me 0.5.4, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2308,12 +2359,9 @@ -ac_config_headers="$ac_config_headers config.h" - -am__api_version='1.11' ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do +for ac_dir in build-aux "$srcdir"/build-aux; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" @@ -2329,7 +2377,7 @@ fi done if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2340,6 +2388,10 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + +ac_config_headers="$ac_config_headers config.h" + +am__api_version='1.12' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2436,9 +2488,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2449,32 +2498,40 @@ esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac -# Do `set' in a subshell so we don't clobber the current shell's +# Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken -alias in your environment" "$LINENO" 5 - fi - + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done test "$2" = conftest.file ) then @@ -2486,6 +2543,16 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -2512,8 +2579,8 @@ am_missing_run="$MISSING --run " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then @@ -2525,10 +2592,10 @@ esac fi -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. +# will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. @@ -2667,12 +2734,6 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -2777,7 +2838,7 @@ # Define the identity of the package. PACKAGE='virt-viewer' - VERSION='0.4.1' + VERSION='0.5.4' cat >>confdefs.h <<_ACEOF @@ -2805,13 +2866,19 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' @@ -2896,21 +2963,71 @@ enableval=$enable_silent_rules; fi -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=0;; +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi AM_BACKSLASH='\' -GLIB2_REQUIRED=2.12.0 +GLIB2_REQUIRED=2.22.0 LIBXML2_REQUIRED="2.6.0" -LIBVIRT_REQUIRED="0.6.0" -GTK2_REQUIRED="2.12.0" +LIBVIRT_REQUIRED="0.9.7" +GTK2_REQUIRED="2.18.0" GTK3_REQUIRED="3.0" -GTK_VNC_REQUIRED="0.3.8" -SPICE_GTK_REQUIRED="0.6" +GTK_VNC1_REQUIRED="0.3.8" +GTK_VNC2_REQUIRED="0.4.0" +SPICE_GTK_REQUIRED="0.12.101" +SPICE_PROTOCOL_REQUIRED="0.10.1" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native Win32" >&5 +$as_echo_n "checking for native Win32... " >&6; } +case "$host_os" in + *mingw*|*cygwin*) + os_win32=yes + ;; + *) + os_win32=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $os_win32" >&5 +$as_echo "$os_win32" >&6; } + if test "$os_win32" = "yes"; then + OS_WIN32_TRUE= + OS_WIN32_FALSE='#' +else + OS_WIN32_TRUE='#' + OS_WIN32_FALSE= +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3720,7 +3837,7 @@ _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. +# Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include @@ -3753,6 +3870,7 @@ if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -3775,8 +3893,9 @@ # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -3810,16 +3929,16 @@ : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - # We check with `-c' and `-o' for the sake of the "dashmstdout" + # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in @@ -3828,16 +3947,16 @@ test "$am__universal" = false || continue ;; nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} @@ -4025,8 +4144,8 @@ -macro_version='2.4' -macro_revision='1.3293' +macro_version='2.4.2' +macro_revision='1.3337' @@ -4800,6 +4919,11 @@ lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -4839,7 +4963,7 @@ # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -5268,7 +5392,7 @@ lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -5909,13 +6033,13 @@ if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -6062,6 +6186,7 @@ # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -6450,7 +6575,7 @@ CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -6461,7 +6586,20 @@ case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -7101,7 +7239,13 @@ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -7112,6 +7256,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : @@ -7144,6 +7289,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : @@ -7165,7 +7311,9 @@ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 @@ -7570,7 +7718,22 @@ # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else pic_mode=default fi @@ -7622,6 +7785,10 @@ # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + @@ -8107,7 +8274,9 @@ case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' - lt_prog_compiler_pic='-Xcompiler -fPIC' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi ;; esac else @@ -8198,17 +8367,32 @@ ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' ;; esac ;; @@ -8571,7 +8755,6 @@ hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported @@ -8821,8 +9004,7 @@ xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ @@ -9201,6 +9383,7 @@ # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' @@ -9246,6 +9429,7 @@ hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else whole_archive_flag_spec='' fi @@ -9274,10 +9458,6 @@ hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -9290,7 +9470,7 @@ ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -9329,7 +9509,6 @@ fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes @@ -9801,11 +9980,6 @@ fi ;; esac - - - - - @@ -10047,7 +10221,7 @@ case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -10056,7 +10230,7 @@ ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -10121,7 +10295,7 @@ ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -10260,16 +10434,12 @@ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no ;; freebsd* | dragonfly*) @@ -10279,7 +10449,7 @@ objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -10297,7 +10467,7 @@ esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -10317,17 +10487,18 @@ ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -10388,7 +10559,7 @@ ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -10404,7 +10575,7 @@ nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -10441,9 +10612,9 @@ dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -10529,7 +10700,7 @@ ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -10598,7 +10769,7 @@ ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -10623,7 +10794,7 @@ ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -10647,7 +10818,7 @@ sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -10678,7 +10849,7 @@ tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -10688,7 +10859,7 @@ ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -11470,6 +11641,8 @@ + + ac_config_commands="$ac_config_commands libtool" @@ -11479,10 +11652,164 @@ +for ac_prog in icotool +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ICOTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ICOTOOL"; then + ac_cv_prog_ICOTOOL="$ICOTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ICOTOOL="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ICOTOOL=$ac_cv_prog_ICOTOOL +if test -n "$ICOTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ICOTOOL" >&5 +$as_echo "$ICOTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ICOTOOL" && break +done +test -n "$ICOTOOL" || ICOTOOL="icotool" + + +if test "x$os_win32" = "xyes"; then : + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. +set dummy ${ac_tool_prefix}windres; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_WINDRES+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$WINDRES"; then + ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_WINDRES="${ac_tool_prefix}windres" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +WINDRES=$ac_cv_prog_WINDRES +if test -n "$WINDRES"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 +$as_echo "$WINDRES" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_WINDRES"; then + ac_ct_WINDRES=$WINDRES + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_WINDRES"; then + ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_WINDRES="windres" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES +if test -n "$ac_ct_WINDRES"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 +$as_echo "$ac_ct_WINDRES" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_WINDRES" = x; then + WINDRES="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + WINDRES=$ac_ct_WINDRES + fi +else + WINDRES="$ac_cv_prog_WINDRES" +fi + + + if test -z "$WINDRES" ; then + as_fn_error $? "\"windres is required to compile virt-viewer on this platform\"" "$LINENO" 5 + fi + +fi + $as_echo "#define _GNU_SOURCE /**/" >>confdefs.h + + +# Autoconf 2.61a.99 and earlier don't support linking a file only +# in VPATH builds. But since GNUmakefile is for maintainer use +# only, it does not matter if we skip the link with older autoconf. +# Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH +# builds, so use a shell variable to bypass this. +GNUmakefile=GNUmakefile +ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" @@ -11497,7 +11824,7 @@ warnCFLAGS= - try_compiler_flags="-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables" + try_compiler_flags="-fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables" case "$enable_compile_warnings" in no) @@ -11522,6 +11849,8 @@ ;; esac + + compiler_flags= for option in $try_compiler_flags; do SAVE_CFLAGS="$CFLAGS" @@ -11596,6 +11925,714 @@ + for ac_header in locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LOCALE_H 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_locale_h = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if ${am_cv_val_LC_MESSAGES+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_val_LC_MESSAGES=yes +else + am_cv_val_LC_MESSAGES=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } + if test $am_cv_val_LC_MESSAGES = yes; then + +$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h + + fi + fi + USE_NLS=yes + + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes; then : + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if ${gt_cv_func_ngettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !ngettext ("","", 1) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_ngettext_libc=yes +else + gt_cv_func_ngettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if ${gt_cv_func_dgettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ +return !dgettext ("","") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_dgettext_libc=yes +else + gt_cv_func_dgettext_libc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done + + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if ${ac_cv_lib_intl_bindtextdomain+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bindtextdomain (); +int +main () +{ +return bindtextdomain (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_bindtextdomain=yes +else + ac_cv_lib_intl_bindtextdomain=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 +$as_echo_n "checking for dgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dgettext (); +int +main () +{ +return dgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dgettext=yes +else + ac_cv_lib_intl_dgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_dgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes +fi + +fi + +fi + + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_ngettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_ngettext=yes +else + ac_cv_lib_intl_ngettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_dcgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dcgettext (); +int +main () +{ +return dcgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_dcgettext=yes +else + ac_cv_lib_intl_dcgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv +else + : +fi + +else + : +fi + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + for ac_func in bind_textdomain_codeset +do : + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_BIND_TEXTDOMAIN_CODESET 1 +_ACEOF + +fi +done + + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + for ac_func in dcgettext +do : + ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" +if test "x$ac_cv_func_dcgettext" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + +fi +done + + MSGFMT_OPTS= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } + cat >conftest.foo <<_ACEOF + +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" + +_ACEOF +if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 + ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +echo "$as_me: failed input was:" >&5 +sed 's/^/| /' conftest.foo >&5 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + case $host in + *-*-solaris*) + ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : + CATOBJEXT=.gmo + DATADIRNAME=share +else + CATOBJEXT=.mo + DATADIRNAME=lib +fi + + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + +fi + + + + if test "$gt_cv_have_gettext" = "yes" ; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + ac_config_commands="$ac_config_commands default-1" + + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + + + + + + + + + + + + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. @@ -11619,14 +12656,12 @@ ;; esac +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "0.35.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5 $as_echo_n "checking for intltool >= 0.35.0... " >&6; } - - INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` - INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || @@ -11757,25 +12792,48 @@ as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi - INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' - INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' -INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' - INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' - INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi + + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' + + + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' @@ -12094,7 +13152,7 @@ if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else - IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi @@ -12148,7 +13206,6 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi - @@ -12274,6 +13331,9 @@ PKG_CONFIG="" fi fi +GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` + + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB2" >&5 @@ -12283,12 +13343,12 @@ pkg_cv_GLIB2_CFLAGS="$GLIB2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0 >= \$GLIB2_REQUIRED\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>/dev/null` + pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12299,12 +13359,12 @@ pkg_cv_GLIB2_LIBS="$GLIB2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0 >= \$GLIB2_REQUIRED\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>/dev/null` + pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>/dev/null` else pkg_failed=yes fi @@ -12324,14 +13384,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>&1` + GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>&1` else - GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>&1` + GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIB2_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (gmodule-export-2.0 >= $GLIB2_REQUIRED) were not met: + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0) were not met: $GLIB2_PKG_ERRORS @@ -12457,6 +13517,15 @@ fi + +# Check whether --with-libvirt was given. +if test "${with_libvirt+set}" = set; then : + withval=$with_libvirt; +fi + + +if test "x$with_libvirt" != "xno"; then : + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBVIRT" >&5 $as_echo_n "checking for LIBVIRT... " >&6; } @@ -12465,12 +13534,12 @@ pkg_cv_LIBVIRT_CFLAGS="$LIBVIRT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt >= \$LIBVIRT_REQUIRED\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libvirt >= $LIBVIRT_REQUIRED") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libvirt") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBVIRT_CFLAGS=`$PKG_CONFIG --cflags "libvirt >= $LIBVIRT_REQUIRED" 2>/dev/null` + pkg_cv_LIBVIRT_CFLAGS=`$PKG_CONFIG --cflags "libvirt" 2>/dev/null` else pkg_failed=yes fi @@ -12481,12 +13550,12 @@ pkg_cv_LIBVIRT_LIBS="$LIBVIRT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt >= \$LIBVIRT_REQUIRED\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libvirt >= $LIBVIRT_REQUIRED") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libvirt") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_LIBVIRT_LIBS=`$PKG_CONFIG --libs "libvirt >= $LIBVIRT_REQUIRED" 2>/dev/null` + pkg_cv_LIBVIRT_LIBS=`$PKG_CONFIG --libs "libvirt" 2>/dev/null` else pkg_failed=yes fi @@ -12506,47 +13575,48 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libvirt >= $LIBVIRT_REQUIRED" 2>&1` + LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libvirt" 2>&1` else - LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libvirt >= $LIBVIRT_REQUIRED" 2>&1` + LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libvirt" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBVIRT_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (libvirt >= $LIBVIRT_REQUIRED) were not met: - -$LIBVIRT_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables LIBVIRT_CFLAGS -and LIBVIRT_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - + have_libvirt=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables LIBVIRT_CFLAGS -and LIBVIRT_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - + have_libvirt=no else LIBVIRT_CFLAGS=$pkg_cv_LIBVIRT_CFLAGS LIBVIRT_LIBS=$pkg_cv_LIBVIRT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - -fi + have_libvirt=yes +fi +else + have_libvirt=no +fi + +if test "x$have_libvirt" = "xyes"; then : + +$as_echo "#define HAVE_LIBVIRT 1" >>confdefs.h + +else + if test "x$with_libvirt" = "xyes"; then : + as_fn_error $? "libvirt requested but not found" "$LINENO" 5 + +fi + +fi + if test "x$have_libvirt" = "xyes"; then + HAVE_LIBVIRT_TRUE= + HAVE_LIBVIRT_FALSE='#' +else + HAVE_LIBVIRT_TRUE='#' + HAVE_LIBVIRT_FALSE= +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gtk+ version to compile against" >&5 $as_echo_n "checking which gtk+ version to compile against... " >&6; } @@ -12567,11 +13637,13 @@ case "$with_gtk" in 2.0) GTK_API_VERSION=2.0 GTK_REQUIRED=$GTK2_REQUIRED + GTK_VNC_REQUIRED=$GTK_VNC1_REQUIRED GTK_VNC_API_VERSION=1.0 SPICE_GTK_API_VERSION=2.0 ;; 3.0) GTK_API_VERSION=3.0 GTK_REQUIRED=$GTK3_REQUIRED + GTK_VNC_REQUIRED=$GTK_VNC2_REQUIRED GTK_VNC_API_VERSION=2.0 SPICE_GTK_API_VERSION=3.0 ;; @@ -12690,6 +13762,14 @@ fi +# Check whether --with-gtk-vnc was given. +if test "${with_gtk_vnc+set}" = set; then : + withval=$with_gtk_vnc; +fi + + +if test "x$with_gtk_vnc" != "xno"; then : + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_VNC" >&5 $as_echo_n "checking for GTK_VNC... " >&6; } @@ -12746,40 +13826,41 @@ # Put the nasty error message in config.log where it belongs echo "$GTK_VNC_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (gtk-vnc-$GTK_VNC_API_VERSION >= $GTK_VNC_REQUIRED) were not met: - -$GTK_VNC_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables GTK_VNC_CFLAGS -and GTK_VNC_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 - + have_gtk_vnc=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables GTK_VNC_CFLAGS -and GTK_VNC_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } - + have_gtk_vnc=no else GTK_VNC_CFLAGS=$pkg_cv_GTK_VNC_CFLAGS GTK_VNC_LIBS=$pkg_cv_GTK_VNC_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - -fi + have_gtk_vnc=yes +fi +else + have_gtk_vnc=no +fi + +if test "x$have_gtk_vnc" = "xyes"; then : + +$as_echo "#define HAVE_GTK_VNC 1" >>confdefs.h + +else + if test "x$with_gtk_vnc" = "xyes"; then : + as_fn_error $? "gtk-vnc requested but not found" "$LINENO" 5 + +fi + +fi + if test "x$have_gtk_vnc" = "xyes"; then + HAVE_GTK_VNC_TRUE= + HAVE_GTK_VNC_FALSE='#' +else + HAVE_GTK_VNC_TRUE='#' + HAVE_GTK_VNC_FALSE= +fi + # Check whether --with-spice-gtk was given. @@ -12864,6 +13945,188 @@ if test "x$have_spice_gtk" = "xyes"; then : +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPICE_CONTROLLER" >&5 +$as_echo_n "checking for SPICE_CONTROLLER... " >&6; } + +if test -n "$SPICE_CONTROLLER_CFLAGS"; then + pkg_cv_SPICE_CONTROLLER_CFLAGS="$SPICE_CONTROLLER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-controller\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spice-controller") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPICE_CONTROLLER_CFLAGS=`$PKG_CONFIG --cflags "spice-controller" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SPICE_CONTROLLER_LIBS"; then + pkg_cv_SPICE_CONTROLLER_LIBS="$SPICE_CONTROLLER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-controller\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spice-controller") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPICE_CONTROLLER_LIBS=`$PKG_CONFIG --libs "spice-controller" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SPICE_CONTROLLER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "spice-controller" 2>&1` + else + SPICE_CONTROLLER_PKG_ERRORS=`$PKG_CONFIG --print-errors "spice-controller" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SPICE_CONTROLLER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (spice-controller) were not met: + +$SPICE_CONTROLLER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables SPICE_CONTROLLER_CFLAGS +and SPICE_CONTROLLER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables SPICE_CONTROLLER_CFLAGS +and SPICE_CONTROLLER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + SPICE_CONTROLLER_CFLAGS=$pkg_cv_SPICE_CONTROLLER_CFLAGS + SPICE_CONTROLLER_LIBS=$pkg_cv_SPICE_CONTROLLER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPICE_PROTOCOL" >&5 +$as_echo_n "checking for SPICE_PROTOCOL... " >&6; } + +if test -n "$SPICE_PROTOCOL_CFLAGS"; then + pkg_cv_SPICE_PROTOCOL_CFLAGS="$SPICE_PROTOCOL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-protocol >= \$SPICE_PROTOCOL_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPICE_PROTOCOL_CFLAGS=`$PKG_CONFIG --cflags "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SPICE_PROTOCOL_LIBS"; then + pkg_cv_SPICE_PROTOCOL_LIBS="$SPICE_PROTOCOL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-protocol >= \$SPICE_PROTOCOL_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPICE_PROTOCOL_LIBS=`$PKG_CONFIG --libs "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SPICE_PROTOCOL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>&1` + else + SPICE_PROTOCOL_PKG_ERRORS=`$PKG_CONFIG --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SPICE_PROTOCOL_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (spice-protocol >= $SPICE_PROTOCOL_REQUIRED) were not met: + +$SPICE_PROTOCOL_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables SPICE_PROTOCOL_CFLAGS +and SPICE_PROTOCOL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables SPICE_PROTOCOL_CFLAGS +and SPICE_PROTOCOL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } + +else + SPICE_PROTOCOL_CFLAGS=$pkg_cv_SPICE_PROTOCOL_CFLAGS + SPICE_PROTOCOL_LIBS=$pkg_cv_SPICE_PROTOCOL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + $as_echo "#define HAVE_SPICE_GTK 1" >>confdefs.h else @@ -13279,7 +14542,7 @@ fi -ac_config_files="$ac_config_files Makefile src/Makefile man/Makefile po/Makefile.in plugin/Makefile virt-viewer.spec mingw32-virt-viewer.spec" +ac_config_files="$ac_config_files Makefile data/Makefile data/virt-viewer.nsis icons/Makefile icons/16x16/Makefile icons/22x22/Makefile icons/24x24/Makefile icons/32x32/Makefile icons/48x48/Makefile icons/256x256/Makefile man/Makefile mingw-virt-viewer.spec plugin/Makefile po/Makefile.in src/Makefile src/virt-viewer.rc virt-viewer.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -13390,6 +14653,14 @@ LTLIBOBJS=$ac_ltlibobjs +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -13398,6 +14669,10 @@ am__EXEEXT_FALSE= fi +if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then + as_fn_error $? "conditional \"OS_WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -13410,12 +14685,20 @@ ac_config_commands="$ac_config_commands po/stamp-it" +if test -z "${HAVE_LIBVIRT_TRUE}" && test -z "${HAVE_LIBVIRT_FALSE}"; then + as_fn_error $? "conditional \"HAVE_LIBVIRT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${HAVE_GTK_2_TRUE}" && test -z "${HAVE_GTK_2_FALSE}"; then as_fn_error $? "conditional \"HAVE_GTK_2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GTK_3_TRUE}" && test -z "${HAVE_GTK_3_FALSE}"; then as_fn_error $? "conditional \"HAVE_GTK_3\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GTK_VNC_TRUE}" && test -z "${HAVE_GTK_VNC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GTK_VNC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SPICE_GTK_TRUE}" && test -z "${HAVE_SPICE_GTK_FALSE}"; then @@ -13835,7 +15118,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by virt-viewer $as_me 0.4.1, which was +This file was extended by virt-viewer $as_me 0.5.4, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13862,6 +15145,7 @@ # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" +config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF @@ -13892,6 +15176,9 @@ Configuration headers: $config_headers +Configuration links: +$config_links + Configuration commands: $config_commands @@ -13901,7 +15188,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -virt-viewer config.status 0.4.1 +virt-viewer config.status 0.5.4 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -14038,6 +15325,7 @@ enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' @@ -14120,7 +15408,6 @@ allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' @@ -14176,6 +15463,7 @@ # Quote evaled strings. for var in SHELL \ ECHO \ +PATH_SEPARATOR \ SED \ GREP \ EGREP \ @@ -14226,7 +15514,6 @@ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ @@ -14298,6 +15585,8 @@ +GNUmakefile=$GNUmakefile + _ACEOF @@ -14310,13 +15599,25 @@ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/virt-viewer.nsis") CONFIG_FILES="$CONFIG_FILES data/virt-viewer.nsis" ;; + "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;; + "icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES icons/16x16/Makefile" ;; + "icons/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES icons/22x22/Makefile" ;; + "icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES icons/24x24/Makefile" ;; + "icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES icons/32x32/Makefile" ;; + "icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/48x48/Makefile" ;; + "icons/256x256/Makefile") CONFIG_FILES="$CONFIG_FILES icons/256x256/Makefile" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; + "mingw-virt-viewer.spec") CONFIG_FILES="$CONFIG_FILES mingw-virt-viewer.spec" ;; + "plugin/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "plugin/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/Makefile" ;; + "src/virt-viewer.rc") CONFIG_FILES="$CONFIG_FILES src/virt-viewer.rc" ;; "virt-viewer.spec") CONFIG_FILES="$CONFIG_FILES virt-viewer.spec" ;; - "mingw32-virt-viewer.spec") CONFIG_FILES="$CONFIG_FILES mingw32-virt-viewer.spec" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; @@ -14331,6 +15632,7 @@ if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi @@ -14628,7 +15930,7 @@ fi # test -n "$CONFIG_HEADERS" -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do @@ -14905,7 +16207,38 @@ } s/.*/./; q'`/stamp-h$_am_stamp_count ;; - + :L) + # + # CONFIG_LINK + # + + if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then + : + else + # Prefer the file from the source tree if names are identical. + if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then + ac_source=$srcdir/$ac_source + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 +$as_echo "$as_me: linking $ac_source to $ac_file" >&6;} + + if test ! -r "$ac_source"; then + as_fn_error $? "$ac_source: file not found" "$LINENO" 5 + fi + rm -f "$ac_file" + + # Try a relative symlink, then a hard link, then a copy. + case $ac_source in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; + *) ac_rel_source=$ac_top_build_prefix$ac_source ;; + esac + ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || + ln "$ac_source" "$ac_file" 2>/dev/null || + cp -p "$ac_source" "$ac_file" || + as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + fi + ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; @@ -14927,7 +16260,7 @@ # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but + # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. @@ -14961,21 +16294,19 @@ continue fi # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. + # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || @@ -15029,8 +16360,8 @@ # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -15084,6 +16415,9 @@ # An echo program that protects backslashes. ECHO=$lt_ECHO +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -15384,10 +16718,6 @@ # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator @@ -15639,6 +16969,9 @@ chmod +x "$ofile" ;; + "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 @@ -15697,3 +17030,50 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuration summary" >&5 +$as_echo "$as_me: Configuration summary" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: =====================" >&5 +$as_echo "$as_me: =====================" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Features:" >&5 +$as_echo "$as_me: Features:" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Plugin: $enable_plugin" >&5 +$as_echo "$as_me: Plugin: $enable_plugin" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Gtk: $with_gtk" >&5 +$as_echo "$as_me: Gtk: $with_gtk" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Libraries:" >&5 +$as_echo "$as_me: Libraries:" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS" >&5 +$as_echo "$as_me: GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: GTK: $GTK_CFLAGS $GTK_LIBS" >&5 +$as_echo "$as_me: GTK: $GTK_CFLAGS $GTK_LIBS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS" >&5 +$as_echo "$as_me: GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS" >&5 +$as_echo "$as_me: SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&5 +$as_echo "$as_me: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS" >&5 +$as_echo "$as_me: LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 +$as_echo "$as_me: " >&6;} diff --git a/configure.ac b/configure.ac index 9c791e7..e7ddd3e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,8 @@ -AC_INIT(virt-viewer, 0.4.1) +AC_INIT(virt-viewer, 0.5.4) AC_CONFIG_SRCDIR(src/virt-viewer-main.c) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([build-aux]) AM_CONFIG_HEADER(config.h) dnl Make automake keep quiet about wildcards & other GNUmake-isms AM_INIT_AUTOMAKE([-Wno-portability]) @@ -10,34 +12,89 @@ m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])]) AM_SILENT_RULES([yes]) -GLIB2_REQUIRED=2.12.0 +GLIB2_REQUIRED=2.22.0 LIBXML2_REQUIRED="2.6.0" -LIBVIRT_REQUIRED="0.6.0" -GTK2_REQUIRED="2.12.0" +LIBVIRT_REQUIRED="0.9.7" +GTK2_REQUIRED="2.18.0" GTK3_REQUIRED="3.0" -GTK_VNC_REQUIRED="0.3.8" -SPICE_GTK_REQUIRED="0.6" +GTK_VNC1_REQUIRED="0.3.8" +GTK_VNC2_REQUIRED="0.4.0" +SPICE_GTK_REQUIRED="0.12.101" +SPICE_PROTOCOL_REQUIRED="0.10.1" + +AC_MSG_CHECKING([for native Win32]) +case "$host_os" in + *mingw*|*cygwin*) + os_win32=yes + ;; + *) + os_win32=no + ;; +esac +AC_MSG_RESULT([$os_win32]) +AM_CONDITIONAL([OS_WIN32],[test "$os_win32" = "yes"]) AC_PROG_CC AM_PROG_CC_C_O AC_PROG_LIBTOOL +AC_CHECK_PROGS(ICOTOOL, [icotool], [icotool]) + +AS_IF([test "x$os_win32" = "xyes"], [ + AC_CHECK_TOOL(WINDRES, [windres]) + + if test -z "$WINDRES" ; then + AC_MSG_ERROR("windres is required to compile virt-viewer on this platform") + fi +]) + AC_CONFIG_LIBOBJ_DIR([src]) AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions]) + +# Autoconf 2.61a.99 and earlier don't support linking a file only +# in VPATH builds. But since GNUmakefile is for maintainer use +# only, it does not matter if we skip the link with older autoconf. +# Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH +# builds, so use a shell variable to bypass this. +GNUmakefile=GNUmakefile +m4_if(m4_version_compare([2.61a.100], + m4_defn([m4_PACKAGE_VERSION])), [1], [], + [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], + [GNUmakefile=$GNUmakefile])]) VIRT_VIEWER_COMPILE_WARNINGS(maximum) GETTEXT_PACKAGE=virt-viewer AC_SUBST(GETTEXT_PACKAGE) -AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name]) - +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],"$GETTEXT_PACKAGE", [GETTEXT package name]) + +AM_GLIB_GNU_GETTEXT IT_PROG_INTLTOOL([0.35.0]) - -PKG_CHECK_MODULES(GLIB2, gmodule-export-2.0 >= $GLIB2_REQUIRED) +PKG_PROG_PKG_CONFIG +GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` +AC_SUBST(GLIB_MKENUMS) + +PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0) PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED) -PKG_CHECK_MODULES(LIBVIRT, libvirt >= $LIBVIRT_REQUIRED) + +AC_ARG_WITH([libvirt], + AS_HELP_STRING([--without-libvirt], [Ignore presence of libvirt and disable it])) + +AS_IF([test "x$with_libvirt" != "xno"], + [PKG_CHECK_MODULES(LIBVIRT, + [libvirt], + [have_libvirt=yes], [have_libvirt=no])], + [have_libvirt=no]) + +AS_IF([test "x$have_libvirt" = "xyes"], + [AC_DEFINE([HAVE_LIBVIRT], 1, [Have libvirt?])], + [AS_IF([test "x$with_libvirt" = "xyes"], + [AC_MSG_ERROR([libvirt requested but not found]) + ]) +]) +AM_CONDITIONAL([HAVE_LIBVIRT], [test "x$have_libvirt" = "xyes"]) AC_MSG_CHECKING([which gtk+ version to compile against]) AC_ARG_WITH([gtk], @@ -52,11 +109,13 @@ case "$with_gtk" in 2.0) GTK_API_VERSION=2.0 GTK_REQUIRED=$GTK2_REQUIRED + GTK_VNC_REQUIRED=$GTK_VNC1_REQUIRED GTK_VNC_API_VERSION=1.0 SPICE_GTK_API_VERSION=2.0 ;; 3.0) GTK_API_VERSION=3.0 GTK_REQUIRED=$GTK3_REQUIRED + GTK_VNC_REQUIRED=$GTK_VNC2_REQUIRED GTK_VNC_API_VERSION=2.0 SPICE_GTK_API_VERSION=3.0 ;; @@ -70,18 +129,35 @@ PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED) -PKG_CHECK_MODULES(GTK_VNC, gtk-vnc-$GTK_VNC_API_VERSION >= $GTK_VNC_REQUIRED) +AC_ARG_WITH([gtk-vnc], + AS_HELP_STRING([--without-gtk-vnc], [Ignore presence of gtk-vnc and disable it])) + +AS_IF([test "x$with_gtk_vnc" != "xno"], + [PKG_CHECK_MODULES(GTK_VNC, + gtk-vnc-$GTK_VNC_API_VERSION >= $GTK_VNC_REQUIRED, + [have_gtk_vnc=yes], [have_gtk_vnc=no])], + [have_gtk_vnc=no]) + +AS_IF([test "x$have_gtk_vnc" = "xyes"], + [AC_DEFINE([HAVE_GTK_VNC], 1, [Have gtk-vnc?])], + [AS_IF([test "x$with_gtk_vnc" = "xyes"], + [AC_MSG_ERROR([gtk-vnc requested but not found]) + ]) +]) +AM_CONDITIONAL([HAVE_GTK_VNC], [test "x$have_gtk_vnc" = "xyes"]) AC_ARG_WITH([spice-gtk], AS_HELP_STRING([--without-spice-gtk], [Ignore presence of spice-gtk and disable it])) AS_IF([test "x$with_spice_gtk" != "xno"], [PKG_CHECK_MODULES(SPICE_GTK, - spice-client-gtk-$SPICE_GTK_API_VERSION >= $SPICE_GTK_REQUIRED, + [spice-client-gtk-$SPICE_GTK_API_VERSION >= $SPICE_GTK_REQUIRED], [have_spice_gtk=yes], [have_spice_gtk=no])], [have_spice_gtk=no]) AS_IF([test "x$have_spice_gtk" = "xyes"], + [PKG_CHECK_MODULES(SPICE_CONTROLLER, [spice-controller])] + [PKG_CHECK_MODULES(SPICE_PROTOCOL, [spice-protocol >= $SPICE_PROTOCOL_REQUIRED])] [AC_DEFINE([HAVE_SPICE_GTK], 1, [Have spice-gtk?])], [AS_IF([test "x$with_spice_gtk" = "xyes"], [AC_MSG_ERROR([spice-gtk requested but not found]) @@ -116,10 +192,46 @@ fi AM_CONDITIONAL(ENABLE_PLUGIN, [test "x$enable_plugin" = "xyes"]) -AC_OUTPUT(Makefile - src/Makefile - man/Makefile - po/Makefile.in - plugin/Makefile - virt-viewer.spec - mingw32-virt-viewer.spec) +AC_OUTPUT([ + Makefile + data/Makefile + data/virt-viewer.nsis + icons/Makefile + icons/16x16/Makefile + icons/22x22/Makefile + icons/24x24/Makefile + icons/32x32/Makefile + icons/48x48/Makefile + icons/256x256/Makefile + man/Makefile + mingw-virt-viewer.spec + plugin/Makefile + po/Makefile.in + src/Makefile + src/virt-viewer.rc + virt-viewer.spec +]) + +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([Configuration summary]) +AC_MSG_NOTICE([=====================]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ Features:]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ Plugin: $enable_plugin]) +AC_MSG_NOTICE([ Gtk: $with_gtk]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ Libraries:]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ GTK: $GTK_CFLAGS $GTK_LIBS]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS]) +AC_MSG_NOTICE([]) +AC_MSG_NOTICE([ LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS]) +AC_MSG_NOTICE([]) diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..ea2bb0a --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,8 @@ +NULL= + +EXTRA_DIST = \ + spice-xpi-client-remote-viewer \ + virt-viewer.nsis.in \ + $(NULL) + +-include $(top_srcdir)/git.mk diff --git a/data/Makefile.in b/data/Makefile.in new file mode 100644 index 0000000..2a8595f --- /dev/null +++ b/data/Makefile.in @@ -0,0 +1,466 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/virt-viewer.nsis.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = virt-viewer.nsis +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +EXTRA_DIST = \ + spice-xpi-client-remote-viewer \ + virt-viewer.nsis.in \ + $(NULL) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +virt-viewer.nsis: $(top_builddir)/config.status $(srcdir)/virt-viewer.nsis.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/spice-xpi-client-remote-viewer b/data/spice-xpi-client-remote-viewer new file mode 100644 index 0000000..3109c66 --- /dev/null +++ b/data/spice-xpi-client-remote-viewer @@ -0,0 +1,6 @@ +#!/bin/sh + +logger -t spice "starting remote-viewer --spice-controller $@..." +env | logger -t spice +exec remote-viewer --spice-controller "$@" 2>&1 | logger -t spice +logger -t spice "remote-viewer execution failed" diff --git a/data/virt-viewer.nsis.in b/data/virt-viewer.nsis.in new file mode 100644 index 0000000..e438159 --- /dev/null +++ b/data/virt-viewer.nsis.in @@ -0,0 +1,312 @@ +#!Nsis Installer Command Script +# @configure_input@ +# To build an installer from the script you would normally do: +# +# makensis virt-viewer.nsis +# +# which will generate the output file 'virt-viewer-@VERSION@.exe' which is a Windows +# installer containing your program. + +Name "VirtViewer @VERSION@" +OutFile "virt-viewer-@VERSION@.exe" +InstallDir "$LOCALAPPDATA\virt-viewer" +InstallDirRegKey HKCU "Software\virt-viewer" "" + +RequestExecutionLevel user +SetCompressor bzip2 +ShowInstDetails hide +ShowUninstDetails hide +XPStyle on + +Page directory +Page instfiles + +!define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\virt-viewer" +!define REG_IEPOLICY "Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{96190E9D-6FBB-64DB-9095-29F6FDE0B897}" + +Function RegisterApplication + ;Register uninstaller into Add/Remove panel (for local user only) + WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayName" "VirtViewer @VERSION@" + WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayIcon" "$\"$INSTDIR\bin\virt-viewer.exe$\"" + WriteRegStr HKCU "${REG_UNINSTALL}" "Publisher" "virt-manager.org" + WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayVersion" "@VERSION@" + WriteRegDWord HKCU "${REG_UNINSTALL}" "EstimatedSize" 32000 ;KB + WriteRegStr HKCU "${REG_UNINSTALL}" "HelpLink" "http://www.virt-manager.org" + WriteRegStr HKCU "${REG_UNINSTALL}" "URLInfoAbout" "http://www.virt-manager.org" + WriteRegStr HKCU "${REG_UNINSTALL}" "InstallLocation" "$\"$INSTDIR$\"" + WriteRegStr HKCU "${REG_UNINSTALL}" "InstallSource" "$\"$EXEDIR$\"" + WriteRegDWord HKCU "${REG_UNINSTALL}" "NoModify" 1 + WriteRegDWord HKCU "${REG_UNINSTALL}" "NoRepair" 1 + WriteRegStr HKCU "${REG_UNINSTALL}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" + WriteRegStr HKCU "${REG_UNINSTALL}" "Comments" "Uninstalls VirtViewer." + + WriteRegStr HKCU "${REG_IEPOLICY}" "AppPath" "$INSTDIR\bin" + WriteRegStr HKCU "${REG_IEPOLICY}" "AppName" "remote-viewer.exe" + WriteRegDWord HKCU "${REG_IEPOLICY}" "Policy" 3 +FunctionEnd + +Section "VirtViewer" + SectionIn RO + WriteRegStr HKCU "Software\virt-viewer" "" $INSTDIR + + SetOutPath "$INSTDIR\bin" + File "@prefix@/bin/gst-discoverer-0.10.exe" + File "@prefix@/bin/gst-feedback.exe" + File "@prefix@/bin/gst-inspect-0.10.exe" + File "@prefix@/bin/gst-inspect.exe" + File "@prefix@/bin/gst-launch-0.10.exe" + File "@prefix@/bin/gst-launch.exe" + File "@prefix@/bin/gst-typefind-0.10.exe" + File "@prefix@/bin/gst-typefind.exe" + File "@prefix@/bin/gst-xmlinspect-0.10.exe" + File "@prefix@/bin/gst-xmlinspect.exe" + File "@prefix@/bin/gst-xmllaunch-0.10.exe" + File "@prefix@/bin/gst-xmllaunch.exe" + File "@prefix@/bin/libatk-1.0-0.dll" + File "@prefix@/bin/libcairo-2.dll" + File "@prefix@/bin/libcelt051-0.dll" + File "@prefix@/bin/libcrypto-10.dll" + File "@prefix@/bin/libffi-6.dll" + File "@prefix@/bin/libfontconfig-1.dll" + File "@prefix@/bin/libfreetype-6.dll" + File "@prefix@/bin/libgdk-win32-2.0-0.dll" + File "@prefix@/bin/libgdk-win32-2.0-0.dll" + File "@prefix@/bin/libgdk_pixbuf-2.0-0.dll" + File "@prefix@/bin/libgdk_pixbuf-2.0-0.dll" + File "@prefix@/bin/libgio-2.0-0.dll" + File "@prefix@/bin/libglib-2.0-0.dll" + File "@prefix@/bin/libgmodule-2.0-0.dll" + File "@prefix@/bin/libgobject-2.0-0.dll" + File "@prefix@/bin/libgstapp-0.10-0.dll" + File "@prefix@/bin/libgstaudio-0.10-0.dll" + File "@prefix@/bin/libgstbase-0.10-0.dll" + File "@prefix@/bin/libgstcontroller-0.10-0.dll" + File "@prefix@/bin/libgstfft-0.10-0.dll" + File "@prefix@/bin/libgstinterfaces-0.10-0.dll" + File "@prefix@/bin/libgstpbutils-0.10-0.dll" + File "@prefix@/bin/libgstreamer-0.10-0.dll" + File "@prefix@/bin/libgstvideo-0.10-0.dll" + File "@prefix@/bin/libgthread-2.0-0.dll" + File "@prefix@/bin/libgtk-win32-2.0-0.dll" + File "@prefix@/bin/iconv.dll" + File "@prefix@/bin/libintl-8.dll" + File "@prefix@/bin/libjpeg-62.dll" + File "@prefix@/bin/liborc-0.4-0.dll" + File "@prefix@/bin/liborc-test-0.4-0.dll" + File "@prefix@/bin/libpango-1.0-0.dll" + File "@prefix@/bin/libpangocairo-1.0-0.dll" + File "@prefix@/bin/libpangoft2-1.0-0.dll" + File "@prefix@/bin/libpangowin32-1.0-0.dll" + File "@prefix@/bin/libpixman-1-0.dll" + File "@prefix@/bin/libpng15-15.dll" + File "@prefix@/bin/libspice-client-glib-2.0-1.dll" + File "@prefix@/bin/libspice-client-gtk-2.0-1.dll" + File "@prefix@/bin/libspice-controller-0.dll" + File "@prefix@/bin/libssl-10.dll" + File "@prefix@/bin/libtasn1-3.dll" + File "@prefix@/bin/libxml2-2.dll" + File "@prefix@/bin/libp11-kit-0.dll" + File "@prefix@/bin/libssh2-1.dll" + File "@prefix@/bin/libcurl-4.dll" + File "@prefix@/bin/libportablexdr-0.dll" + File "@prefix@/bin/libidn-11.dll" + File "@prefix@/bin/libssp-0.dll" + File "@prefix@/bin/libvirt-0.dll" + File "@prefix@/bin/libvirt-qemu-0.dll" + File "@prefix@/bin/virsh.exe" + File "@prefix@/bin/virt-pki-validate" + File "@prefix@/bin/virt-xml-validate" + + #gtkvnc + File "@prefix@/bin/libgnutls-26.dll" + File "@prefix@/bin/libgpg-error-0.dll" + File "@prefix@/bin/libgcrypt-11.dll" + File "@prefix@/bin/libgvnc-1.0-0.dll" + File "@prefix@/bin/libgtk-vnc-1.0-0.dll" + + File "@prefix@/bin/pango-querymodules.exe" + File /oname=remote-viewer.com "${DESTDIR}@prefix@/bin/windows-cmdline-wrapper.exe" + File "${DESTDIR}@prefix@/bin/remote-viewer.exe" + File "${DESTDIR}@prefix@/bin/virt-viewer.exe" + File "@prefix@/bin/zlib1.dll" + + SetOutPath "$INSTDIR\etc" + File /r "@prefix@/etc/fonts" + File /r "@prefix@/etc/gtk-2.0" + File /r "@prefix@/etc/libvirt" + CreateDirectory "$INSTDIR\etc\pango" + + CreateDirectory "$INSTDIR\etc\gtk-2.0" + + SetOutPath "$INSTDIR\lib" + File /r "@prefix@/lib/gdk-pixbuf-2.0" + File /r "@prefix@/lib/gtk-2.0" + File /r "@prefix@/lib/pango" + + SetOutPath "$INSTDIR\lib\gstreamer-0.10" + File "@prefix@/lib/gstreamer-0.10/libgstapp.dll" + File "@prefix@/lib/gstreamer-0.10/libgstaudioconvert.dll" + File "@prefix@/lib/gstreamer-0.10/libgstaudiorate.dll" + File "@prefix@/lib/gstreamer-0.10/libgstaudioresample.dll" + File "@prefix@/lib/gstreamer-0.10/libgstaudiotestsrc.dll" + File "@prefix@/lib/gstreamer-0.10/libgstautodetect.dll" + File "@prefix@/lib/gstreamer-0.10/libgstcoreelements.dll" + File "@prefix@/lib/gstreamer-0.10/libgstdirectsoundsink.dll" + File "@prefix@/lib/gstreamer-0.10/libgstdirectsoundsrc.dll" + + SetOutPath "$INSTDIR\share" + File /r "@prefix@/share/libvirt" + + # fixme for all languages + SetOutPath "$INSTDIR\share\locale\fr" + File "@prefix@/share/locale/fr/LC_MESSAGES/libvirt.*" + File "${DESTDIR}@prefix@/share/locale/fr/LC_MESSAGES/virt-viewer.*" + + SetOutPath "$INSTDIR\share\virt-viewer\ui" + File "${DESTDIR}@prefix@/share/virt-viewer/ui/*.xml" + + SetOutPath "$INSTDIR\share\themes\MS-Windows\gtk-2.0" + File "@prefix@/share/themes/MS-Windows/gtk-2.0/gtkrc" + + SetOutPath "$INSTDIR\etc\gtk-2.0" + FileOpen $0 gtkrc w + FileWrite $0 "gtk-theme-name = $\"MS-Windows$\" $\n" + FileWrite $0 "gtk-icon-theme-name = $\"hicolor$\" $\n" + FileClose $0 + + SetOutPath "$INSTDIR\share\icons\hicolor" + File "/usr/share/icons/hicolor/index.theme" + + SetOutPath "$INSTDIR\share\icons\hicolor\16x16\apps" + File "${DESTDIR}@prefix@/share/icons/hicolor/16x16/apps/virt-viewer.png" + File "/usr/share/icons/gnome/16x16/apps/preferences-desktop-keyboard-shortcuts.png" + SetOutPath "$INSTDIR\share\icons\hicolor\32x32\apps" + File "${DESTDIR}@prefix@/share/icons/hicolor/32x32/apps/virt-viewer.png" + SetOutPath "$INSTDIR\share\icons\hicolor\48x48\apps" + File "${DESTDIR}@prefix@/share/icons/hicolor/48x48/apps/virt-viewer.png" + + ReadEnvStr $0 COMSPEC + SetOutPath "$INSTDIR" + nsExec::ExecToLog '$0 /C bin\pango-querymodules.exe > etc\pango\pango.modules' + + # make virt-viewer the default spice-x client + WriteRegStr HKCU "Software\spice-space.org\spicex" "client" "$INSTDIR\bin\remote-viewer.exe --spice-controller" + +SectionEnd + +Section "Start Menu Shortcuts" + CreateDirectory "$SMPROGRAMS\VirtViewer" + CreateShortCut "$SMPROGRAMS\VirtViewer\Remote Viewer.lnk" "$INSTDIR\bin\remote-viewer.exe" "" "$INSTDIR\bin\remote-viewer.exe" 0 + CreateShortCut "$SMPROGRAMS\VirtViewer\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 +SectionEnd + +Section "Uninstall" + Delete /rebootok "$SMPROGRAMS\VirtViewer\Uninstall.lnk" + Delete /rebootok "$SMPROGRAMS\VirtViewer\Remote Viewer.lnk" + RMDir "$SMPROGRAMS\VirtViewer" + + DeleteRegKey HKCU "Software\spice-space.org\spicex\client" + DeleteRegKey /ifempty HKCU "Software\spice-space.org\spicex" + DeleteRegKey /ifempty HKCU "Software\spice-space.org" + DeleteRegKey HKCU "Software\virt-viewer" + DeleteRegKey HKCU "${REG_UNINSTALL}" + DeleteRegKey HKCU "${REG_IEPOLICY}" + + RMDir /r "$INSTDIR\lib\pango" + + RMDir /r "$INSTDIR\lib\gtk-2.0" + + RMDir /r "$INSTDIR\share\icons\hicolor" + + Delete /rebootok "$INSTDIR\share\virt-viewer\ui\*.xml" + Delete /rebootok "$INSTDIR\share\themes\MS-Windows\gtk-2.0\gtkrc" + + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstdirectsoundsrc.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstdirectsoundsink.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstcoreelements.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstautodetect.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudiotestsrc.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudioresample.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudiorate.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudioconvert.dll" + Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstapp.dll" + RMDir "$INSTDIR\lib\gstreamer-0.10" + + RMDir /r "$INSTDIR\lib\gdk-pixbuf-2.0" + + RMDir /r "$INSTDIR\etc\pango" + + RMDir /r "$INSTDIR\etc\gtk-2.0" + + RMDir /r "$INSTDIR\etc\fonts" + + Delete /rebootok "$INSTDIR\bin\remote-viewer.com" + Delete /rebootok "$INSTDIR\bin\remote-viewer.exe" + Delete /rebootok "$INSTDIR\bin\pango-querymodules.exe" + Delete /rebootok "$INSTDIR\bin\libpangoft2-1.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgdk_pixbuf-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgdk-win32-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\gst-xmllaunch.exe" + Delete /rebootok "$INSTDIR\bin\gst-xmllaunch-0.10.exe" + Delete /rebootok "$INSTDIR\bin\gst-xmlinspect.exe" + Delete /rebootok "$INSTDIR\bin\gst-xmlinspect-0.10.exe" + Delete /rebootok "$INSTDIR\bin\gst-typefind.exe" + Delete /rebootok "$INSTDIR\bin\gst-typefind-0.10.exe" + Delete /rebootok "$INSTDIR\bin\gst-launch.exe" + Delete /rebootok "$INSTDIR\bin\gst-launch-0.10.exe" + Delete /rebootok "$INSTDIR\bin\gst-inspect.exe" + Delete /rebootok "$INSTDIR\bin\gst-inspect-0.10.exe" + Delete /rebootok "$INSTDIR\bin\gst-feedback.exe" + Delete /rebootok "$INSTDIR\bin\gst-discoverer-0.10.exe" + RMDir "$INSTDIR\bin" + + Delete /rebootok "$INSTDIR\bin\libffi-6.dll" + Delete /rebootok "$INSTDIR\bin\zlib1.dll" + Delete /rebootok "$INSTDIR\bin\libp11-kit-0.dll" + Delete /rebootok "$INSTDIR\bin\libxml2-2.dll" + Delete /rebootok "$INSTDIR\bin\libtasn1-3.dll" + Delete /rebootok "$INSTDIR\bin\libssl-10.dll" + Delete /rebootok "$INSTDIR\bin\libspice-client-gtk-2.0-1.dll" + Delete /rebootok "$INSTDIR\bin\libspice-client-glib-2.0-1.dll" + Delete /rebootok "$INSTDIR\bin\libspice-controller-0.dll" + Delete /rebootok "$INSTDIR\bin\libpng15-15.dll" + Delete /rebootok "$INSTDIR\bin\libpixman-1-0.dll" + Delete /rebootok "$INSTDIR\bin\libpangowin32-1.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libpangocairo-1.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libpango-1.0-0.dll" + Delete /rebootok "$INSTDIR\bin\liborc-test-0.4-0.dll" + Delete /rebootok "$INSTDIR\bin\liborc-0.4-0.dll" + Delete /rebootok "$INSTDIR\bin\libjpeg-62.dll" + Delete /rebootok "$INSTDIR\bin\libintl-8.dll" + Delete /rebootok "$INSTDIR\bin\iconv.dll" + Delete /rebootok "$INSTDIR\bin\libgtk-win32-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgthread-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstvideo-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstreamer-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstpbutils-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstinterfaces-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstfft-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstcontroller-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstbase-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstaudio-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgstapp-0.10-0.dll" + Delete /rebootok "$INSTDIR\bin\libgobject-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgmodule-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libglib-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgio-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgdk_pixbuf-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libgdk-win32-2.0-0.dll" + Delete /rebootok "$INSTDIR\bin\libfreetype-6.dll" + Delete /rebootok "$INSTDIR\bin\libfontconfig-1.dll" + Delete /rebootok "$INSTDIR\bin\libcrypto-10.dll" + Delete /rebootok "$INSTDIR\bin\libcelt051-0.dll" + Delete /rebootok "$INSTDIR\bin\libcairo-2.dll" + Delete /rebootok "$INSTDIR\bin\libatk-1.0-0.dll" + RMDir "$INSTDIR\bin" + RMDir "$INSTDIR" +SectionEnd + +Section -post + WriteUninstaller "$INSTDIR\Uninstall.exe" + Call RegisterApplication +SectionEnd diff --git a/debian/changelog b/debian/changelog index 965d215..467504f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,45 @@ +virt-viewer (0.5.4-1) unstable; urgency=low + + * [e3fbded] Imported Upstream version 0.5.4 + * [43b4d1e] Remove LDFLAGS override + + -- Laurent Léonard Mon, 17 Sep 2012 23:09:48 +0200 + +virt-viewer (0.5.3-1) unstable; urgency=low + + * [7ef218a] Imported Upstream version 0.5.3 + + -- Laurent Léonard Mon, 28 May 2012 19:47:27 +0200 + +virt-viewer (0.5.2-1) unstable; urgency=low + + * [e7ae231] Imported Upstream version 0.5.2 + * [26e78cf] Bump Standards-Version to 3.9.3 + + -- Laurent Léonard Sun, 22 Apr 2012 00:33:01 +0200 + +virt-viewer (0.5.1-1) unstable; urgency=low + + * [78f733f] Imported Upstream version 0.5.1 + + -- Laurent Léonard Fri, 17 Feb 2012 18:10:34 +0100 + +virt-viewer (0.5.0-1) unstable; urgency=low + + * [e2a8e17] Imported Upstream version 0.5.0 + + -- Laurent Léonard Thu, 16 Feb 2012 10:46:00 +0100 + +virt-viewer (0.4.2-1) unstable; urgency=low + + * [032178c] Imported Upstream version 0.4.2 + * [c290303] Drop patches + - 0001-Really-fix-using-alternate-ssh-ports.patch - applied upstream + - 0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch - applied + upstream + + -- Laurent Léonard Thu, 10 Nov 2011 09:01:35 +0100 + virt-viewer (0.4.1-4) experimental; urgency=low * [0029b1c] Enable spice support diff --git a/debian/control b/debian/control index 8e3b749..270a5b1 100644 --- a/debian/control +++ b/debian/control @@ -19,7 +19,7 @@ libffi-dev, libtool, intltool -Standards-Version: 3.9.2 +Standards-Version: 3.9.3 Vcs-Git: git://git.debian.org/git/pkg-libvirt/virt-viewer.git Vcs-Browser: http://git.debian.org/?p=pkg-libvirt/virt-viewer.git;a=summary Homepage: http://virt-manager.et.redhat.com/ diff --git a/debian/patches/0001-Really-fix-using-alternate-ssh-ports.patch b/debian/patches/0001-Really-fix-using-alternate-ssh-ports.patch deleted file mode 100644 index 431f4b5..0000000 --- a/debian/patches/0001-Really-fix-using-alternate-ssh-ports.patch +++ /dev/null @@ -1,68 +0,0 @@ -From: =?UTF-8?q?Guido=20G=C3=BCnther?= -Date: Fri, 12 Aug 2011 19:05:11 +0200 -Subject: Really fix using alternate ssh ports - -Many,many thanks to Luca Capello for debugging this. - -Closes: #637548 ---- - src/virt-viewer-app.c | 18 ++++++++++++++---- - 1 files changed, 14 insertions(+), 4 deletions(-) - -diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c -index 918e788..6d3d9be 100644 ---- a/src/virt-viewer-app.c -+++ b/src/virt-viewer-app.c -@@ -319,7 +319,7 @@ virt_viewer_app_open_tunnel_ssh(const char *sshhost, - int n = 0; - - cmd[n++] = "ssh"; -- if (!sshport) { -+ if (sshport) { - cmd[n++] = "-p"; - sprintf(portstr, "%d", sshport); - cmd[n++] = portstr; -@@ -635,6 +635,8 @@ virt_viewer_app_activate(VirtViewerApp *self) - if (priv->transport && - g_strcasecmp(priv->transport, "ssh") == 0 && - !priv->direct) { -+ gchar *p = NULL; -+ - if (priv->gport) { - virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n", - priv->ghost, priv->gport); -@@ -642,14 +644,22 @@ virt_viewer_app_activate(VirtViewerApp *self) - virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n", - priv->unixsock); - } -- virt_viewer_app_trace(self, "Setting up SSH tunnel via %s@%s:%d\n", -- priv->user, priv->host, priv->port ? priv->port : 22); -+ if (priv->port) -+ p = g_strdup_printf(":%d", priv->port); -+ -+ virt_viewer_app_trace(self, "Setting up SSH tunnel via %s%s%s%s\n", -+ priv->user ? priv->user : "", -+ priv->user ? "@" : "", -+ priv->host, p ? p : ""); -+ g_free(p); - - if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, - priv->user, priv->ghost, - priv->gport, priv->unixsock)) < 0) - return -1; - } else if (priv->unixsock) { -+ -+ - virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s", - priv->unixsock); - if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0) -@@ -1311,7 +1321,7 @@ virt_viewer_app_set_connect_info(VirtViewerApp *self, - priv->transport = g_strdup(transport); - priv->unixsock = g_strdup(unixsock); - priv->user = g_strdup(user); -- priv->port = 0; -+ priv->port = port; - - virt_viewer_app_update_pretty_address(self); - } --- diff --git a/debian/patches/0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch b/debian/patches/0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch deleted file mode 100644 index d5f83a2..0000000 --- a/debian/patches/0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch +++ /dev/null @@ -1,96 +0,0 @@ -From: =?UTF-8?q?Guido=20G=C3=BCnther?= -Date: Tue, 16 Aug 2011 08:36:13 -0700 -Subject: ff callbacks must be invoked from a clean stack - -If 'ff' callbacks are invoked directly from the remove -callback they will likely deadlock in libvirt. They must -be invoked from a clean stack, so switch to using a -glib idle callback. ---- - src/virt-viewer-events.c | 47 ++++++++++++++++++++++++++++++++++++++------- - 1 files changed, 39 insertions(+), 8 deletions(-) - -diff --git a/src/virt-viewer-events.c b/src/virt-viewer-events.c -index 108f97d..87df739 100644 ---- a/src/virt-viewer-events.c -+++ b/src/virt-viewer-events.c -@@ -160,6 +160,23 @@ virt_viewer_events_update_handle(int watch, - } - } - -+ -+static gboolean -+virt_viewer_events_cleanup_handle(gpointer user_data) -+{ -+ struct virt_viewer_events_handle *data = user_data; -+ -+ DEBUG_LOG("Cleanup of handle %p", data); -+ g_return_val_if_fail(data != NULL, FALSE); -+ -+ if (data->ff) -+ (data->ff)(data->opaque); -+ -+ free(data); -+ return FALSE; -+} -+ -+ - static int - virt_viewer_events_remove_handle(int watch) - { -@@ -172,13 +189,14 @@ virt_viewer_events_remove_handle(int watch) - - DEBUG_LOG("Remove handle %d %d", watch, data->fd); - -+ if (!data->source) -+ return -1; -+ - g_source_remove(data->source); - data->source = 0; - data->events = 0; -- if (data->ff) -- (data->ff)(data->opaque); -- free(data); - -+ g_idle_add(virt_viewer_events_cleanup_handle, data); - return 0; - } - -@@ -279,6 +297,23 @@ virt_viewer_events_update_timeout(int timer, - } - } - -+ -+static gboolean -+virt_viewer_events_cleanup_timeout(gpointer user_data) -+{ -+ struct virt_viewer_events_timeout *data = user_data; -+ -+ DEBUG_LOG("Cleanup of timeout %p", data); -+ g_return_val_if_fail(data != NULL, FALSE); -+ -+ if (data->ff) -+ (data->ff)(data->opaque); -+ -+ free(data); -+ return FALSE; -+} -+ -+ - static int - virt_viewer_events_remove_timeout(int timer) - { -@@ -297,11 +332,7 @@ virt_viewer_events_remove_timeout(int timer) - g_source_remove(data->source); - data->source = 0; - -- if (data->ff) -- (data->ff)(data->opaque); -- -- free(data); -- -+ g_idle_add(virt_viewer_events_cleanup_timeout, data); - return 0; - } - --- diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index dcd2d88..0000000 --- a/debian/patches/series +++ /dev/null @@ -1,2 +0,0 @@ -0001-Really-fix-using-alternate-ssh-ports.patch -0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch diff --git a/debian/rules b/debian/rules index 956a2a8..74fad81 100755 --- a/debian/rules +++ b/debian/rules @@ -1,6 +1,5 @@ #!/usr/bin/make -f -DEB_CONFIGURE_SCRIPT_ENV += LDFLAGS=-Wl,--as-needed DEB_CONFIGURE_EXTRA_FLAGS := --with-gtk=3.0 --with-spice-gtk include /usr/share/cdbs/1/rules/debhelper.mk diff --git a/depcomp b/depcomp deleted file mode 100755 index df8eea7..0000000 --- a/depcomp +++ /dev/null @@ -1,630 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2009-04-28.21; # UTC - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. - -# 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, 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 . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" - depmode=msvisualcpp -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> "$depfile" - echo >> "$depfile" - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/icons/16x16/Makefile.am b/icons/16x16/Makefile.am new file mode 100644 index 0000000..ba7d6aa --- /dev/null +++ b/icons/16x16/Makefile.am @@ -0,0 +1,7 @@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png + +EXTRA_DIST = $(icon_DATA) + +-include $(top_srcdir)/git.mk diff --git a/icons/16x16/Makefile.in b/icons/16x16/Makefile.in new file mode 100644 index 0000000..f9ff433 --- /dev/null +++ b/icons/16x16/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/16x16 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/16x16/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/16x16/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-iconDATA install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-iconDATA + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/icons/16x16/virt-viewer.png b/icons/16x16/virt-viewer.png new file mode 100644 index 0000000..226881f Binary files /dev/null and b/icons/16x16/virt-viewer.png differ diff --git a/icons/22x22/Makefile.am b/icons/22x22/Makefile.am new file mode 100644 index 0000000..ba7d6aa --- /dev/null +++ b/icons/22x22/Makefile.am @@ -0,0 +1,7 @@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png + +EXTRA_DIST = $(icon_DATA) + +-include $(top_srcdir)/git.mk diff --git a/icons/22x22/Makefile.in b/icons/22x22/Makefile.in new file mode 100644 index 0000000..e6ef1cb --- /dev/null +++ b/icons/22x22/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/22x22 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/22x22/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/22x22/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-iconDATA install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-iconDATA + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/icons/22x22/virt-viewer.png b/icons/22x22/virt-viewer.png new file mode 100644 index 0000000..f244adb Binary files /dev/null and b/icons/22x22/virt-viewer.png differ diff --git a/icons/24x24/Makefile.am b/icons/24x24/Makefile.am new file mode 100644 index 0000000..ba7d6aa --- /dev/null +++ b/icons/24x24/Makefile.am @@ -0,0 +1,7 @@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png + +EXTRA_DIST = $(icon_DATA) + +-include $(top_srcdir)/git.mk diff --git a/icons/24x24/Makefile.in b/icons/24x24/Makefile.in new file mode 100644 index 0000000..cb2a4d7 --- /dev/null +++ b/icons/24x24/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/24x24 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/24x24/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/24x24/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-iconDATA install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-iconDATA + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/icons/24x24/virt-viewer.png b/icons/24x24/virt-viewer.png new file mode 100644 index 0000000..f3d2e65 Binary files /dev/null and b/icons/24x24/virt-viewer.png differ diff --git a/icons/256x256/Makefile.am b/icons/256x256/Makefile.am new file mode 100644 index 0000000..ba7d6aa --- /dev/null +++ b/icons/256x256/Makefile.am @@ -0,0 +1,7 @@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png + +EXTRA_DIST = $(icon_DATA) + +-include $(top_srcdir)/git.mk diff --git a/icons/256x256/Makefile.in b/icons/256x256/Makefile.in new file mode 100644 index 0000000..d3ff71e --- /dev/null +++ b/icons/256x256/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/256x256 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/256x256/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/256x256/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-iconDATA install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-iconDATA + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/icons/256x256/virt-viewer.png b/icons/256x256/virt-viewer.png new file mode 100644 index 0000000..d861b86 Binary files /dev/null and b/icons/256x256/virt-viewer.png differ diff --git a/icons/32x32/Makefile.am b/icons/32x32/Makefile.am new file mode 100644 index 0000000..ba7d6aa --- /dev/null +++ b/icons/32x32/Makefile.am @@ -0,0 +1,7 @@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png + +EXTRA_DIST = $(icon_DATA) + +-include $(top_srcdir)/git.mk diff --git a/icons/32x32/Makefile.in b/icons/32x32/Makefile.in new file mode 100644 index 0000000..80b7981 --- /dev/null +++ b/icons/32x32/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/32x32 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/32x32/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/32x32/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-iconDATA install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-iconDATA + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/icons/32x32/virt-viewer.png b/icons/32x32/virt-viewer.png new file mode 100644 index 0000000..b95ea5d Binary files /dev/null and b/icons/32x32/virt-viewer.png differ diff --git a/icons/48x48/Makefile.am b/icons/48x48/Makefile.am new file mode 100644 index 0000000..ba7d6aa --- /dev/null +++ b/icons/48x48/Makefile.am @@ -0,0 +1,7 @@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png + +EXTRA_DIST = $(icon_DATA) + +-include $(top_srcdir)/git.mk diff --git a/icons/48x48/Makefile.in b/icons/48x48/Makefile.in new file mode 100644 index 0000000..eb7ade9 --- /dev/null +++ b/icons/48x48/Makefile.in @@ -0,0 +1,516 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons/48x48 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +size = $(notdir $(PWD)) +icondir = $(datadir)/icons/hicolor/$(size)/apps/ +icon_DATA = $(PACKAGE).png +EXTRA_DIST = $(icon_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/48x48/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/48x48/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-iconDATA install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-iconDATA + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/icons/48x48/virt-viewer.png b/icons/48x48/virt-viewer.png new file mode 100644 index 0000000..28396d1 Binary files /dev/null and b/icons/48x48/virt-viewer.png differ diff --git a/icons/Makefile.am b/icons/Makefile.am new file mode 100644 index 0000000..0b4c247 --- /dev/null +++ b/icons/Makefile.am @@ -0,0 +1,13 @@ +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256 + +if OS_WIN32 +noinst_DATA = virt-viewer.ico +CLEANFILES = $(noinst_DATA) +endif + +# http://stackoverflow.com/questions/3236115/which-icon-sizes-should-my-windows-applications-icon-include +ico_sizes = 16 32 48 256 +%.ico: $(foreach s,$(ico_sizes),$(s)x$(s)/%.png) + $(AM_V_GEN)$(ICOTOOL) -c -o $@ $^ + +-include $(top_srcdir)/git.mk diff --git a/icons/Makefile.in b/icons/Makefile.in new file mode 100644 index 0000000..f325ae2 --- /dev/null +++ b/icons/Makefile.in @@ -0,0 +1,657 @@ +# Makefile.in generated by automake 1.12.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = icons +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(noinst_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@ +FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB2_CFLAGS = @GLIB2_CFLAGS@ +GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTK_API_VERSION = @GTK_API_VERSION@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +GTK_REQUIRED = @GTK_REQUIRED@ +GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ +GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ +GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@ +LIBVIRT_LIBS = @LIBVIRT_LIBS@ +LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBXML2_LIBS = @LIBXML2_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ +MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +NSPR_CFLAGS = @NSPR_CFLAGS@ +NSPR_LIBS = @NSPR_LIBS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ +SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ +SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ +XGETTEXT = @XGETTEXT@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256 +@OS_WIN32_TRUE@noinst_DATA = virt-viewer.ico +@OS_WIN32_TRUE@CLEANFILES = $(noinst_DATA) + +# http://stackoverflow.com/questions/3236115/which-icon-sizes-should-my-windows-applications-icon-include +ico_sizes = 16 32 48 256 +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu icons/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done +cscopelist-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ + cscopelist-recursive ctags-recursive install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + cscopelist cscopelist-recursive ctags ctags-recursive \ + distclean distclean-generic distclean-libtool distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am + +%.ico: $(foreach s,$(ico_sizes),$(s)x$(s)/%.png) + $(AM_V_GEN)$(ICOTOOL) -c -o $@ $^ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/install-sh b/install-sh deleted file mode 100755 index 6781b98..0000000 --- a/install-sh +++ /dev/null @@ -1,520 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2009-04-28.21; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/ltmain.sh b/ltmain.sh deleted file mode 100755 index aa5624c..0000000 --- a/ltmain.sh +++ /dev/null @@ -1,9636 +0,0 @@ - -# libtool (GNU libtool) 2.4 -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool 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. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . - -PROGRAM=libtool -PACKAGE=libtool -VERSION=2.4 -TIMESTAMP="" -package_revision=1.3293 - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" -done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL - -$lt_unset CDPATH - - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - - - -: ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SED="/bin/sed"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -dirname="s,/[^/]*$,," -basename="s,^.*/,," - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation - - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation - - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation - - -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' - -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi - - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} - -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result - -# Make sure we have an absolute path for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=$func_dirname_result - progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" - ;; - *) - save_IFS="$IFS" - IFS=: - for progdir in $PATH; do - IFS="$save_IFS" - test -x "$progdir/$progname" && break - done - IFS="$save_IFS" - test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' - -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" - -# Standard options: -opt_dry_run=false -opt_help=false -opt_quiet=false -opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} - -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} - -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -} - -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default - - -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - my_directory_path="$1" - my_dir_list= - - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then - - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" - - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` - done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` - - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" - - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi -} - - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - - $ECHO "$my_tmpdir" -} - - -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () -{ - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac - - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -} - - -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac - - func_quote_for_expand_result="$my_arg" -} - - -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug - - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} - -# func_usage -# Echo short help message to standard output and exit. -func_usage () -{ - $opt_debug - - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? -} - -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. -func_help () -{ - $opt_debug - - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi -} - -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $opt_debug - - func_error "missing argument for $1." - exit_cmd=exit -} - - -# func_split_short_opt shortopt -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () -{ - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' - - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation - - -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () -{ - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' - - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation - -exit_cmd=: - - - - - -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" - -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation - -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation - - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation - - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation - - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation - - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation - - -# func_fatal_configuration arg... -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." -} - - -# func_config -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - -# func_features -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - -# func_enable_tag tagname -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname="$1" - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac - - - -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_verbose=: -opt_silent=false -opt_verbose=false - - -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - - # Validate options: - - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi - - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } - - - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE -} - - - - -## ----------- ## -## Main. ## -## ----------- ## - -# func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case "$lalib_p_line" in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test "$lalib_p" = yes -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - func_lalib_p "$1" -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $opt_debug - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs - eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. -func_source () -{ - $opt_debug - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case "$lt_sysroot:$1" in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $opt_debug - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' - else - write_lobj=none - fi - - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $opt_debug - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $opt_debug - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $opt_debug - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $opt_debug - if test -z "$2" && test -n "$1" ; then - func_error "Could not determine host file name corresponding to" - func_error " \`$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result="$1" - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $opt_debug - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " \`$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result="$3" - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $opt_debug - case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via `$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $opt_debug - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $opt_debug - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result="$1" -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via `$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $opt_debug - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $opt_debug - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result="$1" -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_mode_compile arg... -func_mode_compile () -{ - $opt_debug - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj="$func_basename_result" - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - - echo - $ECHO "Try \`$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test "$opt_help" = :; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - sed '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $opt_debug - # The first argument is the command name. - cmd="$nonopt" - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir="$func_dirname_result" - ;; - - *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file="$progdir/$program" - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "\`$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument \`$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $opt_debug - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "\`$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking \`$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname="$1" - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme="$stripme" - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme="" - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - $opt_dry_run || { - if test "$finalize" = yes; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_silent || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink \`$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file="$outputname" - else - func_warning "cannot relink \`$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name="$func_basename_result" - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = install && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' - - # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $opt_debug - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $opt_debug - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $opt_debug - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result="" - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $opt_debug - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib="$func_basename_result" - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -/* declarations of non-ANSI functions */ -#if defined(__MINGW32__) -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined(__CYGWIN__) -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined (other platforms) ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined(__CYGWIN__) -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ -#endif - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -#if defined(LT_DEBUGWRAPPER) -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp (str, pat) == 0) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - int len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - int orig_value_len = strlen (orig_value); - int add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - int len = strlen (new_value); - while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[len-1] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' - - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $opt_debug - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $opt_debug - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module="${wl}-single_module" - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir="$arg" - prev= - continue - ;; - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file \`$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module="${wl}-multi_module" - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs="$tmp_deplibs" - fi - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs="$dlprefiles" - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - ;; - esac - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib="$l" - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" - fi - ;; - esac - func_basename "$lib" - laname="$func_basename_result" - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - case "$host" in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" - break - fi - done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - echo - if test "$linkmode" = prog; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname="$1" - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc*) - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - func_basename "$soroot" - soname="$func_basename_result" - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from \`$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - elif test -n "$old_library"; then - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path="$deplib" ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi - ;; - *) - path="-L$absdir/$objdir" - ;; - esac - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" - - path="-L$absdir" - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "\`-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" - - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - shift - IFS="$save_ifs" - - test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$1" - number_minor="$2" - number_revision="$3" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - esac - ;; - no) - current="$1" - revision="$2" - age="$3" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - func_append verstring ":${current}.0" - ;; - - qnx) - major=".$current" - versuffix=".$current" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - - *) - func_fatal_configuration "unknown library version type \`$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - fi - - func_generate_dlsyms "$libname" "$libname" "yes" - func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - - if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_apped perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols="$export_symbols" - export_symbols= - always_export_symbols=yes - fi - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd1 in $cmds; do - IFS="$save_ifs" - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test "$try_normal_branch" = yes \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=${output_objdir}/${output_la}.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test "$compiler_needs_object" = yes; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test "X$objlist" = X || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - if ${skipped_export-false}; then - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - fi - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "\`-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "\`-release' is ignored for programs" - - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=yes - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no - ;; - *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - esac - if test "$wrappers_required" = no; then - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - - exit $exit_status - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase="$func_basename_result" - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $opt_debug - RM="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" - else - odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" - - # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case "$opt_mode" in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - -test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: -# vi:sw=2 - diff --git a/m4/intltool.m4 b/m4/intltool.m4 new file mode 100644 index 0000000..33353ed --- /dev/null +++ b/m4/intltool.m4 @@ -0,0 +1,237 @@ +## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- +## Copyright (C) 2001 Eazel, Inc. +## Author: Maciej Stachowiak +## Kenneth Christiansen +## +## 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, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +## +## As a special exception to the GNU General Public License, if you +## distribute this file as part of a program that contains a +## configuration script generated by Autoconf, you may include it under +## the same distribution terms that you use for the rest of that program. + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 42 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], + [[extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr]])], + [DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share + dnl in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [DATADIRNAME=share], [DATADIRNAME=lib]) + ;; + *) + [DATADIRNAME=lib] + ;; + esac]) +fi +AC_SUBST(DATADIRNAME) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 88de383..56666f0 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,8 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -11,8 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -146,6 +146,8 @@ AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -637,7 +639,7 @@ m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -801,6 +803,7 @@ m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -820,6 +823,31 @@ m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG @@ -851,6 +879,10 @@ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], @@ -954,7 +986,13 @@ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -962,6 +1000,7 @@ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -973,6 +1012,7 @@ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF @@ -990,7 +1030,9 @@ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1035,8 +1077,8 @@ ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -1047,6 +1089,8 @@ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi @@ -1330,14 +1374,27 @@ CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1414,13 +1471,13 @@ if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -1598,6 +1655,11 @@ interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 ;; osf*) @@ -1639,7 +1701,7 @@ # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -2185,7 +2247,7 @@ case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2194,7 +2256,7 @@ ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2259,7 +2321,7 @@ ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2398,16 +2460,12 @@ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no ;; freebsd* | dragonfly*) @@ -2417,7 +2475,7 @@ objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2435,7 +2493,7 @@ esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2455,17 +2513,18 @@ ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -2526,7 +2585,7 @@ ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2542,7 +2601,7 @@ nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2579,9 +2638,9 @@ dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2648,7 +2707,7 @@ ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2717,7 +2776,7 @@ ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2742,7 +2801,7 @@ ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2766,7 +2825,7 @@ sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2797,7 +2856,7 @@ tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2807,7 +2866,7 @@ ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -3229,7 +3288,7 @@ lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3649,6 +3708,7 @@ # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -4233,7 +4293,9 @@ case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi ;; esac else @@ -4325,17 +4387,32 @@ ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; @@ -4496,7 +4573,9 @@ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) ;; + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] @@ -4521,7 +4600,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4772,8 +4850,7 @@ xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ @@ -5068,6 +5145,7 @@ # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' @@ -5114,10 +5192,6 @@ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -5130,7 +5204,7 @@ ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -5169,7 +5243,6 @@ fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -5611,9 +5684,6 @@ _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5771,7 +5841,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -6141,7 +6210,7 @@ esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -6902,12 +6971,18 @@ } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary @@ -7104,7 +7179,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7237,7 +7311,6 @@ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7424,6 +7497,77 @@ ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -7491,6 +7635,13 @@ AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) # LT_PROG_RC diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 17cfd51..5d9acd8 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -326,9 +326,24 @@ # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index 9c7b5d4..07a8602 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -9,15 +9,15 @@ # @configure_input@ -# serial 3293 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/maint.mk b/maint.mk new file mode 100644 index 0000000..bac7a96 --- /dev/null +++ b/maint.mk @@ -0,0 +1,1514 @@ +# -*-Makefile-*- +# This Makefile fragment tries to be general-purpose enough to be +# used by many projects via the gnulib maintainer-makefile module. + +## Copyright (C) 2001-2011 Free Software Foundation, Inc. +## +## 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 3 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 . + +# This is reported not to work with make-3.79.1 +# ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) +ME := maint.mk + +# Diagnostic for continued use of deprecated variable. +# Remove in 2013 +ifneq ($(build_aux),) + $(error "$(ME): \ +set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)") +endif + +# Do not save the original name or timestamp in the .tar.gz file. +# Use --rsyncable if available. +gzip_rsyncable := \ + $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \ + && printf %s --rsyncable) +GZIP_ENV = '--no-name --best $(gzip_rsyncable)' + +GIT = git +VC = $(GIT) + +VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) + +# You can override this variable in cfg.mk to set your own regexp +# matching files to ignore. +VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ + +# This is to preprocess robustly the output of $(VC_LIST), so that even +# when $(srcdir) is a pathological name like "....", the leading sed command +# removes only the intended prefix. +_dot_escaped_srcdir = $(subst .,\.,$(srcdir)) + +# Post-process $(VC_LIST) output, prepending $(srcdir)/, but only +# when $(srcdir) is not ".". +ifeq ($(srcdir),.) +_prepend_srcdir_prefix = +else +_prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|' +endif + +# In order to be able to consistently filter "."-relative names, +# (i.e., with no $(srcdir) prefix), this definition is careful to +# remove any $(srcdir) prefix, and to restore what it removes. +_sc_excl = \ + $(if $(exclude_file_name_regexp--$@),$(exclude_file_name_regexp--$@),^$$) +VC_LIST_EXCEPT = \ + $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \ + | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ + else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ + | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ + $(_prepend_srcdir_prefix) + +ifeq ($(origin prev_version_file), undefined) + prev_version_file = $(srcdir)/.prev-version +endif + +PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) +VERSION_REGEXP = $(subst .,\.,$(VERSION)) +PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) + +ifeq ($(VC),$(GIT)) +this-vc-tag = v$(VERSION) +this-vc-tag-regexp = v$(VERSION_REGEXP) +else +tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') +tag-this-version = $(subst .,_,$(VERSION)) +this-vc-tag = $(tag-package)-$(tag-this-version) +this-vc-tag-regexp = $(this-vc-tag) +endif +my_distdir = $(PACKAGE)-$(VERSION) + +# Old releases are stored here. +release_archive_dir ?= ../release + +# Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. +# Use alpha.gnu.org for alpha and beta releases. +# Use ftp.gnu.org for stable releases. +gnu_ftp_host-alpha = alpha.gnu.org +gnu_ftp_host-beta = alpha.gnu.org +gnu_ftp_host-stable = ftp.gnu.org +gnu_rel_host ?= $(gnu_ftp_host-$(RELEASE_TYPE)) + +ifeq ($(gnu_rel_host),ftp.gnu.org) +url_dir_list ?= http://ftpmirror.gnu.org/$(PACKAGE) +else +url_dir_list ?= ftp://$(gnu_rel_host)/gnu/$(PACKAGE) +endif + +# Override this in cfg.mk if you are using a different format in your +# NEWS file. +today = $(shell date +%Y-%m-%d) + +# Select which lines of NEWS are searched for $(news-check-regexp). +# This is a sed line number spec. The default says that we search +# lines 1..10 of NEWS for $(news-check-regexp). +# If you want to search only line 3 or only lines 20-22, use "3" or "20,22". +news-check-lines-spec ?= 1,10 +news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' + +# Prevent programs like 'sort' from considering distinct strings to be equal. +# Doing it here saves us from having to set LC_ALL elsewhere in this file. +export LC_ALL = C + +## --------------- ## +## Sanity checks. ## +## --------------- ## + +_cfg_mk := $(shell test -f $(srcdir)/cfg.mk && echo '$(srcdir)/cfg.mk') + +# Collect the names of rules starting with `sc_'. +syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \ + $(srcdir)/$(ME) $(_cfg_mk))) +.PHONY: $(syntax-check-rules) + +ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) +local-checks-available += $(syntax-check-rules) +else +local-checks-available += no-vc-detected +no-vc-detected: + @echo "No version control files detected; skipping syntax check" +endif +.PHONY: $(local-checks-available) + +# Arrange to print the name of each syntax-checking rule just before running it. +$(syntax-check-rules): %: %.m +sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) +.PHONY: $(sc_m_rules_) +$(sc_m_rules_): + @echo $(patsubst sc_%.m, %, $@) + @date +%s.%N > .sc-start-$(basename $@) + +# Compute and print the elapsed time for each syntax-check rule. +sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) +.PHONY: $(sc_z_rules_) +$(sc_z_rules_): %.z: % + @end=$$(date +%s.%N); \ + start=$$(cat .sc-start-$*); \ + rm -f .sc-start-$*; \ + awk -v s=$$start -v e=$$end \ + 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null + +# The patsubst here is to replace each sc_% rule with its sc_%.z wrapper +# that computes and prints elapsed time. +local-check := \ + $(patsubst sc_%, sc_%.z, \ + $(filter-out $(local-checks-to-skip), $(local-checks-available))) + +syntax-check: $(local-check) + +# _sc_search_regexp +# +# This macro searches for a given construct in the selected files and +# then takes some action. +# +# Parameters (shell variables): +# +# prohibit | require +# +# Regular expression (ERE) denoting either a forbidden construct +# or a required construct. Those arguments are exclusive. +# +# in_vc_files | in_files +# +# grep-E-style regexp denoting the files to check. If no files +# are specified the default are all the files that are under +# version control. +# +# containing | non_containing +# +# Select the files (non) containing strings matching this regexp. +# If both arguments are specified then CONTAINING takes +# precedence. +# +# with_grep_options +# +# Extra options for grep. +# +# ignore_case +# +# Ignore case. +# +# halt +# +# Message to display before to halting execution. +# +# Finally, you may exempt files based on an ERE matching file names. +# For example, to exempt from the sc_space_tab check all files with the +# .diff suffix, set this Make variable: +# +# exclude_file_name_regexp--sc_space_tab = \.diff$ +# +# Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, +# when filtering by name via in_files, we explicitly filter out matching +# names here as well. + +# By default, _sc_search_regexp does not ignore case. +export ignore_case = +_ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) + +define _sc_say_and_exit + dummy=; : so we do not need a semicolon before each use; \ + { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; +endef + +# _sc_search_regexp used to be named _prohibit_regexp. However, +# upgrading to the new definition and leaving the old name undefined +# would usually convert each custom rule using $(_prohibit_regexp) +# (usually defined in cfg.mk) into a no-op. This definition ensures +# that people know right away if they're still using the old name. +# FIXME: remove in 2012. +_prohibit_regexp = \ + $(error '*** you need to s/_prohibit_regexp/_sc_search_regexp/, and adapt') + +define _sc_search_regexp + dummy=; : so we do not need a semicolon before each use; \ + \ + : Check arguments; \ + test -n "$$prohibit" && test -n "$$require" \ + && { msg='Cannot specify both prohibit and require' \ + $(_sc_say_and_exit) } || :; \ + test -z "$$prohibit" && test -z "$$require" \ + && { msg='Should specify either prohibit or require' \ + $(_sc_say_and_exit) } || :; \ + test -n "$$in_vc_files" && test -n "$$in_files" \ + && { msg='Cannot specify both in_vc_files and in_files' \ + $(_sc_say_and_exit) } || :; \ + test "x$$halt" != x \ + || { msg='halt not defined' $(_sc_say_and_exit) }; \ + \ + : Filter by file name; \ + if test -n "$$in_files"; then \ + files=$$(find $(srcdir) | grep -E "$$in_files" \ + | grep -Ev '$(exclude_file_name_regexp--$@)'); \ + else \ + files=$$($(VC_LIST_EXCEPT)); \ + if test -n "$$in_vc_files"; then \ + files=$$(echo "$$files" | grep -E "$$in_vc_files"); \ + fi; \ + fi; \ + \ + : Filter by content; \ + test -n "$$files" && test -n "$$containing" \ + && { files=$$(grep -l "$$containing" $$files); } || :; \ + test -n "$$files" && test -n "$$non_containing" \ + && { files=$$(grep -vl "$$non_containing" $$files); } || :; \ + \ + : Check for the construct; \ + if test -n "$$files"; then \ + if test -n "$$prohibit"; then \ + grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \ + && { msg="$$halt" $(_sc_say_and_exit) } || :; \ + else \ + grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \ + | grep . \ + && { msg="$$halt" $(_sc_say_and_exit) } || :; \ + fi \ + else :; \ + fi || :; +endef + +sc_avoid_if_before_free: + @$(srcdir)/$(_build-aux)/useless-if-before-free \ + $(useless_free_options) \ + $$($(VC_LIST_EXCEPT) | grep -v useless-if-before-free) && \ + { echo '$(ME): found useless "if" before "free" above' 1>&2; \ + exit 1; } || : + +sc_cast_of_argument_to_free: + @prohibit='\&2; exit 1; } || : + +# Pass EXIT_*, not number, to usage, exit, and error (when exiting) +# Convert all uses automatically, via these two commands: +# git grep -l '\&2; \ + exit 1; } || : + +# Error messages should not start with a capital letter +sc_error_message_uppercase: + @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ + | grep -E '"[A-Z]' \ + | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' && \ + { echo '$(ME): found capitalized error message' 1>&2; \ + exit 1; } || : + +# Error messages should not end with a period +sc_error_message_period: + @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ + | grep -E '[^."]\."' && \ + { echo '$(ME): found error message ending in period' 1>&2; \ + exit 1; } || : + +sc_file_system: + @prohibit=file''system \ + ignore_case=1 \ + halt='found use of "file''system"; spell it "file system"' \ + $(_sc_search_regexp) + +# Don't use cpp tests of this symbol. All code assumes config.h is included. +sc_prohibit_have_config_h: + @prohibit='^# *if.*HAVE''_CONFIG_H' \ + halt='found use of HAVE''_CONFIG_H; remove' \ + $(_sc_search_regexp) + +# Nearly all .c files must include . However, we also permit this +# via inclusion of a package-specific header, if cfg.mk specified one. +# config_h_header must be suitable for grep -E. +config_h_header ?= +sc_require_config_h: + @require='^# *include $(config_h_header)' \ + in_vc_files='\.c$$' \ + halt='the above files do not include ' \ + $(_sc_search_regexp) + +# You must include before including any other header file. +# This can possibly be via a package-specific header, if given by cfg.mk. +sc_require_config_h_first: + @if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ + fail=0; \ + for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \ + grep '^# *include\>' $$i | sed 1q \ + | grep -E '^# *include $(config_h_header)' > /dev/null \ + || { echo $$i; fail=1; }; \ + done; \ + test $$fail = 1 && \ + { echo '$(ME): the above files include some other header' \ + 'before ' 1>&2; exit 1; } || :; \ + else :; \ + fi + +sc_prohibit_HAVE_MBRTOWC: + @prohibit='\bHAVE_MBRTOWC\b' \ + halt="do not use $$prohibit; it is always defined" \ + $(_sc_search_regexp) + +# To use this "command" macro, you must first define two shell variables: +# h: the header name, with no enclosing <> or "" +# re: a regular expression that matches IFF something provided by $h is used. +define _sc_header_without_use + dummy=; : so we do not need a semicolon before each use; \ + h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`; \ + if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ + files=$$(grep -l '^# *include '"$$h_esc" \ + $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ + grep -LE "$$re" $$files | grep . && \ + { echo "$(ME): the above files include $$h but don't use it" \ + 1>&2; exit 1; } || :; \ + else :; \ + fi +endef + +# Prohibit the inclusion of assert.h without an actual use of assert. +sc_prohibit_assert_without_use: + @h='assert.h' re='\new(file => "/dev/stdin")->as_string'|sed 's/\?://g' +# Note this was produced by the above: +# _xa1 = \ +#x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) +# But we can do better, in at least two ways: +# 1) take advantage of two "dup"-suffixed strings: +# x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) +# 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable +# "char|[cmz]" +# x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) +_xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) +_xa2 = X([CZ]|N?M)ALLOC +sc_prohibit_xalloc_without_use: + @h='xalloc.h' \ + re='\<($(_xa1)|$(_xa2)) *\('\ + $(_sc_header_without_use) + +# Extract function names: +# perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h +_hash_re = \ +clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning +_hash_fn = \<($(_hash_re)) *\( +_hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> +sc_prohibit_hash_without_use: + @h='hash.h' \ + re='$(_hash_fn)|$(_hash_struct)'\ + $(_sc_header_without_use) + +sc_prohibit_cloexec_without_use: + @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ + $(_sc_header_without_use) + +sc_prohibit_posixver_without_use: + @h='posixver.h' re='\' \ + halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ + $(_sc_search_regexp) + +# FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ + +# Each nonempty ChangeLog line must start with a year number, or a TAB. +sc_changelog: + @prohibit='^[^12 ]' \ + in_vc_files='^ChangeLog$$' \ + halt='found unexpected prefix in a ChangeLog' \ + $(_sc_search_regexp) + +# Ensure that each .c file containing a "main" function also +# calls set_program_name. +sc_program_name: + @require='set_program_name *\(m?argv\[0\]\);' \ + in_vc_files='\.c$$' \ + containing='\
/dev/null \ + && : || { die=1; echo $$i; } \ + done; \ + test $$die = 1 && \ + { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ + echo 1>&2 'Exit something'; \ + exit 1; } || :; \ + fi + +sc_trailing_blank: + @prohibit='[ ]$$' \ + halt='found trailing blank(s)' \ + $(_sc_search_regexp) + +# Match lines like the following, but where there is only one space +# between the options and the description: +# -D, --all-repeated[=delimit-method] print all duplicate lines\n +longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)? +sc_two_space_separator_in_usage: + @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ + halt='help2man requires at least two spaces between an option and its description'\ + $(_sc_search_regexp) + +# A regexp matching function names like "error" that may be used +# to emit translatable messages. +_gl_translatable_diag_func_re ?= error + +# Look for diagnostics that aren't marked for translation. +# This won't find any for which error's format string is on a separate line. +sc_unmarked_diagnostics: + @grep -nE \ + '\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ + $$($(VC_LIST_EXCEPT)) \ + | grep -Ev '(_|ngettext ?)\(' && \ + { echo '$(ME): found unmarked diagnostic(s)' 1>&2; \ + exit 1; } || : + +# Avoid useless parentheses like those in this example: +# #if defined (SYMBOL) || defined (SYM2) +sc_useless_cpp_parens: + @prohibit='^# *if .*defined *\(' \ + halt='found useless parentheses in cpp directive' \ + $(_sc_search_regexp) + +# List headers for which HAVE_HEADER_H is always true, assuming you are +# using the appropriate gnulib module. CAUTION: for each "unnecessary" +# #if HAVE_HEADER_H that you remove, be sure that your project explicitly +# requires the gnulib module that guarantees the usability of that header. +gl_assured_headers_ = \ + cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//g' + +# Convert the list of names to upper case, and replace each space with "|". +az_ = abcdefghijklmnopqrstuvwxyz +AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ +gl_header_upper_case_or_ = \ + $$($(gl_assured_headers_) \ + | tr $(az_)/.- $(AZ_)___ \ + | tr -s ' ' '|' \ + ) +sc_prohibit_always_true_header_tests: + @or=$(gl_header_upper_case_or_); \ + re="HAVE_($$or)_H"; \ + prohibit='\<'"$$re"'\>' \ + halt=$$(printf '%s\n' \ + 'do not test the above HAVE_
_H symbol(s);' \ + ' with the corresponding gnulib module, they are always true') \ + $(_sc_search_regexp) + +# ================================================================== +gl_other_headers_ ?= \ + intprops.h \ + openat.h \ + stat-macros.h + +# Perl -lne code to extract "significant" cpp-defined symbols from a +# gnulib header file, eliminating a few common false-positives. +# The exempted names below are defined only conditionally in gnulib, +# and hence sometimes must/may be defined in application code. +gl_extract_significant_defines_ = \ + /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ + && $$2 !~ /(?:rpl_|_used_without_)/\ + && $$1 !~ /^(?:NSIG|ENODATA)$$/\ + && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ + and print $$1 + +# Create a list of regular expressions matching the names +# of macros that are guaranteed to be defined by parts of gnulib. +define def_sym_regex + gen_h=$(gl_generated_headers_); \ + (cd $(gnulib_dir)/lib; \ + for f in *.in.h $(gl_other_headers_); do \ + test -f $$f \ + && perl -lne '$(gl_extract_significant_defines_)' $$f; \ + done; \ + ) | sort -u \ + | sed 's/^/^ *# *(define|undef) */;s/$$/\\>/' +endef + +# Don't define macros that we already get from gnulib header files. +sc_prohibit_always-defined_macros: + @if test -d $(gnulib_dir); then \ + case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \ + echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ + esac; \ + $(def_sym_regex) | grep -E -f - $$($(VC_LIST_EXCEPT)) \ + && { echo '$(ME): define the above via some gnulib .h file' \ + 1>&2; exit 1; } || :; \ + fi +# ================================================================== + +# Prohibit checked in backup files. +sc_prohibit_backup_files: + @$(VC_LIST) | grep '~$$' && \ + { echo '$(ME): found version controlled backup file' 1>&2; \ + exit 1; } || : + +# Require the latest GPL. +sc_GPL_version: + @prohibit='either ''version [^3]' \ + halt='GPL vN, N!=3' \ + $(_sc_search_regexp) + +# Require the latest GFDL. Two regexp, since some .texi files end up +# line wrapping between 'Free Documentation License,' and 'Version'. +_GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) +sc_GFDL_version: + @prohibit='$(_GFDL_regexp)' \ + halt='GFDL vN, N!=3' \ + $(_sc_search_regexp) + +# Don't use Texinfo's @acronym{}. +# http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html +texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ +sc_texinfo_acronym: + @prohibit='@acronym\{' \ + in_vc_files='$(texinfo_suffix_re_)' \ + halt='found use of Texinfo @acronym{}' \ + $(_sc_search_regexp) + +cvs_keywords = \ + Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State + +sc_prohibit_cvs_keyword: + @prohibit='\$$($(cvs_keywords))\$$' \ + halt='do not use CVS keyword expansion' \ + $(_sc_search_regexp) + +# This Perl code is slightly obfuscated. Not only is each "$" doubled +# because it's in a Makefile, but the $$c's are comments; we cannot +# use "#" due to the way the script ends up concatenated onto one line. +# It would be much more concise, and would produce better output (including +# counts) if written as: +# perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... +# but that would be far less efficient, reading the entire contents +# of each file, rather than just the last two bytes of each. +# In addition, while the code below detects both blank lines and a missing +# newline at EOF, the above detects only the former. +# +# This is a perl script that is expected to be the single-quoted argument +# to a command-line "-le". The remaining arguments are file names. +# Print the name of each file that ends in exactly one newline byte. +# I.e., warn if there are blank lines (2 or more newlines), or if the +# last byte is not a newline. However, currently we don't complain +# about any file that contains exactly one byte. +# Exit nonzero if at least one such file is found, otherwise, exit 0. +# Warn about, but otherwise ignore open failure. Ignore seek/read failure. +# +# Use this if you want to remove trailing empty lines from selected files: +# perl -pi -0777 -e 's/\n\n+$/\n/' files... +# +require_exactly_one_NL_at_EOF_ = \ + foreach my $$f (@ARGV) \ + { \ + open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ + my $$p = sysseek (F, -2, 2); \ + my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ + my $$last_two_bytes; \ + defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ + close F; \ + $$c = "ignore read failure"; \ + $$p && ($$last_two_bytes eq "\n\n" \ + || substr ($$last_two_bytes,1) ne "\n") \ + and (print $$f), $$fail=1; \ + } \ + END { exit defined $$fail } +sc_prohibit_empty_lines_at_EOF: + @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \ + || { echo '$(ME): empty line(s) or no newline at EOF' \ + 1>&2; exit 1; } || : + +# Make sure we don't use st_blocks. Use ST_NBLOCKS instead. +# This is a bit of a kludge, since it prevents use of the string +# even in comments, but for now it does the job with no false positives. +sc_prohibit_stat_st_blocks: + @prohibit='[.>]st_blocks' \ + halt='do not use st_blocks; use ST_NBLOCKS' \ + $(_sc_search_regexp) + +# Make sure we don't define any S_IS* macros in src/*.c files. +# They're already defined via gnulib's sys/stat.h replacement. +sc_prohibit_S_IS_definition: + @prohibit='^ *# *define *S_IS' \ + halt='do not define S_IS* macros; include ' \ + $(_sc_search_regexp) + +# Perl block to convert a match to FILE_NAME:LINENO:TEST, +# that is shared by two definitions below. +perl_filename_lineno_text_ = \ + -e ' {' \ + -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ + -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ + -e ' print "$$ARGV:$$n:$$v\n";' \ + -e ' }' + +prohibit_doubled_word_RE_ ?= \ + /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims +prohibit_doubled_word_ = \ + -e 'while ($(prohibit_doubled_word_RE_))' \ + $(perl_filename_lineno_text_) + +# Define this to a regular expression that matches +# any filename:dd:match lines you want to ignore. +# The default is to ignore no matches. +ignore_doubled_word_match_RE_ ?= ^$$ + +sc_prohibit_doubled_word: + @perl -n -0777 $(prohibit_doubled_word_) $$($(VC_LIST_EXCEPT)) \ + | grep -vE '$(ignore_doubled_word_match_RE_)' \ + | grep . && { echo '$(ME): doubled words' 1>&2; exit 1; } || : + +# A regular expression matching undesirable combinations of words like +# "can not"; this matches them even when the two words appear on different +# lines, but not when there is an intervening delimiter like "#" or "*". +prohibit_undesirable_word_seq_RE_ ?= \ + /\bcan\s+not\b/gims +prohibit_undesirable_word_seq_ = \ + -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ + $(perl_filename_lineno_text_) +# Define this to a regular expression that matches +# any filename:dd:match lines you want to ignore. +# The default is to ignore no matches. +ignore_undesirable_word_sequence_RE_ ?= ^$$ + +sc_prohibit_undesirable_word_seq: + @perl -n -0777 $(prohibit_undesirable_word_seq_) \ + $$($(VC_LIST_EXCEPT)) \ + | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \ + && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || : + +_ptm1 = use "test C1 && test C2", not "test C1 -''a C2" +_ptm2 = use "test C1 || test C2", not "test C1 -''o C2" +# Using test's -a and -o operators is not portable. +# We prefer test over [, since the latter is spelled [[ in configure.ac. +sc_prohibit_test_minus_ao: + @prohibit='(\ /dev/null \ + || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ + done; \ + test $$fail = 1 && \ + { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ + exit 1; } || :; \ + fi + +# Warn about "c0nst struct Foo const foo[]", +# but not about "char const *const foo" or "#define const const". +sc_redundant_const: + @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ + halt='redundant "const" in declarations' \ + $(_sc_search_regexp) + +sc_const_long_option: + @grep '^ *static.*struct option ' $$($(VC_LIST_EXCEPT)) \ + | grep -Ev 'const struct option|struct option const' && { \ + echo 1>&2 '$(ME): add "const" to the above declarations'; \ + exit 1; } || : + +NEWS_hash = \ + $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ + $(srcdir)/NEWS \ + | perl -0777 -pe \ + 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ + | md5sum - \ + | sed 's/ .*//') + +# Ensure that we don't accidentally insert an entry into an old NEWS block. +sc_immutable_NEWS: + @if test -f $(srcdir)/NEWS; then \ + test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ + { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ + fi + +# Update the hash stored above. Do this after each release and +# for any corrections to old entries. +update-NEWS-hash: NEWS + perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ + $(srcdir)/cfg.mk + +# Ensure that we use only the standard $(VAR) notation, +# not @...@ in Makefile.am, now that we can rely on automake +# to emit a definition for each substituted variable. +# However, there is still one case in which @VAR@ use is not just +# legitimate, but actually required: when augmenting an automake-defined +# variable with a prefix. For example, gettext uses this: +# MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ +# otherwise, makeinfo would put German or French (current locale) +# navigation hints in the otherwise-English documentation. +# +# Allow the package to add exceptions via a hook in cfg.mk; +# for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by +# setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. +_makefile_at_at_check_exceptions ?= +sc_makefile_at_at_check: + @perl -ne '/\@[A-Z_0-9]+\@/' \ + -e ' && !/([A-Z_0-9]+)\s+=.*\@\1\@$$/' \ + -e ''$(_makefile_at_at_check_exceptions) \ + -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ + $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ + && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : + +news-check: NEWS + if sed -n $(news-check-lines-spec)p $(srcdir)/NEWS \ + | grep -E $(news-check-regexp) >/dev/null; then \ + :; \ + else \ + echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ + exit 1; \ + fi + +sc_makefile_TAB_only_indentation: + @prohibit='^ [ ]{8}' \ + in_vc_files='akefile|\.mk$$' \ + halt='found TAB-8-space indentation' \ + $(_sc_search_regexp) + +sc_m4_quote_check: + @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ + in_vc_files='(^configure\.ac|\.m4)$$' \ + halt='quote the first arg to AC_DEF*' \ + $(_sc_search_regexp) + +fix_po_file_diag = \ +'you have changed the set of files with translatable diagnostics;\n\ +apply the above patch\n' + +# Verify that all source files using _() are listed in po/POTFILES.in. +po_file ?= $(srcdir)/po/POTFILES.in +generated_files ?= $(srcdir)/lib/*.[ch] +sc_po_check: + @if test -f $(po_file); then \ + grep -E -v '^(#|$$)' $(po_file) \ + | grep -v '^src/false\.c$$' \ + | sed 's|\[type: gettext/glade\] ||' \ + | sort > $@-1; \ + files=; \ + for file in $$($(VC_LIST_EXCEPT)) $(generated_files); do \ + test -r $$file || continue; \ + case $$file in \ + *.m4|*.mk) continue ;; \ + *.?|*.??) ;; \ + *.xml) ;; \ + *) continue;; \ + esac; \ + case $$file in \ + *.[ch]) \ + base=`expr " $$file" : ' \(.*\)\..'`; \ + { test -f $$base.l || test -f $$base.y; } && continue;; \ + esac; \ + files="$$files $$file"; \ + done; \ + grep -E -l '(\b(N?_|gettext *)\([^)"]*("|$$))|()' $$files \ + | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2; \ + diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ + || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ + rm -f $@-1 $@-2; \ + fi + +# Sometimes it is useful to change the PATH environment variable +# in Makefiles. When doing so, it's better not to use the Unix-centric +# path separator of `:', but rather the automake-provided `$(PATH_SEPARATOR)'. +msg = '$(ME): Do not use `:'\'' above; use $$(PATH_SEPARATOR) instead' +sc_makefile_path_separator_check: + @prohibit='PATH[=].*:' \ + in_vc_files='akefile|\.mk$$' \ + halt=$(msg) \ + $(_sc_search_regexp) + +# Check that `make alpha' will not fail at the end of the process, +# i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) +# and is read-only. +writable-files: + if test -d $(release_archive_dir); then \ + for file in $(DIST_ARCHIVES); do \ + for p in ./ $(release_archive_dir)/; do \ + test -e $$p$$file || continue; \ + test -w $$p$$file \ + || { echo ERROR: $$p$$file is not writable; fail=1; }; \ + done; \ + done; \ + test "$$fail" && exit 1 || : ; \ + else :; \ + fi + +v_etc_file = $(gnulib_dir)/lib/version-etc.c +sample-test = tests/sample-test +texi = doc/$(PACKAGE).texi +# Make sure that the copyright date in $(v_etc_file) is up to date. +# Do the same for the $(sample-test) and the main doc/.texi file. +sc_copyright_check: + @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ + in_files=$(v_etc_file) \ + halt='out of date copyright in $(v_etc_file); update it' \ + $(_sc_search_regexp) + @require='# Copyright \(C\) '$$(date +%Y)' Free' \ + in_vc_files=$(sample-test) \ + halt='out of date copyright in $(sample-test); update it' \ + $(_sc_search_regexp) + @require='Copyright @copyright\{\} .*'$$(date +%Y)' Free' \ + in_vc_files=$(texi) \ + halt='out of date copyright in $(texi); update it' \ + $(_sc_search_regexp) + +# If tests/help-version exists and seems to be new enough, assume that its +# use of init.sh and path_prepend_ is correct, and ensure that every other +# use of init.sh is identical. +# This is useful because help-version cross-checks prog --version +# with $(VERSION), which verifies that its path_prepend_ invocation +# sets PATH correctly. This is an inexpensive way to ensure that +# the other init.sh-using tests also get it right. +_hv_file ?= $(srcdir)/tests/help-version +_hv_regex_weak ?= ^ *\. .*/init\.sh" +# Fix syntax-highlighters " +_hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" +sc_cross_check_PATH_usage_in_tests: + @if test -f $(_hv_file); then \ + grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \ + || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ + exit 0; }; \ + grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ + || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ + exit 1; }; \ + good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \ + grep -LFx "$$good" \ + $$(grep -lE '$(_hv_regex_weak)' $$($(VC_LIST_EXCEPT))) \ + | grep . && \ + { echo "$(ME): the above files use path_prepend_ inconsistently" \ + 1>&2; exit 1; } || :; \ + fi + +# #if HAVE_... will evaluate to false for any non numeric string. +# That would be flagged by using -Wundef, however gnulib currently +# tests many undefined macros, and so we can't enable that option. +# So at least preclude common boolean strings as macro values. +sc_Wundef_boolean: + @prohibit='^#define.*(yes|no|true|false)$$' \ + in_files='$(CONFIG_INCLUDE)' \ + halt='Use 0 or 1 for macro values' \ + $(_sc_search_regexp) + +# Even if you use pathmax.h to guarantee that PATH_MAX is defined, it might +# not be constant, or might overflow a stack. In general, use PATH_MAX as +# a limit, not an array or alloca size. +sc_prohibit_path_max_allocation: + @prohibit='(\balloca *\([^)]*|\[[^]]*)PATH_MAX' \ + halt='Avoid stack allocations of size PATH_MAX' \ + $(_sc_search_regexp) + +sc_vulnerable_makefile_CVE-2009-4029: + @prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \ + in_files=$$(find $(srcdir) -name Makefile.in) \ + halt=$$(printf '%s\n' \ + 'the above files are vulnerable; beware of running' \ + ' "make dist*" rules, and upgrade to fixed automake' \ + ' see http://bugzilla.redhat.com/542609 for details') \ + $(_sc_search_regexp) + +vc-diff-check: + (unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || : + if test -s vc-diffs; then \ + cat vc-diffs; \ + echo "Some files are locally modified:" 1>&2; \ + exit 1; \ + else \ + rm vc-diffs; \ + fi + +rel-files = $(DIST_ARCHIVES) + +gnulib_dir ?= $(srcdir)/gnulib +gnulib-version = $$(cd $(gnulib_dir) && git describe) +bootstrap-tools ?= autoconf,automake,gnulib + +# If it's not already specified, derive the GPG key ID from +# the signed tag we've just applied to mark this release. +gpg_key_ID ?= \ + $$(git cat-file tag v$(VERSION) > .ann-sig \ + && gpgv .ann-sig - < /dev/null 2>&1 \ + | sed -n '/.*key ID \([0-9A-F]*\)/s//\1/p'; rm -f .ann-sig) + +translation_project_ ?= coordinator@translationproject.org + +# Make info-gnu the default only for a stable release. +ifeq ($(RELEASE_TYPE),stable) + announcement_Cc_ ?= $(translation_project_), $(PACKAGE_BUGREPORT) + announcement_mail_headers_ ?= \ + To: info-gnu@gnu.org \ + Cc: $(announcement_Cc_) \ + Mail-Followup-To: $(PACKAGE_BUGREPORT) +else + announcement_Cc_ ?= $(translation_project_) + announcement_mail_headers_ ?= \ + To: $(PACKAGE_BUGREPORT) \ + Cc: $(announcement_Cc_) +endif + +announcement: NEWS ChangeLog $(rel-files) + @$(srcdir)/$(_build-aux)/announce-gen \ + --mail-headers='$(announcement_mail_headers_)' \ + --release-type=$(RELEASE_TYPE) \ + --package=$(PACKAGE) \ + --prev=$(PREV_VERSION) \ + --curr=$(VERSION) \ + --gpg-key-id=$(gpg_key_ID) \ + --news=$(srcdir)/NEWS \ + --bootstrap-tools=$(bootstrap-tools) \ + --gnulib-version=$(gnulib-version) \ + --no-print-checksums \ + $(addprefix --url-dir=, $(url_dir_list)) + +## ---------------- ## +## Updating files. ## +## ---------------- ## + +ftp-gnu = ftp://ftp.gnu.org/gnu +www-gnu = http://www.gnu.org + +upload_dest_dir_ ?= $(PACKAGE) +emit_upload_commands: + @echo ===================================== + @echo ===================================== + @echo "$(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \\" + @echo " --to $(gnu_rel_host):$(upload_dest_dir_) \\" + @echo " $(rel-files)" + @echo '# send the ~/announce-$(my_distdir) e-mail' + @echo ===================================== + @echo ===================================== + +define emit-commit-log + printf '%s\n' 'maint: post-release administrivia' '' \ + '* NEWS: Add header line for next release.' \ + '* .prev-version: Record previous version.' \ + '* cfg.mk (old_NEWS_hash): Auto-update.' +endef + +.PHONY: no-submodule-changes +no-submodule-changes: + if test -d $(srcdir)/.git; then \ + diff=$$(cd $(srcdir) && git submodule -q foreach \ + git diff-index --name-only HEAD) \ + || exit 1; \ + case $$diff in '') ;; \ + *) echo '$(ME): submodule files are locally modified:'; \ + echo "$$diff"; exit 1;; esac; \ + else \ + : ; \ + fi + +submodule-checks ?= no-submodule-changes public-submodule-commit + +# Ensure that each sub-module commit we're using is public. +# Without this, it is too easy to tag and release code that +# cannot be built from a fresh clone. +.PHONY: public-submodule-commit +public-submodule-commit: + $(AM_V_GEN)if test -d $(srcdir)/.git; then \ + cd $(srcdir) && \ + git submodule --quiet foreach test '$$(git rev-parse $$sha1)' \ + = '$$(git merge-base origin $$sha1)' \ + || { echo '$(ME): found non-public submodule commit' >&2; \ + exit 1; }; \ + else \ + : ; \ + fi +# This rule has a high enough utility/cost ratio that it should be a +# dependent of "check" by default. However, some of us do occasionally +# commit a temporary change that deliberately points to a non-public +# submodule commit, and want to be able to use rules like "make check". +# In that case, run e.g., "make check gl_public_submodule_commit=" +# to disable this test. +gl_public_submodule_commit ?= public-submodule-commit +check: $(gl_public_submodule_commit) + +.PHONY: alpha beta stable +ALL_RECURSIVE_TARGETS += alpha beta stable +alpha beta stable: $(local-check) writable-files $(submodule-checks) + test $@ = stable \ + && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ + || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ + || : + $(MAKE) vc-diff-check + $(MAKE) news-check + $(MAKE) distcheck + $(MAKE) dist XZ_OPT=-9ev + $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ + $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ + +# Override this in cfg.mk if you follow different procedures. +release-prep-hook ?= release-prep + +gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] +.PHONY: release-prep +release-prep: + case $$RELEASE_TYPE in alpha|beta|stable) ;; \ + *) echo "invalid RELEASE_TYPE: $$RELEASE_TYPE" 1>&2; exit 1;; esac + $(MAKE) --no-print-directory -s announcement > ~/announce-$(my_distdir) + if test -d $(release_archive_dir); then \ + ln $(rel-files) $(release_archive_dir); \ + chmod a-w $(rel-files); \ + fi + echo $(VERSION) > $(prev_version_file) + $(MAKE) update-NEWS-hash + perl -pi -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' NEWS + $(emit-commit-log) > .ci-msg + $(VC) commit -F .ci-msg -a + rm .ci-msg + +# Override this with e.g., -s $(srcdir)/some_other_name.texi +# if the default $(PACKAGE)-derived name doesn't apply. +gendocs_options_ ?= + +.PHONY: web-manual +web-manual: + @test -z "$(manual_title)" \ + && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : + @cd '$(srcdir)/doc'; \ + $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ + -o '$(abs_builddir)/doc/manual' \ + --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ + "$(PACKAGE_NAME) - $(manual_title)" + @echo " *** Upload the doc/manual directory to web-cvs." + +# Code Coverage + +init-coverage: + $(MAKE) $(AM_MAKEFLAGS) clean + lcov --directory . --zerocounters + +COVERAGE_CCOPTS ?= "-g --coverage" +COVERAGE_OUT ?= doc/coverage + +build-coverage: + $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) + $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check + mkdir -p $(COVERAGE_OUT) + lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ + --capture + +gen-coverage: + genhtml --output-directory $(COVERAGE_OUT) \ + $(COVERAGE_OUT)/$(PACKAGE).info \ + --highlight --frames --legend \ + --title "$(PACKAGE_NAME)" + +coverage: init-coverage build-coverage gen-coverage + +# Update gettext files. +PACKAGE ?= $(shell basename $(PWD)) +PO_DOMAIN ?= $(PACKAGE) +POURL = http://translationproject.org/latest/$(PO_DOMAIN)/ +PODIR ?= po +refresh-po: + rm -f $(PODIR)/*.po && \ + echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \ + wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \ + echo 'en@boldquot' > $(PODIR)/LINGUAS && \ + echo 'en@quot' >> $(PODIR)/LINGUAS && \ + ls $(PODIR)/*.po | sed 's/\.po//' | sed 's,$(PODIR)/,,' | sort >> $(PODIR)/LINGUAS + + # Running indent once is not idempotent, but running it twice is. +INDENT_SOURCES ?= $(C_SOURCES) +.PHONY: indent +indent: + indent $(INDENT_SOURCES) + indent $(INDENT_SOURCES) + +# If you want to set UPDATE_COPYRIGHT_* environment variables, +# put the assignments in this variable. +update-copyright-env ?= + +# Run this rule once per year (usually early in January) +# to update all FSF copyright year lists in your project. +# If you have an additional project-specific rule, +# add it in cfg.mk along with a line 'update-copyright: prereq'. +# By default, exclude all variants of COPYING; you can also +# add exemptions (such as ChangeLog..* for rotated change logs) +# in the file .x-update-copyright. +.PHONY: update-copyright +update-copyright: + grep -l -w Copyright \ + $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ + | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ + +# This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not +# overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. + +# NOTE: to override any _gl_TS_* default value, you must +# define the variable(s) using "export" in cfg.mk. +_gl_TS_dir ?= src + +ALL_RECURSIVE_TARGETS += sc_tight_scope +sc_tight_scope: tight-scope.mk + @fail=0; \ + if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ + > /dev/null \ + && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ + > /dev/null 2>&1; then \ + echo '$(ME): skipping $@'; \ + else \ + $(MAKE) -s -C $(_gl_TS_dir) \ + -f Makefile \ + -f $(abs_top_srcdir)/cfg.mk \ + -f $(abs_top_builddir)/$< \ + _gl_tight_scope \ + || fail=1; \ + fi; \ + rm -f $<; \ + exit $$fail + +tight-scope.mk: $(ME) + @rm -f $@ $@-t + @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(ME) > $@-t + @chmod a=r $@-t && mv $@-t $@ + +ifeq (a,b) +# TS-start + +# Most functions should have static scope. +# Any that don't must be marked with `extern', but `main' +# and `usage' are exceptions: they're always extern, but +# do not need to be marked. Symbols matching `__.*' are +# reserved by the compiler, so are automatically excluded below. +_gl_TS_unmarked_extern_functions ?= main usage +_gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/ + +# If your project uses a macro like "XTERN", then put +# the following in cfg.mk to override this default: +# export _gl_TS_extern = extern|XTERN +_gl_TS_extern ?= extern + +# The second nm|grep checks for file-scope variables with `extern' scope. +# Without gnulib's progname module, you might put program_name here. +# Symbols matching `__.*' are reserved by the compiler, +# so are automatically excluded below. +_gl_TS_unmarked_extern_vars ?= + +# NOTE: the _match variables are perl expressions -- not mere regular +# expressions -- so that you can extend them to match other patterns +# and easily extract matched variable names. +# For example, if your project declares some global variables via +# a macro like this: GLOBAL(type, var_name, initializer), then you +# can override this definition to automatically extract those names: +# export _gl_TS_var_match = \ +# /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ +_gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/ + +# The names of object files in (or relative to) $(_gl_TS_dir). +_gl_TS_obj_files ?= *.$(OBJEXT) + +# Files in which to search for the one-line style extern declarations. +# $(_gl_TS_dir)-relative. +_gl_TS_headers ?= $(noinst_HEADERS) + +.PHONY: _gl_tight_scope +_gl_tight_scope: $(bin_PROGRAMS) + t=exceptions-$$$$; \ + trap 's=$$?; rm -f $$t; exit $$s' 0; \ + for sig in 1 2 3 13 15; do \ + eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ + done; \ + src=`for f in $(SOURCES); do \ + test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ + hdr=`for f in $(_gl_TS_headers); do \ + test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ + ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ + grep -h -A1 '^extern .*[^;]$$' $$src \ + | grep -vE '^(extern |--)' | sed 's/ .*//'; \ + perl -lne \ + '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr; \ + ) | sort -u > $$t; \ + nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \ + && { echo the above functions should have static scope >&2; \ + exit 1; } || : ; \ + ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \ + perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' $$hdr *.h \ + ) | sort -u > $$t; \ + nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p' \ + | sort -u | grep -Ev -f $$t \ + && { echo the above variables should have static scope >&2; \ + exit 1; } || : +# TS-end +endif diff --git a/man/Makefile.am b/man/Makefile.am index 9257ce2..d6f709c 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,8 +1,18 @@ +NULL = -man_MANS = virt-viewer.1 +man_MANS = \ + remote-viewer.1 \ + virt-viewer.1 \ + $(NULL) -EXTRA_DIST = virt-viewer.pod +EXTRA_DIST = \ + remote-viewer.pod \ + virt-viewer.pod \ + $(NULL) + DISTCLEANFILES = $(man_MANS) %.1: %.pod pod2man $< > $@ + +-include $(top_srcdir)/git.mk diff --git a/man/Makefile.in b/man/Makefile.in index 5338cfb..b05ec86 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -15,6 +14,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -36,24 +52,36 @@ subdir = man DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ +am__v_at_1 = SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -75,6 +103,12 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff @@ -89,6 +123,8 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -112,6 +148,8 @@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB2_CFLAGS = @GLIB2_CFLAGS@ GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_API_VERSION = @GTK_API_VERSION@ @@ -121,15 +159,22 @@ GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -145,9 +190,11 @@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -168,16 +215,25 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -212,6 +268,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -231,8 +289,17 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -man_MANS = virt-viewer.1 -EXTRA_DIST = virt-viewer.pod +NULL = +man_MANS = \ + remote-viewer.1 \ + virt-viewer.1 \ + $(NULL) + +EXTRA_DIST = \ + remote-viewer.pod \ + virt-viewer.pod \ + $(NULL) + DISTCLEANFILES = $(man_MANS) all: all-am @@ -275,11 +342,18 @@ -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" - @list=''; test -n "$(man1dir)" || exit 0; \ - { for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ @@ -308,14 +382,14 @@ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - test -z "$$files" || { \ - echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: + +cscope cscopelist: distdir: $(DISTFILES) @@ -325,10 +399,10 @@ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ - echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ - echo " typically \`make maintainer-clean' will remove them" >&2; \ + echo " typically 'make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @@ -378,10 +452,15 @@ installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -480,6 +559,8 @@ %.1: %.pod pod2man $< > $@ +-include $(top_srcdir)/git.mk + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod new file mode 100644 index 0000000..ed61a55 --- /dev/null +++ b/man/remote-viewer.pod @@ -0,0 +1,78 @@ + +=head1 NAME + +remote-viewer - a simple remote desktop client + +=head1 SYNOPSIS + +B [OPTIONS] URI + +=head1 DESCRIPTION + +B is a simple remote display client. The supported +protocols are SPICE and VNC. + +=head1 OPTIONS + +The following options are accepted when running C: + +=over 4 + +=item -h, --help + +Display command line help summary + +=item -V, --version + +Display program version number + +=item -v, --verbose + +Display information about the connection + +=item -z PCT, --zoom=PCT + +Zoom level of the display window in percentage. Range 10-200. + +=item -f, --full-screen + +Start with the window maximised to fullscreen + +=item --spice-controller + +Use the SPICE controller to initialize the connection with the SPICE +server. This option is used by the SPICE browser addons to allow web +page to start a client. + +=item --debug + +Print debugging information + +=back + +=head1 EXAMPLES + +To connect to SPICE server on host "makai" with port 5900 + + remote-viewer spice://makai:5900 + +To connect to VNC server on host "tsingy" with port 5900 + + remote-viewer vnc://tsingy:5900 + +=head1 BUGS + +Report bugs to the mailing list C + +=head1 COPYRIGHT + +Copyright (C) 2012 Red Hat, Inc., and various contributors. +This is free software. You may redistribute copies of it under the terms of the GNU General +Public License C. There is NO WARRANTY, to the extent +permitted by law. + +=head1 SEE ALSO + +C, the project website C + +=cut diff --git a/man/virt-viewer.pod b/man/virt-viewer.pod index ec74f33..f2830f8 100644 --- a/man/virt-viewer.pod +++ b/man/virt-viewer.pod @@ -57,7 +57,14 @@ Do not attempt to tunnel the console over SSH, even if the main connection URI used SSH. -=item -f, --fullscreen +=item -a, --attach + +Use libvirt to directly attach to a local display, instead of making a +TCP/UNIX socket connection. This avoids the need to authentication with +the remote display, if authentication with libvirt is already allowed. +This option does not work with remote displays. + +=item -f, --full-screen Start with the window maximised to fullscreen @@ -97,11 +104,11 @@ =head1 BUGS -Report bugs to the mailing list C +Report bugs to the mailing list C =head1 COPYRIGHT -Copyright (C) 2007-2008 Red Hat, Inc, and various contributors. +Copyright (C) 2007-2008 Red Hat, Inc., and various contributors. This is free software. You may redistribute copies of it under the terms of the GNU General Public License C. There is NO WARRANTY, to the extent permitted by law. @@ -111,4 +118,3 @@ C, C, the project website C =cut - diff --git a/mingw-virt-viewer.spec.in b/mingw-virt-viewer.spec.in new file mode 100644 index 0000000..0b7012e --- /dev/null +++ b/mingw-virt-viewer.spec.in @@ -0,0 +1,99 @@ +%{?mingw_package_hedder} + +Name: mingw-virt-viewer +Version: @VERSION@ +Release: 1%{?dist}%{?extra_release} +Summary: MinGW Windows virt-viewer console application + +License: GPLv2+ +Group: Applications/Internet +URL: http://virt-manager.org/ +Source0: ftp://virt-manager.org/downloads/virt-viewer/virt-viewer-%{version}.tar.gz + +BuildRequires: mingw32-filesystem >= 23 +BuildRequires: mingw64-filesystem >= 23 +BuildRequires: mingw32-glib2 >= 2.22 +BuildRequires: mingw64-glib2 >= 2.22 +BuildRequires: mingw32-gtk3 >= 3.0.0 +BuildRequires: mingw64-gtk3 >= 3.0.0 +BuildRequires: mingw32-libvirt >= 0.9.7 +BuildRequires: mingw64-libvirt >= 0.9.7 +BuildRequires: mingw32-libxml2 +BuildRequires: mingw64-libxml2 +BuildRequires: mingw32-gtk-vnc2 >= 0.4.3 +BuildRequires: mingw64-gtk-vnc2 >= 0.4.3 +BuildRequires: pkgconfig + +BuildArch: noarch + +%package -n mingw32-virt-viewer +Summary: MinGW Windows virt-viewer console application +Group: Applications/Internet + +%package -n mingw64-virt-viewer +Summary: MinGW Windows virt-viewer console application +Group: Applications/Internet + +%description +MinGW Windows virt-viewer console application + +%description -n mingw32-virt-viewer +MinGW Windows virt-viewer console application + +%description -n mingw64-virt-viewer +MinGW Windows virt-viewer console application + +%prep +%setup -q -n virt-viewer-%{version} + + +%build +%mingw_configure --with-gtk=3.0 +%mingw_make %{?_smp_mflags} V=1 + + +%install +%mingw_make_install DESTDIR=$RPM_BUILD_ROOT + +%find_lang virt-viewer + +# Don't need the XDG desktop files on Windows +find $RPM_BUILD_ROOT -name "*.desktop" -delete + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -n mingw32-virt-viewer -f virt-viewer.lang +%defattr(-,root,root) +%{mingw32_bindir}/virt-viewer.exe +%{mingw32_bindir}/remote-viewer.exe +%{mingw32_bindir}/windows-cmdline-wrapper.exe + +%dir %{mingw32_datadir}/virt-viewer/ +%dir %{mingw32_datadir}/virt-viewer/ui/ +%{mingw32_datadir}/virt-viewer/ui/virt-viewer.xml +%{mingw32_datadir}/virt-viewer/ui/virt-viewer-about.xml +%{mingw32_datadir}/virt-viewer/ui/virt-viewer-auth.xml +%{mingw32_datadir}/icons/hicolor/*/apps/* + +%{mingw32_mandir}/man1/virt-viewer.1* +%{mingw32_mandir}/man1/remote-viewer.1* + +%files -n mingw64-virt-viewer -f virt-viewer.lang +%defattr(-,root,root) +%{mingw64_bindir}/virt-viewer.exe +%{mingw64_bindir}/remote-viewer.exe +%{mingw64_bindir}/windows-cmdline-wrapper.exe + +%dir %{mingw64_datadir}/virt-viewer/ +%dir %{mingw64_datadir}/virt-viewer/ui/ +%{mingw64_datadir}/virt-viewer/ui/virt-viewer.xml +%{mingw64_datadir}/virt-viewer/ui/virt-viewer-about.xml +%{mingw64_datadir}/virt-viewer/ui/virt-viewer-auth.xml +%{mingw64_datadir}/icons/hicolor/*/apps/* + +%{mingw64_mandir}/man1/virt-viewer.1* +%{mingw64_mandir}/man1/remote-viewer.1* + +%changelog diff --git a/mingw32-virt-viewer.spec.in b/mingw32-virt-viewer.spec.in deleted file mode 100644 index 531fbb9..0000000 --- a/mingw32-virt-viewer.spec.in +++ /dev/null @@ -1,67 +0,0 @@ -%define __strip %{_mingw32_strip} -%define __objdump %{_mingw32_objdump} -%define _use_internal_dependency_generator 0 -%define __find_requires %{_mingw32_findrequires} -%define __find_provides %{_mingw32_findprovides} - -Name: mingw32-virt-viewer -Version: @VERSION@ -Release: 1%{?dist}%{?extra_release} -Summary: MinGW Windows virt-viewer console application - -License: LGPLv2+ -Group: Development/Libraries -URL: http://virt-manager.org/ -Source0: ftp://virt-manager.org/downloads/virt-viewer/virt-viewer-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -BuildRequires: mingw32-filesystem >= 23 -BuildRequires: mingw32-gtk2 >= 2.12.0 -BuildRequires: mingw32-libvirt >= 0.6.0 -BuildRequires: mingw32-libxml2 -BuildRequires: mingw32-gtk-vnc >= 0.3.8 -BuildRequires: pkgconfig - -BuildArch: noarch - - -%description -MinGW Windows virt-viewer console application - - -%prep -%setup -q -n virt-viewer-%{version} - - -%build -%{_mingw32_configure} -make - - -%install -rm -rf $RPM_BUILD_ROOT - -make DESTDIR=$RPM_BUILD_ROOT install - -%find_lang virt-viewer - -%clean -rm -rf $RPM_BUILD_ROOT - - -%files -f virt-viewer.lang -%defattr(-,root,root) -%{_mingw32_bindir}/virt-viewer.exe - -%dir %{_mingw32_datadir}/virt-viewer/ -%dir %{_mingw32_datadir}/virt-viewer/ui/ -%{_mingw32_datadir}/virt-viewer/ui/virt-viewer.xml -%{_mingw32_datadir}/virt-viewer/ui/virt-viewer-about.xml -%{_mingw32_datadir}/virt-viewer/ui/virt-viewer-auth.xml - -%{_mingw32_mandir}/man1/virt-viewer.1* - -%changelog -* Fri Nov 28 2008 Daniel P. Berrange - 0.0.4-1 -- Initial release - diff --git a/missing b/missing deleted file mode 100755 index 28055d2..0000000 --- a/missing +++ /dev/null @@ -1,376 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2009-04-28.21; # UTC - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# 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, 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 . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; - - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/plugin/Makefile.am b/plugin/Makefile.am index 34dbd02..2c1e38c 100644 --- a/plugin/Makefile.am +++ b/plugin/Makefile.am @@ -11,22 +11,20 @@ virt-viewer-plugin.c virt-viewer-plugin.h \ npshell.c npunix.c virt_viewer_plugin_la_LIBADD = \ - @FIREFOX_PLUGIN_LIBS@ \ - @GTKVNC_LIBS@ \ - @GTK2_LIBS@ \ - @LIBXML2_LIBS@ \ - @LIBGLADE2_LIBS@ \ - @LIBVIRT_LIBS@ + $(FIREFOX_PLUGIN_LIBS) \ + $(GTK_VNC_LIBS) \ + $(GTK_LIBS) \ + $(LIBXML2_LIBS) \ + $(LIBVIRT_LIBS) virt_viewer_plugin_la_LDFLAGS = \ -module -avoid-version virt_viewer_plugin_la_CFLAGS = \ -DPLUGIN=1 -DENABLE_DEBUG=1 \ - @FIREFOX_PLUGIN_CFLAGS@ \ - @GTKVNC_CFLAGS@ \ - @GTK2_CFLAGS@ \ - @LIBXML2_CFLAGS@ \ - @LIBGLADE2_CFLAGS@ \ - @LIBVIRT_CFLAGS@ \ + $(FIREFOX_PLUGIN_CFLAGS) \ + $(GTK_VNC_CFLAGS) \ + $(GTK_CFLAGS) \ + $(LIBXML2_CFLAGS) \ + $(LIBVIRT_CFLAGS) \ -DGLADE_DIR="\"$(gladedir)\"" \ -I$(top_srcdir)/src @@ -42,3 +40,5 @@ CLEANFILES = virt-viewer-plugin.so endif + +-include $(top_srcdir)/git.mk diff --git a/plugin/Makefile.in b/plugin/Makefile.in index 3358f75..b592d02 100644 --- a/plugin/Makefile.in +++ b/plugin/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,12 +51,14 @@ build_triplet = @build@ host_triplet = @host@ subdir = plugin -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -68,9 +86,21 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) -virt_viewer_plugin_la_DEPENDENCIES = +am__DEPENDENCIES_1 = +@ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_DEPENDENCIES = \ +@ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \ +@ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \ +@ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \ +@ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \ +@ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) am__virt_viewer_plugin_la_SOURCES_DIST = ../src/virt-viewer-util.c \ ../src/virt-viewer-util.h ../src/virt-viewer-auth.c \ ../src/virt-viewer-auth.h ../src/virt-viewer.c \ @@ -86,17 +116,30 @@ @ENABLE_PLUGIN_TRUE@ virt_viewer_plugin_la-npshell.lo \ @ENABLE_PLUGIN_TRUE@ virt_viewer_plugin_la-npunix.lo virt_viewer_plugin_la_OBJECTS = $(am_virt_viewer_plugin_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent +am__v_lt_1 = virt_viewer_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) \ $(virt_viewer_plugin_la_LDFLAGS) $(LDFLAGS) -o $@ @ENABLE_PLUGIN_TRUE@am_virt_viewer_plugin_la_rpath = -rpath \ @ENABLE_PLUGIN_TRUE@ $(plugindir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -105,24 +148,25 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = SOURCES = $(virt_viewer_plugin_la_SOURCES) DIST_SOURCES = $(am__virt_viewer_plugin_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -135,6 +179,8 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -158,6 +204,8 @@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB2_CFLAGS = @GLIB2_CFLAGS@ GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_API_VERSION = @GTK_API_VERSION@ @@ -167,15 +215,22 @@ GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -191,9 +246,11 @@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -214,16 +271,25 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -258,6 +324,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -288,24 +356,22 @@ @ENABLE_PLUGIN_TRUE@ npshell.c npunix.c @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_LIBADD = \ -@ENABLE_PLUGIN_TRUE@ @FIREFOX_PLUGIN_LIBS@ \ -@ENABLE_PLUGIN_TRUE@ @GTKVNC_LIBS@ \ -@ENABLE_PLUGIN_TRUE@ @GTK2_LIBS@ \ -@ENABLE_PLUGIN_TRUE@ @LIBXML2_LIBS@ \ -@ENABLE_PLUGIN_TRUE@ @LIBGLADE2_LIBS@ \ -@ENABLE_PLUGIN_TRUE@ @LIBVIRT_LIBS@ +@ENABLE_PLUGIN_TRUE@ $(FIREFOX_PLUGIN_LIBS) \ +@ENABLE_PLUGIN_TRUE@ $(GTK_VNC_LIBS) \ +@ENABLE_PLUGIN_TRUE@ $(GTK_LIBS) \ +@ENABLE_PLUGIN_TRUE@ $(LIBXML2_LIBS) \ +@ENABLE_PLUGIN_TRUE@ $(LIBVIRT_LIBS) @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_LDFLAGS = \ @ENABLE_PLUGIN_TRUE@ -module -avoid-version @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_CFLAGS = \ @ENABLE_PLUGIN_TRUE@ -DPLUGIN=1 -DENABLE_DEBUG=1 \ -@ENABLE_PLUGIN_TRUE@ @FIREFOX_PLUGIN_CFLAGS@ \ -@ENABLE_PLUGIN_TRUE@ @GTKVNC_CFLAGS@ \ -@ENABLE_PLUGIN_TRUE@ @GTK2_CFLAGS@ \ -@ENABLE_PLUGIN_TRUE@ @LIBXML2_CFLAGS@ \ -@ENABLE_PLUGIN_TRUE@ @LIBGLADE2_CFLAGS@ \ -@ENABLE_PLUGIN_TRUE@ @LIBVIRT_CFLAGS@ \ +@ENABLE_PLUGIN_TRUE@ $(FIREFOX_PLUGIN_CFLAGS) \ +@ENABLE_PLUGIN_TRUE@ $(GTK_VNC_CFLAGS) \ +@ENABLE_PLUGIN_TRUE@ $(GTK_CFLAGS) \ +@ENABLE_PLUGIN_TRUE@ $(LIBXML2_CFLAGS) \ +@ENABLE_PLUGIN_TRUE@ $(LIBVIRT_CFLAGS) \ @ENABLE_PLUGIN_TRUE@ -DGLADE_DIR="\"$(gladedir)\"" \ @ENABLE_PLUGIN_TRUE@ -I$(top_srcdir)/src @@ -346,7 +412,6 @@ $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ @@ -354,6 +419,8 @@ else :; fi; \ done; \ test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } @@ -369,13 +436,15 @@ clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) - @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -virt-viewer-plugin.la: $(virt_viewer_plugin_la_OBJECTS) $(virt_viewer_plugin_la_DEPENDENCIES) + @list='$(plugin_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +virt-viewer-plugin.la: $(virt_viewer_plugin_la_OBJECTS) $(virt_viewer_plugin_la_DEPENDENCIES) $(EXTRA_virt_viewer_plugin_la_DEPENDENCIES) $(AM_V_CCLD)$(virt_viewer_plugin_la_LINK) $(am_virt_viewer_plugin_la_rpath) $(virt_viewer_plugin_la_OBJECTS) $(virt_viewer_plugin_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -395,82 +464,72 @@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< virt_viewer_plugin_la-virt-viewer-util.lo: ../src/virt-viewer-util.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-virt-viewer-util.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-util.Tpo -c -o virt_viewer_plugin_la-virt-viewer-util.lo `test -f '../src/virt-viewer-util.c' || echo '$(srcdir)/'`../src/virt-viewer-util.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-util.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer-util.c' object='virt_viewer_plugin_la-virt-viewer-util.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-util.lo `test -f '../src/virt-viewer-util.c' || echo '$(srcdir)/'`../src/virt-viewer-util.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/virt-viewer-util.c' object='virt_viewer_plugin_la-virt-viewer-util.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-util.lo `test -f '../src/virt-viewer-util.c' || echo '$(srcdir)/'`../src/virt-viewer-util.c virt_viewer_plugin_la-virt-viewer-auth.lo: ../src/virt-viewer-auth.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-virt-viewer-auth.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-auth.Tpo -c -o virt_viewer_plugin_la-virt-viewer-auth.lo `test -f '../src/virt-viewer-auth.c' || echo '$(srcdir)/'`../src/virt-viewer-auth.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-auth.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer-auth.c' object='virt_viewer_plugin_la-virt-viewer-auth.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-auth.lo `test -f '../src/virt-viewer-auth.c' || echo '$(srcdir)/'`../src/virt-viewer-auth.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/virt-viewer-auth.c' object='virt_viewer_plugin_la-virt-viewer-auth.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-auth.lo `test -f '../src/virt-viewer-auth.c' || echo '$(srcdir)/'`../src/virt-viewer-auth.c virt_viewer_plugin_la-virt-viewer.lo: ../src/virt-viewer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-virt-viewer.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-virt-viewer.Tpo -c -o virt_viewer_plugin_la-virt-viewer.lo `test -f '../src/virt-viewer.c' || echo '$(srcdir)/'`../src/virt-viewer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-virt-viewer.Tpo $(DEPDIR)/virt_viewer_plugin_la-virt-viewer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer.c' object='virt_viewer_plugin_la-virt-viewer.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer.lo `test -f '../src/virt-viewer.c' || echo '$(srcdir)/'`../src/virt-viewer.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/virt-viewer.c' object='virt_viewer_plugin_la-virt-viewer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer.lo `test -f '../src/virt-viewer.c' || echo '$(srcdir)/'`../src/virt-viewer.c virt_viewer_plugin_la-virt-viewer-events.lo: ../src/virt-viewer-events.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-virt-viewer-events.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-events.Tpo -c -o virt_viewer_plugin_la-virt-viewer-events.lo `test -f '../src/virt-viewer-events.c' || echo '$(srcdir)/'`../src/virt-viewer-events.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-events.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer-events.c' object='virt_viewer_plugin_la-virt-viewer-events.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-events.lo `test -f '../src/virt-viewer-events.c' || echo '$(srcdir)/'`../src/virt-viewer-events.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/virt-viewer-events.c' object='virt_viewer_plugin_la-virt-viewer-events.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-events.lo `test -f '../src/virt-viewer-events.c' || echo '$(srcdir)/'`../src/virt-viewer-events.c virt_viewer_plugin_la-virt-viewer-plugin.lo: virt-viewer-plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-virt-viewer-plugin.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-plugin.Tpo -c -o virt_viewer_plugin_la-virt-viewer-plugin.lo `test -f 'virt-viewer-plugin.c' || echo '$(srcdir)/'`virt-viewer-plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-plugin.Tpo $(DEPDIR)/virt_viewer_plugin_la-virt-viewer-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-plugin.c' object='virt_viewer_plugin_la-virt-viewer-plugin.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-plugin.lo `test -f 'virt-viewer-plugin.c' || echo '$(srcdir)/'`virt-viewer-plugin.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-plugin.c' object='virt_viewer_plugin_la-virt-viewer-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-virt-viewer-plugin.lo `test -f 'virt-viewer-plugin.c' || echo '$(srcdir)/'`virt-viewer-plugin.c virt_viewer_plugin_la-npshell.lo: npshell.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-npshell.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-npshell.Tpo -c -o virt_viewer_plugin_la-npshell.lo `test -f 'npshell.c' || echo '$(srcdir)/'`npshell.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-npshell.Tpo $(DEPDIR)/virt_viewer_plugin_la-npshell.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npshell.c' object='virt_viewer_plugin_la-npshell.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-npshell.lo `test -f 'npshell.c' || echo '$(srcdir)/'`npshell.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='npshell.c' object='virt_viewer_plugin_la-npshell.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-npshell.lo `test -f 'npshell.c' || echo '$(srcdir)/'`npshell.c virt_viewer_plugin_la-npunix.lo: npunix.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -MT virt_viewer_plugin_la-npunix.lo -MD -MP -MF $(DEPDIR)/virt_viewer_plugin_la-npunix.Tpo -c -o virt_viewer_plugin_la-npunix.lo `test -f 'npunix.c' || echo '$(srcdir)/'`npunix.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-npunix.Tpo $(DEPDIR)/virt_viewer_plugin_la-npunix.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npunix.c' object='virt_viewer_plugin_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-npunix.lo `test -f 'npunix.c' || echo '$(srcdir)/'`npunix.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='npunix.c' object='virt_viewer_plugin_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) -c -o virt_viewer_plugin_la-npunix.lo `test -f 'npunix.c' || echo '$(srcdir)/'`npunix.c mostlyclean-libtool: -rm -f *.lo @@ -526,6 +585,20 @@ here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" + +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -578,10 +651,15 @@ installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -670,8 +748,8 @@ .MAKE: install-am install-data-am install-strip .PHONY: CTAGS GTAGS all all-am all-local check check-am clean \ - clean-generic clean-libtool clean-pluginLTLIBRARIES ctags \ - distclean distclean-compile distclean-generic \ + clean-generic clean-libtool clean-pluginLTLIBRARIES cscopelist \ + ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-hook install-dvi install-dvi-am \ @@ -694,6 +772,8 @@ @ENABLE_PLUGIN_TRUE@install-data-hook: @ENABLE_PLUGIN_TRUE@ rm -f $(DESTDIR)$(plugindir)/virt-viewer-plugin.a $(DESTDIR)$(plugindir)/virt-viewer-plugin.la +-include $(top_srcdir)/git.mk + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/plugin/npshell.c b/plugin/npshell.c index ccd11a5..bb43da3 100644 --- a/plugin/npshell.c +++ b/plugin/npshell.c @@ -46,8 +46,8 @@ * This file defines a "shell" plugin that plugin developers can use * as the basis for a real plugin. This shell just provides empty * implementations of all functions that the plugin can implement - * that will be called by Netscape (the NPP_xxx methods defined in - * npapi.h). + * that will be called by Netscape (the NPP_xxx methods defined in + * npapi.h). * * dp Suresh * updated 5/1998 @@ -59,11 +59,11 @@ /* The contents of this file are subject to the Mozilla Public License -Version 1.1 (the "License"); you may not use this file except in compliance +Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is stub code that defines the binary interface to a Mozilla @@ -147,7 +147,7 @@ debug ("NPP_Shutdown"); } -NPError +NPError NPP_New(NPMIMEType pluginType G_GNUC_UNUSED, NPP instance, uint16 mode, @@ -220,7 +220,7 @@ return NPERR_NO_ERROR; } -NPError +NPError NPP_Destroy(NPP instance, NPSavedData** save G_GNUC_UNUSED) { PluginInstance* This; @@ -235,8 +235,8 @@ if (This != NULL) { (void) VirtViewerDestroyWindow (instance); - if (This->uri) free (This->uri); - if (This->name) free (This->name); + free (This->uri); + free (This->name); NPN_MemFree(instance->pdata); instance->pdata = NULL; } @@ -245,7 +245,7 @@ } -NPError +NPError NPP_SetWindow(NPP instance, NPWindow* window) { debug ("NPP_SetWindow"); @@ -253,7 +253,7 @@ return VirtViewerXSetWindow(instance, window); } -int32 +int32 NPP_WriteReady(NPP instance, NPStream *stream) { /*printf("NPP_WriteReady()\n");*/ @@ -267,7 +267,7 @@ return -1L; /* don't accept any bytes in NPP_Write() */ } -int32 +int32 NPP_Write(NPP instance, NPStream *stream, int32 offset G_GNUC_UNUSED, int32 len G_GNUC_UNUSED, void *buffer G_GNUC_UNUSED) @@ -282,7 +282,7 @@ return -1L; /* don't accept any bytes in NPP_Write() */ } -NPError +NPError NPP_DestroyStream(NPP instance, NPStream *stream G_GNUC_UNUSED, NPError reason G_GNUC_UNUSED) { @@ -298,7 +298,7 @@ return NPERR_NO_ERROR; } -void +void NPP_StreamAsFile(NPP instance G_GNUC_UNUSED, NPStream *stream G_GNUC_UNUSED, const char* fname G_GNUC_UNUSED) { @@ -323,7 +323,7 @@ } -void +void NPP_Print(NPP instance, NPPrint* printInfo) { /*printf("NPP_Print()\n");*/ @@ -334,7 +334,7 @@ /***** Insert NPP_Print code here *****\ PluginInstance* This = (PluginInstance*) instance->pdata; \**************************************/ - + if (printInfo->mode == NP_FULL) { /* * PLUGIN DEVELOPERS: @@ -359,7 +359,7 @@ NPBool printOne = printInfo->print.fullPrint.printOne; \**************************************/ - + /* Do the default*/ printInfo->print.fullPrint.pluginPrinted = FALSE; } diff --git a/plugin/npunix.c b/plugin/npunix.c index ddc4bdf..48948d0 100644 --- a/plugin/npunix.c +++ b/plugin/npunix.c @@ -262,7 +262,7 @@ * Wrapper functions : Netscape Navigator -> plugin * * These functions let the plugin developer just create the APIs - * as documented and defined in npapi.h, without needing to + * as documented and defined in npapi.h, without needing to * install those functions in the function table or worry about * setting up globals for 68K plugins. * @@ -275,7 +275,7 @@ NPError ret; PLUGINDEBUGSTR("New"); ret = NPP_New(pluginType, instance, mode, argc, argn, argv, saved); - return ret; + return ret; } static NPError @@ -344,7 +344,6 @@ static void Private_URLNotify(NPP instance, const char* url, NPReason reason, void* notifyData) - { PLUGINDEBUGSTR("URLNotify"); NPP_URLNotify(instance, url, reason, notifyData); @@ -353,8 +352,8 @@ static NPError Private_GetValue(void *instance, NPPVariable variable, void *result) { - NPError rv = NPP_GetValue(instance, variable, result); - return rv; + NPError rv = NPP_GetValue(instance, variable, result); + return rv; } static void @@ -377,13 +376,13 @@ } #endif -static int16 +static int16 Private_HandleEvent(NPP instance, void* event) { return NPP_HandleEvent(instance, event); } -/*********************************************************************** +/*********************************************************************** * * These functions are located automagically by netscape. * @@ -436,12 +435,12 @@ NPError err = NPERR_NO_ERROR; PLUGINDEBUGSTR("NP_Initialize"); - + /* validate input parameters */ if ((nsTable == NULL) || (pluginFuncs == NULL)) err = NPERR_INVALID_FUNCTABLE_ERROR; - + /* * Check the major version passed in Netscape's function table. * We won't load if the major version is newer than what we expect. @@ -456,11 +455,10 @@ err = NPERR_INCOMPATIBLE_VERSION_ERROR; if (nsTable->size < sizeof(NPNetscapeFuncs)) err = NPERR_INVALID_FUNCTABLE_ERROR; - if (pluginFuncs->size < sizeof(NPPluginFuncs)) + if (pluginFuncs->size < sizeof(NPPluginFuncs)) err = NPERR_INVALID_FUNCTABLE_ERROR; } - - + if (err == NPERR_NO_ERROR) { /* * Copy all the fields of Netscape function table into our @@ -519,7 +517,7 @@ err = NPP_Initialize(); } - + return err; } diff --git a/plugin/virt-viewer-plugin.c b/plugin/virt-viewer-plugin.c index 00902e1..3fd6e84 100644 --- a/plugin/virt-viewer-plugin.c +++ b/plugin/virt-viewer-plugin.c @@ -2,7 +2,7 @@ VIRT-VIEWER-PLUGIN By Richard W.M. Jones - Copyright (C) 2008 Red Hat Inc. + Copyright (C) 2008-2012 Red Hat, Inc. Largely based on DiamondX (http://multimedia.cx/diamondx/), which itself is based on Mozilla sources. @@ -83,7 +83,7 @@ /* Make the VNC widget. */ if (This->uri && This->name) { debug ("calling viewer_start uri=%s name=%s direct=%d waitvm=%d reconnect=%d container=%p", - This->uri, This->name, This->direct, This->waitvm, This->reconnect, This->container); + This->uri, This->name, This->direct, This->waitvm, This->reconnect, This->container); r = viewer_start (This->uri, This->name, This->direct, This->waitvm, This->reconnect, 1, This->debug, This->container); if (r != 0) fprintf (stderr, "viewer_start returned %d != 0\n", r); diff --git a/plugin/virt-viewer-plugin.h b/plugin/virt-viewer-plugin.h index f53f782..add97df 100644 --- a/plugin/virt-viewer-plugin.h +++ b/plugin/virt-viewer-plugin.h @@ -2,7 +2,7 @@ VIRT_VIEWER-PLUGIN By Richard W.M. Jones - Copyright (C) 2008 Red Hat Inc. + Copyright (C) 2008-2012 Red Hat, Inc. Largely based on DiamondX (http://multimedia.cx/diamondx/), which itself is based on Mozilla sources. @@ -39,7 +39,7 @@ #include #include #include -#include "viewer.h" +#include "virt-viewer-app.h" #define PLUGIN_NAME "Virt-viewer browser plugin" #define MIME_TYPES_HANDLED "application/x-virt-viewer:virt-viewer:Virt viewer" @@ -77,7 +77,7 @@ fflush (stderr); } #else -static void debug (const char *msg G_GNUC_UNUSED, ...) { } +#define debug(msg...) #endif #endif /* VIRT_VIEWER_PLUGIN_H */ diff --git a/po/LINGUAS b/po/LINGUAS index 18f28d9..f24155d 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,24 +1,39 @@ +ar as +bg bn_IN +bn +cs de es +eu +fi fr +gl gu +he hi hu +id it ja kn ko +lv ml mr +nl or pa pl pt_BR +pt ru +si +sk ta te +tr uk zh_CN zh_TW diff --git a/po/Makefile.in.in b/po/Makefile.in.in index cc8a222..06a8cfe 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -49,8 +49,8 @@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot +MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ @@ -72,16 +72,21 @@ .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat + +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) +INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: - $(MSGFMT) -o $@ $< + $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< .po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ + $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: diff --git a/po/POTFILES.in b/po/POTFILES.in index d395ba8..6b998e7 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,10 +1,12 @@ -src/auth.c -src/events.c -src/main.c -src/util.c -src/viewer.c -src/display-spice.c -src/display-vnc.c -src/about.glade -src/auth.glade -src/viewer.glade +src/gbinding.c +src/remote-viewer-main.c +src/remote-viewer.c +[type: gettext/glade] src/virt-viewer-about.xml +src/virt-viewer-app.c +[type: gettext/glade] src/virt-viewer-auth.xml +src/virt-viewer-main.c +src/virt-viewer-session-spice.c +src/virt-viewer-session-vnc.c +src/virt-viewer-window.c +src/virt-viewer.c +[type: gettext/glade] src/virt-viewer.xml diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..5e95506 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/as.po b/po/as.po index a815998..6cdf62f 100644 --- a/po/as.po +++ b/po/as.po @@ -1,153 +1,198 @@ +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: # Amitakhya Phukan , 2010. +# Nilamdyuti Goswami , 2012. msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-14 13:50+0000\n" -"PO-Revision-Date: 2010-03-15 00:25+0530\n" -"Last-Translator: Amitakhya Phukan \n" -"Language-Team: Assamese <>\n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/language/as/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s সংস্কৰণ %s\n" - -#: ../src/main.c:52 +"Language: as\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "উৎস" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "বন্ধনৰ উৎস" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "লক্ষ্য" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "বন্ধনৰ লক্ষ্য" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "উৎস সম্পত্তি" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "বান্ধিব লগিয়া উৎসৰ সম্পত্তি" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "লক্ষ্য সম্পত্তি" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "বান্ধিব লগিয়া লক্ষ্যৰ সম্পত্তি" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ফ্লেগসমূহ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "বন্ধনী ফ্লেগসমূহ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "দুৰৱৰ্তী-দৰ্শক সংস্কৰণ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "চলাওক '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "সংস্কৰণৰ তথ্য দেখুৱাওক" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "ভাৰ্বোচ তথ্য দেখুৱাওক" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "কোনো স্বয়ংক্ৰিয় টানেল নোহোৱাকে পোনেপোনে সংযোগ" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "হাইপাৰ্ভাইচৰলৈ সংযোগ কৰক" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ডোমেইন আৰম্ভ হ'বলৈ ৰখক" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "পুনৰাৰম্ভত ডোমেইনলৈ পুনঃ সংযোগ কৰক" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "ডিবাগ তথ্য দেখুৱাওক" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "সংস্কৰণ তথ্য প্ৰদৰ্শন কৰক" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "ভাৰভৌচ তথ্য প্ৰদৰ্শন কৰক" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "কোনো স্বচালিত টানেল নহোৱাকৈ প্ৰত্যক্ষ সংযোগ" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "উইন্ডোৰ জুম স্তৰ, শতাংশত" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "ডিবাগ তথ্য প্ৰদৰ্শন কৰক" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Spice নিয়ন্ত্ৰক সংযোগ ব্যৱহাৰ কৰি সংযোগ খোলক" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- ভাৰ্চুৱেল যন্ত্ৰৰ চিত্ৰাঙ্কিত ক'ন্সোল" - -#: ../src/main.c:95 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"ব্যৱহাৰপদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "%s অতিথিৰ কাৰণে VNC প'ৰ্ট নিৰ্ধাৰণ কৰিব নোৱাৰি" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "%s অতিথিৰ কাৰণে VNC গৃহস্থ নিৰ্ধাৰণ কৰিব নোৱাৰি" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "%s ত VNC সেৱকলৈ সংযোগ কৰিব নোৱাৰি" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s ত VNC সেৱকৰ সৈতে প্ৰমাণীকৰণ কৰিব নোৱাৰি: %s\n" -"সংযোগ কৰিবলৈ পুনঃ চেষ্টা কৰোঁ ?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s ত VNC সেৱকৰ সৈতে প্ৰমাণীকৰণ কৰিব নোৱাৰি\n" -"অসমৰ্থিত প্ৰমাণীকৰণৰ ধৰণ %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "%s অতিথিৰ ডোমেইন পোৱা নাযায়" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "%s URI ৰে libvirt লৈ সংযোগ কৰিব নোৱাৰি" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[none]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- দূৰৱৰ্তী দৰ্শক ক্লাএন্ট" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "জুম স্তৰ ১০-২০০ ৰ মাজত হব লাগিব\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "সংযোগ আৰম্ভ কৰিবলে ব্যৰ্থ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "প্ৰদৰ্শন নিয়ন্ত্ৰক দ্বাৰা অসামৰ্থবান কৰা হৈছে" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "নিয়ন্ত্ৰক সংযোগ ব্যৰ্থ হল: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "এটা Spice অধিবেশন সৃষ্টি কৰিব পৰা নগল" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Spice অধিবেশন সংহতি কৰা হৈ আছে..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI ৰ পৰা সংযোগ ধৰণ নিৰ্ধাৰণ কৰিব পৰা নগল" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "এই ধৰণৰ বাবে এটা অধিবেশন সৃষ্টি কৰিব পৰা নগল: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC আৰু libvirt এৰে সৃষ্টি কৰা এটা দূৰৰ ডেষ্কট'প গ্ৰাহক" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK আৰু libvirt ৰ সৈতে নিৰ্মাণ কৰা এটা দূৰৱৰ্তী ডেস্কটপ ক্লাএন্ট" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Glade ৰ বিষয়ে" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "স্বত্বাধিকাৰ (C) ২০০৭-২০১২ ডেনিয়েল পি. বিৰেইঞ্জ\nস্বত্বাধিকাৰ (C) ২০০৭-২০১২ Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Fedora অনুবাদ দল" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -162,150 +207,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "এই প্ৰগ্ৰামটো এটা বিনামুলিয়া চফ্টওৱেৰ; আপুনি Free Software Foundation -ৰ দ্বাৰা প্ৰকাশিত GNU General Public License -ৰ চুক্তিসমূহৰ অন্তৰ্গত ইয়াক পুনৰ বিলাব পাৰিব অথবা সলনি কৰিব পাৰিব; হৈতো লাইচেঞ্চৰ সংস্কৰণ ২, অথবা (আপুনাৰ বিকল্পত) যিকোনো পৰৱৰ্তী সংস্কৰণ।\n\nএই প্ৰগ্ৰামটো এইটো আশাত বিলোৱা হৈছে যে ই ব্যৱহাৰযোগ্য হ'ব, কিন্তু কোনো ওৱাৰেন্টি নথকাকৈ; ব্যৱসায়ীক অথবা কোনো এটা বিশেষ কাৰণৰ যোগ্যতাৰ বাবে বুজুৱা ওৱাৰেন্টি নথকাকৈ। অধিক যানিবলৈ GNU General Public License চাওক।\n\nআপুনি হৈতো ইতিমধ্যে এই প্ৰগ্ৰামৰ সৈতে GNU General Public License -ৰ কপি এটা পাইছে; যদি নাই, Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA লে লিখক\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "এইটো শেষ দৃশ্যমান প্ৰদৰ্শন। আপুনি প্ৰস্থান কৰিব বিচাৰে নে?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "প্ৰদৰ্শন %d ৰ বাবে অপেক্ষা কৰা হৈ আছে..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "অতিথি %s ৰ বাবে অজ্ঞাত গ্ৰাফিক ধৰণ" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh লে সংযোগ ব্যৰ্থ হল।" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "চেনেলে সংযোগ কৰিব নোৱাৰি, কেৱল SSH সমৰ্থিত।" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "চেনেললে সংযোগ অসমৰ্থিত।" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "গ্ৰাফিক চাৰ্ভাৰলে সংযোগ কৰা হৈ আছে" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "অতিথি ডমেইন বন্ধ হল" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "গ্ৰাফিক চাৰ্ভাৰলে সংযোগিত" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "গ্ৰাফিক চাৰ্ভাৰ %s লে সংযোগ কৰিবলে অক্ষম" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s ত দূৰৱৰ্তী ডেস্কটপ চাৰ্ভাৰৰ সৈতে প্ৰমাণীত কৰিবলে অক্ষম: %s\nসংযোগ পুনৰ চেষ্টা কৰিব নে?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "দূৰৱৰ্তী ডেস্কটপ চাৰ্ভাৰৰ সৈতে প্ৰমাণিত কৰিবলে অক্ষম: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB পুনৰনিৰ্দেশ ত্ৰুটি: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "পৰিচয় প্ৰমাণ কৰা আৱশ্যক" - -#: ../src/auth.glade.h:2 +msgstr "প্ৰমাণীকৰণৰ প্ৰয়োজন" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" -msgstr "গুপ্তশব্দ:" - -#: ../src/auth.glade.h:3 +msgstr "পাছৱাৰ্ড:" + +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "ব্যৱহাৰকৰ্তাৰ নাম:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "ব্যৱহাৰকাৰীৰ নাম:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "লেবেল" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s সংস্কৰণ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt ব্যৱহাৰ কৰি স্থানীয় প্ৰদৰ্শনলে সংলঘ্ন কৰক" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "হাইপাৰভাইছৰলে সংযোগ কৰক" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ডমেইন আৰম্ভ হবলে অপেক্ষা কৰক" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "পুনৰাম্ভ হওতে ডমেইনলে পুনৰসংযোগ কৰক" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "পূৰ্ণ পৰ্দা অৱস্থাত খোলক" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt দৰ্শক" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- ভাৰ্চুৱেল যন্ত্ৰৰ চিত্ৰাঙ্কিত ক'ন্সোল" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nব্যৱহাৰপদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "পুনৰনিৰ্দেশৰ বাবে USB ডিভাইচসমূহ বাছক" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "অসমৰ্থিত প্ৰমাণীকৰণ ধৰণ %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "বিচ্ছিন্ন কৰক" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ডিভাইছ নিৰ্বাচন" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "পূৰ্ণপৰ্দা ত্যাগ কৰক" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "অতিথি ডমেইন পুনৰাম্ভ হোৱাৰ বাবে অপেক্ষা কৰা হৈ আছে" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "অতিথি %s ৰ বাবে গ্ৰাফিক ধৰণ নিৰ্ধাৰণ কৰিব নোৱাৰি" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "অতিথি %s ৰ বাবে গ্ৰাফিক ঠিকনা নিৰ্ধাৰণ কৰিব নোৱাৰি" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "অতিথি %s ৰ বাবে হস্ট নিৰ্ধাৰণ কৰিব নোৱাৰি" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "অতিথি ডমেইন বিচৰা" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "অতিথি ডমেইন সৃষ্টি হোৱালে অপেক্ষা কৰা হৈ আছে" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "%s অতিথিৰ ডোমেইন পোৱা নাযায়" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "অতিথি ডমেইন অৱস্থা নীৰিক্ষণ কৰা" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "অতিথি ডমেইন আৰম্ভ হোৱালে অপেক্ষা কৰা হৈ আছে" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "অতিথি ডমেইন দ্বাৰা চাৰ্ভাৰ আৰম্ভ কৰিবলে অপেক্ষা কৰা হৈ আছে" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "%s URI ৰে libvirt লৈ সংযোগ কৰিব নোৱাৰি" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[none]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "স্বয়ংক্ৰিয়ভাবে পুনঃ আকাৰ দিয়ক" - -#: ../src/viewer.glade.h:2 +msgstr "স্বচালিতভাৱে পুনৰআকাৰ দিয়ক" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "প্ৰদৰ্শনসমূহ" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "সম্পূৰ্ণ পৰ্দা" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "উন্মোচন কাৰ্চাৰ" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "পৰ্দ্দাৰ চিত্ৰ" - -#: ../src/viewer.glade.h:18 +msgstr "স্ক্ৰিনশ্বট" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "স্মাৰ্টকাৰ্ড সোমোৱা" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "স্মাৰ্টকাৰ্ড আতৰোৱা" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "নথিপত্ৰ (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "সহায় (_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "পৰ্দ্দা মূদ্ৰণ কৰক (_P)" - -#: ../src/viewer.glade.h:21 +msgstr "প্ৰিন্টস্ক্ৰিন (_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "চাবি পঠিয়াওক (_S)" - -#: ../src/viewer.glade.h:22 +msgstr "কি পঠাওক (_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "চাওক (_V)" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "পৃষ্ঠা 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "পৃষ্ঠা 2" - +msgstr "দৰ্শন কৰক (_V)" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "জুম কৰক (_Z)" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..28c80d8 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,558 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Valentin Laskov , 2012. +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Източник" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Източникът на привързването" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Цел" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Целта на привързването" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Свойства на източника" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "Свойствата на източника на привързване" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Свойства на целта" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "Свойствата на целта на привързване" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Флагове" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Флаговете на привързването" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer версия %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "Стартиране '" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Показва информация за версията" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Показва по-подробна информация" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Директна връзка без автоматични тунели" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "Размер на прозореца в проценти" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Показва информация за отстраняване на грешки" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Отвори връзка чрез комуникационния контролер Spice" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- Клиент за отдалечено наблюдение" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Размерът трябва да е в рамките 10-200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Неуспешно инициализиране на връзка" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Дисплеят е забранен от контролера" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Връзката на контролера пропадна: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Не мога да създам Spice сесия" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Създаване на Spice сесия..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "От това URI не може да се определи типа на връзката" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Не може да се създаде сесия от този тип: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Отдалечен десктоп клиент, създаден с GTK-VNC, SPICE-GTK и libvirt" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "Относно Glade" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "The Fedora Translation Team\nВалентин Ласков, 2012" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "Тази програма е свободен софтуер; Вие можете да я разпространявате\nи/или променяте под условията на GNU General Public License, както е публикуван от\nFree Software Foundation; версия 2 на лиценза, или по (ваше усмотрение),\nкоято и да е по-късна версия.\n\nТази програма се разпространява с надеждата, че ще бъде полезна,\nно БЕЗ КАКВАТО И ДА Е ГАРАНЦИЯ; без дори косвена гаранция за\nПРОДАВАЕМОСТ или ПРИГОДНОСТ ЗА ОПРЕДЕЛЕНА ЦЕЛ. Вижте\nGNU General Public License за повече подробности.\n\nВие би трябвало да сте получили копие на GNU General Public License\nзаедно с тази програма; ако не, пишете на Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "virt-manager.org" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Това е последният видим екран. Искате ли да излезете?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Изчаквам за да покажа %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Неизвестен тип графика за госта %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Връзката към ssh пропадна." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Не мога да се свържа към канала, поддържа се само SSH." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Свързване към канал не се поддържа." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Свързване към графичен сървър" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Виртуализиращата среда на госта беше спряна" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Свързан към графичен сървър" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Невъзможно е да се свържа с графичния сървър %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Невъзможно е удостоверяването пред отдалечения десктоп сървър на %s: %s\nДа опитам ли свързването отново?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Невъзможно е удостоверяването пред отдалечения десктоп сървър: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Грешка при USB пренасочването: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "Изисква се удостоверяване" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "Парола:" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "Потребител:" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "етикет" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s версия %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Прилагане към локалния дисплей посредством libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Свързване към хипервайзор" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Изчаквам стартирането на виртуализиращата среда" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Повторно включване към виртуализиращата среда при рестартиране" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Отвори в режим на Цял екран" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Вирт наблюдател" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- Графична конзола на виртуална машина" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nУпотреба: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Изберете USB устройства за пренасочване" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Не се поддържа удостоверяване тип %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Изключване" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Избор на USB устройства" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Изход от Цял екран" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Изчакване виртуализиращата среда на госта да се рестартира" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Не мога да определя графичния тип за госта %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Не мога да определя графичния адрес за госта %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Не мога да определя хоста за госта %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Търсене на виртуализиращата среда на госта" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Изчакване виртуализиращата среда да бъде създадена" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Не мога да намеря виртуализиращата среда на госта %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Проверка състоянието на виртуализиращата среда" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Изчакване виртуализиращата среда на госта да бъде стартирана" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Изчакване виртуализиращата среда на госта да стартира сървър" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Не е възможна връзка към libvirt с URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[нищо]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "Автоматично мащабиране" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "Ctrl+Alt+F11" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "Ctrl+Alt+F12" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "Ctrl+Alt+F1_0" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "Ctrl+Alt+F_1" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "Ctrl+Alt+F_2" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "Ctrl+Alt+F_3" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "Ctrl+Alt+F_4" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "Ctrl+Alt+F_5" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "Ctrl+Alt+F_6" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "Ctrl+Alt+F_7" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "Ctrl+Alt+F_8" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "Ctrl+Alt+F_9" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "Ctrl+Alt+_Backspace" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "Ctrl+Alt+_Del" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Екрани" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "Цял екран" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Освобождаване на показалеца" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "Снимка на екрана" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Поставяне на смарткарта" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Премахване на смарткарта" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "_Файл" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "_Помощ" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "Отпечатай _екрана" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "Изпрати _клавиш" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "_Изглед" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "_Мащабиране" diff --git a/po/bn.po b/po/bn.po new file mode 100644 index 0000000..52cad7a --- /dev/null +++ b/po/bn.po @@ -0,0 +1,563 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ayesha Akhtar , 2012. +# Mahay Alam Khan , 2012. +# Newton Baidya , 2012. +# Robin Mehdee , 2012. +# Runa Bhattacharjee , 2010. +# , 2012. +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Bengali \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "উৎস" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "বাইন্ডিংয়ের উৎস" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "উদ্দিষ্ট" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "বাইন্ডিংয়ের উদ্দিষ্টবস্তু" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "উৎসের বস্তু" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "উৎসের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "উদ্দিষ্টের বস্তু" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "উদ্দিষ্টের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ফ্ল্যাগ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "বাইন্ড করতে ব্যবহৃত ফ্ল্যাগ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer সংস্করণ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "সঞ্চালিত হবে '" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "সংস্করণ সংক্রান্ত তথ্য প্রদর্শন করা হবে" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "ভার্বোস তথ্য প্রদর্শন করা হবে" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "স্বয়ংক্রিয় টানেল বিনা কোনো সরাসরি যোগাযোগ নেই" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "উইন্ডোর প্রদর্শনের মাপ, শতাংশে ব্যক্ত" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "ডিবাগ সংক্রান্ত তথ্য প্রদর্শন করা হবে" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Spice কন্ট্রোলারের যোগাব্যবস্থার মাধ্যমে সংযোগ আরম্ভ করা হবে" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- দূরবর্তী প্রদর্শনব্যবস্থার ক্লায়েন্ট" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "প্রদর্শনের মাত্রা ১০-২০০-র মধ্যে হওয়া আবশ্যক\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "সংযোগ আরম্ভ করতে ব্যর্থ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "কন্ট্রোলার দ্বারা প্রদর্শন নিষ্ক্রিয় করা হয়েছে" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "কন্ট্রোলারের সংযোগ স্থাপন করতে ব্যর্থ: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "একটি Spice সেশান প্রস্তুত করতে ব্যর্থ" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Spice-র সেশান প্রস্তুত করা হচ্ছে..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI থেকে সংযোগের ধরন নির্ধারণ করা সম্ভব নয়" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "এই ধরনের জন্য সেশান প্রস্তুত করা যায়নি: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK ও libvirt সহযোগে নির্মিত একটি দূরবর্তী ডেস্কটপ" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "Glade পরিচিতি" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "স্বত্বাধিকার (C) ২০০৭-২০১২ ড্যানিয়েল পি. বেরাঞ্জ\nস্বত্বাধিকার (C) ২০০৭-২০১২ Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "Fedora-র অনুবাদকদের দল" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "এটি একটি মুক্ত সফ্টওয়্যার; Free Software Foundation দ্বারা প্রকাশিত GNU General Public License-র শর্তানুযায়ী এটি বিতরণ ও পরিবর্তন করা যাবে; লাইসেন্সের সংস্করণ ২ অথবা (আপনার সুবিধানুযায়ী) ঊর্ধ্বতন কোনো সংস্করণের অধীন।\n\nএই প্রোগ্রামটি বিতরণ করার মূল উদ্দেশ্য যে ব্যবহারকারীরা এর দ্বারা উপকৃত হবেন, কিন্তু \nএটির জন্য কোনো সুস্পষ্ট ওয়ারেন্টি উপস্থিত নেই; বাণিজ্যিক ও কোনো সুনির্দিষ্ট কর্ম সাধনের \nজন্য অন্তর্নিহীত ওয়ারেন্টিও অনুপস্থিত। অধিক জানতে GNU General Public License পড়ুন।\n\nএই প্রোগ্রামের সাথে GNU General Public License-র একটি প্রতিলিপি উপলব্ধ হওয়া উচিত; \nনা থাকলে নিম্নলিখিত ঠিকানায় লিখে তা সংগ্রহ করুন Free Software Foundation, Inc., \n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "virt-manager.org" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "এটি সর্বশেষ দৃশ্যমান প্রদর্শন। আপনি কি প্রস্থান করতে ইচ্ছুক?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "%d প্রদর্শনের জন্য অপেক্ষা করা হচ্ছে..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য অজানা ধরনের গ্রাফিক" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh-র সাথে সংযোগ করতে ব্যর্থ।" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "চ্যানেলের সাথে সংযোগ করা যায়নি, শুধুমাত্র SSH সমর্থিত হবে।" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "সমর্থন বিনা চ্যানেলের সাথে সংযোগ করা হবে।" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হচ্ছে" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "গেস্ট ডোমেইন বন্ধ হয়েছে" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "%s গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s-এ উপস্থিত দূরবর্তী ডেস্কটপ সার্ভারে অনুমোদন করতে ব্যর্থ: %s\nপুনরায় সংযোগের প্রচেষ্টা করা হবে কি?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "দূরবর্তী ডেস্কটপ সার্ভারের সাথে অনুমোদন করতে ব্যর্থ: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB পুনর্নির্দেশে সমস্যা: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "অনুমোদন প্রয়োজন" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "পাসওয়ার্ড:" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "ব্যবহারকারীর নাম:" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "label" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s সংস্করণ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt সহযোগে স্থানীয় প্রদর্শন ব্যবস্থার সাথে সংযোগ করুন" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "হাইপার-ভাইসরের সাথে সংযোগ স্থাপন করুন" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ডোমেইন আরম্ভ করতে ব্যর্থ" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "পুনরারম্ভের পরে ডোমেইনের সাথে সংযোগ পুনরায় স্থাপন করা হবে" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "সম্পূর্ণ পর্দায় প্রদর্শন করা হবে" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- ভার্চুয়াল মেশিনের গ্রাফিক্যাল কনসোল" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nব্যবহার পদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "পুনর্নির্দেশের জন্য USB ডিভাইস নির্বাচন করুন" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "%d ধরনের অনুমোদন সমর্থিত নয়" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "সংযোগ বিচ্ছেদ করুন" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ডিভাইস নির্বাচন" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "সম্পূর্ণ পর্দায় প্রদর্শন থেকে প্রস্থান" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "গেস্ট ডোমেইন পুনরায় আরম্ভের অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিকের ধরন নির্ধারণ করা সম্ভব নয়" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিক ঠিকানা নির্ধারণ করা সম্ভব নয়" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য হোস্ট নির্ধারণ করা সম্ভব নয়" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "গেস্ট ডোমেইন সন্ধান করা হচ্ছে" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "গেস্ট ডোমেইন প্রস্তুতির অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "%s গেস্ট ডোমেইন সন্ধান করতে ব্যর্থ" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "গেস্ট ডোমেইনের অবস্থা পরীক্ষা করতে ব্যর্থ" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "গেস্ট ডোমেইন আরম্ভের অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "গেস্ট ডোমেইন দ্বারা সার্ভার আরম্ভের অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s সহযোগে libvirt-র সাথে সংযোগ করতে ব্যর্থ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[শূণ্য]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "স্বয়ংক্রিয়ভাবে মাপ পরিবর্তন করুন" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "Ctrl+Alt+F11" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "Ctrl+Alt+F12" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "Ctrl+Alt+F1_0" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "Ctrl+Alt+F_1" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "Ctrl+Alt+F_2" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "Ctrl+Alt+F_3" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "Ctrl+Alt+F_4" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "Ctrl+Alt+F_5" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "Ctrl+Alt+F_6" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "Ctrl+Alt+F_7" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "Ctrl+Alt+F_8" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "Ctrl+Alt+F_9" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "Ctrl+Alt+_Backspace" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "Ctrl+Alt+_Del" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "প্রদর্শনক্ষেত্র" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "সম্পূর্ণ পর্দায় প্রদর্শন" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "কার্সার মুক্ত করা হবে" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "স্ক্রিন-শট" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "স্মার্ট-কার্ড অন্তর্ভুক্তি" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "স্মার্ট-কার্ড অপসারণ" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "ফাইল (_F)" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "সহায়তা (_H)" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "_PrintScreen" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "কি পাঠিয়ে দিন (_S)" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "প্রদর্শন (_V)" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "প্রদর্শনের নাম (_Z)" diff --git a/po/bn_IN.po b/po/bn_IN.po index 89feaeb..686a802 100644 --- a/po/bn_IN.po +++ b/po/bn_IN.po @@ -1,154 +1,198 @@ -# translation of virt-viewer.tip.virt-viewer.po to Bengali INDIA +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: # Runa Bhattacharjee , 2010. +# , 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.virt-viewer\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-26 08:22+0000\n" -"PO-Revision-Date: 2010-02-26 15:55+0530\n" -"Last-Translator: Runa Bhattacharjee \n" -"Language-Team: Bengali INDIA \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Bengali (India) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s সংস্করণ %s\n" - -#: ../src/main.c:52 +"Language: bn_IN\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "উৎস" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "বাইন্ডিংয়ের উৎস" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "উদ্দিষ্ট" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "বাইন্ডিংয়ের উদ্দিষ্টবস্তু" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "উৎসের বস্তু" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "উৎসের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "উদ্দিষ্টের বস্তু" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "উদ্দিষ্টের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ফ্ল্যাগ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "বাইন্ড করতে ব্যবহৃত ফ্ল্যাগ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer সংস্করণ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "সঞ্চালিত হবে '" -#: ../src/main.c:55 -msgid "display version information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" msgstr "সংস্করণ সংক্রান্ত তথ্য প্রদর্শন করা হবে" -#: ../src/main.c:57 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "ভার্বোস তথ্য প্রদর্শন করা হবে" -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "স্বয়ংক্রিয় টানেল বিনা কোনো সরাসরি যোগাযোগ নেই" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "হাইপার-ভাইসরের সাথে সংযোগ স্থাপন করুন" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ডোমেইন আরম্ভের অপেক্ষা করা হবে" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "পুনরারম্ভের পরে ডোমেইনের সাথে সংযোগ পুনরায় স্থাপন করা হবে" - -#: ../src/main.c:67 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "স্বয়ংক্রিয় টানেল বিনা কোনো সরাসরি যোগাযোগ নেই" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "উইন্ডোর প্রদর্শনের মাপ, শতাংশে ব্যক্ত" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "ডিবাগ সংক্রান্ত তথ্য প্রদর্শন করা হবে" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Spice কন্ট্রোলারের যোগাব্যবস্থার মাধ্যমে সংযোগ আরম্ভ করা হবে" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- ভার্চুয়াল মেশিনের গ্রাফিক্যাল কনসোল" - -#: ../src/main.c:95 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"ব্যবহার পদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "%s গেস্ট মেশিনের জন্য VNC পোর্ট নির্ধারণ করা সম্ভব নয়" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "%s গেস্ট মেশিনের জন্য VNC হোস্ট নির্ধারণ করা সম্ভব নয়" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "%s VNC সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s-এ উপস্থিত VNC সার্ভারে অনুমোদন করতে ব্যর্থ: %s\n" -"পুনরায় সংযোগের প্রচেষ্টা করা হবে কি?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s-এ উপস্থিত VNC সার্ভারে অনুমোদন করতে ব্যর্থ\n" -"%d ধরনের অনুমোদন সমর্থিত নয়" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "%s গেস্ট ডোমেইন সন্ধান করতে ব্যর্থ" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s সহযোগে libvirt-র সাথে সংযোগ করতে ব্যর্থ" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[শূণ্য]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- দূরবর্তী প্রদর্শনব্যবস্থার ক্লায়েন্ট" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "প্রদর্শনের মাত্রা ১০-২০০-র মধ্যে হওয়া আবশ্যক\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "সংযোগ আরম্ভ করতে ব্যর্থ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "কন্ট্রোলার দ্বারা প্রদর্শন নিষ্ক্রিয় করা হয়েছে" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "কন্ট্রোলারের সংযোগ স্থাপন করতে ব্যর্থ: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "একটি Spice সেশান প্রস্তুত করতে ব্যর্থ" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Spice-র সেশান প্রস্তুত করা হচ্ছে..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI থেকে সংযোগের ধরন নির্ধারণ করা সম্ভব নয়" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "এই ধরনের জন্য সেশান প্রস্তুত করা যায়নি: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC ও libvirt সহযোগে নির্মিত একটি দূরবর্তী ডেস্কটপ ক্লায়েন্ট" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK ও libvirt সহযোগে নির্মিত একটি দূরবর্তী ডেস্কটপ" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Glade পরিচিতি" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"স্বত্বাধিকার ২০০৭-২০০৮ ডেনিয়েল পি. বেরাঞ্জ\n" -"স্বত্বাধিকার ২০০৭-২০০৮ Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "স্বত্বাধিকার (C) ২০০৭-২০১২ ড্যানিয়েল পি. বেরাঞ্জ\nস্বত্বাধিকার (C) ২০০৭-২০১২ Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "Fedora অনুবাদের দল" - -#: ../src/about.glade.h:6 +msgstr "Fedora-র অনুবাদকদের দল" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,148 +207,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"এই প্রোগ্রামটি একটি মুক্ত সফ্টওয়্যার; Free Software Foundation দ্বারা প্রকাশিত GNU\n" -"General Public License-র শর্তানুযায়ী এটি বিতরণ ও পরিবর্তন করা যাবে; লাইসেন্সের\n" -"সংস্করণ ২ অথবা (আপনার সুবিধানুযায়ী) ঊর্ধ্বতন কোনো সংস্করণের অধীন।\n" -"\n" -"এই প্রোগ্রামটি বিতরণ করার মূল উদ্দেশ্য যে ব্যবহারকারীরা এর দ্বারা উপকৃত হবেন, কিন্তু\n" -"এটির জন্য কোনো সুস্পষ্ট ওয়ারেন্টি উপস্থিত নেই; বাণিজ্যিক ও কোনো সুনির্দিষ্ট কর্ম সাধনের\n" -"জন্য অন্তর্নিহীত ওয়ারেন্টিও অনুপস্থিত। অধিক জানতে GNU General Public License পড়ুন।\n" -"\n" -"এটির সাথে GNU General Public License-র একটি প্রতিলিপি উপলব্ধ হওয়া উচিত;\n" -"না থাকলে Free Software Foundation, Inc., 59 Temple Place, Suite 330, \n" -"Boston, MA 02111-1307 USA থেকে তা প্রাপ্ত করুন\n" - -#: ../src/about.glade.h:20 +msgstr "এটি একটি মুক্ত সফ্টওয়্যার; Free Software Foundation দ্বারা প্রকাশিত GNU General Public License-র শর্তানুযায়ী এটি বিতরণ ও পরিবর্তন করা যাবে; লাইসেন্সের সংস্করণ ২ অথবা (আপনার সুবিধানুযায়ী) ঊর্ধ্বতন কোনো সংস্করণের অধীন।\n\nএই প্রোগ্রামটি বিতরণ করার মূল উদ্দেশ্য যে ব্যবহারকারীরা এর দ্বারা উপকৃত হবেন, কিন্তু \nএটির জন্য কোনো সুস্পষ্ট ওয়ারেন্টি উপস্থিত নেই; বাণিজ্যিক ও কোনো সুনির্দিষ্ট কর্ম সাধনের \nজন্য অন্তর্নিহীত ওয়ারেন্টিও অনুপস্থিত। অধিক জানতে GNU General Public License পড়ুন।\n\nএই প্রোগ্রামের সাথে GNU General Public License-র একটি প্রতিলিপি উপলব্ধ হওয়া উচিত; \nনা থাকলে নিম্নলিখিত ঠিকানায় লিখে তা সংগ্রহ করুন Free Software Foundation, Inc., \n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "এটি সর্বশেষ দৃশ্যমান প্রদর্শন। আপনি কি প্রস্থান করতে ইচ্ছুক?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "%d প্রদর্শনের জন্য অপেক্ষা করা হচ্ছে..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য অজানা ধরনের গ্রাফিক" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh-র সাথে সংযোগ করতে ব্যর্থ।" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "চ্যানেলের সাথে সংযোগ করা যায়নি, শুধুমাত্র SSH সমর্থিত হবে।" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "সমর্থন বিনা চ্যানেলের সাথে সংযোগ করা হবে।" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হচ্ছে" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "গেস্ট ডোমেইন বন্ধ হয়েছে" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "%s গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s-এ উপস্থিত দূরবর্তী ডেস্কটপ সার্ভারে অনুমোদন করতে ব্যর্থ: %s\nপুনরায় সংযোগের প্রচেষ্টা করা হবে কি?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "দূরবর্তী ডেস্কটপ সার্ভারের সাথে অনুমোদন করতে ব্যর্থ: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB পুনর্নির্দেশে সমস্যা: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "অনুমোদন প্রয়োজন" - -#: ../src/auth.glade.h:2 +msgstr "অনুমোদন প্রয়োজন" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" -msgstr "পাসওয়ার্ড:" - -#: ../src/auth.glade.h:3 +msgstr "পাসওয়ার্ড:" + +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "ব্যবহারকারী নাম:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "ব্যবহারকারীর নাম:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "label" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s সংস্করণ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt সহযোগে স্থানীয় প্রদর্শন ব্যবস্থার সাথে সংযোগ করুন" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "হাইপার-ভাইসরের সাথে সংযোগ স্থাপন করুন" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ডোমেইন আরম্ভ করতে ব্যর্থ" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "পুনরারম্ভের পরে ডোমেইনের সাথে সংযোগ পুনরায় স্থাপন করা হবে" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "সম্পূর্ণ পর্দায় প্রদর্শন করা হবে" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- ভার্চুয়াল মেশিনের গ্রাফিক্যাল কনসোল" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nব্যবহার পদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "পুনর্নির্দেশের জন্য USB ডিভাইস নির্বাচন করুন" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "%d ধরনের অনুমোদন সমর্থিত নয়" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "সংযোগ বিচ্ছেদ করুন" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ডিভাইস নির্বাচন" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "সম্পূর্ণ পর্দায় প্রদর্শন থেকে প্রস্থান" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "গেস্ট ডোমেইন পুনরায় আরম্ভের অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিকের ধরন নির্ধারণ করা সম্ভব নয়" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিক ঠিকানা নির্ধারণ করা সম্ভব নয়" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "%s গেস্ট মেশিনের জন্য হোস্ট নির্ধারণ করা সম্ভব নয়" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "গেস্ট ডোমেইন সন্ধান করা হচ্ছে" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "গেস্ট ডোমেইন প্রস্তুতির অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "%s গেস্ট ডোমেইন সন্ধান করতে ব্যর্থ" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "গেস্ট ডোমেইনের অবস্থা পরীক্ষা করতে ব্যর্থ" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "গেস্ট ডোমেইন আরম্ভের অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "গেস্ট ডোমেইন দ্বারা সার্ভার আরম্ভের অপেক্ষা করা হচ্ছে" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s সহযোগে libvirt-র সাথে সংযোগ করতে ব্যর্থ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[শূণ্য]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "স্বয়ংক্রিয়ভাবে মাপ পরিবর্তন" - -#: ../src/viewer.glade.h:2 +msgstr "স্বয়ংক্রিয়ভাবে মাপ পরিবর্তন করুন" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "প্রদর্শনক্ষেত্র" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "সম্পূর্ণ পর্দায় প্রদর্শন" - -#: ../src/viewer.glade.h:17 +msgstr "সম্পূর্ণ পর্দায় প্রদর্শন" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "কার্সার মুক্ত করা হবে" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "পর্দার ছবি" - -#: ../src/viewer.glade.h:18 +msgstr "স্ক্রিন-শট" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "স্মার্ট-কার্ড অন্তর্ভুক্তি" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "স্মার্ট-কার্ড অপসারণ" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "ফাইল (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "সাহায্য (_H)" - -#: ../src/viewer.glade.h:20 +msgstr "সহায়তা (_H)" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "পর্দার ছবি নিন (_P)" - -#: ../src/viewer.glade.h:21 +msgstr "_PrintScreen" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "কি প্রেরণ (_S)" - -#: ../src/viewer.glade.h:22 +msgstr "কি পাঠিয়ে দিন (_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "প্রদর্শন (_V)" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "পৃষ্ঠা ১" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "পৃষ্ঠা ২" - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "প্রদর্শনের নাম (_Z)" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..1a3dca2 --- /dev/null +++ b/po/cs.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Czech (http://www.transifex.net/projects/p/fedora/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/de.po b/po/de.po index df5b307..31b2095 100644 --- a/po/de.po +++ b/po/de.po @@ -1,140 +1,199 @@ -# translation of de.po to -# German translations for PACKAGE package. -# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # +# Translators: # Automatically generated, 2010. # Hedda Peters , 2010. +# , 2012. msgid "" msgstr "" -"Project-Id-Version: de\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-28 07:48+0000\n" -"PO-Revision-Date: 2010-01-22 13:13+1000\n" -"Last-Translator: Hedda Peters \n" -"Language-Team: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s Version %s\n" - -#: ../src/main.c:53 +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Quelle" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Die Quelle der Bindung" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Ziel" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Das Ziel der Bindung" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Quell-Eigenschaft" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "Die Eigenschaft auf der Quelle der Bindung" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Ziel-Eigenschaft" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "Die Eigenschaft auf dem Ziel der Bindung" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Flags" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Die Bindungs-Flags" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "Remote-Viewer Version %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Ausführen '" -#: ../src/main.c:56 -msgid "display version information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" msgstr "Versionsinformationen anzeigen" -#: ../src/main.c:58 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "Ausführliche Informationen anzeigen" -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" msgstr "Direkte Verbindung ohne automatische Tunnel" -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "Verbinden mit Hypervisor" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "Warten auf Start der Domain" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "Nach Neustart erneut mit Domain verbinden" - -#: ../src/main.c:70 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "Zoomlevel des Fensters in Prozent" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "Debugging-Informationen anzeigen" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Verbindung öffnen unter Verwendung der Spice-Kontroller-Kommunikation" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- Grafische Konsole der virtuellen Maschine" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Verwendung: %s [OPTIONEN] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:1053 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "Gast-Domain %s konnte nicht gefunden werden" - -#: ../src/viewer.c:1161 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "Verbindung zu libvirt mit URI %s konnte nicht hergestellt werden" - -#: ../src/viewer.c:1162 -msgid "[none]" -msgstr "[keine]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"Authentifikation beim VNC-Server unter %s fehlgeschlagen\n" -"Nicht unterstützter Authentifikationsstyp %d" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"Authentifikation beim VNC-Server unter %s fehlgeschlagen: %s\n" -"Verbindung erneut versuchen?" +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- Remote-Viewer Client" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Zoom-Level muss zwischen 10 und 200 sein\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Initiieren der Verbindung fehlgeschlagen" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Anzeige vom Kontroller deaktiviert" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Kontroller-Verbindung fehlgeschlagen: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Spice-Sitzung konnte nicht erstellt werden" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Einrichten der Spice-Sitzung ..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Verbindungstyp konnte nicht von URI ermittelt werden" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Sitzung für diesen Typ konnte nicht erstellt werden: %s" #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: #. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Ein Remote-Desktop-Client basierend auf GTK-VNC und libvirt" - -#: ../src/about.glade.h:2 +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Ein Remote-Desktop-Client erstellt unter Verwendung von GTK-VNC, SPICE-GTK und libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Über Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "Das Fedora-Übersetzungsteam" - -#: ../src/about.glade.h:6 +msgstr "Das Fedora Übersetzungs-Team" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -149,198 +208,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Dieses Programm ist freie Software. Sie können es unter den Bedingungen\n" -"der GNU General Public License, wie von der Free Software Foundation\n" -"veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2\n" -"der Lizenz oder (nach Ihrer Option) jeder späteren Version.\n" -"\n" -"Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es\n" -"Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne\n" -"die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN\n" -"BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.\n" -"\n" -"Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem\n" -"Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Dies ist die letzte sichtbare Anzeige. Möchten Sie beenden?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Warten auf Anzeige %d ..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Unbekannter Grafiktyp für Gast %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Verbindung über SSH ist fehlgeschlagen." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Zu dem Kanal konnte nicht verbunden werden, es wird nur SSH unterstützt" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Verbindung zu dem Kanal wird nicht unterstützt." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Verbinden mit Grafikserver" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Gast-Domain wurde beendet" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Verbunden mit Grafikserver" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Verbindung zum Grafik-Server %s konnte nicht hergestellt werden" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Authentifikation beim Remote-Desktop-Server unter %s fehlgeschlagen: %s\nVerbindung erneut versuchen?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Authentifikation beim Remote-Desktop-Server fehlgeschlagen: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB-Weiterleitungsfehler: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "Authentifikation erforderlich" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Passwort:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "Benutzername:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "Kennung" - -#: ../src/viewer.glade.h:1 +msgstr "Label" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s Version %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Mit lokaler Anzeige verbinden mittels libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Verbinden mit Hypervisor" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Warten auf Start der Domain" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Nach Neustart erneut mit Domain verbinden" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "In Vollbildmodus öffnen" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt-Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- Grafische Konsole der virtuellen Maschine" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nVerwendung: %s [OPTIONEN] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "USB-Gerät zur Weiterleitung wählen" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Nicht unterstützter Authentifikationsstyp %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Verbindung trennen" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB-Geräteauswahl" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Vollbildmodus verlassen" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Warten auf Neustart der Domain" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Grafiktyp für den Gast %s konnte nicht ermittelt werden " + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Grafikadresse für den Gast %s konnte nicht ermittelt werden " + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Host für den Gast %s konnte nicht ermittelt werden" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Suchen der Gast-Domain" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Warten auf Erstellung der Gast-Domain" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Gast-Domain %s konnte nicht gefunden werden" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Prüfen des Gast-Domain-Status" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Warten auf Start der Gast-Domain" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Warten, bis Gast-Domain den Server startet" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Verbindung zu libvirt mit URI %s konnte nicht hergestellt werden" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[keine]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "Größe automatisch anpassen" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Strg+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Strg+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Strg+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Strg+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Strg+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Strg+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Strg+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Strg+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Strg+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Strg+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Strg+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Strg+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Strg+Alt+_Rücktaste" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Strg+Alt+_Entf" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Anzeigen" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "Vollbild" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Cursor freigeben" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "Screenshot" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Smartcard-Eingabe" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Smartcard-Entfernung" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_Datei" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "_Hilfe" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "S_creenshot" - -#: ../src/viewer.glade.h:21 +msgstr "_Bildschirm drucken" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "_Taste senden" - -#: ../src/viewer.glade.h:22 +msgstr "_Schlüssel senden" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "_Ansicht" -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "Seite 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "Seite 2" - -#: ../src/viewer.glade.h:23 +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" msgstr "_Zoom" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "Seite 3" - -#: ../src/main.c:68 -msgid "Zoom level of window, in percentage" -msgstr "Zoomlevel des Fensters in Prozent" - -#: ../src/viewer.c:863 -msgid "Connect to channel unsupported." -msgstr "Verbindung zu dem Kanal wird nicht unterstützt" - -#: ../src/viewer.c:858 -msgid "Can't connect to channel, SSH only supported." -msgstr "Zu dem Kanal konnte nicht verbunden werden, es wird nur SSH unterstützt" - -#: ../src/viewer.c:805 -#, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "Grafiktyp für den Gast %s konnte nicht ermittelt werden " - -#: ../src/viewer.c:824 -#, c-format -msgid "Cannot determine the graphic port for the guest %s" -msgstr "Grafikport für den Gast %s konnte nicht ermittelt werden " - -#: ../src/viewer.c:817 -#, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "Unbekannter Grafiktyp für Gast %s" - -#: ../src/viewer.c:856 -msgid "Connect to ssh failed." -msgstr "Verbindung über SSH ist fehlgeschlagen" - -#: ../src/viewer.c:830 -#, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "Host für den Gast %s konnte nicht ermittelt werden" - -#: ../src/viewer.c:1006 -#, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "Verbindung zum Grafik-Server %s konnte nicht hergestellt werden" diff --git a/po/es.po b/po/es.po index 3f09862..245f12b 100644 --- a/po/es.po +++ b/po/es.po @@ -1,176 +1,200 @@ -# translation of es.po to Spanish -# Spanish translations for PACKAGE package. -# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # +# Translators: +# Adolfo Jayme Barrientos , 2012. +# , 2012. # Manuel Eduardo Ospina Sarmiento , 2010. # Manuel Ospina , 2010. msgid "" msgstr "" -"Project-Id-Version: es\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-08 07:51+0000\n" -"PO-Revision-Date: 2011-01-10 15:14-0300\n" -"Last-Translator: Claudio Rodrigo Pereyra Diaz \n" -"Language-Team: Spanish \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Spanish (Castilian) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s versión %s\n" - -#: ../src/main.c:53 +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Fuente" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "La fuente de la conexión" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Destino" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "El destino de la conexión" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Propiedad de fuente" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "La propiedad en la fuente que va a conectar" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Propiedad de destino" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "La propiedad en la fuente que va a conectar" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Indicadores" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Indicadores de conexión" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer versión %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" -msgstr "Ejecutar" - -#: ../src/main.c:56 -msgid "display version information" -msgstr "mostrar información de la versión" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "mostrar mensajes de salida" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "conexión directa sin tuneles automáticos" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "conectar al hipervisor" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "esperar que el dominio inicie" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "volver a conectar al dominio después del reinicio" - -#: ../src/main.c:68 +msgstr "Ejecutar '" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Mostrar información de versión" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Mostrar información detallada" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Conexión directa sin túneles automáticos" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "Aumentar acercamiento de ventana, en porcentaje" -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "mostrar información de depuración" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Mostrar información de depuración" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Abra la conexión mediante el controlador de comunicación Spice " + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- Consola gráfica de la máquina virtual" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Uso: %s [OPCIONES] DOMINIO-NOMBRE|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:830 -#, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "No se puede determinar el tipo de gráficos para el huésped %s" - -#: ../src/viewer.c:842 -#, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "Tipo de gráficos desconocido para el huésped %s" - -#: ../src/viewer.c:861 -#, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "No se puede determinar el anfitrión para el huésped %s" - -#: ../src/viewer.c:885 -msgid "Connect to ssh failed." -msgstr "Conección a ssh fallida." - -#: ../src/viewer.c:887 -msgid "Can't connect to channel, SSH only supported." -msgstr "No se puede conectar al canal, soportado solamente SSH." - -#: ../src/viewer.c:892 -msgid "Connect to channel unsupported." -msgstr "Conectar a canal no soportado." - -#: ../src/viewer.c:1049 -#, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "No se pudo conectar al servidor gráfico %s" - -#: ../src/viewer.c:1096 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "No se pudo encontrar el dominio huésped %s" - -#: ../src/viewer.c:1204 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "No se pudo conectar a libvirt con el URI %s" - -#: ../src/viewer.c:1205 -msgid "[none]" -msgstr "[ninguno]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"No se pudo autenticar con el servidor VNC en %s\n" -"No se soporta el tipo de autenticación %d" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"No se pudo autenticar con el servidor VNC en %s: %s\n" -"¿Intentar de nuevo?" +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- Cliente de visor remoto" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "El nivel de amplificación debe ser de 10-200⏎\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "No se pudo inicializar la conexión" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Pantalla desactivada por el controlador" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "No se pudo conectar al controlador: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "No se pudo crear una sesión de Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Configurando sesión de Spice…" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "No se puede determinar el tipo de conexión de la URI" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "No se pudo crear una sesión para este tipo: %s" #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: #. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Un cliente de escritorio remoto construido con GTK-VNC y libvirt" - -#: ../src/about.glade.h:2 +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Un cliente de escritorio remoto creado con GTK-VNC, SPICE-GTK y libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Acerca de Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "El equipo de traducción de Fedora" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -185,167 +209,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Este programa es software libre; puede distribuirlo y/o modificarlo\n" -"bajo los términos de la licencia pública GNU (General Public License)\n" -"tal y como fue publicada por la fundación de software libre (Free\n" -"Software Foundation); ya sea la versión 2 de ésta, o (según su\n" -"elección) una versión posterior.\n" -"\n" -"Este programa es distribuido con la esperanza de que sea útil,\n" -"pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL\n" -"implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO\n" -"PARTICULAR. Vea la Licencia Pública General de GNU para obtener\n" -"mayor información.\n" -"\n" -"Debería haber recibido una copia de la licencia (GNU General Public License)\n" -"junto con este programa; de lo contrario, escriba a Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "Este programa es de software libre; puede distribuirlo y modificarlo bajo los términos de la Licencia Pública General de GNU publicada por la Free Software Foundation, ya sea la versiṕn 2 de la licencia o (su opción) una versión posterior.\n\nEste programa se distribuye con la esperanza de que será útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de comerciabilidad o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Ver la GNU General Public License para más detalles. ⏎ \n\nDebe de haber recibido una copia de la Licencia Pública General de GNU junto con este programa, si no, escriba a la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 EE.UU. \n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Esta es la última pantalla visible. ¿Quiere salir?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Esperando la pantalla %d…" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Tipo de gráficos desconocido para el huésped %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Falló la conexión a ssh." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "No se puede conectar al canal, solo se permite SSH." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "La conexión al canal no está soportada." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Conectando al servidor gráfico" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Dominio de huéspedes se ha apagado" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Conectado al servidor gráfico" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "No se pudo conectar al servidor gráfico %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "No se puede autenticar con el servidor de escritorio remoto en %s: %s⏎ \n¿Reintentar la conexión?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "No se puede autenticar con el servidor del escritorio remoto: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Error de redirección USB: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "Autenticación requerida" - -#: ../src/auth.glade.h:2 +msgstr "Se necesita autenticación" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Contraseña:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "Usuario:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "Nombre de usuario:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "etiqueta" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s versión %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Añadir a la pantalla local mediante libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Conectar al hipervisor" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Esperando a que inicie el dominio" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Reconéctese al dominio tras el reinicio" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Abrir en modo a pantalla completa" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- Consola gráfica de la máquina virtual" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nUso: %s [OPCIONES] DOMINIO-NOMBRE|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Seleccione los dispositivos USB para redirigir" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Tipo de autenticación no compatible %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Desconectar" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Selección de dispositivos USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Salir de pantalla completa" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Esperando que el dominio de huéspedes reinicie" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "No se puede determinar el tipo de gráficos para el huésped %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "No se puede determinar la dirección de gráficos para el huésped %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "No se puede determinar el anfitrión para el huésped %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Buscando dominio de huéspedes" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Esperando a que el dominio de huéspedes sea creado" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "No se pudo encontrar el dominio huésped %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Comprobando el estatus del dominio de huéspedes" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Esperando a que dominio de huéspedes inicie" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Esperando a que el servidor del dominio de huéspedes inicie" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "No se pudo conectar a libvirt con el URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[ninguno]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "Redimensión automática" - -#: ../src/viewer.glade.h:2 +msgstr "Redimensionar automáticamente" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+_Backspace" - -#: ../src/viewer.glade.h:15 +msgstr "Ctrl+Alt+_Retroceso" + +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+_Del" - -#: ../src/viewer.glade.h:16 +msgstr "Ctrl+Alt+_Supr" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Pantallas" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "Pantalla completa" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Libere el cursor" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "Captura de pantalla" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Inserción de Smartcard" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Retiro de Smartcard" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_Archivo" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "Ay_uda" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "_PrintScreen" - -#: ../src/viewer.glade.h:21 +msgstr "_ImprPant" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "_Send key" - -#: ../src/viewer.glade.h:22 +msgstr "_Enviar llave" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "_Ver" -#: ../src/viewer.glade.h:23 +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" -msgstr "Acercar" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "Página 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "Página 2" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "página 3" - -#: ../src/viewer.c:852 -#, c-format -msgid "Cannot determine the graphic address for the guest %s" -msgstr "No se puede determinar la dirección de gráficos para el huésped %s" - -#~ msgid "Cannot determine the graphic port for the guest %s" -#~ msgstr "No se puede determinar el puerto de gráficos para el huésped %s" +msgstr "_Zoom" diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..d1c2b92 --- /dev/null +++ b/po/eu.po @@ -0,0 +1,558 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Asier Iturralde Sarasola , 2012. +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Basque (http://www.transifex.net/projects/p/fedora/language/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "Exekutatu" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Bistaratu bertsio informazioa" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Bistaratu arazketa informazioa" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "Glade-ri buruz" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright-a (C) 2007-2012 Daniel P. Berrange\nCopyright-a (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "Pasahitza:" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "Erabiltzaile-izena:" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "etiketa" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s bertsioa %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Ireki pantaila osoko moduan" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Deskonektatu" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB gailuaren hautapena" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Irten pantaila osotik" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "Pantaila osoa" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "Pantaila-argazkia" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "_Fitxategia" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "_Laguntza" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "_Inprimatu pantaila" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "_Bidali tekla" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "_Ikusi" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "_Zooma" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..2265cfe --- /dev/null +++ b/po/fi.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Finnish (http://www.transifex.net/projects/p/fedora/language/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/fr.po b/po/fr.po index fca801c..739b956 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,159 +1,198 @@ -# translation of virt-viewer.tip.fr.po to French +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# Sam Friedmann , 2010. +# +# Translators: # Boris BARNIER , 2010. +# Sam Friedmann , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.fr\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-29 07:52+0000\n" -"PO-Revision-Date: 2010-07-29 23:31+0200\n" -"Last-Translator: Boris BARNIER \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s version %s\n" - -#: ../src/main.c:53 +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Source" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Source de la liaison" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Cible" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Cible de la liaison" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Propriétés de la source" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "Propriétés de la source à lier" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Propriétés de la cible" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "Propriétés de la cible à lier" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Indicateurs" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Indicateurs de liaison" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer version %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Exécuter '" -#: ../src/main.c:56 -msgid "display version information" -msgstr "afficher les informations sur la version" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "afficher les informations détaillées" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "connexion directe sans tunnels automatiques" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "connecter à l'hyperviseur" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "attendez que le domaine démarre" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "reconnecter au domaine lors du redémarrage" - -#: ../src/main.c:68 +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Afficher les informations de version" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Afficher les informations verbeuses" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Connexion directe sans tunnels automatiques" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "Niveau de zoom de la fenêtre, en pourcentage" -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "afficher les informations de débogage" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Afficher les informations de débogage" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Ouvrir la connexion à l'aide d'une communication avec le contrôleur de Spice" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- Console graphique de la machine virtuelle" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Usage : %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:909 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "Impossible de déterminer le port VNC pour l'invité %s" - -#: ../src/viewer.c:915 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "Impossible de déterminer l'hôte VNC pour l'invité %s" - -#: ../src/viewer.c:1015 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "Impossible de se connecter au serveur VNC %s" - -#: ../src/viewer.c:1032 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"Authentification avec le serveur VNC impossible à %s:%s\n" -"Réessayer d'établir la connexion ?" - -#: ../src/viewer.c:1050 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"Authentification avec le serveur VNC impossible à %s\n" -"Type %d d'authentification non pris en charge" - -#: ../src/viewer.c:1142 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "Impossible de trouver le domaine invité %s" - -#: ../src/viewer.c:1246 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "Impossible de se connecter à libvirt avec URI %s" - -#: ../src/viewer.c:1247 -msgid "[none]" -msgstr "[aucun]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- Client de l'afficheur distant" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Le niveau du zoom doit se trouver entre 10 et 200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Impossible d'initier la connexion" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Affichage désactivé par le contrôleur" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Échec de la connexion du contrôleur : %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Impossible de créer une session Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Mise en place d'une session Spice..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Impossible de déterminer le type de la connexion à partir de l'URI" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Impossible de créer une session pour ce type : %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Un client bureau à distance construit avec GTK-VNC et libvirt" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Le client bureau distant créé avec GTK-VNC, SPICE-GTK et libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "À propos de Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "L'équipe de traduction de Fedora" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -168,158 +207,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Ce programme est un logiciel libre, vous pouvez le redistribuer et/ou le " -"modifier\n" -"sous les termes de la Licence Publique Générale GNU (GPL) publiée par\n" -"la Free Software Foundation ; soit la version 2 de la licence, soit\n" -"(à votre gré) une version plus récente.\n" -"\n" -"Ce logiciel est distribué dans l'espoir d'être nécessité, mais N'EST PAS\n" -"garanti ; et ne comporte pas de GARANTIE IMPLICITE DE QUALITÉ MARCHANDE\n" -"ou d'ADÉQUATION À UN BUT PARTICULIER. Voir la Licence Publique Générale " -"GNU\n" -"pour obtenir plus de détails.\n" -"\n" -"Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec\n" -"ce logiciel. Si ce n'est pas le cas, envoyez un courrier à la\n" -"Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA " -"02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Ceci est le dernier écran d'affichage visible. Souhaitez-vous quitter l'application ?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "En attente de l'affichage %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Type d'affichage inconnu de l'invité %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Échec de la connexion ssh." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Impossible d'établir la connexion au canal, seul SSH est pris en charge." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "La connexion au canal n'est pas prise en charge." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Connexion au serveur d'affichage" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Le domaine invité est fermé" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Connecté au serveur d'affichage" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Impossible d'établir la connexion au serveur d'affichage %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Authentification avec le serveur distant sur %s impossible : %s\nEssayer la connexion à nouveau ?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Impossible d'authentifier la connexion avec le serveur de bureau distant : %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Erreur de redirection USB : %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "Authentification requise" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Mot de passe :" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "Nom d'utilisateur :" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "label" - -#: ../src/viewer.glade.h:1 +msgstr "étiquette" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s version %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "S'attacher à l'affichage local à l'aide de libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Se connecter à l'hyperviseur" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "En attente de démarrage du domaine" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Se reconnecter au domaine lors des redémarrages" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Ouvrir en mode plein écran" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- Console graphique de la machine virtuelle" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nUsage : %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Sélectionnez les périphériques USB à rediriger" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Le type d'authentification %d n'est pas pris en charge" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Déconnexion" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Sélection du périphérique USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Quitter le plein écran" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "En attente du redémarrage du domaine invité" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Impossible de déterminer le type d'affichage de l'invité %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Impossible de déterminer l'adresse de l'affichage de l'invité %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Impossible de déterminer l'hôte de l'invité %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Recherche du domaine invité" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "En attente de la création du domaine invité" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Impossible de trouver le domaine invité %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Vérification du statut du domaine invité" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "En attente du démarrage du domaine invité" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "En attente du démarrage du serveur par le domaine invité" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Impossible de se connecter à libvirt avec URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[aucun]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "Redimensionner automatiquement" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+_Backspace" - -#: ../src/viewer.glade.h:15 +msgstr "Ctrl+Alt+_Effacer" + +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+_Del" - -#: ../src/viewer.glade.h:16 +msgstr "Ctrl+Alt+_Suppr" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Affichages" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "Plein écran" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Libérer le curseur" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "Capture d'écran" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Insertion d'une Smartcard" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Suppression d'une Smartcard" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_Fichier" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "_Aide" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "Im_primer l'écran" - -#: ../src/viewer.glade.h:21 +msgstr "Im_pressionÉcran" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "_Envoyer la clé" - -#: ../src/viewer.glade.h:22 +msgstr "Touche _Envoyer" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "Affic_hage" - -#: ../src/viewer.glade.h:23 +msgstr "_Afficher" + +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" msgstr "_Zoom" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "page 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "page 2" - - diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..cd0a904 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Galician (http://www.transifex.net/projects/p/fedora/language/gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/gu.po b/po/gu.po index b1673d9..2420917 100644 --- a/po/gu.po +++ b/po/gu.po @@ -1,153 +1,197 @@ -# translation of virt-viewer.tip.virt-viewer.po to Gujarati +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # -# Sweta Kothari , 2010. +# Translators: +# Sweta Kothari , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.virt-viewer\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-21 21:23+0000\n" -"PO-Revision-Date: 2010-01-21 14:19+0530\n" -"Last-Translator: Sweta Kothari \n" -"Language-Team: Gujarati\n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Gujarati \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s આવૃત્તિ %s\n" - -#: ../src/main.c:53 +"Language: gu\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "સ્ત્રોત" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "બાઇન્ડીંગનુ સ્ત્રોત" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "લક્ષ્ય" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "બાઇન્ડીંગનુ લક્ષ્ય" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "સ્ત્રોત ગુણધર્મ" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "બાઇન્ડ કરવા માટે સ્ત્રોત પર ગુણધર્મ" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "લક્ષ્ય ગુણધર્મ" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "બાઇન્ડ કરવા માટે લક્ષ્ય પર ગુણધર્મ" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ફ્લેગ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "બાઇન્ડિંગ ફ્લેગ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer આવૃત્તિ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "ચલાવો '" -#: ../src/main.c:56 -msgid "display version information" -msgstr "આવૃત્તિ જાણકારીને દર્શાવો" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "વર્બોઝ જાણકારી ને દર્શાવો" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "સીધુ જોડાણ સ્વયંચાલિત ટનલો સાથે નથી" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "હાઇપરવિઝર સાથે જોડાવો" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "શરૂ કરવા માટે ડોમેઇન માટે થોભો" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "પુન:શરૂ કરવા પર ડોમેઇન સાથે પુન:જોડાવો" - -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "ડિબગીંગ જાણકારીને દર્શાવો" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "આવૃત્તિ જાણકારીને બતાવો" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "વર્બોસ જાણકારીને બતાવો" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "સ્વયંસંચાલિત ટનલ સાથે સીધુ જોડાણ નથી" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "નાનામોટાપણાનું સ્તર, ટકામાં" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "ડિબગીંગ જાણકારીને બતાવો" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Spice નિયંત્રક વાર્તાલાપની મદદથી જોડાણને ખોલો" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- વર્ચ્યુઅલ મશીન ગ્રાફિકલ કન્સોલ" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"વપરાશ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:909 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "મહેમાન %s માટે VNC પોર્ટને નક્કી કરી શકાતુ નથી" - -#: ../src/viewer.c:915 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "મહેમાન %s માટે VNC યજમાનને નક્કી કરી શકાતુ નથી" - -#: ../src/viewer.c:1015 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC સર્વર %s સાથે જોડાવાનું અસમર્થ" - -#: ../src/viewer.c:1032 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s પર VNC સર્વર સાથે સત્તાધિકરણ કરવાનું અસમર્થ: %s\n" -"ફરીથી જોડાણનો પુન:પ્રયત્ન કરો?" - -#: ../src/viewer.c:1050 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s પર VNC સર્વર સાથે સત્તાધિકરણ કરવાનુ અસમર્થ\n" -"બિનઆધારભૂત સત્તાધિકરણ પ્રકાર %d" - -#: ../src/viewer.c:1142 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "મહેમાન ડોમેઇન %s ને શોધી શકાતુ નથી" - -#: ../src/viewer.c:1246 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s સાથે libvirt ને જોડવાનું અસમર્થ" - -#: ../src/viewer.c:1247 -msgid "[none]" -msgstr "[કંઇ નહિં]" +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- દૂરસ્થ દર્શક ક્લાયન્ટ" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "નાનુંમોટુ કરવાનું સ્તર 10-200 માં હોવુ જ જોઇએ\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "જોડાણને પ્રારંભ કરવાનુ નિષ્ફળ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "નિયંત્રક દ્દારા નિષ્ક્રિય થયેલ બતાવો" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "નિયંત્રક જોડાણ નિષ્ફળ: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Spice સત્રને બનાવી શક્યા નહિં" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Spice સત્રને સુયોજિત કરી રહ્યા છે..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI માંથી જોડાણ પ્રકારને નક્કી કરી શકાતુ નથી" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "આ પ્રકાર માટે સત્રને બનાવી શક્યા નહિં: %s" #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: #. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "દૂરસ્થ ડેસ્કટોપ ક્લાઇન્ટ GTK-VNC અને libvirt સાથે બિલ્ટ છે" - -#: ../src/about.glade.h:2 +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK અને libvirt સાથે દૂરસ્થ ડેસ્કટોપ ક્લાયન્ટને બનાવેલ છે" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" -msgstr "Glade વિશે" - -#: ../src/about.glade.h:3 +msgstr "ગલૅડ વિશે" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "Fedora અનુવાદ જૂથ" - -#: ../src/about.glade.h:6 +msgstr "Fedora અનુવાદ ટીમ" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -162,157 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "આ છેલ્લુ દૃશ્યમાન દર્શાવ છે. શું તમે બહાર નીકળવા માંગો છો?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "%d ને દર્શાવવા માટે રાહ જોઇ રહ્યા છે..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "મહેમાન %s માટે અજ્ઞાત ગ્રાફિક પ્રકાર" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh સાથે જોડાવાનું નિષ્ફળ." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "ચેનલમાં જોડાઇ શકતા નથી, SSH ફક્ત આધારભૂત છે." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "ચેનલમાં જોડાવાનુ બિનઆધારભૂત છે." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ગ્રાફિક સર્વરમાં જોડાઇ રહ્યા છે" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "મહેમાન ડોમેઇન બંધ થઇ ગયો" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ગ્રાફિક સર્વરમાં જોડાયેલ છે" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "ગ્રાફિક સર્વર %s માં જોડાવામાં અસમર્થ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s પર દૂરસ્થ ડેસ્કટોપ સાથે સત્તાધિકરણ કરવાનું અસમર્થ: %s\nફરીથી જોડાણનો પુન:પ્રયત્ન કરો?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "દૂરસ્થ ડેસ્કટોપ સર્વર સાથે સત્તાધિકરણ કરવાનું અસમર્થ: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB પુનર્નિર્દેશન ભૂલ: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "સત્તાધિકરણ જરૂરી" - -#: ../src/auth.glade.h:2 +msgstr "સત્તાધિકરણ જરૂરી છે" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "પાસવર્ડ:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "વપરાશકર્તાનામ:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "લેબલ" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s આવૃત્તિ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt ની મદદથી સ્થાનિક દર્શાવ સાથે જોડાવો" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "હાઇપરવિઝરમાં જોડાવો" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "શરૂ કરવા ડોમેઇન માટે રાહ જુઓ" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "પુનઃશરૂ કરવા પર ડોમેઇન પુનઃજોડાણ" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "સંપૂર્ણ સ્ક્રીન સ્થિતિમાં ખોલો" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- વર્ચ્યુઅલ મશીન ગ્રાફિકલ કન્સોલ" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nવપરાશ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "પુનર્નિર્દેશન માટે USB ઉપકરણોને પસંદ કરો" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "બિનઆધારભૂત સત્તાધિકરણ પ્રકાર %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "જોડાણ તોડી નાંખો" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ઉપકરણ પસંદગી" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "પૂર્ણસ્ક્રીન છોડો" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "પુન:શરૂ કરવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "મહેમાન %s માટે ગ્રાફિક પ્રકારને નક્કી કરી શકાતુ નથી" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "મહેમાન %s માટે ગ્રાફિક સરનામાંને નક્કી કરી શકાતુ નથી" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "મહેમાન %s માટે યજમાનને નક્કી કરી શકાતુ નથી" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "મહેમાન ડોમેઇનને શોધી રહ્યા છે" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "બનાવવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "મહેમાન ડોમેઇન %s ને શોધી શકાતુ નથી" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "મહેમાન ડોમેઇન પરિસ્થિતિને ચકાસી રહ્યા છે" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "શરૂ કરવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "સર્વરને શરૂ કરવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s સાથે libvirt ને જોડવાનું અસમર્થ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[કંઇ નહિં]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "આપમેળે માપ બદલો" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" -msgstr "Ctrl+Alt+F10 (_0)" - -#: ../src/viewer.glade.h:5 +msgstr "Ctrl+Alt+F1_0" + +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" -msgstr "Ctrl+Alt+F1 (_1)" - -#: ../src/viewer.glade.h:6 +msgstr "Ctrl+Alt+F_1" + +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" -msgstr "Ctrl+Alt+F2 (_2)" - -#: ../src/viewer.glade.h:7 +msgstr "Ctrl+Alt+F_2" + +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" -msgstr "Ctrl+Alt+F3 (_3)" - -#: ../src/viewer.glade.h:8 +msgstr "Ctrl+Alt+F_3" + +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" -msgstr "Ctrl+Alt+F4 (_4)" - -#: ../src/viewer.glade.h:9 +msgstr "Ctrl+Alt+F_4" + +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" -msgstr "Ctrl+Alt+F5 (_5)" - -#: ../src/viewer.glade.h:10 +msgstr "Ctrl+Alt+F_5" + +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" -msgstr "Ctrl+Alt+F6 (_6)" - -#: ../src/viewer.glade.h:11 +msgstr "Ctrl+Alt+F_6" + +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" -msgstr "Ctrl+Alt+F7 (_7)" - -#: ../src/viewer.glade.h:12 +msgstr "Ctrl+Alt+F_7" + +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" -msgstr "Ctrl+Alt+F8 (_8)" - -#: ../src/viewer.glade.h:13 +msgstr "Ctrl+Alt+F_8" + +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" -msgstr "Ctrl+Alt+F9 (_9)" - -#: ../src/viewer.glade.h:14 +msgstr "Ctrl+Alt+F_9" + +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+Backspace (_B)" - -#: ../src/viewer.glade.h:15 +msgstr "Ctrl+Alt+_Backspace" + +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+Del (_D)" - -#: ../src/viewer.glade.h:16 +msgstr "Ctrl+Alt+_Del" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "દર્શાવે છે" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "સંપૂર્ણ સ્ક્રીન" - -#: ../src/viewer.glade.h:17 +msgstr "પૂર્ણ સ્ક્રીન" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "પ્રકાશન કર્સર" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "સ્ક્રીનશોટ" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "સ્માર્ટકાર્ડ નિવેશ" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "સ્માર્ટકાર્ડ નિરાકરણ" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "ફાઇલ (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "મદદ (_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "સ્ક્રીનને છાપો (_P)" - -#: ../src/viewer.glade.h:21 +msgstr "PrintScreen (_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "કીને મોકલો (_S)" - -#: ../src/viewer.glade.h:22 +msgstr "કી મોકલો (_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "દૃશ્ય (_V)" -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "પાનું ૧" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "પાનું ૨" - -#: ../src/viewer.glade.h:23 +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" -msgstr "નાનુંમોટું (_Z)" - -#: ../src/main.c:68 -msgid "Zoom level of window, in percentage" -msgstr "નાનામોટાપણાનું સ્તર, ટકામાં" +msgstr "નાનુંમોટુ કરો (_Z)" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..cf61b21 --- /dev/null +++ b/po/he.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Hebrew \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/hi.po b/po/hi.po index b99a581..420e89e 100644 --- a/po/hi.po +++ b/po/hi.po @@ -1,154 +1,199 @@ -# translation of virt-viewer.tip.virt-viewer.po to Hindi +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: +# Chandan kumar , 2012. # Rajesh Ranjan , 2010. +# Rajesh Ranjan , 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.virt-viewer\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-19 04:15+0000\n" -"PO-Revision-Date: 2010-02-03 15:52+0530\n" -"Last-Translator: Rajesh Ranjan \n" -"Language-Team: Hindi \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s संस्करण %s\n" - -#: ../src/main.c:52 +"Language: hi\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "स्रोत" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "बाइंडिंग का स्रोत" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "लक्ष्य" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "बाइंडिंग का लक्ष्य" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "स्रोत गुण" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "बाइंड करने के लिए स्रोत पर गुण" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "लक्ष्य गुण" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "बाइंड करने के लिए लक्ष्य पर गुण" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "फ्लैग" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "बाइंडिंग फ्लैग" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "दूरस्थ-दर्शक संस्करण %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Run '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "संस्करण सूचना दिखाएँ" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "भर्बोस सूचना दिखाएँ" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "बिना किसी स्वचालित टनल के सीधा कनेक्शन" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "हाइपरविजर से जोड़ें" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "आरंभ होने के लिए डोमेने के लिए प्रतीक्षारत" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "फिर आरंभ होने पर डोमेन से फिर कनेक्ट होता है" - -#: ../src/main.c:67 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "संस्करण की जानकारी दिखाता है" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr " वर्बोज की जानकारी दिखाता है" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr " स्वचालित सुरंगों के साथ कोई भी प्रत्यक्ष कनेक्शन नहीं " + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "विंडो का जूम स्तर, प्रतिशत में" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "डिबगिंग सूचना दिखाता है" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "स्पाइस संचार नियंत्रक का उपयोग करते हुए कनेक्शन खोलें" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- वर्चुअल मशीन आलेखी कंसोल" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "-दूरस्थ दर्शक ग्राहक" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "ज़ूम का स्तर 10-200 अंतर्गत होना चाहिए\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "कनेक्शन आरंभ करने में विफल" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "नियंत्रक के द्वारा प्रदर्शन अक्षम" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "नियंत्रक कनेक्शन में विफल रहा है : %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "स्पाइस का सत्र नहीं बना पाया" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "स्पाइस सत्र की सेटिंग कर रहा है ..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "यूआरआइ से कनेक्शन के प्रकार को तय नहीं कर सकता है" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "इस प्रकार का सत्र नहीं बना सका : %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "एक दूरस्थ डेस्कटॉप ग्राहक जीतीके-वीएनसी, स्पाइस-जीटीके और लिब्विर्ट के साथ निर्मित" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "ग्लेड के बारे में" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"प्रयोग: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "%s अतिथि के लिए VNC पोर्ट निर्धारित नहीं कर सकता है" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "%s अतिथि के लिए VNC मेजबान निर्धारित नहीं कर सकता है" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC सर्वर %s से कनेक्ट होने में असमर्थ" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"VNC सर्वर से %s पर सत्यापित होने में असमर्थ: %s\n" -"फिर कनेक्ट करने की कोशिश करें?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"VNC सर्वर के साथ %s पर सत्यापित करने में असमर्थ\n" -"असमर्थित सत्यापन प्रकार %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "अतिथि डोमेन %s नहीं पा सकता है" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s के साथ libvirt से कनेक्ट करने में असमर्थ" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "कुछ नहीं" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC और libvirt से निर्मित दूरस्थ डेस्कटॉप क्लाइंट" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "ग्लेड का परिचय" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"कॉपीराइट 2007-2008 Daniel P. Berrange\n" -"कॉपीराइट 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "फेडोरा अनुवाद दल" - -#: ../src/about.glade.h:6 +msgstr "फेडोरा अनुवाद टीम" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,150 +208,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "यह प्रोग्राम मुफ्त सॉफ्टवेयर का है: आप इसे फ्री सॉफ्टवेयर फाउंडेशन के द्वारा प्रकाशित जीएनयू जनरल पब्लिक लाइसेंस; या तो लाइसेंस का संस्करण 2, या (आपके विकल्प के अनुसार) बाद के किसी संस्करण की शर्तों के तहत पुनर्वितरित और / संशोधित कर सकते हैं .\n\nइस कार्यक्रम को इस उम्मीद से वितरित किया गया है कि यह बिना किसी वारंटी;व्यापारिकता की अप्रत्यक्ष वारंटी या किसी खास उद्देश्य के लिए उपयुक्तता के बिना उपयोगी होगा. अधिक जानकारी के लिए जीएनयू जनरल पब्लिक लाइसेंस देखें.\n\nआप इस प्रोग्राम के साथ जीएनयू जनरल पब्लिक लाइसेंस की एक प्रतिलिपि प्राप्त करेगे; अगर नहीं, फ्री सॉफ्टवेयर फाउंडेशन को लिखे, Inc. 59 मंदिर प्लेस, 330 सूट, बोस्टन, एमए 02111-1307, संयुक्त राज्य अमेरिका\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "यह आखरी दृश्य प्रदर्शन है. क्या आप छोड़ना चाहते हैं?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr " %d प्रदर्शन के लिए प्रतीक्षा कर रहा है ..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "%s अतिथि के लिए अज्ञात ग्राफ़िक प्रकार" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "सश से कनेक्ट करने में विफल." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "चैनल से कनेक्ट नहीं हो सकता, केवल सश समर्थित." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr " चैनल से कनेक्ट करना असहायक" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ग्राफ़िक सर्वर से कनेक्ट हो रहा है." + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "अतिथि के डोमेन को शटडाउन किया है" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ग्राफ़िक सर्वर से जुड़ा" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "%s ग्राफ़िक सर्वर से कनेक्ट करने में असमर्थ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s पर दूरस्थ डेस्कटॉप सर्वर के साथ सत्यापन करने में असमर्थ : %s\nफिर से कनेक्शन पुन: प्रयास करें?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "दूरस्थ डेस्कटॉप सर्वर के साथ सत्यापन करने में असमर्थ : %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "यूएसबी पुनर्निर्देशन त्रुटि : %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "सत्यापन आवश्यक" - -#: ../src/auth.glade.h:2 +msgstr "सत्यापन की आवश्यकता" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" -msgstr "पासवर्ड: " - -#: ../src/auth.glade.h:3 +msgstr "कूटशब्द:" + +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "उपयोक्ता नाम:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "उपयोगकर्ता नाम:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "लेबल" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s संस्करण %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "लिब्विर्ट का उपयोग करके स्थानीय डिस्प्ले का संलग्न करें" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "हाइपरविजर से कनेक्ट करें" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "डोमेन को प्रारंभ करने के लिए प्रतीक्षा करें" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "पुनः आरंभ होने पर डोमेन को फिर से जुड़ें" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "पूर्ण स्क्रीन मोड में खोलें" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "वर्चुअल व्यूअर" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- वर्चुअल मशीन आलेखी कंसोल" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nप्रयोग: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "पुनर्निर्देशन के लिए यूएसबी उपकरणों का चयन करें" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "असहायक सत्यापन के प्रकार %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "डिस्कनेक्ट करें" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "यूएसबी उपकरण चयन" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "फुल स्क्रीन छोड़ दें" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "अतिथि डोमेन को फिर से प्रारंभ करने के लिए प्रतीक्षा करे " + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "%s अतिथि के लिए ग्राफ़िक प्रकार निर्धारित नहीं कर सकते है " + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "%s अतिथि के लिए ग्राफ़िक पता निर्धारित नहीं कर सकते है " + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "%s अतिथि के लिए होस्ट का निर्धारण नहीं कर सकते है " + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "अतिथि डोमेन को खोज रहा है " + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "अतिथि डोमेन बनाई जाने प्रतीक्षा के लिए की जा रही है" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "अतिथि डोमेन %s नहीं पा सकता है" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "अतिथि डोमेन की स्थिति की जाँच हो रही है" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr " अतिथि डोमेन शुरू करने के लिए प्रतीक्षा की जा रही है " + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "अतिथि डोमेन सर्वर को शुरू करने के लिए प्रतीक्षा कर रहा है" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s के साथ libvirt से कनेक्ट करने में असमर्थ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "कुछ नहीं" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "स्वतः पुनः आकार दें" - -#: ../src/viewer.glade.h:2 +msgstr "स्वतः आकार परिवर्तन" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "प्रदर्शित करे " + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "पूर्ण स्क्रीन" - -#: ../src/viewer.glade.h:17 +msgstr "फुल स्क्रीन" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "रिलीज कर्सर" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "स्क्रीनशॉट" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "स्मार्टकार्ड प्रवेश" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "स्मार्टकार्ड हटाना" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" -msgstr "फ़ाइल (_F)" - -#: ../src/viewer.glade.h:19 +msgstr "फाइल (_F)" + +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "मदद (_H)" - -#: ../src/viewer.glade.h:20 +msgstr "सहायता (_H)" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "_PrintScreen" - -#: ../src/viewer.glade.h:21 +msgstr "प्रिंटस्क्रीन (_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "कुंजी भेजें (_S)" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "देखें (_V)" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "पृष्ठ 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "पृष्ठ 2" - +msgstr "दृश्य (_V)" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "ज़ूम (_Z)" diff --git a/po/hu.po b/po/hu.po index 7fb16ba..15300f1 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,132 +1,197 @@ -# virt-viewer (virt-manager.org) translation to hu_HU. -# Copyright (C) 2010 Fedora Project -# This file is distributed under the same license as the libvirt package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: # Nikolas Slivka , 2010. -# msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-27 07:51+0000\n" -"PO-Revision-Date: 2010-02-20 16:31+0100\n" -"Last-Translator: Nikolas Slivka \n" -"Language-Team: Hungarian Fedora Translation Team \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Hungarian \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Poedit-Language: Hungarian\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-Country: HUNGARY\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s verzió %s\n" - -#: ../src/main.c:55 -msgid "display version information" -msgstr "verzió információk megjelenítése" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "részletes információk megjelenítése" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "kapcsolódás a hypervisorhoz" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "várakozás a domain elindulására" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "hibakeresési információk megjelenítése" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "Futtatás" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -#, fuzzy -msgid "- Virtual machine graphical console" -msgstr "- Virtuális gép grafikus konzol" - -#: ../src/main.c:95 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Használata: %s [OPCIÓK] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" - -#: ../src/viewer.c:1111 -#, fuzzy, c-format -msgid "Cannot find guest domain %s" -msgstr "%s vendég-domaint nem sikerült megtalálni" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "A %s címmel nem tudott csatlakozni a libvirthez" +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: #. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "A távoli asztali kliens a GTK-VNC és libvirt alkalmazások használatával készült." - -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "A Fedora Honosító Csapat" - -#: ../src/about.glade.h:6 +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -143,154 +208,351 @@ "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" msgstr "" -#: ../src/about.glade.h:20 +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" -msgstr "virt-manager.org" - -#: ../src/auth.glade.h:1 +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "Hitelesítés szükséges" - -#: ../src/auth.glade.h:2 +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" -msgstr "Jelszó:" - -#: ../src/auth.glade.h:3 +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "Felhasználónév:" - -#: ../src/viewer.glade.h:1 -msgid "Automatically resize" -msgstr "Automatikus átméretezés" - -#: ../src/viewer.glade.h:2 -msgid "Ctrl+Alt+F11" -msgstr "Ctrl+Alt+F11" - -#: ../src/viewer.glade.h:3 -msgid "Ctrl+Alt+F12" -msgstr "Ctrl+Alt+F12" - -#: ../src/viewer.glade.h:4 -msgid "Ctrl+Alt+F1_0" -msgstr "Ctrl+Alt+F1_0" - -#: ../src/viewer.glade.h:5 -msgid "Ctrl+Alt+F_1" -msgstr "Ctrl+Alt+F_1" - -#: ../src/viewer.glade.h:6 -msgid "Ctrl+Alt+F_2" -msgstr "Ctrl+Alt+F_2" - -#: ../src/viewer.glade.h:7 -msgid "Ctrl+Alt+F_3" -msgstr "Ctrl+Alt+F_3" - -#: ../src/viewer.glade.h:8 -msgid "Ctrl+Alt+F_4" -msgstr "Ctrl+Alt+F_4" - -#: ../src/viewer.glade.h:9 -msgid "Ctrl+Alt+F_5" -msgstr "Ctrl+Alt+F_5" - -#: ../src/viewer.glade.h:10 -msgid "Ctrl+Alt+F_6" -msgstr "Ctrl+Alt+F_6" - -#: ../src/viewer.glade.h:11 -msgid "Ctrl+Alt+F_7" -msgstr "Ctrl+Alt+F_7" - -#: ../src/viewer.glade.h:12 -msgid "Ctrl+Alt+F_8" -msgstr "Ctrl+Alt+F_8" - -#: ../src/viewer.glade.h:13 -msgid "Ctrl+Alt+F_9" -msgstr "Ctrl+Alt+F_9" - -#: ../src/viewer.glade.h:14 -msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+_Backspace" - -#: ../src/viewer.glade.h:15 -msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+_Del" - -#: ../src/viewer.glade.h:16 -msgid "Full screen" -msgstr "Teljes képernyő" - -#: ../src/viewer.glade.h:17 -msgid "Screenshot" -msgstr "Képernyőkép" - -#: ../src/viewer.glade.h:18 -msgid "_File" -msgstr "_Fájl" - -#: ../src/viewer.glade.h:19 -msgid "_Help" -msgstr "_Súgó" - -#: ../src/viewer.glade.h:20 -msgid "_PrintScreen" -msgstr "" - -#: ../src/viewer.glade.h:21 -msgid "_Send key" -msgstr "" - -#: ../src/viewer.glade.h:22 -msgid "_View" -msgstr "_Nézet" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "" - -#: ../src/main.c:52 -msgid "Run '" -msgstr "Futtatás" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "közvetlen kapcsolat automata átjárók nélkül" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "újracsatlakozás a domainnévhez újraindításkor" - -#: ../src/viewer.c:1214 +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s verzió %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nHasználata: %s [OPCIÓK] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "A %s címmel nem tudott csatlakozni a libvirthez" + +#: ../src/virt-viewer.c:625 msgid "[none]" msgstr "[nincs]" -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "Glade-ről..." - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "Mégsem" - -#: ../src/auth.glade.h:6 -msgid "label" -msgstr "Címke" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "Ok" +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..f769798 --- /dev/null +++ b/po/id.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Indonesian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/it.po b/po/it.po index 51e9fe6..f0fe2f5 100644 --- a/po/it.po +++ b/po/it.po @@ -1,144 +1,200 @@ +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the virt-viewer package. +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Francesco Tombolini , 2010. +# , 2012. # Gianluca Sforna , 2010. -# Francesco Tombolini , 2010. +# silvio pierro , 2012. msgid "" msgstr "" -"Project-Id-Version: it\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 07:48+0000\n" -"PO-Revision-Date: 2010-11-18 00:08+0100\n" -"Last-Translator: Francesco Tombolini \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.1\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s versione %s\n" - -#: ../src/main.c:53 +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Sorgente" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Il sorgente dell'associazione" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Target" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Il target dell'associazione" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Proprietà sorgente" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "La proprietà sul sorgente da associare" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Proprietà del target" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "La proprietà sul target da associare" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Flag" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "I flag per l'associazione" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "versione del visualizzatore-remoto %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Esegui '" -#: ../src/main.c:56 -msgid "display version information" -msgstr "mostra informazioni sulla versione" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "mostra informazioni dettagliate" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "connessione diretta senza tunnel automatici" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "connetti all'hypervisor" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "attendi l'avvio del dominio" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "riconnetti al dominio dopo il riavvio" - -#: ../src/main.c:68 +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Mostra informazioni sulla versione" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Mostra informazioni verbose" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Connessione diretta con nessun tunnel automatico" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "Livello di zoom della finestra, in percentuale" -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "mostra informazioni di debug" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Mostra le informazioni di debugging" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Apri collegamento usando una comunicazione SPICE" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- Console grafica della virtual machine" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Utilizzo: %s [OPZIONI] NOME-DOMINIO|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:1053 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "Impossibile trovare il dominio guest %s" - -#: ../src/viewer.c:1161 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "Impossibile connettersi a libvirt con la URI %s" - -#: ../src/viewer.c:1162 -msgid "[none]" -msgstr "[nessuno]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"Impossibile autenticarsi con il server VNC %s\n" -"Tipo di autenticazione non supportato: %d" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"Impossibile autenticarsi con il server VNC %s: %s\n" -"Riprovare la connessione?" +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- Client visualizzatore remoto" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Il livello di zoom deve essere tra 10-200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Inizializzazione connessione fallita" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Mostra disabilitato dal controller" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Connessione controller fallita: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Impossibile creare una sessione di Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Impostazione sessione Spice in corso..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Impossibile determinare il tipo di connessione da URI" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Impossibile creare una sessione per questo tipo: %s" #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: #. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Un remote desktop client basato su GTK-VNC e libvirt" - -#: ../src/about.glade.h:2 +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Un client desktop remoto creato con GTK-VNC, SPICE-GTK e libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Informazioni su Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "" -"Il team di traduzione di Fedora\n" -"Francesco Tombolini , 2010\n" -"Gianluca Sforna , 2010" - -#: ../src/about.glade.h:6 +msgstr "Il Fedora Translation Team" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -153,194 +209,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "Questo programma è un sofware libero, è possibile ridistribuirlo e/o modificarlo in conformità alle disposizioni della GNU General Public License come viene pubblicata dalla Free Software Foundation; versione 2 della licenza o (a scelta) tutte le versioni successive.\n\nQuesto programma è distribuito nella speranza che possa essere utile, ma SENZA ALCUNA GARANZIA, e senza garanzia implicita di COMMERCIALIZZAZIONE o di ADATTAMENTO AD UNO SCOPO PARTICOLARE. Per maggiori dettagli consultare la GNU General Public License.\n\nInsieme a questo programma deve essere fornita una copia della GNU General Public License; in caso contrario scrivere alla Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Questo è l'ultimo display visibile. Si desidera uscire?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "In attesa del display %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Impossibile determinare il tipo grafico per il guest %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Connessione a ssh fallita." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Impossibile connettersi al canale, è supportato solo SSH." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Connessione al canale non supportata." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Connessione al server grafico in corso" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Il dominio del guest si è arrestato" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Connesso al server grafico" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Impossibile connettersi al server grafico %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Impossibile eseguire l'autenticazione con il server desktop remoto su %s: %s\nRiprovare il collegamento?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Impossibile eseguire l'autenticazione con il server desktop remoto su: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Errore di reindirizzamento USB: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "Richiesta autenticazione" - -#: ../src/auth.glade.h:2 +msgstr "Autenticazione necessaria" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Password:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "Nome utente:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "etichetta" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s versione %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Allega al display locale usando libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Connetti con l'hypervisor" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Attendi l'avvio del dominio" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Riconnetti con il dominio previo riavvio" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Apri in modalità schermo intero" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- Console grafica della virtual machine" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nUtilizzo: %s [OPZIONI] NOME-DOMINIO|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Seleziona i dispositivi USB per il reindirizzamento" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Tipo di autenticazione %d non supportata" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Scollega" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Selezione dispositivo USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Lascia a schermo intero" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "In attesa del riavvio del dominio guest" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Impossibile determinare il tipo grafico per il guest %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Impossibile determinare l'indirizzo grafico per il guest %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Impossibile determinare l'host per il guest %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Ricerca dominio guest in corso" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "In attessa di una creazione del dominio guest" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Impossibile trovare il dominio guest %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Controllo stato del dominio guest in corso" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "In attesa dell'avvio del dominio guest" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "In attesa che il dominio guest avvii il server" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Impossibile connettersi a libvirt con la URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[nessuno]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "Ridimensiona automaticamente" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Display" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "Schermo intero" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Rilascia il cursore" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "Cattura schermata" - -#: ../src/viewer.glade.h:18 +msgstr "Schermata" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Inserimento Smartcard" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Rimozione Smartcard" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_File" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "_Aiuto" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "_Stamp" - -#: ../src/viewer.glade.h:21 +msgstr "_StampaSchermata" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "_Manda tasto" - -#: ../src/viewer.glade.h:22 +msgstr "_Invia chiave" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "_Visualizza" -#: ../src/viewer.glade.h:23 +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" msgstr "_Zoom" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "pagina 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "pagina 2" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "pagina 3" - -#: ../src/viewer.c:863 -msgid "Connect to channel unsupported." -msgstr "Connessione al canale non supportata" - -#: ../src/viewer.c:858 -msgid "Can't connect to channel, SSH only supported." -msgstr "Impossibile connettersi al canale, solo SSH è supportato." - -#: ../src/viewer.c:805 -#, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "Impossibile determinare il tipo grafico per il guest %s" - -#: ../src/viewer.c:824 -#, c-format -msgid "Cannot determine the graphic port for the guest %s" -msgstr "Impossibile determinare la porta grafica per il guest %s" - -#: ../src/viewer.c:817 -#, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "Impossibile determinare il tipo grafico per il guest %s" - -#: ../src/viewer.c:856 -msgid "Connect to ssh failed." -msgstr "Connessione a ssh fallita" - -#: ../src/viewer.c:830 -#, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "Impossibile determinare l'host per il guest %s" - -#: ../src/viewer.c:1006 -#, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "Impossibile connettersi al server grafico %s" diff --git a/po/ja.po b/po/ja.po index 6af000f..a03f719 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,154 +1,199 @@ -# translation of ja.po to Japanese +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: +# Hajime Taira , 2012. # Kiyoto Hashida , 2010. +# Tomoyuki KATO , 2012. msgid "" msgstr "" -"Project-Id-Version: ja\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-25 01:51+0000\n" -"PO-Revision-Date: 2010-06-25 13:31+0900\n" -"Last-Translator: Hajime Taira \n" -"Language-Team: Japanese \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: Plural-Forms: nplurals=1; plural=0;\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%sバージョン %s\n" - -#: ../src/main.c:52 +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "ソース" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "バインディングのソース" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "ターゲット" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "バインディングのターゲット" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "ソースのプロパティー" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "バインドするソースのプロパティー" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "ターゲットのプロパティー" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "バインドするターゲットのプロパティー" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "フラグ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "バインディングのフラグ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer バージョン %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "実行" -#: ../src/main.c:55 -msgid "display version information" -msgstr "バージョン情報の表示" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "詳細情報の表示" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "自動的にトンネルせず直接接続する" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "ハイパーバイザーに接続" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ドメインの起動を待つ" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "再起動時にゲストへ再接続" - -#: ../src/main.c:67 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "バージョン情報の表示します" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "詳細情報の表示します" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "自動的にトンネリングせず直接接続する" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "ウィンドウのズームレベル(パーセント単位)" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "デバッグ情報の表示" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Spice コントローラー通信を使用して接続を開く" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- 仮想マシングラフィカルコンソール" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- リモートビューアークライアント" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "ズームレベルは 10-200 の範囲内でなければいけません\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "接続の初期化に失敗しました" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "ディスプレイがコントローラーにより無効化されました" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "コントローラーの接続に失敗しました: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Spice セッションを作成できませんでした" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Spice セッションのセットアップ中..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI から接続の種類を決定できません" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "この種類のセッションを作成できませんでした: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK および libvirt でビルドされたリモートデスクトップクライアント" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "Glade について" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"使用法: %s [オプション] ドメイン名|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "ゲスト %s 用の VNC ポートを決定できません" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "ゲスト %s 用の VNC ホストを決定できません" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC サーバー %s へ接続できません" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s にある VNC サーバーに対して認証が失敗しました。 %s\n" -"再度接続を試しますか ?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s にある VNC サーバーで認証ができません\n" -"サポートしていない認証タイプです %d " - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "ゲスト %s が見付かりません" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s で libvirt に接続できません" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[なし]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC と libvirt で構成したリモートデスクトップクライアント" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "Glade の情報" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "Fedora 翻訳チーム" - -#: ../src/about.glade.h:6 +msgstr "The Fedora Translation Team" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,150 +208,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "これは表示可能な最後のディスプレイです。本当に終了しますか?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "ディスプレイ %d を待機中..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "仮想マシン %s のグラフィックの種類が未知の種類です" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "SSH への接続に失敗しました。" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "チャンネルに接続できません、SSH のみがサポートされます。" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "サポートされないチャネルに接続します。" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "グラフィックサーバーに接続中" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "仮想マシンがシャットダウンしました" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "グラフィックサーバーに接続" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "グラフィックサーバー %s に接続できません" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s のリモートデスクトップサーバーに認証できません: %s\n再び接続を試行しますか?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "リモートデスクトップサーバーに認証できません: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB リダイレクトエラー: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "認証が必要です" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "パスワード:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "ユーザー名:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "ラベル" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%sバージョン %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt を使用してローカルディスプレイに接続" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "ハイパーバイザーに接続" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "仮想マシンの起動を待つ" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "再起動時に仮想マシンに再接続" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "フルスクリーンモードで開く" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "仮想マシンビューアー" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- 仮想マシングラフィカルコンソール" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\n使用法: %s [オプション] ドメイン名|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "リダイレクトする USB デバイスを選択" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "サポートしていない認証の種類 %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "切断" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB デバイスの選択" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "フルスクリーンの解除" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "仮想マシンが再起動するのを待機中" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "仮想マシン %s のグラフィックの種類を決定できません" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "仮想マシン %s のグラフィックのアドレスを決定できません" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "仮想マシン %s のホストを決定できません" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "仮想マシンを検索中" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "仮想マシンが作成されるのを待機中" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "ゲスト %s が見付かりません" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "仮想マシンの状態を確認中" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "ゲストドメインが開始するのを待機中" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "ゲストドメインがサーバーを開始するのを待機中" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s で libvirt に接続できません" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[なし]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "自動的にサイズ変更" - -#: ../src/viewer.glade.h:2 +msgstr "自動的に画面サイズを変更" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" -msgstr "Ctrl+Alt+F1_0" - -#: ../src/viewer.glade.h:5 +msgstr "Ctrl+Alt+F10(_0)" + +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" -msgstr "Ctrl+Alt+F_1" - -#: ../src/viewer.glade.h:6 +msgstr "Ctrl+Alt+F1(_1)" + +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" -msgstr "Ctrl+Alt+F_2" - -#: ../src/viewer.glade.h:7 +msgstr "Ctrl+Alt+F2(_2)" + +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" -msgstr "Ctrl+Alt+F_3" - -#: ../src/viewer.glade.h:8 +msgstr "Ctrl+Alt+F3(_3)" + +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" -msgstr "Ctrl+Alt+F_4" - -#: ../src/viewer.glade.h:9 +msgstr "Ctrl+Alt+F4(_4)" + +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" -msgstr "Ctrl+Alt+F_5" - -#: ../src/viewer.glade.h:10 +msgstr "Ctrl+Alt+F5(_5)" + +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" -msgstr "Ctrl+Alt+F_6" - -#: ../src/viewer.glade.h:11 +msgstr "Ctrl+Alt+F6(_6)" + +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" -msgstr "Ctrl+Alt+F_7" - -#: ../src/viewer.glade.h:12 +msgstr "Ctrl+Alt+F7(_7)" + +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" -msgstr "Ctrl+Alt+F_8" - -#: ../src/viewer.glade.h:13 +msgstr "Ctrl+Alt+F8(_8)" + +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" -msgstr "Ctrl+Alt+F_9" - -#: ../src/viewer.glade.h:14 +msgstr "Ctrl+Alt+F9(_9)" + +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+_Backspace" - -#: ../src/viewer.glade.h:15 +msgstr "Ctrl+Alt+Backspace(_B)" + +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+_Del" - -#: ../src/viewer.glade.h:16 +msgstr "Ctrl+Alt+Del(_D)" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "ディスプレイ" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "フルスクリーン" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "カーソルの開放" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "スクリーンショット取得" - -#: ../src/viewer.glade.h:18 +msgstr "スクリーンショット" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "スマートカードの挿入" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "スマートカードの抜き取り" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "ファイル(_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "ヘルプ(_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "PrintScreen(_P)" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "キー送信(_S)" - -#: ../src/viewer.glade.h:22 +msgstr "キーを送信(_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "表示(_V)" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "ページ1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "ページ2" - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "ズーム(_Z)" diff --git a/po/kn.po b/po/kn.po index 4201fa1..758dec8 100644 --- a/po/kn.po +++ b/po/kn.po @@ -1,153 +1,197 @@ +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# Shankar Prasad , 2010. +# +# Translators: +# Shankar Prasad , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-28 10:17+0000\n" -"PO-Revision-Date: 2010-01-28 18:07+0530\n" -"Last-Translator: Shankar Prasad \n" -"Language-Team: kn-IN <>\n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/language/kn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s ಆವೃತ್ತಿ %s\n" - -#: ../src/main.c:52 +"Language: kn\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "ಮೂಲ" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "ಬೈಂಡಿಂಗಿನ ಮೂಲ" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "ಗುರಿ" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "ಬೈಂಡಿಂಗಿನ ಗುರಿ" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "ಆಕರದ ಗುಣ" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "ಬೈಂಡ್‌ ಮಾಡಬೇಕಿರುವ ಮೂಲದ ಗುಣ" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "ಗುರಿಯ ಗುಣ" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "ಬೈಂಡ್‌ ಆಗಬೇಕಿರುವ ಗುರಿಯ ಗುಣ" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ಗುರುತುಗಳು" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "ಬೈಂಡಿಂಗ್ ಫ್ಲಾಗ್‌ಗಳು" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "ದೂರದ-ವೀಕ್ಷಕದ ಆವೃತ್ತಿ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "ಚಲಾಯಿಸಿ '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "ಆವೃತ್ತಿಯ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು" - -#: ../src/main.c:57 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "ಪ್ರದರ್ಶನ ಆವೃತ್ತಿ ಮಾಹಿತಿ" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "ವರ್ಬೋಸ್ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು" -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "ಯಾವುದೆ ಸ್ವಯಂಚಾಲಿತ ಟನಲ್‌ಗಳಿಲ್ಲದೆ ನೇರ ಸಂಪರ್ಕ" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "ಹೈಪರ್ವೈಸರ್ ಆಗಿ ಮಾರ್ಪಡಿಸು" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ಡೊಮೈನ್ ಆರಂಭಗೊಳ್ಳುವವರೆಗೂ ನಿರೀಕ್ಷಿಸು" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "ಡೊಮೈನ್ ಮರಳಿ ಆರಂಭಗೊಂಡಾಗ ಮರಳಿ ಸಂಪರ್ಕಸಾಧಿಸು" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "ದೋಷನಿವಾರಣೆಯ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "ಯಾವುದೆ ಸ್ವಯಂಚಾಲಿತ ಟನಲ್‌ಗಳ ನೇರವಾದ ಸಂಪರ್ಕ " + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "ಕಿಟಕಿಯ ಗಾತ್ರ ಬದಲಾವಣೆ, ಪ್ರತಿಶತದಲ್ಲಿ" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "ದೋಷನಿದಾನ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "ಸ್ಪೈಸ್ ನಿಯಂತ್ರಣ ವ್ಯವಹಾರವನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಪರ್ಕವನ್ನು ತೆರೆ" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- ವರ್ಚುವಲ್ ಗಣಕದ ಚಿತ್ರಾತ್ಮಕ ಕನ್ಸೋಲ್" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- ದೂರದ ವೀಕ್ಷಕದ ಆವೃತ್ತಿ" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "ಗಾತ್ರ ಬದಲಾವಣೆ ಮಟ್ಟವು 10-200ರ ನಡುವೆ ಇರಬೇಕು\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "ಸಂಪರ್ಕವನ್ನು ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "ನಿಯಂತ್ರಕದಿಂದ ಪ್ರದರ್ಶಕವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "ನಿಯಂತ್ರಕದ ಸಂಪರ್ಕವು ವಿಫಲಗೊಂಡಿದೆ: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "ಸ್ಪೈಸ್ ಅಧಿವೇಶನವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "ಸ್ಪೈಸ್ ಅಧಿವೇಶನವನ್ನು ಸಿದ್ಧಗೊಳಿಸಲಾಗುತ್ತಿದೆ..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI ಇಂದ ಸಂಪರ್ಕದ ಬಗೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "ಈ ಬಗೆಗಾಗಿ ಒಂದು ಅಧಿವೇಶನವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ:%s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK ಮತ್ತು libvirt ನೊಂದಿಗೆ ನಿರ್ಮಿಸಲಾದ ದೂರಸ್ಥ ಗಣಕತೆರೆ ಕ್ಲೈಂಟ್" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "ಗ್ಲೇಡ್ ಕುರಿತು" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"ಬಳಕೆ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "ಅತಿಥಿ %s ಗಾಗಿನ VNC ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "ಅತಿಥೇಯ %s ಗಾಗಿನ VNC ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC ಪರಿಚಾರಕ %s ದೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ " - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s ದಲ್ಲಿ VNC ಪರಿಚಾರಕವನ್ನು ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s\n" -"ಸಂಪರ್ಕವನ್ನು ಇನ್ನೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಬೇಕೆ?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s ದಲ್ಲಿ VNC ಪರಿಚಾರಕವನ್ನು ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ\n" -"ದೃಢೀಕರಣದ ಬಗೆ %d ಗೆ ಬೆಂಬಲವಿಲ್ಲ" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "ಅತಿಥಿ ಡೊಮೈನ್ %s ಕಂಡುಬಂದಿಲ್ಲ" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s ಯೊಂದಿಗೆ libvirt ಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[ಯಾವುದೂ ಇಲ್ಲ]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC ಹಾಗು libvirt ಯೊಂದಿಗೆ ನಿರ್ಮಿತಗೊಂಡ ಒಂದು ದೂರಸ್ಥ ಗಣಕತೆರೆ" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "ಗ್ಲೇಡ್‌ನ ಕುರಿತು" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"ಹಕ್ಕು 2007-2008 Daniel P. Berrange\n" -"ಹಕ್ಕು 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "ಹಕ್ಕು (C) 2007-2012 Daniel P. Berrange\nಹಕ್ಕು (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "ಫೆಡೋರ ಅನುವಾದ ತಂಡ" - -#: ../src/about.glade.h:6 +msgstr "ಫೆಡೋರ ಟ್ರಾನ್ಸಲೇಶನ್ ಟೀಮ್" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -162,156 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"ಈ ಪ್ರೊಗ್ರಾಮ್ ಉಚಿತ ತಂತ್ರಾಂಶವಾಗಿದೆ; ಇದನ್ನು ನೀವು ಮರುವಿತರಿಸಬಹುದಾಗಿರುತ್ತದೆ " -"ಹಾಗು/ಅಥವ \n" -"ಫ್ರೀ ಸಾಫ್ಟೇವೇರ್ ಫೌಂಡೇಶನ್‌ನಿಂದ ಪ್ರಕಟಿಸಲಾದ ಆವೃತ್ತಿ 2, ಅಥವ ನಂತರದ " -"ಆವೃತ್ತಿಯ(ನಿಮ್ಮ ಇಚ್ಛೆಗೆ ಬಿಟ್ಟಿದ್ದು)\n" -"ಲೈಸೆನ್ಸಿನಲ್ಲಿನ GNU ಜನರಲ್ ಪಬ್ಲಿಕ್ ಲೈಸೆನ್ಸಿನ ನಿಯಮಗಳಿಗನುಗುಣವಾಗಿ ನೀವಿದನ್ನು " -"ಮಾರ್ಪಡಿಸಬಹುದಾಗಿರುತ್ತದೆ. \n" -"\n" -"ಈ ಪ್ರೊಗ್ರಾಮ್ ಒಂದು ಉಪಯುಕ್ತವಾದ ತಂತ್ರಾಂಶವಾಗಬಹುದೆಂಬ ಆಶಯದಿಂದ ವಿತರಿಸಲಾಗಿದೆ,\n" -"ಆದರೆ ಇದಕ್ಕೆ ಯಾವುದೆ ಯಾವುದೆ ವ್ಯಾರಂಟಿ ಇರುವುದಿಲ್ಲ; ಯಾವುದೆ ವಾಣಿಜ್ಯಾತ್ಮಕ ಅಥವ " -"ಯಾವುದೆ\n" -"ನಿರ್ದಿಷ್ಟ ಉದ್ದೇಶಗಳಿಗೆ ಬೆಂಬಲ ಸೂಚಿಸುವ ಯಾವುದೆ ಸೂಚ್ಯ ವಾರಂಟಿಯನ್ನೂ ಸಹ " -"ಒದಗಿಸುವುದಿಲ್ಲ.\n" -"ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ GNU ಜನರಲ್ ಪಬ್ಲಿಕ್ ಲೈಸೆನ್ಸನ್ನು ನೋಡಿ.\n" -"\n" -"ಈ ಪ್ರೊಗ್ರಾಮಿನೊಂದಿಗೆ ನಿಮಗೆ GNU ಜನರಲ್ ಪಬ್ಲಿಕ್ ಲೈಸೆನ್ಸಿನ ಒಂದು ಪ್ರತಿಯನ್ನೂ ಸಹ " -"ಒದಗಿಸಿರಬೇಕು,\n" -"ಇಲ್ಲದೆ ಹೋದಲ್ಲಿ ಈ ವಿಳಾಸಕ್ಕೆ ಬರೆಯಿರಿ: Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "ಇದು ಕೊನೆಯ ಗೋಚರಿಸುವ ಪ್ರದರ್ಶಕ. ನೀವು ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "%d ಪ್ರದರ್ಶಕಕ್ಕಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "%s ಅತಿಥಿಗಾಗಿ ಗೊತ್ತಿರದ ಗ್ರಾಫಿಕ್ ಬಗೆ" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh ಗೆ ಸಂಪರ್ಕವು ವಿಫಲಗೊಂಡಿದೆ." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "ಚಾನಲ್‌ನೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ, SSH ಅನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "ಚಾನಲ್‌ನೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸುವುದನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ಗ್ರಾಫಿಕ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ಗ್ರಾಫಿಕ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿದೆ" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "%s ಎಂಬ ಗ್ರಾಫಿಕ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿದೆ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s ನಲ್ಲಿನ ದೂರದ ಗಣಕತೆರೆ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s\nಸಂಪರ್ಕಕ್ಕಾಗಿ ಇನ್ನೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಬೇಕೆ?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "ದೂರದ ಗಣಕತೆರೆ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB ಮರುನಿರ್ದೇಶನ ದೋಷ: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "ಗುಪ್ತಪದ:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "ಬಳಕೆದಾರ ಹೆಸರು:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "ಲೇಬಲ್" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s ಆವೃತ್ತಿ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಥಳೀಯ ಪ್ರದರ್ಶಕಕ್ಕೆ ಲಗತ್ತಿಸು" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "ಹೈಪರ್ವೈಸರಿನೊಂದಿಗೆ ಸಂಪರ್ಕ ಕಲ್ಪಿಸು" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ಡೊಮೈನ್ ಆರಂಭಗೊಳ್ಳುವವರೆಗೆ ನಿರೀಕ್ಷಿಸು" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "ಮರಳಿ ಆರಂಭಗೊಂಡ ನಂತರ ಮರಳಿ ಸಂಪರ್ಕ ಜೋಡಿಸು" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "ಪೂರ್ಣ ತೆರೆ ಕ್ರಮದಲ್ಲಿ ತೆರೆ" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- ವರ್ಚುವಲ್ ಗಣಕದ ಚಿತ್ರಾತ್ಮಕ ಕನ್ಸೋಲ್" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nಬಳಕೆ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "ಮರುನಿರ್ದೇಶನಕ್ಕಾಗಿ USB ಸಾಧನಗಳನ್ನು ಆರಿಸಿ" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "ಬೆಂಬಲವಿರದ ದೃಢೀಕರಣದ ಬಗೆ %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "ಸಂಪರ್ಕ ಕಡಿದುಹಾಕು" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ಸಾಧನವನ್ನು ಆರಿಸುವಿಕೆ" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "ಪೂರ್ಣತೆರೆಯಿಂದ ನಿರ್ಗಮಿಸು" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಮರಳಿ-ಆರಂಭಗೊಳ್ಳಲು ಕಾಯಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "%s ಎಂಬ ಅತಿಥಿಗಾಗಿ ಗ್ರಾಫಿಕ್‌ನ ಬಗೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "%s ಎಂಬ ಅತಿಥಿಗಾಗಿ ಗ್ರಾಫಿಕ್‌ನ ವಿಳಾಸವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "%s ಎಂಬ ಅತಿಥಿಗಾಗಿ ಆತಿಥೇಯವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ನಿರ್ಮಾಣಗೊಳ್ಳಲು ಕಾಯಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ %s ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಮರಳಿ-ಆರಂಭಗೊಳ್ಳಲು ಕಾಯಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಪೂರೈಕೆಗಣಕವನ್ನು ಆರಂಭಿಸುವವರೆಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s ಯೊಂದಿಗೆ libvirt ಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[ಯಾವುದೂ ಇಲ್ಲ]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಗಾತ್ರ ಬದಲಿಸು" - -#: ../src/viewer.glade.h:2 +msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಗಾತ್ರಿಸು" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "ಪ್ರದರ್ಶಕಗಳು" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "ಪೂರ್ಣ ಪರದೆ" - -#: ../src/viewer.glade.h:17 +msgstr "ಪೂರ್ಣ ತೆರೆ" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "ತೆರೆಸೂಚಕವನ್ನು ಮುಕ್ತಗೊಳಿಸು" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "ತೆರೆಚಿತ್ರ" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "ಸ್ಮಾರ್ಟ್ ಕಾರ್ಡ್ ಸೇರಿಸುವಿಕೆ" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "ಸ್ಮಾರ್ಟ್ ಕಾರ್ಡ್ ತೆಗೆದುಹಾಕುವಿಕೆ" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" -msgstr "ಕಡತ(_F)" - -#: ../src/viewer.glade.h:19 +msgstr "ಕಡತ (_F)" + +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "ನೆರವು(_H)" - -#: ../src/viewer.glade.h:20 +msgstr "ನೆರವು (_H)" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "ತೆರೆಯನ್ನು ಮುದ್ರಿಸು(_P)" - -#: ../src/viewer.glade.h:21 +msgstr "ತೆರೆಯನ್ನು ಮುದ್ರಿಸು (_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "ಕಳುಹಿಸುವ ಕೀಲಿ(_S)" - -#: ../src/viewer.glade.h:22 +msgstr "ಕಳುಹಿಸುವ ಕೀಲಿ (_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "ನೋಟ(_V)" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "ಪುಟ 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "ಪುಟ 2" - - +msgstr "ನೋಟ (_V)" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "ಹಿಗ್ಗಿಸು/ಕುಗ್ಗಿಸು (_Z)" diff --git a/po/ko.po b/po/ko.po index 55e858d..8b9b2f0 100644 --- a/po/ko.po +++ b/po/ko.po @@ -1,156 +1,199 @@ -# translation of virt-viewer.default.ko.po to Korean -# Korean translations for PACKAGE package. -# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: # Automatically generated, 2010. +# Eun-Ju Kim , 2012. # Hyunsok Oh , 2010. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.default.ko\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-31 18:50+0000\n" -"PO-Revision-Date: 2010-04-01 08:59+1000\n" -"Last-Translator: Hyunsok Oh \n" -"Language-Team: Korean \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Korean (http://www.transifex.net/projects/p/fedora/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s 버전 %s\n" - -#: ../src/main.c:52 +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "소스 " + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "바인딩 소스 " + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "대상 " + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "바인딩 대상 " + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "소스 속성 " + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "바인드할 소스 속성 " + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "대상 속성 " + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "바인드할 대상 속성 " + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "플래그 " + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "바인딩 플래그 " + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer 버전 %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "실행 " -#: ../src/main.c:55 -msgid "display version information" -msgstr "버전 정보 표시" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "자세한 정보 표시" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "자동 터널링 없이 직접 연결" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "하이퍼바이저에 연결" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "도메인이 시작되기를 기다림" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "재시작시 도메인에 재연결" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "디버깅 정보 표시" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "버전 정보 보기 " + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "상세 정보 보기 " + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "자동으로 터널링하지 않고 직접 연결 " + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "윈도우의 줌 레벨 (백분율) " + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "디버그 정보 보기 " + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Spice 컨트롤러 통신을 사용하여 연결을 오픈합니다 " + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- 가상 머신 그래픽 콘솔" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- 원격 뷰어 클라이언트 " + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "줌 레벨은 10-200 범위 내에 있어야 합니다\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "연결 초기화 실패 " + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "컨트롤러에 의해 디스플레이가 비활성화됨 " + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "컨트롤러 연결에 실패함: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Spice 세션을 생성할 수 없음 " + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Spice 세션 설정 중..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI에서 연결 유형을 지정할 수 없음 " + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "이러한 유형의 세션을 생성할 수 없음: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK, libvirt로 빌드된 원격 데스크톱 클라이언트 " + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "Glade에 관하여 " + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"사용법: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "게스트 %s에 대한 VNC 포트를 결정할 수 없습니다" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "게스트 %s에 대한 VNC 포트를 결정할 수 없습니다" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC 서버 %s에 연결할 수 없습니다" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s: %s에 있는 VNC 서버에서 인증을 받을 수 없습니다\n" -"연결을 재시도하시겠습니까?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s에 있는 VNC서버에서 인증을 받을 수 없습니다\n" -"인증 방식 %d를 지원하지 않습니다" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "게스트 도메인 %s를 찾을 수 없습니다" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s로 libvirt에 연결할 수 없습니다" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[없음]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC와 libvirt로 만들어진 원격 데스크탑 클라이언트" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "Glade에 관하여" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "페도라 번역 팀" - -#: ../src/about.glade.h:6 +msgstr "Fedora 번역팀 " + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -165,150 +208,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "이것이 볼 수 있는 마지막 디스플레이 화면입니다. 정말로 종료하시겠습니까? " + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "디스플레이 %d를 기다리는 중..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "게스트 %s의 그래픽 유형을 알 수 없습니다 " + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh 연결을 실패했습니다. " + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "채널에 연결할 수 없습니다, SSH만 지원됩니다. " + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "지원되지 않는 채널에 연결합니다. " + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "그래픽 서버에 연결 중 " + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "게스트 도메인이 종료되었습니다 " + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "그래픽 서버에 연결 " + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "그래픽 서버 %s에 연결할 수 없음 " + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s의 원격 데스크톱 서버에 인증할 수 없습니다: %s\n연결을 다시 시도 하시겠습니까? " + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "원격 데스크탑 서버로 인증할 수 없음: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB 리디렉션 오류: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "인증이 필요합니다" - -#: ../src/auth.glade.h:2 +msgstr "인증이 필요함 " + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" -msgstr "암호:" - -#: ../src/auth.glade.h:3 +msgstr "암호: " + +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "사용자명:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "사용자 이름 " + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "라벨" - -#: ../src/viewer.glade.h:1 +msgstr "레이블 " + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s 버전 %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt를 사용하여 로컬 디스플레이에 연결 " + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "하이퍼바이저에 연결 " + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "도메인 시작을 기다립니다 " + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "다시 시작시 도메인에 다시 연결 " + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "전체 화면 모드로 열기 " + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "가상 머신 뷰어 " + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- 가상 머신 그래픽 콘솔" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\n사용법: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "리디렉션을 위한 USB 장치 선택 " + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "지원되지 않는 인증 유형 %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "연결 해제 " + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB 장치 선택 " + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "전체 화면 해제 " + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "다시 시작할 게스트 도메인을 기다리는 중 " + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "게스트 %s의 그래픽 유형을 지정할 수 없음 " + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "게스트 %s의 그래픽 주소를 지정할 수 없음 " + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "게스트 %s의 호스트를 지정할 수 없음 " + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "게스트 도메인 검색 중 " + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "게스트 도메인이 생성되기를 기다리는 중 " + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "게스트 도메인 %s를 찾을 수 없음 " + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "게스트 도메인 상태 확인 중 " + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "시작할 게스트 도메인을 기다리는 중 " + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "서버를 시작할 게스트 도메인을 기다리는 중 " + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s로 libvirt에 연결할 수 없음 " + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[없음]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "자동으로 크기 변경" - -#: ../src/viewer.glade.h:2 +msgstr "자동 크기 조정 " + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+_Backspace" - -#: ../src/viewer.glade.h:15 +msgstr "Ctrl+Alt+Backspace(_B)" + +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+_Del" - -#: ../src/viewer.glade.h:16 +msgstr "Ctrl+Alt+Del(_D) " + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "디스플레이 " + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "전체 화면" - -#: ../src/viewer.glade.h:17 +msgstr "전체 화면 " + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "커서 개방 " + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "스크린샷" - -#: ../src/viewer.glade.h:18 +msgstr "스크린샷 " + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "스마트카드 삽입 " + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "스마트카드 제거 " + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "파일(_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "도움말(_H)" - -#: ../src/viewer.glade.h:20 +msgstr "도움말(_H) " + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "화면 프린트(_P)" - -#: ../src/viewer.glade.h:21 +msgstr "PrintScreen(_P) " + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "키 전송(_S)" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "보기(_V)" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "페이지 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "페이지 2" - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "줌(_Z) " diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..ff5017a --- /dev/null +++ b/po/lv.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Latvian (http://www.transifex.net/projects/p/fedora/language/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/ml.po b/po/ml.po index 2286a79..97d5770 100644 --- a/po/ml.po +++ b/po/ml.po @@ -1,153 +1,197 @@ -# translation of virt-viewer.tip.virt-viewer.ml.po to +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the virt-viewer package. -# Ani Peter , 2010. -# +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Ani Peter , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.virt-viewer.ml\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-28 06:20+0000\n" -"PO-Revision-Date: 2010-01-28 15:57+0530\n" -"Last-Translator: \n" -"Language-Team: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Malayalam \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s ലക്കം %s\n" - -#: ../src/main.c:52 +"Language: ml\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "ശ്രോതസ്സ്" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "ബൈന്‍ഡിങിനുള്ള ശ്രോതസ്സ്" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "ടാര്‍ഗറ്റ്" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "ബൈന്‍ഡിങിനുള്ള ടാര്‍ഗറ്റ്" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "സോഴ്സ് പ്രോപര്‍ട്ടി" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "ബൈന്‍ഡ് ചെയ്യുവാനുള്ള ശ്രോതസ്സിലുള്ള പ്രോപര്‍ട്ടി" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "ടാര്‍ഗറ്റ് പ്രോപര്‍ട്ടി" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "ബൈന്‍ഡ് ചെയ്യുന്നതിനായി ടാര്‍ഗറ്റിലുള്ള പ്രോപര്‍ട്ടി" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ഫ്ലാഗുകള്‍" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "ബൈന്‍ഡ് ചെയ്യുന്ന ഫ്ലാഗുകള്‍" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer പതിപ്പു് %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "പ്രവര്‍ത്തിപ്പിക്കുക" -#: ../src/main.c:55 -msgid "display version information" -msgstr "ലക്കം ലഭ്യമാക്കുക" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "വെര്‍ബോസ് വിവരം ലഭ്യമാക്കുക" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "ഓട്ടോമാറ്റിക് ടണലുകളില്ലാതെ നേരിട്ടുള്ള കണക്ഷന്‍" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "ഹൈപ്പര്‍വൈസറിലേക്കു് കണക്ട് ചെയ്യുക" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ആരംഭിക്കുന്നതിനായി ഡൊമെയിനിനായി കാത്തിരിക്കുക" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "വീണ്ടും ആരംഭിക്കുമ്പോള്‍ ഡൊമെയിനിലേക്കു് വീണ്ടും കണക്ട് ചെയ്യുക" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "ഡീബഗ്ഗിങ് വിവരം ലഭ്യമാക്കുക" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "പതിപ്പിനെപ്പറ്റിയുള്ള വിവരം കാണിയ്ക്കുക" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "വെര്‍ബോസ് വിവരം കാണിയ്ക്കുക" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "ഓട്ടോമാറ്റിക് ടണലുകള്‍ ഇല്ലാത്ത നേരിട്ടുള്ള കണക്ഷന്‍" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "ജാലകത്തിന്റെ സൂം ലവല്‍, ശതമാനത്തില്‍" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "ഡീബഗ്ഗിങ് വിവരം കാണിയ്ക്കുക" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "സ്പയിസ് കണ്ട്രോളര്‍ ആശയവിനിമയം ഉപയോഗിച്ചു് കണക്ഷന്‍ തുറക്കുക" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- വിര്‍ച്ച്വല്‍ മഷീന്‍ ഗ്രാഫിക്കല്‍ കണ്‍സോള്‍" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- റിമോട്ട് വ്യൂവര്‍ ക്ലയന്റ്" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "സൂം ലവല്‍ 10-200 ആയിരിയ്ക്കണം\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "കണക്ഷന്‍ ആരംഭിയ്ക്കുന്നതില്‍ പരാജയം" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "കണ്ട്രോളര്‍ പ്രദര്‍ശനം പ്രവര്‍ത്തന രഹിതമാക്കിയിരിയ്ക്കുന്നു" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "കണ്ട്രോളറിനുള്ള കണക്ഷന്‍ പരാജയപ്പെട്ടു: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "ഒരു സ്പയിസ് സെഷന്‍ തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "സ്പയിസ് സെഷന്‍ സജ്ജമാക്കുന്നു..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "യുആര്‍ഐയില്‍ നിന്നും കണക്ഷന്‍ രീതി കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "ഈ തരത്തിനുള്ളൊരു സെഷന്‍ തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK, libvirt എന്നിവ ഉപയോഗിച്ചുള്ളൊരു റിമോട്ട് ഡസ്ക്ടോപ്പ് ക്ലയന്റ്" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "ഗ്ലേഡിനെപ്പറ്റി" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "ഗസ്റ്റ് %s-നുള്ള വിഎന്‍സി പോര്‍ട്ട് ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "ഗസ്റ്റ് %s-നുള്ള വിഎന്‍സി ഹോസ്റ്റ് ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "വിഎന്‍സി സര്‍വര്‍ %s-ലേക്ക് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s: %s-ല്‍ വിഎന്‍സി സര്‍വറുമായി ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല\n" -"കണക്ഷനുവേണ്ടി വീണ്ടും ശ്രമിക്കണമോ?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s-ലുള്ള വിഎന്‍സി സര്‍വറുമായി ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല\n" -"പിന്തുണലഭ്യമല്ലാത്ത ആധികാരികത രീതി %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ %s ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "libvrt-ലേക്ക് യുആര്‍ഐ %s ഉപയോഗിച്ചു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[ഒന്നുമില്ല]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC, libvrt എന്നിവയിലുള്ളൊരു റിമോട്ട് പണിയിട ക്ലയന്റ്" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "ഗ്ലേഡിനെ കുറിച്ചു്" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "പകര്‍പ്പവകാശം (C) 2007-2012 Daniel P. Berrange\nപകര്‍പ്പവകാശം (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "ഫെഡോറ പരിഭാഷ സംഘം" - -#: ../src/about.glade.h:6 +msgstr "ഫെഡോറാ പ്രാദേശികവത്കരണ സംഘം" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -162,150 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"ഈ പ്രോഗ്രാം ഒരു സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറാണു്, നിങ്ങള്‍ക്കതു് പുനര്‍വിതരണം\n" -"നടത്തുകയോ സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ ഫൌണ്ടേഷന്‍ പ്രസിദ്ധീകരിച്ച ഗ്നു ജനറല്‍\n" -"പബ്ലിക് ലൈസന്‍സ് ലക്കം 2 ഓ അതിനേക്കാള്‍ പുതിയ പതിപ്പോ (നിങ്ങളുടെ ഇഷ്ടപ്രകാരം)\n" -"പ്രകാരം ഭേദഗതി വരുത്താവുന്നതോ ആണു്.\n" -"\n" -"ഈ പ്രോഗ്രാം നിങ്ങള്‍ക്കു് പ്രയോജനപ്പെടും എന്ന പ്രതീക്ഷയില്‍ വിതരണം ചെയ്യുന്നതാണു്.\n" -"പക്ഷേ, ഇതിന് ഒരു വാറണ്ടിയും ലഭ്യമല്ല; വ്യാപാരയോഗ്യതയോ ഒരു പ്രത്യേക കാര്യത്തിനു്\n" -"ചേരുന്നതാണെന്നോ ഉള്ള പരോക്ഷമായ ഒരു വാറണ്ടി പോലും ഇല്ല. കൂടുതല്‍ വിവരങ്ങള്‍ക്കു് ഗ്നു\n" -"ജനറല്‍ പബ്ലിക് ലൈസന്‍സ് കാണുക.\n" -"\n" -"നിങ്ങള്‍ക്കു് ഈ പ്രോഗ്രാമിനൊപ്പം ഗ്നു ജനറല്‍ പബ്ലിക് ലൈസന്‍സിന്റെ ഒരു പകര്‍പ്പു് ലഭിച്ചിട്ടുണ്ടായിരിയ്ക്കണം;\n" -"ഇല്ലെങ്കില്‍, ഈ വിലാസത്തിലേയ്ക്കെഴുതുക:\n" -"Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "ഈ പ്രോഗ്രാം സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ ആകുന്നു; നിങ്ങള്‍ക്കിത് ഗ്നു ജനറല്‍ പബ്ലിക്ലൈസന്‍സിന്റെ നിബന്ധനകള്‍ പ്രകാരം (രണ്ടാം ലക്കം അല്ലെങ്കില്‍ നിങ്ങളുടെ താല്‍പര്യമനുസരിച്ച് അതിലും പുതിയ ലക്കം) വീണ്ടും വിതരണം ചെയ്യുകയോ മാറ്റം വരുത്തുകയോ ചെയ്യാം. ഫ്രീ സോഫ്റ്റ്‌വെയര്‍ ഫൌണ്ടേഷന്‍ ആണ് ഈ ലൈസന്‍സ് പ്രസിദ്ധീകരിച്ചിട്ടുള്ളത്.\n\nവളരെ ഫലപ്രദമായ പ്രോഗ്രാം എന്ന പ്രതീക്ഷയിലാകുന്നു ഈ പ്രോഗ്രാം വിതരണം ചെയ്തത്.ഇതിന് വാറന്റി ലഭ്യമല്ല. കൂടുതല്‍ വിവരങ്ങള്‍ക്കായി ഗ്നു ജനറല്‍ പബ്ളിക് ലൈസന്‍സ് കാണുക.\n\nഈ പ്രോഗ്രാമിനൊപ്പം നിങ്ങള്‍ക്ക് ഗ്നു ജനറല്‍ പബ്ലിക് ലൈസന്‍സിന്റെ ഒരു പകര്‍പ്പും ലഭിച്ചിരിക്കണം, ഇല്ലായെങ്കില്‍, ‌താഴെ പറയുന്ന മേല്‍വിലാസത്തിലേക്ക് എഴുതുക: Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "ഇതാണു് അവസാന ദൃശ്യം. നിങ്ങള്‍ക്കു് പുറത്തു് കടക്കണമോ?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "%d പ്രദര്‍ശനത്തിനായി കാത്തിരിയ്ക്കുന്നു..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "ഗസ്റ്റ് %s-നുള്ള അപരിചിതമായ ഗ്രാഫിക് രീതി" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh-ലേക്കുള്ള കണക്ഷന്‍ പരാജയപ്പെട്ടു." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "ചാനലിലേക്കു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല, എസ്എസ്എചിനു് മാത്രം പിന്തുണ ലഭ്യമുള്ളൂ." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "ചാനലിലേക്കുള്ള കണക്ഷനു് പിന്തുണയില്ല." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ഗ്രാഫിക് സര്‍വറിലേക്കു് കണക്ട് ചെയ്യുന്നു" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ അടച്ചുപൂട്ടിയിരിയ്ക്കുന്നു" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ഗ്രാഫിക് സര്‍വറിലേക്കു് കണക്ട് ചെയ്തിരിയ്ക്കുന്നു" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "ഗ്രാഫിക് സര്‍വര്‍ %s-ലേക്കു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s-ല്‍ റിമോട്ട് ഡസ്ക്ടോപ്പ് സര്‍വറിലേക്കു് ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല: %s\nവീണ്ടും ശ്രമിയ്ക്കണമോ?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "റിമോട്ട് ഡസ്ക്ടോപ്പ് സര്‍വറിനൊപ്പം ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "യുഎസ്ബി റീഡയറക്ഷന്‍ പിശക്: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "ആധികാരികത ആവശ്യമുണ്ടു്" - -#: ../src/auth.glade.h:2 +msgstr "ആധികാരികത ഉറപ്പാക്കല്‍ ആവശ്യമുണ്ടു്" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" -msgstr "രഹസ്യവാക്ക്" - -#: ../src/auth.glade.h:3 +msgstr "രഹസ്യവാക്ക്:" + +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "ഉപയോക്തൃനാമം" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "ഉപയോക്തൃനാമം:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "ലേബല്‍" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s ലക്കം %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt ഉപയോഗിച്ചു് പ്രാദേശിക പ്രദര്‍ശനത്തിലേക്കു് ഘടിപ്പിയ്ക്കുക" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "ഹൈപ്പര്‍വൈസറിലേക്കു് കണക്ട് ചെയ്യുക" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ആരംഭിയ്ക്കുന്നതിനായി ഡൊമെയിനുവേണ്ടി കാത്തിരിയ്ക്കുക" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "വീണ്ടും ആരംഭിയ്ക്കുമ്പോള്‍ ഡൊമെയിനിലേക്കു് വീണ്ടും കണക്ട് ചെയ്യുക" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "സ്ക്രീന്‍ പൂര്‍ണ്ണ വലിപ്പത്തില്‍ തുറക്കുക" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "വിര്‍ട്ട് വ്യൂവര്‍" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- വിര്‍ച്ച്വല്‍ മഷീന്‍ ഗ്രാഫിക്കല്‍ കണ്‍സോള്‍" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "യുഎസ്ബി ഡിവൈസുകള്‍ തെരഞ്ഞെടുക്കുക" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "പിന്തുണയില്ലാത്ത ആധികാരികത ഉറപ്പാക്കല്‍ രീതി %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "കണക്ഷന്‍ വിഛേദിയ്ക്കുക" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "യുഎസ്ബി ഡിവൈസ് തെരഞ്ഞെടുക്കല്‍" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "പൂര്‍ണ്ണസ്ക്രീനില്‍ നിന്നും മാറുക" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ വീണ്ടും ആരംഭിയ്ക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "%s ഗസ്റ്റിനുള്ള ഗ്രാഫിക് രീതി കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "%s ഗസ്റ്റിനുള്ള ഗ്രാഫിക് വിലാസം കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "ഗസ്റ്റ് %s-നുള്ള ഹോസ്റ്റ് കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ കണ്ടുപിടിയ്ക്കുന്നു" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ തയ്യാറാക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ %s ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ അവസ്ഥ പരിശോധിയ്ക്കുന്നു" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ ആരംഭിയ്ക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ സര്‍വര്‍ ആരംഭിയ്ക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "libvrt-ലേക്ക് യുആര്‍ഐ %s ഉപയോഗിച്ചു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[ഒന്നുമില്ല]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "സ്യവമായി വ്യാപ്തി മാറ്റുക" - -#: ../src/viewer.glade.h:2 +msgstr "സ്വയമായി വ്യാപ്തി മാറ്റുക" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "പ്രദര്‍ശനങ്ങള്‍" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "സ്ക്രീന്‍ പൂര്‍ണ്ണവലിപ്പത്തില്‍" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "കര്‍സര്‍ റിലീസ് ചെയ്യുക" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "സ്ക്രീന്‍ഷോട്ട് എടുക്കുക" - -#: ../src/viewer.glade.h:18 +msgstr "സ്ക്രീന്‍ഷോട്ട്" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "സ്മാര്‍ട്ട്കാര്‍ഡ് ഇടല്‍" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "സ്മാര്‍ട്ട്കാര്‍ഡ് നീക്കം ചെയ്യല്‍" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_ഫയല്‍" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "_സഹായം" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "_PrintScreen" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "കീ _അയയ്ക്കുക" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "_കാഴ്ച" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "താള്‍ 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "താള്‍ 2" - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "_വലുതാക്കുക" diff --git a/po/mr.po b/po/mr.po index 6a731af..554a645 100644 --- a/po/mr.po +++ b/po/mr.po @@ -1,154 +1,197 @@ -# translation of mr.po to Marathi +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# Sandeep Shedmake , 2010. +# +# Translators: +# Sandeep Shedmake , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: mr\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-27 21:04+0530\n" -"PO-Revision-Date: 2010-01-28 19:07+0530\n" -"Last-Translator: Sandeep Shedmake \n" -"Language-Team: Marathi \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Marathi (http://www.transifex.net/projects/p/fedora/language/mr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s आवृत्ती %s\n" - -#: ../src/main.c:52 +"Language: mr\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "स्रोत" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "बाइंडिंगचे स्रोत" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "लक्ष्य" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "बाइंडिंगचे लक्ष्य" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "स्रोत गुणधर्म" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "बाइंडकरण्यासाठी स्रोतवरील गुणधर्म" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "लक्ष्य गुणधर्म" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "बाइंडकरीता लक्ष्यवरील गुणधर्म" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "फ्लॅग्स्" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "बाइंडिंगसाठीचे फ्लॅग्स्" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer आवृत्ती %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "चालवा '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "आवृत्तीची माहिची दाखवा" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "वर्णनीय माहिती दाखवा" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "स्वयं वाहिनी विना थेट जोडणी" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "हायपरवाइजरसह जोडणी करा" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "क्षेत्र सुरू होण्याकरीता थांबा" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "पुनः सुरू झाल्यावर क्षेत्रसह पुनः जोडणी करा" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "डिबगींग माहिती दाखवा" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "आवृत्तीविषयी माहिती दाखवा" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "शब्दात्मक माहिती दाखवा" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "स्वयं टनल्स् विना प्रत्यक्ष जोडणी" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "पटलाचे झूम स्तर, टक्केवारित" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "डिबगिंग माहिती दाखवत आहे" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "स्पाइस कंट्रोलर संपर्काचा वापर करून जोडणी उघडा" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- वर्च्युअल मशीन ग्राफिकल कंसोल" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- रिमोट व्युअर क्लाएंट" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "झूम स्तर 10-200 अंतर्गत पाहिजे\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "जोडणी सुरू करण्यास अपयशी" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "कंट्रोलरतर्फे डिस्पले बंद केले" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "कंट्रोलर जोडणी अपयशी: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "स्पाइस सत्र निर्माण करणे अशक्य" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "स्पाइस सत्राची मांडणी अशक्य..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI पासून जोडणी प्रकार ओळखणे अशक्य" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "या प्रकारकरीता सत्र निर्माण करणे अशक्य: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK व libvirt सह रिमोट डेस्कटॉप क्लाएंट निर्मीत केले" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "ग्लेड विषयी" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"वापर: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "अतिथी %s करीता VNC पोर्ट ओळखणे अशक्य" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "अतिथी %s करीता VNC यजमान ओळखणे अशक्य" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC सर्व्हर %s सह जोडणी करणे अशक्य" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s: %s येथे VNC सर्व्हरसह ओळख पटवण्यास अशक्य\n" -"पुन्हा जोडणी करा?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s येथे VNC सर्व्हरसह ओळख पटवण्यास अशक्य\n" -"असमर्थात ओळख पटवण्याचा प्रकार %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "अतिथी क्षेत्र %s शोधणे अशक्य" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s सह libvirt शी जोडणी करणे अशक्य" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[काहिच नाही]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC व libvirt सह बांधणी केलेले रिमोट डेस्कटॉप क्लाएंट" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "Glade विषयी" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"सर्वहक्काधिकार 2007-2008 डॅनीएनल पी. बेर्रांज\n" -"सर्वहक्काधिकार 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "सर्वहक्काधिकार (C) 2007-2012 Daniel P. Berrange\nसर्वहक्काधिकार (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Fedora भाषांतरन गट" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,150 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "हे शेवटचे दृष्यास्पद डिस्पले आहे. तुम्हाला येथून बाहेर पडायचे?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "डिस्पले %d करीता प्रतिक्षा करत आहे..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "अतिथी %s करीता अपरिचीत ग्राफिक प्रकार" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh सह जोडणी अपयशी." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "वाहिनीसह जोडणी करणे अशक्य, SSH फक्त याकरीता समर्थन पुरवतो." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "वाहिनीसह जोडणी असमर्थीत आहे." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ग्राफिक सर्व्हरसह जोडणी करत आहे" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "अतिथी डोमैन बंद झाले" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ग्राफिक सर्व्हरसह जोडणी केली" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "ग्राफिक सर्व्हर %s सह जोडणी अशक्य" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s: %s येथे रिमोट डेस्कटॉप सर्व्हरसह ओळख पटवणे अशक्य\nजोडणीकरीता पुन्हा प्रयत्न करायचे?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "रिमोट डेस्कटॉप सर्व्हरसह ओळख पटवणे अशक्य: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB पुनःनिर्देशन त्रुटी: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "ओळख पटवणे आवश्यक" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "पासवर्ड:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "वापरकर्त्याचे नाव:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "वापरकर्तानाव:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "लेबल" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s आवृत्ती %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt चा वापर करून स्थानीय डिस्पलेसह जोडणी करा" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "हायपरवाइजरसह जोडणी करा" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "डोमैन सुरू होण्याकरीता वाट पहा" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "पुनःसुरू केल्यानंतर डोमैनसह पुनःजोडणी करा" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "पूर्ण पडदाभर मोडमध्ये उघडा" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "वर्ट व्युअर" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- वर्च्युअल मशीन ग्राफिकल कंसोल" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nवापर: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "रिडायरेक्शनकरीता USB साधने पसंत करा" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "असमर्थीत ओळखपटवणे प्रकार %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "जोडणी खंडीत करा" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB साधनची निवड" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "पडदाभर सोडा" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "अतिथी डोमैनला पुनःसुरू करण्यासाठी वाट पहात आहे" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "अतिथी %s करीता ग्राफिक प्रकार ओळखणे अशक्य" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "अतिथी %s करीता ग्राफिक ॲड्रेस ओळखणे अशक्य" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "अतिथी %s करीता यजमान ओळखणे अशक्य" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "अतिथी डोमैन शोधत आहे" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "अतिथी डोमैन निर्माण करण्यास वाट पहात आहे" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "अतिथी क्षेत्र %s शोधणे अशक्य" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "अतिथी डोमैन स्थिती तपासत आहे" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "अतिथी डोमैनला पुनःसुरू करण्यास वाट पहात आहे" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "अतिथी डोमैनला पुनःसुरू करण्यास वाट पहात आहे" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s सह libvirt शी जोडणी करणे अशक्य" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[काहिच नाही]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "स्वयं पुनः आकार द्या" - -#: ../src/viewer.glade.h:2 +msgstr "स्वयं पुनःआकार द्या" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F10 (_0)" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F1 (_1)" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F2 (_2)" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F3 (_3)" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F4 (_4)" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F5 (_5)" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F6 (_6)" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F7 (_7)" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F8 (_8)" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F9 (_9)" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+Backspace (_B)" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+Del (_D)" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "डिस्प्लेज्" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "पडदाभर" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "रिलिज् कर्सर" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "स्क्रिनशॉट" - -#: ../src/viewer.glade.h:18 +msgstr "स्क्रीनशॉट" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "स्मार्टकार्ड अंतर्भुत करणे" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "स्मार्टकार्ड काढून टाकणे" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "फाइल (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "मदत (_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "प्रिंटस्क्रिन (_P)" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "कि पाठवा (_S)" - -#: ../src/viewer.glade.h:22 +msgstr "सेंड कि (_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "दृष्य (_V)" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "पृष्ठ 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "पृष्ठ 2" - +msgstr "अवलोकन (_V)" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "झूम करा (_Z)" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..1c80670 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,558 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Geert Warrink , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "Uitvoeren '" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "Zoom niveau in percentage van het venster" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Onbekend grafisch type voor de gast %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Verbinden met ssh mislukte." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Kan geen verbinding maken met kanaal, alleen SSH wordt ondersteund" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Verbinding maken met kanaal wordt niet ondersteund." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Ka niet verbinden met de grafische server %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s versie %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- Virtuele machine grafische console" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nGebruik: %s [OPTIES] DOMEIN-NAAM|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Kan het grafische type voor de gast %s niet bepalen" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Kan het grafische adres voor de gast %s niet bepalen" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Kan de host voor de gast %s niet bepalen" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Kan gast domein %s niet vinden" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Kan niet verbinden met libvirt met URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[geen]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/or.po b/po/or.po index 82522d3..70f0c0d 100644 --- a/po/or.po +++ b/po/or.po @@ -1,154 +1,197 @@ -# translation of virt-viewer.tip.virt-viewer.or.po to Oriya +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# Manoj Kumar Giri , 2010. +# +# Translators: +# Manoj Kumar Giri , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.virt-viewer.or\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-19 22:36+0000\n" -"PO-Revision-Date: 2010-02-01 12:55+0530\n" -"Last-Translator: Manoj Kumar Giri \n" -"Language-Team: Oriya \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Oriya (http://www.transifex.net/projects/p/fedora/language/or/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s ସଂସ୍କରଣ %s\n" - -#: ../src/main.c:52 +"Language: or\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "ମୂଳ" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "ବନ୍ଧନର ଉତ୍ସ" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "ଲକ୍ଷ୍ଯ" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "ବନ୍ଧନର ଲକ୍ଷ୍ଯ" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "ଉତ୍ସ ଗୁଣଧର୍ମ" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "ବାନ୍ଧିବା ପାଇଁ ଉତ୍ସରେ ଥିବା ଗୁଣଧର୍ମ" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "ଲକ୍ଷ୍ଯର ଗୁଣଧର୍ମ" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "ବାନ୍ଧିବା ପାଇଁ ଲକ୍ଷ୍ୟର ଗୁଣଧର୍ମ" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ପତାକାଗୁଡିକ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "ବନ୍ଧନ ପତାକାଗୁଡ଼ିକ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer ସଂସ୍କରଣ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "ଚଲାନ୍ତୁ '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "ସଂସ୍କରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "ଭର୍ବୋଜ ସୂଚନା ଦର୍ଶାନ୍ତୁ" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "ବିନା ସ୍ୱୟଂଚାଳିତ ଟନେଲଗୁଡ଼ିକରେ ସିଧାସଳଖ ସଂଯୋଗ" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "ହାଇପରଭାଇଜର ସହିତ ସଂଯୋଗ କରନ୍ତୁ" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ଆରମ୍ଭ କରିବା ପାଇଁ ଡମେନକୁ ଅପେକ୍ଷା କରନ୍ତୁ" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "ପୁନଃଚାଳନ ପରେ ଡମେନ ସହିତ ପୁନଃସଂଯୋଗ କରନ୍ତୁ" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "ତ୍ରୁଟି ନିବାରଣ ସୂଚନାକୁ ଦର୍ଶାନ୍ତୁ" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "ସଂସ୍କରଣ ସୂଚନା ଦେଖାନ୍ତୁ" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "ଶବ୍ଦାଡ଼ମ୍ବରପୂର୍ଣ୍ଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "ସ୍ୱୟଂଚାଳିତ ଟନେଲ ବିନା ସିଧାସଳଖ ସଂଯୋଗ" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "ୱିଣ୍ଡୋର ଆକାର ବୃଦ୍ଧି ସ୍ତର, ଶତକଡ଼ାରେ" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "ତ୍ରୁଟିନିବାରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "ସ୍ପାଇସ ନିୟନ୍ତ୍ରକ ଯୋଗାଯୋଗ ମାଧ୍ଯମରେ ସଂଯୋଗକୁ ଖୋଲନ୍ତୁ" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "-ଆଭାସୀ ଯନ୍ତ୍ରର ଆଲେଖୀକ କୋନସୋଲ" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- ସୁଦୂର ପ୍ରଦର୍ଶକ କ୍ଲାଏଣ୍ଟ " + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "ଆକାର ବୃଦ୍ଧି ସ୍ତର ନିଶ୍ଚିତ ଭାବରେ 10-200 ମଧ୍ଯରେ ରହିବା ଉଚିତ\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr " ସଂଯୋଗ ଆରମ୍ଭ କରିବାରେ ବିଫଳ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "ନିୟନ୍ତ୍ରକ ଦ୍ୱାରା ପ୍ରଦର୍ଶନୀ ନିଷ୍କ୍ରିୟ ହୋଇଛି" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "ନିୟନ୍ତ୍ରକ ସଂଯୋଗ ଅସଫଳ ହେଲା:%s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "ସ୍ପାଇସ ଅଧିବେଶନ ପ୍ରସ୍ତୁତ ହୋଇପାରିଲା ନାହିଁ" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "ସ୍ପାଇସ ଅଧିବେଶନ ସେଟ କରୁଅଛି..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI ରୁ ସଂଯୋଗ ପ୍ରକାରକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "ଏହି ପ୍ରକାର ପାଇଁ ସ୍ପାଇସ ଅଧିବେଶନ ପ୍ରସ୍ତୁତ ହୋଇପାରିଲା ନାହିଁ: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK ଏବଂ libvirt ସହାୟତାରେ ଏକ ସୁଦୂର ଡେସ୍କଟପ କ୍ଲାଏଣ୍ଟ ପ୍ରସ୍ତୁତ ହୋଇଛି" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "ଗ୍ଲେଡ ବିଷୟରେ" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"ବ୍ୟବହାର ବିଧି: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "ଅତିଥି %s ପାଇଁ VNC ସଂଯୋଗିକୀ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "ଅତିଥି %s ପାଇଁ VNC ହୋଷ୍ଟ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC ସର୍ଭର %s ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"VNC ସର୍ଭର ସହିତ %s ଠାରେ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ: %s\n" -"ସଂଯୋଗକୁ ପୁଣିଥରେ ପୁନଃପ୍ରଚେଷ୍ଟା କରନ୍ତୁ?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"VNC ସର୍ଭର ସହିତ %s ଠାରେ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ\n" -"ଅସମର୍ଥିତ ବୈଧିକରଣ ପ୍ରକାର %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "ଅତିଥି ଡମେନ %s କୁ ଖୋଜି ପାଇବେ ନାହିଁ" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %s ସହାୟତାରେ libvirt ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[କିଛି ନାହିଁ]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "ଗୋଟିଏ ସୁଦୂର ଡେସ୍କଟପ କ୍ଲାଏଣ୍ଟ GTK-VNC ଏବଂ libvirt ସହିତ ନିର୍ମିତ" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "Glade ବିଷୟରେ" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "Fedora ଅନୁବାଦ ମଣ୍ଡଳୀ" - -#: ../src/about.glade.h:6 +msgstr "Fedora ଅନୁବାଦନ ଗୋଷ୍ଠି" + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,150 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "ଏହା ହେଉଛି ଅନ୍ତିମ ଦୃଶ୍ୟମାନ ପ୍ରଦର୍ଶନୀ। ଆପଣ ବିଦାୟ ନେବାକୁ ଚାହୁଁଛନ୍ତି କି?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "%d କୁ ଅପେକ୍ଷା କରିଅଛି..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "ଅତିଥି %s ପାଇଁ ଅଜ୍ଞାତ ଲେଖାଚିତ୍ର ପ୍ରକାର" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh ସହିତ ସଂଯୋଗ ବିଫଳ ହୋଇଛି।" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "ଚ୍ୟାନେଲ ସହିତ ସଂଯୋଗ କରିପାରିବେ ନାହିଁ, କେବଳ SSH ସମର୍ଥିତ।" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "ଚ୍ୟାନେଲ ସହିତ ସଂଯୋଗ ଅସମର୍ଥିତ।" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ଆଲେଖିକ ସର୍ଭର ସହିତ ସଂଯୋଗ କରୁଅଛି" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "ଅତିଥି ଡମେନ ବନ୍ଦ ଅଛି" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ଆଲେଖି ସର୍ଭର ସହ ସଂଯୁକ୍ତ" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "ଆଲେଖୀ ସର୍ଭର %s ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s ରେ ସୁଦୂର ଡେସ୍କଟପ ସର୍ଭର ସହିତ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ: %s\nପୁଣିଥରେ ଚେଷ୍ଟା କରିବେ କି?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "ସୁଦୂର ଡେସ୍କଟପ ସର୍ଭର ସହିତ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB ଦିଗପରିବର୍ତ୍ତନ ତ୍ରୁଟି: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "ବୈଧିକରଣ ଆବଶ୍ଯକ" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "ପ୍ରବେଶ ସଙ୍କେତ:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "ଚାଳକ ନାମ:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "ସୂଚକ" - -#: ../src/viewer.glade.h:1 +msgstr "ନାମପଟି" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s ସଂସ୍କରଣ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt ବ୍ୟବହାର କରି ସ୍ଥାନୀୟ ପ୍ରଦର୍ଶନୀ ସହିତ ସଂଲଗ୍ନ ହୋଇଛି" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "hypervisor ସହିତ ସଂଯୋଗ କରନ୍ତୁ" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ଡମେନକୁ ଆରମ୍ଭ ହେବା ପାଇଁ ଅପେକ୍ଷା କରନ୍ତୁ" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "ପୁନଃଚାଳନ ପରେ ଡମେନ ସହିତ ପୁଣି ସଂଯୁକ୍ତ ହୋଇଛି" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "ସମ୍ପୂର୍ଣ୍ଣ ପରଦା ଧାରାରେ ଖୋଲନ୍ତୁ" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt ପ୍ରଦର୍ଶିକା" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "-ଆଭାସୀ ଯନ୍ତ୍ରର ଆଲେଖୀକ କୋନସୋଲ" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nବ୍ୟବହାର ବିଧି: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "ଦିଗ ପରିବର୍ତ୍ତନ ପାଇଁ USB ଉପକରଣଗୁଡ଼ିକୁ ବାଛନ୍ତୁ" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "ଅସମର୍ଥିତ ପ୍ରାଧିକରଣ ପ୍ରକାର %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହୋଇଛି" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ଉପକରଣ ଚୟନ" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "ସମ୍ପୁର୍ଣ୍ଣ ପରଦା ଛାଡ଼ି ଦିଅନ୍ତୁ" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "ପୁନଚାଳନ ପାଇଁ ଅତିଥି ଡମେନକୁ ଅପେକ୍ଷା କରିଛି" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "ଅତିଥି %s ପାଇଁ ଆଲେଖିକ ପ୍ରକାରକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "ଅତିଥି %s ପାଇଁ ଆଲେଖିକ ଠିକଣାକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "ଅତିଥି %s ପାଇଁ ହୋଷ୍ଟ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "ଅତିଥି ଡମେନକୁ ଖୋଜୁଅଛି" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "ନିର୍ମାଣ କରିବା ପାଇଁ ଅତିଥି ଡମେନକୁ ଅପେକ୍ଷା କରିଛି" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "ଅତିଥି ଡମେନ %s କୁ ଖୋଜି ପାଇବେ ନାହିଁ" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "ଅତିଥି ଡମେନ ସ୍ଥିତିକୁ ଯାଞ୍ଚ କରୁଅଛି" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "ଅତିଥି ଡମେନ ଆରମ୍ଭ ହେବାକୁ ଯାଉଛି" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "ସର୍ଭରକୁ ଆରମ୍ଭ କରିବା ପାଇଁ ଅତିଥି ଡମେନକୁ ଅପେକ୍ଷା କରିଛି" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %s ସହାୟତାରେ libvirt ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[କିଛି ନାହିଁ]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଆକାର ପରିବର୍ତ୍ତନ କରନ୍ତୁ" - -#: ../src/viewer.glade.h:2 +msgstr "ସ୍ବୟଂଚାଳିତଭାବରେ ଆକାର କରିବର୍ତ୍ତନ କରନ୍ତୁ" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" -msgstr "Ctrl+Alt+F10 (_0)" - -#: ../src/viewer.glade.h:5 +msgstr "Ctrl+Alt+F1_0" + +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" -msgstr "Ctrl+Alt+F1 (_1)" - -#: ../src/viewer.glade.h:6 +msgstr "Ctrl+Alt+F_1" + +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" -msgstr "Ctrl+Alt+F2 (_2)" - -#: ../src/viewer.glade.h:7 +msgstr "Ctrl+Alt+F_2" + +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" -msgstr "Ctrl+Alt+F3 (_3)" - -#: ../src/viewer.glade.h:8 +msgstr "Ctrl+Alt+F_3" + +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" -msgstr "Ctrl+Alt+F4 (_4)" - -#: ../src/viewer.glade.h:9 +msgstr "Ctrl+Alt+F_4" + +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" -msgstr "Ctrl+Alt+F5 (_5)" - -#: ../src/viewer.glade.h:10 +msgstr "Ctrl+Alt+F_5" + +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" -msgstr "Ctrl+Alt+F6 (_6)" - -#: ../src/viewer.glade.h:11 +msgstr "Ctrl+Alt+F_6" + +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" -msgstr "Ctrl+Alt+F7 (_7)" - -#: ../src/viewer.glade.h:12 +msgstr "Ctrl+Alt+F_7" + +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" -msgstr "Ctrl+Alt+F8 (_8)" - -#: ../src/viewer.glade.h:13 +msgstr "Ctrl+Alt+F_8" + +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" -msgstr "Ctrl+Alt+F9 (_9)" - -#: ../src/viewer.glade.h:14 +msgstr "Ctrl+Alt+F_9" + +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" -msgstr "Ctrl+Alt+Backspace (_B)" - -#: ../src/viewer.glade.h:15 +msgstr "Ctrl+Alt+_Backspace" + +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" -msgstr "Ctrl+Alt+Del (_D)" - -#: ../src/viewer.glade.h:16 +msgstr "Ctrl+Alt+_Del" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "ପ୍ରଦର୍ଶନୀ" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "ସମ୍ପୂର୍ଣ୍ଣ ପରଦା" - -#: ../src/viewer.glade.h:17 +msgstr "ସଂପୂର୍ଣ୍ଣ ପରଦା" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "ସୂଚକକୁ ଛାଡ଼ନ୍ତୁ" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "ସ୍କ୍ରିନ୍ସଟ୍" - -#: ../src/viewer.glade.h:18 +msgstr "ଆଶୁଚିତ୍ର" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "ସ୍ମାର୍ଟକାର୍ଡ ଭର୍ତ୍ତିକରିବା" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "ସ୍ମାର୍ଟକାର୍ଡ ବାହାର କରିବା " + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "ଫାଇଲ (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "ସହାୟତା (_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "PrintScreen (_P)" - -#: ../src/viewer.glade.h:21 +msgstr "ପରଦାକୁ ମୁଦ୍ରଣ କରନ୍ତୁ (_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "କି ପଠାନ୍ତୁ (_S)" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "ଦ୍ରୁଶ୍ଯ (_V)" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "ପୃଷ୍ଠା 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "ପୃଷ୍ଠା 2" - +msgstr "ଦୃଶ୍ଯ (_V)" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "ବଡ଼ କରନ୍ତୁ (_Z)" diff --git a/po/pa.po b/po/pa.po index 70fa188..5beefd9 100644 --- a/po/pa.po +++ b/po/pa.po @@ -1,179 +1,197 @@ +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# Jaswinder Singh , 2010. +# +# Translators: +# Jaswinder Singh , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-16 10:17+0000\n" -"PO-Revision-Date: 2010-12-21 12:25+0530\n" -"Last-Translator: Jaswinder Singh \n" -"Language-Team: Punjabi Team\n" -"Language: pa\n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Panjabi (Punjabi) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Virtaal 0.6.1\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s ਵਰਜਨ %s\n" - -#: ../src/main.c:53 +"Language: pa\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "ਸਰੋਤ" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "ਬਾਈਂਡਿੰਗ ਦਾ ਸਰੋਤ" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "ਟਾਰਗਿਟ" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "ਬਾਈਂਡਿੰਗ ਦਾ ਟਾਰਗਿਟ" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "ਸਰੋਤ ਪਰਾਪਰਟੀ" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "ਬਾਈਂਡ ਕਰਨ ਲਈ ਸਰੋਤ ਉੱਪਰ ਪਰਾਪਰਟੀ" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "ਟਾਰਗਿਟ ਪਰਾਪਰਟੀ" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "ਬਾਈਂਡ ਕਰਨ ਲਈ ਟਾਰਗਿਟ ਉੱਪਰ ਪਰਾਪਰਟੀ" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ਫਲੈਗ" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "ਬਾਈਂਡਿੰਗ ਫਲੈਗ" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer ਵਰਜਨ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "ਚਲਾਓ '" -#: ../src/main.c:56 -msgid "display version information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" msgstr "ਵਰਜਨ ਜਾਣਕਾਰੀ ਵੇਖਾਓ" -#: ../src/main.c:58 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "ਵਰਬੋਜ਼ ਜਾਣਕਾਰੀ ਵੇਖਾਓ" -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" msgstr "ਬਿਨਾਂ ਕਿਸੇ ਆਟੋਮੈਟਿਕ ਟੰਨਲ ਡਾਇਰੈਕਟ ਕੁਨੈਕਸ਼ਨ" -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "ਹਾਈਪਰਵਾਈਸਰ ਨਾਲ ਜੋੜੋ" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "ਡੋਮੇਲ ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੇ ਡੋਮੇਨ ਨਾ ਮੁੜ-ਜੁੜੋ" - -#: ../src/main.c:68 +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "ਵਿੰਡੋ ਦਾ ਜ਼ੂਮ ਲੈਵਲ, ਪ੍ਰਤੀਸ਼ਤ ਵਿੱਚ" -#: ../src/main.c:70 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "ਡੀਬੱਗਿੰਗ ਜਾਣਕਾਰੀ ਵੇਖਾਓ" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "ਸਪਾਈਸ ਕੰਟਰੋਲਰ ਕਮਿਊਨੀਕੇਸ਼ ਵਰਤ ਕੇ ਕੁਨੈਕਸ਼ਨ ਖੋਲੋ" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਗਰਾਫੀਕਲ ਕੰਸੋਲ" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"ਵਰਤੋਂ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:805 -#, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕ ਕਿਸਮ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ" - -#: ../src/viewer.c:817 -#, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕਸ ਕਿਸਮ ਅਣਜਾਣ ਹੈ" - -#: ../src/viewer.c:824 -#, c-format -msgid "Cannot determine the graphic port for the guest %s" -msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕ ਪੋਰਟ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ" - -#: ../src/viewer.c:830 -#, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "ਗਿਸਟ %s ਲਈ ਹੋਸਟ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ" - -#: ../src/viewer.c:856 -msgid "Connect to ssh failed." -msgstr "ssh ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ।" - -#: ../src/viewer.c:858 -msgid "Can't connect to channel, SSH only supported." -msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜ ਨਹੀਂ ਸਕਦਾ, ਸਿਰਫ SSH ਨੂੰ ਸਹਿਯੋਗ ਹੈ।" - -#: ../src/viewer.c:863 -msgid "Connect to channel unsupported." -msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜਨ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" - -#: ../src/viewer.c:1006 -#, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ %s ਨਾਲ ਜੁੜਨ ਤੋਂ ਅਸਮਰਥ" - -#: ../src/viewer.c:1053 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "ਗਿਸਟ ਡੋਮੇਨ %s ਨਹੀਂ ਲੱਭ ਸਕਿਆ" - -#: ../src/viewer.c:1161 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "libvirt ਨੂੰ URI %s ਨਾਲ ਜੋੜ ਨਹੀਂ ਸਕਿਆ" - -#: ../src/viewer.c:1162 -msgid "[none]" -msgstr "[ਕੋਈ ਨਹੀਂ]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"VNC ਸਰਵਰ ਨਾਲ %s ਤੇ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਤੋਂ ਅਸਮਰਥ\n" -"ਨਾ-ਸਹਿਯੋਗੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਿਸਮ %d" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"VNC ਸਰਵਰ ਨਾਲ %s ਤੋ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਵਿੱਚ ਅਸਮਰਥ: %s\n" -"ਕੁਨੈਕਸ਼ਨ ਲਈ ਮਉੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ?" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਂਈਟ" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "ਜ਼ੂਮ ਲੈਵਲ 10-200 ਵਿਚਕਾਰ ਹੋਣਾ ਜਰੂਰੀ ਹੈ\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਚਾਲੂ ਕਰਨ ਵਿੱਚ ਫੇਲ" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "ਕੰਟਰੋਲ ਦੁਆਰਾ ਦਰਸ਼ਕ ਅਯੋਗ ਕੀਤਾ ਹੈ" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "ਕੰਟਰੋਲਰ ਕੁਨੈਕਸ਼ਨ ਫੇਲ: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "ਸਪਾਈਸ ਕੁਨੈਕਸ਼ਨ ਬਣਾ ਨਹੀਂ ਸਕਿਆ" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "ਸਪਾਈਸ ਕੁਨੈਕਸ਼ਨ ਬਣਾ ਰਿਹਾ ਹੈ..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI ਤੋਂ ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਦਾ" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "ਇਸ ਕਿਸਮ ਲਈ ਸ਼ੈਸ਼ਨ ਨਹੀਂ ਬਣਾ ਸਕਿਆ: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਂਈਟ ਜੋ GTK-VNC ਅਤੇ libvirt ਨਾਲ ਬਣਿਆ ਹੈ" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਂਈਟ GTK-VNC, SPICE-GTK ਅਤੇ libvirt ਨਾਲ ਬਣਾਇਆ ਗਿਆ ਹੈ" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "ਗਲੇਡ ਬਾਰੇ" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "ਫੇਡੋਰਾ ਅਨੁਵਾਦ ਟੀਮ" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -188,157 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"ਇਹ ਪਰੋਗਰਾਮ ਫਰੀ ਸਾਫਟਵੇਅਰ ਹੈ; ਤੁਸੀਂ ਇਸਨੂੰ ਮੁੜ-ਵੰਡ ਅਤੇ/ਜਾਂ ਸੋਧ ਕਰ ਸਕਦੇ ਹੋ\n" -"GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਅਧੀਨ ਜੋ ਫਰੀ\n" -"ਸਾਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ; ਲਾਈਸੰਸ ਦਾ ਵਰਜਨ 2, ਜਾਂ\n" -"(ਤੁਹਾਡੀ ਚੋਂ ਮੁਤਾਬਕ) ਕੋਈ ਬਾਅਦ ਵਾਲਾ ਵਰਜਨ\n" -"\n" -"ਇਹ ਪਰੋਗਰਾਮ ਇਸ ਉਦੇਸ਼ ਨਾਲ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ ਕਿ ਇਹ ਵਰਤਣਯੋਗ ਹੋਵੇਗਾ,\n" -"ਪਰ ਕਿਨਾਂ ਕਿਸੇ ਵਾਰੰਟੀ; ਇੱਥੋਂ ਤੱਕ ਕਿ ਬਿਨਾਂ ਕਿਸੇ ਵਪਾਰਿਕਤਾ ਵਾਰੰਟੀ\n" -"ਜਾਂ ਕਿਸੇ ਖਾਸ ਉਦੇਸ਼ ਦੀ ਪੂਰਤੀ ਲਈ। ਵਧੇਰੇ ਵਿਸਥਾਰ ਲਈ\n" -"GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਵੇਖੋ।\n" -"\n" -"ਤੁਹਾਨੂੰ ਇਸ ਪਰੋਗਰਾਮ ਨਾਲ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਦੀ ਕਾਪੀ\n" -"ਮਿਲਨੀ ਚਾਹੀਦੀ ਹੈ; ਜੇ ਨਹੀਂ, ਤਾਂ ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਈਊਨਡੇਸ਼ਨ,\n" -"Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ਨੂੰ ਲਿਖੋ\n" - -#: ../src/about.glade.h:20 +msgstr "ਇਹ ਪਰੋਗਰਾਮ ਫਰੀ ਸਾਫਟਵੇਅਰ ਹੈ; ਤੁਸੀਂ ਇਸਨੂੰ ਮੁੜ-ਵੰਡ ਅਤੇ/ਜਾਂ ਸੋਧ ਕਰ ਸਕਦੇ ਹੋ\nGNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਅਧੀਨ ਜੋ ਫਰੀ\nਸਾਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ; ਲਾਈਸੰਸ ਦਾ ਵਰਜਨ 2, ਜਾਂ\n(ਤੁਹਾਡੀ ਚੋਂ ਮੁਤਾਬਕ) ਕੋਈ ਬਾਅਦ ਵਾਲਾ ਵਰਜਨ\n\nਇਹ ਪਰੋਗਰਾਮ ਇਸ ਉਦੇਸ਼ ਨਾਲ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ ਕਿ ਇਹ ਵਰਤਣਯੋਗ ਹੋਵੇਗਾ,\nਪਰ ਕਿਨਾਂ ਕਿਸੇ ਵਾਰੰਟੀ; ਇੱਥੋਂ ਤੱਕ ਕਿ ਬਿਨਾਂ ਕਿਸੇ ਵਪਾਰਿਕਤਾ ਵਾਰੰਟੀ\nਜਾਂ ਕਿਸੇ ਖਾਸ ਉਦੇਸ਼ ਦੀ ਪੂਰਤੀ ਲਈ। ਵਧੇਰੇ ਵਿਸਥਾਰ ਲਈ\nGNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਵੇਖੋ।\n\nਤੁਹਾਨੂੰ ਇਸ ਪਰੋਗਰਾਮ ਨਾਲ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਦੀ ਕਾਪੀ\nਮਿਲਨੀ ਚਾਹੀਦੀ ਹੈ; ਜੇ ਨਹੀਂ, ਤਾਂ ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਈਊਨਡੇਸ਼ਨ,\nInc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ਨੂੰ ਲਿਖੋ\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "ਇਹ ਆਖਰੀ ਦਿਸਣਯੋਗ ਝਲਕ ਹੈ। ਕੀ ਤੁਸੀਂ ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "ਝਲਕ %d ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕਸ ਕਿਸਮ ਅਣਜਾਣ ਹੈ" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ।" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜ ਨਹੀਂ ਸਕਦਾ, ਸਿਰਫ SSH ਨੂੰ ਸਹਿਯੋਗ ਹੈ।" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜਨ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ ਨਾਲ ਜੁੜ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਸ਼ੱਟ-ਡਾਊਨ ਹੋ ਗਿਆ ਹੈ" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ ਨਾਲ ਜੁੜ ਗਿਆ ਹੈ" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ %s ਨਾਲ ਜੁੜਨ ਤੋਂ ਅਸਮਰਥ" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s ਤੋਂ ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਸਰਵਰ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਤੋਂ ਅਸਮਰਥ: %s\nਕੁਨੈਕਸ਼ਨ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਹੈ?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "ਰਿਮੋਟ ਸਰਵਰ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਤੋਂ ਅਸਮਰਥ: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB ਰੀਡਾਇਰੈਕਸ਼ਨ ਗਲਤੀ: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੈ" - -#: ../src/auth.glade.h:2 +msgstr "ਪ੍ਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "ਪਾਸਵਰਡ:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "ਯੂਜ਼ਰ-ਨਾਂ:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-ਰੱਦ" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ਠੀਕ" - -#: ../src/auth.glade.h:6 +msgstr "ਯੂਜ਼ਰ ਨਾਂ:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "ਲੇਬਲ" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s ਵਰਜਨ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt ਵਰਤ ਕੇ ਲੋਕਲ ਡਿਸਪਲੇਅ ਨਾਲ ਜੁੜੋ" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "ਹਾਈਪਰਵਾਈਸਰ ਨਾਲ ਜੋੜੋ" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ਡੋਮੇਲ ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੇ ਡੋਮੇਨ ਨਾ ਮੁੜ-ਜੁੜੋ" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "ਪੂਰੀ ਸਕਰੀਨ ਮੋਡ ਵਿੱਚ ਖੋਲੋ" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt ਝਲਕਾਰਾ" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਗਰਾਫੀਕਲ ਕੰਸੋਲ" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nਵਰਤੋਂ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "ਰੀਡਾਇਰੈਕਸ਼ਨ ਲਈ USB ਜੰਤਰ ਚੁਣੋ" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "ਨਾ-ਸਹਿਯੋਗੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਿਸਮ %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB ਜੰਤਰ ਚੋਣ" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "ਪੂਰੀ ਸਕਰੀਨ ਛੱਡੋ" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਮੁੜ-ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕ ਕਿਸਮ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕਸ ਐਡਰੈੱਸ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਿਆ" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "ਗਿਸਟ %s ਲਈ ਹੋਸਟ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਲੱਭ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਬਣਨ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "ਗਿਸਟ ਡੋਮੇਨ %s ਨਹੀਂ ਲੱਭ ਸਕਿਆ" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਹਾਲਤ ਜਾਂਚ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "ਗਿਸਟ ਡੋਮੇਨ ਦੁਆਰਾ ਸਰਵਰ ਚਾਲੂ ਕਰਨ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "libvirt ਨੂੰ URI %s ਨਾਲ ਜੋੜ ਨਹੀਂ ਸਕਿਆ" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[ਕੋਈ ਨਹੀਂ]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "ਆਟੋਮੈਟਿਕ ਮੁੜ-ਅਕਾਰ" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "ਝਲਕ" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "ਪੂਰਾ ਪਰਦਾ" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "ਕਰਸਰ ਛੱਡੋ" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "ਸਕਰੀਨਸ਼ਾਟ" - -#: ../src/viewer.glade.h:18 +msgstr "ਸਕਰੀਨ-ਸ਼ਾਟ" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "ਸਮਾਰਟ-ਕਾਰਡ ਜੋੜਨਾ" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "ਸਮਾਰਡ-ਕਾਰਡ ਹਟਾਉਣਾ" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "ਫਾਇਲ(_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "ਸਹਾਇਤਾ(_H)" - -#: ../src/viewer.glade.h:20 +msgstr "ਮੱਦਦ(_H)" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "ਪ੍ਰਿੰਟ-ਸਕਰੀਨ(_P)" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "ਕੁੰਜੀ ਭੇਜੋ(_S)" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "ਵੇਖੋ(_V)" -#: ../src/viewer.glade.h:23 +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" -msgstr "ਜ਼ੂਮ(_Z)" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-ਬਾਰੇ" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-ਬੰਦ" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "ਪੇਜ਼ 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "ਪੇਜ਼ 2" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "ਪੇਜ਼ 3" +msgstr "ਜ਼ੂਮ(_Z)" diff --git a/po/pl.po b/po/pl.po index 2b58f5d..8645c52 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,176 +1,197 @@ -# translation of pl.po to Polish -# Piotr Drąg , 2010. -# +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Piotr Drąg , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: pl\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-04 07:50+0000\n" -"PO-Revision-Date: 2011-02-04 12:15+0100\n" -"Last-Translator: Piotr Drąg \n" -"Language-Team: Polish \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s wersja %s\n" - -#: ../src/main.c:53 +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Źródło" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Źródło dowiązania" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Cel" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Cel dowiązania" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Właściwość źródła" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "Właściwość źródła do dowiązania" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Właściwość celu" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "Właściwość celu do dowiązania" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Flagi" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Flagi dowiązania" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer wersja %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Należy wykonać \"" -#: ../src/main.c:56 -msgid "display version information" -msgstr "wyświetla informację o wersji" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "wyświetla więcej informacji" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "bezpośrednie połączenie bez automatycznych tuneli" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "łączy z nadzorcą" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "oczekuje na uruchomienie domeny" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "ponownie łączy z domeną po ponownym uruchomieniu" - -#: ../src/main.c:68 +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Wyświetla informację o wersji" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Wyświetla więcej informacji" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Bezpośrednie połączenie bez automatycznych tuneli" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "Poziom powiększenia okna, w procentach" -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "wyświetla informacje o debugowaniu" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Wyświetla informacje o debugowaniu" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Otwiera połączenie używając komunikacji kontrolera Spice" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- graficzna konsola maszyny wirtualnej" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Użycie: %s [OPCJE] NAZWA-DOMENY|IDENTYFIKATOR|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:830 -#, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "Nie można określić typu grafiki dla gościa %s" - -#: ../src/viewer.c:842 -#, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "Nieznany typ grafiki dla gościa %s" - -#: ../src/viewer.c:852 -#, c-format -msgid "Cannot determine the graphic address for the guest %s" -msgstr "Nie można określić adresu grafiki dla gościa %s" - -#: ../src/viewer.c:861 -#, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "Nie można określić gospodarza dla gościa %s" - -#: ../src/viewer.c:885 -msgid "Connect to ssh failed." -msgstr "Połączenie z ssh nie powiodło się." - -#: ../src/viewer.c:887 -msgid "Can't connect to channel, SSH only supported." -msgstr "Nie można połączyć się z kanałem, obsługiwane jest tylko SSH." - -#: ../src/viewer.c:892 -msgid "Connect to channel unsupported." -msgstr "Łączenie z kanałem jest nieobsługiwane." - -#: ../src/viewer.c:1049 -#, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "Nie można połączyć się z serwerem grafiki %s" - -#: ../src/viewer.c:1096 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "Nie można odnaleźć domeny gościa %s" - -#: ../src/viewer.c:1204 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "Nie można połączyć się z biblioteką libvirt za pomocą adresu URL %s" - -#: ../src/viewer.c:1205 -msgid "[none]" -msgstr "[brak]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"Nie można uwierzytelnić z serwerem VNC na %s\n" -"Nieobsługiwany typ uwierzytelniania %d" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"Nie można uwierzytelnić z serwerem VNC na %s: %s\n" -"Ponownie ponowić połączenie?" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- zdalna przeglądarka klientów" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Poziom powiększenia musi być w zakresie 10-200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Zainicjowanie połączenia się nie powiodło" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Ekran został wyłączony przez kontroler" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Połączenie kontrolera się nie powiodło: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Nie można utworzyć sesji Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Ustawianie sesji Spice..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Nie można ustalić typu połączenia z adresu URI" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Nie można utworzyć sesji dla tego typu: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Zdalny klient zbudowany za pomocą bibliotek GTK-VNC i libvirt" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Klient zdalnego pulpitu zbudowany za pomocą bibliotek GTK-VNC, SPICE-GTK i libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "O programie Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Zespół tłumaczenia Fedory" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -185,160 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Niniejszy program jest wolnym oprogramowaniem; można go rozprowadzać\n" -"dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej\n" -"GNU, wydanej przez Fundację Wolnego Oprogramowania (Free Software\n" -"Foundation) - według wersji drugiej tej Licencji lub którejś z\n" -"późniejszych wersji.\n" -"\n" -"Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on\n" -"użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej\n" -"gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH\n" -"ZASTOSOWAŃ. W celu uzyskania bliższych informacji należy zapoznać\n" -"się z Powszechną Licencją Publiczną GNU.\n" -"\n" -"Z pewnością wraz z niniejszym programem dostarczono także egzemplarz\n" -"Powszechnej Licencji Publicznej GNU (GNU General Public License);\n" -"jeśli nie - proszę napisać do Free Software Foundation, Inc., 51\n" -"Franklin Street, Fifth Floor, Boston, MA 02110-130159 USA.\n" - -#: ../src/about.glade.h:20 +msgstr "Niniejszy program jest wolnym oprogramowaniem; można go rozprowadzać dalej\ni/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej\nprzez Fundację Wolnego Oprogramowania (Free Software Foundation) - według\nwersji drugiej tej Licencji lub którejś z późniejszych wersji.\n\nNiniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny\n- jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji\nPRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu\nuzyskania bliższych informacji należy zapoznać się z Powszechną Licencją\nPubliczną GNU.\n\nZ pewnością wraz z niniejszym programem dostarczono także egzemplarz\nPowszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie\n- proszę napisać do Free Software Foundation, Inc., 59 Temple Place, Suite\n330, Boston, MA 02111-1307 USA.\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "To jest ostatni widoczny ekran. Zakończyć?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Oczekiwanie na ekran %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Nieznany typ grafiki dla gościa %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Połączenie z ssh się nie powiodło." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Nie można połączyć się z kanałem, obsługiwane jest tylko SSH." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Łączenie z kanałem jest nieobsługiwane." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Łączenie z serwerem grafiki" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Domena gościa została wyłączona" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Połączono z serwerem grafiki" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Nie można połączyć się z serwerem grafiki %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Nie można uwierzytelnić z serwerem zdalnego pulpitu w %s: %s\nPonowić połączenie?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Nie można uwierzytelnić z serwerem zdalnego pulpitu: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Błąd przekierowania USB: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "Wymagane jest uwierzytelnienie" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Hasło:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "Nazwa użytkownika:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "etykieta" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s wersja %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Łączy z lokalnym ekranem za pomocą biblioteki libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Łączy z nadzorcą" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Oczekuje na uruchomienie domeny" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Ponownie łączy z domeną po ponownym uruchomieniu" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Otwiera w trybie pełnoekranowym" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Przeglądarka wirtualizacji" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- graficzna konsola maszyny wirtualnej" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nUżycie: %s [OPCJE] NAZWA-DOMENY|IDENTYFIKATOR|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Wybór urządzeń USB do przekierowania" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Nieobsługiwany typ uwierzytelnienia %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Rozłącza" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Wybór urządzenia USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Opuszcza pełny ekran" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Oczekiwanie na ponowne uruchomienie domeny gościa" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Nie można określić typu grafiki dla gościa %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Nie można określić adresu grafiki dla gościa %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Nie można określić gospodarza dla gościa %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Wyszukiwanie domeny gościa" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Oczekiwanie na utworzenie domeny gościa" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Nie można odnaleźć domeny gościa %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Sprawdzanie stanu domeny gościa" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Oczekiwanie na uruchomienie domeny gościa" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Oczekiwanie na uruchomienie serwera domeny gościa" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Nie można połączyć się z biblioteką libvirt za pomocą adresu URL %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[brak]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "Automatyczna zmiana rozmiaru" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Ekrany" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "Pełny ekran" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Zwolnienie kursora" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "Zrzut ekranu" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Włożenie karty smart card" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Usunięcie karty smart card" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_Plik" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "Pomo_c" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "Zrzut _ekranu" - -#: ../src/viewer.glade.h:21 +msgstr "Z_rzut ekranu" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "Wyślij klawi_sz" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "_Widok" -#: ../src/viewer.glade.h:23 +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" msgstr "P_owiększenie" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "strona 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "strona 2" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "strona 3" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..c7899b5 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 2cbf74e..f8a9b64 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,156 +1,197 @@ -# translation of pt_BR.po to Portuguese -# Portuguese translations for PACKAGE package. -# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# Automatically generated, 2010. -# Glaucia Cintra , 2010. +# +# Translators: +# , 2012. msgid "" msgstr "" -"Project-Id-Version: pt_BR\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-22 00:33+0000\n" -"PO-Revision-Date: 2010-01-22 11:25+1000\n" -"Last-Translator: Glaucia Cintra \n" -"Language-Team: Portuguese \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Portuguese (Brazil) \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s verso %s\n" - -#: ../src/main.c:52 +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Fonte" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "A fonte de união" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Alvo" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "O alvo da união" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Propriedade da Fonte" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "A propriedade na fonte para união " + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Propriedade do Alvo" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "A propriedade do alvo a unir" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Bandeiras" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "As bandeiras de união" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer version %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Executar '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "exibir informaes sobre verso" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "exibir informaes sobre verbose" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "conexo direta sem tneis automticos" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "conectar ao hipervisor" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "esperar o domnio iniciar" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "reconectar ao domnio ao reiniciar" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "exibir informaes sobre depurao" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Exibir informações de versão" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Exibir informações de verbose" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Conexão direta com os túneis automáticos" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "Nível de zoom da janela, em porcentagem" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Exibir informações de depuração" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Abrir conexão usando a comunicação do controlador Spice" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- Console grfico de mquina virtual" - -#: ../src/main.c:95 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Uso: %s [OPES] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "No possvel determinar a porta VNC para o convidado %s" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "No possvel determinar o host do VNC para o convidado %s" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "No possvel conectar ao servidor do VNC %s" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"No possvel autenticar com o servidor VNC em %s: %s\n " -"Tentar conexo novamente?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"No possvel autenticar com o servidor do VNC em %s\n " -"Tipo de autenticao no suportada %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "No possvel encontrar domnio do convidado %s" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "No possvel conectar ao libvirt com o URI %s" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[nenhum]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "-Cliente de visualizador remoto" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Nível de zoom deve estar entre 10-200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Falha ao iniciar a conexão " + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Exibir desabilitado pelo controlador" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Conexão de controlador falhou:%s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Não foi possível criar uma sessão Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Configurando uma sessão Spice" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Não foi possíve determinar o tipo de conexão a partir do URI" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Não foi possível criar uma sessão para este tpo: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Um cliente de desktop remoto construdo com o GTK-VNC e libvirt" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Um cliente de desktop remoto construído com o GTK-VNC, SPICE-GTK e libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Sobre o Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" -msgstr "A equipe de Tradues do Fedora" - -#: ../src/about.glade.h:6 +msgstr "A equipe de Tradução do Fedora " + +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -165,150 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Este programa um software livre. Voc pode redistribu-lo e/ou modific-lo \n" -"sob os termos da Licensa Pblica Geral GNU, de acordo com o publicado pela \n" -"Fundao de Software Livre, sendo a verso 2 da Licensa, ou \n" -"(como queira) qualquer outra verso posterior.\n" -"\n" -"Espera-se que este programa seja til, \n" -"porm SEM NENHUMA GARANTIA, at mesmo sem a garantia implicada de \n" -"MERCANTIBILIDADE ou PARA UM PRPSITO ESPECFICO. Veja a \n" -"Licensa Pblica Geral GNU para maiores detalhes. \n" -"\n" -"Uma cpia da Licensa Pblica Geral do GNU deve ter sido anexada n " -" este programam. Caso no tenha recebido, escreva para Free Software \n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \n" - -#: ../src/about.glade.h:20 +msgstr "Este programa é um software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos do GNU - General Public License como publicado pela Fundação de Software Livre; tanto a versão 2 da Licensa quanto (na sua opinião) qualquer versão posterior a esta.\n\nEste programa é distribuído esperando que seja útiil, \nmas SEM NENHUMA GARANTIA; sem até mesmo a garantia implicada de MERCANTIBILIDADE ou SERVIÇO PARA UM PROPÓSITO ESPECÍFICO. Seja GNU - General Public License para mais detalhes. \n\nVocê deve ter recebido uma cópia do GNU - General Public License junto com este programa; Caso não o tenha recebido, escreva para a Fundação de Software Livre, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Este é o último display visível. Você deseja sairt?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Esperando pelo display %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Tipo de gráfico desconhecido para convidados %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Falha ao conectar com o ssh." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Não foi possível conectar o canal, SSH somente suportado." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "A conexão com o canal não é suportada." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Conectando ao servidor de gráfico" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Domínio de convidado precisa ser fechado" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Conectado ao servidor de gráfico" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Incapaz de conectar ao servidor de gráfico %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Incapaz de autenticar com o servidor de desktop remoto em %s: %s Tentar conexão novamente?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Incapaz de autenticar com o servidor remoto: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Erro de redirecionamento do USB:%s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "Autenticao requerida" - -#: ../src/auth.glade.h:2 +msgstr "Autenticação requerida" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Senha:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "Nome do Usurio:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "Nome de usuário:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "rtulo" - -#: ../src/viewer.glade.h:1 +msgstr "rótulo" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s version %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Anexar ao display local usando o libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Conectar ao hypervisor" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Esperar pelo domínio para iniciar" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Reconectar ao domínio no reinício" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Abrir o modo em tela cheia" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Visualizador do Virt" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "Console gráfico da máquina virtual" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nUso: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Selecionar os dispositivos do USB para redirecionamento" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Autenticação não suportada tipo %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Desconectar" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Seleção de dispositivo de USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Deixar tela cheia" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Esperando pelo domínio do convidado para reiniciar" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Não é possível determinar o tipo de gráfico para o convidado %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Não foi possível determinar o endereço do gráfico para o convidado %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Não foi possível determinar o host para os convidados %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Encontrando o domínio do convidado" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Esperando pelo domínio do convidado a ser criado" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Não foi possível encontrar o domínio do convidado %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Verificando o status do domínio do convidado" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Esperando pelo domínio do convidado para iniciar" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Esperando pelo domínio do convidado para iniciar servidor" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Incapaz de conectar ao libvirt com o URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[nenhum]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "redefinio automtica do tamanho" - -#: ../src/viewer.glade.h:2 +msgstr "Redefinição de tamanho automático" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Displays" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "Tela cheia" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Liberar o cursor" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "Screenshot" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Inserção do Smartcard " + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Remoção do Smartcard" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" -msgstr "_File" - -#: ../src/viewer.glade.h:19 +msgstr "_Arquivo" + +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "_Help" - -#: ../src/viewer.glade.h:20 +msgstr "_Ajuda" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "_PrintScreen" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "_Send key" - -#: ../src/viewer.glade.h:22 +msgstr "_Chave de Envio" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "_View" - -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "pgina 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "pgina 2" - +msgstr "_Visualizar" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "_Zoom" diff --git a/po/ru.po b/po/ru.po index d9e765a..f8ef585 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,165 +1,198 @@ -# translation of ru.po to Russian -# Russian translations for fedora package. -# Copyright (C) 2010 THE fedora'S COPYRIGHT HOLDER -# This file is distributed under the same license as the fedora package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. # +# Translators: # Automatically generated, 2010. -# Yulia , 2010. +# Yulia , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: ru\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-12 07:58+0000\n" -"PO-Revision-Date: 2010-01-22 12:25+1100\n" -"Last-Translator: Yulia \n" -"Language-Team: Russian \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s версия %s\n" - -#: ../src/main.c:53 +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Источник" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Первый элемент привязки" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Цель" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Второй элемент привязки" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Свойство источника" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "Свойство первого элемента" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Свойство цели" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "Свойство второго элемента" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Флаги" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Флаги привязки" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer версия %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Выполнить '" -#: ../src/main.c:56 -msgid "display version information" -msgstr "показать версию" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "показать подробную информацию" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "прямое подключение без туннелей" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "подключиться к гипервизору" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "ждать запуска домена" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "заново подключиться к домену после перезапуска" - -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "показать информацию отладки" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Показать версию" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Подробный вывод" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Прямое подключение без туннеля" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "Масштаб окна в процентах" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Показать сообщения диагностики" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Открыть соединение с помощью контроллера Spice" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "— графическая консоль виртуальной машины" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Формат: %s [ПАРАМЕТРЫ] ИМЯ_ДОМЕНА|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:805 -#, fuzzy, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "Не удалось определить порт VNC для гостевой системы %s" - -#: ../src/viewer.c:817 -#, fuzzy, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "Не удалось определить порт VNC для гостевой системы %s" - -#: ../src/viewer.c:824 -#, fuzzy, c-format -msgid "Cannot determine the graphic port for the guest %s" -msgstr "Не удалось определить порт VNC для гостевой системы %s" - -#: ../src/viewer.c:830 -#, fuzzy, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "Не удалось определить узел VNC для гостевой системы %s" - -#: ../src/viewer.c:1006 -#, fuzzy, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "Не удалось подключиться к VNC-серверу %s" - -#: ../src/viewer.c:1053 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "Не удалось найти гостевой домен %s" - -#: ../src/viewer.c:1161 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "Не удалось подключиться к libvirt через URI %s" - -#: ../src/viewer.c:1162 -msgid "[none]" -msgstr "[нет]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"Не удалось авторизоваться на VNC-сервере %s\n" -"Тип аутентификации %d" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"Не удалось авторизоваться на VNC-сервере %s: %s\n" -"Повторить попытку подключения?" +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "— Клиент удаленного просмотра" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Масштаб должен быть в пределах 10-200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Не удалось установить соединение" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Дисплей отключен контроллером" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Ошибка подключения контроллера: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Не удалось создать сеанс Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Инициализация сеанса Spice..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Не удалось определить тип подключения в URI" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Не удалось создать сеанс этого типа: %s" #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: #. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Клиент удалённого рабочего стола включает GTK-VNC и libvirt" - -#: ../src/about.glade.h:2 +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Клиент удаленного рабочего стола построен на основе GTK-VNC, SPICE-GTK и libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" -msgstr "О Glade" - -#: ../src/about.glade.h:3 +msgstr "О Glade" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"© 2007-2008 Daniel P. Berrange\n" -"© 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "(C) 2007-2012 Daniel P. Berrange\n(C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Команда локализации Fedora" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -174,175 +207,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Эта программа является свободным программным обеспечением. \n" -"Разрешается её распространять и изменять в соответствии с условиями\n" -"лицензии GNU General Public License версии 2 или любой более поздней версии,\n" -"опубликованной Фондом свободного программного обеспечения. \n" -"\n" -"Эта программа распространяется в надежде, что она может быть полезной, \n" -"но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ПОДРАЗУМЕВАЕМЫХ ИЛИ ВЫРАЖЕННЫХ ЯВНО,\n" -"ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ \n" -"ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для получения дополнительных сведений\n" -"обратитесь к лицензии GNU General Public License.\n" -"\n" -"Копия лицензии GNU GPL предоставляется вместе с этой программой. \n" -"Если лицензия отсутствует, отправьте письменный запрос по адресу:\n" -"Free Software Foundation, Inc., \n" -"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "Эта программа относится к категории свободного программного обеспечения;\nеё можно распространять и изменять в соответствии с условиями \nлицензии GNU General Public License 2 или любой более поздней версии, \nопубликованной фондом свободного программного обеспечения. \n\nПрограмма распространяется в надежде, что она может быть полезной, \nно БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,\nВ ТОМ ЧИСЛЕ БЕЗ ГАРАНТИЙ КОММЕРЧЕСКОЙ ЦЕННОСТИ И \nПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. \nПодробную информацию можно найти в тексте лицензии GNU. \n\nКопия лицензии GNU предоставляется вместе с этой программой.\nАдрес фонда: Free Software Foundation, \nInc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Это последний экран. Завершить работу?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Ожидание просмотра %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Неизвестный тип графической подсистемы для гостя %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Ошибка соединения ssh." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Не удалось подключиться к каналу. Поддерживается только SSH." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Подключение к каналу не поддерживается." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Подключение к графическому серверу" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Гостевой домен завершил работу" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Установлено соединение с графическим сервером" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Не удалось установить соединение с сервером %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Не удалось пройти аутентификацию на удаленном сервере: %s: %s\nПовторить попытку подключения?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Не удалось пройти аутентификацию на удаленном сервере: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Ошибка перенаправления USB: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "Требуется авторизация" - -#: ../src/auth.glade.h:2 +msgstr "Требуется проверка подлинности" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Пароль:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" -msgstr "Имя пользователя:" - -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +msgstr "Пользователь:" + +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "метка" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s версия %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "Подключиться к локальному графическому сеансу с помощью libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "Подключиться к гипервизору" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Ожидать запуска домена" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Заново подключиться к домену после перезапуска" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Полноэкранный режим" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Просмотр виртуальных систем" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "— графическая консоль виртуальной машины" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nФормат: %s [ПАРАМЕТРЫ] ДОМЕН|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Выбрать устройства USB для перенаправления" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Неподдерживаемый тип аутентификации %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Отключиться" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Выбор устройства USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Выйти из полноэкранного режима" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Ожидание перезапуска гостевого домена" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Не удалось определить тип графической подсистемы для гостя %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Не удалось определить адрес графического интерфейса для гостя %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Не удалось определить хост для гостя %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Поиск гостевого домена" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Ожидание создания гостевого домена" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Гостевой домен %s не найден" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Проверка статуса гостевого домена" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Ожидание запуска гостевого домена" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Ожидание запуска сервера гостевого домена" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Не удалось подключиться к libvirt на URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[нет]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "Изменить размер автоматически" - -#: ../src/viewer.glade.h:2 +msgstr "Автоматически изменить размер" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Экраны" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "На весь экран" - -#: ../src/viewer.glade.h:17 +msgstr "Во весь экран" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Освободить курсор" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "Снимок экрана" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Подключение смарт-карты" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Удаление смарт-карты" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_Файл" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "_Справка" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "_PrintScreen" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "Отправить _ключ" - -#: ../src/viewer.glade.h:22 +msgstr "О_тправить клавишу" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "_Вид" - -#: ../src/viewer.glade.h:23 +msgstr "_Просмотр" + +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" -msgstr "" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "страница 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "страница 2" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "страница 3" - -#: ../src/main.c:68 -msgid "Zoom level of window, in percentage" -msgstr "Уровень увеличения окна, в процентах" - -#: ../src/viewer.c:863 -msgid "Connect to channel unsupported." -msgstr "Подключение к каналу не поддерживается." - -#: ../src/viewer.c:858 -msgid "Can't connect to channel, SSH only supported." -msgstr "Не удалось подключиться к каналу, поддерживается только sshю." - -#: ../src/viewer.c:856 -msgid "Connect to ssh failed." -msgstr "Подключение по ssh не удалось." +msgstr "_Масштаб" diff --git a/po/si.po b/po/si.po new file mode 100644 index 0000000..fae05e7 --- /dev/null +++ b/po/si.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Sinhala (http://www.transifex.net/projects/p/fedora/language/si/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: si\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..6359500 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Slovak (http://www.transifex.net/projects/p/fedora/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/ta.po b/po/ta.po index c391503..9461be9 100644 --- a/po/ta.po +++ b/po/ta.po @@ -1,153 +1,198 @@ +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: +# Felix I , 2012. # I. Felix , 2010. msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-21 06:26+0000\n" -"PO-Revision-Date: 2010-01-29 13:32+0530\n" -"Last-Translator: I. Felix \n" -"Language-Team: ta_IN \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s பதிப்பு %s\n" - -#: ../src/main.c:52 +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "மூலம்" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "பிணைத்தலின் மூலம்" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "இலக்கு" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "பிணைத்தலின் இலக்கு" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "மூல பண்பு" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "பிணைக்க மூலத்தின் குணம்" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "இலக்கு பண்பு" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "பிணைக்க இலக்கின் குணம்" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "கொடிகள்" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "பிணைக்கும் கொடிகள்" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer பதிப்பு %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "இ யக்கு '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "பதிப்புத் தகவலைக் காட்டு" - -#: ../src/main.c:57 -msgid "display verbose information" -msgstr "வெர்போஸ் தகவலைக் காட்டு" - -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "தானான டனர்களுடன் இல்லாத நேரடி இணைப்பு" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "ஹபர்வைருடன் இணை" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "டொமைன் துவங்குவதற்காக காத்திரு" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "மறுதுவக்கும் போது டொமைனுடன் மீண்டும் இணைக்கப்படும்" - -#: ../src/main.c:67 -msgid "display debugging information" -msgstr "பிழைத்திருத்தத் தகவலைக் காட்டு" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "காட்சி பதிப்பு தகவல்" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "காட்சி வெர்போஸ் தகவல்" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "தானியக்க டனல்கள் இல்லாமல் நேரடி இணைப்பு" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "சாளரத்தின் அளவிடும் நிலை, சதவீதத்தில்" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "பிழைத்திருத்த தகவலை காட்டவும்" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "ஸ்பைஸ் கட்டுப்படுத்தி தொடர்பை பயன்படுத்தி இணைப்பை திறக்கவும்" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- உள்ளமை கணினி வரைகலை பணியகம்" - -#: ../src/main.c:95 -#, c-format +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- Remote viewer client" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "அளவிடும் நிலை 10-200-க்குள் இருக்க வேண்டும்\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "இணைப்பை துவக்க முடியவில்லை" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "கட்டுப்படுத்தியால் காட்சி செயல்நீக்கப்பட்டது" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "கட்டுப்படுத்தி இணைப்பு தோல்வியுற்றது: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "ஒரு ஸ்பைஸ் அமர்வை உருவாக்க முடியவில்லை" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "ஸ்பைஸ் அமர்வை அமைக்கிறது..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI-இலிருந்து இணைப்பு வகையை வரையறுக்க முடியாது" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "இந்த வகைக்கு ஒரு அமர்வை உருவாக்க முடியாது: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "ஒரு தொலை பணிமேடை GTK-VNC, SPICE-GTK மற்றும் libvirtஆல் உருவாகப்பட்டது" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "Glade பற்றி" + +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"பயன்பாடு: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "VNC துறையை விருந்தினர் %sகாக வரையறுக்க முடியவில்லை" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "VNC புரவலரை விருந்தினர் %sகாக வரையறுக்க முடியவில்லை" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC ஐ சேவையக %s உடன் இணைக்க முடியவில்லை " - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"VNC சேவையகத்தை %s உடன் அங்கீகரிக்க முடியவில்லை: %s\n" -"இணைப்பை மீண்டும் மறுமுயற்சி செய்யவா?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"VNC சேவையகத்தை %s உடன் அங்கீகரிக்க முடியவில்லை\n" -"துணைபுரியாத அங்கீகார வகை %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "விருந்தினர் டொமைன் %sஐ தேட முடியவில்லை" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "libvirt ஐ URI %s உடன் இணைக்க முடியவில்லை" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[ஒன்றுமில்லாத]" - -#. -#. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 -#. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "ஒரு தொலை பணிமேடை க்ளையன்ட் GTK-VNC மற்றும் libvirt உடன் கட்டுகிறார்" - -#: ../src/about.glade.h:2 -msgid "About Glade" -msgstr "க்லேடைப் பற்றி" - -#: ../src/about.glade.h:3 -msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Fedora மொழிபெயர்ப்பு குழு" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -162,151 +207,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" -"(at your option) any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "This program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "இந்த கடைசி தெரியும் காட்சி. வெளியேற வேண்டுமா?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "காட்சி %d-க்கு காத்திருக்கிறது..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "விருந்தினர் %sக்கான தெரியாத வரைகலை வகை" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh-உடன் இணைக்க முடியவில்லை." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "சேனலுடன் இணைக்க வேண்டாம், SSH மட்டும் துணைபுரிகிறது." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "சேனலுடன் இணைப்பு துணைபுரியவில்லை." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "வரைகலை சேவையகத்துடன் இணைக்கிறது" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "விருந்தினர் டொமைன் நிறுத்தப்பட்டது" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "வரைகலை சேவையகத்துடன் இணைக்கப்பட்டது" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "வரைகலை சேவையகம் %s-க்கு இணைக்க முடியவில்லை" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "தொலை பணிமேடை சேவையகம் %s-இலில் அங்கீகரிக்க முடியவில்லை: %s\nஇணைப்பை மீண்டும் முயற்சிக்கவும்?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "தொலை பணிமேடை சேவையகத்துடன் அங்கீகரிக்க முடியவில்லை: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB மறுதிசையிடல் பிழை: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "அங்கீகாரம் தேவைப்படுகிறது" - -#: ../src/auth.glade.h:2 +msgstr "அங்கீகாரம் தேவை" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "கடவுச்சொல்:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "பயனர்பெயர்:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-ரத்து" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-சரி" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "லேபில்" - -#: ../src/viewer.glade.h:1 +msgstr "லேபிள்" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s பதிப்பு %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt-ஐ பயன்படுத்தி உள்ளமை காட்சிக்கு இணைக்கவும்" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "ஹைபர்வைசருடன் இணைக்கவும்" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "டொமைன் துவக்க காத்திருக்கவும்" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "மறுதுவக்கத்தின்ப்படி டொமைனை மறுஇணைக்கவும்" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "முழுத்திரை முறைமையில் திறக்கவும்" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- உள்ளமை கணினி வரைகலை பணியகம்" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nபயன்பாடு: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "மறுதிசையிட USB சாதனங்களை தேர்ந்தெடுக்கவும்" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "துணைபுரியாத அங்கீகார வகை %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "துண்டி" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB சாதன தேர்வு" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "முழுத்திரையை விட்டுவிலகு" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "மறுதுவக்க விருந்தினர் டொமைனுக்காக காத்திருக்கிறது" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "விருந்தினர் %s-க்கு வரைகலை வகையை வரையறுக்க முடியாது" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "விருந்தினர் %s-க்கு வரைகலை முகவரியை வரையறுக்க முடியாது" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "விருந்தினர் %s-க்கு புரவலனை வரையறுக்க முடியாது" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "விருந்தினர் டொமைனை தேடுகிறது" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "விருந்தினர் டொமைன் உருவாக்க காத்திருக்கிறது" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "விருந்தினர் டொமைன் %sஐ தேட முடியவில்லை" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "விருந்தினர் நிலையை சரிபார்க்கிறது" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "துவக்க விருந்தினர் டொமைனுக்காக காத்திருக்கிறது" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "சேவையகத்தை துவக்க விருந்தினர் டொமைனுக்காக காத்திருக்கிறது" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "libvirt ஐ URI %s உடன் இணைக்க முடியவில்லை" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[ஒன்றுமில்லாத]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "தானாக மறுஅளவிடு" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "காட்சிகள்" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "முழுத்திரை" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "கர்சரை விடு" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "திரைப்பிடிப்பு" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "ஸ்மார்ட் கார்டு நுழைத்தல்" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "ஸ்மார்ட் கார்டு நீக்கல்" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "கோப்பு (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "உதவி (_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "அச்சுத்திரை (_P)" - -#: ../src/viewer.glade.h:21 +msgstr "திரைஅச்சு (_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "அனுப்பும் விசை (_S)" - -#: ../src/viewer.glade.h:22 +msgstr "விசையை அனுப்பு (_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "பார்வை (_V)" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-பற்றி" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-நிறுத்து" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "பக்கம் 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "பக்கம் 2" - - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "அளவிடு (_Z)" diff --git a/po/te.po b/po/te.po index 484709e..5023f58 100644 --- a/po/te.po +++ b/po/te.po @@ -1,154 +1,197 @@ -# translation of virt-viewer.tip.virt-viewer.po to Telugu +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# -# Krishna Babu K , 2010. +# +# Translators: +# Krishna Babu K , 2010, 2012. msgid "" msgstr "" -"Project-Id-Version: virt-viewer.tip.virt-viewer\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 10:20+0000\n" -"PO-Revision-Date: 2010-01-28 16:26+0530\n" -"Last-Translator: Krishna Babu K \n" -"Language-Team: Telugu \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Telugu (http://www.transifex.net/projects/p/fedora/language/te/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s వర్షన్ %s\n" - -#: ../src/main.c:52 +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "మూలం" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "బందనం యొక్క మూలం" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "లక్ష్యం" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "బందనం యొక్క లక్ష్యం" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "మూలపు లక్షణం" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "బందనం చేయుటకు మూలంపైన లక్షణం" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "లక్ష్యం లక్షణం" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "బందనం చేయుటకు లక్ష్యం పైని లక్షణం" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "ఫ్లాగ్స్" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "బందనం ఫ్లాగ్స్" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "రిమోట్-వ్యూయర్ వర్షన్ %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Run '" -#: ../src/main.c:55 -msgid "display version information" -msgstr "వర్షన్ సమాచారమును ప్రదర్శించుము" - -#: ../src/main.c:57 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "వర్షన్ సమాచారం ప్రదర్శించు" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "వెర్బోస్ సమాచారమును ప్రదర్శించుము" -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" msgstr "ఎటువంటి స్వయంచాలక టన్నెల్సు లేకుండా నేరుగా అనుసంధానము" -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "హైపర్విజర్‌కు అనుసంధానమవ్వు" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "ప్రారంభమగుటకు డొమైన్ కొరకు వేచివుండుము" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "పునఃప్రారంభముపై డొమైన్‌కు తిరిగిఅనుసంధానమవ్వు" - -#: ../src/main.c:67 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "విండో యొక్క జూమ్ స్థాయి, శాతంలో" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "డీబగ్గింగ్ సమాచారమును ప్రదర్శించుము" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "స్పైస్ కంట్రోలర్ కమ్యునికేషన్ వుపయోగించి అనుసంధానం తెరువుము" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- వర్చ్యువల్ మిషన్ గ్రాఫికల్ కన్సోల్" - -#: ../src/main.c:95 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"వినియోగము: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "గెస్టు %s కొరకు VNC పోర్టును నిర్ధారించలేదు" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "గెస్టు %s కొరకు VNC హోస్టును నిర్ధారించలేదు" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "VNC సేవిక %sకు అనుసంధానం కాలేక పోయింది" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"%s వద్ద VNC సేవికతో ధృవీకరించలేక పోయింది: %s\n" -"అనుసంధానమును మరలా ప్రయత్నించాలా?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"%s వద్ద VNC సేవికతో దృవీకరించలేక పోయింది\n" -"మద్దతీయని దృవీకరణ రకము %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "గెస్టు డొమైన్‌ %sను కనుగొనలేక పోయింది" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "URI %sతో libvirtకు అనుసంధానం కాలేదు" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[ఏదీకాదు]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- దూరస్థ దర్శని క్లైంట్" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "జూమ్ స్థాయి తప్పకుండా 10-200 మద్య వుండాలి\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "అనుసంధానం సిద్దపరచుటకు విఫలమైంది" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "నియంత్రికచే ప్రదర్శన అచేతనమైంది" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "నియంత్రిక అనుసంధానం విఫలమైంది: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "స్పైస్ సెషన్ సృష్టించలేకపోయింది" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "స్పైస్ సెషన్ అమర్చుచున్నది..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "URI నుండి అనుసంధానం రకంను నిర్థారించలేము" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "ఈ రకము కొరకు సెషన్ సృష్టించలేక పోయింది: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "GTK-VNC మరియు libvirtతో వొక రిమోట్ డెస్కుటాప్ క్లైంట్ నిర్మించబడింది" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "GTK-VNC, SPICE-GTK మరియు libvirtతో నిర్మించబడిన వొక రిమోట్ డెస్కుటాప్ క్లైంట్" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "గ్లేడ్ గురించి" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Fedora అనువాద సమూహం" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,150 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"ఈ ప్రోగ్రామ్ ఉచిత సాఫ్టువేర్; ఉచిత సాఫ్టువేర్ సంస్థ తరుపున ప్రచురితమైన\n" -"GNU జనరల్ పబ్లిక్ లైసెన్సు కు లోబడి దీనిని మీరు పునఃపంపిణి మరియు/లేదా\n" -"సవరణ చేయవచ్చు; మీరు అనుసరించవలిసినది లైసెన్సు యొక్క వర్షన్ 2, లేదా\n" -"(మీ ఐచ్చికం వద్ద) దాని తరువాతి వర్షన్ కాని.\n" -"\n" -"పవర్ నిర్వాహకి అది ఉపయోగపడుతుందనే నమ్మకం తో పంపిణీ చేయబడింది,\n" -"అయితే ఏ హామి లేదు; వ్యాపారసంబంధితంగా కాని లేదా ప్రతిపాదిత ప్రయోజనం కొరకు\n" -"కాని హామీ లేదు. అధికవివరములకొరకు GNU జనరల్ పబ్లిక్ లైసెన్సు ను\n" -"చూడండి.\n" -"\n" -"ఈ ప్రోగ్రామ్ తో మీరు GNU జనరల్ పబ్లిక్ లైసెన్సు నకలు ను పొంది ఉంటారు;\n" -"పొందకపోతే, Free Software Foundation, Inc., Temple Place,\n" -"Suite 330, Boston, MA 02111-1307 USAకు వ్రాయండి.\n" - -#: ../src/about.glade.h:20 +msgstr "ఈ ప్రోగ్రామ్ ఉచిత సాఫ్టువేర్; ఉచిత సాఫ్టువేర్ సంస్థ తరుపున ప్రచురితమైన\nGNU జనరల్ పబ్లిక్ లైసెన్సు కు లోబడి దీనిని మీరు పునఃపంపిణి మరియు/లేదా\nసవరణ చేయవచ్చు; మీరు అనుసరించవలిసినది లైసెన్సు యొక్క వర్షన్ 2, లేదా\n(మీ ఐచ్చికం వద్ద) దాని తరువాతి వర్షన్ కాని.\n\nపవర్ నిర్వాహకి అది ఉపయోగపడుతుందనే నమ్మకం తో పంపిణీ చేయబడింది,\nఅయితే ఏ హామి లేదు; వ్యాపారసంబంధితంగా కాని లేదా ప్రతిపాదిత ప్రయోజనం కొరకు\nకాని హామీ లేదు. అధికవివరములకొరకు GNU జనరల్ పబ్లిక్ లైసెన్సు ను\nచూడండి.\n\nఈ ప్రోగ్రామ్ తో మీరు GNU జనరల్ పబ్లిక్ లైసెన్సు నకలు ను పొంది ఉంటారు;\nపొందకపోతే, Free Software Foundation, Inc., Temple Place,\nSuite 330, Boston, MA 02111-1307 USAకు వ్రాయండి.\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "ఇది ఆఖరి దృశ్య ప్రదర్శన. మీరు నిష్క్రమించాలని అనుకొనుచున్నారా?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "ప్రదర్శన %d కొరకు వేచివుంది..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "అతిథి %s కొరకు తెలియని గ్రాఫిక్ రకం" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "ssh క్షేత్రముకు అనుసంధానించు." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "చానల్‌కు అనుసంధానం కాలేదు, SSH కు మాత్రమే తోడ్పాటు నిస్తోంది." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "చానల్ అనుసంధానంకు తోడ్పాటులేదు." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "గ్రాఫిక్ సేవికకు అనుసంధానమౌతోంది" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "అతిథి డొమైన్ మూసివేసింది" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "గ్రాఫిక్ సేవికకు అనుసంధానమైంది" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "గ్రాఫిక్ సేవిక %sకు అనుసంధానం కాలేక పోయింది" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "%s వద్ద రిమోట్ డెస్కుటాప్ సేవికతో ధృవీకరించలేక పోయింది: %s\nఅనుసంధానముకు మరలా ప్రయత్నించాలా?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "రిమోట్ డెస్కుటాప్ సేవికతో ధృవీకరించలేక పోయింది: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB రీడైరెక్షన్ దోషం: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "ధృవీకరణము అవసరమైంది" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "సంకేతపదము:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "వినియోగదారినామము:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "లేబుల్" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s వర్షన్ %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "libvirt వుపయోగించి స్థానిక ప్రదర్శనకు అనుబందించు" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "హైపర్విజర్‌కు అనుసంధానమవ్వు" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "ప్రారంభమగుటకు డొమైన్ కొరకు వేచివుండుము" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "పునఃప్రారంభముపై డొమైన్‌కు తిరిగిఅనుసంధానమవ్వు" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "నిండు తెర రీతిలో తెరువుము" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "వర్ట్ వ్యూయర్" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- వర్చ్యువల్ మిషన్ గ్రాఫికల్ కన్సోల్" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nవినియోగము: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "రీడైరెక్షన్ కొరకు USB పరికరాలను యెంపికచేయి" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "మద్దతీయని దృవీకరణ రకము %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "అననుసంధానించు" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB పరికర యెంపిక" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "నిండుతెర విడు" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "అతిథి డొమైన్ పునఃప్రారంభం కొరకు వేచివుంది" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "అతిథి %s కొరకు గ్రాఫిక్ రకంను నిర్థారించలేక పోయింది" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "అతిథి %s కొరకు గ్రాఫిక్ చిరునామా నిర్ధారించలేదు" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "అతిథి %s కొరకు అతిథేయను నిర్ధారించలేదు" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "అతిథి డొమైన్‌ కనుగొనుచున్నది" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "అతిథి డొమైన్ సృష్టించబడుటకు వేచివుంది" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "అతిథి డొమైన్‌ %sను కనుగొనలేక పోయింది" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "అతిథి డొమైన్‌ స్థితి పరిశీలిస్తోంది" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "అతిథి డొమైన్ ప్రారంభమగుటకు వేచివుంది" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "అతిథి డొమైన్ సేవికను ప్రారంభించుట కొరకు వేచివుంది" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "URI %sతో libvirtకు అనుసంధానం కాలేదు" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[ఏదీకాదు]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "స్వయంచాలకంగా పునఃపరిమాణము" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "ప్రదర్శనలు" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "నిండు తెర" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "సూచీ విడుదలచేయి" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "స్క్రీన్‌షాట్" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "స్మార్టుకార్డ్ చొప్పింత" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "స్మార్టుకార్డ్ తీసివేత" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "ఫైలు (_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "సహాయము(_H)" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "ప్రింట్‌స్క్రీన్ (_P)" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "పంపు కీ(_S)" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "దర్శించు (_V)" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "పేజీ 1" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "పేజీ 2" - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "జూమ్ (_Z)" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..c73946c --- /dev/null +++ b/po/tr.po @@ -0,0 +1,557 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: virt-viewer\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Turkish (http://www.transifex.net/projects/p/fedora/language/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 +msgid "Run '" +msgstr "" + +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + +#. Setup command line options +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:2 +msgid "About Glade" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:3 +msgid "" +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "" + +#: ../src/virt-viewer-about.xml.h:5 +msgid "The Fedora Translation Team" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:6 +msgid "" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 2 of the License, or\n" +"(at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" +msgstr "" + +#: ../src/virt-viewer-about.xml.h:20 +msgid "virt-manager.org" +msgstr "" + +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 +msgid "Authentication required" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:2 +msgid "Password:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:3 +msgid "Username:" +msgstr "" + +#: ../src/virt-viewer-auth.xml.h:4 +msgid "label" +msgstr "" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr "" + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 +msgid "Automatically resize" +msgstr "" + +#: ../src/virt-viewer.xml.h:2 +msgid "Ctrl+Alt+F11" +msgstr "" + +#: ../src/virt-viewer.xml.h:3 +msgid "Ctrl+Alt+F12" +msgstr "" + +#: ../src/virt-viewer.xml.h:4 +msgid "Ctrl+Alt+F1_0" +msgstr "" + +#: ../src/virt-viewer.xml.h:5 +msgid "Ctrl+Alt+F_1" +msgstr "" + +#: ../src/virt-viewer.xml.h:6 +msgid "Ctrl+Alt+F_2" +msgstr "" + +#: ../src/virt-viewer.xml.h:7 +msgid "Ctrl+Alt+F_3" +msgstr "" + +#: ../src/virt-viewer.xml.h:8 +msgid "Ctrl+Alt+F_4" +msgstr "" + +#: ../src/virt-viewer.xml.h:9 +msgid "Ctrl+Alt+F_5" +msgstr "" + +#: ../src/virt-viewer.xml.h:10 +msgid "Ctrl+Alt+F_6" +msgstr "" + +#: ../src/virt-viewer.xml.h:11 +msgid "Ctrl+Alt+F_7" +msgstr "" + +#: ../src/virt-viewer.xml.h:12 +msgid "Ctrl+Alt+F_8" +msgstr "" + +#: ../src/virt-viewer.xml.h:13 +msgid "Ctrl+Alt+F_9" +msgstr "" + +#: ../src/virt-viewer.xml.h:14 +msgid "Ctrl+Alt+_Backspace" +msgstr "" + +#: ../src/virt-viewer.xml.h:15 +msgid "Ctrl+Alt+_Del" +msgstr "" + +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "" + +#: ../src/virt-viewer.xml.h:17 +msgid "Full screen" +msgstr "" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "" + +#: ../src/virt-viewer.xml.h:19 +msgid "Screenshot" +msgstr "" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "" + +#: ../src/virt-viewer.xml.h:23 +msgid "_File" +msgstr "" + +#: ../src/virt-viewer.xml.h:24 +msgid "_Help" +msgstr "" + +#: ../src/virt-viewer.xml.h:25 +msgid "_PrintScreen" +msgstr "" + +#: ../src/virt-viewer.xml.h:26 +msgid "_Send key" +msgstr "" + +#: ../src/virt-viewer.xml.h:27 +msgid "_View" +msgstr "" + +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "" diff --git a/po/uk.po b/po/uk.po index 0b23d63..54586d0 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1,183 +1,197 @@ -# Ukrainian translation to virt-viewer. -# Copyright (C) Free Software Foundation -# This file is distributed under the same license as the virt-viewer package. -# -# Maxim Dziumanenko , 2003-2010. -# Yuri Chornoivan , 2011. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Yuri Chornoivan , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-08 07:51+0000\n" -"PO-Revision-Date: 2011-02-08 18:30+0200\n" -"Last-Translator: Yuri Chornoivan \n" -"Language-Team: Ukrainian \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: uk" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s версія %s\n" - -#: ../src/main.c:53 +"Language: uk\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "Джерело" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "Початковий об’єкт прив’язки" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "Призначення" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "Об’єкт призначення прив’язування" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "Властивість джерела" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "Властивість джерела прив’язування" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "Властивість призначення" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "Властивість призначення прив’язування" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "Прапорці" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "Прапорці прив’язування" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer версії %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "Виконати '" -#: ../src/main.c:56 -msgid "display version information" -msgstr "показати інформацію щодо версії" - -#: ../src/main.c:58 -msgid "display verbose information" -msgstr "показати докладну інформацію" - -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" -msgstr "пряме з'єднання без тунелів" - -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "з'єднатися з гіпервізором" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "чекати на запуск служби" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "заново приєднатися до домену після перезапуску" - -#: ../src/main.c:68 +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" +msgstr "Показати інформацію щодо версії" + +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" +msgstr "Показати докладну інформацію" + +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "Пряме з’єднання без тунелів" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "Масштаб вікна, у відсотках" -#: ../src/main.c:70 -msgid "display debugging information" -msgstr "показати діагностичну інформацію" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" +msgstr "Показати діагностичну інформацію" + +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "Встановити з’єднання за допомогою обміну даними з контролером Spice" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "— графічна консоль віртуальної машини" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Формат: %s [ПАРАМЕТРИ] НАЗВА_ДОМЕНУ|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:830 -#, c-format -msgid "Cannot determine the graphic type for the guest %s" -msgstr "Не вдалося визначити тип графічної підсистеми для гостьової системи %s" - -#: ../src/viewer.c:842 -#, c-format -msgid "Unknown graphic type for the guest %s" -msgstr "Невідомий тип графічної підсистеми для гостьової системи %s" - -#: ../src/viewer.c:852 -#, c-format -msgid "Cannot determine the graphic address for the guest %s" -msgstr "" -"Не вдалося визначити адресу графічного інтерфейсу для гостьової системи %s" - -#: ../src/viewer.c:861 -#, c-format -msgid "Cannot determine the host for the guest %s" -msgstr "Не вдалося визначити вузол для гостьової системи %s" - -#: ../src/viewer.c:885 -msgid "Connect to ssh failed." -msgstr "Спроба встановлення з’єднання ssh зазнала невдачі." - -#: ../src/viewer.c:887 -msgid "Can't connect to channel, SSH only supported." -msgstr "Не вдалося встановити з’єднання з каналом, підтримується лише SSH." - -#: ../src/viewer.c:892 -msgid "Connect to channel unsupported." -msgstr "Встановлення з’єднання з каналом не підтримується." - -#: ../src/viewer.c:1049 -#, c-format -msgid "Unable to connect to the graphic server %s" -msgstr "Не вдалося встановити з’єднання з графічним сервером %s" - -#: ../src/viewer.c:1096 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "Не вдалося знайти гостьовий домен %s" - -#: ../src/viewer.c:1204 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "Не вдається встановити з’єднання з libvirt за адресою URI %s" - -#: ../src/viewer.c:1205 -msgid "[none]" -msgstr "[немає]" - -#: ../src/display-vnc.c:142 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"Не вдалося пройти розпізнавання на VNC-сервері %s\n" -"Тип розпізнавання %d не підтримується" - -#: ../src/display-vnc.c:158 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"Не вдалося пройти розпізнавання на сервері VNC %s: %s\n" -"Повторити спробу встановлення з’єднання?" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "— клієнтська програма віддаленого перегляду" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "Масштаб слід вказувати у діапазоні від 10 до 200\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "Не вдалося започаткувати з’єднання" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "Екран вимкнено контролером" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "Помилка з’єднання з контролером: %s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "Не вдалося створити сеанс Spice" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "Налаштування сеансу Spice…" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "Не вдалося визначити тип з’єднання за адресою" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "Не вдалося створити сеанс цього типу: %s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "Клієнт віддаленого робочого столу включає GTK-VNC та libvirt" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "Клієнтську частину віддаленого керування стільницею побудовано на основі GTK-VNC, SPICE-GTK та libvirt" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "Про Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"© 2007-2008 Daniel P. Berrange\n" -"© 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "© Daniel P. Berrange, 2007–2012\n© Red Hat, Inc., 2007–2012" + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Команда локалізації Fedora" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -192,157 +206,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"Ця програма є вільним програмним забезпеченням; ви можете поширювати її " -"і/або змінювати її за умов дотримання GNU General Public License у тому " -"вигляді, у якому її оприлюднено Free Software Foundation; версії 2 цієї " -"ліцензії, або (за потреби) будь-якої пізнішої версії\n" -"\n" -"Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ-" -"ЯКИХ ГАРАНТІЙ; навіть без очевидної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ або " -"ПРИДАТНОСТІ ДЛЯ ЯКОЇСЬ МЕТИ Докладніше про це ви можете дізнатися з \n" -"GNU General Public License\n" -"Разом з цією програмою ви маєте отримати копію GNU General Public License " -"Якщо ви її не отримали, повідомте про це на адресу Free Software\n" -"Foundation, Inc, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: ../src/about.glade.h:20 +msgstr "Ця програма є вільним програмним забезпеченням; ви можете поширювати її і/або змінювати її за умов дотримання GNU General Public License у тому вигляді, у якому її оприлюднено Free Software Foundation; версії 2 цієї ліцензії, або (за потреби) будь-якої пізнішої версії\n\nЦя програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ; навіть без очевидної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ або ПРИДАТНОСТІ ДЛЯ ЯКОЇСЬ МЕТИ Докладніше про це ви можете дізнатися з \nGNU General Public License\nРазом з цією програмою ви маєте отримати копію GNU General Public License Якщо ви її не отримали, повідомте про це на адресу Free Software\nFoundation, Inc, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "Це останній видимий екран. Завершити роботу програми?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "Очікування на показ %d…" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "Невідомий тип графічної підсистеми для гостьової системи %s" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "Спроба встановлення з’єднання ssh зазнала невдачі." + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "Не вдалося встановити з’єднання з каналом, підтримується лише SSH." + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "Встановлення з’єднання з каналом не підтримується." + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "Встановлення з’єднання з графічним сервером" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "Гостьовий домен завершив роботу" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "Встановлено з’єднання з графічним сервером" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "Не вдалося встановити з’єднання з графічним сервером %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "Не вдалося пройти розпізнавання на сервері віддаленої стільниці %s: %s\nПовторити спробу встановлення з’єднання?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "Не вдалося пройти розпізнавання на сервері віддаленої стільниці: %s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "Помилка переспрямування USB: %s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" msgstr "Потрібно пройти розпізнавання" -#: ../src/auth.glade.h:2 +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "Пароль:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "Користувач:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" -msgstr "етикетка" - -#: ../src/viewer.glade.h:1 +msgstr "мітка" + +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s версія %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "З’єднатися з локальним графічним сеансом за допомогою libvirt" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "З’єднатися з гіпервізором" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "Чекати на запуск служби" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "Заново приєднатися до домену після перезапуску" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "Відкрити у повноекранному режимі" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Перегляд віртуальних систем" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "— графічна консоль віртуальної машини" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\nФормат: %s [ПАРАМЕТРИ] НАЗВА_ДОМЕНУ|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "Виберіть пристрої USB для переспрямування" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "Непідтримуваний тип розпізнавання %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "Від’єднатися" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "Вибір пристрою USB" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "Вийти з повноекранного режиму" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s — %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "Очікування на перезапуск гостьового домену" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "Не вдалося визначити тип графічної підсистеми для гостьової системи %s" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "Не вдалося визначити адресу графічного інтерфейсу для гостьової системи %s" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "Не вдалося визначити вузол для гостьової системи %s" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "Пошук гостьового домену" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "Очікування на створення гостьового домену" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "Не вдалося знайти гостьовий домен %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "Перевірка стану гостьового домену" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "Очікування на запуск гостьового домену" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "Очікування на запуск сервера гостьового домену" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "Не вдається встановити з’єднання з libvirt за адресою URI %s" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[немає]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "Змінити розмір автоматично" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "Екрани" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" -msgstr "На весь екран" - -#: ../src/viewer.glade.h:17 +msgstr "Повноекранний" + +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "Вивільнити вказівник" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "Знімок екрана" - -#: ../src/viewer.glade.h:18 +msgstr "Знімок вікна" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "Вставлення картки пам’яті" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "Вилучення картки пам’яті" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "_Файл" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" msgstr "_Довідка" -#: ../src/viewer.glade.h:20 +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" msgstr "_PrintScreen" -#: ../src/viewer.glade.h:21 +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" msgstr "_Надіслати клавішу" -#: ../src/viewer.glade.h:22 +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "_Вигляд" - -#: ../src/viewer.glade.h:23 +msgstr "П_ерегляд" + +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" msgstr "_Масштаб" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "сторінка 1" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "сторінка 2" - -#: ../src/viewer.glade.h:28 -msgid "page 3" -msgstr "сторінка 3" - diff --git a/po/zh_CN.po b/po/zh_CN.po index cca42a0..77519a0 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,159 +1,199 @@ -# translation of zh_CN.po to Simplified Chinese -# Chinese translations for virt-viewer package -# virt-viewer 软件包的简体中文翻译. -# Copyright (C) 2010 Free Software Foundation, Inc. -# This file is distributed under the same license as the virt-viewer package. -# +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Aron Xu , 2010. # Leah Liu , 2010. -# Aron Xu , 2010. +# Wei Liu , 2012. msgid "" msgstr "" -"Project-Id-Version: zh_CN\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-29 18:51+0000\n" -"PO-Revision-Date: 2010-09-30 16:45+0800\n" -"Last-Translator: Aron Xu \n" -"Language-Team: Chinese (simplified) \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Chinese (China) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s 版本 %s\n" - -#: ../src/main.c:53 +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "源" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "捆绑的源" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "目标" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "捆绑的目标" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "源属性" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "要捆绑的源的属性" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "目标属性" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "要捆绑的目标的属性" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "标记" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "捆绑标记" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer 版本 %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "运行 '" -#: ../src/main.c:56 -msgid "display version information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" msgstr "显示版本信息" -#: ../src/main.c:58 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "显示详细信息" -#: ../src/main.c:60 -msgid "direct connection with no automatic tunnels" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" msgstr "无自动通道的直接连接" -#: ../src/main.c:62 -msgid "connect to hypervisor" -msgstr "连接到管理程序" - -#: ../src/main.c:64 -msgid "wait for domain to start" -msgstr "等待域启动" - -#: ../src/main.c:66 -msgid "reconnect to domain upon restart" -msgstr "重启后重新连接到该域" - -#: ../src/main.c:68 +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 msgid "Zoom level of window, in percentage" msgstr "窗口缩放级别,以百分比计" -#: ../src/main.c:70 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "显示调试信息" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "使用 Spice 控制器沟通打开连接" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:82 -msgid "- Virtual machine graphical console" -msgstr "- 虚拟机图形控制台" - -#: ../src/main.c:98 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"用法:%s [选项] 域名|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:909 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "无法为客户端 %s 确定 VNC 端口" - -#: ../src/viewer.c:915 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "无法为客户端 %s 确定 VNC 主机" - -#: ../src/viewer.c:1015 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "无法连接到 VNC 服务器 %s" - -#: ../src/viewer.c:1032 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"无法在 %s: %s 使用 VNC 服务器验证\n" -"重新尝试连接?" - -#: ../src/viewer.c:1050 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"无法在 %s 使用 VNC 服务器验证\n" -"不支持验证类型 %d" - -#: ../src/viewer.c:1142 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "无法找到客户端域 %s" - -#: ../src/viewer.c:1246 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "无法使用 URI %s 连接到 libvirt" - -#: ../src/viewer.c:1247 -msgid "[none]" -msgstr "[无]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "远程 viewer 客户端" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "缩放等级必须在 10-200 之间\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "初始化连接失败" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "显示控制器禁用的" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "控制器连接失败:%s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "无法生成 Spice 会话" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "设置 Spice 会话......" + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "无法确定 URI 的连接类型" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "无法为此类型生成会话:%s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "内置 GTK-VNC 和 libvirt 的远程桌面客户端" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "使用 GTK-VNC, SPICE-GTK 和 libvirt 构建远程桌面客户端" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "关于 Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"版权所有 2007-2008 Daniel P. Berrange\n" -"版权所有 2007-2008 红帽公司" - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "版权所有 (C) 2007-2012 Daniel P. Berrange\n版权所有 (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Fedora 翻译团队" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -168,153 +208,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"这个程序是免费软件。您可以根据自由软件基金\n" -"发布的 GNU 通用公共许可证版本 2 或者之后的版本\n" -"中的条款重新发布和/或者修改\n" -"这个软件。 \n" -"\n" -"这个程序的发布是希望它能对您\n" -"有所帮助,但并不保证对您有用,\n" -"甚至不包含用于特殊目的的适销性或者适用性保证。\n" -"详情请查看 GNU 通用公共许可证。\n" -"\n" -"这个程序应该附带有一份 GNU 通用公共许可证副本。\n" -"如果没有,请致函自由软件基金有限公司,\n" -"地址 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "本程序是免费软件,您可以根据自由软件基金发布的 GNU 通用公共许可证版本 2 或(您认为合适的)之后的版本重新发布和(/或)修改这个软件。\n\n发布本程序是希望它\n对您有帮助,但不做任何保证,\n也不保证可用于商业或适合特定目的。\n详情请查看 GNU 通用公共许可证。\n\n本程序附带 GNU 通用公共许可证;\n如果没有,请致电自由软件基金\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA⏎ \n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "这是最后的可见画面。您要退出吗?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "等待画面 %d......" + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "虚拟机 %s 的未知图形类型" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "连接到 ssh 失败" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "无法连接到通道,只支持 SSH。" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "无法连接到不支持的通道。" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "正在连接到图形服务器" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "已关闭虚拟机域" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "已连接到图形服务器" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "无法连接到图形服务器 %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "无法使用 %s 中的远程桌面服务器验证:%s\n重新尝试连接?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "无法使用远程桌面服务器验证:%s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB 重新定向错误:%s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "需要验证" - -#: ../src/auth.glade.h:2 +msgstr "所需验证" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "密码:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "用户名:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "标签" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s 版本 %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "使用 libvirt 附加本地画面" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "连接到管理程序(hypervisor)" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "等待域启动" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "重启后重新连接到域" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "使用全屏模式打开" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt Viewer" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- 虚拟机图形控制台" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\n用法:%s [选项] 域名|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "为重新定向选择 USB 设备" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "不支持的验证类型 %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "断开连接" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB 设备选择" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "离开全屏" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "等待虚拟机域重启" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "无法确定虚拟机 %s 的图形类型" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "无法确定虚拟机 %s 的图形地址" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "无法确定虚拟机 %s 的主机" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "正在查找虚拟机域" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "正在等待生成虚拟机域" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "无法找到客户端域 %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "正在检查虚拟机域状态" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "正在等待虚拟机域启动" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "正在等待虚拟机域启动服务器" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "无法使用 URI %s 连接到 libvirt" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[无]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" msgstr "自动重新定义大小" -#: ../src/viewer.glade.h:2 +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "画面" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "全屏" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "释放光标" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" msgstr "截屏" -#: ../src/viewer.glade.h:18 +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "插入智能卡" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "删除智能卡" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" -msgstr "文件(_F)" - -#: ../src/viewer.glade.h:19 +msgstr "文件(_F)" + +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "帮助(_H)" - -#: ../src/viewer.glade.h:20 +msgstr "帮助(_H)" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "打印屏幕内容(_P)" - -#: ../src/viewer.glade.h:21 +msgstr "打印屏幕(_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "发送组合键(_S)" - -#: ../src/viewer.glade.h:22 +msgstr "发送按键(_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" -msgstr "查看(_V)" - -#: ../src/viewer.glade.h:23 +msgstr "查看(_V)" + +#: ../src/virt-viewer.xml.h:28 msgid "_Zoom" -msgstr "缩放(_Z)" - -#: ../src/viewer.glade.h:24 -msgid "gtk-about" -msgstr "" - -#: ../src/viewer.glade.h:25 -msgid "gtk-quit" -msgstr "" - -#: ../src/viewer.glade.h:26 -msgid "page 1" -msgstr "第一页" - -#: ../src/viewer.glade.h:27 -msgid "page 2" -msgstr "第二页" +msgstr "缩放(_Z)" diff --git a/po/zh_TW.po b/po/zh_TW.po index 460bf69..4cb95db 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1,154 +1,198 @@ -# translation of zh_TW.po to Traditional Chinese -# translation of zh_TW.po to +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# +# Translators: # Terry Chuang , 2010. +# Terry Chuang , 2012. msgid "" msgstr "" -"Project-Id-Version: zh_TW\n" +"Project-Id-Version: virt-viewer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-22 00:33+0000\n" -"PO-Revision-Date: 2010-01-22 16:31+1000\n" -"Last-Translator: Terry Chuang \n" -"Language-Team: Traditional Chinese \n" +"POT-Creation-Date: 2012-04-25 15:50+0100\n" +"PO-Revision-Date: 2012-04-25 14:50+0000\n" +"Last-Translator: Daniel Berrange \n" +"Language-Team: Chinese (Taiwan) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: ../src/main.c:34 -#, c-format -msgid "%s version %s\n" -msgstr "%s version %s\n" - -#: ../src/main.c:52 +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../src/gbinding.c:637 +msgid "Source" +msgstr "來源" + +#: ../src/gbinding.c:638 +msgid "The source of the binding" +msgstr "綁定的來源" + +#: ../src/gbinding.c:652 +msgid "Target" +msgstr "目標" + +#: ../src/gbinding.c:653 +msgid "The target of the binding" +msgstr "綁定的目標" + +#: ../src/gbinding.c:668 +msgid "Source Property" +msgstr "來源屬性" + +#: ../src/gbinding.c:669 +msgid "The property on the source to bind" +msgstr "欲綁定之來源的屬性" + +#: ../src/gbinding.c:684 +msgid "Target Property" +msgstr "目標屬性" + +#: ../src/gbinding.c:685 +msgid "The property on the target to bind" +msgstr "欲綁定之目標的屬性" + +#: ../src/gbinding.c:699 +msgid "Flags" +msgstr "旗標" + +#: ../src/gbinding.c:700 +msgid "The binding flags" +msgstr "綁定旗標" + +#: ../src/remote-viewer-main.c:47 +#, c-format +msgid "remote-viewer version %s\n" +msgstr "remote-viewer 版本 %s\n" + +#: ../src/remote-viewer-main.c:69 +#, c-format +msgid "Invalid full-screen argument: %s" +msgstr "" + +#. Create the widgets +#: ../src/remote-viewer-main.c:104 +msgid "Connection details" +msgstr "" + +#: ../src/remote-viewer-main.c:119 +msgid "URL:" +msgstr "" + +#: ../src/remote-viewer-main.c:127 +msgid "Recent connections:" +msgstr "" + +#: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60 msgid "Run '" msgstr "執行 '" -#: ../src/main.c:55 -msgid "display version information" +#: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63 +msgid "Display version information" msgstr "顯示版本資訊" -#: ../src/main.c:57 -msgid "display verbose information" +#: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65 +msgid "Display verbose information" msgstr "顯示詳細資訊" -#: ../src/main.c:59 -msgid "direct connection with no automatic tunnels" -msgstr "無自動 tunnel 直接連線" - -#: ../src/main.c:61 -msgid "connect to hypervisor" -msgstr "連至 hypervisor" - -#: ../src/main.c:63 -msgid "wait for domain to start" -msgstr "等待網域啟動" - -#: ../src/main.c:65 -msgid "reconnect to domain upon restart" -msgstr "重新啟動後重新連至網域" - -#: ../src/main.c:67 -msgid "display debugging information" +#: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67 +msgid "Direct connection with no automatic tunnels" +msgstr "無自動穿隧的直接連線" + +#: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77 +msgid "Zoom level of window, in percentage" +msgstr "視窗放大等級,單位為百分比" + +#: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79 +msgid "Display debugging information" msgstr "顯示除錯資訊" +#: ../src/remote-viewer-main.c:219 +msgid "Open in full screen mode (=)" +msgstr "" + +#: ../src/remote-viewer-main.c:222 +msgid "Open connection using Spice controller communication" +msgstr "透過 Spice 控制器通訊來開啟連線" + +#: ../src/remote-viewer-main.c:249 +msgid "Remote Viewer" +msgstr "" + #. Setup command line options -#: ../src/main.c:79 -msgid "- Virtual machine graphical console" -msgstr "- 虛擬機器圖形化主控台" - -#: ../src/main.c:95 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" -msgstr "" -"\n" -"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" -"\n" -"%s\n" -"\n" - -#: ../src/viewer.c:878 -#, c-format -msgid "Cannot determine the VNC port for the guest %s" -msgstr "無法判斷客座端 %s 的 VNC 連接埠" - -#: ../src/viewer.c:884 -#, c-format -msgid "Cannot determine the VNC host for the guest %s" -msgstr "無法判斷客座端 %s 的 VNC 連接埠" - -#: ../src/viewer.c:984 -#, c-format -msgid "Unable to connect to the VNC server %s" -msgstr "無法連上 VNC 伺服器 %s" - -#: ../src/viewer.c:1001 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s: %s\n" -"Retry connection again?" -msgstr "" -"無法在 %s: %s 上以 VNC 伺服器進行驗證\n" -"是否重新嘗試連線?" - -#: ../src/viewer.c:1019 -#, c-format -msgid "" -"Unable to authenticate with VNC server at %s\n" -"Unsupported authentication type %d" -msgstr "" -"無法在 %s 上以 VNC 伺服器進行驗證\n" -"不受支援的驗證類型 %d" - -#: ../src/viewer.c:1111 -#, c-format -msgid "Cannot find guest domain %s" -msgstr "找不到客座端網域 %s" - -#: ../src/viewer.c:1213 -#, c-format -msgid "Unable to connect to libvirt with URI %s" -msgstr "無法透過 URI %s 與 libvirt 連線" - -#: ../src/viewer.c:1214 -msgid "[none]" -msgstr "[none]" - -#. +#: ../src/remote-viewer-main.c:252 +msgid "- Remote viewer client" +msgstr "- 院端檢視器客戶端" + +#: ../src/remote-viewer-main.c:275 +#, c-format +msgid "Error: extra arguments given while using Spice controller\n" +msgstr "" + +#: ../src/remote-viewer-main.c:284 +#, c-format +msgid "Error: can't handle multiple URIs\n" +msgstr "" + +#: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125 +#, c-format +msgid "Zoom level must be within 10-200\n" +msgstr "放大等級必須介於 10-200 之間\n" + +#: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784 +msgid "Failed to initiate connection" +msgstr "初始化連線失敗" + +#: ../src/remote-viewer.c:250 +msgid "Display disabled by controller" +msgstr "畫面已被控制器停用" + +#: ../src/remote-viewer.c:697 +#, c-format +msgid "Controller connection failed: %s" +msgstr "控制器連線失敗:%s" + +#: ../src/remote-viewer.c:750 +msgid "Couldn't create a Spice session" +msgstr "無法建立 Spice 作業階段" + +#: ../src/remote-viewer.c:764 +msgid "Setting up Spice session..." +msgstr "正在設置 Spice 作業階段..." + +#: ../src/remote-viewer.c:774 +msgid "Cannot determine the connection type from URI" +msgstr "無法從網址判斷連線類型" + +#: ../src/remote-viewer.c:779 +#, c-format +msgid "Couldn't create a session for this type: %s" +msgstr "無法為此類型建立作業階段:%s" + #. * Local variables: -#. * c-indent-level: 8 -#. * c-basic-offset: 8 -#. * tab-width: 8 +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil #. * End: -#. -#: ../src/about.glade.h:1 -msgid "A remote desktop client built with GTK-VNC and libvirt" -msgstr "內建了 GTK-VNC 和 libvirt 的遠端桌面客戶端" - -#: ../src/about.glade.h:2 +#. +#: ../src/virt-viewer-about.xml.h:1 +msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt" +msgstr "以 GTK-VNC、SPICE-GTK 和 libvirt 所建立的遠端桌面客戶端" + +#: ../src/virt-viewer-about.xml.h:2 msgid "About Glade" msgstr "關於 Glade" -#: ../src/about.glade.h:3 +#: ../src/virt-viewer-about.xml.h:3 msgid "" -"Copyright 2007-2008 Daniel P. Berrange\n" -"Copyright 2007-2008 Red Hat, Inc." -msgstr "" -"版權所有 2007-2008 Daniel P. Berrange\n" -"版權所有 2007-2008 Red Hat, Inc." - -#: ../src/about.glade.h:5 +"Copyright (C) 2007-2012 Daniel P. Berrange\n" +"Copyright (C) 2007-2012 Red Hat, Inc." +msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc." + +#: ../src/virt-viewer-about.xml.h:5 msgid "The Fedora Translation Team" msgstr "Fedora 翻譯團隊" -#: ../src/about.glade.h:6 +#: ../src/virt-viewer-about.xml.h:6 msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" @@ -163,150 +207,353 @@ "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" -msgstr "" -"本程式為自由軟體;您可依據自由軟體\n" -"基金會所發表的 GNU 通用公共許可證就本作品\n" -"再為發佈與/或修改;無論您依據的是本授權的第二版\n" -"(您自行選擇的)任一日後發行的版本。\n" -"\n" -"本程式是基於使用目的而加以發佈,\n" -"然而不負任何擔保責任;亦無對適售性或特定目的\n" -"適用性所為的默示性擔保。詳情\n" -"請參照 GNU 通用公共許可證。\n" -"\n" -"您應該已收到了附隨於本程式的 GNU 通用公共授權\n" -"的副本;若沒有的話,請寫信至自由軟體\n" -"基金會:59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - -#: ../src/about.glade.h:20 +msgstr "此程式為自由軟體;您可將它重新發佈與/或對它進行修改,\n您必須同意自由軟體基金會(Free Software Foundation)的 GNU 通用\n公共許可證(GNU General Public License)的授權條款;許可證\n版本 2 或任何更新的版本。\n\n此程式乃為了方便社群使用,不過\n卻不含任何使用上的保証;甚至沒有任何適銷性上\n以及特定使用對象的保証。 欲取得更多詳細\n資訊,請參閱 GNU 通用公共許可證。\n\n當您取得此程式時,您應同時取得了\n一份 GNU 通用公共許可證。若沒有的話,請聯絡自由軟體\n基金會(Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#: ../src/virt-viewer-about.xml.h:20 msgid "virt-manager.org" msgstr "virt-manager.org" -#: ../src/auth.glade.h:1 +#: ../src/virt-viewer-app.c:284 +msgid "This is the last visible display. Do you want to quit?" +msgstr "這是最後的可見顯示。您是否想退出?" + +#: ../src/virt-viewer-app.c:624 +#, c-format +msgid "Waiting for display %d..." +msgstr "正在等候顯示 %d..." + +#: ../src/virt-viewer-app.c:707 +#, c-format +msgid "Unknown graphic type for the guest %s" +msgstr "客端 %s 的圖形類型不明" + +#: ../src/virt-viewer-app.c:782 +msgid "Connect to ssh failed." +msgstr "連至 ssh 的連線失敗。" + +#: ../src/virt-viewer-app.c:784 +msgid "Can't connect to channel, SSH only supported." +msgstr "無法連至頻道,僅支援 SSH。" + +#: ../src/virt-viewer-app.c:796 +msgid "Connect to channel unsupported." +msgstr "不支援連至頻道。" + +#: ../src/virt-viewer-app.c:876 +msgid "Connecting to graphic server" +msgstr "正連至圖形化伺服器" + +#: ../src/virt-viewer-app.c:1006 +msgid "Guest domain has shutdown" +msgstr "客端網域已關閉" + +#: ../src/virt-viewer-app.c:1056 +msgid "Connected to graphic server" +msgstr "已連上圖形化伺服器" + +#: ../src/virt-viewer-app.c:1082 +#, c-format +msgid "Unable to connect to the graphic server %s" +msgstr "無法連上圖形化伺服器 %s" + +#: ../src/virt-viewer-app.c:1111 +#, c-format +msgid "" +"Unable to authenticate with remote desktop server at %s: %s\n" +"Retry connection again?" +msgstr "無法在位於 %s 的遠端桌面伺服器上驗證:%s\n重新嘗試連線?" + +#: ../src/virt-viewer-app.c:1131 +#, c-format +msgid "Unable to authenticate with remote desktop server: %s" +msgstr "無法在遠端桌面伺服器驗證:%s" + +#: ../src/virt-viewer-app.c:1139 +#, c-format +msgid "USB redirection error: %s" +msgstr "USB 重定向錯誤:%s" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer-auth.xml.h:1 msgid "Authentication required" -msgstr "需要進行驗證" - -#: ../src/auth.glade.h:2 +msgstr "須要通過驗證" + +#: ../src/virt-viewer-auth.xml.h:2 msgid "Password:" msgstr "密碼:" -#: ../src/auth.glade.h:3 +#: ../src/virt-viewer-auth.xml.h:3 msgid "Username:" msgstr "使用者名稱:" -#: ../src/auth.glade.h:4 -msgid "gtk-cancel" -msgstr "gtk-cancel" - -#: ../src/auth.glade.h:5 -msgid "gtk-ok" -msgstr "gtk-ok" - -#: ../src/auth.glade.h:6 +#: ../src/virt-viewer-auth.xml.h:4 msgid "label" msgstr "標籤" -#: ../src/viewer.glade.h:1 +#: ../src/virt-viewer-main.c:38 +#, c-format +msgid "%s version %s\n" +msgstr "%s version %s\n" + +#: ../src/virt-viewer-main.c:69 +msgid "Attach to the local display using libvirt" +msgstr "使用 libvirt 連至本機顯示" + +#: ../src/virt-viewer-main.c:71 +msgid "Connect to hypervisor" +msgstr "連至 hypervisor" + +#: ../src/virt-viewer-main.c:73 +msgid "Wait for domain to start" +msgstr "等待網域啟用" + +#: ../src/virt-viewer-main.c:75 +msgid "Reconnect to domain upon restart" +msgstr "重新啓動時重新連至網域" + +#: ../src/virt-viewer-main.c:81 +msgid "Open in full screen mode" +msgstr "以全螢幕模式開啟" + +#: ../src/virt-viewer-main.c:96 +msgid "Virt Viewer" +msgstr "Virt 檢視器" + +#. Setup command line options +#: ../src/virt-viewer-main.c:99 +msgid "- Virtual machine graphical console" +msgstr "- 虛擬機圖形化主控臺" + +#: ../src/virt-viewer-main.c:120 +#, c-format +msgid "" +"\n" +"Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n" +"\n" +"%s\n" +"\n" +msgstr "\n用法:%s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n" + +#. Create the widgets +#: ../src/virt-viewer-session-spice.c:380 +msgid "Select USB devices for redirection" +msgstr "選擇欲重新導向的 USB 裝置" + +#: ../src/virt-viewer-session-vnc.c:141 +#, c-format +msgid "Unsupported authentication type %d" +msgstr "不支援的驗證類型 %d" + +#: ../src/virt-viewer-window.c:832 +msgid "Disconnect" +msgstr "中斷連接" + +#: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840 +#: ../src/virt-viewer.xml.h:22 +msgid "USB device selection" +msgstr "USB 裝置選取" + +#: ../src/virt-viewer-window.c:848 +msgid "Send key combination" +msgstr "" + +#: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858 +msgid "Leave fullscreen" +msgstr "離開全螢幕" + +#: ../src/virt-viewer-window.c:937 +msgid "Ctrl+Alt" +msgstr "" + +#: ../src/virt-viewer-window.c:940 +#, c-format +msgid "(Press %s to release pointer)" +msgstr "" + +#. translators: +#. * This is " - +#. " +#. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt +#. Viewer" +#. +#: ../src/virt-viewer-window.c:951 +#, c-format +msgid "%s%s%s - %s" +msgstr "%s%s%s - %s" + +#. translators: +#: ../src/virt-viewer-window.c:955 +msgid " " +msgstr " " + +#: ../src/virt-viewer.c:144 +msgid "Waiting for guest domain to re-start" +msgstr "正在等候客端網域重新啓用" + +#: ../src/virt-viewer.c:308 +#, c-format +msgid "Cannot determine the graphic type for the guest %s" +msgstr "無法判斷客端 %s 的圖形化類型為何" + +#: ../src/virt-viewer.c:321 +#, c-format +msgid "Cannot determine the graphic address for the guest %s" +msgstr "無法判斷客端 %s 的圖形化位址為何" + +#: ../src/virt-viewer.c:344 +#, c-format +msgid "Cannot determine the host for the guest %s" +msgstr "無法判斷客端 %s 的主機為何" + +#: ../src/virt-viewer.c:474 +msgid "Finding guest domain" +msgstr "正在尋找客端網域" + +#: ../src/virt-viewer.c:478 +msgid "Waiting for guest domain to be created" +msgstr "正在等候客端網域被建立" + +#: ../src/virt-viewer.c:483 +#, c-format +msgid "Cannot find guest domain %s" +msgstr "找不到客端網域 %s" + +#: ../src/virt-viewer.c:490 +msgid "Checking guest domain status" +msgstr "正在檢查客端網域狀態" + +#: ../src/virt-viewer.c:497 +msgid "Waiting for guest domain to start" +msgstr "正在等候客端網域啟動" + +#: ../src/virt-viewer.c:504 +msgid "Waiting for guest domain to start server" +msgstr "正在等候客端網域啟動伺服器" + +#: ../src/virt-viewer.c:624 +#, c-format +msgid "Unable to connect to libvirt with URI %s" +msgstr "無法透過 %s 網址與 libvirt 連線" + +#: ../src/virt-viewer.c:625 +msgid "[none]" +msgstr "[無]" + +#. * Local variables: +#. * c-indent-level: 4 +#. * c-basic-offset: 4 +#. * indent-tabs-mode: nil +#. * End: +#. +#: ../src/virt-viewer.xml.h:1 msgid "Automatically resize" -msgstr "自動重設大小" - -#: ../src/viewer.glade.h:2 +msgstr "自動重新調整大小" + +#: ../src/virt-viewer.xml.h:2 msgid "Ctrl+Alt+F11" msgstr "Ctrl+Alt+F11" -#: ../src/viewer.glade.h:3 +#: ../src/virt-viewer.xml.h:3 msgid "Ctrl+Alt+F12" msgstr "Ctrl+Alt+F12" -#: ../src/viewer.glade.h:4 +#: ../src/virt-viewer.xml.h:4 msgid "Ctrl+Alt+F1_0" msgstr "Ctrl+Alt+F1_0" -#: ../src/viewer.glade.h:5 +#: ../src/virt-viewer.xml.h:5 msgid "Ctrl+Alt+F_1" msgstr "Ctrl+Alt+F_1" -#: ../src/viewer.glade.h:6 +#: ../src/virt-viewer.xml.h:6 msgid "Ctrl+Alt+F_2" msgstr "Ctrl+Alt+F_2" -#: ../src/viewer.glade.h:7 +#: ../src/virt-viewer.xml.h:7 msgid "Ctrl+Alt+F_3" msgstr "Ctrl+Alt+F_3" -#: ../src/viewer.glade.h:8 +#: ../src/virt-viewer.xml.h:8 msgid "Ctrl+Alt+F_4" msgstr "Ctrl+Alt+F_4" -#: ../src/viewer.glade.h:9 +#: ../src/virt-viewer.xml.h:9 msgid "Ctrl+Alt+F_5" msgstr "Ctrl+Alt+F_5" -#: ../src/viewer.glade.h:10 +#: ../src/virt-viewer.xml.h:10 msgid "Ctrl+Alt+F_6" msgstr "Ctrl+Alt+F_6" -#: ../src/viewer.glade.h:11 +#: ../src/virt-viewer.xml.h:11 msgid "Ctrl+Alt+F_7" msgstr "Ctrl+Alt+F_7" -#: ../src/viewer.glade.h:12 +#: ../src/virt-viewer.xml.h:12 msgid "Ctrl+Alt+F_8" msgstr "Ctrl+Alt+F_8" -#: ../src/viewer.glade.h:13 +#: ../src/virt-viewer.xml.h:13 msgid "Ctrl+Alt+F_9" msgstr "Ctrl+Alt+F_9" -#: ../src/viewer.glade.h:14 +#: ../src/virt-viewer.xml.h:14 msgid "Ctrl+Alt+_Backspace" msgstr "Ctrl+Alt+_Backspace" -#: ../src/viewer.glade.h:15 +#: ../src/virt-viewer.xml.h:15 msgid "Ctrl+Alt+_Del" msgstr "Ctrl+Alt+_Del" -#: ../src/viewer.glade.h:16 +#: ../src/virt-viewer.xml.h:16 +msgid "Displays" +msgstr "顯示" + +#: ../src/virt-viewer.xml.h:17 msgid "Full screen" msgstr "全螢幕" -#: ../src/viewer.glade.h:17 +#: ../src/virt-viewer.xml.h:18 +msgid "Release cursor" +msgstr "釋放游標" + +#: ../src/virt-viewer.xml.h:19 msgid "Screenshot" -msgstr "螢幕截圖" - -#: ../src/viewer.glade.h:18 +msgstr "螢幕快照" + +#: ../src/virt-viewer.xml.h:20 +msgid "Smartcard insertion" +msgstr "智慧卡插入" + +#: ../src/virt-viewer.xml.h:21 +msgid "Smartcard removal" +msgstr "智慧卡移除" + +#: ../src/virt-viewer.xml.h:23 msgid "_File" msgstr "檔案(_F)" -#: ../src/viewer.glade.h:19 +#: ../src/virt-viewer.xml.h:24 msgid "_Help" -msgstr "說明(_H)" - -#: ../src/viewer.glade.h:20 +msgstr "求助(_H)" + +#: ../src/virt-viewer.xml.h:25 msgid "_PrintScreen" -msgstr "列印螢幕畫面(_P)" - -#: ../src/viewer.glade.h:21 +msgstr "列印畫面(_P)" + +#: ../src/virt-viewer.xml.h:26 msgid "_Send key" -msgstr "傳送組合鍵(_S)" - -#: ../src/viewer.glade.h:22 +msgstr "傳送按鍵(_S)" + +#: ../src/virt-viewer.xml.h:27 msgid "_View" msgstr "檢視(_V)" -#: ../src/viewer.glade.h:23 -msgid "gtk-about" -msgstr "gtk-about" - -#: ../src/viewer.glade.h:24 -msgid "gtk-quit" -msgstr "gtk-quit" - -#: ../src/viewer.glade.h:25 -msgid "page 1" -msgstr "第一頁" - -#: ../src/viewer.glade.h:26 -msgid "page 2" -msgstr "第二頁" - +#: ../src/virt-viewer.xml.h:28 +msgid "_Zoom" +msgstr "遠近(_Z)" diff --git a/src/Makefile.am b/src/Makefile.am index 7e7a9c3..a62a8c0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,56 +1,162 @@ - -bin_PROGRAMS = virt-viewer +NULL = +LDADD = +MAINTAINERCLEANFILES = +bin_PROGRAMS = builderxmldir = $(pkgdatadir)/ui -builderxml_DATA = \ - virt-viewer.xml \ - virt-viewer-about.xml \ - virt-viewer-auth.xml +builderxml_DATA = \ + virt-viewer.xml \ + virt-viewer-about.xml \ + virt-viewer-auth.xml \ + $(NULL) -EXTRA_DIST = $(builderxml_DATA) +EXTRA_DIST = \ + $(builderxml_DATA) \ + virt-viewer-enums.c.etemplate \ + virt-viewer-enums.h.etemplate \ + gbinding.c \ + gbinding.h \ + $(NULL) -virt_viewer_SOURCES = \ - virt-viewer-main.c \ - virt-viewer.h virt-viewer.c \ - virt-viewer-util.h virt-viewer-util.c \ - virt-viewer-auth.h virt-viewer-auth.c \ - virt-viewer-events.h virt-viewer-events.c \ - virt-viewer-app.h virt-viewer-app.c \ - virt-viewer-session.h virt-viewer-session.c \ - virt-viewer-session-vnc.h virt-viewer-session-vnc.c \ - virt-viewer-display.h virt-viewer-display.c \ - virt-viewer-display-vnc.h virt-viewer-display-vnc.c \ - virt-viewer-notebook.h virt-viewer-notebook.c \ - virt-viewer-window.h virt-viewer-window.c \ - view/autoDrawer.c \ - view/autoDrawer.h \ - view/drawer.c \ - view/drawer.h \ - view/ovBox.c \ - view/ovBox.h +ENUMS_FILES = \ + virt-viewer-display.h \ + $(NULL) + +BUILT_SOURCES = \ + virt-viewer-enums.h \ + virt-viewer-enums.c \ + $(NULL) + +$(BUILT_SOURCES): %: %.etemplate $(ENUMS_FILES) + $(AM_V_GEN)$(GLIB_MKENUMS) --template $^ | \ + sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \ + -e 's,#include "$(srcdir)/,#include ",' > $@ + +COMMON_SOURCES = \ + $(BUILT_SOURCES) \ + virt-glib-compat.h \ + virt-gtk-compat.h \ + virt-viewer-util.h virt-viewer-util.c \ + virt-viewer-auth.h virt-viewer-auth.c \ + virt-viewer-app.h virt-viewer-app.c \ + virt-viewer-session.h virt-viewer-session.c \ + virt-viewer-display.h virt-viewer-display.c \ + virt-viewer-notebook.h virt-viewer-notebook.c \ + virt-viewer-window.h virt-viewer-window.c \ + view/autoDrawer.c \ + view/autoDrawer.h \ + view/drawer.c \ + view/drawer.h \ + view/ovBox.c \ + view/ovBox.h \ + $(NULL) + +if HAVE_GTK_VNC +COMMON_SOURCES += \ + virt-viewer-session-vnc.h virt-viewer-session-vnc.c \ + virt-viewer-display-vnc.h virt-viewer-display-vnc.c \ + $(NULL) +endif + +if HAVE_SPICE_GTK +COMMON_SOURCES += \ + virt-viewer-session-spice.h virt-viewer-session-spice.c \ + virt-viewer-display-spice.h virt-viewer-display-spice.c \ + $(NULL) +endif +if HAVE_LIBVIRT +bin_PROGRAMS += virt-viewer +virt_viewer_SOURCES = \ + $(COMMON_SOURCES) \ + virt-viewer-events.h virt-viewer-events.c \ + virt-viewer.h virt-viewer.c \ + virt-viewer-main.c \ + $(NULL) +virt_viewer_LDFLAGS = \ + -lm \ + $(GLIB2_LIBS) \ + $(GTK_LIBS) \ + $(LIBXML2_LIBS) \ + $(LIBVIRT_LIBS) \ + $(NULL) +virt_viewer_CFLAGS = \ + -DLOCALE_DIR=\""$(datadir)/locale"\" \ + -DG_LOG_DOMAIN=\"virt-viewer\" \ + $(GLIB2_CFLAGS) \ + $(GTK_CFLAGS) \ + $(LIBXML2_CFLAGS) \ + $(LIBVIRT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(NULL) + +if HAVE_GTK_VNC +virt_viewer_LDFLAGS += $(GTK_VNC_LIBS) +virt_viewer_CFLAGS += $(GTK_VNC_CFLAGS) +endif if HAVE_SPICE_GTK -virt_viewer_SOURCES += \ - virt-viewer-session-spice.h virt-viewer-session-spice.c \ - virt-viewer-display-spice.h virt-viewer-display-spice.c +virt_viewer_LDFLAGS += $(SPICE_GTK_LIBS) +virt_viewer_CFLAGS += $(SPICE_GTK_CFLAGS) +endif endif -virt_viewer_LDADD = \ - @GTK_VNC_LIBS@ \ - @SPICE_GTK_LIBS@ \ - @GLIB2_LIBS@ \ - @GTK_LIBS@ \ - @LIBXML2_LIBS@ \ - @LIBVIRT_LIBS@ -virt_viewer_CFLAGS = \ - @GTK_VNC_CFLAGS@ \ - @SPICE_GTK_CFLAGS@ \ - @GLIB2_CFLAGS@ \ - @GTK_CFLAGS@ \ - @LIBXML2_CFLAGS@ \ - @LIBVIRT_CFLAGS@ \ - @WARN_CFLAGS@ \ - -DBUILDER_XML_DIR="\"$(builderxmldir)\"" \ - -DLOCALE_DIR=\""$(datadir)/locale"\" +bin_PROGRAMS += remote-viewer +remote_viewer_SOURCES = \ + $(COMMON_SOURCES) \ + remote-viewer.h remote-viewer.c \ + remote-viewer-main.c \ + $(NULL) +remote_viewer_LDFLAGS = \ + -lm \ + $(GLIB2_LIBS) \ + $(GTK_LIBS) \ + $(LIBXML2_LIBS) \ + $(NULL) +remote_viewer_CFLAGS = \ + -DLOCALE_DIR=\""$(datadir)/locale"\" \ + -DG_LOG_DOMAIN=\"remote-viewer\" \ + $(GLIB2_CFLAGS) \ + $(GTK_CFLAGS) \ + $(LIBXML2_CFLAGS) \ + $(WARN_CFLAGS) \ + $(NULL) + +if HAVE_GTK_VNC +remote_viewer_LDFLAGS += $(GTK_VNC_LIBS) +remote_viewer_CFLAGS += $(GTK_VNC_CFLAGS) +endif +if HAVE_SPICE_GTK +remote_viewer_LDFLAGS += $(SPICE_GTK_LIBS) $(SPICE_CONTROLLER_LIBS) +remote_viewer_CFLAGS += $(SPICE_GTK_CFLAGS) $(SPICE_CONTROLLER_CFLAGS) +endif +if OS_WIN32 +remote_viewer_LDFLAGS += -Wl,--subsystem,windows +endif + +desktopdir = $(datadir)/applications +desktop_DATA = remote-viewer.desktop + +EXTRA_DIST += $(desktop_DATA) + +VIRT_VIEWER_RES = virt-viewer.rc virt-viewer.manifest +ICONDIR = $(top_builddir)/icons +MANIFESTDIR = $(srcdir) +EXTRA_DIST += $(VIRT_VIEWER_RES) + +if OS_WIN32 +bin_PROGRAMS += windows-cmdline-wrapper +windows_cmdline_wrapper_SOURCES = windows-cmdline-wrapper.c +windows_cmdline_wrapper_LDFLAGS = -lpsapi + +virt-viewer_rc.$(OBJEXT): $(VIRT_VIEWER_RES) $(ICONDIR)/virt-viewer.ico + $(AM_V_GEN)$(WINDRES) \ + -DICONDIR='\"$(ICONDIR)\"' \ + -DMANIFESTDIR='\"$(MANIFESTDIR)\"' \ + -i $< -o $@ +LDADD += virt-viewer_rc.$(OBJEXT) +MAINTAINERCLEANFILES += virt-viewer_rc.$(OBJEXT) +endif + +-include $(top_srcdir)/git.mk diff --git a/src/Makefile.in b/src/Makefile.in index a66c511..60673ec 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,9 +1,8 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.12.2 from Makefile.am. # @configure_input@ -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 1994-2012 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,6 +16,23 @@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,66 +51,168 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -bin_PROGRAMS = virt-viewer$(EXEEXT) -@HAVE_SPICE_GTK_TRUE@am__append_1 = \ -@HAVE_SPICE_GTK_TRUE@ virt-viewer-session-spice.h virt-viewer-session-spice.c \ -@HAVE_SPICE_GTK_TRUE@ virt-viewer-display-spice.h virt-viewer-display-spice.c - +bin_PROGRAMS = $(am__EXEEXT_1) remote-viewer$(EXEEXT) $(am__EXEEXT_2) +@HAVE_GTK_VNC_TRUE@am__append_1 = \ +@HAVE_GTK_VNC_TRUE@ virt-viewer-session-vnc.h virt-viewer-session-vnc.c \ +@HAVE_GTK_VNC_TRUE@ virt-viewer-display-vnc.h virt-viewer-display-vnc.c \ +@HAVE_GTK_VNC_TRUE@ $(NULL) + +@HAVE_SPICE_GTK_TRUE@am__append_2 = \ +@HAVE_SPICE_GTK_TRUE@ virt-viewer-session-spice.h virt-viewer-session-spice.c \ +@HAVE_SPICE_GTK_TRUE@ virt-viewer-display-spice.h virt-viewer-display-spice.c \ +@HAVE_SPICE_GTK_TRUE@ $(NULL) + +@HAVE_LIBVIRT_TRUE@am__append_3 = virt-viewer +@HAVE_GTK_VNC_TRUE@@HAVE_LIBVIRT_TRUE@am__append_4 = $(GTK_VNC_LIBS) +@HAVE_GTK_VNC_TRUE@@HAVE_LIBVIRT_TRUE@am__append_5 = $(GTK_VNC_CFLAGS) +@HAVE_LIBVIRT_TRUE@@HAVE_SPICE_GTK_TRUE@am__append_6 = $(SPICE_GTK_LIBS) +@HAVE_LIBVIRT_TRUE@@HAVE_SPICE_GTK_TRUE@am__append_7 = $(SPICE_GTK_CFLAGS) +@HAVE_GTK_VNC_TRUE@am__append_8 = $(GTK_VNC_LIBS) +@HAVE_GTK_VNC_TRUE@am__append_9 = $(GTK_VNC_CFLAGS) +@HAVE_SPICE_GTK_TRUE@am__append_10 = $(SPICE_GTK_LIBS) $(SPICE_CONTROLLER_LIBS) +@HAVE_SPICE_GTK_TRUE@am__append_11 = $(SPICE_GTK_CFLAGS) $(SPICE_CONTROLLER_CFLAGS) +@OS_WIN32_TRUE@am__append_12 = -Wl,--subsystem,windows +@OS_WIN32_TRUE@am__append_13 = windows-cmdline-wrapper +@OS_WIN32_TRUE@am__append_14 = virt-viewer_rc.$(OBJEXT) +@OS_WIN32_TRUE@am__append_15 = virt-viewer_rc.$(OBJEXT) subdir = src -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/virt-viewer.rc.in $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = virt-viewer.rc CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)" +@HAVE_LIBVIRT_TRUE@am__EXEEXT_1 = virt-viewer$(EXEEXT) +@OS_WIN32_TRUE@am__EXEEXT_2 = windows-cmdline-wrapper$(EXEEXT) +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)" \ + "$(DESTDIR)$(desktopdir)" PROGRAMS = $(bin_PROGRAMS) -am__virt_viewer_SOURCES_DIST = virt-viewer-main.c virt-viewer.h \ - virt-viewer.c virt-viewer-util.h virt-viewer-util.c \ - virt-viewer-auth.h virt-viewer-auth.c virt-viewer-events.h \ - virt-viewer-events.c virt-viewer-app.h virt-viewer-app.c \ +am__remote_viewer_SOURCES_DIST = virt-viewer-enums.h \ + virt-viewer-enums.c virt-glib-compat.h virt-gtk-compat.h \ + virt-viewer-util.h virt-viewer-util.c virt-viewer-auth.h \ + virt-viewer-auth.c virt-viewer-app.h virt-viewer-app.c \ virt-viewer-session.h virt-viewer-session.c \ - virt-viewer-session-vnc.h virt-viewer-session-vnc.c \ virt-viewer-display.h virt-viewer-display.c \ - virt-viewer-display-vnc.h virt-viewer-display-vnc.c \ virt-viewer-notebook.h virt-viewer-notebook.c \ virt-viewer-window.h virt-viewer-window.c view/autoDrawer.c \ view/autoDrawer.h view/drawer.c view/drawer.h view/ovBox.c \ - view/ovBox.h virt-viewer-session-spice.h \ + view/ovBox.h virt-viewer-session-vnc.h \ + virt-viewer-session-vnc.c virt-viewer-display-vnc.h \ + virt-viewer-display-vnc.c virt-viewer-session-spice.h \ virt-viewer-session-spice.c virt-viewer-display-spice.h \ - virt-viewer-display-spice.c -@HAVE_SPICE_GTK_TRUE@am__objects_1 = virt_viewer-virt-viewer-session-spice.$(OBJEXT) \ -@HAVE_SPICE_GTK_TRUE@ virt_viewer-virt-viewer-display-spice.$(OBJEXT) -am_virt_viewer_OBJECTS = virt_viewer-virt-viewer-main.$(OBJEXT) \ - virt_viewer-virt-viewer.$(OBJEXT) \ + virt-viewer-display-spice.c remote-viewer.h remote-viewer.c \ + remote-viewer-main.c +am__objects_1 = +am__objects_2 = remote_viewer-virt-viewer-enums.$(OBJEXT) \ + $(am__objects_1) +@HAVE_GTK_VNC_TRUE@am__objects_3 = remote_viewer-virt-viewer-session-vnc.$(OBJEXT) \ +@HAVE_GTK_VNC_TRUE@ remote_viewer-virt-viewer-display-vnc.$(OBJEXT) \ +@HAVE_GTK_VNC_TRUE@ $(am__objects_1) +@HAVE_SPICE_GTK_TRUE@am__objects_4 = remote_viewer-virt-viewer-session-spice.$(OBJEXT) \ +@HAVE_SPICE_GTK_TRUE@ remote_viewer-virt-viewer-display-spice.$(OBJEXT) \ +@HAVE_SPICE_GTK_TRUE@ $(am__objects_1) +am__objects_5 = $(am__objects_2) \ + remote_viewer-virt-viewer-util.$(OBJEXT) \ + remote_viewer-virt-viewer-auth.$(OBJEXT) \ + remote_viewer-virt-viewer-app.$(OBJEXT) \ + remote_viewer-virt-viewer-session.$(OBJEXT) \ + remote_viewer-virt-viewer-display.$(OBJEXT) \ + remote_viewer-virt-viewer-notebook.$(OBJEXT) \ + remote_viewer-virt-viewer-window.$(OBJEXT) \ + remote_viewer-autoDrawer.$(OBJEXT) \ + remote_viewer-drawer.$(OBJEXT) remote_viewer-ovBox.$(OBJEXT) \ + $(am__objects_1) $(am__objects_3) $(am__objects_4) +am_remote_viewer_OBJECTS = $(am__objects_5) \ + remote_viewer-remote-viewer.$(OBJEXT) \ + remote_viewer-remote-viewer-main.$(OBJEXT) $(am__objects_1) +remote_viewer_OBJECTS = $(am_remote_viewer_OBJECTS) +remote_viewer_LDADD = $(LDADD) +remote_viewer_DEPENDENCIES = $(am__append_14) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +remote_viewer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(remote_viewer_CFLAGS) \ + $(CFLAGS) $(remote_viewer_LDFLAGS) $(LDFLAGS) -o $@ +am__virt_viewer_SOURCES_DIST = virt-viewer-enums.h virt-viewer-enums.c \ + virt-glib-compat.h virt-gtk-compat.h virt-viewer-util.h \ + virt-viewer-util.c virt-viewer-auth.h virt-viewer-auth.c \ + virt-viewer-app.h virt-viewer-app.c virt-viewer-session.h \ + virt-viewer-session.c virt-viewer-display.h \ + virt-viewer-display.c virt-viewer-notebook.h \ + virt-viewer-notebook.c virt-viewer-window.h \ + virt-viewer-window.c view/autoDrawer.c view/autoDrawer.h \ + view/drawer.c view/drawer.h view/ovBox.c view/ovBox.h \ + virt-viewer-session-vnc.h virt-viewer-session-vnc.c \ + virt-viewer-display-vnc.h virt-viewer-display-vnc.c \ + virt-viewer-session-spice.h virt-viewer-session-spice.c \ + virt-viewer-display-spice.h virt-viewer-display-spice.c \ + virt-viewer-events.h virt-viewer-events.c virt-viewer.h \ + virt-viewer.c virt-viewer-main.c +am__objects_6 = virt_viewer-virt-viewer-enums.$(OBJEXT) \ + $(am__objects_1) +@HAVE_GTK_VNC_TRUE@am__objects_7 = virt_viewer-virt-viewer-session-vnc.$(OBJEXT) \ +@HAVE_GTK_VNC_TRUE@ virt_viewer-virt-viewer-display-vnc.$(OBJEXT) \ +@HAVE_GTK_VNC_TRUE@ $(am__objects_1) +@HAVE_SPICE_GTK_TRUE@am__objects_8 = virt_viewer-virt-viewer-session-spice.$(OBJEXT) \ +@HAVE_SPICE_GTK_TRUE@ virt_viewer-virt-viewer-display-spice.$(OBJEXT) \ +@HAVE_SPICE_GTK_TRUE@ $(am__objects_1) +am__objects_9 = $(am__objects_6) \ virt_viewer-virt-viewer-util.$(OBJEXT) \ virt_viewer-virt-viewer-auth.$(OBJEXT) \ - virt_viewer-virt-viewer-events.$(OBJEXT) \ virt_viewer-virt-viewer-app.$(OBJEXT) \ virt_viewer-virt-viewer-session.$(OBJEXT) \ - virt_viewer-virt-viewer-session-vnc.$(OBJEXT) \ virt_viewer-virt-viewer-display.$(OBJEXT) \ - virt_viewer-virt-viewer-display-vnc.$(OBJEXT) \ virt_viewer-virt-viewer-notebook.$(OBJEXT) \ virt_viewer-virt-viewer-window.$(OBJEXT) \ virt_viewer-autoDrawer.$(OBJEXT) virt_viewer-drawer.$(OBJEXT) \ - virt_viewer-ovBox.$(OBJEXT) $(am__objects_1) + virt_viewer-ovBox.$(OBJEXT) $(am__objects_1) $(am__objects_7) \ + $(am__objects_8) +@HAVE_LIBVIRT_TRUE@am_virt_viewer_OBJECTS = $(am__objects_9) \ +@HAVE_LIBVIRT_TRUE@ virt_viewer-virt-viewer-events.$(OBJEXT) \ +@HAVE_LIBVIRT_TRUE@ virt_viewer-virt-viewer.$(OBJEXT) \ +@HAVE_LIBVIRT_TRUE@ virt_viewer-virt-viewer-main.$(OBJEXT) \ +@HAVE_LIBVIRT_TRUE@ $(am__objects_1) virt_viewer_OBJECTS = $(am_virt_viewer_OBJECTS) -virt_viewer_DEPENDENCIES = -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent +virt_viewer_LDADD = $(LDADD) +virt_viewer_DEPENDENCIES = $(am__append_14) virt_viewer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(virt_viewer_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ + $(CFLAGS) $(virt_viewer_LDFLAGS) $(LDFLAGS) -o $@ +am__windows_cmdline_wrapper_SOURCES_DIST = windows-cmdline-wrapper.c +@OS_WIN32_TRUE@am_windows_cmdline_wrapper_OBJECTS = \ +@OS_WIN32_TRUE@ windows-cmdline-wrapper.$(OBJEXT) +windows_cmdline_wrapper_OBJECTS = \ + $(am_windows_cmdline_wrapper_OBJECTS) +windows_cmdline_wrapper_LDADD = $(LDADD) +windows_cmdline_wrapper_DEPENDENCIES = $(am__append_14) +windows_cmdline_wrapper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(windows_cmdline_wrapper_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -103,24 +221,28 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(virt_viewer_SOURCES) -DIST_SOURCES = $(am__virt_viewer_SOURCES_DIST) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(remote_viewer_SOURCES) $(virt_viewer_SOURCES) \ + $(windows_cmdline_wrapper_SOURCES) +DIST_SOURCES = $(am__remote_viewer_SOURCES_DIST) \ + $(am__virt_viewer_SOURCES_DIST) \ + $(am__windows_cmdline_wrapper_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -142,7 +264,13 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -DATA = $(builderxml_DATA) +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +DATA = $(builderxml_DATA) $(desktop_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -155,6 +283,8 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -178,6 +308,8 @@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB2_CFLAGS = @GLIB2_CFLAGS@ GLIB2_LIBS = @GLIB2_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_API_VERSION = @GTK_API_VERSION@ @@ -187,15 +319,22 @@ GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@ GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@ GTK_VNC_LIBS = @GTK_VNC_LIBS@ +ICOTOOL = @ICOTOOL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ @@ -211,9 +350,11 @@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@ MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@ MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -234,16 +375,25 @@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ +SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@ +SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@ SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@ SPICE_GTK_LIBS = @SPICE_GTK_LIBS@ +SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@ +SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ +WINDRES = @WINDRES@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ @@ -278,6 +428,8 @@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -297,45 +449,75 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +NULL = +LDADD = $(am__append_14) +MAINTAINERCLEANFILES = $(am__append_15) builderxmldir = $(pkgdatadir)/ui builderxml_DATA = \ - virt-viewer.xml \ - virt-viewer-about.xml \ - virt-viewer-auth.xml - -EXTRA_DIST = $(builderxml_DATA) -virt_viewer_SOURCES = virt-viewer-main.c virt-viewer.h virt-viewer.c \ + virt-viewer.xml \ + virt-viewer-about.xml \ + virt-viewer-auth.xml \ + $(NULL) + +EXTRA_DIST = $(builderxml_DATA) virt-viewer-enums.c.etemplate \ + virt-viewer-enums.h.etemplate gbinding.c gbinding.h $(NULL) \ + $(desktop_DATA) $(VIRT_VIEWER_RES) +ENUMS_FILES = \ + virt-viewer-display.h \ + $(NULL) + +BUILT_SOURCES = \ + virt-viewer-enums.h \ + virt-viewer-enums.c \ + $(NULL) + +COMMON_SOURCES = $(BUILT_SOURCES) virt-glib-compat.h virt-gtk-compat.h \ virt-viewer-util.h virt-viewer-util.c virt-viewer-auth.h \ - virt-viewer-auth.c virt-viewer-events.h virt-viewer-events.c \ - virt-viewer-app.h virt-viewer-app.c virt-viewer-session.h \ - virt-viewer-session.c virt-viewer-session-vnc.h \ - virt-viewer-session-vnc.c virt-viewer-display.h \ - virt-viewer-display.c virt-viewer-display-vnc.h \ - virt-viewer-display-vnc.c virt-viewer-notebook.h \ - virt-viewer-notebook.c virt-viewer-window.h \ - virt-viewer-window.c view/autoDrawer.c view/autoDrawer.h \ - view/drawer.c view/drawer.h view/ovBox.c view/ovBox.h \ - $(am__append_1) -virt_viewer_LDADD = \ - @GTK_VNC_LIBS@ \ - @SPICE_GTK_LIBS@ \ - @GLIB2_LIBS@ \ - @GTK_LIBS@ \ - @LIBXML2_LIBS@ \ - @LIBVIRT_LIBS@ - -virt_viewer_CFLAGS = \ - @GTK_VNC_CFLAGS@ \ - @SPICE_GTK_CFLAGS@ \ - @GLIB2_CFLAGS@ \ - @GTK_CFLAGS@ \ - @LIBXML2_CFLAGS@ \ - @LIBVIRT_CFLAGS@ \ - @WARN_CFLAGS@ \ - -DBUILDER_XML_DIR="\"$(builderxmldir)\"" \ - -DLOCALE_DIR=\""$(datadir)/locale"\" - -all: all-am + virt-viewer-auth.c virt-viewer-app.h virt-viewer-app.c \ + virt-viewer-session.h virt-viewer-session.c \ + virt-viewer-display.h virt-viewer-display.c \ + virt-viewer-notebook.h virt-viewer-notebook.c \ + virt-viewer-window.h virt-viewer-window.c view/autoDrawer.c \ + view/autoDrawer.h view/drawer.c view/drawer.h view/ovBox.c \ + view/ovBox.h $(NULL) $(am__append_1) $(am__append_2) +@HAVE_LIBVIRT_TRUE@virt_viewer_SOURCES = \ +@HAVE_LIBVIRT_TRUE@ $(COMMON_SOURCES) \ +@HAVE_LIBVIRT_TRUE@ virt-viewer-events.h virt-viewer-events.c \ +@HAVE_LIBVIRT_TRUE@ virt-viewer.h virt-viewer.c \ +@HAVE_LIBVIRT_TRUE@ virt-viewer-main.c \ +@HAVE_LIBVIRT_TRUE@ $(NULL) + +@HAVE_LIBVIRT_TRUE@virt_viewer_LDFLAGS = -lm $(GLIB2_LIBS) $(GTK_LIBS) \ +@HAVE_LIBVIRT_TRUE@ $(LIBXML2_LIBS) $(LIBVIRT_LIBS) $(NULL) \ +@HAVE_LIBVIRT_TRUE@ $(am__append_4) $(am__append_6) +@HAVE_LIBVIRT_TRUE@virt_viewer_CFLAGS = \ +@HAVE_LIBVIRT_TRUE@ -DLOCALE_DIR=\""$(datadir)/locale"\" \ +@HAVE_LIBVIRT_TRUE@ -DG_LOG_DOMAIN=\"virt-viewer\" \ +@HAVE_LIBVIRT_TRUE@ $(GLIB2_CFLAGS) $(GTK_CFLAGS) \ +@HAVE_LIBVIRT_TRUE@ $(LIBXML2_CFLAGS) $(LIBVIRT_CFLAGS) \ +@HAVE_LIBVIRT_TRUE@ $(WARN_CFLAGS) $(NULL) $(am__append_5) \ +@HAVE_LIBVIRT_TRUE@ $(am__append_7) +remote_viewer_SOURCES = \ + $(COMMON_SOURCES) \ + remote-viewer.h remote-viewer.c \ + remote-viewer-main.c \ + $(NULL) + +remote_viewer_LDFLAGS = -lm $(GLIB2_LIBS) $(GTK_LIBS) $(LIBXML2_LIBS) \ + $(NULL) $(am__append_8) $(am__append_10) $(am__append_12) +remote_viewer_CFLAGS = -DLOCALE_DIR=\""$(datadir)/locale"\" \ + -DG_LOG_DOMAIN=\"remote-viewer\" $(GLIB2_CFLAGS) $(GTK_CFLAGS) \ + $(LIBXML2_CFLAGS) $(WARN_CFLAGS) $(NULL) $(am__append_9) \ + $(am__append_11) +desktopdir = $(datadir)/applications +desktop_DATA = remote-viewer.desktop +VIRT_VIEWER_RES = virt-viewer.rc virt-viewer.manifest +ICONDIR = $(top_builddir)/icons +MANIFESTDIR = $(srcdir) +@OS_WIN32_TRUE@windows_cmdline_wrapper_SOURCES = windows-cmdline-wrapper.c +@OS_WIN32_TRUE@windows_cmdline_wrapper_LDFLAGS = -lpsapi +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj @@ -369,10 +551,15 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): +virt-viewer.rc: $(top_builddir)/config.status $(srcdir)/virt-viewer.rc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ @@ -412,9 +599,15 @@ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -virt-viewer$(EXEEXT): $(virt_viewer_OBJECTS) $(virt_viewer_DEPENDENCIES) +remote-viewer$(EXEEXT): $(remote_viewer_OBJECTS) $(remote_viewer_DEPENDENCIES) $(EXTRA_remote_viewer_DEPENDENCIES) + @rm -f remote-viewer$(EXEEXT) + $(AM_V_CCLD)$(remote_viewer_LINK) $(remote_viewer_OBJECTS) $(remote_viewer_LDADD) $(LIBS) +virt-viewer$(EXEEXT): $(virt_viewer_OBJECTS) $(virt_viewer_DEPENDENCIES) $(EXTRA_virt_viewer_DEPENDENCIES) @rm -f virt-viewer$(EXEEXT) $(AM_V_CCLD)$(virt_viewer_LINK) $(virt_viewer_OBJECTS) $(virt_viewer_LDADD) $(LIBS) +windows-cmdline-wrapper$(EXEEXT): $(windows_cmdline_wrapper_OBJECTS) $(windows_cmdline_wrapper_DEPENDENCIES) $(EXTRA_windows_cmdline_wrapper_DEPENDENCIES) + @rm -f windows-cmdline-wrapper$(EXEEXT) + $(AM_V_CCLD)$(windows_cmdline_wrapper_LINK) $(windows_cmdline_wrapper_OBJECTS) $(windows_cmdline_wrapper_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -422,6 +615,23 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-autoDrawer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-drawer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-ovBox.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-app.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-auth.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-display-spice.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-display.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-enums.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-notebook.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-session-spice.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-session.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-autoDrawer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-drawer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-ovBox.Po@am__quote@ @@ -430,6 +640,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-display.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-enums.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-events.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-notebook.Po@am__quote@ @@ -439,302 +650,518 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-cmdline-wrapper.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +remote_viewer-virt-viewer-enums.o: virt-viewer-enums.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-enums.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-enums.Tpo -c -o remote_viewer-virt-viewer-enums.o `test -f 'virt-viewer-enums.c' || echo '$(srcdir)/'`virt-viewer-enums.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-enums.Tpo $(DEPDIR)/remote_viewer-virt-viewer-enums.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='remote_viewer-virt-viewer-enums.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-enums.o `test -f 'virt-viewer-enums.c' || echo '$(srcdir)/'`virt-viewer-enums.c + +remote_viewer-virt-viewer-enums.obj: virt-viewer-enums.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-enums.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-enums.Tpo -c -o remote_viewer-virt-viewer-enums.obj `if test -f 'virt-viewer-enums.c'; then $(CYGPATH_W) 'virt-viewer-enums.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-enums.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-enums.Tpo $(DEPDIR)/remote_viewer-virt-viewer-enums.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='remote_viewer-virt-viewer-enums.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-enums.obj `if test -f 'virt-viewer-enums.c'; then $(CYGPATH_W) 'virt-viewer-enums.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-enums.c'; fi` + +remote_viewer-virt-viewer-util.o: virt-viewer-util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-util.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-util.Tpo -c -o remote_viewer-virt-viewer-util.o `test -f 'virt-viewer-util.c' || echo '$(srcdir)/'`virt-viewer-util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-util.Tpo $(DEPDIR)/remote_viewer-virt-viewer-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='remote_viewer-virt-viewer-util.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-util.o `test -f 'virt-viewer-util.c' || echo '$(srcdir)/'`virt-viewer-util.c + +remote_viewer-virt-viewer-util.obj: virt-viewer-util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-util.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-util.Tpo -c -o remote_viewer-virt-viewer-util.obj `if test -f 'virt-viewer-util.c'; then $(CYGPATH_W) 'virt-viewer-util.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-util.Tpo $(DEPDIR)/remote_viewer-virt-viewer-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='remote_viewer-virt-viewer-util.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-util.obj `if test -f 'virt-viewer-util.c'; then $(CYGPATH_W) 'virt-viewer-util.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-util.c'; fi` + +remote_viewer-virt-viewer-auth.o: virt-viewer-auth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-auth.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-auth.Tpo -c -o remote_viewer-virt-viewer-auth.o `test -f 'virt-viewer-auth.c' || echo '$(srcdir)/'`virt-viewer-auth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-auth.Tpo $(DEPDIR)/remote_viewer-virt-viewer-auth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='remote_viewer-virt-viewer-auth.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-auth.o `test -f 'virt-viewer-auth.c' || echo '$(srcdir)/'`virt-viewer-auth.c + +remote_viewer-virt-viewer-auth.obj: virt-viewer-auth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-auth.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-auth.Tpo -c -o remote_viewer-virt-viewer-auth.obj `if test -f 'virt-viewer-auth.c'; then $(CYGPATH_W) 'virt-viewer-auth.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-auth.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-auth.Tpo $(DEPDIR)/remote_viewer-virt-viewer-auth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='remote_viewer-virt-viewer-auth.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-auth.obj `if test -f 'virt-viewer-auth.c'; then $(CYGPATH_W) 'virt-viewer-auth.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-auth.c'; fi` + +remote_viewer-virt-viewer-app.o: virt-viewer-app.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-app.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-app.Tpo -c -o remote_viewer-virt-viewer-app.o `test -f 'virt-viewer-app.c' || echo '$(srcdir)/'`virt-viewer-app.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-app.Tpo $(DEPDIR)/remote_viewer-virt-viewer-app.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='remote_viewer-virt-viewer-app.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-app.o `test -f 'virt-viewer-app.c' || echo '$(srcdir)/'`virt-viewer-app.c + +remote_viewer-virt-viewer-app.obj: virt-viewer-app.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-app.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-app.Tpo -c -o remote_viewer-virt-viewer-app.obj `if test -f 'virt-viewer-app.c'; then $(CYGPATH_W) 'virt-viewer-app.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-app.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-app.Tpo $(DEPDIR)/remote_viewer-virt-viewer-app.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='remote_viewer-virt-viewer-app.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-app.obj `if test -f 'virt-viewer-app.c'; then $(CYGPATH_W) 'virt-viewer-app.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-app.c'; fi` + +remote_viewer-virt-viewer-session.o: virt-viewer-session.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-session.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-session.Tpo -c -o remote_viewer-virt-viewer-session.o `test -f 'virt-viewer-session.c' || echo '$(srcdir)/'`virt-viewer-session.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='remote_viewer-virt-viewer-session.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-session.o `test -f 'virt-viewer-session.c' || echo '$(srcdir)/'`virt-viewer-session.c + +remote_viewer-virt-viewer-session.obj: virt-viewer-session.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-session.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-session.Tpo -c -o remote_viewer-virt-viewer-session.obj `if test -f 'virt-viewer-session.c'; then $(CYGPATH_W) 'virt-viewer-session.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='remote_viewer-virt-viewer-session.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-session.obj `if test -f 'virt-viewer-session.c'; then $(CYGPATH_W) 'virt-viewer-session.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session.c'; fi` + +remote_viewer-virt-viewer-display.o: virt-viewer-display.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-display.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-display.Tpo -c -o remote_viewer-virt-viewer-display.o `test -f 'virt-viewer-display.c' || echo '$(srcdir)/'`virt-viewer-display.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='remote_viewer-virt-viewer-display.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-display.o `test -f 'virt-viewer-display.c' || echo '$(srcdir)/'`virt-viewer-display.c + +remote_viewer-virt-viewer-display.obj: virt-viewer-display.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-display.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-display.Tpo -c -o remote_viewer-virt-viewer-display.obj `if test -f 'virt-viewer-display.c'; then $(CYGPATH_W) 'virt-viewer-display.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='remote_viewer-virt-viewer-display.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-display.obj `if test -f 'virt-viewer-display.c'; then $(CYGPATH_W) 'virt-viewer-display.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display.c'; fi` + +remote_viewer-virt-viewer-notebook.o: virt-viewer-notebook.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-notebook.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-notebook.Tpo -c -o remote_viewer-virt-viewer-notebook.o `test -f 'virt-viewer-notebook.c' || echo '$(srcdir)/'`virt-viewer-notebook.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/remote_viewer-virt-viewer-notebook.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='remote_viewer-virt-viewer-notebook.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-notebook.o `test -f 'virt-viewer-notebook.c' || echo '$(srcdir)/'`virt-viewer-notebook.c + +remote_viewer-virt-viewer-notebook.obj: virt-viewer-notebook.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-notebook.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-notebook.Tpo -c -o remote_viewer-virt-viewer-notebook.obj `if test -f 'virt-viewer-notebook.c'; then $(CYGPATH_W) 'virt-viewer-notebook.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-notebook.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/remote_viewer-virt-viewer-notebook.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='remote_viewer-virt-viewer-notebook.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-notebook.obj `if test -f 'virt-viewer-notebook.c'; then $(CYGPATH_W) 'virt-viewer-notebook.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-notebook.c'; fi` + +remote_viewer-virt-viewer-window.o: virt-viewer-window.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-window.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-window.Tpo -c -o remote_viewer-virt-viewer-window.o `test -f 'virt-viewer-window.c' || echo '$(srcdir)/'`virt-viewer-window.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-window.Tpo $(DEPDIR)/remote_viewer-virt-viewer-window.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='remote_viewer-virt-viewer-window.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-window.o `test -f 'virt-viewer-window.c' || echo '$(srcdir)/'`virt-viewer-window.c + +remote_viewer-virt-viewer-window.obj: virt-viewer-window.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-window.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-window.Tpo -c -o remote_viewer-virt-viewer-window.obj `if test -f 'virt-viewer-window.c'; then $(CYGPATH_W) 'virt-viewer-window.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-window.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-window.Tpo $(DEPDIR)/remote_viewer-virt-viewer-window.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='remote_viewer-virt-viewer-window.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-window.obj `if test -f 'virt-viewer-window.c'; then $(CYGPATH_W) 'virt-viewer-window.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-window.c'; fi` + +remote_viewer-autoDrawer.o: view/autoDrawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-autoDrawer.o -MD -MP -MF $(DEPDIR)/remote_viewer-autoDrawer.Tpo -c -o remote_viewer-autoDrawer.o `test -f 'view/autoDrawer.c' || echo '$(srcdir)/'`view/autoDrawer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-autoDrawer.Tpo $(DEPDIR)/remote_viewer-autoDrawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='remote_viewer-autoDrawer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-autoDrawer.o `test -f 'view/autoDrawer.c' || echo '$(srcdir)/'`view/autoDrawer.c + +remote_viewer-autoDrawer.obj: view/autoDrawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-autoDrawer.obj -MD -MP -MF $(DEPDIR)/remote_viewer-autoDrawer.Tpo -c -o remote_viewer-autoDrawer.obj `if test -f 'view/autoDrawer.c'; then $(CYGPATH_W) 'view/autoDrawer.c'; else $(CYGPATH_W) '$(srcdir)/view/autoDrawer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-autoDrawer.Tpo $(DEPDIR)/remote_viewer-autoDrawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='remote_viewer-autoDrawer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-autoDrawer.obj `if test -f 'view/autoDrawer.c'; then $(CYGPATH_W) 'view/autoDrawer.c'; else $(CYGPATH_W) '$(srcdir)/view/autoDrawer.c'; fi` + +remote_viewer-drawer.o: view/drawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-drawer.o -MD -MP -MF $(DEPDIR)/remote_viewer-drawer.Tpo -c -o remote_viewer-drawer.o `test -f 'view/drawer.c' || echo '$(srcdir)/'`view/drawer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-drawer.Tpo $(DEPDIR)/remote_viewer-drawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='remote_viewer-drawer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-drawer.o `test -f 'view/drawer.c' || echo '$(srcdir)/'`view/drawer.c + +remote_viewer-drawer.obj: view/drawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-drawer.obj -MD -MP -MF $(DEPDIR)/remote_viewer-drawer.Tpo -c -o remote_viewer-drawer.obj `if test -f 'view/drawer.c'; then $(CYGPATH_W) 'view/drawer.c'; else $(CYGPATH_W) '$(srcdir)/view/drawer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-drawer.Tpo $(DEPDIR)/remote_viewer-drawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='remote_viewer-drawer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-drawer.obj `if test -f 'view/drawer.c'; then $(CYGPATH_W) 'view/drawer.c'; else $(CYGPATH_W) '$(srcdir)/view/drawer.c'; fi` + +remote_viewer-ovBox.o: view/ovBox.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-ovBox.o -MD -MP -MF $(DEPDIR)/remote_viewer-ovBox.Tpo -c -o remote_viewer-ovBox.o `test -f 'view/ovBox.c' || echo '$(srcdir)/'`view/ovBox.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-ovBox.Tpo $(DEPDIR)/remote_viewer-ovBox.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='remote_viewer-ovBox.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-ovBox.o `test -f 'view/ovBox.c' || echo '$(srcdir)/'`view/ovBox.c + +remote_viewer-ovBox.obj: view/ovBox.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-ovBox.obj -MD -MP -MF $(DEPDIR)/remote_viewer-ovBox.Tpo -c -o remote_viewer-ovBox.obj `if test -f 'view/ovBox.c'; then $(CYGPATH_W) 'view/ovBox.c'; else $(CYGPATH_W) '$(srcdir)/view/ovBox.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-ovBox.Tpo $(DEPDIR)/remote_viewer-ovBox.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='remote_viewer-ovBox.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-ovBox.obj `if test -f 'view/ovBox.c'; then $(CYGPATH_W) 'view/ovBox.c'; else $(CYGPATH_W) '$(srcdir)/view/ovBox.c'; fi` + +remote_viewer-virt-viewer-session-vnc.o: virt-viewer-session-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-session-vnc.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Tpo -c -o remote_viewer-virt-viewer-session-vnc.o `test -f 'virt-viewer-session-vnc.c' || echo '$(srcdir)/'`virt-viewer-session-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-vnc.c' object='remote_viewer-virt-viewer-session-vnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-session-vnc.o `test -f 'virt-viewer-session-vnc.c' || echo '$(srcdir)/'`virt-viewer-session-vnc.c + +remote_viewer-virt-viewer-session-vnc.obj: virt-viewer-session-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-session-vnc.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Tpo -c -o remote_viewer-virt-viewer-session-vnc.obj `if test -f 'virt-viewer-session-vnc.c'; then $(CYGPATH_W) 'virt-viewer-session-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-vnc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-vnc.c' object='remote_viewer-virt-viewer-session-vnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-session-vnc.obj `if test -f 'virt-viewer-session-vnc.c'; then $(CYGPATH_W) 'virt-viewer-session-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-vnc.c'; fi` + +remote_viewer-virt-viewer-display-vnc.o: virt-viewer-display-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-display-vnc.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Tpo -c -o remote_viewer-virt-viewer-display-vnc.o `test -f 'virt-viewer-display-vnc.c' || echo '$(srcdir)/'`virt-viewer-display-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-vnc.c' object='remote_viewer-virt-viewer-display-vnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-display-vnc.o `test -f 'virt-viewer-display-vnc.c' || echo '$(srcdir)/'`virt-viewer-display-vnc.c + +remote_viewer-virt-viewer-display-vnc.obj: virt-viewer-display-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-display-vnc.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Tpo -c -o remote_viewer-virt-viewer-display-vnc.obj `if test -f 'virt-viewer-display-vnc.c'; then $(CYGPATH_W) 'virt-viewer-display-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-vnc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-vnc.c' object='remote_viewer-virt-viewer-display-vnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-display-vnc.obj `if test -f 'virt-viewer-display-vnc.c'; then $(CYGPATH_W) 'virt-viewer-display-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-vnc.c'; fi` + +remote_viewer-virt-viewer-session-spice.o: virt-viewer-session-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-session-spice.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Tpo -c -o remote_viewer-virt-viewer-session-spice.o `test -f 'virt-viewer-session-spice.c' || echo '$(srcdir)/'`virt-viewer-session-spice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-spice.c' object='remote_viewer-virt-viewer-session-spice.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-session-spice.o `test -f 'virt-viewer-session-spice.c' || echo '$(srcdir)/'`virt-viewer-session-spice.c + +remote_viewer-virt-viewer-session-spice.obj: virt-viewer-session-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-session-spice.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Tpo -c -o remote_viewer-virt-viewer-session-spice.obj `if test -f 'virt-viewer-session-spice.c'; then $(CYGPATH_W) 'virt-viewer-session-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-spice.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-spice.c' object='remote_viewer-virt-viewer-session-spice.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-session-spice.obj `if test -f 'virt-viewer-session-spice.c'; then $(CYGPATH_W) 'virt-viewer-session-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-spice.c'; fi` + +remote_viewer-virt-viewer-display-spice.o: virt-viewer-display-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-display-spice.o -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Tpo -c -o remote_viewer-virt-viewer-display-spice.o `test -f 'virt-viewer-display-spice.c' || echo '$(srcdir)/'`virt-viewer-display-spice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-spice.c' object='remote_viewer-virt-viewer-display-spice.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-display-spice.o `test -f 'virt-viewer-display-spice.c' || echo '$(srcdir)/'`virt-viewer-display-spice.c + +remote_viewer-virt-viewer-display-spice.obj: virt-viewer-display-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-virt-viewer-display-spice.obj -MD -MP -MF $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Tpo -c -o remote_viewer-virt-viewer-display-spice.obj `if test -f 'virt-viewer-display-spice.c'; then $(CYGPATH_W) 'virt-viewer-display-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-spice.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-spice.c' object='remote_viewer-virt-viewer-display-spice.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-virt-viewer-display-spice.obj `if test -f 'virt-viewer-display-spice.c'; then $(CYGPATH_W) 'virt-viewer-display-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-spice.c'; fi` + +remote_viewer-remote-viewer.o: remote-viewer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-remote-viewer.o -MD -MP -MF $(DEPDIR)/remote_viewer-remote-viewer.Tpo -c -o remote_viewer-remote-viewer.o `test -f 'remote-viewer.c' || echo '$(srcdir)/'`remote-viewer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer.Tpo $(DEPDIR)/remote_viewer-remote-viewer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer.c' object='remote_viewer-remote-viewer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-remote-viewer.o `test -f 'remote-viewer.c' || echo '$(srcdir)/'`remote-viewer.c + +remote_viewer-remote-viewer.obj: remote-viewer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-remote-viewer.obj -MD -MP -MF $(DEPDIR)/remote_viewer-remote-viewer.Tpo -c -o remote_viewer-remote-viewer.obj `if test -f 'remote-viewer.c'; then $(CYGPATH_W) 'remote-viewer.c'; else $(CYGPATH_W) '$(srcdir)/remote-viewer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer.Tpo $(DEPDIR)/remote_viewer-remote-viewer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer.c' object='remote_viewer-remote-viewer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-remote-viewer.obj `if test -f 'remote-viewer.c'; then $(CYGPATH_W) 'remote-viewer.c'; else $(CYGPATH_W) '$(srcdir)/remote-viewer.c'; fi` + +remote_viewer-remote-viewer-main.o: remote-viewer-main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-remote-viewer-main.o -MD -MP -MF $(DEPDIR)/remote_viewer-remote-viewer-main.Tpo -c -o remote_viewer-remote-viewer-main.o `test -f 'remote-viewer-main.c' || echo '$(srcdir)/'`remote-viewer-main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer-main.Tpo $(DEPDIR)/remote_viewer-remote-viewer-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer-main.c' object='remote_viewer-remote-viewer-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-remote-viewer-main.o `test -f 'remote-viewer-main.c' || echo '$(srcdir)/'`remote-viewer-main.c + +remote_viewer-remote-viewer-main.obj: remote-viewer-main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -MT remote_viewer-remote-viewer-main.obj -MD -MP -MF $(DEPDIR)/remote_viewer-remote-viewer-main.Tpo -c -o remote_viewer-remote-viewer-main.obj `if test -f 'remote-viewer-main.c'; then $(CYGPATH_W) 'remote-viewer-main.c'; else $(CYGPATH_W) '$(srcdir)/remote-viewer-main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer-main.Tpo $(DEPDIR)/remote_viewer-remote-viewer-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer-main.c' object='remote_viewer-remote-viewer-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(remote_viewer_CFLAGS) $(CFLAGS) -c -o remote_viewer-remote-viewer-main.obj `if test -f 'remote-viewer-main.c'; then $(CYGPATH_W) 'remote-viewer-main.c'; else $(CYGPATH_W) '$(srcdir)/remote-viewer-main.c'; fi` + +virt_viewer-virt-viewer-enums.o: virt-viewer-enums.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-enums.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-enums.Tpo -c -o virt_viewer-virt-viewer-enums.o `test -f 'virt-viewer-enums.c' || echo '$(srcdir)/'`virt-viewer-enums.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-enums.Tpo $(DEPDIR)/virt_viewer-virt-viewer-enums.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='virt_viewer-virt-viewer-enums.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-enums.o `test -f 'virt-viewer-enums.c' || echo '$(srcdir)/'`virt-viewer-enums.c + +virt_viewer-virt-viewer-enums.obj: virt-viewer-enums.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-enums.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-enums.Tpo -c -o virt_viewer-virt-viewer-enums.obj `if test -f 'virt-viewer-enums.c'; then $(CYGPATH_W) 'virt-viewer-enums.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-enums.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-enums.Tpo $(DEPDIR)/virt_viewer-virt-viewer-enums.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='virt_viewer-virt-viewer-enums.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-enums.obj `if test -f 'virt-viewer-enums.c'; then $(CYGPATH_W) 'virt-viewer-enums.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-enums.c'; fi` + +virt_viewer-virt-viewer-util.o: virt-viewer-util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-util.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo -c -o virt_viewer-virt-viewer-util.o `test -f 'virt-viewer-util.c' || echo '$(srcdir)/'`virt-viewer-util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-util.o `test -f 'virt-viewer-util.c' || echo '$(srcdir)/'`virt-viewer-util.c + +virt_viewer-virt-viewer-util.obj: virt-viewer-util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-util.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo -c -o virt_viewer-virt-viewer-util.obj `if test -f 'virt-viewer-util.c'; then $(CYGPATH_W) 'virt-viewer-util.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-util.obj `if test -f 'virt-viewer-util.c'; then $(CYGPATH_W) 'virt-viewer-util.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-util.c'; fi` + +virt_viewer-virt-viewer-auth.o: virt-viewer-auth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-auth.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo -c -o virt_viewer-virt-viewer-auth.o `test -f 'virt-viewer-auth.c' || echo '$(srcdir)/'`virt-viewer-auth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-auth.o `test -f 'virt-viewer-auth.c' || echo '$(srcdir)/'`virt-viewer-auth.c + +virt_viewer-virt-viewer-auth.obj: virt-viewer-auth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-auth.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo -c -o virt_viewer-virt-viewer-auth.obj `if test -f 'virt-viewer-auth.c'; then $(CYGPATH_W) 'virt-viewer-auth.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-auth.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-auth.obj `if test -f 'virt-viewer-auth.c'; then $(CYGPATH_W) 'virt-viewer-auth.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-auth.c'; fi` + +virt_viewer-virt-viewer-app.o: virt-viewer-app.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-app.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo -c -o virt_viewer-virt-viewer-app.o `test -f 'virt-viewer-app.c' || echo '$(srcdir)/'`virt-viewer-app.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-app.o `test -f 'virt-viewer-app.c' || echo '$(srcdir)/'`virt-viewer-app.c + +virt_viewer-virt-viewer-app.obj: virt-viewer-app.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-app.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo -c -o virt_viewer-virt-viewer-app.obj `if test -f 'virt-viewer-app.c'; then $(CYGPATH_W) 'virt-viewer-app.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-app.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-app.obj `if test -f 'virt-viewer-app.c'; then $(CYGPATH_W) 'virt-viewer-app.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-app.c'; fi` + +virt_viewer-virt-viewer-session.o: virt-viewer-session.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo -c -o virt_viewer-virt-viewer-session.o `test -f 'virt-viewer-session.c' || echo '$(srcdir)/'`virt-viewer-session.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session.o `test -f 'virt-viewer-session.c' || echo '$(srcdir)/'`virt-viewer-session.c + +virt_viewer-virt-viewer-session.obj: virt-viewer-session.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo -c -o virt_viewer-virt-viewer-session.obj `if test -f 'virt-viewer-session.c'; then $(CYGPATH_W) 'virt-viewer-session.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session.obj `if test -f 'virt-viewer-session.c'; then $(CYGPATH_W) 'virt-viewer-session.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session.c'; fi` + +virt_viewer-virt-viewer-display.o: virt-viewer-display.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo -c -o virt_viewer-virt-viewer-display.o `test -f 'virt-viewer-display.c' || echo '$(srcdir)/'`virt-viewer-display.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display.o `test -f 'virt-viewer-display.c' || echo '$(srcdir)/'`virt-viewer-display.c + +virt_viewer-virt-viewer-display.obj: virt-viewer-display.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo -c -o virt_viewer-virt-viewer-display.obj `if test -f 'virt-viewer-display.c'; then $(CYGPATH_W) 'virt-viewer-display.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display.obj `if test -f 'virt-viewer-display.c'; then $(CYGPATH_W) 'virt-viewer-display.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display.c'; fi` + +virt_viewer-virt-viewer-notebook.o: virt-viewer-notebook.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-notebook.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo -c -o virt_viewer-virt-viewer-notebook.o `test -f 'virt-viewer-notebook.c' || echo '$(srcdir)/'`virt-viewer-notebook.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-notebook.o `test -f 'virt-viewer-notebook.c' || echo '$(srcdir)/'`virt-viewer-notebook.c + +virt_viewer-virt-viewer-notebook.obj: virt-viewer-notebook.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-notebook.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo -c -o virt_viewer-virt-viewer-notebook.obj `if test -f 'virt-viewer-notebook.c'; then $(CYGPATH_W) 'virt-viewer-notebook.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-notebook.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-notebook.obj `if test -f 'virt-viewer-notebook.c'; then $(CYGPATH_W) 'virt-viewer-notebook.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-notebook.c'; fi` + +virt_viewer-virt-viewer-window.o: virt-viewer-window.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-window.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo -c -o virt_viewer-virt-viewer-window.o `test -f 'virt-viewer-window.c' || echo '$(srcdir)/'`virt-viewer-window.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-window.o `test -f 'virt-viewer-window.c' || echo '$(srcdir)/'`virt-viewer-window.c + +virt_viewer-virt-viewer-window.obj: virt-viewer-window.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-window.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo -c -o virt_viewer-virt-viewer-window.obj `if test -f 'virt-viewer-window.c'; then $(CYGPATH_W) 'virt-viewer-window.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-window.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-window.obj `if test -f 'virt-viewer-window.c'; then $(CYGPATH_W) 'virt-viewer-window.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-window.c'; fi` + +virt_viewer-autoDrawer.o: view/autoDrawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-autoDrawer.o -MD -MP -MF $(DEPDIR)/virt_viewer-autoDrawer.Tpo -c -o virt_viewer-autoDrawer.o `test -f 'view/autoDrawer.c' || echo '$(srcdir)/'`view/autoDrawer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='virt_viewer-autoDrawer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-autoDrawer.o `test -f 'view/autoDrawer.c' || echo '$(srcdir)/'`view/autoDrawer.c + +virt_viewer-autoDrawer.obj: view/autoDrawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-autoDrawer.obj -MD -MP -MF $(DEPDIR)/virt_viewer-autoDrawer.Tpo -c -o virt_viewer-autoDrawer.obj `if test -f 'view/autoDrawer.c'; then $(CYGPATH_W) 'view/autoDrawer.c'; else $(CYGPATH_W) '$(srcdir)/view/autoDrawer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='virt_viewer-autoDrawer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-autoDrawer.obj `if test -f 'view/autoDrawer.c'; then $(CYGPATH_W) 'view/autoDrawer.c'; else $(CYGPATH_W) '$(srcdir)/view/autoDrawer.c'; fi` + +virt_viewer-drawer.o: view/drawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-drawer.o -MD -MP -MF $(DEPDIR)/virt_viewer-drawer.Tpo -c -o virt_viewer-drawer.o `test -f 'view/drawer.c' || echo '$(srcdir)/'`view/drawer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='virt_viewer-drawer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-drawer.o `test -f 'view/drawer.c' || echo '$(srcdir)/'`view/drawer.c + +virt_viewer-drawer.obj: view/drawer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-drawer.obj -MD -MP -MF $(DEPDIR)/virt_viewer-drawer.Tpo -c -o virt_viewer-drawer.obj `if test -f 'view/drawer.c'; then $(CYGPATH_W) 'view/drawer.c'; else $(CYGPATH_W) '$(srcdir)/view/drawer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='virt_viewer-drawer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-drawer.obj `if test -f 'view/drawer.c'; then $(CYGPATH_W) 'view/drawer.c'; else $(CYGPATH_W) '$(srcdir)/view/drawer.c'; fi` + +virt_viewer-ovBox.o: view/ovBox.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-ovBox.o -MD -MP -MF $(DEPDIR)/virt_viewer-ovBox.Tpo -c -o virt_viewer-ovBox.o `test -f 'view/ovBox.c' || echo '$(srcdir)/'`view/ovBox.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='virt_viewer-ovBox.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-ovBox.o `test -f 'view/ovBox.c' || echo '$(srcdir)/'`view/ovBox.c + +virt_viewer-ovBox.obj: view/ovBox.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-ovBox.obj -MD -MP -MF $(DEPDIR)/virt_viewer-ovBox.Tpo -c -o virt_viewer-ovBox.obj `if test -f 'view/ovBox.c'; then $(CYGPATH_W) 'view/ovBox.c'; else $(CYGPATH_W) '$(srcdir)/view/ovBox.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='virt_viewer-ovBox.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-ovBox.obj `if test -f 'view/ovBox.c'; then $(CYGPATH_W) 'view/ovBox.c'; else $(CYGPATH_W) '$(srcdir)/view/ovBox.c'; fi` + +virt_viewer-virt-viewer-session-vnc.o: virt-viewer-session-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-vnc.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo -c -o virt_viewer-virt-viewer-session-vnc.o `test -f 'virt-viewer-session-vnc.c' || echo '$(srcdir)/'`virt-viewer-session-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-vnc.c' object='virt_viewer-virt-viewer-session-vnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-vnc.o `test -f 'virt-viewer-session-vnc.c' || echo '$(srcdir)/'`virt-viewer-session-vnc.c + +virt_viewer-virt-viewer-session-vnc.obj: virt-viewer-session-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-vnc.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo -c -o virt_viewer-virt-viewer-session-vnc.obj `if test -f 'virt-viewer-session-vnc.c'; then $(CYGPATH_W) 'virt-viewer-session-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-vnc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-vnc.c' object='virt_viewer-virt-viewer-session-vnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-vnc.obj `if test -f 'virt-viewer-session-vnc.c'; then $(CYGPATH_W) 'virt-viewer-session-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-vnc.c'; fi` + +virt_viewer-virt-viewer-display-vnc.o: virt-viewer-display-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-vnc.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo -c -o virt_viewer-virt-viewer-display-vnc.o `test -f 'virt-viewer-display-vnc.c' || echo '$(srcdir)/'`virt-viewer-display-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-vnc.c' object='virt_viewer-virt-viewer-display-vnc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-vnc.o `test -f 'virt-viewer-display-vnc.c' || echo '$(srcdir)/'`virt-viewer-display-vnc.c + +virt_viewer-virt-viewer-display-vnc.obj: virt-viewer-display-vnc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-vnc.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo -c -o virt_viewer-virt-viewer-display-vnc.obj `if test -f 'virt-viewer-display-vnc.c'; then $(CYGPATH_W) 'virt-viewer-display-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-vnc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-vnc.c' object='virt_viewer-virt-viewer-display-vnc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-vnc.obj `if test -f 'virt-viewer-display-vnc.c'; then $(CYGPATH_W) 'virt-viewer-display-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-vnc.c'; fi` + +virt_viewer-virt-viewer-session-spice.o: virt-viewer-session-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-spice.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo -c -o virt_viewer-virt-viewer-session-spice.o `test -f 'virt-viewer-session-spice.c' || echo '$(srcdir)/'`virt-viewer-session-spice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-spice.c' object='virt_viewer-virt-viewer-session-spice.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-spice.o `test -f 'virt-viewer-session-spice.c' || echo '$(srcdir)/'`virt-viewer-session-spice.c + +virt_viewer-virt-viewer-session-spice.obj: virt-viewer-session-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-spice.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo -c -o virt_viewer-virt-viewer-session-spice.obj `if test -f 'virt-viewer-session-spice.c'; then $(CYGPATH_W) 'virt-viewer-session-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-spice.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session-spice.c' object='virt_viewer-virt-viewer-session-spice.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-spice.obj `if test -f 'virt-viewer-session-spice.c'; then $(CYGPATH_W) 'virt-viewer-session-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-spice.c'; fi` + +virt_viewer-virt-viewer-display-spice.o: virt-viewer-display-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-spice.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo -c -o virt_viewer-virt-viewer-display-spice.o `test -f 'virt-viewer-display-spice.c' || echo '$(srcdir)/'`virt-viewer-display-spice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-spice.c' object='virt_viewer-virt-viewer-display-spice.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-spice.o `test -f 'virt-viewer-display-spice.c' || echo '$(srcdir)/'`virt-viewer-display-spice.c + +virt_viewer-virt-viewer-display-spice.obj: virt-viewer-display-spice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-spice.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo -c -o virt_viewer-virt-viewer-display-spice.obj `if test -f 'virt-viewer-display-spice.c'; then $(CYGPATH_W) 'virt-viewer-display-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-spice.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display-spice.c' object='virt_viewer-virt-viewer-display-spice.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-spice.obj `if test -f 'virt-viewer-display-spice.c'; then $(CYGPATH_W) 'virt-viewer-display-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-spice.c'; fi` + +virt_viewer-virt-viewer-events.o: virt-viewer-events.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-events.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo -c -o virt_viewer-virt-viewer-events.o `test -f 'virt-viewer-events.c' || echo '$(srcdir)/'`virt-viewer-events.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-events.o `test -f 'virt-viewer-events.c' || echo '$(srcdir)/'`virt-viewer-events.c + +virt_viewer-virt-viewer-events.obj: virt-viewer-events.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-events.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo -c -o virt_viewer-virt-viewer-events.obj `if test -f 'virt-viewer-events.c'; then $(CYGPATH_W) 'virt-viewer-events.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-events.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-events.obj `if test -f 'virt-viewer-events.c'; then $(CYGPATH_W) 'virt-viewer-events.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-events.c'; fi` + +virt_viewer-virt-viewer.o: virt-viewer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer.Tpo -c -o virt_viewer-virt-viewer.o `test -f 'virt-viewer.c' || echo '$(srcdir)/'`virt-viewer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer.c' object='virt_viewer-virt-viewer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer.o `test -f 'virt-viewer.c' || echo '$(srcdir)/'`virt-viewer.c + +virt_viewer-virt-viewer.obj: virt-viewer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer.Tpo -c -o virt_viewer-virt-viewer.obj `if test -f 'virt-viewer.c'; then $(CYGPATH_W) 'virt-viewer.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer.c' object='virt_viewer-virt-viewer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer.obj `if test -f 'virt-viewer.c'; then $(CYGPATH_W) 'virt-viewer.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer.c'; fi` virt_viewer-virt-viewer-main.o: virt-viewer-main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-main.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-main.Tpo -c -o virt_viewer-virt-viewer-main.o `test -f 'virt-viewer-main.c' || echo '$(srcdir)/'`virt-viewer-main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-main.Tpo $(DEPDIR)/virt_viewer-virt-viewer-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-main.o `test -f 'virt-viewer-main.c' || echo '$(srcdir)/'`virt-viewer-main.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-main.o `test -f 'virt-viewer-main.c' || echo '$(srcdir)/'`virt-viewer-main.c virt_viewer-virt-viewer-main.obj: virt-viewer-main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-main.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-main.Tpo -c -o virt_viewer-virt-viewer-main.obj `if test -f 'virt-viewer-main.c'; then $(CYGPATH_W) 'virt-viewer-main.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-main.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-main.Tpo $(DEPDIR)/virt_viewer-virt-viewer-main.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-main.obj `if test -f 'virt-viewer-main.c'; then $(CYGPATH_W) 'virt-viewer-main.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-main.c'; fi` - -virt_viewer-virt-viewer.o: virt-viewer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer.Tpo -c -o virt_viewer-virt-viewer.o `test -f 'virt-viewer.c' || echo '$(srcdir)/'`virt-viewer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer.c' object='virt_viewer-virt-viewer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer.o `test -f 'virt-viewer.c' || echo '$(srcdir)/'`virt-viewer.c - -virt_viewer-virt-viewer.obj: virt-viewer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer.Tpo -c -o virt_viewer-virt-viewer.obj `if test -f 'virt-viewer.c'; then $(CYGPATH_W) 'virt-viewer.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer.c' object='virt_viewer-virt-viewer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer.obj `if test -f 'virt-viewer.c'; then $(CYGPATH_W) 'virt-viewer.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer.c'; fi` - -virt_viewer-virt-viewer-util.o: virt-viewer-util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-util.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo -c -o virt_viewer-virt-viewer-util.o `test -f 'virt-viewer-util.c' || echo '$(srcdir)/'`virt-viewer-util.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-util.o `test -f 'virt-viewer-util.c' || echo '$(srcdir)/'`virt-viewer-util.c - -virt_viewer-virt-viewer-util.obj: virt-viewer-util.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-util.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo -c -o virt_viewer-virt-viewer-util.obj `if test -f 'virt-viewer-util.c'; then $(CYGPATH_W) 'virt-viewer-util.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-util.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-util.obj `if test -f 'virt-viewer-util.c'; then $(CYGPATH_W) 'virt-viewer-util.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-util.c'; fi` - -virt_viewer-virt-viewer-auth.o: virt-viewer-auth.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-auth.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo -c -o virt_viewer-virt-viewer-auth.o `test -f 'virt-viewer-auth.c' || echo '$(srcdir)/'`virt-viewer-auth.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-auth.o `test -f 'virt-viewer-auth.c' || echo '$(srcdir)/'`virt-viewer-auth.c - -virt_viewer-virt-viewer-auth.obj: virt-viewer-auth.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-auth.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo -c -o virt_viewer-virt-viewer-auth.obj `if test -f 'virt-viewer-auth.c'; then $(CYGPATH_W) 'virt-viewer-auth.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-auth.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-auth.obj `if test -f 'virt-viewer-auth.c'; then $(CYGPATH_W) 'virt-viewer-auth.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-auth.c'; fi` - -virt_viewer-virt-viewer-events.o: virt-viewer-events.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-events.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo -c -o virt_viewer-virt-viewer-events.o `test -f 'virt-viewer-events.c' || echo '$(srcdir)/'`virt-viewer-events.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-events.o `test -f 'virt-viewer-events.c' || echo '$(srcdir)/'`virt-viewer-events.c - -virt_viewer-virt-viewer-events.obj: virt-viewer-events.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-events.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo -c -o virt_viewer-virt-viewer-events.obj `if test -f 'virt-viewer-events.c'; then $(CYGPATH_W) 'virt-viewer-events.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-events.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-events.obj `if test -f 'virt-viewer-events.c'; then $(CYGPATH_W) 'virt-viewer-events.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-events.c'; fi` - -virt_viewer-virt-viewer-app.o: virt-viewer-app.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-app.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo -c -o virt_viewer-virt-viewer-app.o `test -f 'virt-viewer-app.c' || echo '$(srcdir)/'`virt-viewer-app.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-app.o `test -f 'virt-viewer-app.c' || echo '$(srcdir)/'`virt-viewer-app.c - -virt_viewer-virt-viewer-app.obj: virt-viewer-app.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-app.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo -c -o virt_viewer-virt-viewer-app.obj `if test -f 'virt-viewer-app.c'; then $(CYGPATH_W) 'virt-viewer-app.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-app.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-app.obj `if test -f 'virt-viewer-app.c'; then $(CYGPATH_W) 'virt-viewer-app.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-app.c'; fi` - -virt_viewer-virt-viewer-session.o: virt-viewer-session.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo -c -o virt_viewer-virt-viewer-session.o `test -f 'virt-viewer-session.c' || echo '$(srcdir)/'`virt-viewer-session.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session.o `test -f 'virt-viewer-session.c' || echo '$(srcdir)/'`virt-viewer-session.c - -virt_viewer-virt-viewer-session.obj: virt-viewer-session.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo -c -o virt_viewer-virt-viewer-session.obj `if test -f 'virt-viewer-session.c'; then $(CYGPATH_W) 'virt-viewer-session.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session.obj `if test -f 'virt-viewer-session.c'; then $(CYGPATH_W) 'virt-viewer-session.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session.c'; fi` - -virt_viewer-virt-viewer-session-vnc.o: virt-viewer-session-vnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-vnc.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo -c -o virt_viewer-virt-viewer-session-vnc.o `test -f 'virt-viewer-session-vnc.c' || echo '$(srcdir)/'`virt-viewer-session-vnc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-vnc.c' object='virt_viewer-virt-viewer-session-vnc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-vnc.o `test -f 'virt-viewer-session-vnc.c' || echo '$(srcdir)/'`virt-viewer-session-vnc.c - -virt_viewer-virt-viewer-session-vnc.obj: virt-viewer-session-vnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-vnc.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo -c -o virt_viewer-virt-viewer-session-vnc.obj `if test -f 'virt-viewer-session-vnc.c'; then $(CYGPATH_W) 'virt-viewer-session-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-vnc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-vnc.c' object='virt_viewer-virt-viewer-session-vnc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-vnc.obj `if test -f 'virt-viewer-session-vnc.c'; then $(CYGPATH_W) 'virt-viewer-session-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-vnc.c'; fi` - -virt_viewer-virt-viewer-display.o: virt-viewer-display.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo -c -o virt_viewer-virt-viewer-display.o `test -f 'virt-viewer-display.c' || echo '$(srcdir)/'`virt-viewer-display.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display.o `test -f 'virt-viewer-display.c' || echo '$(srcdir)/'`virt-viewer-display.c - -virt_viewer-virt-viewer-display.obj: virt-viewer-display.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo -c -o virt_viewer-virt-viewer-display.obj `if test -f 'virt-viewer-display.c'; then $(CYGPATH_W) 'virt-viewer-display.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display.obj `if test -f 'virt-viewer-display.c'; then $(CYGPATH_W) 'virt-viewer-display.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display.c'; fi` - -virt_viewer-virt-viewer-display-vnc.o: virt-viewer-display-vnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-vnc.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo -c -o virt_viewer-virt-viewer-display-vnc.o `test -f 'virt-viewer-display-vnc.c' || echo '$(srcdir)/'`virt-viewer-display-vnc.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-vnc.c' object='virt_viewer-virt-viewer-display-vnc.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-vnc.o `test -f 'virt-viewer-display-vnc.c' || echo '$(srcdir)/'`virt-viewer-display-vnc.c - -virt_viewer-virt-viewer-display-vnc.obj: virt-viewer-display-vnc.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-vnc.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo -c -o virt_viewer-virt-viewer-display-vnc.obj `if test -f 'virt-viewer-display-vnc.c'; then $(CYGPATH_W) 'virt-viewer-display-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-vnc.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-vnc.c' object='virt_viewer-virt-viewer-display-vnc.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-vnc.obj `if test -f 'virt-viewer-display-vnc.c'; then $(CYGPATH_W) 'virt-viewer-display-vnc.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-vnc.c'; fi` - -virt_viewer-virt-viewer-notebook.o: virt-viewer-notebook.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-notebook.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo -c -o virt_viewer-virt-viewer-notebook.o `test -f 'virt-viewer-notebook.c' || echo '$(srcdir)/'`virt-viewer-notebook.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-notebook.o `test -f 'virt-viewer-notebook.c' || echo '$(srcdir)/'`virt-viewer-notebook.c - -virt_viewer-virt-viewer-notebook.obj: virt-viewer-notebook.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-notebook.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo -c -o virt_viewer-virt-viewer-notebook.obj `if test -f 'virt-viewer-notebook.c'; then $(CYGPATH_W) 'virt-viewer-notebook.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-notebook.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-notebook.obj `if test -f 'virt-viewer-notebook.c'; then $(CYGPATH_W) 'virt-viewer-notebook.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-notebook.c'; fi` - -virt_viewer-virt-viewer-window.o: virt-viewer-window.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-window.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo -c -o virt_viewer-virt-viewer-window.o `test -f 'virt-viewer-window.c' || echo '$(srcdir)/'`virt-viewer-window.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-window.o `test -f 'virt-viewer-window.c' || echo '$(srcdir)/'`virt-viewer-window.c - -virt_viewer-virt-viewer-window.obj: virt-viewer-window.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-window.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo -c -o virt_viewer-virt-viewer-window.obj `if test -f 'virt-viewer-window.c'; then $(CYGPATH_W) 'virt-viewer-window.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-window.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-window.obj `if test -f 'virt-viewer-window.c'; then $(CYGPATH_W) 'virt-viewer-window.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-window.c'; fi` - -virt_viewer-autoDrawer.o: view/autoDrawer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-autoDrawer.o -MD -MP -MF $(DEPDIR)/virt_viewer-autoDrawer.Tpo -c -o virt_viewer-autoDrawer.o `test -f 'view/autoDrawer.c' || echo '$(srcdir)/'`view/autoDrawer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/autoDrawer.c' object='virt_viewer-autoDrawer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-autoDrawer.o `test -f 'view/autoDrawer.c' || echo '$(srcdir)/'`view/autoDrawer.c - -virt_viewer-autoDrawer.obj: view/autoDrawer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-autoDrawer.obj -MD -MP -MF $(DEPDIR)/virt_viewer-autoDrawer.Tpo -c -o virt_viewer-autoDrawer.obj `if test -f 'view/autoDrawer.c'; then $(CYGPATH_W) 'view/autoDrawer.c'; else $(CYGPATH_W) '$(srcdir)/view/autoDrawer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/autoDrawer.c' object='virt_viewer-autoDrawer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-autoDrawer.obj `if test -f 'view/autoDrawer.c'; then $(CYGPATH_W) 'view/autoDrawer.c'; else $(CYGPATH_W) '$(srcdir)/view/autoDrawer.c'; fi` - -virt_viewer-drawer.o: view/drawer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-drawer.o -MD -MP -MF $(DEPDIR)/virt_viewer-drawer.Tpo -c -o virt_viewer-drawer.o `test -f 'view/drawer.c' || echo '$(srcdir)/'`view/drawer.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/drawer.c' object='virt_viewer-drawer.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-drawer.o `test -f 'view/drawer.c' || echo '$(srcdir)/'`view/drawer.c - -virt_viewer-drawer.obj: view/drawer.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-drawer.obj -MD -MP -MF $(DEPDIR)/virt_viewer-drawer.Tpo -c -o virt_viewer-drawer.obj `if test -f 'view/drawer.c'; then $(CYGPATH_W) 'view/drawer.c'; else $(CYGPATH_W) '$(srcdir)/view/drawer.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/drawer.c' object='virt_viewer-drawer.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-drawer.obj `if test -f 'view/drawer.c'; then $(CYGPATH_W) 'view/drawer.c'; else $(CYGPATH_W) '$(srcdir)/view/drawer.c'; fi` - -virt_viewer-ovBox.o: view/ovBox.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-ovBox.o -MD -MP -MF $(DEPDIR)/virt_viewer-ovBox.Tpo -c -o virt_viewer-ovBox.o `test -f 'view/ovBox.c' || echo '$(srcdir)/'`view/ovBox.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/ovBox.c' object='virt_viewer-ovBox.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-ovBox.o `test -f 'view/ovBox.c' || echo '$(srcdir)/'`view/ovBox.c - -virt_viewer-ovBox.obj: view/ovBox.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-ovBox.obj -MD -MP -MF $(DEPDIR)/virt_viewer-ovBox.Tpo -c -o virt_viewer-ovBox.obj `if test -f 'view/ovBox.c'; then $(CYGPATH_W) 'view/ovBox.c'; else $(CYGPATH_W) '$(srcdir)/view/ovBox.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/ovBox.c' object='virt_viewer-ovBox.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-ovBox.obj `if test -f 'view/ovBox.c'; then $(CYGPATH_W) 'view/ovBox.c'; else $(CYGPATH_W) '$(srcdir)/view/ovBox.c'; fi` - -virt_viewer-virt-viewer-session-spice.o: virt-viewer-session-spice.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-spice.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo -c -o virt_viewer-virt-viewer-session-spice.o `test -f 'virt-viewer-session-spice.c' || echo '$(srcdir)/'`virt-viewer-session-spice.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-spice.c' object='virt_viewer-virt-viewer-session-spice.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-spice.o `test -f 'virt-viewer-session-spice.c' || echo '$(srcdir)/'`virt-viewer-session-spice.c - -virt_viewer-virt-viewer-session-spice.obj: virt-viewer-session-spice.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-session-spice.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo -c -o virt_viewer-virt-viewer-session-spice.obj `if test -f 'virt-viewer-session-spice.c'; then $(CYGPATH_W) 'virt-viewer-session-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-spice.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-spice.c' object='virt_viewer-virt-viewer-session-spice.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-session-spice.obj `if test -f 'virt-viewer-session-spice.c'; then $(CYGPATH_W) 'virt-viewer-session-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-session-spice.c'; fi` - -virt_viewer-virt-viewer-display-spice.o: virt-viewer-display-spice.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-spice.o -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo -c -o virt_viewer-virt-viewer-display-spice.o `test -f 'virt-viewer-display-spice.c' || echo '$(srcdir)/'`virt-viewer-display-spice.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-spice.c' object='virt_viewer-virt-viewer-display-spice.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-spice.o `test -f 'virt-viewer-display-spice.c' || echo '$(srcdir)/'`virt-viewer-display-spice.c - -virt_viewer-virt-viewer-display-spice.obj: virt-viewer-display-spice.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -MT virt_viewer-virt-viewer-display-spice.obj -MD -MP -MF $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo -c -o virt_viewer-virt-viewer-display-spice.obj `if test -f 'virt-viewer-display-spice.c'; then $(CYGPATH_W) 'virt-viewer-display-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-spice.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-spice.c' object='virt_viewer-virt-viewer-display-spice.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-display-spice.obj `if test -f 'virt-viewer-display-spice.c'; then $(CYGPATH_W) 'virt-viewer-display-spice.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-display-spice.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(virt_viewer_CFLAGS) $(CFLAGS) -c -o virt_viewer-virt-viewer-main.obj `if test -f 'virt-viewer-main.c'; then $(CYGPATH_W) 'virt-viewer-main.c'; else $(CYGPATH_W) '$(srcdir)/virt-viewer-main.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -743,8 +1170,11 @@ -rm -rf .libs _libs install-builderxmlDATA: $(builderxml_DATA) @$(NORMAL_INSTALL) - test -z "$(builderxmldir)" || $(MKDIR_P) "$(DESTDIR)$(builderxmldir)" @list='$(builderxml_DATA)'; test -n "$(builderxmldir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(builderxmldir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(builderxmldir)" || exit 1; \ + fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ @@ -758,9 +1188,28 @@ @$(NORMAL_UNINSTALL) @list='$(builderxml_DATA)'; test -n "$(builderxmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(builderxmldir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(builderxmldir)" && rm -f $$files + dir='$(DESTDIR)$(builderxmldir)'; $(am__uninstall_files_from_dir) +install-desktopDATA: $(desktop_DATA) + @$(NORMAL_INSTALL) + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ + done + +uninstall-desktopDATA: + @$(NORMAL_UNINSTALL) + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -811,6 +1260,20 @@ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -845,13 +1308,15 @@ fi; \ done check-am: all-am -check: check-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) $(DATA) installdirs: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)" "$(DESTDIR)$(desktopdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-am +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -861,10 +1326,15 @@ installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -876,6 +1346,8 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am @@ -898,7 +1370,7 @@ info-am: -install-data-am: install-builderxmlDATA +install-data-am: install-builderxmlDATA install-desktopDATA install-dvi: install-dvi-am @@ -944,25 +1416,40 @@ ps-am: -uninstall-am: uninstall-binPROGRAMS uninstall-builderxmlDATA - -.MAKE: install-am install-strip +uninstall-am: uninstall-binPROGRAMS uninstall-builderxmlDATA \ + uninstall-desktopDATA + +.MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic clean-libtool ctags distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-builderxmlDATA install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-builderxmlDATA - + clean-generic clean-libtool cscopelist ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-builderxmlDATA \ + install-data install-data-am install-desktopDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-builderxmlDATA \ + uninstall-desktopDATA + + +$(BUILT_SOURCES): %: %.etemplate $(ENUMS_FILES) + $(AM_V_GEN)$(GLIB_MKENUMS) --template $^ | \ + sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \ + -e 's,#include "$(srcdir)/,#include ",' > $@ + +@OS_WIN32_TRUE@virt-viewer_rc.$(OBJEXT): $(VIRT_VIEWER_RES) $(ICONDIR)/virt-viewer.ico +@OS_WIN32_TRUE@ $(AM_V_GEN)$(WINDRES) \ +@OS_WIN32_TRUE@ -DICONDIR='\"$(ICONDIR)\"' \ +@OS_WIN32_TRUE@ -DMANIFESTDIR='\"$(MANIFESTDIR)\"' \ +@OS_WIN32_TRUE@ -i $< -o $@ + +-include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/src/gbinding.c b/src/gbinding.c new file mode 100644 index 0000000..5b5757c --- /dev/null +++ b/src/gbinding.c @@ -0,0 +1,1221 @@ +/* gbinding.c: Binding for object properties + * + * Copyright (C) 2010 Intel Corp. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Emmanuele Bassi + */ + +/** + * SECTION:gbinding + * @Title: GBinding + * @Short_Description: Bind two object properties + * + * #GBinding is the representation of a binding between a property on a + * #GObject instance (or source) and another property on another #GObject + * instance (or target). Whenever the source property changes, the same + * value is applied to the target property; for instance, the following + * binding: + * + * |[ + * g_object_bind_property (object1, "property-a", + * object2, "property-b", + * G_BINDING_DEFAULT); + * ]| + * + * will cause object2:property-b to be updated every + * time g_object_set() or the specific accessor changes the value of + * object1:property-a. + * + * It is possible to create a bidirectional binding between two properties + * of two #GObject instances, so that if either property changes, the + * other is updated as well, for instance: + * + * |[ + * g_object_bind_property (object1, "property-a", + * object2, "property-b", + * G_BINDING_BIDIRECTIONAL); + * ]| + * + * will keep the two properties in sync. + * + * It is also possible to set a custom transformation function (in both + * directions, in case of a bidirectional binding) to apply a custom + * transformation from the source value to the target value before + * applying it; for instance, the following binding: + * + * |[ + * g_object_bind_property_full (adjustment1, "value", + * adjustment2, "value", + * G_BINDING_BIDIRECTIONAL, + * celsius_to_fahrenheit, + * fahrenheit_to_celsius, + * NULL, NULL); + * ]| + * + * will keep the value property of the two adjustments + * in sync; the celsius_to_fahrenheit function will be + * called whenever the adjustment1:value property changes + * and will transform the current value of the property before applying it + * to the adjustment2:value property; vice versa, the + * fahrenheit_to_celsius function will be called whenever + * the adjustment2:value property changes, and will + * transform the current value of the property before applying it to the + * adjustment1:value. + * + * Note that #GBinding does not resolve cycles by itself; a cycle like + * + * |[ + * object1:propertyA -> object2:propertyB + * object2:propertyB -> object3:propertyC + * object3:propertyC -> object1:propertyA + * ]| + * + * might lead to an infinite loop. The loop, in this particular case, + * can be avoided if the objects emit the #GObject::notify signal only + * if the value has effectively been changed. A binding is implemented + * using the #GObject::notify signal, so it is susceptible to all the + * various ways of blocking a signal emission, like g_signal_stop_emission() + * or g_signal_handler_block(). + * + * A binding will be severed, and the resources it allocates freed, whenever + * either one of the #GObject instances it refers to are finalized, or when + * the #GBinding instance loses its last reference. + * + * #GBinding is available since GObject 2.26 + */ + +#include + +#ifndef G_VALUE_INIT +#define G_VALUE_INIT { 0, { { 0 } } } +#endif + +#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer + +static void +g_cclosure_user_marshal_BOOLEAN__BOXED_BOXED (GClosure *closure, + GValue *return_value G_GNUC_UNUSED, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint G_GNUC_UNUSED, + gpointer marshal_data) +{ + typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED) (gpointer data1, + gpointer arg_1, + gpointer arg_2, + gpointer data2); + register GMarshalFunc_BOOLEAN__BOXED_BOXED callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + gboolean v_return; + + g_return_if_fail (return_value != NULL); + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED) (marshal_data ? marshal_data : cc->callback); + + v_return = callback (data1, + g_marshal_value_peek_boxed (param_values + 1), + g_marshal_value_peek_boxed (param_values + 2), + data2); + + g_value_set_boolean (return_value, v_return); +} + +GType +g_binding_flags_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GFlagsValue values[] = { + { G_BINDING_DEFAULT, "G_BINDING_DEFAULT", "default" }, + { G_BINDING_BIDIRECTIONAL, "G_BINDING_BIDIRECTIONAL", "bidirectional" }, + { G_BINDING_SYNC_CREATE, "G_BINDING_SYNC_CREATE", "sync-create" }, + { G_BINDING_INVERT_BOOLEAN, "G_BINDING_INVERT_BOOLEAN", "invert-boolean" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_flags_register_static (g_intern_static_string ("GBindingFlags"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +#define G_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_BINDING, GBindingClass)) +#define G_IS_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_BINDING)) +#define G_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_BINDING, GBindingClass)) + +typedef struct _GBindingClass GBindingClass; + +struct _GBinding +{ + GObject parent_instance; + + /* no reference is held on the objects, to avoid cycles */ + GObject *source; + GObject *target; + + /* the property names are interned, so they should not be freed */ + const gchar *source_property; + const gchar *target_property; + + GParamSpec *source_pspec; + GParamSpec *target_pspec; + + GBindingTransformFunc transform_s2t; + GBindingTransformFunc transform_t2s; + + GBindingFlags flags; + + guint source_notify; + guint target_notify; + + gpointer transform_data; + GDestroyNotify notify; + + /* a guard, to avoid loops */ + guint is_frozen : 1; +}; + +struct _GBindingClass +{ + GObjectClass parent_class; +}; + +enum +{ + PROP_00, + + PROP_SOURCE, + PROP_TARGET, + PROP_SOURCE_PROPERTY, + PROP_TARGET_PROPERTY, + PROP_FLAGS +}; + +static GQuark quark_gbinding = 0; + +G_DEFINE_TYPE (GBinding, g_binding, G_TYPE_OBJECT); + +static inline void +add_binding_qdata (GObject *gobject, + GBinding *binding) +{ + GHashTable *bindings; + + bindings = g_object_get_qdata (gobject, quark_gbinding); + if (bindings == NULL) + { + bindings = g_hash_table_new (NULL, NULL); + + g_object_set_qdata_full (gobject, quark_gbinding, + bindings, + (GDestroyNotify) g_hash_table_destroy); + } + + g_hash_table_insert (bindings, binding, GUINT_TO_POINTER (1)); +} + +static inline void +remove_binding_qdata (GObject *gobject, + GBinding *binding) +{ + GHashTable *bindings; + + bindings = g_object_get_qdata (gobject, quark_gbinding); + g_hash_table_remove (bindings, binding); +} + +/* the basic assumption is that if either the source or the target + * goes away then the binding does not exist any more and it should + * be reaped as well + */ +static void +weak_unbind (gpointer user_data, + GObject *where_the_object_was) +{ + GBinding *binding = user_data; + + /* if what went away was the source, unset it so that GBinding::finalize + * does not try to access it; otherwise, disconnect everything and remove + * the GBinding instance from the object's qdata + */ + if (binding->source == where_the_object_was) + binding->source = NULL; + else + { + if (binding->source_notify != 0) + g_signal_handler_disconnect (binding->source, binding->source_notify); + + g_object_weak_unref (binding->source, weak_unbind, user_data); + remove_binding_qdata (binding->source, binding); + binding->source = NULL; + } + + /* as above, but with the target */ + if (binding->target == where_the_object_was) + binding->target = NULL; + else + { + if (binding->target_notify != 0) + g_signal_handler_disconnect (binding->target, binding->target_notify); + + g_object_weak_unref (binding->target, weak_unbind, user_data); + remove_binding_qdata (binding->target, binding); + binding->target = NULL; + } + + /* this will take care of the binding itself */ + g_object_unref (binding); +} + +static inline gboolean +default_transform (const GValue *value_a, + GValue *value_b) +{ + /* if it's not the same type, try to convert it using the GValue + * transformation API; otherwise just copy it + */ + if (!g_type_is_a (G_VALUE_TYPE (value_a), G_VALUE_TYPE (value_b))) + { + /* are these two types compatible (can be directly copied)? */ + if (g_value_type_compatible (G_VALUE_TYPE (value_a), + G_VALUE_TYPE (value_b))) + { + g_value_copy (value_a, value_b); + goto done; + } + + if (g_value_type_transformable (G_VALUE_TYPE (value_a), + G_VALUE_TYPE (value_b))) + { + if (g_value_transform (value_a, value_b)) + goto done; + + g_warning ("%s: Unable to convert a value of type %s to a " + "value of type %s", + G_STRLOC, + g_type_name (G_VALUE_TYPE (value_a)), + g_type_name (G_VALUE_TYPE (value_b))); + + return FALSE; + } + } + else + g_value_copy (value_a, value_b); + +done: + return TRUE; +} + +static inline gboolean +default_invert_boolean_transform (const GValue *value_a, + GValue *value_b) +{ + gboolean value; + + g_assert (G_VALUE_HOLDS_BOOLEAN (value_a)); + g_assert (G_VALUE_HOLDS_BOOLEAN (value_b)); + + value = g_value_get_boolean (value_a); + value = !value; + + g_value_set_boolean (value_b, value); + + return TRUE; +} + +static gboolean +default_transform_to (GBinding *binding, + const GValue *value_a, + GValue *value_b, + gpointer user_data G_GNUC_UNUSED) +{ + if (binding->flags & G_BINDING_INVERT_BOOLEAN) + return default_invert_boolean_transform (value_a, value_b); + + return default_transform (value_a, value_b); +} + +static gboolean +default_transform_from (GBinding *binding, + const GValue *value_a, + GValue *value_b, + gpointer user_data G_GNUC_UNUSED) +{ + if (binding->flags & G_BINDING_INVERT_BOOLEAN) + return default_invert_boolean_transform (value_a, value_b); + + return default_transform (value_a, value_b); +} + +static void +on_source_notify (GObject *gobject, + GParamSpec *pspec, + GBinding *binding) +{ + const gchar *p_name; + GValue source_value = G_VALUE_INIT; + GValue target_value = G_VALUE_INIT; + gboolean res; + + if (binding->is_frozen) + return; + + p_name = g_intern_string (pspec->name); + + if (p_name != binding->source_property) + return; + + g_value_init (&source_value, G_PARAM_SPEC_VALUE_TYPE (binding->source_pspec)); + g_value_init (&target_value, G_PARAM_SPEC_VALUE_TYPE (binding->target_pspec)); + + g_object_get_property (binding->source, binding->source_pspec->name, &source_value); + + res = binding->transform_s2t (binding, + &source_value, + &target_value, + binding->transform_data); + if (res) + { + binding->is_frozen = TRUE; + + g_param_value_validate (binding->target_pspec, &target_value); + g_object_set_property (binding->target, binding->target_pspec->name, &target_value); + + binding->is_frozen = FALSE; + } + + g_value_unset (&source_value); + g_value_unset (&target_value); +} + +static void +on_target_notify (GObject *gobject, + GParamSpec *pspec, + GBinding *binding) +{ + const gchar *p_name; + GValue source_value = G_VALUE_INIT; + GValue target_value = G_VALUE_INIT; + gboolean res; + + if (binding->is_frozen) + return; + + p_name = g_intern_string (pspec->name); + + if (p_name != binding->target_property) + return; + + g_value_init (&source_value, G_PARAM_SPEC_VALUE_TYPE (binding->target_pspec)); + g_value_init (&target_value, G_PARAM_SPEC_VALUE_TYPE (binding->source_pspec)); + + g_object_get_property (binding->target, binding->target_pspec->name, &source_value); + + res = binding->transform_t2s (binding, + &source_value, + &target_value, + binding->transform_data); + if (res) + { + binding->is_frozen = TRUE; + + g_param_value_validate (binding->source_pspec, &target_value); + g_object_set_property (binding->source, binding->source_pspec->name, &target_value); + + binding->is_frozen = FALSE; + } + + g_value_unset (&source_value); + g_value_unset (&target_value); +} + +static void +g_binding_finalize (GObject *gobject) +{ + GBinding *binding = G_BINDING (gobject); + + /* dispose of the transformation data */ + if (binding->notify != NULL) + { + binding->notify (binding->transform_data); + + binding->transform_data = NULL; + binding->notify = NULL; + } + + /* we need this in case the source and target instance are still + * valid, and it was the GBinding that was unreferenced + */ + if (binding->source != NULL) + { + if (binding->source_notify != 0) + g_signal_handler_disconnect (binding->source, binding->source_notify); + + g_object_weak_unref (binding->source, weak_unbind, binding); + remove_binding_qdata (binding->source, binding); + } + + if (binding->target != NULL) + { + if (binding->target_notify != 0) + g_signal_handler_disconnect (binding->target, binding->target_notify); + + g_object_weak_unref (binding->target, weak_unbind, binding); + remove_binding_qdata (binding->target, binding); + } + + G_OBJECT_CLASS (g_binding_parent_class)->finalize (gobject); +} + +static void +g_binding_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GBinding *binding = G_BINDING (gobject); + + switch (prop_id) + { + case PROP_SOURCE: + binding->source = g_value_get_object (value); + break; + + case PROP_SOURCE_PROPERTY: + binding->source_property = g_intern_string (g_value_get_string (value)); + break; + + case PROP_TARGET: + binding->target = g_value_get_object (value); + break; + + case PROP_TARGET_PROPERTY: + binding->target_property = g_intern_string (g_value_get_string (value)); + break; + + case PROP_FLAGS: + binding->flags = g_value_get_flags (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +g_binding_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GBinding *binding = G_BINDING (gobject); + + switch (prop_id) + { + case PROP_SOURCE: + g_value_set_object (value, binding->source); + break; + + case PROP_SOURCE_PROPERTY: + g_value_set_string (value, binding->source_property); + break; + + case PROP_TARGET: + g_value_set_object (value, binding->target); + break; + + case PROP_TARGET_PROPERTY: + g_value_set_string (value, binding->target_property); + break; + + case PROP_FLAGS: + g_value_set_flags (value, binding->flags); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +g_binding_constructed (GObject *gobject) +{ + GBinding *binding = G_BINDING (gobject); + + /* assert that we were constructed correctly */ + g_assert (binding->source != NULL); + g_assert (binding->target != NULL); + g_assert (binding->source_property != NULL); + g_assert (binding->target_property != NULL); + + /* we assume a check was performed prior to construction - since + * g_object_bind_property_full() does it; we cannot fail construction + * anyway, so it would be hard for use to properly warn here + */ + binding->source_pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (binding->source), binding->source_property); + binding->target_pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (binding->target), binding->target_property); + g_assert (binding->source_pspec != NULL); + g_assert (binding->target_pspec != NULL); + + /* set the default transformation functions here */ + binding->transform_s2t = default_transform_to; + binding->transform_t2s = default_transform_from; + + binding->transform_data = NULL; + binding->notify = NULL; + + binding->source_notify = g_signal_connect (binding->source, "notify", + G_CALLBACK (on_source_notify), + binding); + + g_object_weak_ref (binding->source, weak_unbind, binding); + add_binding_qdata (binding->source, binding); + + if (binding->flags & G_BINDING_BIDIRECTIONAL) + binding->target_notify = g_signal_connect (binding->target, "notify", + G_CALLBACK (on_target_notify), + binding); + + g_object_weak_ref (binding->target, weak_unbind, binding); + add_binding_qdata (binding->target, binding); + +} + +static void +g_binding_class_init (GBindingClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + quark_gbinding = g_quark_from_static_string ("g-binding"); + + gobject_class->constructed = g_binding_constructed; + gobject_class->set_property = g_binding_set_property; + gobject_class->get_property = g_binding_get_property; + gobject_class->finalize = g_binding_finalize; + + /** + * GBinding:source: + * + * The #GObject that should be used as the source of the binding + * + * Since: 2.26 + */ + g_object_class_install_property (gobject_class, PROP_SOURCE, + g_param_spec_object ("source", + _("Source"), + _("The source of the binding"), + G_TYPE_OBJECT, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + /** + * GBinding:target: + * + * The #GObject that should be used as the target of the binding + * + * Since: 2.26 + */ + g_object_class_install_property (gobject_class, PROP_TARGET, + g_param_spec_object ("target", + _("Target"), + _("The target of the binding"), + G_TYPE_OBJECT, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + /** + * GBinding:source-property: + * + * The name of the property of #GBinding:source that should be used + * as the source of the binding + * + * Since: 2.26 + */ + g_object_class_install_property (gobject_class, PROP_SOURCE_PROPERTY, + g_param_spec_string ("source-property", + _("Source Property"), + _("The property on the source to bind"), + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + /** + * GBinding:target-property: + * + * The name of the property of #GBinding:target that should be used + * as the target of the binding + * + * Since: 2.26 + */ + g_object_class_install_property (gobject_class, PROP_TARGET_PROPERTY, + g_param_spec_string ("target-property", + _("Target Property"), + _("The property on the target to bind"), + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + /** + * GBinding:flags: + * + * Flags to be used to control the #GBinding + * + * Since: 2.26 + */ + g_object_class_install_property (gobject_class, PROP_FLAGS, + g_param_spec_flags ("flags", + _("Flags"), + _("The binding flags"), + G_TYPE_BINDING_FLAGS, + G_BINDING_DEFAULT, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); +} + +static void +g_binding_init (GBinding *binding) +{ +} + +/** + * g_binding_get_flags: + * @binding: a #GBinding + * + * Retrieves the flags passed when constructing the #GBinding + * + * Return value: the #GBindingFlags used by the #GBinding + * + * Since: 2.26 + */ +GBindingFlags +g_binding_get_flags (GBinding *binding) +{ + g_return_val_if_fail (G_IS_BINDING (binding), G_BINDING_DEFAULT); + + return binding->flags; +} + +/** + * g_binding_get_source: + * @binding: a #GBinding + * + * Retrieves the #GObject instance used as the source of the binding + * + * Return value: (transfer none): the source #GObject + * + * Since: 2.26 + */ +GObject * +g_binding_get_source (GBinding *binding) +{ + g_return_val_if_fail (G_IS_BINDING (binding), NULL); + + return binding->source; +} + +/** + * g_binding_get_target: + * @binding: a #GBinding + * + * Retrieves the #GObject instance used as the target of the binding + * + * Return value: (transfer none): the target #GObject + * + * Since: 2.26 + */ +GObject * +g_binding_get_target (GBinding *binding) +{ + g_return_val_if_fail (G_IS_BINDING (binding), NULL); + + return binding->target; +} + +/** + * g_binding_get_source_property: + * @binding: a #GBinding + * + * Retrieves the name of the property of #GBinding:source used as the source + * of the binding + * + * Return value: the name of the source property + * + * Since: 2.26 + */ +const gchar * +g_binding_get_source_property (GBinding *binding) +{ + g_return_val_if_fail (G_IS_BINDING (binding), NULL); + + return binding->source_property; +} + +/** + * g_binding_get_target_property: + * @binding: a #GBinding + * + * Retrieves the name of the property of #GBinding:target used as the target + * of the binding + * + * Return value: the name of the target property + * + * Since: 2.26 + */ +const gchar * +g_binding_get_target_property (GBinding *binding) +{ + g_return_val_if_fail (G_IS_BINDING (binding), NULL); + + return binding->target_property; +} + +/** + * g_object_bind_property_full: + * @source: (type GObject.Object): the source #GObject + * @source_property: the property on @source to bind + * @target: (type GObject.Object): the target #GObject + * @target_property: the property on @target to bind + * @flags: flags to pass to #GBinding + * @transform_to: (scope notified) (allow-none): the transformation function + * from the @source to the @target, or %NULL to use the default + * @transform_from: (scope notified) (allow-none): the transformation function + * from the @target to the @source, or %NULL to use the default + * @user_data: custom data to be passed to the transformation functions, + * or %NULL + * @notify: function to be called when disposing the binding, to free the + * resources used by the transformation functions + * + * Complete version of g_object_bind_property(). + * + * Creates a binding between @source_property on @source and @target_property + * on @target, allowing you to set the transformation functions to be used by + * the binding. + * + * If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: + * if @target_property on @target changes then the @source_property on @source + * will be updated as well. The @transform_from function is only used in case + * of bidirectional bindings, otherwise it will be ignored + * + * The binding will automatically be removed when either the @source or the + * @target instances are finalized. To remove the binding without affecting the + * @source and the @target you can just call g_object_unref() on the returned + * #GBinding instance. + * + * A #GObject can have multiple bindings. + * + * The same @user_data parameter will be used for both @transform_to + * and @transform_from transformation functions; the @notify function will + * be called once, when the binding is removed. If you need different data + * for each transformation function, please use + * g_object_bind_property_with_closures() instead. + * + * Return value: (transfer none): the #GBinding instance representing the + * binding between the two #GObject instances. The binding is released + * whenever the #GBinding reference count reaches zero. + * + * Since: 2.26 + */ +GBinding * +g_object_bind_property_full (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GBindingTransformFunc transform_to, + GBindingTransformFunc transform_from, + gpointer user_data, + GDestroyNotify notify) +{ + GParamSpec *pspec; + GBinding *binding; + + g_return_val_if_fail (G_IS_OBJECT (source), NULL); + g_return_val_if_fail (source_property != NULL, NULL); + g_return_val_if_fail (G_IS_OBJECT (target), NULL); + g_return_val_if_fail (target_property != NULL, NULL); + + if (source == target && g_strcmp0 (source_property, target_property) == 0) + { + g_warning ("Unable to bind the same property on the same instance"); + return NULL; + } + + /* remove the G_BINDING_INVERT_BOOLEAN flag in case we have + * custom transformation functions + */ + if ((flags & G_BINDING_INVERT_BOOLEAN) && + (transform_to != NULL || transform_from != NULL)) + { + flags &= ~G_BINDING_INVERT_BOOLEAN; + } + + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (source), source_property); + if (pspec == NULL) + { + g_warning ("%s: The source object of type %s has no property called '%s'", + G_STRLOC, + G_OBJECT_TYPE_NAME (source), + source_property); + return NULL; + } + + if (!(pspec->flags & G_PARAM_READABLE)) + { + g_warning ("%s: The source object of type %s has no readable property called '%s'", + G_STRLOC, + G_OBJECT_TYPE_NAME (source), + source_property); + return NULL; + } + + if ((flags & G_BINDING_BIDIRECTIONAL) && + ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) || !(pspec->flags & G_PARAM_WRITABLE))) + { + g_warning ("%s: The source object of type %s has no writable property called '%s'", + G_STRLOC, + G_OBJECT_TYPE_NAME (source), + source_property); + return NULL; + } + + if ((flags & G_BINDING_INVERT_BOOLEAN) && + !(G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_BOOLEAN)) + { + g_warning ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used " + "when binding boolean properties; the source property '%s' " + "is of type '%s'", + G_STRLOC, + source_property, + g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec))); + return NULL; + } + + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (target), target_property); + if (pspec == NULL) + { + g_warning ("%s: The target object of type %s has no property called '%s'", + G_STRLOC, + G_OBJECT_TYPE_NAME (target), + target_property); + return NULL; + } + + if ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) || !(pspec->flags & G_PARAM_WRITABLE)) + { + g_warning ("%s: The target object of type %s has no writable property called '%s'", + G_STRLOC, + G_OBJECT_TYPE_NAME (target), + target_property); + return NULL; + } + + if ((flags & G_BINDING_BIDIRECTIONAL) && + !(pspec->flags & G_PARAM_READABLE)) + { + g_warning ("%s: The target object of type %s has no readable property called '%s'", + G_STRLOC, + G_OBJECT_TYPE_NAME (target), + target_property); + return NULL; + } + + if ((flags & G_BINDING_INVERT_BOOLEAN) && + !(G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_BOOLEAN)) + { + g_warning ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used " + "when binding boolean properties; the target property '%s' " + "is of type '%s'", + G_STRLOC, + target_property, + g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec))); + return NULL; + } + + binding = g_object_new (G_TYPE_BINDING, + "source", source, + "source-property", source_property, + "target", target, + "target-property", target_property, + "flags", flags, + NULL); + + if (transform_to != NULL) + binding->transform_s2t = transform_to; + + if (transform_from != NULL) + binding->transform_t2s = transform_from; + + binding->transform_data = user_data; + binding->notify = notify; + + /* synchronize the target with the source by faking an emission of + * the ::notify signal for the source property; this will also take + * care of the bidirectional binding case because the eventual change + * will emit a notification on the target + */ + if (flags & G_BINDING_SYNC_CREATE) + on_source_notify (binding->source, binding->source_pspec, binding); + + return binding; +} + +/** + * g_object_bind_property: + * @source: (type GObject.Object): the source #GObject + * @source_property: the property on @source to bind + * @target: (type GObject.Object): the target #GObject + * @target_property: the property on @target to bind + * @flags: flags to pass to #GBinding + * + * Creates a binding between @source_property on @source and @target_property + * on @target. Whenever the @source_property is changed the @target_property is + * updated using the same value. For instance: + * + * |[ + * g_object_bind_property (action, "active", widget, "sensitive", 0); + * ]| + * + * Will result in the "sensitive" property of the widget #GObject instance to be + * updated with the same value of the "active" property of the action #GObject + * instance. + * + * If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: + * if @target_property on @target changes then the @source_property on @source + * will be updated as well. + * + * The binding will automatically be removed when either the @source or the + * @target instances are finalized. To remove the binding without affecting the + * @source and the @target you can just call g_object_unref() on the returned + * #GBinding instance. + * + * A #GObject can have multiple bindings. + * + * Return value: (transfer none): the #GBinding instance representing the + * binding between the two #GObject instances. The binding is released + * whenever the #GBinding reference count reaches zero. + * + * Since: 2.26 + */ +GBinding * +g_object_bind_property (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags) +{ + /* type checking is done in g_object_bind_property_full() */ + + return g_object_bind_property_full (source, source_property, + target, target_property, + flags, + NULL, + NULL, + NULL, NULL); +} + +typedef struct _TransformData +{ + GClosure *transform_to_closure; + GClosure *transform_from_closure; +} TransformData; + +static gboolean +bind_with_closures_transform_to (GBinding *binding, + const GValue *source, + GValue *target, + gpointer data) +{ + TransformData *t_data = data; + GValue params[3] = { G_VALUE_INIT, G_VALUE_INIT, G_VALUE_INIT }; + GValue retval = G_VALUE_INIT; + gboolean res; + + g_value_init (¶ms[0], G_TYPE_BINDING); + g_value_set_object (¶ms[0], binding); + + g_value_init (¶ms[1], G_TYPE_VALUE); + g_value_set_boxed (¶ms[1], source); + + g_value_init (¶ms[2], G_TYPE_VALUE); + g_value_set_boxed (¶ms[2], target); + + g_value_init (&retval, G_TYPE_BOOLEAN); + g_value_set_boolean (&retval, FALSE); + + g_closure_invoke (t_data->transform_to_closure, &retval, 3, params, NULL); + + res = g_value_get_boolean (&retval); + if (res) + { + const GValue *out_value = g_value_get_boxed (¶ms[2]); + + g_assert (out_value != NULL); + + g_value_copy (out_value, target); + } + + g_value_unset (¶ms[0]); + g_value_unset (¶ms[1]); + g_value_unset (¶ms[2]); + g_value_unset (&retval); + + return res; +} + +static gboolean +bind_with_closures_transform_from (GBinding *binding, + const GValue *source, + GValue *target, + gpointer data) +{ + TransformData *t_data = data; + GValue params[3] = { G_VALUE_INIT, G_VALUE_INIT, G_VALUE_INIT }; + GValue retval = G_VALUE_INIT; + gboolean res; + + g_value_init (¶ms[0], G_TYPE_BINDING); + g_value_set_object (¶ms[0], binding); + + g_value_init (¶ms[1], G_TYPE_VALUE); + g_value_set_boxed (¶ms[1], source); + + g_value_init (¶ms[2], G_TYPE_VALUE); + g_value_set_boxed (¶ms[2], target); + + g_value_init (&retval, G_TYPE_BOOLEAN); + g_value_set_boolean (&retval, FALSE); + + g_closure_invoke (t_data->transform_from_closure, &retval, 3, params, NULL); + + res = g_value_get_boolean (&retval); + if (res) + { + const GValue *out_value = g_value_get_boxed (¶ms[2]); + + g_assert (out_value != NULL); + + g_value_copy (out_value, target); + } + + g_value_unset (¶ms[0]); + g_value_unset (¶ms[1]); + g_value_unset (¶ms[2]); + g_value_unset (&retval); + + return res; +} + +static void +bind_with_closures_free_func (gpointer data) +{ + TransformData *t_data = data; + + if (t_data->transform_to_closure != NULL) + g_closure_unref (t_data->transform_to_closure); + + if (t_data->transform_from_closure != NULL) + g_closure_unref (t_data->transform_from_closure); + + g_slice_free (TransformData, t_data); +} + +/** + * g_object_bind_property_with_closures: + * @source: (type GObject.Object): the source #GObject + * @source_property: the property on @source to bind + * @target: (type GObject.Object): the target #GObject + * @target_property: the property on @target to bind + * @flags: flags to pass to #GBinding + * @transform_to: a #GClosure wrapping the transformation function + * from the @source to the @target, or %NULL to use the default + * @transform_from: a #GClosure wrapping the transformation function + * from the @target to the @source, or %NULL to use the default + * + * Creates a binding between @source_property on @source and @target_property + * on @target, allowing you to set the transformation functions to be used by + * the binding. + * + * This function is the language bindings friendly version of + * g_object_bind_property_full(), using #GClosures instead of + * function pointers. + * + * Rename to: g_object_bind_property_full + * + * Return value: (transfer none): the #GBinding instance representing the + * binding between the two #GObject instances. The binding is released + * whenever the #GBinding reference count reaches zero. + * + * Since: 2.26 + */ +GBinding * +g_object_bind_property_with_closures (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GClosure *transform_to, + GClosure *transform_from) +{ + TransformData *data; + + data = g_slice_new0 (TransformData); + + if (transform_to != NULL) + { + if (G_CLOSURE_NEEDS_MARSHAL (transform_to)) + g_closure_set_marshal (transform_to, g_cclosure_user_marshal_BOOLEAN__BOXED_BOXED); + + data->transform_to_closure = g_closure_ref (transform_to); + g_closure_sink (data->transform_to_closure); + } + + if (transform_from != NULL) + { + if (G_CLOSURE_NEEDS_MARSHAL (transform_from)) + g_closure_set_marshal (transform_from, g_cclosure_user_marshal_BOOLEAN__BOXED_BOXED); + + data->transform_from_closure = g_closure_ref (transform_from); + g_closure_sink (data->transform_from_closure); + } + + return g_object_bind_property_full (source, source_property, + target, target_property, + flags, + transform_to != NULL ? bind_with_closures_transform_to : NULL, + transform_from != NULL ? bind_with_closures_transform_from : NULL, + data, + bind_with_closures_free_func); +} diff --git a/src/gbinding.h b/src/gbinding.h new file mode 100644 index 0000000..5e60c86 --- /dev/null +++ b/src/gbinding.h @@ -0,0 +1,129 @@ +/* gbinding.h: Binding for object properties + * + * Copyright (C) 2010 Intel Corp. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Emmanuele Bassi + */ + +#ifndef __G_BINDING_H__ +#define __G_BINDING_H__ + +G_BEGIN_DECLS + +#define G_TYPE_BINDING_FLAGS (g_binding_flags_get_type ()) + +#define G_TYPE_BINDING (g_binding_get_type ()) +#define G_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_BINDING, GBinding)) +#define G_IS_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_BINDING)) + +/** + * GBinding: + * + * GBinding is an opaque structure whose members + * cannot be accessed directly. + * + * Since: 2.26 + */ +typedef struct _GBinding GBinding; + +/** + * GBindingTransformFunc: + * @binding: a #GBinding + * @source_value: the value of the source property + * @target_value: the value of the target property + * @user_data: data passed to the transform function + * + * A function to be called to transform the source property of @source + * from @source_value into the target property of @target + * using @target_value. + * + * Return value: %TRUE if the transformation was successful, and %FALSE + * otherwise + * + * Since: 2.26 + */ +typedef gboolean (* GBindingTransformFunc) (GBinding *binding, + const GValue *source_value, + GValue *target_value, + gpointer user_data); + +/** + * GBindingFlags: + * @G_BINDING_DEFAULT: The default binding; if the source property + * changes, the target property is updated with its value. + * @G_BINDING_BIDIRECTIONAL: Bidirectional binding; if either the + * property of the source or the property of the target changes, + * the other is updated. + * @G_BINDING_SYNC_CREATE: Synchronize the values of the source and + * target properties when creating the binding; the direction of + * the synchronization is always from the source to the target. + * @G_BINDING_INVERT_BOOLEAN: If the two properties being bound are + * booleans, setting one to %TRUE will result in the other being + * set to %FALSE and vice versa. This flag will only work for + * boolean properties, and cannot be used when passing custom + * transformation functions to g_object_bind_property_full(). + * + * Flags to be passed to g_object_bind_property() or + * g_object_bind_property_full(). + * + * This enumeration can be extended at later date. + * + * Since: 2.26 + */ +typedef enum { /*< prefix=G_BINDING >*/ + G_BINDING_DEFAULT = 0, + + G_BINDING_BIDIRECTIONAL = 1 << 0, + G_BINDING_SYNC_CREATE = 1 << 1, + G_BINDING_INVERT_BOOLEAN = 1 << 2 +} GBindingFlags; + +GType g_binding_flags_get_type (void) G_GNUC_CONST; +GType g_binding_get_type (void) G_GNUC_CONST; + +GBindingFlags g_binding_get_flags (GBinding *binding); +GObject * g_binding_get_source (GBinding *binding); +GObject * g_binding_get_target (GBinding *binding); +const gchar * g_binding_get_source_property (GBinding *binding); +const gchar * g_binding_get_target_property (GBinding *binding); + +GBinding *g_object_bind_property (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags); +GBinding *g_object_bind_property_full (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GBindingTransformFunc transform_to, + GBindingTransformFunc transform_from, + gpointer user_data, + GDestroyNotify notify); +GBinding *g_object_bind_property_with_closures (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GClosure *transform_to, + GClosure *transform_from); + +G_END_DECLS + +#endif /* __G_BINDING_H__ */ diff --git a/src/remote-viewer-main.c b/src/remote-viewer-main.c new file mode 100644 index 0000000..615e758 --- /dev/null +++ b/src/remote-viewer-main.c @@ -0,0 +1,348 @@ +/* + * Remote Viewer: A spice/vnc client based on virt-viewer + * + * Copyright (C) 2011-2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Marc-André Lureau + */ + +#include +#include +#include +#include +#include +#ifdef G_OS_WIN32 +#include +#include +#endif + +#ifdef HAVE_GTK_VNC +#include +#endif +#ifdef HAVE_SPICE_GTK +#include +#endif + +#include "remote-viewer.h" +#include "virt-viewer-app.h" +#include "virt-viewer-session.h" + +static void +remote_viewer_version(void) +{ + g_print(_("remote-viewer version %s\n"), VERSION); + exit(EXIT_SUCCESS); +} + +gboolean fullscreen = FALSE; +gboolean fullscreen_auto_conf = FALSE; + +static gboolean +option_fullscreen(G_GNUC_UNUSED const gchar *option_name, + const gchar *value, + G_GNUC_UNUSED gpointer data, GError **error) +{ + fullscreen = TRUE; + + if (value == NULL) + return TRUE; + + if (g_str_equal(value, "auto-conf")) { + fullscreen_auto_conf = TRUE; + return TRUE; + } + + g_set_error(error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED, _("Invalid full-screen argument: %s"), value); + return FALSE; +} + +static void recent_selection_changed_dialog_cb(GtkRecentChooser *chooser, gpointer data) +{ + GtkRecentInfo *info; + GtkWidget *entry = data; + const gchar *uri; + + info = gtk_recent_chooser_get_current_item(chooser); + if (info == NULL) + return; + + uri = gtk_recent_info_get_uri(info); + g_return_if_fail(uri != NULL); + + gtk_entry_set_text(GTK_ENTRY(entry), uri); + + gtk_recent_info_unref(info); +} + +static void recent_item_activated_dialog_cb(GtkRecentChooser *chooser G_GNUC_UNUSED, gpointer data) +{ + gtk_dialog_response (GTK_DIALOG (data), GTK_RESPONSE_ACCEPT); +} + +static gint connect_dialog(gchar **uri) +{ + GtkWidget *dialog, *area, *label, *entry, *recent; + GtkRecentFilter *rfilter; + GtkTable *table; + gint retval; + + /* Create the widgets */ + dialog = gtk_dialog_new_with_buttons(_("Connection details"), + NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, + GTK_RESPONSE_REJECT, + GTK_STOCK_CONNECT, + GTK_RESPONSE_ACCEPT, + NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); + area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + table = GTK_TABLE(gtk_table_new(1, 2, 0)); + gtk_box_pack_start(GTK_BOX(area), GTK_WIDGET(table), TRUE, TRUE, 0); + gtk_table_set_row_spacings(table, 5); + gtk_table_set_col_spacings(table, 5); + + label = gtk_label_new(_("URL:")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_table_attach_defaults(table, label, 0, 1, 0, 1); + entry = GTK_WIDGET(gtk_entry_new()); + gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); + g_object_set(entry, "width-request", 200, NULL); + gtk_table_attach_defaults(table, entry, 1, 2, 0, 1); + + label = gtk_label_new(_("Recent connections:")); + gtk_box_pack_start(GTK_BOX(area), label, TRUE, TRUE, 0); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + + recent = GTK_WIDGET(gtk_recent_chooser_widget_new()); + gtk_recent_chooser_set_show_icons(GTK_RECENT_CHOOSER(recent), FALSE); + gtk_recent_chooser_set_sort_type(GTK_RECENT_CHOOSER(recent), GTK_RECENT_SORT_MRU); + gtk_box_pack_start(GTK_BOX(area), recent, TRUE, TRUE, 0); + + rfilter = gtk_recent_filter_new(); + gtk_recent_filter_add_mime_type(rfilter, "application/x-spice"); + gtk_recent_filter_add_mime_type(rfilter, "application/x-vnc"); + gtk_recent_chooser_set_filter(GTK_RECENT_CHOOSER(recent), rfilter); + gtk_recent_chooser_set_local_only(GTK_RECENT_CHOOSER(recent), FALSE); + g_signal_connect(recent, "selection-changed", + G_CALLBACK(recent_selection_changed_dialog_cb), entry); + g_signal_connect(recent, "item-activated", + G_CALLBACK(recent_item_activated_dialog_cb), dialog); + + /* show and wait for response */ + gtk_widget_show_all(dialog); + if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { + *uri = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); + retval = 0; + } else { + *uri = NULL; + retval = -1; + } + gtk_widget_destroy(dialog); + + return retval; +} + +static void +recent_add(gchar *uri) +{ + GtkRecentManager *recent; + GtkRecentData meta = { + .mime_type = (char*)"application/x-spice", + .app_name = (char*)"remote-viewer", + .app_exec = (char*)"remote-viewer %u", + }; + + if (uri == NULL) + return; + + g_return_if_fail(g_str_has_prefix(uri, "spice://") || g_str_has_prefix(uri, "vnc://")); + + recent = gtk_recent_manager_get_default(); + meta.display_name = uri; + if (!gtk_recent_manager_add_full(recent, uri, &meta)) + g_warning("Recent item couldn't be added"); +} + +static void connected(VirtViewerSession *session, + VirtViewerApp *self G_GNUC_UNUSED) +{ + gchar *uri = virt_viewer_session_get_uri(session); + + recent_add(uri); + g_free(uri); +} + +int +main(int argc, char **argv) +{ + GOptionContext *context; + GError *error = NULL; + int ret = 1; + int zoom = 100; + gchar **args = NULL; + gchar *uri = NULL; + gboolean verbose = FALSE; + gboolean debug = FALSE; + gboolean direct = FALSE; + RemoteViewer *viewer = NULL; +#if HAVE_SPICE_GTK + gboolean controller = FALSE; +#endif + VirtViewerApp *app; + const GOptionEntry options [] = { + { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, + remote_viewer_version, N_("Display version information"), NULL }, + { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, + N_("Display verbose information"), NULL }, + { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct, + N_("Direct connection with no automatic tunnels"), NULL }, + { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom, + N_("Zoom level of window, in percentage"), "ZOOM" }, + { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug, + N_("Display debugging information"), NULL }, + { "full-screen", 'f', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_fullscreen, + N_("Open in full screen mode (auto-conf adjusts guest resolution to fit the client's)."), N_("") }, +#if HAVE_SPICE_GTK + { "spice-controller", '\0', 0, G_OPTION_ARG_NONE, &controller, + N_("Open connection using Spice controller communication"), NULL }, +#endif + { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args, + NULL, "URI" }, + { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL } + }; + +#ifdef G_OS_WIN32 + if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) { + freopen("CONIN$", "r", stdin); + freopen("CONOUT$", "w", stdout); + freopen("CONERR$", "w", stderr); + dup2(fileno(stdin), STDIN_FILENO); + dup2(fileno(stdout), STDOUT_FILENO); + dup2(fileno(stderr), STDERR_FILENO); + } +#endif + +#if !GLIB_CHECK_VERSION(2,31,0) + g_thread_init(NULL); +#endif + + setlocale(LC_ALL, ""); + bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + textdomain(GETTEXT_PACKAGE); + + g_set_application_name(_("Remote Viewer")); + + /* Setup command line options */ + context = g_option_context_new (_("- Remote viewer client")); + g_option_context_add_main_entries (context, options, NULL); + g_option_context_add_group (context, gtk_get_option_group (TRUE)); +#ifdef HAVE_GTK_VNC + g_option_context_add_group (context, vnc_display_get_option_group ()); +#endif +#ifdef HAVE_SPICE_GTK + g_option_context_add_group (context, spice_get_option_group ()); +#endif + g_option_context_parse (context, &argc, &argv, &error); + if (error) { + char *basename; + basename = g_path_get_basename(argv[0]); + g_printerr(_("%s\nRun '%s --help' to see a full list of available command line options\n"), + error->message, basename); + g_free(basename); + g_error_free(error); + goto cleanup; + } + + g_option_context_free(context); + +#if HAVE_SPICE_GTK + if (controller) { + if (args) { + g_printerr(_("Error: extra arguments given while using Spice controller\n")); + goto cleanup; + } + } else +#endif + if (!args || g_strv_length(args) == 0) { + if (connect_dialog(&uri) != 0) + goto cleanup; + } else if (g_strv_length(args) > 1) { + g_printerr(_("Error: can't handle multiple URIs\n")); + goto cleanup; + } else { + uri = g_strdup(args[0]); + } + + if (zoom < 10 || zoom > 200) { + g_printerr(_("Zoom level must be within 10-200\n")); + goto cleanup; + } + + gtk_window_set_default_icon_name("virt-viewer"); + + virt_viewer_app_set_debug(debug); + +#if HAVE_SPICE_GTK + if (controller) { + viewer = remote_viewer_new_with_controller(verbose); + g_object_set(viewer, "guest-name", "defined by Spice controller", NULL); + } else { +#endif + viewer = remote_viewer_new(uri, verbose); + g_object_set(viewer, "guest-name", uri, NULL); +#if HAVE_SPICE_GTK + } +#endif + if (viewer == NULL) + goto cleanup; + + app = VIRT_VIEWER_APP(viewer); + g_object_set(app, + "fullscreen", fullscreen, + "fullscreen-auto-conf", fullscreen_auto_conf, + NULL); + virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom); + virt_viewer_app_set_direct(app, direct); + + if (!virt_viewer_app_start(app)) + goto cleanup; + + g_signal_connect(virt_viewer_app_get_session(app), "session-connected", + G_CALLBACK(connected), app); + + gtk_main(); + + ret = 0; + + cleanup: + g_free(uri); + if (viewer) + g_object_unref(viewer); + g_strfreev(args); + + return ret; +} + +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/remote-viewer.c b/src/remote-viewer.c new file mode 100644 index 0000000..77c1414 --- /dev/null +++ b/src/remote-viewer.c @@ -0,0 +1,805 @@ +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange + * Copyright (C) 2010 Marc-André Lureau + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Marc-André Lureau + */ + +#include +#include +#include +#include + +#ifdef HAVE_SPICE_GTK +#include +#endif + +#ifdef HAVE_SPICE_GTK +#include "virt-viewer-session-spice.h" +#endif +#include "virt-viewer-app.h" +#include "remote-viewer.h" + +#ifndef G_VALUE_INIT /* see bug https://bugzilla.gnome.org/show_bug.cgi?id=654793 */ +#define G_VALUE_INIT { 0, { { 0 } } } +#endif + +struct _RemoteViewerPrivate { +#ifdef HAVE_SPICE_GTK + SpiceCtrlController *controller; + SpiceCtrlForeignMenu *ctrl_foreign_menu; +#endif + GtkWidget *controller_menu; + GtkWidget *foreign_menu; +}; + +G_DEFINE_TYPE (RemoteViewer, remote_viewer, VIRT_VIEWER_TYPE_APP) +#define GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((o), REMOTE_VIEWER_TYPE, RemoteViewerPrivate)) + +#if HAVE_SPICE_GTK +enum { + PROP_0, + PROP_CONTROLLER, + PROP_CTRL_FOREIGN_MENU, +}; +#endif + +static gboolean remote_viewer_start(VirtViewerApp *self); +#if HAVE_SPICE_GTK +static int remote_viewer_activate(VirtViewerApp *self); +static void remote_viewer_window_added(VirtViewerApp *self, VirtViewerWindow *win); +static void spice_foreign_menu_updated(RemoteViewer *self); +#endif + +#if HAVE_SPICE_GTK +static void +remote_viewer_get_property (GObject *object, guint property_id, + GValue *value, GParamSpec *pspec) +{ + RemoteViewer *self = REMOTE_VIEWER(object); + RemoteViewerPrivate *priv = self->priv; + + switch (property_id) { + case PROP_CONTROLLER: + g_value_set_object(value, priv->controller); + break; + case PROP_CTRL_FOREIGN_MENU: + g_value_set_object(value, priv->ctrl_foreign_menu); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +remote_viewer_set_property (GObject *object, guint property_id, + const GValue *value, GParamSpec *pspec) +{ + RemoteViewer *self = REMOTE_VIEWER(object); + RemoteViewerPrivate *priv = self->priv; + + switch (property_id) { + case PROP_CONTROLLER: + g_return_if_fail(priv->controller == NULL); + priv->controller = g_value_dup_object(value); + break; + case PROP_CTRL_FOREIGN_MENU: + g_return_if_fail(priv->ctrl_foreign_menu == NULL); + priv->ctrl_foreign_menu = g_value_dup_object(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +remote_viewer_dispose (GObject *object) +{ + RemoteViewer *self = REMOTE_VIEWER(object); + RemoteViewerPrivate *priv = self->priv; + + if (priv->controller) { + g_object_unref(priv->controller); + priv->controller = NULL; + } + + if (priv->ctrl_foreign_menu) { + g_object_unref(priv->ctrl_foreign_menu); + priv->ctrl_foreign_menu = NULL; + } + + G_OBJECT_CLASS(remote_viewer_parent_class)->dispose (object); +} +#endif + +static void +remote_viewer_class_init (RemoteViewerClass *klass) +{ +#if HAVE_SPICE_GTK + GObjectClass *object_class = G_OBJECT_CLASS (klass); +#endif + VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass); + + g_type_class_add_private (klass, sizeof (RemoteViewerPrivate)); + +#if HAVE_SPICE_GTK + object_class->get_property = remote_viewer_get_property; + object_class->set_property = remote_viewer_set_property; + object_class->dispose = remote_viewer_dispose; +#endif + + app_class->start = remote_viewer_start; +#if HAVE_SPICE_GTK + app_class->activate = remote_viewer_activate; + app_class->window_added = remote_viewer_window_added; +#endif + +#if HAVE_SPICE_GTK + g_object_class_install_property(object_class, + PROP_CONTROLLER, + g_param_spec_object("controller", + "Controller", + "Spice controller", + SPICE_CTRL_TYPE_CONTROLLER, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + g_object_class_install_property(object_class, + PROP_CTRL_FOREIGN_MENU, + g_param_spec_object("foreign-menu", + "Foreign Menu", + "Spice foreign menu", + SPICE_CTRL_TYPE_FOREIGN_MENU, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); +#endif +} + +static void +remote_viewer_init(RemoteViewer *self) +{ + self->priv = GET_PRIVATE(self); +} + +RemoteViewer * +remote_viewer_new(const gchar *uri, gboolean verbose) +{ + return g_object_new(REMOTE_VIEWER_TYPE, + "guri", uri, + "verbose", verbose, + NULL); +} + +#if HAVE_SPICE_GTK +static void +foreign_menu_title_changed(SpiceCtrlForeignMenu *menu G_GNUC_UNUSED, + GParamSpec *pspec G_GNUC_UNUSED, + RemoteViewer *self) +{ + gboolean has_focus; + + g_object_get(G_OBJECT(self), "has-focus", &has_focus, NULL); + /* FIXME: use a proper "new client connected" event + ** a foreign menu client set the title when connecting, + ** inform of focus state at that time. + */ + spice_ctrl_foreign_menu_app_activated_msg(self->priv->ctrl_foreign_menu, has_focus); + + /* update menu title */ + spice_foreign_menu_updated(self); +} + +RemoteViewer * +remote_viewer_new_with_controller(gboolean verbose) +{ + RemoteViewer *self; + SpiceCtrlController *ctrl = spice_ctrl_controller_new(); + SpiceCtrlForeignMenu *menu = spice_ctrl_foreign_menu_new(); + + self = g_object_new(REMOTE_VIEWER_TYPE, + "controller", ctrl, + "foreign-menu", menu, + "verbose", verbose, + NULL); + g_signal_connect(menu, "notify::title", + G_CALLBACK(foreign_menu_title_changed), + self); + g_object_unref(ctrl); + g_object_unref(menu); + + return self; +} + +static void +spice_ctrl_do_connect(SpiceCtrlController *ctrl G_GNUC_UNUSED, + VirtViewerApp *self) +{ + if (virt_viewer_app_initial_connect(self) < 0) { + virt_viewer_app_simple_message_dialog(self, _("Failed to initiate connection")); + } +} + +static void +spice_ctrl_show(SpiceCtrlController *ctrl G_GNUC_UNUSED, RemoteViewer *self) +{ + virt_viewer_app_show_display(VIRT_VIEWER_APP(self)); +} + +static void +spice_ctrl_hide(SpiceCtrlController *ctrl G_GNUC_UNUSED, RemoteViewer *self) +{ + virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Display disabled by controller")); +} + +static void +spice_menuitem_activate_cb(GtkMenuItem *mi, GObject *ctrl) +{ + SpiceCtrlMenuItem *menuitem = g_object_get_data(G_OBJECT(mi), "spice-menuitem"); + + g_return_if_fail(menuitem != NULL); + if (gtk_menu_item_get_submenu(mi)) + return; + + if (SPICE_CTRL_IS_CONTROLLER(ctrl)) + spice_ctrl_controller_menu_item_click_msg(SPICE_CTRL_CONTROLLER(ctrl), menuitem->id); + else if (SPICE_CTRL_IS_FOREIGN_MENU(ctrl)) + spice_ctrl_foreign_menu_menu_item_click_msg(SPICE_CTRL_FOREIGN_MENU(ctrl), menuitem->id); +} + +static GtkWidget * +ctrlmenu_to_gtkmenu (RemoteViewer *self, SpiceCtrlMenu *ctrlmenu, GObject *ctrl) +{ + GList *l; + GtkWidget *menu = gtk_menu_new(); + guint n = 0; + + for (l = ctrlmenu->items; l != NULL; l = l->next) { + SpiceCtrlMenuItem *menuitem = l->data; + GtkWidget *item; + char *s; + if (menuitem->text == NULL) { + g_warn_if_reached(); + continue; + } + + for (s = menuitem->text; *s; s++) + if (*s == '&') + *s = '_'; + + if (g_str_equal(menuitem->text, "-")) { + item = gtk_separator_menu_item_new(); + } else if (menuitem->flags & CONTROLLER_MENU_FLAGS_CHECKED) { + item = gtk_check_menu_item_new_with_mnemonic(menuitem->text); + g_object_set(item, "active", TRUE, NULL); + } else { + item = gtk_menu_item_new_with_mnemonic(menuitem->text); + } + + if (menuitem->flags & (CONTROLLER_MENU_FLAGS_GRAYED | CONTROLLER_MENU_FLAGS_DISABLED)) + gtk_widget_set_sensitive(item, FALSE); + + g_object_set_data_full(G_OBJECT(item), "spice-menuitem", + g_object_ref(menuitem), g_object_unref); + g_signal_connect(item, "activate", G_CALLBACK(spice_menuitem_activate_cb), ctrl); + gtk_menu_attach(GTK_MENU (menu), item, 0, 1, n, n + 1); + n += 1; + + if (menuitem->submenu) { + gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), + ctrlmenu_to_gtkmenu(self, menuitem->submenu, ctrl)); + } + } + + if (n == 0) { + g_object_ref_sink(menu); + g_object_unref(menu); + menu = NULL; + } + + gtk_widget_show_all(menu); + return menu; +} + +static void +spice_menu_update(RemoteViewer *self, VirtViewerWindow *win) +{ + GtkWidget *menuitem = g_object_get_data(G_OBJECT(win), "spice-menu"); + SpiceCtrlMenu *menu; + + if (self->priv->controller == NULL) + return; + + if (menuitem != NULL) + gtk_widget_destroy(menuitem); + + { + GtkMenuShell *shell = GTK_MENU_SHELL(gtk_builder_get_object(virt_viewer_window_get_builder(win), "top-menu")); + menuitem = gtk_menu_item_new_with_label("Spice"); + gtk_menu_shell_append(shell, menuitem); + g_object_set_data(G_OBJECT(win), "spice-menu", menuitem); + } + + g_object_get(self->priv->controller, "menu", &menu, NULL); + if (menu == NULL || g_list_length(menu->items) == 0) { + gtk_widget_set_visible(menuitem, FALSE); + } else { + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), + ctrlmenu_to_gtkmenu(self, menu, G_OBJECT(self->priv->controller))); + gtk_widget_set_visible(menuitem, TRUE); + } + + if (menu != NULL) + g_object_unref(menu); +} + +static void +spice_menu_update_each(gpointer key G_GNUC_UNUSED, + gpointer value, + gpointer user_data) +{ + spice_menu_update(REMOTE_VIEWER(user_data), VIRT_VIEWER_WINDOW(value)); +} + +static void +spice_ctrl_menu_updated(RemoteViewer *self) +{ + GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self)); + + DEBUG_LOG("Spice controller menu updated"); + + g_hash_table_foreach(windows, spice_menu_update_each, self); +} + +static void +foreign_menu_update(RemoteViewer *self, VirtViewerWindow *win) +{ + GtkWidget *menuitem = g_object_get_data(G_OBJECT(win), "foreign-menu"); + SpiceCtrlMenu *menu; + + if (self->priv->ctrl_foreign_menu == NULL) + return; + + if (menuitem != NULL) + gtk_widget_destroy(menuitem); + + { + GtkMenuShell *shell = GTK_MENU_SHELL(gtk_builder_get_object(virt_viewer_window_get_builder(win), "top-menu")); + const gchar *title = spice_ctrl_foreign_menu_get_title(self->priv->ctrl_foreign_menu); + menuitem = gtk_menu_item_new_with_label(title); + gtk_menu_shell_append(shell, menuitem); + g_object_set_data(G_OBJECT(win), "foreign-menu", menuitem); + } + + g_object_get(self->priv->ctrl_foreign_menu, "menu", &menu, NULL); + if (menu == NULL || g_list_length(menu->items) == 0) { + gtk_widget_set_visible(menuitem, FALSE); + } else { + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), + ctrlmenu_to_gtkmenu(self, menu, G_OBJECT(self->priv->ctrl_foreign_menu))); + gtk_widget_set_visible(menuitem, TRUE); + } + g_object_unref(menu); +} + +static void +foreign_menu_update_each(gpointer key G_GNUC_UNUSED, + gpointer value, + gpointer user_data) +{ + foreign_menu_update(REMOTE_VIEWER(user_data), VIRT_VIEWER_WINDOW(value)); +} + +static void +spice_foreign_menu_updated(RemoteViewer *self) +{ + GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self)); + + DEBUG_LOG("Spice foreign menu updated"); + + g_hash_table_foreach(windows, foreign_menu_update_each, self); +} + +static SpiceSession * +remote_viewer_get_spice_session(RemoteViewer *self) +{ + VirtViewerSession *vsession = NULL; + SpiceSession *session = NULL; + + g_object_get(self, "session", &vsession, NULL); + g_return_val_if_fail(vsession != NULL, NULL); + + g_object_get(vsession, "spice-session", &session, NULL); + + g_object_unref(vsession); + + return session; +} + +static gchar * +ctrl_key_to_gtk_key(const gchar *key) +{ + int i; + + static const struct { + const char *ctrl; + const char *gtk; + } keys[] = { + /* FIXME: right alt, right ctrl, right shift, cmds */ + { "alt", "" }, + { "ralt", "" }, + { "rightalt", "" }, + { "right-alt", "" }, + { "lalt", "" }, + { "leftalt", "" }, + { "left-alt", "" }, + + { "ctrl", "" }, + { "rctrl", "" }, + { "rightctrl", "" }, + { "right-ctrl", "" }, + { "lctrl", "" }, + { "leftctrl", "" }, + { "left-ctrl", "" }, + + { "shift", "" }, + { "rshift", "" }, + { "rightshift", "" }, + { "right-shift", "" }, + { "lshift", "" }, + { "leftshift", "" }, + { "left-shift", "" }, + + { "cmd", "" }, + { "rcmd", "" }, + { "rightcmd", "" }, + { "right-cmd", "" }, + { "lcmd", "" }, + { "leftcmd", "" }, + { "left-cmd", "" }, + + { "win", "" }, + { "rwin", "" }, + { "rightwin", "" }, + { "right-win", "" }, + { "lwin", "" }, + { "leftwin", "" }, + { "left-win", "" }, + + { "esc", "Escape" }, + /* { "escape", "Escape" }, */ + + { "ins", "Insert" }, + /* { "insert", "Insert" }, */ + + { "del", "Delete" }, + /* { "delete", "Delete" }, */ + + { "pgup", "Page_Up" }, + { "pageup", "Page_Up" }, + { "pgdn", "Page_Down" }, + { "pagedown", "Page_Down" }, + + /* { "home", "home" }, */ + /* { "end", "end" }, */ + /* { "space", "space" }, */ + + { "enter", "Return" }, + + /* { "tab", "tab" }, */ + /* { "f1", "F1" }, */ + /* { "f2", "F2" }, */ + /* { "f3", "F3" }, */ + /* { "f4", "F4" }, */ + /* { "f5", "F5" }, */ + /* { "f6", "F6" }, */ + /* { "f7", "F7" }, */ + /* { "f8", "F8" }, */ + /* { "f9", "F9" }, */ + /* { "f10", "F10" }, */ + /* { "f11", "F11" }, */ + /* { "f12", "F12" } */ + }; + + for (i = 0; i < G_N_ELEMENTS(keys); ++i) { + if (g_ascii_strcasecmp(keys[i].ctrl, key) == 0) + return g_strdup(keys[i].gtk); + } + + return g_ascii_strup(key, -1); +} + +static gchar* +ctrl_key_to_gtk_accelerator(const gchar *key) +{ + gchar *accel, **k, **keyv; + + keyv = g_strsplit(key, "+", -1); + g_return_val_if_fail(keyv != NULL, NULL); + + for (k = keyv; *k != NULL; k++) { + gchar *tmp = *k; + *k = ctrl_key_to_gtk_key(tmp); + g_free(tmp); + } + + accel = g_strjoinv(NULL, keyv); + g_strfreev(keyv); + + return accel; +} + +static void +app_notified(VirtViewerApp *app, + GParamSpec *pspec, + RemoteViewer *self) +{ + GValue value = G_VALUE_INIT; + + g_value_init(&value, pspec->value_type); + g_object_get_property(G_OBJECT(app), pspec->name, &value); + + if (g_str_equal(pspec->name, "has-focus")) { + if (self->priv->ctrl_foreign_menu) + spice_ctrl_foreign_menu_app_activated_msg(self->priv->ctrl_foreign_menu, g_value_get_boolean(&value)); + } + + g_value_unset(&value); +} + +static void +spice_ctrl_notified(SpiceCtrlController *ctrl, + GParamSpec *pspec, + RemoteViewer *self) +{ + SpiceSession *session = remote_viewer_get_spice_session(self); + GValue value = G_VALUE_INIT; + VirtViewerApp *app = VIRT_VIEWER_APP(self); + + g_return_if_fail(session != NULL); + + g_value_init(&value, pspec->value_type); + g_object_get_property(G_OBJECT(ctrl), pspec->name, &value); + + if (g_str_equal(pspec->name, "host") || + g_str_equal(pspec->name, "port") || + g_str_equal(pspec->name, "password") || + g_str_equal(pspec->name, "ca-file") || + g_str_equal(pspec->name, "enable-smartcard") || + g_str_equal(pspec->name, "color-depth") || + g_str_equal(pspec->name, "disable-effects") || + g_str_equal(pspec->name, "enable-usbredir")) { + g_object_set_property(G_OBJECT(session), pspec->name, &value); + } else if (g_str_equal(pspec->name, "sport")) { + g_object_set_property(G_OBJECT(session), "tls-port", &value); + } else if (g_str_equal(pspec->name, "tls-ciphers")) { + g_object_set_property(G_OBJECT(session), "ciphers", &value); + } else if (g_str_equal(pspec->name, "host-subject")) { + g_object_set_property(G_OBJECT(session), "cert-subject", &value); + } else if (g_str_equal(pspec->name, "enable-usb-autoshare")) { + VirtViewerSession *vsession = NULL; + + g_object_get(self, "session", &vsession, NULL); + g_object_set_property(G_OBJECT(vsession), "auto-usbredir", &value); + g_object_unref(G_OBJECT(vsession)); + } else if (g_str_equal(pspec->name, "usb-filter")) { + SpiceUsbDeviceManager *manager; + manager = spice_usb_device_manager_get(session, NULL); + if (manager != NULL) { + g_object_set_property(G_OBJECT(manager), + "auto-connect-filter", + &value); + } + } else if (g_str_equal(pspec->name, "title")) { + g_object_set_property(G_OBJECT(app), "title", &value); + } else if (g_str_equal(pspec->name, "display-flags")) { + guint flags = g_value_get_uint(&value); + gboolean fullscreen = flags & CONTROLLER_SET_FULL_SCREEN; + gboolean auto_res = flags & CONTROLLER_AUTO_DISPLAY_RES; + g_object_set(G_OBJECT(self), "fullscreen", fullscreen, NULL); + g_debug("unimplemented resize-guest %d", auto_res); + /* g_object_set(G_OBJECT(self), "resize-guest", auto_res, NULL); */ + } else if (g_str_equal(pspec->name, "menu")) { + spice_ctrl_menu_updated(self); + } else if (g_str_equal(pspec->name, "hotkeys")) { + gchar **hotkey, **hotkeys = g_strsplit(g_value_get_string(&value), ",", -1); + if (!hotkeys || g_strv_length(hotkeys) == 0) { + g_object_set(app, "enable-accel", FALSE, NULL); + goto end; + } + + for (hotkey = hotkeys; *hotkey != NULL; hotkey++) { + gchar *key = strstr(*hotkey, "="); + if (key == NULL) { + g_warn_if_reached(); + continue; + } + *key = '\0'; + + gchar *accel = ctrl_key_to_gtk_accelerator(key + 1); + guint accel_key; + GdkModifierType accel_mods; + gtk_accelerator_parse(accel, &accel_key, &accel_mods); + g_free(accel); + + if (g_str_equal(*hotkey, "toggle-fullscreen")) { + gtk_accel_map_change_entry("/view/fullscreen", accel_key, accel_mods, TRUE); + } else if (g_str_equal(*hotkey, "release-cursor")) { + gtk_accel_map_change_entry("/view/release-cursor", accel_key, accel_mods, TRUE); + } else if (g_str_equal(*hotkey, "smartcard-insert")) { + gtk_accel_map_change_entry("/file/smartcard-insert", accel_key, accel_mods, TRUE); + } else if (g_str_equal(*hotkey, "smartcard-remove")) { + gtk_accel_map_change_entry("/file/smartcard-remove", accel_key, accel_mods, TRUE); + } else { + g_warning("Unknown hotkey command %s", *hotkey); + } + } + g_strfreev(hotkeys); + + g_object_set(app, "enable-accel", TRUE, NULL); + } else { + gchar *content = g_strdup_value_contents(&value); + + g_debug("unimplemented property: %s=%s", pspec->name, content); + g_free(content); + } + +end: + g_object_unref(session); + g_value_unset(&value); +} + +static void +spice_ctrl_foreign_menu_notified(SpiceCtrlForeignMenu *ctrl_foreign_menu G_GNUC_UNUSED, + GParamSpec *pspec, + RemoteViewer *self) +{ + if (g_str_equal(pspec->name, "menu")) { + spice_foreign_menu_updated(self); + } +} + +static void +spice_ctrl_listen_async_cb(GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + GError *error = NULL; + VirtViewerApp *app = VIRT_VIEWER_APP(user_data); + + if (SPICE_CTRL_IS_CONTROLLER(object)) + spice_ctrl_controller_listen_finish(SPICE_CTRL_CONTROLLER(object), res, &error); + else if (SPICE_CTRL_IS_FOREIGN_MENU(object)) { + spice_ctrl_foreign_menu_listen_finish(SPICE_CTRL_FOREIGN_MENU(object), res, &error); + } else + g_warn_if_reached(); + + if (error != NULL) { + virt_viewer_app_simple_message_dialog(app, + _("Controller connection failed: %s"), + error->message); + g_clear_error(&error); + exit(EXIT_FAILURE); /* TODO: make start async? */ + } +} + + +static int +remote_viewer_activate(VirtViewerApp *app) +{ + g_return_val_if_fail(REMOTE_VIEWER_IS(app), -1); + RemoteViewer *self = REMOTE_VIEWER(app); + int ret = -1; + + if (self->priv->controller) { + SpiceSession *session = remote_viewer_get_spice_session(self); + ret = spice_session_connect(session); + g_object_unref(session); + } else { + ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->activate(app); + } + + return ret; +} + +static void +remote_viewer_window_added(VirtViewerApp *app G_GNUC_UNUSED, + VirtViewerWindow *win) +{ + spice_menu_update(REMOTE_VIEWER(app), win); + foreign_menu_update(REMOTE_VIEWER(app), win); +} +#endif + +static gboolean +remote_viewer_start(VirtViewerApp *app) +{ + g_return_val_if_fail(REMOTE_VIEWER_IS(app), FALSE); + +#if HAVE_SPICE_GTK + RemoteViewer *self = REMOTE_VIEWER(app); + RemoteViewerPrivate *priv = self->priv; +#endif + gboolean ret = FALSE; + gchar *guri = NULL; + gchar *type = NULL; + +#if HAVE_SPICE_GTK + g_signal_connect(app, "notify", G_CALLBACK(app_notified), self); + + if (priv->controller) { + if (virt_viewer_app_create_session(app, "spice") < 0) { + virt_viewer_app_simple_message_dialog(app, _("Couldn't create a Spice session")); + goto cleanup; + } + + g_signal_connect(priv->controller, "notify", G_CALLBACK(spice_ctrl_notified), self); + g_signal_connect(priv->controller, "do_connect", G_CALLBACK(spice_ctrl_do_connect), self); + g_signal_connect(priv->controller, "show", G_CALLBACK(spice_ctrl_show), self); + g_signal_connect(priv->controller, "hide", G_CALLBACK(spice_ctrl_hide), self); + + spice_ctrl_controller_listen(priv->controller, NULL, spice_ctrl_listen_async_cb, self); + + g_signal_connect(priv->ctrl_foreign_menu, "notify", G_CALLBACK(spice_ctrl_foreign_menu_notified), self); + spice_ctrl_foreign_menu_listen(priv->ctrl_foreign_menu, NULL, spice_ctrl_listen_async_cb, self); + + virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Setting up Spice session...")); + } else { +#endif + g_object_get(app, "guri", &guri, NULL); + g_return_val_if_fail(guri != NULL, FALSE); + + DEBUG_LOG("Opening display to %s", guri); + g_object_set(app, "title", guri, NULL); + + if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0 || type == NULL) { + virt_viewer_app_simple_message_dialog(app, _("Cannot determine the connection type from URI")); + goto cleanup; + } + + if (virt_viewer_app_create_session(app, type) < 0) { + virt_viewer_app_simple_message_dialog(app, _("Couldn't create a session for this type: %s"), type); + goto cleanup; + } + + if (virt_viewer_app_initial_connect(app) < 0) { + virt_viewer_app_simple_message_dialog(app, _("Failed to initiate connection")); + goto cleanup; + } +#if HAVE_SPICE_GTK + } +#endif + + ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app); + + cleanup: + g_free(guri); + g_free(type); + return ret; +} + +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/remote-viewer.desktop b/src/remote-viewer.desktop new file mode 100644 index 0000000..f930592 --- /dev/null +++ b/src/remote-viewer.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=Remote Viewer +Exec=remote-viewer %u +Type=Application +Terminal=False +MimeType=x-scheme-handler/spice diff --git a/src/remote-viewer.h b/src/remote-viewer.h new file mode 100644 index 0000000..a465b7e --- /dev/null +++ b/src/remote-viewer.h @@ -0,0 +1,63 @@ +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Daniel P. Berrange + */ + +#ifndef REMOTE_VIEWER_H +#define REMOTE_VIEWER_H + +#include +#include "virt-viewer-app.h" + +G_BEGIN_DECLS + +#define REMOTE_VIEWER_TYPE remote_viewer_get_type() +#define REMOTE_VIEWER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), REMOTE_VIEWER_TYPE, RemoteViewer)) +#define REMOTE_VIEWER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), REMOTE_VIEWER_TYPE, RemoteViewerClass)) +#define REMOTE_VIEWER_IS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), REMOTE_VIEWER_TYPE)) +#define REMOTE_VIEWER_IS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), REMOTE_VIEWER_TYPE)) +#define REMOTE_VIEWER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REMOTE_VIEWER_TYPE, RemoteViewerClass)) + +typedef struct _RemoteViewerPrivate RemoteViewerPrivate; + +typedef struct { + VirtViewerApp parent; + RemoteViewerPrivate *priv; +} RemoteViewer; + +typedef struct { + VirtViewerAppClass parent_class; +} RemoteViewerClass; + +GType remote_viewer_get_type (void); + +RemoteViewer* remote_viewer_new(const gchar *uri, gboolean verbose); +RemoteViewer* remote_viewer_new_with_controller(gboolean verbose); + +G_END_DECLS + +#endif /* REMOTE_VIEWER_H */ +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/view/autoDrawer.c b/src/view/autoDrawer.c index 6fa5483..deb8111 100644 --- a/src/view/autoDrawer.c +++ b/src/view/autoDrawer.c @@ -29,6 +29,7 @@ * moused-over and auto-closes when the mouse leaves. */ +#include #include "autoDrawer.h" @@ -214,11 +215,22 @@ /* Is the mouse cursor inside the event box? */ - { + if (gtk_widget_get_window(priv->evBox)) { int x; int y; - +#if GTK_CHECK_VERSION(3, 0, 0) + GdkDevice *dev; + GdkDeviceManager *devmgr; + + devmgr = gdk_display_get_device_manager(gtk_widget_get_display(priv->evBox)); + dev = gdk_device_manager_get_client_pointer(devmgr); + + gdk_window_get_device_position(gtk_widget_get_window(priv->evBox), + dev, &x, &y, NULL); +#else gtk_widget_get_pointer(priv->evBox, &x, &y); +#endif + gtk_widget_get_allocation(priv->evBox, &allocation); g_assert(gtk_container_get_border_width( GTK_CONTAINER(priv->evBox)) == 0); @@ -257,7 +269,7 @@ } #else if (window->group && window->group->grabs) { - grabbed = GTK_WIDGET(window->group->grabs->data); + grabbed = GTK_WIDGET(window->group->grabs->data); } #endif if (!grabbed) { @@ -440,7 +452,7 @@ static void ViewAutoDrawerOnHierarchyChanged(ViewAutoDrawer *that, // IN - GtkWidget *oldToplevel) // IN + GtkWidget *oldToplevel) // IN { GtkWidget *newToplevel = gtk_widget_get_toplevel(GTK_WIDGET(that)); @@ -653,7 +665,7 @@ ovBoxClass->set_over = ViewAutoDrawerSetOver; - g_type_class_add_private(objectClass, sizeof(ViewAutoDrawerPrivate)); + g_type_class_add_private(klass, sizeof(ViewAutoDrawerPrivate)); } @@ -689,7 +701,7 @@ sizeof (ViewAutoDrawer), 0, /* n_preallocs */ (GInstanceInitFunc)ViewAutoDrawerInit, - NULL, + NULL, }; type = g_type_register_static(VIEW_TYPE_DRAWER, "ViewAutoDrawer", &info, 0); diff --git a/src/view/drawer.c b/src/view/drawer.c index 43b7e1a..40b71dd 100644 --- a/src/view/drawer.c +++ b/src/view/drawer.c @@ -28,6 +28,7 @@ * sliding smoothly, at constant speed, over another one. */ +#include #include "drawer.h" @@ -139,7 +140,7 @@ objectClass->finalize = ViewDrawerFinalize; - g_type_class_add_private(objectClass, sizeof(ViewDrawerPrivate)); + g_type_class_add_private(klass, sizeof(ViewDrawerPrivate)); } @@ -175,7 +176,7 @@ sizeof (ViewDrawer), 0, /* n_preallocs */ (GInstanceInitFunc)ViewDrawerInit, - NULL + NULL }; type = g_type_register_static(VIEW_TYPE_OV_BOX, "ViewDrawer", &info, 0); diff --git a/src/view/ovBox.c b/src/view/ovBox.c index 5d8355e..a3b1130 100644 --- a/src/view/ovBox.c +++ b/src/view/ovBox.c @@ -72,13 +72,14 @@ * --hpreg */ +#include #include "ovBox.h" #if ! GTK_CHECK_VERSION(3, 0, 0) -#define gtk_widget_set_realized(widget, val) \ +#define gtk_widget_set_realized(widget, val) \ GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED) -#define gtk_widget_get_realized(widget) \ +#define gtk_widget_get_realized(widget) \ GTK_WIDGET_REALIZED(widget) #endif @@ -336,14 +337,23 @@ static void ViewOvBoxSetBackground(ViewOvBox *that) // IN { - GtkWidget *widget; + GtkWidget *widget = GTK_WIDGET(that); + +#if GTK_CHECK_VERSION(3, 0, 0) + GtkStyleContext *stylecontext; + + stylecontext = gtk_widget_get_style_context(widget); + gtk_style_context_set_background(stylecontext, gtk_widget_get_window(widget)); + gtk_style_context_set_background(stylecontext, that->priv->underWin); + gtk_style_context_set_background(stylecontext, that->priv->overWin); +#else GtkStyle *style; - widget = GTK_WIDGET(that); style = gtk_widget_get_style (widget); gtk_style_set_background(style, gtk_widget_get_window(widget), GTK_STATE_NORMAL); gtk_style_set_background(style, that->priv->underWin, GTK_STATE_NORMAL); gtk_style_set_background(style, that->priv->overWin, GTK_STATE_NORMAL); +#endif } @@ -393,7 +403,9 @@ &attributes, mask); gtk_widget_set_window(widget, window); gdk_window_set_user_data(window, that); +#if !GTK_CHECK_VERSION(3, 0, 0) gtk_widget_set_style(widget, gtk_style_attach(gtk_widget_get_style(widget), window)); +#endif /* * The order in which we create the children X window matters: the child @@ -496,8 +508,13 @@ that = VIEW_OV_BOX(widget); priv = that->priv; +#if GTK_CHECK_VERSION(3, 0, 0) + gtk_widget_get_preferred_size(priv->under, NULL, &underR); + gtk_widget_get_preferred_size(priv->over, NULL, &priv->overR); +#else gtk_widget_size_request(priv->under, &underR); gtk_widget_size_request(priv->over, &priv->overR); +#endif gtk_container_child_get(GTK_CONTAINER(that), priv->over, "expand", &expand, @@ -706,10 +723,8 @@ static void ViewOvBoxClassInit(ViewOvBoxClass *klass) // IN { - GObjectClass *objectClass; GtkWidgetClass *widgetClass; - objectClass = G_OBJECT_CLASS(klass); widgetClass = GTK_WIDGET_CLASS(klass); widgetClass->map = ViewOvBoxMap; @@ -729,7 +744,7 @@ parentClass = g_type_class_peek_parent(klass); - g_type_class_add_private(objectClass, sizeof(ViewOvBoxPrivate)); + g_type_class_add_private(klass, sizeof(ViewOvBoxPrivate)); } @@ -765,7 +780,7 @@ sizeof (ViewOvBox), 0, /* n_preallocs */ (GInstanceInitFunc)ViewOvBoxInit, - NULL, + NULL, }; type = g_type_register_static(GTK_TYPE_BOX, "ViewOvBox", &info, 0); diff --git a/src/virt-glib-compat.h b/src/virt-glib-compat.h new file mode 100644 index 0000000..23345a0 --- /dev/null +++ b/src/virt-glib-compat.h @@ -0,0 +1,56 @@ +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2009 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange + * Copyright (C) 2010 Marc-André Lureau + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Daniel P. Berrange + */ + +#include + +#ifndef _VIRT_GLIB_COMPAT_H +# define _VIRT_GLIB_COMPAT_H 1 + +#include + +G_BEGIN_DECLS + +#ifndef g_clear_pointer +#define g_clear_pointer(pp, destroy) \ + G_STMT_START { \ + G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \ + /* Only one access, please */ \ + gpointer *_pp = (gpointer *) (pp); \ + gpointer _p; \ + /* This assignment is needed to avoid a gcc warning */ \ + GDestroyNotify _destroy = (GDestroyNotify) (destroy); \ + \ + (void) (0 ? (gpointer) *(pp) : 0); \ + do \ + _p = g_atomic_pointer_get (_pp); \ + while G_UNLIKELY (!g_atomic_pointer_compare_and_exchange (_pp, _p, NULL)); \ + \ + if (_p) \ + _destroy (_p); \ + } G_STMT_END +#endif + +G_END_DECLS + +#endif // _VIRT_GLIB_COMPAT_H diff --git a/src/virt-gtk-compat.h b/src/virt-gtk-compat.h new file mode 100644 index 0000000..7467781 --- /dev/null +++ b/src/virt-gtk-compat.h @@ -0,0 +1,61 @@ +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange + * Copyright (C) 2010 Marc-André Lureau + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Daniel P. Berrange + */ +#ifndef _VIRT_GTK_COMPAT +# define _VIRT_GTK_COMPAT + +#include + +G_BEGIN_DECLS + +#if GTK_CHECK_VERSION(3, 0, 0) +#define GDK_Control_L GDK_KEY_Control_L +#define GDK_Alt_L GDK_KEY_Alt_L +#define GDK_Delete GDK_KEY_Delete +#define GDK_BackSpace GDK_KEY_BackSpace +#define GDK_Print GDK_KEY_Print +#define GDK_F1 GDK_KEY_F1 +#define GDK_F2 GDK_KEY_F2 +#define GDK_F3 GDK_KEY_F3 +#define GDK_F4 GDK_KEY_F4 +#define GDK_F5 GDK_KEY_F5 +#define GDK_F6 GDK_KEY_F6 +#define GDK_F7 GDK_KEY_F7 +#define GDK_F8 GDK_KEY_F8 +#define GDK_F9 GDK_KEY_F9 +#define GDK_F10 GDK_KEY_F10 +#define GDK_F11 GDK_KEY_F11 +#define GDK_F12 GDK_KEY_F12 +#endif + +G_END_DECLS + +#endif /* _VIRT_GTK_COMPAT */ + +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer-about.xml b/src/virt-viewer-about.xml index 01ac17c..e9ae52a 100644 --- a/src/virt-viewer-about.xml +++ b/src/virt-viewer-about.xml @@ -1,16 +1,20 @@ - + - + False 5 About Glade False + True center-on-parent + True dialog + True + True Virtual Machine Viewer - Copyright 2007-2011 Daniel P. Berrange -Copyright 2007-2011 Red Hat, Inc. + Copyright (C) 2007-2012 Daniel P. Berrange +Copyright (C) 2007-2012 Red Hat, Inc. A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt http://virt-manager.org/ virt-manager.org @@ -32,25 +36,30 @@ Marc-André Lureau The Fedora Translation Team - - + virt-viewer + + - + True + False + vertical 2 - - - - + True + False end False + True end 0 + + + diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index 918e788..def52c5 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -50,11 +50,14 @@ #include #endif +#include "virt-gtk-compat.h" #include "virt-viewer-app.h" #include "virt-viewer-auth.h" #include "virt-viewer-window.h" #include "virt-viewer-session.h" +#ifdef HAVE_GTK_VNC #include "virt-viewer-session-vnc.h" +#endif #ifdef HAVE_SPICE_GTK #include "virt-viewer-session-spice.h" #endif @@ -68,207 +71,252 @@ /* Internal methods */ static void virt_viewer_app_connected(VirtViewerSession *session, - VirtViewerApp *self); + VirtViewerApp *self); static void virt_viewer_app_initialized(VirtViewerSession *session, - VirtViewerApp *self); + VirtViewerApp *self); static void virt_viewer_app_disconnected(VirtViewerSession *session, - VirtViewerApp *self); + VirtViewerApp *self); static void virt_viewer_app_auth_refused(VirtViewerSession *session, - const char *msg, - VirtViewerApp *self); + const char *msg, + VirtViewerApp *self); static void virt_viewer_app_auth_failed(VirtViewerSession *session, - const char *msg, - VirtViewerApp *self); + const char *msg, + VirtViewerApp *self); +static void virt_viewer_app_usb_failed(VirtViewerSession *session, + const char *msg, + VirtViewerApp *self); static void virt_viewer_app_server_cut_text(VirtViewerSession *session, - const gchar *text, - VirtViewerApp *self); + const gchar *text, + VirtViewerApp *self); static void virt_viewer_app_bell(VirtViewerSession *session, - VirtViewerApp *self); + VirtViewerApp *self); + +static void virt_viewer_app_cancelled(VirtViewerSession *session, + VirtViewerApp *self); static void virt_viewer_app_channel_open(VirtViewerSession *session, - VirtViewerSessionChannel *channel, - VirtViewerApp *self); + VirtViewerSessionChannel *channel, + VirtViewerApp *self); static void virt_viewer_app_update_pretty_address(VirtViewerApp *self); static void virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen); static void virt_viewer_app_update_menu_displays(VirtViewerApp *self); struct _VirtViewerAppPrivate { - VirtViewerWindow *main_window; - GtkWidget *main_notebook; - GtkWidget *container; - GHashTable *windows; - gchar *clipboard; - - gboolean direct; - gboolean verbose; - gboolean authretry; - gboolean started; - gboolean fullscreen; - - VirtViewerSession *session; - gboolean active; - gboolean connected; - guint reconnect_poll; /* source id */ - char *unixsock; - char *ghost; - char *gport; - char *host; /* ssh */ - int port;/* ssh */ - char *user; /* ssh */ - char *transport; - char *pretty_address; - gchar *guest_name; - gboolean grabbed; + VirtViewerWindow *main_window; + GtkWidget *main_notebook; + GtkWidget *container; + GHashTable *windows; + gchar *clipboard; + + gboolean direct; + gboolean verbose; + gboolean enable_accel; + gboolean authretry; + gboolean started; + gboolean fullscreen; + gboolean fullscreen_auto_conf; + gboolean attach; + gboolean quiting; + + VirtViewerSession *session; + gboolean active; + gboolean connected; + gboolean cancelled; + guint reconnect_poll; /* source id */ + char *unixsock; + char *guri; /* prefered over ghost:gport */ + char *ghost; + char *gport; + char *gtlsport; + char *host; /* ssh */ + int port;/* ssh */ + char *user; /* ssh */ + char *transport; + char *pretty_address; + gchar *guest_name; + gboolean grabbed; + char *title; + + gint focused; }; G_DEFINE_ABSTRACT_TYPE(VirtViewerApp, virt_viewer_app, G_TYPE_OBJECT) -#define GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate)) +#define GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate)) enum { - PROP_0, - PROP_VERBOSE, - PROP_CONTAINER, - PROP_SESSION, - PROP_GUEST_NAME, - PROP_FULLSCREEN, + PROP_0, + PROP_VERBOSE, + PROP_CONTAINER, + PROP_SESSION, + PROP_GUEST_NAME, + PROP_GURI, + PROP_FULLSCREEN, + PROP_TITLE, + PROP_ENABLE_ACCEL, + PROP_HAS_FOCUS, + PROP_FULLSCREEN_AUTO_CONF, }; + +enum { + SIGNAL_WINDOW_ADDED, + SIGNAL_WINDOW_REMOVED, + SIGNAL_LAST, +}; + +static guint signals[SIGNAL_LAST]; void virt_viewer_app_set_debug(gboolean debug) { - doDebug = debug; +#if GLIB_CHECK_VERSION(2, 31, 0) + if (debug) { + const gchar *doms = g_getenv("G_MESSAGES_DEBUG"); + if (!doms) { + g_setenv("G_MESSAGES_DEBUG", G_LOG_DOMAIN, 1); + } else if (!strstr(doms, G_LOG_DOMAIN)) { + gchar *newdoms = g_strdup_printf("%s %s", doms, G_LOG_DOMAIN); + g_setenv("G_MESSAGES_DEBUG", newdoms, 1); + g_free(newdoms); + } + } +#endif + doDebug = debug; } void virt_viewer_app_simple_message_dialog(VirtViewerApp *self, - const char *fmt, ...) -{ - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - GtkWindow *window = GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window)); - GtkWidget *dialog; - char *msg; - va_list vargs; - - va_start(vargs, fmt); - - msg = g_strdup_vprintf(fmt, vargs); - - va_end(vargs); - - dialog = gtk_message_dialog_new(window, - GTK_DIALOG_MODAL | - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - "%s", - msg); - - gtk_dialog_run(GTK_DIALOG(dialog)); - - gtk_widget_destroy(dialog); - - g_free(msg); + const char *fmt, ...) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + GtkWindow *window = GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window)); + GtkWidget *dialog; + char *msg; + va_list vargs; + + va_start(vargs, fmt); + + msg = g_strdup_vprintf(fmt, vargs); + + va_end(vargs); + + dialog = gtk_message_dialog_new(window, + GTK_DIALOG_MODAL | + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "%s", + msg); + + gtk_dialog_run(GTK_DIALOG(dialog)); + + gtk_widget_destroy(dialog); + + g_free(msg); } void virt_viewer_app_quit(VirtViewerApp *self) { - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - VirtViewerAppPrivate *priv = self->priv; - - if (priv->session) - virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session)); - gtk_main_quit(); + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + VirtViewerAppPrivate *priv = self->priv; + + if (priv->session) { + virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session)); + if (priv->connected) { + priv->quiting = TRUE; + return; + } + } + + gtk_main_quit(); } static void count_window_visible(gpointer key G_GNUC_UNUSED, - gpointer value, - gpointer user_data) -{ - GtkWindow *win = virt_viewer_window_get_window(VIRT_VIEWER_WINDOW(value)); - guint *n = (guint*)user_data; - - if (gtk_widget_get_visible(GTK_WIDGET(win))) - *n += 1; + gpointer value, + gpointer user_data) +{ + GtkWindow *win = virt_viewer_window_get_window(VIRT_VIEWER_WINDOW(value)); + guint *n = (guint*)user_data; + + if (gtk_widget_get_visible(GTK_WIDGET(win))) + *n += 1; } static guint virt_viewer_app_get_n_windows_visible(VirtViewerApp *self) { - guint n = 0; - g_hash_table_foreach(self->priv->windows, count_window_visible, &n); - return n; + guint n = 0; + g_hash_table_foreach(self->priv->windows, count_window_visible, &n); + return n; } static guint virt_viewer_app_get_n_windows(VirtViewerApp *self) { - return g_hash_table_size(self->priv->windows); + return g_hash_table_size(self->priv->windows); } gboolean virt_viewer_app_window_set_visible(VirtViewerApp *self, - VirtViewerWindow *vwin, - gboolean visible) -{ - GtkWidget *window; - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); - g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(vwin), FALSE); - - window = GTK_WIDGET(virt_viewer_window_get_window(vwin)); - if (visible) { - gtk_widget_show(window); - return TRUE; - } else { - if (virt_viewer_app_get_n_windows_visible(self) > 1) { - gtk_widget_hide(window); - return FALSE; - } else if (virt_viewer_app_get_n_windows(self) > 1) { - GtkWidget *dialog = - gtk_message_dialog_new (GTK_WINDOW(window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_OK_CANCEL, - _("This is the last visible display. Do you want to quit?")); - gint result = gtk_dialog_run (GTK_DIALOG (dialog)); - switch (result) { - case GTK_RESPONSE_OK: - virt_viewer_app_quit(self); - break; - default: - break; - } - gtk_widget_destroy(dialog); - return FALSE; - } else { - virt_viewer_app_quit(self); - return FALSE; - } - } - - g_warn_if_reached(); - return FALSE; -} - -void + VirtViewerWindow *window, + gboolean visible) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(window), FALSE); + + if (visible) { + virt_viewer_window_show(window); + return TRUE; + } else { + if (virt_viewer_app_get_n_windows_visible(self) > 1) { + virt_viewer_window_hide(window); + return FALSE; + } else if (virt_viewer_app_get_n_windows(self) > 1) { + GtkWidget *dialog = + gtk_message_dialog_new (virt_viewer_window_get_window(window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_OK_CANCEL, + _("This is the last visible display. Do you want to quit?")); + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy(dialog); + switch (result) { + case GTK_RESPONSE_OK: + virt_viewer_app_quit(self); + break; + default: + break; + } + return FALSE; + } else { + virt_viewer_app_quit(self); + return FALSE; + } + } + + g_warn_if_reached(); + return FALSE; +} + +G_MODULE_EXPORT void virt_viewer_app_about_close(GtkWidget *dialog, - VirtViewerApp *self G_GNUC_UNUSED) -{ - gtk_widget_hide(dialog); - gtk_widget_destroy(dialog); -} - -void + VirtViewerApp *self G_GNUC_UNUSED) +{ + gtk_widget_hide(dialog); + gtk_widget_destroy(dialog); +} + +G_MODULE_EXPORT void virt_viewer_app_about_delete(GtkWidget *dialog, - void *dummy G_GNUC_UNUSED, - VirtViewerApp *self G_GNUC_UNUSED) -{ - gtk_widget_hide(dialog); - gtk_widget_destroy(dialog); + void *dummy G_GNUC_UNUSED, + VirtViewerApp *self G_GNUC_UNUSED) +{ + gtk_widget_hide(dialog); + gtk_widget_destroy(dialog); } #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) @@ -276,1094 +324,1498 @@ static int virt_viewer_app_open_tunnel(const char **cmd) { - int fd[2]; - pid_t pid; - - if (socketpair(PF_UNIX, SOCK_STREAM, 0, fd) < 0) - return -1; - - pid = fork(); - if (pid == -1) { - close(fd[0]); - close(fd[1]); - return -1; - } - - if (pid == 0) { /* child */ - close(fd[0]); - close(0); - close(1); - if (dup(fd[1]) < 0) - _exit(1); - if (dup(fd[1]) < 0) - _exit(1); - close(fd[1]); - execvp("ssh", (char *const*)cmd); - _exit(1); - } - close(fd[1]); - return fd[0]; + int fd[2]; + pid_t pid; + + if (socketpair(PF_UNIX, SOCK_STREAM, 0, fd) < 0) + return -1; + + pid = fork(); + if (pid == -1) { + close(fd[0]); + close(fd[1]); + return -1; + } + + if (pid == 0) { /* child */ + close(fd[0]); + close(0); + close(1); + if (dup(fd[1]) < 0) + _exit(1); + if (dup(fd[1]) < 0) + _exit(1); + close(fd[1]); + execvp("ssh", (char *const*)cmd); + _exit(1); + } + close(fd[1]); + return fd[0]; } static int virt_viewer_app_open_tunnel_ssh(const char *sshhost, - int sshport, - const char *sshuser, - const char *host, - const char *port, - const char *unixsock) -{ - const char *cmd[10]; - char portstr[50]; - int n = 0; - - cmd[n++] = "ssh"; - if (!sshport) { - cmd[n++] = "-p"; - sprintf(portstr, "%d", sshport); - cmd[n++] = portstr; - } - if (sshuser) { - cmd[n++] = "-l"; - cmd[n++] = sshuser; - } - cmd[n++] = sshhost; - cmd[n++] = "nc"; - if (port) { - cmd[n++] = host; - cmd[n++] = port; - } else { - cmd[n++] = "-U"; - cmd[n++] = unixsock; - } - cmd[n++] = NULL; - - return virt_viewer_app_open_tunnel(cmd); + int sshport, + const char *sshuser, + const char *host, + const char *port, + const char *unixsock) +{ + const char *cmd[10]; + char portstr[50]; + int n = 0; + + cmd[n++] = "ssh"; + if (sshport) { + cmd[n++] = "-p"; + sprintf(portstr, "%d", sshport); + cmd[n++] = portstr; + } + if (sshuser) { + cmd[n++] = "-l"; + cmd[n++] = sshuser; + } + cmd[n++] = sshhost; + cmd[n++] = "nc"; + if (port) { + cmd[n++] = host; + cmd[n++] = port; + } else { + cmd[n++] = "-U"; + cmd[n++] = unixsock; + } + cmd[n++] = NULL; + + return virt_viewer_app_open_tunnel(cmd); } static int virt_viewer_app_open_unix_sock(const char *unixsock) { - struct sockaddr_un addr; - int fd; - - memset(&addr, 0, sizeof addr); - addr.sun_family = AF_UNIX; - strcpy(addr.sun_path, unixsock); - - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) - return -1; - - if (connect(fd, (struct sockaddr *)&addr, sizeof addr) < 0) { - close(fd); - return -1; - } - - return fd; + struct sockaddr_un addr; + int fd; + + memset(&addr, 0, sizeof addr); + addr.sun_family = AF_UNIX; + strcpy(addr.sun_path, unixsock); + + if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) + return -1; + + if (connect(fd, (struct sockaddr *)&addr, sizeof addr) < 0) { + close(fd); + return -1; + } + + return fd; } #endif /* defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) */ void virt_viewer_app_trace(VirtViewerApp *self, - const char *fmt, ...) -{ - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - va_list ap; - VirtViewerAppPrivate *priv = self->priv; - - if (doDebug) { - va_start(ap, fmt); - g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, fmt, ap); - va_end(ap); - } - - if (priv->verbose) { - va_start(ap, fmt); - g_vprintf(fmt, ap); - va_end(ap); - } + const char *fmt, ...) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + va_list ap; + VirtViewerAppPrivate *priv = self->priv; + + if (doDebug) { + va_start(ap, fmt); + g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, fmt, ap); + va_end(ap); + } + + if (priv->verbose) { + va_start(ap, fmt); + g_vprintf(fmt, ap); + va_end(ap); + } +} + +static void +virt_viewer_app_set_window_subtitle(VirtViewerApp *app, + VirtViewerWindow *window, + int nth) +{ + gchar *subtitle = NULL; + + if (app->priv->title != NULL) { + gchar *d = strstr(app->priv->title, "%d"); + if (d != NULL) { + *d = '\0'; + subtitle = g_strdup_printf("%s%d%s", app->priv->title, nth + 1, d + 2); + *d = '%'; + } else + subtitle = g_strdup_printf("%s (%d)", app->priv->title, nth + 1); + } + + g_object_set(window, "subtitle", subtitle, NULL); + g_free(subtitle); +} + +static void +set_title(gpointer key, + gpointer value, + gpointer user_data) +{ + gint *nth = key; + VirtViewerApp *app = user_data; + VirtViewerWindow *window = value; + virt_viewer_app_set_window_subtitle(app, window, *nth); +} + +static void +virt_viewer_app_set_all_window_subtitles(VirtViewerApp *app) +{ + g_hash_table_foreach(app->priv->windows, set_title, app); } static void update_title(gpointer key G_GNUC_UNUSED, - gpointer value, - gpointer user_data G_GNUC_UNUSED) -{ - virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(value)); + gpointer value, + gpointer user_data G_GNUC_UNUSED) +{ + virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(value)); } static void virt_viewer_app_update_title(VirtViewerApp *self) { - g_hash_table_foreach(self->priv->windows, update_title, NULL); + g_hash_table_foreach(self->priv->windows, update_title, NULL); +} + +static void set_usb_options_sensitive(gpointer key G_GNUC_UNUSED, + gpointer value, + gpointer user_data) +{ + virt_viewer_window_set_usb_options_sensitive(VIRT_VIEWER_WINDOW(value), + GPOINTER_TO_INT(user_data)); +} + +static void +virt_viewer_app_set_usb_options_sensitive(VirtViewerApp *self, gboolean sensitive) +{ + g_hash_table_foreach(self->priv->windows, set_usb_options_sensitive, + GINT_TO_POINTER(sensitive)); } static VirtViewerWindow * virt_viewer_app_get_nth_window(VirtViewerApp *self, gint nth) { - return g_hash_table_lookup(self->priv->windows, &nth); + return g_hash_table_lookup(self->priv->windows, &nth); } static gboolean virt_viewer_app_remove_nth_window(VirtViewerApp *self, gint nth) { - gboolean removed; - - g_return_val_if_fail(nth != 0, FALSE); - removed = g_hash_table_remove(self->priv->windows, &nth); - g_warn_if_fail(removed); - - return removed; + VirtViewerWindow *win; + gboolean removed; + + g_return_val_if_fail(nth != 0, FALSE); + + win = virt_viewer_app_get_nth_window(self, nth); + g_return_val_if_fail(win != NULL, FALSE); + + DEBUG_LOG("Remove window %d %p", nth, win); + removed = g_hash_table_steal(self->priv->windows, &nth); + g_warn_if_fail(removed); + virt_viewer_app_update_menu_displays(self); + + if (removed) + g_signal_emit(self, signals[SIGNAL_WINDOW_REMOVED], 0, win); + + g_object_unref(win); + + return removed; } static void virt_viewer_app_set_nth_window(VirtViewerApp *self, gint nth, VirtViewerWindow *win) { - gint *key; - - g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL); - key = g_malloc(sizeof(gint)); - *key = nth; - g_hash_table_insert(self->priv->windows, key, win); + gint *key; + + g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL); + key = g_malloc(sizeof(gint)); + *key = nth; + DEBUG_LOG("Insert window %d %p", nth, win); + g_hash_table_insert(self->priv->windows, key, win); + virt_viewer_app_set_window_subtitle(self, win, nth); + virt_viewer_app_update_menu_displays(self); + + g_signal_emit(self, signals[SIGNAL_WINDOW_ADDED], 0, win); } static void viewer_window_visible_cb(GtkWidget *widget G_GNUC_UNUSED, - gpointer user_data) -{ - virt_viewer_app_update_menu_displays(VIRT_VIEWER_APP(user_data)); -} - + gpointer user_data) +{ + virt_viewer_app_update_menu_displays(VIRT_VIEWER_APP(user_data)); +} + +static gboolean +viewer_window_focus_in_cb(GtkWindow *window G_GNUC_UNUSED, + GdkEvent *event G_GNUC_UNUSED, + VirtViewerApp *self) +{ + self->priv->focused += 1; + + if (self->priv->focused == 1) + g_object_notify(G_OBJECT(self), "has-focus"); + + return FALSE; +} + +static gboolean +viewer_window_focus_out_cb(GtkWindow *window G_GNUC_UNUSED, + GdkEvent *event G_GNUC_UNUSED, + VirtViewerApp *self) +{ + self->priv->focused -= 1; + g_warn_if_fail(self->priv->focused >= 0); + + if (self->priv->focused <= 0) + g_object_notify(G_OBJECT(self), "has-focus"); + + return FALSE; +} static VirtViewerWindow* virt_viewer_app_window_new(VirtViewerApp *self, GtkWidget *container, gint nth) { - VirtViewerWindow* window; - GtkWindow *w; - - window = g_object_new(VIRT_VIEWER_TYPE_WINDOW, - "app", self, - "container", container, - NULL); - virt_viewer_app_set_nth_window(self, nth, window); - w = virt_viewer_window_get_window(window); - - /* this will set new window to fullscreen if necessary */ - virt_viewer_app_set_fullscreen(self, self->priv->fullscreen); - g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self); - g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self); - return window; + VirtViewerWindow* window; + GtkWindow *w; + + window = g_object_new(VIRT_VIEWER_TYPE_WINDOW, + "app", self, + "container", container, + NULL); + if (self->priv->main_window) + virt_viewer_window_set_zoom_level(window, virt_viewer_window_get_zoom_level(self->priv->main_window)); + virt_viewer_app_set_nth_window(self, nth, window); + w = virt_viewer_window_get_window(window); + + /* this will set new window to fullscreen if necessary */ + virt_viewer_app_set_fullscreen(self, self->priv->fullscreen); + g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self); + g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self); + g_signal_connect(w, "focus-in-event", G_CALLBACK(viewer_window_focus_in_cb), self); + g_signal_connect(w, "focus-out-event", G_CALLBACK(viewer_window_focus_out_cb), self); + return window; } static void display_show_hint(VirtViewerDisplay *display, - GParamSpec *pspec G_GNUC_UNUSED, - VirtViewerWindow *win) -{ - VirtViewerApp *self; - VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win); - GtkWindow *w = virt_viewer_window_get_window(win); - gint nth, hint; - - g_object_get(win, - "app", &self, - NULL); - g_object_get(display, - "nth-display", &nth, - "show-hint", &hint, - NULL); - - if (hint == VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE) { - if (win != self->priv->main_window && - g_getenv("VIRT_VIEWER_HIDE")) - gtk_widget_hide(GTK_WIDGET(w)); - virt_viewer_notebook_show_status(nb, _("Waiting for display %d..."), nth + 1); - } else { - virt_viewer_notebook_show_display(nb); - gtk_widget_show(GTK_WIDGET(w)); - gtk_window_present(w); - } - - g_object_unref(self); + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerWindow *win) +{ + VirtViewerApp *self; + VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win); + gint nth; + guint hint; + + g_object_get(win, + "app", &self, + NULL); + g_object_get(display, + "nth-display", &nth, + "show-hint", &hint, + NULL); + + if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) { + virt_viewer_window_hide(win); + } else if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY) { + virt_viewer_notebook_show_display(nb); + virt_viewer_window_show(win); + gtk_window_present(virt_viewer_window_get_window(win)); + } else { + if (win != self->priv->main_window && + g_getenv("VIRT_VIEWER_HIDE")) + virt_viewer_window_hide(win); + virt_viewer_notebook_show_status(nb, _("Waiting for display %d..."), nth + 1); + } + + g_object_unref(self); } static void virt_viewer_app_display_added(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerDisplay *display, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv = self->priv; - VirtViewerWindow *window; - gint nth; - - g_object_get(display, "nth-display", &nth, NULL); - if (nth == 0) { - window = priv->main_window; - } else { - if (priv->container) { - g_warning("multi-head not yet supported within container"); - return; - } - - g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL); - window = virt_viewer_app_window_new(self, NULL, nth); - } - - virt_viewer_window_set_display(window, display); - g_signal_connect(display, "notify::show-hint", - G_CALLBACK(display_show_hint), window); - g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */ + VirtViewerDisplay *display, + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + VirtViewerWindow *window; + gint nth; + + g_object_get(display, "nth-display", &nth, NULL); + if (nth == 0) { + window = priv->main_window; + } else { + if (priv->container) { + g_warning("multi-head not yet supported within container"); + return; + } + + g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL); + window = virt_viewer_app_window_new(self, NULL, nth); + } + + virt_viewer_window_set_display(window, display); + virt_viewer_app_update_menu_displays(self); + virt_viewer_signal_connect_object(display, "notify::show-hint", + G_CALLBACK(display_show_hint), window, 0); + g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */ } static void virt_viewer_app_display_removed(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerDisplay *display, - VirtViewerApp *self) -{ - VirtViewerWindow *win = NULL; - gint nth; - - gtk_widget_hide(GTK_WIDGET(display)); - g_object_get(display, "nth-display", &nth, NULL); - win = virt_viewer_app_get_nth_window(self, nth); - virt_viewer_window_set_display(win, NULL); - - if (nth != 0) - virt_viewer_app_remove_nth_window(self, nth); + VirtViewerDisplay *display, + VirtViewerApp *self) +{ + VirtViewerWindow *win = NULL; + gint nth; + + gtk_widget_hide(GTK_WIDGET(display)); + g_object_get(display, "nth-display", &nth, NULL); + win = virt_viewer_app_get_nth_window(self, nth); + virt_viewer_window_set_display(win, NULL); + + if (nth != 0) + virt_viewer_app_remove_nth_window(self, nth); +} + +static void +virt_viewer_app_display_updated(VirtViewerSession *session G_GNUC_UNUSED, + VirtViewerApp *self) +{ + virt_viewer_app_update_menu_displays(self); } int virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type) { - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); - VirtViewerAppPrivate *priv = self->priv; - g_return_val_if_fail(priv->session == NULL, -1); - - if (g_strcasecmp(type, "vnc") == 0) { - virt_viewer_app_trace(self, "Guest %s has a %s display\n", - priv->guest_name, type); - priv->session = virt_viewer_session_vnc_new(); - } else + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); + VirtViewerAppPrivate *priv = self->priv; + g_return_val_if_fail(priv->session == NULL, -1); + g_return_val_if_fail(type != NULL, -1); + +#ifdef HAVE_GTK_VNC + if (g_ascii_strcasecmp(type, "vnc") == 0) { + GtkWindow *window = virt_viewer_window_get_window(priv->main_window); + virt_viewer_app_trace(self, "Guest %s has a %s display\n", + priv->guest_name, type); + priv->session = virt_viewer_session_vnc_new(window); + } else +#endif #ifdef HAVE_SPICE_GTK - if (g_strcasecmp(type, "spice") == 0) { - virt_viewer_app_trace(self, "Guest %s has a %s display\n", - priv->guest_name, type); - priv->session = virt_viewer_session_spice_new(); - } else + if (g_ascii_strcasecmp(type, "spice") == 0) { + GtkWindow *window = virt_viewer_window_get_window(priv->main_window); + virt_viewer_app_trace(self, "Guest %s has a %s display\n", + priv->guest_name, type); + priv->session = virt_viewer_session_spice_new(self, window); + } else #endif - { - virt_viewer_app_trace(self, "Guest %s has unsupported %s display type\n", - priv->guest_name, type); - virt_viewer_app_simple_message_dialog(self, _("Unknown graphic type for the guest %s"), - priv->guest_name); - return -1; - } - - g_signal_connect(priv->session, "session-initialized", - G_CALLBACK(virt_viewer_app_initialized), self); - g_signal_connect(priv->session, "session-connected", - G_CALLBACK(virt_viewer_app_connected), self); - g_signal_connect(priv->session, "session-disconnected", - G_CALLBACK(virt_viewer_app_disconnected), self); - g_signal_connect(priv->session, "session-channel-open", - G_CALLBACK(virt_viewer_app_channel_open), self); - g_signal_connect(priv->session, "session-auth-refused", - G_CALLBACK(virt_viewer_app_auth_refused), self); - g_signal_connect(priv->session, "session-auth-failed", - G_CALLBACK(virt_viewer_app_auth_failed), self); - g_signal_connect(priv->session, "session-display-added", - G_CALLBACK(virt_viewer_app_display_added), self); - g_signal_connect(priv->session, "session-display-removed", - G_CALLBACK(virt_viewer_app_display_removed), self); - - g_signal_connect(priv->session, "session-cut-text", - G_CALLBACK(virt_viewer_app_server_cut_text), self); - g_signal_connect(priv->session, "session-bell", - G_CALLBACK(virt_viewer_app_bell), self); - - return 0; -} + { + virt_viewer_app_trace(self, "Guest %s has unsupported %s display type\n", + priv->guest_name, type); + virt_viewer_app_simple_message_dialog(self, _("Unknown graphic type for the guest %s"), + priv->guest_name); + return -1; + } + + g_signal_connect(priv->session, "session-initialized", + G_CALLBACK(virt_viewer_app_initialized), self); + g_signal_connect(priv->session, "session-connected", + G_CALLBACK(virt_viewer_app_connected), self); + g_signal_connect(priv->session, "session-disconnected", + G_CALLBACK(virt_viewer_app_disconnected), self); + g_signal_connect(priv->session, "session-channel-open", + G_CALLBACK(virt_viewer_app_channel_open), self); + g_signal_connect(priv->session, "session-auth-refused", + G_CALLBACK(virt_viewer_app_auth_refused), self); + g_signal_connect(priv->session, "session-auth-failed", + G_CALLBACK(virt_viewer_app_auth_failed), self); + g_signal_connect(priv->session, "session-usb-failed", + G_CALLBACK(virt_viewer_app_usb_failed), self); + g_signal_connect(priv->session, "session-display-added", + G_CALLBACK(virt_viewer_app_display_added), self); + g_signal_connect(priv->session, "session-display-removed", + G_CALLBACK(virt_viewer_app_display_removed), self); + g_signal_connect(priv->session, "session-display-updated", + G_CALLBACK(virt_viewer_app_display_updated), self); + + g_signal_connect(priv->session, "session-cut-text", + G_CALLBACK(virt_viewer_app_server_cut_text), self); + g_signal_connect(priv->session, "session-bell", + G_CALLBACK(virt_viewer_app_bell), self); + g_signal_connect(priv->session, "session-cancelled", + G_CALLBACK(virt_viewer_app_cancelled), self); + + return 0; +} + +static gboolean +virt_viewer_app_default_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd) +{ + *fd = -1; + return TRUE; +} + + +static int +virt_viewer_app_open_connection(VirtViewerApp *self, int *fd) +{ + VirtViewerAppClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); + klass = VIRT_VIEWER_APP_GET_CLASS(self); + + return klass->open_connection(self, fd); +} + #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) static void virt_viewer_app_channel_open(VirtViewerSession *session, - VirtViewerSessionChannel *channel, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv; - int fd = -1; - - g_return_if_fail(self != NULL); - - priv = self->priv; - if (priv->transport && g_strcasecmp(priv->transport, "ssh") == 0 && - !priv->direct) { - if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, priv->user, - priv->ghost, priv->gport, NULL)) < 0) - virt_viewer_app_simple_message_dialog(self, _("Connect to ssh failed.")); - } else { - virt_viewer_app_simple_message_dialog(self, _("Can't connect to channel, SSH only supported.")); - } - - if (fd >= 0) - virt_viewer_session_channel_open_fd(session, channel, fd); + VirtViewerSessionChannel *channel, + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv; + int fd = -1; + + g_return_if_fail(self != NULL); + + if (!virt_viewer_app_open_connection(self, &fd)) + return; + + DEBUG_LOG("After open connection callback fd=%d", fd); + + priv = self->priv; + if (priv->transport && g_ascii_strcasecmp(priv->transport, "ssh") == 0 && + !priv->direct && fd == -1) { + if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, priv->user, + priv->ghost, priv->gport, NULL)) < 0) + virt_viewer_app_simple_message_dialog(self, _("Connect to ssh failed.")); + } else if (fd == -1) { + virt_viewer_app_simple_message_dialog(self, _("Can't connect to channel, SSH only supported.")); + } + + if (fd >= 0) + virt_viewer_session_channel_open_fd(session, channel, fd); } #else static void virt_viewer_app_channel_open(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerSessionChannel *channel G_GNUC_UNUSED, - VirtViewerApp *self) -{ - virt_viewer_app_simple_message_dialog(self, _("Connect to channel unsupported.")); + VirtViewerSessionChannel *channel G_GNUC_UNUSED, + VirtViewerApp *self) +{ + virt_viewer_app_simple_message_dialog(self, _("Connect to channel unsupported.")); } #endif + +static int +virt_viewer_app_default_activate(VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + int fd = -1; + + if (!virt_viewer_app_open_connection(self, &fd)) + return -1; + + DEBUG_LOG("After open connection callback fd=%d", fd); + +#if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) + if (priv->transport && + g_ascii_strcasecmp(priv->transport, "ssh") == 0 && + !priv->direct && + fd == -1) { + gchar *p = NULL; + + if (priv->gport) { + virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n", + priv->ghost, priv->gport); + } else { + virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n", + priv->unixsock); + } + if (priv->port) + p = g_strdup_printf(":%d", priv->port); + + virt_viewer_app_trace(self, "Setting up SSH tunnel via %s%s%s%s\n", + priv->user ? priv->user : "", + priv->user ? "@" : "", + priv->host, p ? p : ""); + g_free(p); + + if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, + priv->user, priv->ghost, + priv->gport, priv->unixsock)) < 0) + return -1; + } else if (priv->unixsock && fd == -1) { + virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s", + priv->unixsock); + if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0) + return -1; + } +#endif + + if (fd >= 0) { + return virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), fd); + } else if (priv->guri) { + virt_viewer_app_trace(self, "Opening connection to display at %s\n", priv->guri); + return virt_viewer_session_open_uri(VIRT_VIEWER_SESSION(priv->session), priv->guri); + } else { + virt_viewer_app_trace(self, "Opening direct TCP connection to display at %s:%s:%s\n", + priv->ghost, priv->gport, priv->gtlsport ? priv->gtlsport : "-1"); + return virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session), + priv->ghost, priv->gport, priv->gtlsport); + } + + return -1; +} int virt_viewer_app_activate(VirtViewerApp *self) { - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); - VirtViewerAppPrivate *priv = self->priv; - int fd = -1; - int ret = -1; - - if (priv->active) - goto cleanup; - -#if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) - if (priv->transport && - g_strcasecmp(priv->transport, "ssh") == 0 && - !priv->direct) { - if (priv->gport) { - virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n", - priv->ghost, priv->gport); - } else { - virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n", - priv->unixsock); - } - virt_viewer_app_trace(self, "Setting up SSH tunnel via %s@%s:%d\n", - priv->user, priv->host, priv->port ? priv->port : 22); - - if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, - priv->user, priv->ghost, - priv->gport, priv->unixsock)) < 0) - return -1; - } else if (priv->unixsock) { - virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s", - priv->unixsock); - if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0) - return -1; - } -#endif - - if (fd >= 0) { - ret = virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), fd); - } else { - virt_viewer_app_trace(self, "Opening direct TCP connection to display at %s:%s\n", - priv->ghost, priv->gport); - ret = virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session), - priv->ghost, priv->gport); - } - - virt_viewer_app_show_status(self, _("Connecting to graphic server")); - - priv->connected = FALSE; - priv->active = TRUE; - priv->grabbed = FALSE; - virt_viewer_app_update_title(self); - - cleanup: - return ret; + VirtViewerAppPrivate *priv; + int ret; + + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); + + priv = self->priv; + if (priv->active) + return -1; + + ret = VIRT_VIEWER_APP_GET_CLASS(self)->activate(self); + + if (ret != -1) { + virt_viewer_app_show_status(self, _("Connecting to graphic server")); + priv->connected = FALSE; + priv->cancelled = FALSE; + priv->active = TRUE; + priv->grabbed = FALSE; + virt_viewer_app_update_title(self); + } + + return ret; } /* text was actually requested */ static void virt_viewer_app_clipboard_copy(GtkClipboard *clipboard G_GNUC_UNUSED, - GtkSelectionData *data, - guint info G_GNUC_UNUSED, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv = self->priv; - - gtk_selection_data_set_text(data, priv->clipboard, -1); + GtkSelectionData *data, + guint info G_GNUC_UNUSED, + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + + gtk_selection_data_set_text(data, priv->clipboard, -1); } static void virt_viewer_app_server_cut_text(VirtViewerSession *session G_GNUC_UNUSED, - const gchar *text, - VirtViewerApp *self) -{ - GtkClipboard *cb; - gsize a, b; - VirtViewerAppPrivate *priv = self->priv; - GtkTargetEntry targets[] = { - {g_strdup("UTF8_STRING"), 0, 0}, - {g_strdup("COMPOUND_TEXT"), 0, 0}, - {g_strdup("TEXT"), 0, 0}, - {g_strdup("STRING"), 0, 0}, - }; - - if (!text) - return; - - g_free (priv->clipboard); - priv->clipboard = g_convert (text, -1, "utf-8", "iso8859-1", &a, &b, NULL); - - if (priv->clipboard) { - cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); - - gtk_clipboard_set_with_owner (cb, - targets, - G_N_ELEMENTS(targets), - (GtkClipboardGetFunc)virt_viewer_app_clipboard_copy, - NULL, - G_OBJECT (self)); - } + const gchar *text, + VirtViewerApp *self) +{ + GtkClipboard *cb; + gsize a, b; + VirtViewerAppPrivate *priv = self->priv; + GtkTargetEntry targets[] = { + {g_strdup("UTF8_STRING"), 0, 0}, + {g_strdup("COMPOUND_TEXT"), 0, 0}, + {g_strdup("TEXT"), 0, 0}, + {g_strdup("STRING"), 0, 0}, + }; + + if (!text) + return; + + g_free (priv->clipboard); + priv->clipboard = g_convert (text, -1, "utf-8", "iso8859-1", &a, &b, NULL); + + if (priv->clipboard) { + cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); + + gtk_clipboard_set_with_owner (cb, + targets, + G_N_ELEMENTS(targets), + (GtkClipboardGetFunc)virt_viewer_app_clipboard_copy, + NULL, + G_OBJECT (self)); + } } static void virt_viewer_app_bell(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv = self->priv; - - gdk_window_beep(gtk_widget_get_window(GTK_WIDGET(virt_viewer_window_get_window(priv->main_window)))); + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + + gdk_window_beep(gtk_widget_get_window(GTK_WIDGET(virt_viewer_window_get_window(priv->main_window)))); } static int virt_viewer_app_default_initial_connect(VirtViewerApp *self) { - return virt_viewer_app_activate(self); + return virt_viewer_app_activate(self); } int virt_viewer_app_initial_connect(VirtViewerApp *self) { - VirtViewerAppClass *klass; - - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); - klass = VIRT_VIEWER_APP_GET_CLASS(self); - - return klass->initial_connect(self); + VirtViewerAppClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1); + klass = VIRT_VIEWER_APP_GET_CLASS(self); + + return klass->initial_connect(self); } static gboolean virt_viewer_app_retryauth(gpointer opaque) { - VirtViewerApp *self = opaque; - - virt_viewer_app_initial_connect(self); - - return FALSE; + VirtViewerApp *self = opaque; + + virt_viewer_app_initial_connect(self); + + return FALSE; } static gboolean virt_viewer_app_connect_timer(void *opaque) { - VirtViewerApp *self = opaque; - VirtViewerAppPrivate *priv = self->priv; - - DEBUG_LOG("Connect timer fired"); - - if (!priv->active && - virt_viewer_app_initial_connect(self) < 0) - gtk_main_quit(); - - if (priv->active) { - priv->reconnect_poll = 0; - return FALSE; - } - - return TRUE; + VirtViewerApp *self = opaque; + VirtViewerAppPrivate *priv = self->priv; + + DEBUG_LOG("Connect timer fired"); + + if (!priv->active && + virt_viewer_app_initial_connect(self) < 0) + gtk_main_quit(); + + if (priv->active) { + priv->reconnect_poll = 0; + return FALSE; + } + + return TRUE; } void virt_viewer_app_start_reconnect_poll(VirtViewerApp *self) { - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - VirtViewerAppPrivate *priv = self->priv; - - if (priv->reconnect_poll != 0) - return; - - priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self); + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + VirtViewerAppPrivate *priv = self->priv; + + if (priv->reconnect_poll != 0) + return; + + priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self); } static void virt_viewer_app_default_deactivated(VirtViewerApp *self) { - VirtViewerAppPrivate *priv = self->priv; - - virt_viewer_app_show_status(self, _("Guest domain has shutdown")); - virt_viewer_app_trace(self, "Guest %s display has disconnected, shutting down", - priv->guest_name); - gtk_main_quit(); + VirtViewerAppPrivate *priv = self->priv; + + virt_viewer_app_show_status(self, _("Guest domain has shutdown")); + virt_viewer_app_trace(self, "Guest %s display has disconnected, shutting down", + priv->guest_name); + gtk_main_quit(); } static void virt_viewer_app_deactivated(VirtViewerApp *self) { - VirtViewerAppClass *klass; - klass = VIRT_VIEWER_APP_GET_CLASS(self); - - klass->deactivated(self); + VirtViewerAppClass *klass; + klass = VIRT_VIEWER_APP_GET_CLASS(self); + + klass->deactivated(self); } static void virt_viewer_app_deactivate(VirtViewerApp *self) { - VirtViewerAppPrivate *priv = self->priv; - - if (!priv->active) - return; - - if (priv->session) - virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session)); - - priv->connected = FALSE; - priv->active = FALSE; + VirtViewerAppPrivate *priv = self->priv; + + if (!priv->active) + return; + + if (priv->session) + virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session)); + + priv->connected = FALSE; + priv->active = FALSE; #if 0 - g_free(priv->pretty_address); - priv->pretty_address = NULL; + g_free(priv->pretty_address); + priv->pretty_address = NULL; #endif - priv->grabbed = FALSE; - virt_viewer_app_update_title(self); - - if (priv->authretry) { - priv->authretry = FALSE; - g_idle_add(virt_viewer_app_retryauth, self); - } else - virt_viewer_app_deactivated(self); + priv->grabbed = FALSE; + virt_viewer_app_update_title(self); + + if (priv->authretry) { + priv->authretry = FALSE; + g_idle_add(virt_viewer_app_retryauth, self); + } else + virt_viewer_app_deactivated(self); } static void virt_viewer_app_connected(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv = self->priv; - - priv->connected = TRUE; - virt_viewer_app_show_status(self, _("Connected to graphic server")); + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + + priv->connected = TRUE; + virt_viewer_app_show_status(self, _("Connected to graphic server")); } static void virt_viewer_app_initialized(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerApp *self) -{ - virt_viewer_app_update_title(self); + VirtViewerApp *self) +{ + gboolean has_usb = virt_viewer_session_has_usb(self->priv->session); + + virt_viewer_app_update_title(self); + virt_viewer_app_set_usb_options_sensitive(self, has_usb); } static void virt_viewer_app_disconnected(VirtViewerSession *session G_GNUC_UNUSED, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv = self->priv; - - if (!priv->connected) { - virt_viewer_app_simple_message_dialog(self, - _("Unable to connect to the graphic server %s"), - priv->pretty_address); - } - virt_viewer_app_deactivate(self); + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + + if (priv->quiting) + gtk_main_quit(); + + if (!priv->connected && !priv->cancelled) { + virt_viewer_app_simple_message_dialog(self, + _("Unable to connect to the graphic server %s"), + priv->pretty_address); + } + virt_viewer_app_set_usb_options_sensitive(self, FALSE); + virt_viewer_app_deactivate(self); +} + +static void virt_viewer_app_cancelled(VirtViewerSession *session, + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + priv->cancelled = TRUE; + virt_viewer_app_disconnected(session, self); } static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSED, - const char *msg, - VirtViewerApp *self) -{ - GtkWidget *dialog; - int ret; - VirtViewerAppPrivate *priv = self->priv; - - dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window), - GTK_DIALOG_MODAL | - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_YES_NO, - _("Unable to authenticate with remote desktop server at %s: %s\n" - "Retry connection again?"), - priv->pretty_address, msg); - - ret = gtk_dialog_run(GTK_DIALOG(dialog)); - - gtk_widget_destroy(dialog); - - if (ret == GTK_RESPONSE_YES) - priv->authretry = TRUE; - else - priv->authretry = FALSE; + const char *msg, + VirtViewerApp *self) +{ + GtkWidget *dialog; + int ret; + VirtViewerAppPrivate *priv = self->priv; + + dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window), + GTK_DIALOG_MODAL | + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_YES_NO, + _("Unable to authenticate with remote desktop server at %s: %s\n" + "Retry connection again?"), + priv->pretty_address, msg); + + ret = gtk_dialog_run(GTK_DIALOG(dialog)); + + gtk_widget_destroy(dialog); + + if (ret == GTK_RESPONSE_YES) + priv->authretry = TRUE; + else + priv->authretry = FALSE; } static void virt_viewer_app_auth_failed(VirtViewerSession *session G_GNUC_UNUSED, - const char *msg, - VirtViewerApp *self) -{ - VirtViewerAppPrivate *priv = self->priv; - - virt_viewer_app_simple_message_dialog(self, - _("Unable to authenticate with remote desktop server at %s"), - priv->pretty_address, msg); + const char *msg, + VirtViewerApp *self) +{ + virt_viewer_app_simple_message_dialog(self, + _("Unable to authenticate with remote desktop server: %s"), + msg); +} + +static void virt_viewer_app_usb_failed(VirtViewerSession *session G_GNUC_UNUSED, + const gchar *msg, + VirtViewerApp *self) +{ + virt_viewer_app_simple_message_dialog(self, _("USB redirection error: %s"), msg); } static void virt_viewer_app_get_property (GObject *object, guint property_id, - GValue *value G_GNUC_UNUSED, GParamSpec *pspec) -{ - g_return_if_fail(VIRT_VIEWER_IS_APP(object)); - VirtViewerApp *self = VIRT_VIEWER_APP(object); - VirtViewerAppPrivate *priv = self->priv; - - switch (property_id) { - case PROP_VERBOSE: - g_value_set_boolean(value, priv->verbose); - break; - - case PROP_CONTAINER: - g_value_set_object(value, priv->container); - break; - - case PROP_SESSION: - g_value_set_object(value, priv->session); - break; - - case PROP_GUEST_NAME: - g_value_set_string(value, priv->guest_name); - break; - - case PROP_FULLSCREEN: - g_value_set_boolean(value, priv->fullscreen); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } + GValue *value G_GNUC_UNUSED, GParamSpec *pspec) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(object)); + VirtViewerApp *self = VIRT_VIEWER_APP(object); + VirtViewerAppPrivate *priv = self->priv; + + switch (property_id) { + case PROP_VERBOSE: + g_value_set_boolean(value, priv->verbose); + break; + + case PROP_CONTAINER: + g_value_set_object(value, priv->container); + break; + + case PROP_SESSION: + g_value_set_object(value, priv->session); + break; + + case PROP_GUEST_NAME: + g_value_set_string(value, priv->guest_name); + break; + + case PROP_GURI: + g_value_set_string(value, priv->guri); + break; + + case PROP_FULLSCREEN: + g_value_set_boolean(value, priv->fullscreen); + break; + + case PROP_TITLE: + g_value_set_string(value, priv->title); + break; + + case PROP_ENABLE_ACCEL: + g_value_set_boolean(value, virt_viewer_app_get_enable_accel(self)); + break; + + case PROP_HAS_FOCUS: + g_value_set_boolean(value, priv->focused > 0); + break; + + case PROP_FULLSCREEN_AUTO_CONF: + g_value_set_boolean(value, priv->fullscreen_auto_conf); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } } static void virt_viewer_app_set_property (GObject *object, guint property_id, - const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) -{ - g_return_if_fail(VIRT_VIEWER_IS_APP(object)); - VirtViewerApp *self = VIRT_VIEWER_APP(object); - VirtViewerAppPrivate *priv = self->priv; - - switch (property_id) { - case PROP_VERBOSE: - priv->verbose = g_value_get_boolean(value); - break; - - case PROP_CONTAINER: - g_return_if_fail(priv->container == NULL); - priv->container = g_value_dup_object(value); - break; - - case PROP_GUEST_NAME: - g_free(priv->guest_name); - priv->guest_name = g_value_dup_string(value); - break; - - case PROP_FULLSCREEN: - virt_viewer_app_set_fullscreen(self, g_value_get_boolean(value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } + const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(object)); + VirtViewerApp *self = VIRT_VIEWER_APP(object); + VirtViewerAppPrivate *priv = self->priv; + + switch (property_id) { + case PROP_VERBOSE: + priv->verbose = g_value_get_boolean(value); + break; + + case PROP_CONTAINER: + g_return_if_fail(priv->container == NULL); + priv->container = g_value_dup_object(value); + break; + + case PROP_GUEST_NAME: + g_free(priv->guest_name); + priv->guest_name = g_value_dup_string(value); + break; + + case PROP_GURI: + g_free(priv->guri); + priv->guri = g_value_dup_string(value); + virt_viewer_app_update_pretty_address(self); + break; + + case PROP_FULLSCREEN: + virt_viewer_app_set_fullscreen(self, g_value_get_boolean(value)); + break; + + case PROP_TITLE: + g_free(priv->title); + priv->title = g_value_dup_string(value); + virt_viewer_app_set_all_window_subtitles(self); + break; + + case PROP_ENABLE_ACCEL: + priv->enable_accel = g_value_get_boolean(value); + break; + + case PROP_FULLSCREEN_AUTO_CONF: + priv->fullscreen_auto_conf = g_value_get_boolean(value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } } static void virt_viewer_app_dispose (GObject *object) { - VirtViewerApp *self = VIRT_VIEWER_APP(object); - VirtViewerAppPrivate *priv = self->priv; - - if (priv->windows) { - g_hash_table_unref(priv->windows); - priv->windows = NULL; - } - - if (priv->main_window) { - g_object_unref(priv->main_window); - priv->main_window = NULL; - } - - if (priv->container) { - g_object_unref(priv->container); - priv->container = NULL; - } - - virt_viewer_app_free_connect_info(self); - - G_OBJECT_CLASS (virt_viewer_app_parent_class)->dispose (object); + VirtViewerApp *self = VIRT_VIEWER_APP(object); + VirtViewerAppPrivate *priv = self->priv; + + if (priv->windows) { + GHashTable *tmp = priv->windows; + /* null-ify before unrefing, because we need + * to prevent callbacks using priv->windows + * while it is being disposed off. */ + priv->windows = NULL; + priv->main_window = NULL; + g_hash_table_unref(tmp); + } + + if (priv->container) { + g_object_unref(priv->container); + priv->container = NULL; + } + + if (priv->session) { + g_object_unref(priv->session); + priv->session = NULL; + } + g_free(priv->title); + priv->title = NULL; + g_free(priv->guest_name); + priv->guest_name = NULL; + g_free(priv->pretty_address); + priv->pretty_address = NULL; + g_free(priv->guri); + priv->guri = NULL; + g_free(priv->title); + priv->title = NULL; + + virt_viewer_app_free_connect_info(self); + + G_OBJECT_CLASS (virt_viewer_app_parent_class)->dispose (object); } static gboolean virt_viewer_app_default_start(VirtViewerApp *self) { - VirtViewerAppPrivate *priv; - GtkWindow *win; - priv = self->priv; - - win = virt_viewer_window_get_window(priv->main_window); - if (win) - gtk_widget_show(GTK_WIDGET(win)); - else { - gtk_box_pack_end(GTK_BOX(priv->container), priv->main_notebook, TRUE, TRUE, 0); - gtk_widget_show(GTK_WIDGET(priv->main_notebook)); - } - - return TRUE; + virt_viewer_window_show(self->priv->main_window); + return TRUE; } gboolean virt_viewer_app_start(VirtViewerApp *self) { - VirtViewerAppClass *klass; - - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); - klass = VIRT_VIEWER_APP_GET_CLASS(self); - - g_return_val_if_fail(!self->priv->started, TRUE); - - self->priv->started = klass->start(self); - return self->priv->started; + VirtViewerAppClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + klass = VIRT_VIEWER_APP_GET_CLASS(self); + + g_return_val_if_fail(!self->priv->started, TRUE); + + self->priv->started = klass->start(self); + return self->priv->started; } static void virt_viewer_app_init (VirtViewerApp *self) { - self->priv = GET_PRIVATE(self); - self->priv->windows = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_object_unref); + self->priv = GET_PRIVATE(self); + self->priv->windows = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_object_unref); } static GObject * virt_viewer_app_constructor (GType gtype, - guint n_properties, - GObjectConstructParam *properties) -{ - GObject *obj; - VirtViewerApp *self; - VirtViewerAppPrivate *priv; - - obj = G_OBJECT_CLASS (virt_viewer_app_parent_class)->constructor (gtype, n_properties, properties); - self = VIRT_VIEWER_APP(obj); - priv = self->priv; - - priv->main_window = virt_viewer_app_window_new(self, priv->container, 0); - priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window)); - - return obj; + guint n_properties, + GObjectConstructParam *properties) +{ + GObject *obj; + VirtViewerApp *self; + VirtViewerAppPrivate *priv; + + obj = G_OBJECT_CLASS (virt_viewer_app_parent_class)->constructor (gtype, n_properties, properties); + self = VIRT_VIEWER_APP(obj); + priv = self->priv; + + priv->main_window = virt_viewer_app_window_new(self, priv->container, 0); + priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window)); + + gtk_accel_map_add_entry("/file/smartcard-insert", GDK_F8, GDK_SHIFT_MASK); + gtk_accel_map_add_entry("/file/smartcard-remove", GDK_F9, GDK_SHIFT_MASK); + gtk_accel_map_add_entry("/view/fullscreen", GDK_F11, 0); + gtk_accel_map_add_entry("/view/release-cursor", GDK_F12, GDK_SHIFT_MASK); + + return obj; } static void virt_viewer_app_class_init (VirtViewerAppClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate)); - - object_class->constructor = virt_viewer_app_constructor; - object_class->get_property = virt_viewer_app_get_property; - object_class->set_property = virt_viewer_app_set_property; - object_class->dispose = virt_viewer_app_dispose; - - klass->start = virt_viewer_app_default_start; - klass->initial_connect = virt_viewer_app_default_initial_connect; - klass->deactivated = virt_viewer_app_default_deactivated; - - g_object_class_install_property(object_class, - PROP_VERBOSE, - g_param_spec_boolean("verbose", - "Verbose", - "Verbose trace", - FALSE, - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_CONTAINER, - g_param_spec_object("container", - "Container", - "Widget container", - GTK_TYPE_WIDGET, - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_SESSION, - g_param_spec_object("session", - "Session", - "ViewerSession", - VIRT_VIEWER_TYPE_SESSION, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_GUEST_NAME, - g_param_spec_string("guest-name", - "Guest name", - "Guest name", - "", - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_FULLSCREEN, - g_param_spec_boolean("fullscreen", - "Fullscreen", - "Fullscreen", - FALSE, - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS)); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate)); + + object_class->constructor = virt_viewer_app_constructor; + object_class->get_property = virt_viewer_app_get_property; + object_class->set_property = virt_viewer_app_set_property; + object_class->dispose = virt_viewer_app_dispose; + + klass->start = virt_viewer_app_default_start; + klass->initial_connect = virt_viewer_app_default_initial_connect; + klass->activate = virt_viewer_app_default_activate; + klass->deactivated = virt_viewer_app_default_deactivated; + klass->open_connection = virt_viewer_app_default_open_connection; + + g_object_class_install_property(object_class, + PROP_VERBOSE, + g_param_spec_boolean("verbose", + "Verbose", + "Verbose trace", + FALSE, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_CONTAINER, + g_param_spec_object("container", + "Container", + "Widget container", + GTK_TYPE_WIDGET, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_SESSION, + g_param_spec_object("session", + "Session", + "ViewerSession", + VIRT_VIEWER_TYPE_SESSION, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_GUEST_NAME, + g_param_spec_string("guest-name", + "Guest name", + "Guest name", + "", + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_GURI, + g_param_spec_string("guri", + "guri", + "Remote graphical URI", + "", + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_FULLSCREEN, + g_param_spec_boolean("fullscreen", + "Fullscreen", + "Fullscreen", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_FULLSCREEN_AUTO_CONF, + g_param_spec_boolean("fullscreen-auto-conf", + "auto conf", + "Automatic display configuration in full screen", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_TITLE, + g_param_spec_string("title", + "Title", + "Title", + "", + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_ENABLE_ACCEL, + g_param_spec_boolean("enable-accel", + "Enable Accel", + "Enable accelerators", + FALSE, + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_HAS_FOCUS, + g_param_spec_boolean("has-focus", + "Has Focus", + "Application has focus", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); + + signals[SIGNAL_WINDOW_ADDED] = + g_signal_new("window-added", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET(VirtViewerAppClass, window_added), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + G_TYPE_OBJECT); + + signals[SIGNAL_WINDOW_REMOVED] = + g_signal_new("window-removed", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET(VirtViewerAppClass, window_removed), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + G_TYPE_OBJECT); } void virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct) { - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - - self->priv->direct = direct; + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + + self->priv->direct = direct; +} + +void +virt_viewer_app_set_attach(VirtViewerApp *self, gboolean attach) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + + self->priv->attach = attach; +} + +gboolean +virt_viewer_app_get_attach(VirtViewerApp *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + + return self->priv->attach; } gboolean virt_viewer_app_is_active(VirtViewerApp *self) { - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); - - return self->priv->active; + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + + return self->priv->active; } gboolean virt_viewer_app_has_session(VirtViewerApp *self) { - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); - - return self->priv->session != NULL; + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + + return self->priv->session != NULL; } static void virt_viewer_app_update_pretty_address(VirtViewerApp *self) { - VirtViewerAppPrivate *priv; - - priv = self->priv; - g_free(priv->pretty_address); - if (priv->gport) - priv->pretty_address = g_strdup_printf("%s:%s", priv->ghost, priv->gport); - else - priv->pretty_address = g_strdup_printf("%s:%s", priv->host, priv->unixsock); + VirtViewerAppPrivate *priv; + + priv = self->priv; + g_free(priv->pretty_address); + if (priv->guri) + priv->pretty_address = g_strdup(priv->guri); + else if (priv->gport) + priv->pretty_address = g_strdup_printf("%s:%s", priv->ghost, priv->gport); + else + priv->pretty_address = g_strdup_printf("%s:%s", priv->host, priv->unixsock); } typedef struct { - gboolean fullscreen; - gboolean move; + gboolean fullscreen; + gboolean move; } FullscreenOptions; static void fullscreen_cb(gpointer key, - gpointer value, - gpointer user_data) -{ - gint nth = *(gint*)key; - FullscreenOptions *options = (FullscreenOptions *)user_data; - VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(value); - - DEBUG_LOG("fullscreen display %d: %d", nth, options->fullscreen); - if (options->fullscreen) { - GdkScreen *screen = gdk_screen_get_default (); - GdkRectangle mon; - - if (nth >= gdk_screen_get_n_monitors(screen)) { - DEBUG_LOG("skipping display %d", nth); - return; - } - gdk_screen_get_monitor_geometry(screen, nth, &mon); - virt_viewer_window_enter_fullscreen(vwin, options->move, mon.x, mon.y); - } else - virt_viewer_window_leave_fullscreen(vwin); + gpointer value, + gpointer user_data) +{ + gint nth = *(gint*)key; + FullscreenOptions *options = (FullscreenOptions *)user_data; + VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(value); + + DEBUG_LOG("fullscreen display %d: %d", nth, options->fullscreen); + if (options->fullscreen) { + GdkScreen *screen = gdk_screen_get_default(); + GdkRectangle mon; + + if (nth >= gdk_screen_get_n_monitors(screen)) { + DEBUG_LOG("skipping display %d", nth); + return; + } + gdk_screen_get_monitor_geometry(screen, nth, &mon); + virt_viewer_window_enter_fullscreen(vwin, options->move, mon.x, mon.y); + } else + virt_viewer_window_leave_fullscreen(vwin); } static void virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen) { - VirtViewerAppPrivate *priv = self->priv; - FullscreenOptions options = { - .fullscreen = fullscreen, - .move = virt_viewer_app_get_n_windows_visible(self) > 1, - }; - - /* we iterate unconditionnaly, even if it was set before to update new windows */ - priv->fullscreen = fullscreen; - g_hash_table_foreach(priv->windows, fullscreen_cb, &options); + VirtViewerAppPrivate *priv = self->priv; + FullscreenOptions options = { + .fullscreen = fullscreen, + .move = virt_viewer_app_get_n_windows_visible(self) > 1 || self->priv->fullscreen_auto_conf, + }; + + /* we iterate unconditionnaly, even if it was set before to update new windows */ + priv->fullscreen = fullscreen; + g_hash_table_foreach(priv->windows, fullscreen_cb, &options); + + g_object_notify(G_OBJECT(self), "fullscreen"); } static void menu_display_visible_toggled_cb(GtkCheckMenuItem *checkmenuitem, - VirtViewerWindow *vwin) -{ - VirtViewerApp *self; - gboolean visible; - static gboolean reentering = FALSE; - - if (reentering) /* do not reenter if I switch you back */ - return; - - reentering = TRUE; - g_object_get(vwin, "app", &self, NULL); - visible = virt_viewer_app_window_set_visible(self, vwin, - gtk_check_menu_item_get_active(checkmenuitem)); - gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible); - g_object_unref(self); - reentering = FALSE; + VirtViewerWindow *vwin) +{ + VirtViewerApp *self; + gboolean visible; + static gboolean reentering = FALSE; + + if (reentering) /* do not reenter if I switch you back */ + return; + + reentering = TRUE; + g_object_get(vwin, "app", &self, NULL); + visible = virt_viewer_app_window_set_visible(self, vwin, + gtk_check_menu_item_get_active(checkmenuitem)); + gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible); + g_object_unref(self); + reentering = FALSE; } static gint update_menu_displays_sort(gconstpointer a, gconstpointer b) { - const int *ai = a; - const int *bi = b; - - if (*ai > *bi) - return 1; - else if (*ai < *bi) - return -1; - else - return 0; + const int *ai = a; + const int *bi = b; + + if (*ai > *bi) + return 1; + else if (*ai < *bi) + return -1; + else + return 0; } static void window_update_menu_displays_cb(gpointer key G_GNUC_UNUSED, - gpointer value, - gpointer user_data) -{ - VirtViewerApp *self = VIRT_VIEWER_APP(user_data); - VirtViewerWindow *window = VIRT_VIEWER_WINDOW(value); - GtkMenuShell *submenu = GTK_MENU_SHELL(gtk_menu_new()); - GtkMenuItem *menu = virt_viewer_window_get_menu_displays(window); - GList *keys = g_hash_table_get_keys(self->priv->windows); - GList *tmp; - - keys = g_list_sort(keys, update_menu_displays_sort); - - tmp = keys; - while (tmp) { - int *nth = tmp->data; - VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth)); - GtkWidget *item; - gboolean visible; - - item = gtk_check_menu_item_new_with_label(g_strdup_printf("Display %d", *nth)); - visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin))); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible); - g_signal_connect(G_OBJECT(item), - "toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin); - gtk_menu_shell_append(submenu, item); - tmp = tmp->next; - } - - gtk_widget_show_all(GTK_WIDGET(submenu)); - gtk_menu_item_set_submenu(menu, GTK_WIDGET(submenu)); - g_list_free(keys); + gpointer value, + gpointer user_data) +{ + VirtViewerApp *self = VIRT_VIEWER_APP(user_data); + VirtViewerWindow *window = VIRT_VIEWER_WINDOW(value); + GtkMenuShell *submenu = GTK_MENU_SHELL(gtk_menu_new()); + GtkMenuItem *menu = virt_viewer_window_get_menu_displays(window); + GList *keys = g_hash_table_get_keys(self->priv->windows); + GList *tmp; + + keys = g_list_sort(keys, update_menu_displays_sort); + + tmp = keys; + while (tmp) { + int *nth = tmp->data; + VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth)); + VirtViewerDisplay *display = virt_viewer_window_get_display(vwin); + GtkWidget *item; + gboolean visible, sensitive = FALSE; + gchar *label; + + label = g_strdup_printf(_("Display %d"), *nth + 1); + item = gtk_check_menu_item_new_with_label(label); + g_free(label); + + visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin))); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible); + + if (display) { + guint hint = virt_viewer_display_get_show_hint(display); + + if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY) + sensitive = TRUE; + + if ((hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) && + virt_viewer_display_get_selectable(display)) + sensitive = TRUE; + } + + gtk_widget_set_sensitive(item, sensitive); + + g_signal_connect(G_OBJECT(item), + "toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin); + gtk_menu_shell_append(submenu, item); + tmp = tmp->next; + } + + gtk_widget_show_all(GTK_WIDGET(submenu)); + gtk_menu_item_set_submenu(menu, GTK_WIDGET(submenu)); + g_list_free(keys); } static void virt_viewer_app_update_menu_displays(VirtViewerApp *self) { - g_hash_table_foreach(self->priv->windows, window_update_menu_displays_cb, self); + if (!self->priv->windows) + return; + g_hash_table_foreach(self->priv->windows, window_update_menu_displays_cb, self); } void virt_viewer_app_set_connect_info(VirtViewerApp *self, - const gchar *host, - const gchar *ghost, - const gchar *gport, - const gchar *transport, - const gchar *unixsock, - const gchar *user, - gint port) -{ - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - VirtViewerAppPrivate *priv = self->priv; - - DEBUG_LOG("Set connect info: %s,%s,%s,%s,%s,%s,%d", - host, ghost, gport, transport, unixsock, user, port); - - g_free(priv->host); - g_free(priv->ghost); - g_free(priv->gport); - g_free(priv->transport); - g_free(priv->unixsock); - g_free(priv->user); - - priv->host = g_strdup(host); - priv->ghost = g_strdup(ghost); - priv->gport = g_strdup(gport); - priv->transport = g_strdup(transport); - priv->unixsock = g_strdup(unixsock); - priv->user = g_strdup(user); - priv->port = 0; - - virt_viewer_app_update_pretty_address(self); + const gchar *host, + const gchar *ghost, + const gchar *gport, + const gchar *gtlsport, + const gchar *transport, + const gchar *unixsock, + const gchar *user, + gint port, + const gchar *guri) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + VirtViewerAppPrivate *priv = self->priv; + + DEBUG_LOG("Set connect info: %s,%s,%s,%s,%s,%s,%s,%d", + host, ghost, gport, gtlsport ? gtlsport : "-1", transport, unixsock, user, port); + + g_free(priv->host); + g_free(priv->ghost); + g_free(priv->gport); + g_free(priv->gtlsport); + g_free(priv->transport); + g_free(priv->unixsock); + g_free(priv->user); + g_free(priv->guri); + + priv->host = g_strdup(host); + priv->ghost = g_strdup(ghost); + priv->gport = g_strdup(gport); + priv->gtlsport = gtlsport ? g_strdup(gtlsport) : NULL; + priv->transport = g_strdup(transport); + priv->unixsock = g_strdup(unixsock); + priv->user = g_strdup(user); + priv->guri = g_strdup(guri); + priv->port = port; + + virt_viewer_app_update_pretty_address(self); } void virt_viewer_app_free_connect_info(VirtViewerApp *self) { - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - - virt_viewer_app_set_connect_info(self, NULL, NULL, NULL, NULL, NULL, NULL, 0); + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + + virt_viewer_app_set_connect_info(self, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL); } VirtViewerWindow* virt_viewer_app_get_main_window(VirtViewerApp *self) { - g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL); - - return self->priv->main_window; + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL); + + return self->priv->main_window; } static void show_status_cb(gpointer key G_GNUC_UNUSED, - gpointer value, - gpointer user_data) -{ - VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value)); - gchar *text = (gchar*)user_data; - - virt_viewer_notebook_show_status(nb, text); + gpointer value, + gpointer user_data) +{ + VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value)); + gchar *text = (gchar*)user_data; + + virt_viewer_notebook_show_status(nb, text); } void virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...) { - va_list args; - gchar *text; - - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); - - va_start(args, fmt); - text = g_strdup_vprintf(fmt, args); - va_end(args); - - g_hash_table_foreach(self->priv->windows, show_status_cb, text); - g_free(text); + va_list args; + gchar *text; + + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + g_return_if_fail(fmt != NULL); + + va_start(args, fmt); + text = g_strdup_vprintf(fmt, args); + va_end(args); + + g_hash_table_foreach(self->priv->windows, show_status_cb, text); + g_free(text); +} + +static void +show_display_cb(gpointer key G_GNUC_UNUSED, + gpointer value, + gpointer user_data G_GNUC_UNUSED) +{ + VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value)); + + virt_viewer_notebook_show_display(nb); +} + +void +virt_viewer_app_show_display(VirtViewerApp *self) +{ + g_return_if_fail(VIRT_VIEWER_IS_APP(self)); + g_hash_table_foreach(self->priv->windows, show_display_cb, self); +} + +gboolean +virt_viewer_app_get_enable_accel(VirtViewerApp *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + + return self->priv->enable_accel; +} + +VirtViewerSession* +virt_viewer_app_get_session(VirtViewerApp *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE); + + return self->priv->session; +} + +GHashTable* +virt_viewer_app_get_windows(VirtViewerApp *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL); + return self->priv->windows; } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-app.h b/src/virt-viewer-app.h index ad3a761..5dc95dd 100644 --- a/src/virt-viewer-app.h +++ b/src/virt-viewer-app.h @@ -1,7 +1,7 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007 Red Hat, + * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 @@ -39,16 +39,23 @@ typedef struct _VirtViewerAppPrivate VirtViewerAppPrivate; typedef struct { - GObject parent; - VirtViewerAppPrivate *priv; + GObject parent; + VirtViewerAppPrivate *priv; } VirtViewerApp; typedef struct { - GObjectClass parent_class; + GObjectClass parent_class; - gboolean (*start) (VirtViewerApp *self); - int (*initial_connect) (VirtViewerApp *self); - void (*deactivated) (VirtViewerApp *self); + /* signals */ + void (*window_added) (VirtViewerApp *self, VirtViewerWindow *window); + void (*window_removed) (VirtViewerApp *self, VirtViewerWindow *window); + + /*< private >*/ + gboolean (*start) (VirtViewerApp *self); + int (*initial_connect) (VirtViewerApp *self); + int (*activate) (VirtViewerApp *self); + void (*deactivated) (VirtViewerApp *self); + gboolean (*open_connection)(VirtViewerApp *self, int *fd); } VirtViewerAppClass; GType virt_viewer_app_get_type (void); @@ -67,18 +74,33 @@ void virt_viewer_app_start_reconnect_poll(VirtViewerApp *self); void virt_viewer_app_set_zoom_level(VirtViewerApp *self, gint zoom_level); void virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct); +void virt_viewer_app_set_attach(VirtViewerApp *self, gboolean attach); +gboolean virt_viewer_app_get_attach(VirtViewerApp *self); gboolean virt_viewer_app_has_session(VirtViewerApp *self); void virt_viewer_app_set_connect_info(VirtViewerApp *self, const gchar *host, const gchar *ghost, const gchar *gport, + const gchar *gtlsport, const gchar *transport, const gchar *unixsock, const gchar *user, - gint port); + gint port, + const gchar *guri); gboolean virt_viewer_app_window_set_visible(VirtViewerApp *self, VirtViewerWindow *window, gboolean visible); void virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...); +void virt_viewer_app_show_display(VirtViewerApp *self); +GHashTable* virt_viewer_app_get_windows(VirtViewerApp *self); +gboolean virt_viewer_app_get_enable_accel(VirtViewerApp *self); +VirtViewerSession* virt_viewer_app_get_session(VirtViewerApp *self); G_END_DECLS #endif /* VIRT_VIEWER_APP_H */ +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer-auth.c b/src/virt-viewer-auth.c index 811051f..487e67c 100644 --- a/src/virt-viewer-auth.c +++ b/src/virt-viewer-auth.c @@ -1,7 +1,7 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, + * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 @@ -22,216 +22,166 @@ #include -#include #include #include + +#ifdef HAVE_GTK_VNC +#include +#endif #include "virt-viewer-auth.h" int -virt_viewer_auth_collect_credentials(const char *type, - const char *address, - char **username, - char **password) +virt_viewer_auth_collect_credentials(GtkWindow *window, + const char *type, + const char *address, + char **username, + char **password) { - GtkWidget *dialog = NULL; - GtkBuilder *creds = virt_viewer_util_load_ui("virt-viewer-auth.xml"); - GtkWidget *credUsername; - GtkWidget *credPassword; - GtkWidget *promptUsername; - GtkWidget *promptPassword; - GtkWidget *labelMessage; - int response; - char *message; + GtkWidget *dialog = NULL; + GtkBuilder *creds = virt_viewer_util_load_ui("virt-viewer-auth.xml"); + GtkWidget *credUsername; + GtkWidget *credPassword; + GtkWidget *promptUsername; + GtkWidget *promptPassword; + GtkWidget *labelMessage; + int response; + char *message; - dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth")); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth")); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); + gtk_window_set_transient_for(GTK_WINDOW(dialog), window); - labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message")); - credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username")); - promptUsername = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-username")); - credPassword = GTK_WIDGET(gtk_builder_get_object(creds, "cred-password")); - promptPassword = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-password")); + labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message")); + credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username")); + promptUsername = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-username")); + credPassword = GTK_WIDGET(gtk_builder_get_object(creds, "cred-password")); + promptPassword = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-password")); - gtk_widget_set_sensitive(credUsername, username != NULL); - gtk_widget_set_sensitive(promptUsername, username != NULL); - gtk_widget_set_sensitive(credPassword, password != NULL); - gtk_widget_set_sensitive(promptPassword, password != NULL); + gtk_widget_set_sensitive(credUsername, username != NULL); + gtk_widget_set_sensitive(promptUsername, username != NULL); + gtk_widget_set_sensitive(credPassword, password != NULL); + gtk_widget_set_sensitive(promptPassword, password != NULL); - if (address) { - message = g_strdup_printf("Authentication is required for the %s connection to:\n\n" - "%s\n\n", - type, - address); - } else { - message = g_strdup_printf("Authentication is required for the %s connection:\n", - type); - } + if (address) { + message = g_strdup_printf("Authentication is required for the %s connection to:\n\n" + "%s\n\n", + type, + address); + } else { + message = g_strdup_printf("Authentication is required for the %s connection:\n", + type); + } - gtk_label_set_markup(GTK_LABEL(labelMessage), message); - g_free(message); + gtk_label_set_markup(GTK_LABEL(labelMessage), message); + g_free(message); - gtk_widget_show_all(dialog); - response = gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_hide(dialog); + gtk_widget_show_all(dialog); + response = gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_hide(dialog); - if (response == GTK_RESPONSE_OK) { - if (username) - *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(credUsername))); - if (password) - *password = g_strdup(gtk_entry_get_text(GTK_ENTRY(credPassword))); - } + if (response == GTK_RESPONSE_OK) { + if (username) + *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(credUsername))); + if (password) + *password = g_strdup(gtk_entry_get_text(GTK_ENTRY(credPassword))); + } - gtk_widget_destroy(GTK_WIDGET(dialog)); + gtk_widget_destroy(GTK_WIDGET(dialog)); + g_object_unref(G_OBJECT(creds)); - return response == GTK_RESPONSE_OK ? 0 : -1; + return response == GTK_RESPONSE_OK ? 0 : -1; } +#ifdef HAVE_GTK_VNC void -virt_viewer_auth_vnc_credentials(GtkWidget *vnc, - GValueArray *credList, - char **vncAddress) +virt_viewer_auth_vnc_credentials(GtkWindow *window, + GtkWidget *vnc, + GValueArray *credList, + char *vncAddress) { - char *username = NULL, *password = NULL; - gboolean wantPassword = FALSE, wantUsername = FALSE; - int i; + char *username = NULL, *password = NULL; + gboolean wantPassword = FALSE, wantUsername = FALSE; + int i; - DEBUG_LOG("Got VNC credential request for %d credential(s)", credList->n_values); + DEBUG_LOG("Got VNC credential request for %d credential(s)", credList->n_values); - for (i = 0 ; i < credList->n_values ; i++) { - GValue *cred = g_value_array_get_nth(credList, i); - switch (g_value_get_enum(cred)) { - case VNC_DISPLAY_CREDENTIAL_USERNAME: - wantUsername = TRUE; - break; - case VNC_DISPLAY_CREDENTIAL_PASSWORD: - wantPassword = TRUE; - break; - case VNC_DISPLAY_CREDENTIAL_CLIENTNAME: - break; - default: - DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred)); - vnc_display_close(VNC_DISPLAY(vnc)); - goto cleanup; - } + for (i = 0 ; i < credList->n_values ; i++) { + GValue *cred = g_value_array_get_nth(credList, i); + switch (g_value_get_enum(cred)) { + case VNC_DISPLAY_CREDENTIAL_USERNAME: + wantUsername = TRUE; + break; + case VNC_DISPLAY_CREDENTIAL_PASSWORD: + wantPassword = TRUE; + break; + case VNC_DISPLAY_CREDENTIAL_CLIENTNAME: + break; + default: + DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred)); + vnc_display_close(VNC_DISPLAY(vnc)); + goto cleanup; } + } - if (wantUsername || wantPassword) { - int ret = virt_viewer_auth_collect_credentials("VNC", vncAddress ? *vncAddress : NULL, - wantUsername ? &username : NULL, - wantPassword ? &password : NULL); + if (wantUsername || wantPassword) { + int ret = virt_viewer_auth_collect_credentials(window, + "VNC", vncAddress, + wantUsername ? &username : NULL, + wantPassword ? &password : NULL); - if (ret < 0) { - vnc_display_close(VNC_DISPLAY(vnc)); - goto cleanup; - } + if (ret < 0) { + vnc_display_close(VNC_DISPLAY(vnc)); + goto cleanup; } + } - for (i = 0 ; i < credList->n_values ; i++) { - GValue *cred = g_value_array_get_nth(credList, i); - switch (g_value_get_enum(cred)) { - case VNC_DISPLAY_CREDENTIAL_USERNAME: - if (!username || - vnc_display_set_credential(VNC_DISPLAY(vnc), - g_value_get_enum(cred), - username)) { - DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred)); - vnc_display_close(VNC_DISPLAY(vnc)); - } - break; - case VNC_DISPLAY_CREDENTIAL_PASSWORD: - if (!password || - vnc_display_set_credential(VNC_DISPLAY(vnc), - g_value_get_enum(cred), - password)) { - DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred)); - vnc_display_close(VNC_DISPLAY(vnc)); - } - break; - case VNC_DISPLAY_CREDENTIAL_CLIENTNAME: - if (vnc_display_set_credential(VNC_DISPLAY(vnc), - g_value_get_enum(cred), - "libvirt")) { - DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred)); - vnc_display_close(VNC_DISPLAY(vnc)); - } - break; - default: - DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred)); - vnc_display_close(VNC_DISPLAY(vnc)); - } + for (i = 0 ; i < credList->n_values ; i++) { + GValue *cred = g_value_array_get_nth(credList, i); + switch (g_value_get_enum(cred)) { + case VNC_DISPLAY_CREDENTIAL_USERNAME: + if (!username || + vnc_display_set_credential(VNC_DISPLAY(vnc), + g_value_get_enum(cred), + username)) { + DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred)); + vnc_display_close(VNC_DISPLAY(vnc)); + } + break; + case VNC_DISPLAY_CREDENTIAL_PASSWORD: + if (!password || + vnc_display_set_credential(VNC_DISPLAY(vnc), + g_value_get_enum(cred), + password)) { + DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred)); + vnc_display_close(VNC_DISPLAY(vnc)); + } + break; + case VNC_DISPLAY_CREDENTIAL_CLIENTNAME: + if (vnc_display_set_credential(VNC_DISPLAY(vnc), + g_value_get_enum(cred), + "libvirt")) { + DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred)); + vnc_display_close(VNC_DISPLAY(vnc)); + } + break; + default: + DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred)); + vnc_display_close(VNC_DISPLAY(vnc)); } + } cleanup: - g_free(username); - g_free(password); + g_free(username); + g_free(password); } - - - -int -virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred, - unsigned int ncred, - void *cbdata) -{ - char **username = NULL, **password = NULL; - const char *uri = cbdata; - int i; - int ret = -1; - - DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred); - - for (i = 0 ; i < ncred ; i++) { - switch (cred[i].type) { - case VIR_CRED_USERNAME: - case VIR_CRED_AUTHNAME: - username = &cred[i].result; - break; - case VIR_CRED_PASSPHRASE: - password = &cred[i].result; - break; - default: - DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type); - return -1; - } - } - - if (username || password) { - ret = virt_viewer_auth_collect_credentials("libvirt", uri, - username, password); - if (ret < 0) - goto cleanup; - } else { - ret = 0; - } - - for (i = 0 ; i < ncred ; i++) { - switch (cred[i].type) { - case VIR_CRED_AUTHNAME: - case VIR_CRED_USERNAME: - case VIR_CRED_PASSPHRASE: - if (cred[i].result) - cred[i].resultlen = strlen(cred[i].result); - else - cred[i].resultlen = 0; - DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type); - break; - } - } - - cleanup: - DEBUG_LOG("Return %d", ret); - return ret; -} - - - +#endif /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-auth.h b/src/virt-viewer-auth.h index 1cbf2b6..5b4c546 100644 --- a/src/virt-viewer-auth.h +++ b/src/virt-viewer-auth.h @@ -1,7 +1,7 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, + * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 @@ -23,21 +23,30 @@ #ifndef VIRT_VIEWER_AUTH_H #define VIRT_VIEWER_AUTH_H +#include "config.h" + +#ifdef HAVE_LIBVIRT #include +#endif #include "virt-viewer-util.h" -void virt_viewer_auth_vnc_credentials(GtkWidget *vnc, - GValueArray *credList, - char **message); +void virt_viewer_auth_vnc_credentials(GtkWindow *window, + GtkWidget *vnc, + GValueArray *credList, + char *vncAddress); -int virt_viewer_auth_collect_credentials(const char *type, - const char *address, - char **username, - char **password); - -int virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred, - unsigned int ncred, - void *cbdata); +int virt_viewer_auth_collect_credentials(GtkWindow *window, + const char *type, + const char *address, + char **username, + char **password); #endif +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer-auth.xml b/src/virt-viewer-auth.xml index f45143d..0da1181 100644 --- a/src/virt-viewer-auth.xml +++ b/src/virt-viewer-auth.xml @@ -1,31 +1,86 @@ - + - + False 5 Authentication required + True center-on-parent + True dialog + True + True - + True + False + vertical 2 + + + True + False + end + + + gtk-cancel + True + True + True + False + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + True + True + False + True + + + False + False + 3 + + + + + False + True + end + 0 + + True + False 0 0 label True + False + True 1 True + False 2 2 6 @@ -33,6 +88,7 @@ True + False 1 Password: @@ -44,6 +100,7 @@ True + False 1 Username: @@ -63,6 +120,7 @@ True True False + True 1 @@ -73,48 +131,9 @@ + False + True 2 - - - - - True - end - - - gtk-cancel - True - True - True - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - True - True - - - False - False - 3 - - - - - False - end - 0 diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c index 1a056f8..8845ee0 100644 --- a/src/virt-viewer-display-spice.c +++ b/src/virt-viewer-display-spice.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2009 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -22,6 +22,8 @@ * Author: Daniel P. Berrange */ +#include + #include #include @@ -33,140 +35,276 @@ G_DEFINE_TYPE (VirtViewerDisplaySpice, virt_viewer_display_spice, VIRT_VIEWER_TYPE_DISPLAY) struct _VirtViewerDisplaySpicePrivate { - SpiceChannel *channel; - SpiceDisplay *display; + SpiceChannel *channel; /* weak reference */ + SpiceDisplay *display; }; #define VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpicePrivate)) static void virt_viewer_display_spice_send_keys(VirtViewerDisplay *display, - const guint *keyvals, - int nkeyvals); + const guint *keyvals, + int nkeyvals); static GdkPixbuf *virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display); +static void virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display); +static void virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED); +static gboolean virt_viewer_display_spice_selectable(VirtViewerDisplay *display); static void virt_viewer_display_spice_finalize(GObject *obj) { - VirtViewerDisplaySpice *spice = VIRT_VIEWER_DISPLAY_SPICE(obj); - - g_object_unref(spice->priv->display); - g_object_unref(spice->priv->channel); - - G_OBJECT_CLASS(virt_viewer_display_spice_parent_class)->finalize(obj); + VirtViewerDisplaySpice *spice = VIRT_VIEWER_DISPLAY_SPICE(obj); + + g_object_unref(spice->priv->display); + + G_OBJECT_CLASS(virt_viewer_display_spice_parent_class)->finalize(obj); } static void virt_viewer_display_spice_class_init(VirtViewerDisplaySpiceClass *klass) { - VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass); - GObjectClass *oclass = G_OBJECT_CLASS(klass); - - oclass->finalize = virt_viewer_display_spice_finalize; - - dclass->send_keys = virt_viewer_display_spice_send_keys; - dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf; - - g_type_class_add_private(oclass, sizeof(VirtViewerDisplaySpicePrivate)); + VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass); + GObjectClass *oclass = G_OBJECT_CLASS(klass); + + oclass->finalize = virt_viewer_display_spice_finalize; + + dclass->send_keys = virt_viewer_display_spice_send_keys; + dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf; + dclass->release_cursor = virt_viewer_display_spice_release_cursor; + dclass->close = virt_viewer_display_spice_close; + dclass->selectable = virt_viewer_display_spice_selectable; + + g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate)); +} + +static SpiceMainChannel* +get_main(VirtViewerDisplay *self) +{ + VirtViewerSessionSpice *session; + + session = VIRT_VIEWER_SESSION_SPICE(virt_viewer_display_get_session(self)); + + return virt_viewer_session_spice_get_main_channel(session); +} + +static void +show_hint_changed(VirtViewerDisplay *self) +{ + SpiceMainChannel *main_channel = get_main(self); + guint enabled = TRUE; + guint nth; + + /* this may happen when finalizing */ + if (!main_channel) + return; + + g_object_get(self, "nth-display", &nth, NULL); + if (virt_viewer_display_get_show_hint(self) & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) + enabled = FALSE; + + spice_main_set_display_enabled(main_channel, nth, enabled); } static void virt_viewer_display_spice_init(VirtViewerDisplaySpice *self G_GNUC_UNUSED) { - self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self); + self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self); + + g_signal_connect(self, "notify::show-hint", G_CALLBACK(show_hint_changed), NULL); } static void virt_viewer_display_spice_send_keys(VirtViewerDisplay *display, - const guint *keyvals, - int nkeyvals) -{ - VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display); - - g_return_if_fail(self != NULL); - g_return_if_fail(self->priv->display != NULL); - - spice_display_send_keys(self->priv->display, keyvals, nkeyvals, SPICE_DISPLAY_KEY_EVENT_CLICK); + const guint *keyvals, + int nkeyvals) +{ + VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display); + + g_return_if_fail(self != NULL); + g_return_if_fail(self->priv->display != NULL); + + spice_display_send_keys(self->priv->display, keyvals, nkeyvals, SPICE_DISPLAY_KEY_EVENT_CLICK); } static GdkPixbuf * virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display) { - VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display); - - g_return_val_if_fail(self != NULL, NULL); - g_return_val_if_fail(self->priv->display != NULL, NULL); - - return spice_display_get_pixbuf(self->priv->display); -} - -static void -display_mark(SpiceChannel *channel G_GNUC_UNUSED, - gint mark, - VirtViewerDisplay *display) -{ - DEBUG_LOG("display mark %d", mark); - - virt_viewer_display_set_show_hint(display, mark); -} - -static void -primary_create(SpiceChannel *channel G_GNUC_UNUSED, - gint format G_GNUC_UNUSED, - gint width, - gint height, - gint stride G_GNUC_UNUSED, - gint shmid G_GNUC_UNUSED, - gpointer imgdata G_GNUC_UNUSED, - VirtViewerDisplay *display) -{ - DEBUG_LOG("spice desktop resize %dx%d", width, height); - - virt_viewer_display_set_desktop_size(display, width, height); - g_signal_emit_by_name(display, "display-desktop-resize"); -} - + VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display); + + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->priv->display != NULL, NULL); + + return spice_display_get_pixbuf(self->priv->display); +} + +static void +display_ready(GObject *display, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerDisplay *self) +{ + gboolean ready; + + g_object_get(display, "ready", &ready, NULL); + DEBUG_LOG("display %p ready:%d", self, ready); + + virt_viewer_display_set_show_hint(self, VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, ready); +} + +static void +virt_viewer_display_spice_keyboard_grab(SpiceDisplay *display G_GNUC_UNUSED, + int grabbed, + VirtViewerDisplaySpice *self) +{ + if (grabbed) + g_signal_emit_by_name(self, "display-keyboard-grab"); + else + g_signal_emit_by_name(self, "display-keyboard-ungrab"); +} + + +static void +virt_viewer_display_spice_mouse_grab(SpiceDisplay *display G_GNUC_UNUSED, + int grabbed, + VirtViewerDisplaySpice *self) +{ + if (grabbed) + g_signal_emit_by_name(self, "display-pointer-grab"); + else + g_signal_emit_by_name(self, "display-pointer-ungrab"); +} + + +static void +virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self, + GtkAllocation *allocation, + gpointer data G_GNUC_UNUSED) +{ + gdouble dw = allocation->width, dh = allocation->height; + guint zoom = 100; + guint nth; + + if (virt_viewer_display_get_auto_resize(VIRT_VIEWER_DISPLAY(self)) == FALSE) + return; + + if (virt_viewer_display_get_show_hint(VIRT_VIEWER_DISPLAY(self)) & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) + return; + + if (virt_viewer_display_get_zoom(VIRT_VIEWER_DISPLAY(self))) { + zoom = virt_viewer_display_get_zoom_level(VIRT_VIEWER_DISPLAY(self)); + + dw /= ((double)zoom / 100.0); + dh /= ((double)zoom / 100.0); + } + + g_object_get(self, "nth-display", &nth, NULL); + + spice_main_set_display(get_main(VIRT_VIEWER_DISPLAY(self)), + nth, 0, 0, dw, dh); +} + +static void +enable_accel_changed(VirtViewerApp *app, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerDisplaySpice *self) +{ + if (virt_viewer_app_get_enable_accel(app)) { + /* disable default grab sequence */ + spice_display_set_grab_keys(self->priv->display, + spice_grab_sequence_new(0, NULL)); + } else { + spice_display_set_grab_keys(self->priv->display, NULL); + } +} GtkWidget * -virt_viewer_display_spice_new(SpiceChannel *channel, - SpiceDisplay *display) -{ - VirtViewerDisplaySpice *self; - gint channelid; - - g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL); - g_return_val_if_fail(SPICE_IS_DISPLAY(display), NULL); - - g_object_get(channel, "channel-id", &channelid, NULL); - - self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE, - "nth-display", channelid, - NULL); - self->priv->channel = g_object_ref(channel); - self->priv->display = g_object_ref(display); - - g_signal_connect(channel, "display-primary-create", - G_CALLBACK(primary_create), self); - g_signal_connect(channel, "display-mark", - G_CALLBACK(display_mark), self); - - gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(self->priv->display)); - gtk_widget_show(GTK_WIDGET(self->priv->display)); - g_object_set(self->priv->display, - "grab-keyboard", TRUE, - "grab-mouse", TRUE, - "resize-guest", FALSE, - "scaling", TRUE, - "auto-clipboard", TRUE, - NULL); - - return GTK_WIDGET(self); -} +virt_viewer_display_spice_new(VirtViewerSessionSpice *session, + SpiceChannel *channel, + gint monitorid) +{ + VirtViewerDisplaySpice *self; + VirtViewerApp *app; + gint channelid; + SpiceSession *s; + + g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL); + + g_object_get(channel, "channel-id", &channelid, NULL); + // We don't allow monitorid != 0 && channelid != 0 + g_return_val_if_fail(channelid == 0 || monitorid == 0, NULL); + + self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE, + "session", session, + // either monitorid is always 0 or channelid + // is, we can't have display (0, 2) and (2, 0) + // for example + "nth-display", channelid + monitorid, + NULL); + self->priv->channel = channel; + + g_object_get(session, "spice-session", &s, NULL); + self->priv->display = spice_display_new_with_monitor(s, channelid, monitorid); + g_object_unref(s); + + virt_viewer_signal_connect_object(self->priv->display, "notify::ready", + G_CALLBACK(display_ready), self, 0); + + gtk_container_add(GTK_CONTAINER(self), g_object_ref(self->priv->display)); + gtk_widget_show(GTK_WIDGET(self->priv->display)); + g_object_set(self->priv->display, + "grab-keyboard", TRUE, + "grab-mouse", TRUE, + "resize-guest", FALSE, + "scaling", TRUE, + NULL); + + virt_viewer_signal_connect_object(self->priv->display, "keyboard-grab", + G_CALLBACK(virt_viewer_display_spice_keyboard_grab), self, 0); + virt_viewer_signal_connect_object(self->priv->display, "mouse-grab", + G_CALLBACK(virt_viewer_display_spice_mouse_grab), self, 0); + virt_viewer_signal_connect_object(self, "size-allocate", + G_CALLBACK(virt_viewer_display_spice_size_allocate), self, 0); + + + app = virt_viewer_session_get_app(VIRT_VIEWER_SESSION(session)); + virt_viewer_signal_connect_object(app, "notify::enable-accel", + G_CALLBACK(enable_accel_changed), self, 0); + enable_accel_changed(app, NULL, self); + + return GTK_WIDGET(self); +} + +static void +virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display) +{ + VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display); + + spice_display_mouse_ungrab(self->priv->display); +} + + +static void +virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED) +{ +} + +static gboolean +virt_viewer_display_spice_selectable(VirtViewerDisplay *self) +{ + gboolean agent_connected; + SpiceMainChannel *mainc; + + mainc = get_main(self); + g_object_get(mainc, + "agent-connected", &agent_connected, + NULL); + + return agent_connected; +} + /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-display-spice.h b/src/virt-viewer-display-spice.h index 90bd1d0..c2013ec 100644 --- a/src/virt-viewer-display-spice.h +++ b/src/virt-viewer-display-spice.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -29,53 +29,52 @@ #include #include "virt-viewer-display.h" +#include "virt-viewer-session-spice.h" G_BEGIN_DECLS #define VIRT_VIEWER_TYPE_DISPLAY_SPICE virt_viewer_display_spice_get_type() -#define VIRT_VIEWER_DISPLAY_SPICE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpice)) +#define VIRT_VIEWER_DISPLAY_SPICE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpice)) -#define VIRT_VIEWER_DISPLAY_SPICE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass)) +#define VIRT_VIEWER_DISPLAY_SPICE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass)) -#define VIRT_VIEWER_IS_DISPLAY_SPICE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE)) +#define VIRT_VIEWER_IS_DISPLAY_SPICE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE)) -#define VIRT_VIEWER_IS_DISPLAY_SPICE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE)) +#define VIRT_VIEWER_IS_DISPLAY_SPICE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE)) -#define VIRT_VIEWER_DISPLAY_SPICE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass)) +#define VIRT_VIEWER_DISPLAY_SPICE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass)) typedef struct _VirtViewerDisplaySpice VirtViewerDisplaySpice; typedef struct _VirtViewerDisplaySpiceClass VirtViewerDisplaySpiceClass; typedef struct _VirtViewerDisplaySpicePrivate VirtViewerDisplaySpicePrivate; struct _VirtViewerDisplaySpice { - VirtViewerDisplay parent; + VirtViewerDisplay parent; - VirtViewerDisplaySpicePrivate *priv; + VirtViewerDisplaySpicePrivate *priv; }; struct _VirtViewerDisplaySpiceClass { - VirtViewerDisplayClass parent_class; + VirtViewerDisplayClass parent_class; }; GType virt_viewer_display_spice_get_type(void); -GtkWidget* virt_viewer_display_spice_new(SpiceChannel *channel, - SpiceDisplay *display); +GtkWidget* virt_viewer_display_spice_new(VirtViewerSessionSpice *session, SpiceChannel *channel, gint monitorid); G_END_DECLS #endif /* _VIRT_VIEWER_DISPLAY_SPICE_H */ - /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-display-vnc.c b/src/virt-viewer-display-vnc.c index 53d4728..c0bcf13 100644 --- a/src/virt-viewer-display-vnc.c +++ b/src/virt-viewer-display-vnc.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -22,6 +22,8 @@ * Author: Daniel P. Berrange */ +#include + #include "virt-viewer-auth.h" #include "virt-viewer-display-vnc.h" @@ -30,99 +32,101 @@ G_DEFINE_TYPE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY) struct _VirtViewerDisplayVncPrivate { - VncDisplay *vnc; + VncDisplay *vnc; }; #define VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncPrivate)) static void virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display, const guint *keyvals, int nkeyvals); static GdkPixbuf *virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display); +static void virt_viewer_display_vnc_close(VirtViewerDisplay *display); static void virt_viewer_display_vnc_finalize(GObject *obj) { - VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj); - - g_object_unref(vnc->priv->vnc); - - G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj); + VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj); + + g_object_unref(vnc->priv->vnc); + + G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj); } static void virt_viewer_display_vnc_class_init(VirtViewerDisplayVncClass *klass) { - VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass); - GObjectClass *oclass = G_OBJECT_CLASS(klass); - - oclass->finalize = virt_viewer_display_vnc_finalize; - - dclass->send_keys = virt_viewer_display_vnc_send_keys; - dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf; - - g_type_class_add_private(oclass, sizeof(VirtViewerDisplayVncPrivate)); + VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass); + GObjectClass *oclass = G_OBJECT_CLASS(klass); + + oclass->finalize = virt_viewer_display_vnc_finalize; + + dclass->send_keys = virt_viewer_display_vnc_send_keys; + dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf; + dclass->close = virt_viewer_display_vnc_close; + + g_type_class_add_private(klass, sizeof(VirtViewerDisplayVncPrivate)); } static void virt_viewer_display_vnc_init(VirtViewerDisplayVnc *self G_GNUC_UNUSED) { - self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self); + self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self); } static void virt_viewer_display_vnc_mouse_grab(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerDisplay *display) -{ - g_signal_emit_by_name(display, "display-pointer-grab"); + VirtViewerDisplay *display) +{ + g_signal_emit_by_name(display, "display-pointer-grab"); } static void virt_viewer_display_vnc_mouse_ungrab(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerDisplay *display) -{ - g_signal_emit_by_name(display, "display-pointer-ungrab"); + VirtViewerDisplay *display) +{ + g_signal_emit_by_name(display, "display-pointer-ungrab"); } static void virt_viewer_display_vnc_key_grab(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerDisplay *display) -{ - g_signal_emit_by_name(display, "display-keyboard-grab"); + VirtViewerDisplay *display) +{ + g_signal_emit_by_name(display, "display-keyboard-grab"); } static void virt_viewer_display_vnc_key_ungrab(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerDisplay *display) -{ - g_signal_emit_by_name(display, "display-keyboard-ungrab"); + VirtViewerDisplay *display) +{ + g_signal_emit_by_name(display, "display-keyboard-ungrab"); } static void virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display, - const guint *keyvals, - int nkeyvals) -{ - VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display); - - g_return_if_fail(self != NULL); - g_return_if_fail(keyvals != NULL); - g_return_if_fail(self->priv->vnc != NULL); - - vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals); + const guint *keyvals, + int nkeyvals) +{ + VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display); + + g_return_if_fail(self != NULL); + g_return_if_fail(keyvals != NULL); + g_return_if_fail(self->priv->vnc != NULL); + + vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals); } static GdkPixbuf * virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display) { - VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display); - - g_return_val_if_fail(self != NULL, NULL); - g_return_val_if_fail(self->priv->vnc != NULL, NULL); - - return vnc_display_get_pixbuf(self->priv->vnc); + VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display); + + g_return_val_if_fail(self != NULL, NULL); + g_return_val_if_fail(self->priv->vnc != NULL, NULL); + + return vnc_display_get_pixbuf(self->priv->vnc); } @@ -134,66 +138,74 @@ */ static void virt_viewer_display_vnc_resize_desktop(VncDisplay *vnc G_GNUC_UNUSED, - int width, int height, - VirtViewerDisplay *display) -{ - DEBUG_LOG("desktop resize %dx%d", width, height); - - virt_viewer_display_set_desktop_size(display, width, height); - g_signal_emit_by_name(display, "display-desktop-resize"); + int width, int height, + VirtViewerDisplay *display) +{ + DEBUG_LOG("desktop resize %dx%d", width, height); + + virt_viewer_display_set_desktop_size(display, width, height); } GtkWidget * virt_viewer_display_vnc_new(VncDisplay *vnc) { - VirtViewerDisplayVnc *display; - - display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, NULL); - - g_object_ref(vnc); - g_object_ref(vnc); /* Because gtk_container_add steals the first ref */ - display->priv->vnc = vnc; - - gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc)); - vnc_display_set_keyboard_grab(display->priv->vnc, TRUE); - vnc_display_set_pointer_grab(display->priv->vnc, TRUE); - - /* - * In auto-resize mode we have things setup so that we always - * automatically resize the top level window to be exactly the - * same size as the VNC desktop, except when it won't fit on - * the local screen, at which point we let it scale down. - * The upshot is, we always want scaling enabled. - * We disable force_size because we want to allow user to - * manually size the widget smaller too - */ - vnc_display_set_force_size(display->priv->vnc, FALSE); - vnc_display_set_scaling(display->priv->vnc, TRUE); - - /* When VNC desktop resizes, we have to resize the containing widget */ - g_signal_connect(display->priv->vnc, "vnc-desktop-resize", - G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display); - - g_signal_connect(display->priv->vnc, "vnc-pointer-grab", - G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display); - g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab", - G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display); - g_signal_connect(display->priv->vnc, "vnc-keyboard-grab", - G_CALLBACK(virt_viewer_display_vnc_key_grab), display); - g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab", - G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display); - - return GTK_WIDGET(display); -} - - - + VirtViewerDisplayVnc *display; + + display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, NULL); + + g_object_ref(vnc); + display->priv->vnc = vnc; + + gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc)); + vnc_display_set_keyboard_grab(display->priv->vnc, TRUE); + vnc_display_set_pointer_grab(display->priv->vnc, TRUE); + + /* + * In auto-resize mode we have things setup so that we always + * automatically resize the top level window to be exactly the + * same size as the VNC desktop, except when it won't fit on + * the local screen, at which point we let it scale down. + * The upshot is, we always want scaling enabled. + * We disable force_size because we want to allow user to + * manually size the widget smaller too + */ + vnc_display_set_force_size(display->priv->vnc, FALSE); + vnc_display_set_scaling(display->priv->vnc, TRUE); + + /* When VNC desktop resizes, we have to resize the containing widget */ + g_signal_connect(display->priv->vnc, "vnc-desktop-resize", + G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display); + + g_signal_connect(display->priv->vnc, "vnc-pointer-grab", + G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display); + g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab", + G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display); + g_signal_connect(display->priv->vnc, "vnc-keyboard-grab", + G_CALLBACK(virt_viewer_display_vnc_key_grab), display); + g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab", + G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display); + + return GTK_WIDGET(display); +} + + +static void +virt_viewer_display_vnc_close(VirtViewerDisplay *display) +{ + VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(display); + + /* We're not the real owner, so we shouldn't be letting the container + * destroy the widget. There are still signals that need to be + * propagated to the VirtViewerSession + */ + gtk_container_remove(GTK_CONTAINER(display), GTK_WIDGET(vnc->priv->vnc)); +} /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-display-vnc.h b/src/virt-viewer-display-vnc.h index ce9ec5f..7020437 100644 --- a/src/virt-viewer-display-vnc.h +++ b/src/virt-viewer-display-vnc.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -33,33 +33,33 @@ #define VIRT_VIEWER_TYPE_DISPLAY_VNC virt_viewer_display_vnc_get_type() -#define VIRT_VIEWER_DISPLAY_VNC(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc)) +#define VIRT_VIEWER_DISPLAY_VNC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc)) -#define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass)) +#define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass)) -#define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC)) +#define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC)) -#define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC)) +#define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC)) -#define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass)) +#define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass)) typedef struct _VirtViewerDisplayVnc VirtViewerDisplayVnc; typedef struct _VirtViewerDisplayVncClass VirtViewerDisplayVncClass; typedef struct _VirtViewerDisplayVncPrivate VirtViewerDisplayVncPrivate; struct _VirtViewerDisplayVnc { - VirtViewerDisplay parent; + VirtViewerDisplay parent; - VirtViewerDisplayVncPrivate *priv; + VirtViewerDisplayVncPrivate *priv; }; struct _VirtViewerDisplayVncClass { - VirtViewerDisplayClass parent_class; + VirtViewerDisplayClass parent_class; }; GType virt_viewer_display_vnc_get_type(void); @@ -69,11 +69,10 @@ G_END_DECLS #endif /* _VIRT_VIEWER_DISPLAY_VNC_H */ - /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c index 881a69e..fe7ce4f 100644 --- a/src/virt-viewer-display.c +++ b/src/virt-viewer-display.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -25,7 +25,9 @@ #include #include - +#include + +#include "virt-viewer-session.h" #include "virt-viewer-display.h" #include "virt-viewer-util.h" @@ -33,470 +35,612 @@ struct _VirtViewerDisplayPrivate { - gboolean dirty; - guint desktopWidth; - guint desktopHeight; - guint zoom_level; - gboolean zoom; - gint nth_display; - gint show_hint; + gboolean dirty; + guint desktopWidth; + guint desktopHeight; + guint zoom_level; + gboolean zoom; + gint nth_display; + guint show_hint; + VirtViewerSession *session; + gboolean auto_resize; }; static void virt_viewer_display_size_request(GtkWidget *widget, - GtkRequisition *requisition); + GtkRequisition *requisition); #if GTK_CHECK_VERSION(3, 0, 0) static void virt_viewer_display_get_preferred_width(GtkWidget *widget, - int *minwidth, - int *defwidth); + int *minwidth, + int *defwidth); static void virt_viewer_display_get_preferred_height(GtkWidget *widget, - int *minheight, - int *defheight); + int *minheight, + int *defheight); #endif static void virt_viewer_display_size_allocate(GtkWidget *widget, - GtkAllocation *allocation); + GtkAllocation *allocation); static void virt_viewer_display_set_property(GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); + guint prop_id, + const GValue *value, + GParamSpec *pspec); static void virt_viewer_display_get_property(GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void virt_viewer_display_grab_focus(GtkWidget *widget); G_DEFINE_ABSTRACT_TYPE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN) enum { - PROP_0, - - PROP_DESKTOP_WIDTH, - PROP_DESKTOP_HEIGHT, - PROP_NTH_DISPLAY, - PROP_ZOOM, - PROP_ZOOM_LEVEL, - PROP_SHOW_HINT, + PROP_0, + + PROP_DESKTOP_WIDTH, + PROP_DESKTOP_HEIGHT, + PROP_NTH_DISPLAY, + PROP_ZOOM, + PROP_ZOOM_LEVEL, + PROP_SHOW_HINT, + PROP_SESSION, + PROP_SELECTABLE, }; static void virt_viewer_display_class_init(VirtViewerDisplayClass *class) { - GObjectClass *object_class = G_OBJECT_CLASS(class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class); - - object_class->set_property = virt_viewer_display_set_property; - object_class->get_property = virt_viewer_display_get_property; + GObjectClass *object_class = G_OBJECT_CLASS(class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class); + + object_class->set_property = virt_viewer_display_set_property; + object_class->get_property = virt_viewer_display_get_property; #if GTK_CHECK_VERSION(3, 0, 0) - widget_class->get_preferred_width = virt_viewer_display_get_preferred_width; - widget_class->get_preferred_height = virt_viewer_display_get_preferred_height; + widget_class->get_preferred_width = virt_viewer_display_get_preferred_width; + widget_class->get_preferred_height = virt_viewer_display_get_preferred_height; #else - widget_class->size_request = virt_viewer_display_size_request; + widget_class->size_request = virt_viewer_display_size_request; #endif - widget_class->size_allocate = virt_viewer_display_size_allocate; - - g_object_class_install_property(object_class, - PROP_DESKTOP_WIDTH, - g_param_spec_int("desktop-width", - "Width", - "Desktop width", - 100, - G_MAXINT32, - 100, - G_PARAM_READWRITE)); - - g_object_class_install_property(object_class, - PROP_DESKTOP_HEIGHT, - g_param_spec_int("desktop-height", - "Height", - "Desktop height", - 100, - G_MAXINT32, - 100, - G_PARAM_READWRITE)); - - g_object_class_install_property(object_class, - PROP_ZOOM, - g_param_spec_boolean("zoom", - "Zoom", - "Zoom", - TRUE, - G_PARAM_READWRITE)); - - g_object_class_install_property(object_class, - PROP_ZOOM_LEVEL, - g_param_spec_int("zoom-level", - "Zoom", - "Zoom level", - 10, - 400, - 100, - G_PARAM_READWRITE)); - - g_object_class_install_property(object_class, - PROP_NTH_DISPLAY, - g_param_spec_int("nth-display", - "Nth display", - "Nth display", - 0, - G_MAXINT32, - 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property(object_class, - PROP_SHOW_HINT, - g_param_spec_int("show-hint", - "Show hint", - "Show state hint", - 0, - G_MAXINT32, - 0, - G_PARAM_READABLE)); - - - g_signal_new("display-pointer-grab", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("display-pointer-ungrab", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("display-keyboard-grab", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("display-keyboard-ungrab", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("display-desktop-resize", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_type_class_add_private(object_class, sizeof(VirtViewerDisplayPrivate)); + widget_class->size_allocate = virt_viewer_display_size_allocate; + widget_class->grab_focus = virt_viewer_display_grab_focus; + + g_object_class_install_property(object_class, + PROP_DESKTOP_WIDTH, + g_param_spec_int("desktop-width", + "Width", + "Desktop width", + 100, + G_MAXINT32, + 100, + G_PARAM_READWRITE)); + + g_object_class_install_property(object_class, + PROP_DESKTOP_HEIGHT, + g_param_spec_int("desktop-height", + "Height", + "Desktop height", + 100, + G_MAXINT32, + 100, + G_PARAM_READWRITE)); + + g_object_class_install_property(object_class, + PROP_ZOOM, + g_param_spec_boolean("zoom", + "Zoom", + "Zoom", + TRUE, + G_PARAM_READWRITE)); + + g_object_class_install_property(object_class, + PROP_ZOOM_LEVEL, + g_param_spec_int("zoom-level", + "Zoom", + "Zoom level", + 10, + 400, + 100, + G_PARAM_READWRITE)); + + g_object_class_install_property(object_class, + PROP_NTH_DISPLAY, + g_param_spec_int("nth-display", + "Nth display", + "Nth display", + 0, + G_MAXINT32, + 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property(object_class, + PROP_SHOW_HINT, + g_param_spec_flags("show-hint", + "Show hint", + "Show state hint", + VIRT_VIEWER_TYPE_DISPLAY_SHOW_HINT_FLAGS, + 0, + G_PARAM_READABLE)); + + g_object_class_install_property(object_class, + PROP_SESSION, + g_param_spec_object("session", + "Session", + "VirtSession", + VIRT_VIEWER_TYPE_SESSION, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property(object_class, + PROP_SELECTABLE, + g_param_spec_boolean("selectable", + "Selectable", + "Selectable", + FALSE, + G_PARAM_READABLE)); + + g_signal_new("display-pointer-grab", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("display-pointer-ungrab", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("display-keyboard-grab", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("display-keyboard-ungrab", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("display-desktop-resize", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_type_class_add_private(class, sizeof(VirtViewerDisplayPrivate)); } static void virt_viewer_display_init(VirtViewerDisplay *display) { - gtk_widget_set_has_window(GTK_WIDGET(display), FALSE); - gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE); - - display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display); - - display->priv->desktopWidth = 100; - display->priv->desktopHeight = 100; - display->priv->zoom_level = 100; - display->priv->zoom = TRUE; + gtk_widget_set_has_window(GTK_WIDGET(display), FALSE); + gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE); + + display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display); + + display->priv->desktopWidth = 100; + display->priv->desktopHeight = 100; + display->priv->zoom_level = 100; + display->priv->zoom = TRUE; + display->priv->dirty = TRUE; + display->priv->auto_resize = TRUE; } GtkWidget* virt_viewer_display_new(void) { - return g_object_new(VIRT_VIEWER_TYPE_DISPLAY, NULL); + return g_object_new(VIRT_VIEWER_TYPE_DISPLAY, NULL); } static void virt_viewer_display_set_property(GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object); - VirtViewerDisplayPrivate *priv = display->priv; - - switch (prop_id) { - case PROP_DESKTOP_WIDTH: - virt_viewer_display_set_desktop_size(display, - g_value_get_int(value), - priv->desktopHeight); - break; - case PROP_DESKTOP_HEIGHT: - virt_viewer_display_set_desktop_size(display, - priv->desktopWidth, - g_value_get_int(value)); - break; - case PROP_NTH_DISPLAY: - priv->nth_display = g_value_get_int(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object); + VirtViewerDisplayPrivate *priv = display->priv; + + switch (prop_id) { + case PROP_DESKTOP_WIDTH: + virt_viewer_display_set_desktop_size(display, + g_value_get_int(value), + priv->desktopHeight); + break; + case PROP_DESKTOP_HEIGHT: + virt_viewer_display_set_desktop_size(display, + priv->desktopWidth, + g_value_get_int(value)); + break; + case PROP_NTH_DISPLAY: + priv->nth_display = g_value_get_int(value); + break; + case PROP_SESSION: + g_warn_if_fail(priv->session == NULL); + priv->session = g_value_get_object(value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static void virt_viewer_display_get_property(GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object); - VirtViewerDisplayPrivate *priv = display->priv; - - switch (prop_id) { - case PROP_DESKTOP_WIDTH: - g_value_set_int(value, priv->desktopWidth); - break; - case PROP_DESKTOP_HEIGHT: - g_value_set_int(value, priv->desktopHeight); - break; - case PROP_NTH_DISPLAY: - g_value_set_int(value, priv->nth_display); - break; - case PROP_SHOW_HINT: - g_value_set_int(value, priv->show_hint); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object); + VirtViewerDisplayPrivate *priv = display->priv; + + switch (prop_id) { + case PROP_DESKTOP_WIDTH: + g_value_set_int(value, priv->desktopWidth); + break; + case PROP_DESKTOP_HEIGHT: + g_value_set_int(value, priv->desktopHeight); + break; + case PROP_NTH_DISPLAY: + g_value_set_int(value, priv->nth_display); + break; + case PROP_SHOW_HINT: + g_value_set_flags(value, priv->show_hint); + break; + case PROP_SESSION: + g_value_set_object(value, virt_viewer_display_get_session(display)); + break; + case PROP_SELECTABLE: + g_value_set_boolean(value, virt_viewer_display_get_selectable(display)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + +static void +virt_viewer_display_grab_focus(GtkWidget *widget) +{ + GtkBin *bin = GTK_BIN(widget); + + gtk_widget_grab_focus(gtk_bin_get_child(bin)); } static gboolean virt_viewer_display_idle(gpointer opaque) { - VirtViewerDisplay *display = opaque; - VirtViewerDisplayPrivate *priv = display->priv; - if (!priv->dirty) - gtk_widget_queue_resize_no_redraw(GTK_WIDGET(display)); - return FALSE; + VirtViewerDisplay *display = opaque; + VirtViewerDisplayPrivate *priv = display->priv; + if (!priv->dirty) + gtk_widget_queue_resize_no_redraw(GTK_WIDGET(display)); + return FALSE; } static void virt_viewer_display_size_request(GtkWidget *widget, - GtkRequisition *requisition) -{ - VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget); - VirtViewerDisplayPrivate *priv = display->priv; - int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget)); - - requisition->width = border_width * 2; - requisition->height = border_width * 2; - - if (priv->dirty) { - if (priv->zoom) - requisition->width += priv->desktopWidth * priv->zoom_level / 100; - else - requisition->width += priv->desktopWidth; - } else { - requisition->width += 50; - } - if (priv->dirty) { - if (priv->zoom) - requisition->height += priv->desktopHeight * priv->zoom_level / 100; - else - requisition->height += priv->desktopHeight; - } else { - requisition->height += 50; - } - - DEBUG_LOG("Display size request %dx%d (desktop %dx%d)", - requisition->width, requisition->height, - priv->desktopWidth, priv->desktopHeight); + GtkRequisition *requisition) +{ + VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget); + VirtViewerDisplayPrivate *priv = display->priv; + int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget)); + + requisition->width = border_width * 2; + requisition->height = border_width * 2; + + if (priv->dirty) { + if (priv->zoom) { + requisition->width += priv->desktopWidth * priv->zoom_level / 100; + requisition->height += priv->desktopHeight * priv->zoom_level / 100; + } else { + requisition->width += priv->desktopWidth; + requisition->height += priv->desktopHeight; + } + } else { + requisition->width += 50; + requisition->height += 50; + } + + DEBUG_LOG("Display size request %dx%d (desktop %dx%d)", + requisition->width, requisition->height, + priv->desktopWidth, priv->desktopHeight); } #if GTK_CHECK_VERSION(3, 0, 0) static void virt_viewer_display_get_preferred_width(GtkWidget *widget, - int *minwidth, - int *defwidth) -{ - GtkRequisition req; - - virt_viewer_display_size_request(widget, &req); - - *minwidth = *defwidth = req.width; + int *minwidth, + int *defwidth) +{ + GtkRequisition req; + + virt_viewer_display_size_request(widget, &req); + + *minwidth = *defwidth = req.width; } static void virt_viewer_display_get_preferred_height(GtkWidget *widget, - int *minheight, - int *defheight) -{ - GtkRequisition req; - - virt_viewer_display_size_request(widget, &req); - - *minheight = *defheight = req.height; + int *minheight, + int *defheight) +{ + GtkRequisition req; + + virt_viewer_display_size_request(widget, &req); + + *minheight = *defheight = req.height; } #endif static void virt_viewer_display_size_allocate(GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkBin *bin = GTK_BIN(widget); - VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget); - VirtViewerDisplayPrivate *priv = display->priv; - GtkAllocation child_allocation; - gint width, height; - gint border_width; - double desktopAspect; - double actualAspect; - GtkWidget *child = gtk_bin_get_child(bin); - - DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height); - gtk_widget_set_allocation(widget, allocation); - - desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight; - - if (child && gtk_widget_get_visible(child)) { - border_width = gtk_container_get_border_width(GTK_CONTAINER(display)); - - width = MAX(1, allocation->width - 2 * border_width); - height = MAX(1, allocation->height - 2 * border_width); - actualAspect = (double)width / (double)height; - - if (actualAspect > desktopAspect) { - child_allocation.width = height * desktopAspect; - child_allocation.height = height; - } else { - child_allocation.width = width; - child_allocation.height = width / desktopAspect; - } - - child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width; - child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width; - - DEBUG_LOG("Child allocate %dx%d", child_allocation.width, child_allocation.height); - gtk_widget_size_allocate(child, &child_allocation); - } - - - /* This unsets the size request, so that the user can - * manually resize the window smaller again - */ - if (priv->dirty) { - g_idle_add(virt_viewer_display_idle, widget); - priv->dirty = FALSE; - } + GtkAllocation *allocation) +{ + GtkBin *bin = GTK_BIN(widget); + VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget); + VirtViewerDisplayPrivate *priv = display->priv; + GtkAllocation child_allocation; + gint width, height; + gint border_width; + double desktopAspect; + double actualAspect; + GtkWidget *child = gtk_bin_get_child(bin); + + DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height); + gtk_widget_set_allocation(widget, allocation); + + if (priv->desktopWidth == 0 || + priv->desktopHeight == 0) + goto end; + + desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight; + + if (child && gtk_widget_get_visible(child)) { + border_width = gtk_container_get_border_width(GTK_CONTAINER(display)); + + width = MAX(1, allocation->width - 2 * border_width); + height = MAX(1, allocation->height - 2 * border_width); + actualAspect = (double)width / (double)height; + + if (actualAspect > desktopAspect) { + child_allocation.width = round(height * desktopAspect); + child_allocation.height = height; + } else { + child_allocation.width = width; + child_allocation.height = round(width / desktopAspect); + } + + child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width; + child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width; + + DEBUG_LOG("Child allocate %dx%d", child_allocation.width, child_allocation.height); + gtk_widget_size_allocate(child, &child_allocation); + } + +end: + /* This unsets the size request, so that the user can + * manually resize the window smaller again + */ + if (priv->dirty) { + g_idle_add(virt_viewer_display_idle, widget); + priv->dirty = FALSE; + } } void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display, - guint width, - guint height) -{ - VirtViewerDisplayPrivate *priv = display->priv; - - priv->desktopWidth = width; - priv->desktopHeight = height; - priv->dirty = TRUE; - - gtk_widget_queue_resize(GTK_WIDGET(display)); + guint width, + guint height) +{ + VirtViewerDisplayPrivate *priv = display->priv; + + if (width == priv->desktopWidth && height == priv->desktopHeight) + return; + + priv->desktopWidth = width; + priv->desktopHeight = height; + priv->dirty = TRUE; + + gtk_widget_queue_resize(GTK_WIDGET(display)); + g_signal_emit_by_name(display, "display-desktop-resize"); } void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display, - guint *width, - guint *height) -{ - VirtViewerDisplayPrivate *priv = display->priv; - - *width = priv->desktopWidth; - *height = priv->desktopHeight; + guint *width, + guint *height) +{ + VirtViewerDisplayPrivate *priv = display->priv; + + *width = priv->desktopWidth; + *height = priv->desktopHeight; } void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display, - guint zoom) -{ - VirtViewerDisplayPrivate *priv = display->priv; - GtkWidget *child = gtk_bin_get_child(GTK_BIN(display)); - - if (zoom < 10) - zoom = 10; - if (zoom > 400) - zoom = 400; - priv->zoom_level = zoom; - - if (child && gtk_widget_get_visible(child)) { - priv->dirty = TRUE; - gtk_widget_queue_resize(GTK_WIDGET(display)); - } + guint zoom) +{ + VirtViewerDisplayPrivate *priv = display->priv; + GtkWidget *child = gtk_bin_get_child(GTK_BIN(display)); + + if (zoom < 10) + zoom = 10; + if (zoom > 400) + zoom = 400; + priv->zoom_level = zoom; + + if (child && gtk_widget_get_visible(child)) { + priv->dirty = TRUE; + gtk_widget_queue_resize(GTK_WIDGET(display)); + } +} + + +guint virt_viewer_display_get_zoom_level(VirtViewerDisplay *display) +{ + VirtViewerDisplayPrivate *priv = display->priv; + return priv->zoom_level; } void virt_viewer_display_set_zoom(VirtViewerDisplay *display, - gboolean zoom) -{ - VirtViewerDisplayPrivate *priv = display->priv; - GtkWidget *child = gtk_bin_get_child(GTK_BIN(display)); - - priv->zoom = zoom; - if (child && gtk_widget_get_visible(child)) { - priv->dirty = TRUE; - gtk_widget_queue_resize(GTK_WIDGET(display)); - } -} + gboolean zoom) +{ + VirtViewerDisplayPrivate *priv = display->priv; + GtkWidget *child = gtk_bin_get_child(GTK_BIN(display)); + + priv->zoom = zoom; + if (child && gtk_widget_get_visible(child)) { + priv->dirty = TRUE; + gtk_widget_queue_resize(GTK_WIDGET(display)); + } +} + + +gboolean virt_viewer_display_get_zoom(VirtViewerDisplay *display) +{ + VirtViewerDisplayPrivate *priv = display->priv; + return priv->zoom; +} + void virt_viewer_display_send_keys(VirtViewerDisplay *display, - const guint *keyvals, int nkeyvals) -{ - g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display)); - - VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys(display, keyvals, nkeyvals); + const guint *keyvals, int nkeyvals) +{ + g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display)); + + VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys(display, keyvals, nkeyvals); } GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display) { - g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(display), NULL); - - return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display); -} - -void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, gint hint) -{ - VirtViewerDisplayPrivate *priv; - g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); - - priv = self->priv; - if (priv->show_hint == hint) - return; - - priv->show_hint = hint; - g_object_notify(G_OBJECT(self), "show-hint"); + g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(display), NULL); + + return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display); +} + +guint virt_viewer_display_get_show_hint(VirtViewerDisplay *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), 0); + + return self->priv->show_hint; +} + +void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, guint mask, gboolean enable) +{ + VirtViewerDisplayPrivate *priv; + guint hint; + g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); + + priv = self->priv; + hint = priv->show_hint; + + if (enable) + hint |= mask; + else + hint &= ~mask; + + if (priv->show_hint == hint) + return; + + priv->show_hint = hint; + g_object_notify(G_OBJECT(self), "show-hint"); +} + +void virt_viewer_display_set_enabled(VirtViewerDisplay *self, gboolean enabled) +{ + g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); + + virt_viewer_display_set_show_hint(self, VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED, !enabled); +} + +VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), NULL); + + return self->priv->session; +} + +void virt_viewer_display_set_auto_resize(VirtViewerDisplay *self, gboolean auto_resize) +{ + g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); + + self->priv->auto_resize = auto_resize; +} + +gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE); + + return self->priv->auto_resize; +} + +void virt_viewer_display_release_cursor(VirtViewerDisplay *self) +{ + VirtViewerDisplayClass *klass; + + g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); + + klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self); + g_return_if_fail(klass->release_cursor != NULL); + + klass->release_cursor(self); +} + +gboolean virt_viewer_display_get_selectable(VirtViewerDisplay *self) +{ + VirtViewerDisplayClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE); + + klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self); + if (klass->selectable) + return klass->selectable(self); + + return TRUE; +} + +void virt_viewer_display_close(VirtViewerDisplay *self) +{ + VirtViewerDisplayClass *klass; + + g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self)); + + klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self); + g_return_if_fail(klass->close != NULL); + + klass->close(self); } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-display.h b/src/virt-viewer-display.h index d49dd67..af78709 100644 --- a/src/virt-viewer-display.h +++ b/src/virt-viewer-display.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -25,25 +25,29 @@ #define _VIRT_VIEWER_DISPLAY_H #include +#include "virt-viewer-enums.h" G_BEGIN_DECLS #define VIRT_VIEWER_TYPE_DISPLAY virt_viewer_display_get_type() -#define VIRT_VIEWER_DISPLAY(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay)) +#define VIRT_VIEWER_DISPLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay)) -#define VIRT_VIEWER_DISPLAY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass)) +#define VIRT_VIEWER_DISPLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass)) #define VIRT_VIEWER_IS_DISPLAY(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY)) + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY)) #define VIRT_VIEWER_IS_DISPLAY_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY)) + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY)) -#define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass)) +#define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass)) + +typedef struct _VirtViewerSession VirtViewerSession; +typedef struct _VirtViewerSessionClass VirtViewerSessionClass; typedef struct _VirtViewerDisplay VirtViewerDisplay; typedef struct _VirtViewerDisplayClass VirtViewerDisplayClass; @@ -51,33 +55,37 @@ typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel; -enum { - VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE = 0, - VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, -}; +typedef enum { + VIRT_VIEWER_DISPLAY_SHOW_HINT_READY = 1 << 0, + VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED = 1 << 1, +} VirtViewerDisplayShowHintFlags; /* perhaps this become an interface, and be pushed in gtkvnc and spice? */ struct _VirtViewerDisplay { - GtkBin parent; + GtkBin parent; - VirtViewerDisplayPrivate *priv; + VirtViewerDisplayPrivate *priv; }; struct _VirtViewerDisplayClass { - GtkBinClass parent_class; + GtkBinClass parent_class; - /* virtual methods */ - void (*send_keys)(VirtViewerDisplay* display, - const guint *keyvals, int nkeyvals); - GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay* display); + /* virtual methods */ + void (*send_keys)(VirtViewerDisplay *display, + const guint *keyvals, int nkeyvals); + GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay *display); + void (*release_cursor)(VirtViewerDisplay *display); - /* signals */ - void (*display_pointer_grab)(VirtViewerDisplay *display); - void (*display_pointer_ungrab)(VirtViewerDisplay *display); - void (*display_keyboard_grab)(VirtViewerDisplay *display); - void (*display_keyboard_ungrab)(VirtViewerDisplay *display); + void (*close)(VirtViewerDisplay *display); + gboolean (*selectable)(VirtViewerDisplay *display); - void (*display_desktop_resize)(VirtViewerDisplay *display); + /* signals */ + void (*display_pointer_grab)(VirtViewerDisplay *display); + void (*display_pointer_ungrab)(VirtViewerDisplay *display); + void (*display_keyboard_grab)(VirtViewerDisplay *display); + void (*display_keyboard_ungrab)(VirtViewerDisplay *display); + + void (*display_desktop_resize)(VirtViewerDisplay *display); }; GType virt_viewer_display_get_type(void); @@ -85,30 +93,41 @@ GtkWidget *virt_viewer_display_new(void); void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display, - guint width, - guint height); + guint width, + guint height); void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display, - guint *width, - guint *height); + guint *width, + guint *height); void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display, - guint zoom); + guint zoom); +guint virt_viewer_display_get_zoom_level(VirtViewerDisplay *display); void virt_viewer_display_set_zoom(VirtViewerDisplay *display, - gboolean zoom); + gboolean zoom); +gboolean virt_viewer_display_get_zoom(VirtViewerDisplay *display); void virt_viewer_display_send_keys(VirtViewerDisplay *display, - const guint *keyvals, int nkeyvals); + const guint *keyvals, int nkeyvals); GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display); -void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, gint hint); +void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, guint mask, gboolean enable); +guint virt_viewer_display_get_show_hint(VirtViewerDisplay *display); +VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *display); +void virt_viewer_display_set_auto_resize(VirtViewerDisplay *display, gboolean auto_resize); +gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *display); +void virt_viewer_display_release_cursor(VirtViewerDisplay *display); + +void virt_viewer_display_close(VirtViewerDisplay *display); +void virt_viewer_display_set_enabled(VirtViewerDisplay *display, gboolean enabled); +gboolean virt_viewer_display_get_selectable(VirtViewerDisplay *display); G_END_DECLS #endif /* _VIRT_VIEWER_DISPLAY_H */ /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-enums.c b/src/virt-viewer-enums.c new file mode 100644 index 0000000..4d6c7cf --- /dev/null +++ b/src/virt-viewer-enums.c @@ -0,0 +1,52 @@ + +/* Generated data (by glib-mkenums) */ + +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Marc-André Lureau + */ + +#include "virt-viewer-enums.h" + +#include "virt-viewer-display.h" + +GType +virt_viewer_display_show_hint_flags_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GFlagsValue values[] = { + { VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, "VIRT_VIEWER_DISPLAY_SHOW_HINT_READY", "ready" }, + { VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED, "VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED", "disabled" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_flags_register_static (g_intern_static_string ("VirtViewerDisplayShowHintFlags"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + + +/* Generated data ends here */ + diff --git a/src/virt-viewer-enums.c.etemplate b/src/virt-viewer-enums.c.etemplate new file mode 100644 index 0000000..6f9925f --- /dev/null +++ b/src/virt-viewer-enums.c.etemplate @@ -0,0 +1,60 @@ +/*** BEGIN file-header ***/ +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Marc-André Lureau + */ + +#include "virt-viewer-enums.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +#include "@filename@" +/*** END file-production ***/ + + +/*** BEGIN value-header ***/ + +GType +@enum_name@_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/*** END value-tail ***/ diff --git a/src/virt-viewer-enums.h b/src/virt-viewer-enums.h new file mode 100644 index 0000000..3ddab97 --- /dev/null +++ b/src/virt-viewer-enums.h @@ -0,0 +1,39 @@ + +/* Generated data (by glib-mkenums) */ + +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Marc-André Lureau + */ + +#ifndef VIRT_VIEWER_ENUMS_H +#define VIRT_VIEWER_ENUMS_H + +#include + +G_BEGIN_DECLS +GType virt_viewer_display_show_hint_flags_get_type (void) G_GNUC_CONST; +#define VIRT_VIEWER_TYPE_DISPLAY_SHOW_HINT_FLAGS (virt_viewer_display_show_hint_flags_get_type ()) +G_END_DECLS + +#endif + +/* Generated data ends here */ + diff --git a/src/virt-viewer-enums.h.etemplate b/src/virt-viewer-enums.h.etemplate new file mode 100644 index 0000000..f33158d --- /dev/null +++ b/src/virt-viewer-enums.h.etemplate @@ -0,0 +1,41 @@ +/*** BEGIN file-header ***/ +/* + * Virt Viewer: A virtual machine console viewer + * + * Copyright (C) 2007-2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Marc-André Lureau + */ + +#ifndef VIRT_VIEWER_ENUMS_H +#define VIRT_VIEWER_ENUMS_H + +#include + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif +/*** END file-tail ***/ diff --git a/src/virt-viewer-events.c b/src/virt-viewer-events.c index 108f97d..216ed93 100644 --- a/src/virt-viewer-events.c +++ b/src/virt-viewer-events.c @@ -1,7 +1,7 @@ /* * events.c: event loop integration * - * Copyright (C) 2008-2009 Daniel P. Berrange + * Copyright (C) 2008-2012 Daniel P. Berrange * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,6 +20,7 @@ * Author: Daniel P. Berrange */ +#include #include #include @@ -48,8 +49,8 @@ static gboolean virt_viewer_events_dispatch_handle(GIOChannel *source G_GNUC_UNUSED, - GIOCondition condition, - gpointer opaque) + GIOCondition condition, + gpointer opaque) { struct virt_viewer_events_handle *data = opaque; int events = 0; @@ -73,10 +74,10 @@ static int virt_viewer_events_add_handle(int fd, - int events, - virEventHandleCallback cb, - void *opaque, - virFreeCallback ff) + int events, + virEventHandleCallback cb, + void *opaque, + virFreeCallback ff) { struct virt_viewer_events_handle *data; GIOCondition cond = 0; @@ -123,7 +124,7 @@ static void virt_viewer_events_update_handle(int watch, - int events) + int events) { struct virt_viewer_events_handle *data = virt_viewer_events_find_handle(watch); @@ -160,6 +161,23 @@ } } + +static gboolean +virt_viewer_events_cleanup_handle(gpointer user_data) +{ + struct virt_viewer_events_handle *data = user_data; + + DEBUG_LOG("Cleanup of handle %p", data); + g_return_val_if_fail(data != NULL, FALSE); + + if (data->ff) + (data->ff)(data->opaque); + + free(data); + return FALSE; +} + + static int virt_viewer_events_remove_handle(int watch) { @@ -172,13 +190,14 @@ DEBUG_LOG("Remove handle %d %d", watch, data->fd); + if (!data->source) + return -1; + g_source_remove(data->source); data->source = 0; data->events = 0; - if (data->ff) - (data->ff)(data->opaque); - free(data); - + + g_idle_add(virt_viewer_events_cleanup_handle, data); return 0; } @@ -209,9 +228,9 @@ static int virt_viewer_events_add_timeout(int interval, - virEventTimeoutCallback cb, - void *opaque, - virFreeCallback ff) + virEventTimeoutCallback cb, + void *opaque, + virFreeCallback ff) { struct virt_viewer_events_timeout *data; @@ -251,7 +270,7 @@ static void virt_viewer_events_update_timeout(int timer, - int interval) + int interval) { struct virt_viewer_events_timeout *data = virt_viewer_events_find_timeout(timer); @@ -279,6 +298,23 @@ } } + +static gboolean +virt_viewer_events_cleanup_timeout(gpointer user_data) +{ + struct virt_viewer_events_timeout *data = user_data; + + DEBUG_LOG("Cleanup of timeout %p", data); + g_return_val_if_fail(data != NULL, FALSE); + + if (data->ff) + (data->ff)(data->opaque); + + free(data); + return FALSE; +} + + static int virt_viewer_events_remove_timeout(int timer) { @@ -297,11 +333,7 @@ g_source_remove(data->source); data->source = 0; - if (data->ff) - (data->ff)(data->opaque); - - free(data); - + g_idle_add(virt_viewer_events_cleanup_timeout, data); return 0; } @@ -315,3 +347,10 @@ virt_viewer_events_remove_timeout); } +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer-events.h b/src/virt-viewer-events.h index 44ff8d7..c56950f 100644 --- a/src/virt-viewer-events.h +++ b/src/virt-viewer-events.h @@ -1,7 +1,7 @@ /* * events.h: event loop integration * - * Copyright (C) 2008-2009 Daniel P. Berrange + * Copyright (C) 2008-2012 Daniel P. Berrange * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,3 +28,10 @@ void virt_viewer_events_register(void); #endif +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer-main.c b/src/virt-viewer-main.c index 78d8d19..bf938c4 100644 --- a/src/virt-viewer-main.c +++ b/src/virt-viewer-main.c @@ -1,7 +1,7 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007 Red Hat, + * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 @@ -22,120 +22,146 @@ #include #include -#include #include #include #include - +#ifdef HAVE_GTK_VNC +#include +#endif +#ifdef HAVE_SPICE_GTK +#include +#endif #include "virt-viewer.h" static void virt_viewer_version(void) { - g_print(_("%s version %s\n"), PACKAGE, VERSION); + g_print(_("%s version %s\n"), PACKAGE, VERSION); - exit(0); + exit(EXIT_SUCCESS); } int main(int argc, char **argv) { - GOptionContext *context; - GError *error = NULL; - int ret = 1; - char *uri = NULL; - int zoom = 100; - gchar **args = NULL; - gboolean verbose = FALSE; - gboolean debug = FALSE; - gboolean direct = FALSE; - gboolean waitvm = FALSE; - gboolean reconnect = FALSE; - gboolean fullscreen = FALSE; - VirtViewer *viewer = NULL; - const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options"); - const GOptionEntry options [] = { - { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, - virt_viewer_version, N_("display version information"), NULL }, - { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, - N_("display verbose information"), NULL }, - { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct, - N_("direct connection with no automatic tunnels"), NULL }, - { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri, - N_("connect to hypervisor"), "URI"}, - { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm, - N_("wait for domain to start"), NULL }, - { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect, - N_("reconnect to domain upon restart"), NULL }, - { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom, - N_("Zoom level of window, in percentage"), "ZOOM" }, - { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug, - N_("display debugging information"), NULL }, - { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen, - N_("Open in full screen mode"), NULL }, - { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args, - NULL, "DOMAIN-NAME|ID|UUID" }, - { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL } - }; + GOptionContext *context; + GError *error = NULL; + int ret = 1; + char *uri = NULL; + int zoom = 100; + gchar **args = NULL; + gboolean verbose = FALSE; + gboolean debug = FALSE; + gboolean direct = FALSE; + gboolean attach = FALSE; + gboolean waitvm = FALSE; + gboolean reconnect = FALSE; + gboolean fullscreen = FALSE; + VirtViewer *viewer = NULL; + char *basename; + char *help_msg = NULL; + const GOptionEntry options [] = { + { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, + virt_viewer_version, N_("Display version information"), NULL }, + { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, + N_("Display verbose information"), NULL }, + { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct, + N_("Direct connection with no automatic tunnels"), NULL }, + { "attach", 'a', 0, G_OPTION_ARG_NONE, &attach, + N_("Attach to the local display using libvirt"), NULL }, + { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri, + N_("Connect to hypervisor"), "URI"}, + { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm, + N_("Wait for domain to start"), NULL }, + { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect, + N_("Reconnect to domain upon restart"), NULL }, + { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom, + N_("Zoom level of window, in percentage"), "ZOOM" }, + { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug, + N_("Display debugging information"), NULL }, + { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen, + N_("Open in full screen mode"), NULL }, + { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args, + NULL, "DOMAIN-NAME|ID|UUID" }, + { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL } + }; - setlocale(LC_ALL, ""); - bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); - bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); - textdomain(GETTEXT_PACKAGE); +#if !GLIB_CHECK_VERSION(2,31,0) + g_thread_init(NULL); +#endif - /* Setup command line options */ - context = g_option_context_new (_("- Virtual machine graphical console")); - g_option_context_add_main_entries (context, options, NULL); - g_option_context_add_group (context, gtk_get_option_group (TRUE)); - g_option_context_add_group (context, vnc_display_get_option_group ()); - g_option_context_parse (context, &argc, &argv, &error); - if (error) { - g_printerr("%s\n%s\n", - error->message, - gettext(help_msg)); - g_error_free(error); - goto cleanup; - } + setlocale(LC_ALL, ""); + bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + textdomain(GETTEXT_PACKAGE); - g_option_context_free(context); + g_set_application_name(_("Virt Viewer")); - if (!args || (g_strv_length(args) != 1)) { - fprintf(stderr, _("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg); - goto cleanup; - } - if (zoom < 10 || zoom > 200) { - fprintf(stderr, "Zoom level must be within 10-200\n"); - goto cleanup; - } + basename = g_path_get_basename(argv[0]); + help_msg = g_strdup_printf(_("Run '%s --help' to see a full list of available command line options"), + basename); + g_free(basename); - virt_viewer_app_set_debug(debug); + /* Setup command line options */ + context = g_option_context_new (_("- Virtual machine graphical console")); + g_option_context_add_main_entries (context, options, NULL); + g_option_context_add_group (context, gtk_get_option_group (TRUE)); +#ifdef HAVE_GTK_VNC + g_option_context_add_group (context, vnc_display_get_option_group ()); +#endif +#ifdef HAVE_SPICE_GTK + g_option_context_add_group (context, spice_get_option_group ()); +#endif + g_option_context_parse (context, &argc, &argv, &error); + if (error) { + g_printerr("%s\n%s\n", + error->message, help_msg); + g_error_free(error); + goto cleanup; + } - viewer = virt_viewer_new(uri, args[0], zoom, direct, waitvm, reconnect, verbose, NULL); - if (viewer == NULL) - goto cleanup; + g_option_context_free(context); - g_object_set(viewer, "fullscreen", fullscreen, NULL); - if (!virt_viewer_app_start(VIRT_VIEWER_APP(viewer))) - goto cleanup; + if (!args || (g_strv_length(args) != 1)) { + g_printerr(_("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg); + goto cleanup; + } - gtk_main(); + if (zoom < 10 || zoom > 200) { + g_printerr(_("Zoom level must be within 10-200\n")); + goto cleanup; + } - ret = 0; + gtk_window_set_default_icon_name("virt-viewer"); -cleanup: - if (viewer) - g_object_unref(viewer); - g_free(uri); - g_strfreev(args); + virt_viewer_app_set_debug(debug); - return ret; + viewer = virt_viewer_new(uri, args[0], zoom, direct, attach, waitvm, reconnect, verbose, NULL); + if (viewer == NULL) + goto cleanup; + + g_object_set(viewer, "fullscreen", fullscreen, NULL); + if (!virt_viewer_app_start(VIRT_VIEWER_APP(viewer))) + goto cleanup; + + gtk_main(); + + ret = 0; + + cleanup: + if (viewer) + g_object_unref(viewer); + g_free(uri); + g_strfreev(args); + g_free(help_msg); + + return ret; } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-notebook.c b/src/virt-viewer-notebook.c index fa28593..cc7136b 100644 --- a/src/virt-viewer-notebook.c +++ b/src/virt-viewer-notebook.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -21,128 +21,134 @@ * * Author: Daniel P. Berrange */ + +#include + #include "virt-viewer-notebook.h" #include "virt-viewer-util.h" G_DEFINE_TYPE (VirtViewerNotebook, virt_viewer_notebook, GTK_TYPE_NOTEBOOK) -#define GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate)) +#define GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate)) struct _VirtViewerNotebookPrivate { - GtkWidget *status; + GtkWidget *status; }; static void virt_viewer_notebook_get_property (GObject *object, guint property_id, - GValue *value G_GNUC_UNUSED, GParamSpec *pspec) + GValue *value G_GNUC_UNUSED, GParamSpec *pspec) { - switch (property_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } } static void virt_viewer_notebook_set_property (GObject *object, guint property_id, - const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) + const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) { - switch (property_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } } static void virt_viewer_notebook_dispose (GObject *object) { - G_OBJECT_CLASS (virt_viewer_notebook_parent_class)->dispose (object); + G_OBJECT_CLASS (virt_viewer_notebook_parent_class)->dispose (object); } static void virt_viewer_notebook_class_init (VirtViewerNotebookClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate)); + g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate)); - object_class->get_property = virt_viewer_notebook_get_property; - object_class->set_property = virt_viewer_notebook_set_property; - object_class->dispose = virt_viewer_notebook_dispose; + object_class->get_property = virt_viewer_notebook_get_property; + object_class->set_property = virt_viewer_notebook_set_property; + object_class->dispose = virt_viewer_notebook_dispose; } static void virt_viewer_notebook_init (VirtViewerNotebook *self) { - VirtViewerNotebookPrivate *priv; - GdkColor color; + VirtViewerNotebookPrivate *priv; + GdkColor color; - self->priv = GET_PRIVATE(self); - priv = self->priv; + self->priv = GET_PRIVATE(self); + priv = self->priv; - priv->status = gtk_label_new(""); - gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE); - gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE); - gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL); - gdk_color_parse("white", &color); - gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color); + priv->status = gtk_label_new(""); + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE); + gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE); + gtk_widget_show_all(priv->status); + gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL); + gdk_color_parse("white", &color); + gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color); } void virt_viewer_notebook_show_status_va(VirtViewerNotebook *self, const gchar *fmt, va_list args) { - VirtViewerNotebookPrivate *priv; - gchar *text; + VirtViewerNotebookPrivate *priv; + gchar *text; - DEBUG_LOG("notebook show status %p", self); - g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self)); + DEBUG_LOG("notebook show status %p", self); + g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self)); - text = g_strdup_vprintf(fmt, args); - priv = self->priv; - gtk_label_set_text(GTK_LABEL(priv->status), text); - gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 0); - gtk_widget_show_all(GTK_WIDGET(self)); - g_free(text); + text = g_strdup_vprintf(fmt, args); + priv = self->priv; + gtk_label_set_text(GTK_LABEL(priv->status), text); + gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 0); + gtk_widget_show_all(GTK_WIDGET(self)); + g_free(text); } void virt_viewer_notebook_show_status(VirtViewerNotebook *self, const gchar *fmt, ...) { - va_list args; + va_list args; - g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self)); + g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self)); - va_start(args, fmt); - virt_viewer_notebook_show_status_va(self, fmt, args); - va_end(args); + va_start(args, fmt); + virt_viewer_notebook_show_status_va(self, fmt, args); + va_end(args); } void virt_viewer_notebook_show_display(VirtViewerNotebook *self) { - GtkWidget *display; + GtkWidget *display; - DEBUG_LOG("notebook show display %p", self); - g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self)); + DEBUG_LOG("notebook show display %p", self); + g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self)); - display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1); - g_warn_if_fail(display != NULL); + display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1); + if (display == NULL) + DEBUG_LOG("FIXME: showing display although it's not ready yet"); + else + gtk_widget_grab_focus(display); - gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1); - gtk_widget_show_all(GTK_WIDGET(self)); + gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1); + gtk_widget_show_all(GTK_WIDGET(self)); } VirtViewerNotebook* virt_viewer_notebook_new (void) { - return g_object_new (VIRT_VIEWER_TYPE_NOTEBOOK, NULL); + return g_object_new (VIRT_VIEWER_TYPE_NOTEBOOK, NULL); } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-notebook.h b/src/virt-viewer-notebook.h index 0d2b0ce..64c02a6 100644 --- a/src/virt-viewer-notebook.h +++ b/src/virt-viewer-notebook.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -31,30 +31,30 @@ #define VIRT_VIEWER_TYPE_NOTEBOOK virt_viewer_notebook_get_type() -#define VIRT_VIEWER_NOTEBOOK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebook)) +#define VIRT_VIEWER_NOTEBOOK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebook)) -#define VIRT_VIEWER_NOTEBOOK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass)) +#define VIRT_VIEWER_NOTEBOOK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass)) -#define VIRT_VIEWER_IS_NOTEBOOK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_NOTEBOOK)) +#define VIRT_VIEWER_IS_NOTEBOOK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_NOTEBOOK)) -#define VIRT_VIEWER_IS_NOTEBOOK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_NOTEBOOK)) +#define VIRT_VIEWER_IS_NOTEBOOK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_NOTEBOOK)) -#define VIRT_VIEWER_NOTEBOOK_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass)) +#define VIRT_VIEWER_NOTEBOOK_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass)) typedef struct _VirtViewerNotebookPrivate VirtViewerNotebookPrivate; typedef struct { - GtkNotebook parent; - VirtViewerNotebookPrivate *priv; + GtkNotebook parent; + VirtViewerNotebookPrivate *priv; } VirtViewerNotebook; typedef struct { - GtkNotebookClass parent_class; + GtkNotebookClass parent_class; } VirtViewerNotebookClass; GType virt_viewer_notebook_get_type (void); @@ -67,12 +67,10 @@ G_END_DECLS #endif /* _VIRT_VIEWER_NOTEBOOK */ - /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index 011bbcc..5fcd7fb 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -22,289 +22,661 @@ * Author: Daniel P. Berrange */ +#include + #include - #include +#include +#include #include "virt-viewer-util.h" #include "virt-viewer-session-spice.h" #include "virt-viewer-display-spice.h" #include "virt-viewer-auth.h" +#include "virt-glib-compat.h" + +#if !GLIB_CHECK_VERSION(2, 26, 0) +#include "gbinding.h" +#include "gbinding.c" +#endif G_DEFINE_TYPE (VirtViewerSessionSpice, virt_viewer_session_spice, VIRT_VIEWER_TYPE_SESSION) struct _VirtViewerSessionSpicePrivate { - SpiceSession *session; - SpiceAudio *audio; + GtkWindow *main_window; + SpiceSession *session; + SpiceGtkSession *gtk_session; + SpiceMainChannel *main_channel; + const SpiceAudio *audio; + int channel_count; }; #define VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpicePrivate)) + +enum { + PROP_0, + PROP_SPICE_SESSION, +}; + static void virt_viewer_session_spice_close(VirtViewerSession *session); static gboolean virt_viewer_session_spice_open_fd(VirtViewerSession *session, int fd); -static gboolean virt_viewer_session_spice_open_host(VirtViewerSession *session, char *host, char *port); +static gboolean virt_viewer_session_spice_open_host(VirtViewerSession *session, const gchar *host, const gchar *port, const gchar *tlsport); +static gboolean virt_viewer_session_spice_open_uri(VirtViewerSession *session, const gchar *uri); static gboolean virt_viewer_session_spice_channel_open_fd(VirtViewerSession *session, VirtViewerSessionChannel *channel, int fd); +static gboolean virt_viewer_session_spice_has_usb(VirtViewerSession *session); +static void virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session, GtkWindow *parent); static void virt_viewer_session_spice_channel_new(SpiceSession *s, - SpiceChannel *channel, - VirtViewerSession *session); + SpiceChannel *channel, + VirtViewerSession *session); static void virt_viewer_session_spice_channel_destroy(SpiceSession *s, - SpiceChannel *channel, - VirtViewerSession *session); - - -static void -virt_viewer_session_spice_finalize(GObject *obj) -{ - VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj); - - if (spice->priv->session) { - spice_session_disconnect(spice->priv->session); - g_object_unref(spice->priv->session); - } - if (spice->priv->audio) - g_object_unref(spice->priv->audio); - - G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->finalize(obj); + SpiceChannel *channel, + VirtViewerSession *session); +static void virt_viewer_session_spice_smartcard_insert(VirtViewerSession *session); +static void virt_viewer_session_spice_smartcard_remove(VirtViewerSession *session); +static gboolean virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self); + +static void +virt_viewer_session_spice_get_property(GObject *object, guint property_id, + GValue *value, GParamSpec *pspec) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(object); + VirtViewerSessionSpicePrivate *priv = self->priv; + + switch (property_id) { + case PROP_SPICE_SESSION: + g_value_set_object(value, priv->session); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +virt_viewer_session_spice_set_property(GObject *object, guint property_id, + const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +virt_viewer_session_spice_dispose(GObject *obj) +{ + VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj); + + if (spice->priv->session) { + spice_session_disconnect(spice->priv->session); + g_object_unref(spice->priv->session); + spice->priv->session = NULL; + } + + spice->priv->audio = NULL; + + if (spice->priv->main_window) + g_object_unref(spice->priv->main_window); + + G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->dispose(obj); } static void virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass) { - VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass); - GObjectClass *oclass = G_OBJECT_CLASS(klass); - - oclass->finalize = virt_viewer_session_spice_finalize; - - dclass->close = virt_viewer_session_spice_close; - dclass->open_fd = virt_viewer_session_spice_open_fd; - dclass->open_host = virt_viewer_session_spice_open_host; - dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd; - - g_type_class_add_private(oclass, sizeof(VirtViewerSessionSpicePrivate)); + VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass); + GObjectClass *oclass = G_OBJECT_CLASS(klass); + + oclass->get_property = virt_viewer_session_spice_get_property; + oclass->set_property = virt_viewer_session_spice_set_property; + oclass->dispose = virt_viewer_session_spice_dispose; + + dclass->close = virt_viewer_session_spice_close; + dclass->open_fd = virt_viewer_session_spice_open_fd; + dclass->open_host = virt_viewer_session_spice_open_host; + dclass->open_uri = virt_viewer_session_spice_open_uri; + dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd; + dclass->has_usb = virt_viewer_session_spice_has_usb; + dclass->usb_device_selection = virt_viewer_session_spice_usb_device_selection; + dclass->smartcard_insert = virt_viewer_session_spice_smartcard_insert; + dclass->smartcard_remove = virt_viewer_session_spice_smartcard_remove; + + g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate)); + + g_object_class_install_property(oclass, + PROP_SPICE_SESSION, + g_param_spec_object("spice-session", + "Spice session", + "Spice session", + SPICE_TYPE_SESSION, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); } static void virt_viewer_session_spice_init(VirtViewerSessionSpice *self G_GNUC_UNUSED) { - self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self); + self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self); +} + +static void +usb_connect_failed(GObject *object G_GNUC_UNUSED, + SpiceUsbDevice *device G_GNUC_UNUSED, + GError *error, VirtViewerSessionSpice *self) +{ + if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + + g_signal_emit_by_name(self, "session-usb-failed", error->message); +} + +static void +create_spice_session(VirtViewerSessionSpice *self) +{ + SpiceUsbDeviceManager *manager; + + g_return_if_fail(self != NULL); + g_return_if_fail(self->priv->session == NULL); + + self->priv->session = spice_session_new(); + spice_set_session_option(self->priv->session); + + self->priv->gtk_session = spice_gtk_session_get(self->priv->session); + g_object_set(self->priv->gtk_session, "auto-clipboard", TRUE, NULL); + + g_signal_connect(self->priv->session, "channel-new", + G_CALLBACK(virt_viewer_session_spice_channel_new), self); + g_signal_connect(self->priv->session, "channel-destroy", + G_CALLBACK(virt_viewer_session_spice_channel_destroy), self); + + manager = spice_usb_device_manager_get(self->priv->session, NULL); + if (manager) { + g_signal_connect(manager, "auto-connect-failed", + G_CALLBACK(usb_connect_failed), self); + g_signal_connect(manager, "device-error", + G_CALLBACK(usb_connect_failed), self); + } + + g_object_bind_property(self, "auto-usbredir", + self->priv->gtk_session, "auto-usbredir", + G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); } static void virt_viewer_session_spice_close(VirtViewerSession *session) { - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - - g_return_if_fail(self != NULL); - - virt_viewer_session_clear_displays(session); - - if (self->priv->session) { - spice_session_disconnect(self->priv->session); - g_object_unref(self->priv->session); - - if (self->priv->audio) - g_object_unref(self->priv->audio); - self->priv->audio = NULL; - } - - self->priv->session = spice_session_new(); - g_signal_connect(self->priv->session, "channel-new", - G_CALLBACK(virt_viewer_session_spice_channel_new), self); - g_signal_connect(self->priv->session, "channel-destroy", - G_CALLBACK(virt_viewer_session_spice_channel_destroy), self); - + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + + g_return_if_fail(self != NULL); + + virt_viewer_session_clear_displays(session); + + if (self->priv->session) { + spice_session_disconnect(self->priv->session); + g_object_unref(self->priv->session); + self->priv->session = NULL; + self->priv->gtk_session = NULL; + self->priv->audio = NULL; + } + + /* FIXME: version 0.7 of spice-gtk allows reuse of session */ + create_spice_session(self); } static gboolean virt_viewer_session_spice_open_host(VirtViewerSession *session, - char *host, - char *port) -{ - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - - g_return_val_if_fail(self != NULL, FALSE); - g_return_val_if_fail(self->priv->session != NULL, FALSE); - - g_object_set(self->priv->session, - "host", host, - "port", port, - NULL); - - return spice_session_connect(self->priv->session); + const gchar *host, + const gchar *port, + const gchar *tlsport) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + + g_return_val_if_fail(self != NULL, FALSE); + g_return_val_if_fail(self->priv->session != NULL, FALSE); + + g_object_set(self->priv->session, + "host", host, + "port", port, + "tls-port", tlsport, + NULL); + + return spice_session_connect(self->priv->session); +} + +static gboolean +virt_viewer_session_spice_open_uri(VirtViewerSession *session, + const gchar *uri) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + + g_return_val_if_fail(self != NULL, FALSE); + g_return_val_if_fail(self->priv->session != NULL, FALSE); + + g_object_set(self->priv->session, "uri", uri, NULL); + + return spice_session_connect(self->priv->session); } static gboolean virt_viewer_session_spice_open_fd(VirtViewerSession *session, - int fd) -{ - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - - g_return_val_if_fail(self != NULL, FALSE); - - return spice_session_open_fd(self->priv->session, fd); + int fd) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + + g_return_val_if_fail(self != NULL, FALSE); + + return spice_session_open_fd(self->priv->session, fd); } static gboolean virt_viewer_session_spice_channel_open_fd(VirtViewerSession *session, - VirtViewerSessionChannel *channel, - int fd) -{ - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - - g_return_val_if_fail(self != NULL, FALSE); - - return spice_channel_open_fd(SPICE_CHANNEL(channel), fd); + VirtViewerSessionChannel *channel, + int fd) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + + g_return_val_if_fail(self != NULL, FALSE); + + return spice_channel_open_fd(SPICE_CHANNEL(channel), fd); } static void virt_viewer_session_spice_channel_open_fd_request(SpiceChannel *channel, - gint tls G_GNUC_UNUSED, - VirtViewerSession *session) -{ - g_signal_emit_by_name(session, "session-channel-open", channel); + gint tls G_GNUC_UNUSED, + VirtViewerSession *session) +{ + g_signal_emit_by_name(session, "session-channel-open", channel); } static void virt_viewer_session_spice_main_channel_event(SpiceChannel *channel G_GNUC_UNUSED, - SpiceChannelEvent event, - VirtViewerSession *session) -{ - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - char *password = NULL; - - g_return_if_fail(self != NULL); - - switch (event) { - case SPICE_CHANNEL_OPENED: - DEBUG_LOG("main channel: opened"); - break; - case SPICE_CHANNEL_CLOSED: - DEBUG_LOG("main channel: closed"); - g_signal_emit_by_name(session, "session-disconnected"); - break; - case SPICE_CHANNEL_ERROR_CONNECT: - DEBUG_LOG("main channel: failed to connect"); - g_signal_emit_by_name(session, "session-disconnected"); - break; - case SPICE_CHANNEL_ERROR_AUTH: - DEBUG_LOG("main channel: auth failure (wrong password?)"); - int ret = virt_viewer_auth_collect_credentials("SPICE", - NULL, - NULL, &password); - if (ret < 0) { - g_signal_emit_by_name(session, "session-auth-refused", - _("Unable to collect credentials")); - } else { - g_object_set(self->priv->session, "password", password, NULL); - spice_session_connect(self->priv->session); - } - break; - default: - g_warning("unknown main channel event: %d", event); - g_signal_emit_by_name(session, "session-disconnected"); - break; - } - - g_free(password); -} - + SpiceChannelEvent event, + VirtViewerSession *session) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + gchar *password = NULL; + + g_return_if_fail(self != NULL); + + switch (event) { + case SPICE_CHANNEL_OPENED: + DEBUG_LOG("main channel: opened"); + break; + case SPICE_CHANNEL_CLOSED: + DEBUG_LOG("main channel: closed"); + /* Ensure the other channels get closed too */ + virt_viewer_session_clear_displays(session); + if (self->priv->session) + spice_session_disconnect(self->priv->session); + break; + case SPICE_CHANNEL_SWITCHING: + DEBUG_LOG("main channel: switching host"); + break; + case SPICE_CHANNEL_ERROR_AUTH: + DEBUG_LOG("main channel: auth failure (wrong password?)"); + int ret = virt_viewer_auth_collect_credentials(self->priv->main_window, + "SPICE", + NULL, + NULL, &password); + if (ret < 0) { + g_signal_emit_by_name(session, "session-cancelled"); + } else { + gboolean openfd; + + g_object_set(self->priv->session, "password", password, NULL); + g_free(password); + g_object_get(self->priv->session, "client-sockets", &openfd, NULL); + + if (openfd) + spice_session_open_fd(self->priv->session, -1); + else + spice_session_connect(self->priv->session); + } + break; + case SPICE_CHANNEL_ERROR_CONNECT: + DEBUG_LOG("main channel: failed to connect"); + g_signal_emit_by_name(session, "session-disconnected"); + break; + case SPICE_CHANNEL_ERROR_IO: + case SPICE_CHANNEL_ERROR_LINK: + case SPICE_CHANNEL_ERROR_TLS: + g_signal_emit_by_name(session, "session-disconnected"); + break; + default: + g_warning("unhandled spice main channel event: %d", event); + break; + } + + g_free(password); +} + +static gboolean +virt_viewer_session_spice_has_usb(VirtViewerSession *session) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + VirtViewerSessionSpicePrivate *priv = self->priv; + + return spice_usb_device_manager_get(priv->session, NULL) && + spice_session_has_channel_type(priv->session, + SPICE_CHANNEL_USBREDIR); +} + +static void remove_cb(GtkContainer *container G_GNUC_UNUSED, + GtkWidget *widget G_GNUC_UNUSED, + void *user_data) +{ + gtk_window_resize(GTK_WINDOW(user_data), 1, 1); +} + +static void +virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session, + GtkWindow *parent) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + VirtViewerSessionSpicePrivate *priv = self->priv; + GtkWidget *dialog, *area, *usb_device_widget; + + /* Create the widgets */ + dialog = gtk_dialog_new_with_buttons(_("Select USB devices for redirection"), parent, + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT, + NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); + gtk_container_set_border_width(GTK_CONTAINER(dialog), 12); + gtk_box_set_spacing(GTK_BOX(gtk_bin_get_child(GTK_BIN(dialog))), 12); + + area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + + usb_device_widget = spice_usb_device_widget_new(priv->session, + "%s %s"); + g_signal_connect(usb_device_widget, "connect-failed", + G_CALLBACK(usb_connect_failed), self); + gtk_box_pack_start(GTK_BOX(area), usb_device_widget, TRUE, TRUE, 0); + + /* This shrinks the dialog when USB devices are unplugged */ + g_signal_connect(usb_device_widget, "remove", + G_CALLBACK(remove_cb), dialog); + + /* show and run */ + gtk_widget_show_all(dialog); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); +} + +static void +agent_connected_changed(SpiceChannel *cmain G_GNUC_UNUSED, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerSessionSpice *self) +{ + // this will force refresh of application menu + g_signal_emit_by_name(self, "session-display-updated"); +} + +static void +agent_connected_fullscreen_auto_conf(SpiceChannel *cmain, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerSessionSpice *self) +{ + if (virt_viewer_session_spice_fullscreen_auto_conf(self)) + g_signal_handlers_disconnect_by_func(cmain, agent_connected_fullscreen_auto_conf, self); +} + +static void +destroy_display(gpointer data) +{ + VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(data); + VirtViewerSession *session = virt_viewer_display_get_session(display); + + DEBUG_LOG("Destroying spice display %p", display); + virt_viewer_session_remove_display(session, display); + g_object_unref(display); +} + +static void +virt_viewer_session_spice_display_monitors(SpiceChannel *channel, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerSessionSpice *self) +{ + GArray *monitors = NULL; + GPtrArray *displays = NULL; + GtkWidget *display; + guint i, monitors_max; + + g_object_get(channel, + "monitors", &monitors, + "monitors-max", &monitors_max, + NULL); + g_return_if_fail(monitors != NULL); + g_return_if_fail(monitors->len <= monitors_max); + + displays = g_object_get_data(G_OBJECT(channel), "virt-viewer-displays"); + if (displays == NULL) { + displays = g_ptr_array_new(); + g_ptr_array_set_free_func(displays, destroy_display); + g_object_set_data_full(G_OBJECT(channel), "virt-viewer-displays", + displays, (GDestroyNotify)g_ptr_array_unref); + } + + g_ptr_array_set_size(displays, monitors_max); + + for (i = 0; i < monitors_max; i++) { + display = g_ptr_array_index(displays, i); + if (display == NULL) { + display = virt_viewer_display_spice_new(self, channel, i); + DEBUG_LOG("creating spice display (#:%d)", i); + g_ptr_array_index(displays, i) = g_object_ref(display); + } + + g_object_freeze_notify(G_OBJECT(display)); + virt_viewer_display_set_enabled(VIRT_VIEWER_DISPLAY(display), FALSE); + virt_viewer_session_add_display(VIRT_VIEWER_SESSION(self), + VIRT_VIEWER_DISPLAY(display)); + } + + for (i = 0; i < monitors->len; i++) { + SpiceDisplayMonitorConfig *monitor = &g_array_index(monitors, SpiceDisplayMonitorConfig, i); + display = g_ptr_array_index(displays, monitor->id); + g_return_if_fail(display != NULL); + + if (monitor->width == 0 || monitor->width == 0) + continue; + + virt_viewer_display_set_enabled(VIRT_VIEWER_DISPLAY(display), TRUE); + virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(display), + monitor->width, monitor->height); + } + + for (i = 0; i < monitors_max; i++) + g_object_thaw_notify(g_ptr_array_index(displays, i)); + + g_clear_pointer(&monitors, g_array_unref); + +} static void virt_viewer_session_spice_channel_new(SpiceSession *s, - SpiceChannel *channel, - VirtViewerSession *session) -{ - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - int id; - - g_return_if_fail(self != NULL); - - g_signal_connect(channel, "open-fd", - G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self); - - g_object_get(channel, "channel-id", &id, NULL); - - if (SPICE_IS_MAIN_CHANNEL(channel)) { - g_signal_connect(channel, "channel-event", - G_CALLBACK(virt_viewer_session_spice_main_channel_event), self); - } - - if (SPICE_IS_DISPLAY_CHANNEL(channel)) { - GtkWidget *display; - - g_signal_emit_by_name(session, "session-connected"); - - DEBUG_LOG("new session channel (#%d)", id); - display = virt_viewer_display_spice_new(channel, - spice_display_new(s, id)); - - virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session), - VIRT_VIEWER_DISPLAY(display)); - - g_signal_emit_by_name(session, "session-initialized"); - } - - if (SPICE_IS_INPUTS_CHANNEL(channel)) { - DEBUG_LOG("new inputs channel"); - } - - if (SPICE_IS_PLAYBACK_CHANNEL(channel)) { - DEBUG_LOG("new audio channel"); - if (self->priv->audio != NULL) - return; - self->priv->audio = spice_audio_new(s, NULL, NULL); - } + SpiceChannel *channel, + VirtViewerSession *session) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + int id; + + g_return_if_fail(self != NULL); + + g_signal_connect(channel, "open-fd", + G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self); + + g_object_get(channel, "channel-id", &id, NULL); + + DEBUG_LOG("New spice channel %p %s %d", channel, g_type_name(G_OBJECT_TYPE(channel)), id); + + if (SPICE_IS_MAIN_CHANNEL(channel)) { + if (self->priv->main_channel != NULL) + g_signal_handlers_disconnect_by_func(self->priv->main_channel, + virt_viewer_session_spice_main_channel_event, self); + + g_signal_connect(channel, "channel-event", + G_CALLBACK(virt_viewer_session_spice_main_channel_event), self); + self->priv->main_channel = SPICE_MAIN_CHANNEL(channel); + + g_signal_connect(channel, "notify::agent-connected", G_CALLBACK(agent_connected_changed), self); + g_signal_connect(channel, "notify::agent-connected", G_CALLBACK(agent_connected_fullscreen_auto_conf), self); + agent_connected_fullscreen_auto_conf(channel, NULL, self); + + g_signal_emit_by_name(session, "session-connected"); + } + + if (SPICE_IS_DISPLAY_CHANNEL(channel)) { + g_signal_emit_by_name(session, "session-initialized"); + + g_signal_connect(channel, "notify::monitors", + G_CALLBACK(virt_viewer_session_spice_display_monitors), self); + + spice_channel_connect(channel); + } + + if (SPICE_IS_INPUTS_CHANNEL(channel)) { + DEBUG_LOG("new inputs channel"); + } + + if (SPICE_IS_PLAYBACK_CHANNEL(channel)) { + DEBUG_LOG("new audio channel"); + if (self->priv->audio == NULL) + self->priv->audio = spice_audio_get(s, NULL); + } + + self->priv->channel_count++; +} + +static gboolean +virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self) +{ + GdkScreen *screen = gdk_screen_get_default(); + SpiceMainChannel* cmain = virt_viewer_session_spice_get_main_channel(self); + VirtViewerApp *app = NULL; + GdkRectangle dest; + gboolean auto_conf, agent_connected; + gint i; + + app = virt_viewer_session_get_app(VIRT_VIEWER_SESSION(self)); + g_return_val_if_fail(VIRT_VIEWER_IS_APP(app), TRUE); + + DEBUG_LOG("Checking full screen auto-conf"); + g_object_get(app, "fullscreen-auto-conf", &auto_conf, NULL); + if (!auto_conf) + return TRUE; + + if (cmain == NULL) + return FALSE; + + g_object_get(cmain, "agent-connected", &agent_connected, NULL); + if (!agent_connected) { + DEBUG_LOG("Agent not connected, skipping autoconf"); + return FALSE; + } + + DEBUG_LOG("Performing full screen auto-conf, %d host monitors", + gdk_screen_get_n_monitors(screen)); + g_object_set(G_OBJECT(cmain), + "disable-display-position", FALSE, + "disable-display-align", TRUE, + NULL); + spice_main_set_display_enabled(cmain, -1, FALSE); + for (i = 0; i < gdk_screen_get_n_monitors(screen); i++) { + gdk_screen_get_monitor_geometry(screen, i, &dest); + DEBUG_LOG("Set SPICE display %d to (%d,%d)-(%dx%d)", + i, dest.x, dest.y, dest.width, dest.height); + spice_main_set_display(cmain, i, dest.x, dest.y, dest.width, dest.height); + spice_main_set_display_enabled(cmain, i, TRUE); + } + + spice_main_send_monitor_config(cmain); + return TRUE; } static void virt_viewer_session_spice_channel_destroy(G_GNUC_UNUSED SpiceSession *s, - SpiceChannel *channel, - VirtViewerSession *session) -{ - VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); - int id; - - g_return_if_fail(self != NULL); - - g_object_get(channel, "channel-id", &id, NULL); - if (SPICE_IS_MAIN_CHANNEL(channel)) { - DEBUG_LOG("zap main channel"); - } - - if (SPICE_IS_DISPLAY_CHANNEL(channel)) { - DEBUG_LOG("zap session channel (#%d)", id); - } - - if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) { - DEBUG_LOG("zap audio channel"); - g_object_unref(self->priv->audio); - self->priv->audio = NULL; - } + SpiceChannel *channel, + VirtViewerSession *session) +{ + VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session); + int id; + + g_return_if_fail(self != NULL); + + g_object_get(channel, "channel-id", &id, NULL); + DEBUG_LOG("Destroy SPICE channel %s %d", g_type_name(G_OBJECT_TYPE(channel)), id); + + if (SPICE_IS_MAIN_CHANNEL(channel)) { + DEBUG_LOG("zap main channel"); + if (channel == SPICE_CHANNEL(self->priv->main_channel)) + self->priv->main_channel = NULL; + } + + if (SPICE_IS_DISPLAY_CHANNEL(channel)) { + VirtViewerDisplay *display = g_object_get_data(G_OBJECT(channel), "virt-viewer-display"); + DEBUG_LOG("zap display channel (#%d, %p)", id, display); + } + + if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) { + DEBUG_LOG("zap audio channel"); + self->priv->audio = NULL; + } + + self->priv->channel_count--; + if (self->priv->channel_count == 0) + g_signal_emit_by_name(self, "session-disconnected"); +} + +static void +fullscreen_changed(GObject *gobject G_GNUC_UNUSED, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerSessionSpice *self) +{ + virt_viewer_session_spice_fullscreen_auto_conf(self); } VirtViewerSession * -virt_viewer_session_spice_new(void) -{ - VirtViewerSessionSpice *self; - - self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, NULL); - - self->priv->session = spice_session_new(); - g_signal_connect(self->priv->session, "channel-new", - G_CALLBACK(virt_viewer_session_spice_channel_new), self); - g_signal_connect(self->priv->session, "channel-destroy", - G_CALLBACK(virt_viewer_session_spice_channel_destroy), self); - - return VIRT_VIEWER_SESSION(self); +virt_viewer_session_spice_new(VirtViewerApp *app, GtkWindow *main_window) +{ + VirtViewerSessionSpice *self; + + self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, "app", app, NULL); + + create_spice_session(self); + self->priv->main_window = g_object_ref(main_window); + + g_signal_connect(app, "notify::fullscreen", G_CALLBACK(fullscreen_changed), self); + + return VIRT_VIEWER_SESSION(self); +} + +SpiceMainChannel* +virt_viewer_session_spice_get_main_channel(VirtViewerSessionSpice *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION_SPICE(self), NULL); + + return self->priv->main_channel; +} + +static void +virt_viewer_session_spice_smartcard_insert(VirtViewerSession *session G_GNUC_UNUSED) +{ + spice_smartcard_manager_insert_card(spice_smartcard_manager_get()); +} + +static void +virt_viewer_session_spice_smartcard_remove(VirtViewerSession *session G_GNUC_UNUSED) +{ + spice_smartcard_manager_remove_card(spice_smartcard_manager_get()); } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-session-spice.h b/src/virt-viewer-session-spice.h index 8926940..95bdcdf 100644 --- a/src/virt-viewer-session-spice.h +++ b/src/virt-viewer-session-spice.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -34,47 +34,47 @@ #define VIRT_VIEWER_TYPE_SESSION_SPICE virt_viewer_session_spice_get_type() -#define VIRT_VIEWER_SESSION_SPICE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpice)) +#define VIRT_VIEWER_SESSION_SPICE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpice)) -#define VIRT_VIEWER_SESSION_SPICE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass)) +#define VIRT_VIEWER_SESSION_SPICE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass)) -#define VIRT_VIEWER_IS_SESSION_SPICE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE)) +#define VIRT_VIEWER_IS_SESSION_SPICE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE)) -#define VIRT_VIEWER_IS_SESSION_SPICE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE)) +#define VIRT_VIEWER_IS_SESSION_SPICE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE)) -#define VIRT_VIEWER_SESSION_SPICE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass)) +#define VIRT_VIEWER_SESSION_SPICE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass)) typedef struct _VirtViewerSessionSpice VirtViewerSessionSpice; typedef struct _VirtViewerSessionSpiceClass VirtViewerSessionSpiceClass; typedef struct _VirtViewerSessionSpicePrivate VirtViewerSessionSpicePrivate; struct _VirtViewerSessionSpice { - VirtViewerSession parent; + VirtViewerSession parent; - VirtViewerSessionSpicePrivate *priv; + VirtViewerSessionSpicePrivate *priv; }; struct _VirtViewerSessionSpiceClass { - VirtViewerSessionClass parent_class; + VirtViewerSessionClass parent_class; }; GType virt_viewer_session_spice_get_type(void); -VirtViewerSession* virt_viewer_session_spice_new(void); +VirtViewerSession* virt_viewer_session_spice_new(VirtViewerApp *app, GtkWindow *main_window); +SpiceMainChannel* virt_viewer_session_spice_get_main_channel(VirtViewerSessionSpice *self); G_END_DECLS #endif /* _VIRT_VIEWER_SESSION_SPICE_H */ - /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c index ad3002a..52baf5c 100644 --- a/src/virt-viewer-session-vnc.c +++ b/src/virt-viewer-session-vnc.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -22,238 +22,302 @@ * Author: Daniel P. Berrange */ +#include + #include "virt-viewer-auth.h" #include "virt-viewer-session-vnc.h" #include "virt-viewer-display-vnc.h" #include +#include G_DEFINE_TYPE(VirtViewerSessionVnc, virt_viewer_session_vnc, VIRT_VIEWER_TYPE_SESSION) struct _VirtViewerSessionVncPrivate { - /* XXX we should really just have a VncConnection */ - VncDisplay *vnc; + GtkWindow *main_window; + /* XXX we should really just have a VncConnection */ + VncDisplay *vnc; }; #define VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncPrivate)) static void virt_viewer_session_vnc_close(VirtViewerSession* session); static gboolean virt_viewer_session_vnc_open_fd(VirtViewerSession* session, int fd); -static gboolean virt_viewer_session_vnc_open_host(VirtViewerSession* session, char *host, char *port); +static gboolean virt_viewer_session_vnc_open_host(VirtViewerSession* session, const gchar *host, const gchar *port, const gchar *tlsport); +static gboolean virt_viewer_session_vnc_open_uri(VirtViewerSession* session, const gchar *uri); static gboolean virt_viewer_session_vnc_channel_open_fd(VirtViewerSession* session, - VirtViewerSessionChannel* channel, int fd); + VirtViewerSessionChannel* channel, int fd); static void virt_viewer_session_vnc_finalize(GObject *obj) { - VirtViewerSessionVnc *vnc = VIRT_VIEWER_SESSION_VNC(obj); - - if (vnc->priv->vnc) { - vnc_display_close(vnc->priv->vnc); - g_object_unref(vnc->priv->vnc); - } - - G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj); + VirtViewerSessionVnc *vnc = VIRT_VIEWER_SESSION_VNC(obj); + + if (vnc->priv->vnc) { + vnc_display_close(vnc->priv->vnc); + g_object_unref(vnc->priv->vnc); + } + if (vnc->priv->main_window) + g_object_unref(vnc->priv->main_window); + + G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj); } static void virt_viewer_session_vnc_class_init(VirtViewerSessionVncClass *klass) { - VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass); - GObjectClass *oclass = G_OBJECT_CLASS(klass); - - oclass->finalize = virt_viewer_session_vnc_finalize; - - dclass->close = virt_viewer_session_vnc_close; - dclass->open_fd = virt_viewer_session_vnc_open_fd; - dclass->open_host = virt_viewer_session_vnc_open_host; - dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd; - - g_type_class_add_private(oclass, sizeof(VirtViewerSessionVncPrivate)); + VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass); + GObjectClass *oclass = G_OBJECT_CLASS(klass); + + oclass->finalize = virt_viewer_session_vnc_finalize; + + dclass->close = virt_viewer_session_vnc_close; + dclass->open_fd = virt_viewer_session_vnc_open_fd; + dclass->open_host = virt_viewer_session_vnc_open_host; + dclass->open_uri = virt_viewer_session_vnc_open_uri; + dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd; + + g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate)); } static void virt_viewer_session_vnc_init(VirtViewerSessionVnc *self G_GNUC_UNUSED) { - self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self); + self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self); } static void virt_viewer_session_vnc_connected(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerSessionVnc *session) -{ - GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc); - g_signal_emit_by_name(session, "session-connected"); - virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display), - VIRT_VIEWER_DISPLAY_SHOW_HINT_READY); - virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session), - VIRT_VIEWER_DISPLAY(display)); + VirtViewerSessionVnc *session) +{ + GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc); + g_signal_emit_by_name(session, "session-connected"); + virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display), + VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, TRUE); + virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session), + VIRT_VIEWER_DISPLAY(display)); } static void virt_viewer_session_vnc_disconnected(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerSessionVnc *session) -{ - g_signal_emit_by_name(session, "session-disconnected"); - /* TODO perhaps? */ - /* virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(session->priv->vnc), */ - /* VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE); */ + VirtViewerSessionVnc *session) +{ + GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc); + DEBUG_LOG("Disconnected"); + g_signal_emit_by_name(session, "session-disconnected"); + virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display), + VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, FALSE); } static void virt_viewer_session_vnc_initialized(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerSessionVnc *session) -{ - g_signal_emit_by_name(session, "session-initialized"); + VirtViewerSessionVnc *session) +{ + g_signal_emit_by_name(session, "session-initialized"); } static void virt_viewer_session_vnc_cut_text(VncDisplay *vnc G_GNUC_UNUSED, - const char *text, - VirtViewerSession *session) -{ - g_signal_emit_by_name(session, "session-cut-text", text); + const gchar *text, + VirtViewerSession *session) +{ + g_signal_emit_by_name(session, "session-cut-text", text); } static void virt_viewer_session_vnc_bell(VncDisplay *vnc G_GNUC_UNUSED, - VirtViewerSession *session) -{ - g_signal_emit_by_name(session, "session-bell"); + VirtViewerSession *session) +{ + g_signal_emit_by_name(session, "session-bell"); } static void virt_viewer_session_vnc_auth_unsupported(VncDisplay *vnc G_GNUC_UNUSED, - unsigned int authType, - VirtViewerSession *session) -{ - char *msg = g_strdup_printf(_("Unsupported authentication type %d"), - authType); - g_signal_emit_by_name(session, "session-auth-failed", msg); - g_free(msg); + unsigned int authType, + VirtViewerSession *session) +{ + gchar *msg = g_strdup_printf(_("Unsupported authentication type %d"), + authType); + g_signal_emit_by_name(session, "session-auth-failed", msg); + g_free(msg); } static void virt_viewer_session_vnc_auth_failure(VncDisplay *vnc G_GNUC_UNUSED, - const char *reason, - VirtViewerSession *session) -{ - - g_signal_emit_by_name(session, "session-auth-refused", reason); + const gchar *reason, + VirtViewerSession *session) +{ + + g_signal_emit_by_name(session, "session-auth-refused", reason); } static gboolean virt_viewer_session_vnc_open_fd(VirtViewerSession* session, - int fd) -{ - VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); - - g_return_val_if_fail(self != NULL, FALSE); - g_return_val_if_fail(self->priv->vnc != NULL, FALSE); - - return vnc_display_open_fd(self->priv->vnc, fd); + int fd) +{ + VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); + + g_return_val_if_fail(self != NULL, FALSE); + g_return_val_if_fail(self->priv->vnc != NULL, FALSE); + + return vnc_display_open_fd(self->priv->vnc, fd); } static gboolean virt_viewer_session_vnc_channel_open_fd(VirtViewerSession* session G_GNUC_UNUSED, - VirtViewerSessionChannel* channel G_GNUC_UNUSED, - int fd G_GNUC_UNUSED) -{ - g_warning("channel_open_fd is not supported by VNC"); - return FALSE; + VirtViewerSessionChannel* channel G_GNUC_UNUSED, + int fd G_GNUC_UNUSED) +{ + g_warning("channel_open_fd is not supported by VNC"); + return FALSE; } static gboolean virt_viewer_session_vnc_open_host(VirtViewerSession* session, - char *host, - char *port) -{ - VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); - - g_return_val_if_fail(self != NULL, FALSE); - g_return_val_if_fail(self->priv->vnc != NULL, FALSE); - - return vnc_display_open_host(self->priv->vnc, host, port); -} + const gchar *host, + const gchar *port, + const gchar *tlsport G_GNUC_UNUSED) +{ + VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); + + g_return_val_if_fail(self != NULL, FALSE); + g_return_val_if_fail(self->priv->vnc != NULL, FALSE); + + return vnc_display_open_host(self->priv->vnc, host, port); +} + +static gboolean +virt_viewer_session_vnc_open_uri(VirtViewerSession* session, + const gchar *uristr) +{ + VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); + xmlURIPtr uri = NULL; + gchar *portstr; + gchar *hoststr = NULL; + gboolean ret; + + g_return_val_if_fail(self != NULL, FALSE); + g_return_val_if_fail(self->priv->vnc != NULL, FALSE); + + if (!(uri = xmlParseURI(uristr))) + return FALSE; + + portstr = g_strdup_printf("%d", uri->port); + + if (uri->server) { + if (uri->server[0] == '[') { + gchar *tmp; + hoststr = g_strdup(uri->server + 1); + if ((tmp = strchr(hoststr, ']'))) + *tmp = '\0'; + } else { + hoststr = g_strdup(uri->server); + } + } + + ret = vnc_display_open_host(self->priv->vnc, + hoststr, + portstr); + g_free(portstr); + g_free(hoststr); + xmlFreeURI(uri); + return ret; +} + + +static void +virt_viewer_session_vnc_auth_credential(GtkWidget *src, + GValueArray *credList, + VirtViewerSession *session) +{ + VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); + + virt_viewer_auth_vnc_credentials(self->priv->main_window, + src, + credList, + NULL); +} + static void virt_viewer_session_vnc_close(VirtViewerSession* session) { - VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); - - g_return_if_fail(self != NULL); - - if (self->priv->vnc != NULL) { - virt_viewer_session_clear_displays(session); - vnc_display_close(self->priv->vnc); - g_object_unref(self->priv->vnc); - } - - self->priv->vnc = VNC_DISPLAY(vnc_display_new()); - - g_signal_connect(self->priv->vnc, "vnc-connected", - G_CALLBACK(virt_viewer_session_vnc_connected), session); - g_signal_connect(self->priv->vnc, "vnc-initialized", - G_CALLBACK(virt_viewer_session_vnc_initialized), session); - g_signal_connect(self->priv->vnc, "vnc-disconnected", - G_CALLBACK(virt_viewer_session_vnc_disconnected), session); - - g_signal_connect(self->priv->vnc, "vnc-bell", - G_CALLBACK(virt_viewer_session_vnc_bell), session); - g_signal_connect(self->priv->vnc, "vnc-auth-failure", - G_CALLBACK(virt_viewer_session_vnc_auth_failure), session); - g_signal_connect(self->priv->vnc, "vnc-auth-unsupported", - G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session); - g_signal_connect(self->priv->vnc, "vnc-server-cut-text", - G_CALLBACK(virt_viewer_session_vnc_cut_text), session); - - g_signal_connect(self->priv->vnc, "vnc-auth-credential", - G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL); - - } + VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session); + + g_return_if_fail(self != NULL); + + DEBUG_LOG("close vnc=%p", self->priv->vnc); + if (self->priv->vnc != NULL) { + virt_viewer_session_clear_displays(session); + vnc_display_close(self->priv->vnc); + g_object_unref(self->priv->vnc); + } + + self->priv->vnc = VNC_DISPLAY(vnc_display_new()); + g_object_ref_sink(self->priv->vnc); + + g_signal_connect(self->priv->vnc, "vnc-connected", + G_CALLBACK(virt_viewer_session_vnc_connected), session); + g_signal_connect(self->priv->vnc, "vnc-initialized", + G_CALLBACK(virt_viewer_session_vnc_initialized), session); + g_signal_connect(self->priv->vnc, "vnc-disconnected", + G_CALLBACK(virt_viewer_session_vnc_disconnected), session); + + g_signal_connect(self->priv->vnc, "vnc-bell", + G_CALLBACK(virt_viewer_session_vnc_bell), session); + g_signal_connect(self->priv->vnc, "vnc-auth-failure", + G_CALLBACK(virt_viewer_session_vnc_auth_failure), session); + g_signal_connect(self->priv->vnc, "vnc-auth-unsupported", + G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session); + g_signal_connect(self->priv->vnc, "vnc-server-cut-text", + G_CALLBACK(virt_viewer_session_vnc_cut_text), session); + + g_signal_connect(self->priv->vnc, "vnc-auth-credential", + G_CALLBACK(virt_viewer_session_vnc_auth_credential), session); + +} VirtViewerSession * -virt_viewer_session_vnc_new(void) -{ - VirtViewerSessionVnc *session; - - session = g_object_new(VIRT_VIEWER_TYPE_SESSION_VNC, NULL); - - session->priv->vnc = VNC_DISPLAY(vnc_display_new()); - - g_signal_connect(session->priv->vnc, "vnc-connected", - G_CALLBACK(virt_viewer_session_vnc_connected), session); - g_signal_connect(session->priv->vnc, "vnc-initialized", - G_CALLBACK(virt_viewer_session_vnc_initialized), session); - g_signal_connect(session->priv->vnc, "vnc-disconnected", - G_CALLBACK(virt_viewer_session_vnc_disconnected), session); - - g_signal_connect(session->priv->vnc, "vnc-bell", - G_CALLBACK(virt_viewer_session_vnc_bell), session); - g_signal_connect(session->priv->vnc, "vnc-auth-failure", - G_CALLBACK(virt_viewer_session_vnc_auth_failure), session); - g_signal_connect(session->priv->vnc, "vnc-auth-unsupported", - G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session); - g_signal_connect(session->priv->vnc, "vnc-server-cut-text", - G_CALLBACK(virt_viewer_session_vnc_cut_text), session); - - g_signal_connect(session->priv->vnc, "vnc-auth-credential", - G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL); - - return VIRT_VIEWER_SESSION(session); -} - - - +virt_viewer_session_vnc_new(GtkWindow *main_window) +{ + VirtViewerSessionVnc *session; + + session = g_object_new(VIRT_VIEWER_TYPE_SESSION_VNC, NULL); + + session->priv->vnc = VNC_DISPLAY(vnc_display_new()); + g_object_ref_sink(session->priv->vnc); + session->priv->main_window = g_object_ref(main_window); + + g_signal_connect(session->priv->vnc, "vnc-connected", + G_CALLBACK(virt_viewer_session_vnc_connected), session); + g_signal_connect(session->priv->vnc, "vnc-initialized", + G_CALLBACK(virt_viewer_session_vnc_initialized), session); + g_signal_connect(session->priv->vnc, "vnc-disconnected", + G_CALLBACK(virt_viewer_session_vnc_disconnected), session); + + g_signal_connect(session->priv->vnc, "vnc-bell", + G_CALLBACK(virt_viewer_session_vnc_bell), session); + g_signal_connect(session->priv->vnc, "vnc-auth-failure", + G_CALLBACK(virt_viewer_session_vnc_auth_failure), session); + g_signal_connect(session->priv->vnc, "vnc-auth-unsupported", + G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session); + g_signal_connect(session->priv->vnc, "vnc-server-cut-text", + G_CALLBACK(virt_viewer_session_vnc_cut_text), session); + + g_signal_connect(session->priv->vnc, "vnc-auth-credential", + G_CALLBACK(virt_viewer_session_vnc_auth_credential), session); + + return VIRT_VIEWER_SESSION(session); +} /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-session-vnc.h b/src/virt-viewer-session-vnc.h index 2684e45..2b95dde 100644 --- a/src/virt-viewer-session-vnc.h +++ b/src/virt-viewer-session-vnc.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -33,47 +33,46 @@ #define VIRT_VIEWER_TYPE_SESSION_VNC virt_viewer_session_vnc_get_type() -#define VIRT_VIEWER_SESSION_VNC(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVnc)) +#define VIRT_VIEWER_SESSION_VNC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVnc)) -#define VIRT_VIEWER_SESSION_VNC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass)) +#define VIRT_VIEWER_SESSION_VNC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass)) -#define VIRT_VIEWER_IS_SESSION_VNC(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_VNC)) +#define VIRT_VIEWER_IS_SESSION_VNC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_VNC)) -#define VIRT_VIEWER_IS_SESSION_VNC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_VNC)) +#define VIRT_VIEWER_IS_SESSION_VNC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_VNC)) -#define VIRT_VIEWER_SESSION_VNC_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass)) +#define VIRT_VIEWER_SESSION_VNC_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass)) typedef struct _VirtViewerSessionVnc VirtViewerSessionVnc; typedef struct _VirtViewerSessionVncClass VirtViewerSessionVncClass; typedef struct _VirtViewerSessionVncPrivate VirtViewerSessionVncPrivate; struct _VirtViewerSessionVnc { - VirtViewerSession parent; + VirtViewerSession parent; - VirtViewerSessionVncPrivate *priv; + VirtViewerSessionVncPrivate *priv; }; struct _VirtViewerSessionVncClass { - VirtViewerSessionClass parent_class; + VirtViewerSessionClass parent_class; }; GType virt_viewer_session_vnc_get_type(void); -VirtViewerSession *virt_viewer_session_vnc_new(void); +VirtViewerSession *virt_viewer_session_vnc_new(GtkWindow *main_window); G_END_DECLS #endif /* _VIRT_VIEWER_SESSION_VNC_H */ - /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c index d151238..a1d96c2 100644 --- a/src/virt-viewer-session.c +++ b/src/virt-viewer-session.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -34,223 +34,440 @@ struct _VirtViewerSessionPrivate { - GList *displays; + GList *displays; + VirtViewerApp *app; + gboolean auto_usbredir; + gchar *uri; }; G_DEFINE_ABSTRACT_TYPE(VirtViewerSession, virt_viewer_session, G_TYPE_OBJECT) + +enum { + PROP_0, + + PROP_APP, + PROP_AUTO_USBREDIR, +}; static void virt_viewer_session_finalize(GObject *obj) { - VirtViewerSession *session = VIRT_VIEWER_SESSION(obj); - GList *tmp = session->priv->displays; - - while (tmp) { - g_object_unref(tmp->data); - tmp = tmp->next; - } - g_list_free(session->priv->displays); - - G_OBJECT_CLASS(virt_viewer_session_parent_class)->finalize(obj); + VirtViewerSession *session = VIRT_VIEWER_SESSION(obj); + GList *tmp = session->priv->displays; + + while (tmp) { + g_object_unref(tmp->data); + tmp = tmp->next; + } + g_list_free(session->priv->displays); + + g_free(session->priv->uri); + + G_OBJECT_CLASS(virt_viewer_session_parent_class)->finalize(obj); +} + +static void +virt_viewer_session_set_property(GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VirtViewerSession *self = VIRT_VIEWER_SESSION(object); + + switch (prop_id) { + case PROP_AUTO_USBREDIR: + virt_viewer_session_set_auto_usbredir(self, g_value_get_boolean(value)); + break; + + case PROP_APP: + self->priv->app = g_value_get_object(value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } +} + +static void +virt_viewer_session_get_property(GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VirtViewerSession *self = VIRT_VIEWER_SESSION(object); + + switch (prop_id) { + case PROP_AUTO_USBREDIR: + g_value_set_boolean(value, virt_viewer_session_get_auto_usbredir(self)); + break; + + case PROP_APP: + g_value_set_object(value, self->priv->app); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + break; + } } static void virt_viewer_session_class_init(VirtViewerSessionClass *class) { - GObjectClass *object_class = G_OBJECT_CLASS(class); - - object_class->finalize = virt_viewer_session_finalize; - - g_signal_new("session-connected", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("session-initialized", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("session-disconnected", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_signal_new("session-channel-open", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, - 1, - G_TYPE_OBJECT); - - g_signal_new("session-auth-refused", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused), - NULL, - NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, - 1, - G_TYPE_STRING); - - g_signal_new("session-auth-failed", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_failed), - NULL, - NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, - 1, - G_TYPE_STRING); - - - g_signal_new("session-display-added", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added), - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, - 1, - VIRT_VIEWER_TYPE_DISPLAY); - - g_signal_new("session-display-removed", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed), - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, - 1, - VIRT_VIEWER_TYPE_DISPLAY); - - g_signal_new("session-cut-text", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text), - NULL, - NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, - 1, - G_TYPE_STRING); - - g_signal_new("session-bell", - G_OBJECT_CLASS_TYPE(object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, - G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - g_type_class_add_private(object_class, sizeof(VirtViewerSessionPrivate)); + GObjectClass *object_class = G_OBJECT_CLASS(class); + + object_class->set_property = virt_viewer_session_set_property; + object_class->get_property = virt_viewer_session_get_property; + object_class->finalize = virt_viewer_session_finalize; + + g_object_class_install_property(object_class, + PROP_AUTO_USBREDIR, + g_param_spec_boolean("auto-usbredir", + "USB redirection", + "USB redirection", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_APP, + g_param_spec_object("app", + "VirtViewerApp", + "VirtViewerApp", + VIRT_VIEWER_TYPE_APP, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); + + g_signal_new("session-connected", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("session-initialized", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("session-disconnected", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("session-channel-open", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open), + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + G_TYPE_OBJECT); + + g_signal_new("session-auth-refused", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused), + NULL, + NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, + 1, + G_TYPE_STRING); + + g_signal_new("session-auth-failed", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_failed), + NULL, + NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, + 1, + G_TYPE_STRING); + + g_signal_new("session-usb-failed", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_usb_failed), + NULL, + NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, + 1, + G_TYPE_STRING); + + g_signal_new("session-display-added", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added), + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + VIRT_VIEWER_TYPE_DISPLAY); + + g_signal_new("session-display-removed", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed), + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + VIRT_VIEWER_TYPE_DISPLAY); + + g_signal_new("session-display-updated", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_updated), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("session-cut-text", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text), + NULL, + NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, + 1, + G_TYPE_STRING); + + g_signal_new("session-bell", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_signal_new("session-cancelled", + G_OBJECT_CLASS_TYPE(object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET(VirtViewerSessionClass, session_cancelled), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_type_class_add_private(class, sizeof(VirtViewerSessionPrivate)); } static void virt_viewer_session_init(VirtViewerSession *session) { - session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session); + session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session); } GtkWidget* virt_viewer_session_new(void) { - return g_object_new(VIRT_VIEWER_TYPE_SESSION, NULL); + return g_object_new(VIRT_VIEWER_TYPE_SESSION, NULL); } void virt_viewer_session_add_display(VirtViewerSession *session, - VirtViewerDisplay *display) -{ - session->priv->displays = g_list_append(session->priv->displays, display); - g_object_ref(display); - g_signal_emit_by_name(session, "session-display-added", display); + VirtViewerDisplay *display) +{ + if (g_list_find(session->priv->displays, display)) + return; + + session->priv->displays = g_list_append(session->priv->displays, display); + g_object_ref(display); + g_signal_emit_by_name(session, "session-display-added", display); } void virt_viewer_session_remove_display(VirtViewerSession *session, - VirtViewerDisplay *display) -{ - if (!g_list_find(session->priv->displays, display)) - return; - - session->priv->displays = g_list_remove(session->priv->displays, display); - g_signal_emit_by_name(session, "session-display-removed", display); - g_object_unref(display); + VirtViewerDisplay *display) +{ + if (!g_list_find(session->priv->displays, display)) + return; + + session->priv->displays = g_list_remove(session->priv->displays, display); + g_signal_emit_by_name(session, "session-display-removed", display); + g_object_unref(display); } void virt_viewer_session_clear_displays(VirtViewerSession *session) { - GList *tmp = session->priv->displays; - - while (tmp) { - g_signal_emit_by_name(session, "session-display-removed", tmp->data); - g_object_unref(tmp->data); - tmp = tmp->next; - } - g_list_free(session->priv->displays); - session->priv->displays = NULL; + GList *tmp = session->priv->displays; + + while (tmp) { + VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(tmp->data); + g_signal_emit_by_name(session, "session-display-removed", display); + virt_viewer_display_close(display); + g_object_unref(display); + tmp = tmp->next; + } + g_list_free(session->priv->displays); + session->priv->displays = NULL; } void virt_viewer_session_close(VirtViewerSession *session) { - g_return_if_fail(VIRT_VIEWER_IS_SESSION(session)); - - VIRT_VIEWER_SESSION_GET_CLASS(session)->close(session); + g_return_if_fail(VIRT_VIEWER_IS_SESSION(session)); + + VIRT_VIEWER_SESSION_GET_CLASS(session)->close(session); } gboolean virt_viewer_session_open_fd(VirtViewerSession *session, int fd) { - g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); - - return VIRT_VIEWER_SESSION_GET_CLASS(session)->open_fd(session, fd); -} - -gboolean virt_viewer_session_open_host(VirtViewerSession *session, char *host, char *port) -{ - VirtViewerSessionClass *klass; - - g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); - - klass = VIRT_VIEWER_SESSION_GET_CLASS(session); - return klass->open_host(session, host, port); + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); + + return VIRT_VIEWER_SESSION_GET_CLASS(session)->open_fd(session, fd); +} + +gboolean virt_viewer_session_open_host(VirtViewerSession *session, const gchar *host, const gchar *port, const gchar *tlsport) +{ + VirtViewerSessionClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(session); + return klass->open_host(session, host, port, tlsport); +} + +gboolean virt_viewer_session_open_uri(VirtViewerSession *session, const gchar *uri) +{ + VirtViewerSessionClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(session); + g_return_val_if_fail(klass->open_uri != NULL, FALSE); + + session->priv->uri = g_strdup(uri); + + return klass->open_uri(session, uri); } gboolean virt_viewer_session_channel_open_fd(VirtViewerSession *session, - VirtViewerSessionChannel *channel, int fd) -{ - g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); - - return VIRT_VIEWER_SESSION_GET_CLASS(session)->channel_open_fd(session, channel, fd); -} + VirtViewerSessionChannel *channel, int fd) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE); + + return VIRT_VIEWER_SESSION_GET_CLASS(session)->channel_open_fd(session, channel, fd); +} + +void virt_viewer_session_set_auto_usbredir(VirtViewerSession *self, gboolean auto_usbredir) +{ + g_return_if_fail(VIRT_VIEWER_IS_SESSION(self)); + + if (self->priv->auto_usbredir == auto_usbredir) + return; + + self->priv->auto_usbredir = auto_usbredir; + g_object_notify(G_OBJECT(self), "auto-usbredir"); +} + +gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE); + + return self->priv->auto_usbredir; +} + +gboolean virt_viewer_session_has_usb(VirtViewerSession *self) +{ + VirtViewerSessionClass *klass; + + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(self); + if (klass->has_usb == NULL) + return FALSE; + + return klass->has_usb(self); +} + +void virt_viewer_session_usb_device_selection(VirtViewerSession *self, + GtkWindow *parent) +{ + VirtViewerSessionClass *klass; + + g_return_if_fail(VIRT_VIEWER_IS_SESSION(self)); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(self); + g_return_if_fail(klass->usb_device_selection != NULL); + + klass->usb_device_selection(self, parent); +} + +void virt_viewer_session_smartcard_insert(VirtViewerSession *self) +{ + VirtViewerSessionClass *klass; + + g_return_if_fail(VIRT_VIEWER_IS_SESSION(self)); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(self); + if (klass->smartcard_insert == NULL) { + g_debug("No session smartcard support"); + return; + } + + klass->smartcard_insert(self); +} + +void virt_viewer_session_smartcard_remove(VirtViewerSession *self) +{ + VirtViewerSessionClass *klass; + + g_return_if_fail(VIRT_VIEWER_IS_SESSION(self)); + + klass = VIRT_VIEWER_SESSION_GET_CLASS(self); + if (klass->smartcard_remove == NULL) { + g_debug("No session smartcard support"); + return; + } + + klass->smartcard_remove(self); +} + +VirtViewerApp* virt_viewer_session_get_app(VirtViewerSession *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), NULL); + + return self->priv->app; +} + +gchar* virt_viewer_session_get_uri(VirtViewerSession *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE); + + return g_strdup(self->priv->uri); +} + /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-session.h b/src/virt-viewer-session.h index 48c8de3..38ed988 100644 --- a/src/virt-viewer-session.h +++ b/src/virt-viewer-session.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -26,29 +26,28 @@ #include +#include "virt-viewer-app.h" #include "virt-viewer-display.h" G_BEGIN_DECLS #define VIRT_VIEWER_TYPE_SESSION virt_viewer_session_get_type() -#define VIRT_VIEWER_SESSION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSession)) +#define VIRT_VIEWER_SESSION(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSession)) -#define VIRT_VIEWER_SESSION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass)) +#define VIRT_VIEWER_SESSION_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass)) #define VIRT_VIEWER_IS_SESSION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION)) + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION)) #define VIRT_VIEWER_IS_SESSION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION)) + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION)) -#define VIRT_VIEWER_SESSION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass)) +#define VIRT_VIEWER_SESSION_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass)) -typedef struct _VirtViewerSession VirtViewerSession; -typedef struct _VirtViewerSessionClass VirtViewerSessionClass; typedef struct _VirtViewerSessionPrivate VirtViewerSessionPrivate; typedef struct _VirtViewerSessionChannel VirtViewerSessionChannel; @@ -56,36 +55,44 @@ /* perhaps this become an interface, and be pushed in gtkvnc and spice? */ struct _VirtViewerSession { - GObject parent; + GObject parent; - VirtViewerSessionPrivate *priv; + VirtViewerSessionPrivate *priv; }; struct _VirtViewerSessionClass { - GObjectClass parent_class; + GObjectClass parent_class; - /* virtual methods */ - void (* close) (VirtViewerSession* session); - gboolean (* open_fd) (VirtViewerSession* session, int fd); - gboolean (* open_host) (VirtViewerSession* session, char *host, char *port); - gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd); + /* virtual methods */ + void (* close) (VirtViewerSession* session); + gboolean (* open_fd) (VirtViewerSession* session, int fd); + gboolean (* open_host) (VirtViewerSession* session, const gchar *host, const gchar *port, const gchar *tlsport); + gboolean (* open_uri) (VirtViewerSession* session, const gchar *uri); + gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd); + gboolean (* has_usb) (VirtViewerSession* session); + void (* usb_device_selection) (VirtViewerSession* session, GtkWindow *parent); + void (* smartcard_insert) (VirtViewerSession* session); + void (* smartcard_remove) (VirtViewerSession* session); - /* signals */ - void (*session_connected)(VirtViewerSession *session); - void (*session_initialized)(VirtViewerSession *session); - void (*session_disconnected)(VirtViewerSession *session); - void (*session_auth_refused)(VirtViewerSession *session, const char *msg); - void (*session_auth_failed)(VirtViewerSession *session, const char *msg); + /* signals */ + void (*session_connected)(VirtViewerSession *session); + void (*session_initialized)(VirtViewerSession *session); + void (*session_disconnected)(VirtViewerSession *session); + void (*session_auth_refused)(VirtViewerSession *session, const gchar *msg); + void (*session_auth_failed)(VirtViewerSession *session, const gchar *msg); + void (*session_usb_failed)(VirtViewerSession *session, const gchar *msg); - void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel); + void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel); - void (*session_display_added)(VirtViewerSession *session, - VirtViewerDisplay *display); - void (*session_display_removed)(VirtViewerSession *session, - VirtViewerDisplay *display); + void (*session_display_added)(VirtViewerSession *session, + VirtViewerDisplay *display); + void (*session_display_removed)(VirtViewerSession *session, + VirtViewerDisplay *display); + void (*session_display_updated)(VirtViewerSession *session); - void (*session_cut_text)(VirtViewerSession *session, const char *str); - void (*session_bell)(VirtViewerSession *session); + void (*session_cut_text)(VirtViewerSession *session, const gchar *str); + void (*session_bell)(VirtViewerSession *session); + void (*session_cancelled)(VirtViewerSession *session); }; GType virt_viewer_session_get_type(void); @@ -93,25 +100,37 @@ GtkWidget *virt_viewer_session_new(void); void virt_viewer_session_add_display(VirtViewerSession *session, - VirtViewerDisplay *display); + VirtViewerDisplay *display); void virt_viewer_session_remove_display(VirtViewerSession *session, - VirtViewerDisplay *display); + VirtViewerDisplay *display); void virt_viewer_session_clear_displays(VirtViewerSession *session); void virt_viewer_session_close(VirtViewerSession* session); gboolean virt_viewer_session_open_fd(VirtViewerSession* session, int fd); -gboolean virt_viewer_session_open_host(VirtViewerSession* session, char *host, char *port); +gboolean virt_viewer_session_open_host(VirtViewerSession* session, const gchar *host, const gchar *port, const gchar *tlsport); GObject* virt_viewer_session_get(VirtViewerSession* session); gboolean virt_viewer_session_channel_open_fd(VirtViewerSession* session, - VirtViewerSessionChannel* channel, int fd); + VirtViewerSessionChannel* channel, int fd); +gboolean virt_viewer_session_open_uri(VirtViewerSession *session, const gchar *uri); + +void virt_viewer_session_set_auto_usbredir(VirtViewerSession* session, gboolean auto_usbredir); +gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession* session); + +gboolean virt_viewer_session_has_usb(VirtViewerSession *self); +void virt_viewer_session_usb_device_selection(VirtViewerSession *self, GtkWindow *parent); +void virt_viewer_session_smartcard_insert(VirtViewerSession *self); +void virt_viewer_session_smartcard_remove(VirtViewerSession *self); +VirtViewerApp* virt_viewer_session_get_app(VirtViewerSession *self); +gchar* virt_viewer_session_get_uri(VirtViewerSession *self); G_END_DECLS #endif /* _VIRT_VIEWER_SESSION_H */ + /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c index 4be50d7..9a163fa 100644 --- a/src/virt-viewer-util.c +++ b/src/virt-viewer-util.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * * 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 @@ -34,24 +34,42 @@ GtkBuilder *virt_viewer_util_load_ui(const char *name) { - struct stat sb; - GtkBuilder *builder; - GError *error = NULL; - - builder = gtk_builder_new(); - if (stat(name, &sb) >= 0) { - gtk_builder_add_from_file(builder, name, &error); - } else { - gchar *path = g_strdup_printf("%s/%s", BUILDER_XML_DIR, name); - gtk_builder_add_from_file(builder, path, &error); - g_free(path); - } - - if (error) - g_error("Cannot load UI description %s: %s", name, - error->message); - - return builder; + struct stat sb; + GtkBuilder *builder; + GError *error = NULL; + + builder = gtk_builder_new(); + if (stat(name, &sb) >= 0) { + gtk_builder_add_from_file(builder, name, &error); + } else { + const gchar * const * dirs = g_get_system_data_dirs(); + g_return_val_if_fail(dirs != NULL, NULL); + + while (dirs[0] != NULL) { + gchar *path = g_build_filename(dirs[0], PACKAGE, "ui", name, NULL); + if (gtk_builder_add_from_file(builder, path, NULL) != 0) { + g_free(path); + break; + } + g_free(path); + dirs++; + } + if (dirs[0] == NULL) + goto failed; + } + + if (error) { + g_error("Cannot load UI description %s: %s", name, + error->message); + g_clear_error(&error); + goto failed; + } + + return builder; + failed: + g_error("failed to find UI description file"); + g_object_unref(builder); + return NULL; } int @@ -62,55 +80,183 @@ char **user, int *port) { - xmlURIPtr uri; - char *offset; - - if (uristr == NULL || - !g_strcasecmp(uristr, "xen")) - uristr = "xen:///"; - - uri = xmlParseURI(uristr); - if (host) { - if (!uri || !uri->server) - *host = g_strdup("localhost"); - else - *host = g_strdup(uri->server); + xmlURIPtr uri; + char *offset = NULL; + + if (uristr == NULL || + !g_ascii_strcasecmp(uristr, "xen")) + uristr = "xen:///"; + + uri = xmlParseURI(uristr); + g_return_val_if_fail(uri != NULL, 1); + + if (host) { + if (!uri || !uri->server) { + *host = g_strdup("localhost"); + } else { + if (uri->server[0] == '[') { + gchar *tmp; + *host = g_strdup(uri->server + 1); + if ((tmp = strchr(*host, ']'))) + *tmp = '\0'; + } else { + *host = g_strdup(uri->server); + } } - - if (user) { - if (uri->user) - *user = g_strdup(uri->user); - else - *user = NULL; - } - - if (port) - *port = uri->port; - - offset = strchr(uri->scheme, '+'); - - if (transport) { - if (offset) - *transport = g_strdup(offset+1); - else - *transport = NULL; - } - - if (scheme) { - if (offset) - *scheme = g_strndup(uri->scheme, offset - uri->scheme); - else - *scheme = g_strdup(uri->scheme); - } - - xmlFreeURI(uri); - return 0; -} + } + + if (user) { + if (uri->user) + *user = g_strdup(uri->user); + else + *user = NULL; + } + + if (port) + *port = uri->port; + + if (uri->scheme) + offset = strchr(uri->scheme, '+'); + + if (transport) { + if (offset) + *transport = g_strdup(offset + 1); + else + *transport = NULL; + } + + if (scheme && uri->scheme) { + if (offset) + *scheme = g_strndup(uri->scheme, offset - uri->scheme); + else + *scheme = g_strdup(uri->scheme); + } + + xmlFreeURI(uri); + return 0; +} + +typedef struct { + GObject *instance; + GObject *observer; + GClosure *closure; + gulong handler_id; +} WeakHandlerCtx; + +static WeakHandlerCtx * +whc_new(GObject *instance, + GObject *observer) +{ + WeakHandlerCtx *ctx = g_slice_new0(WeakHandlerCtx); + + ctx->instance = instance; + ctx->observer = observer; + + return ctx; +} + +static void +whc_free(WeakHandlerCtx *ctx) +{ + g_slice_free(WeakHandlerCtx, ctx); +} + +static void observer_destroyed_cb(gpointer, GObject *); +static void closure_invalidated_cb(gpointer, GClosure *); + +/* + * If signal handlers are removed before the object is destroyed, this + * callback will never get triggered. + */ +static void +instance_destroyed_cb(gpointer ctx_, + GObject *where_the_instance_was G_GNUC_UNUSED) +{ + WeakHandlerCtx *ctx = ctx_; + + /* No need to disconnect the signal here, the instance has gone away. */ + g_object_weak_unref(ctx->observer, observer_destroyed_cb, ctx); + g_closure_remove_invalidate_notifier(ctx->closure, ctx, + closure_invalidated_cb); + whc_free(ctx); +} + +/* Triggered when the observer is destroyed. */ +static void +observer_destroyed_cb(gpointer ctx_, + GObject *where_the_observer_was G_GNUC_UNUSED) +{ + WeakHandlerCtx *ctx = ctx_; + + g_closure_remove_invalidate_notifier(ctx->closure, ctx, + closure_invalidated_cb); + g_signal_handler_disconnect(ctx->instance, ctx->handler_id); + g_object_weak_unref(ctx->instance, instance_destroyed_cb, ctx); + whc_free(ctx); +} + +/* Triggered when either object is destroyed or the handler is disconnected. */ +static void +closure_invalidated_cb(gpointer ctx_, + GClosure *where_the_closure_was G_GNUC_UNUSED) +{ + WeakHandlerCtx *ctx = ctx_; + + g_object_weak_unref(ctx->instance, instance_destroyed_cb, ctx); + g_object_weak_unref(ctx->observer, observer_destroyed_cb, ctx); + whc_free(ctx); +} + +/* Copied from tp_g_signal_connect_object. */ +/** + * virt_viewer_signal_connect_object: (skip) + * @instance: the instance to connect to. + * @detailed_signal: a string of the form "signal-name::detail". + * @c_handler: the #GCallback to connect. + * @gobject: the object to pass as data to @c_handler. + * @connect_flags: a combination of #GConnectFlags. + * + * Similar to g_signal_connect_object() but will delete connection + * when any of the objects is destroyed. + * + * Returns: the handler id. + */ +gulong virt_viewer_signal_connect_object(gpointer instance, + const gchar *detailed_signal, + GCallback c_handler, + gpointer gobject, + GConnectFlags connect_flags) +{ + GObject *instance_obj = G_OBJECT(instance); + WeakHandlerCtx *ctx = whc_new(instance_obj, gobject); + + g_return_val_if_fail(G_TYPE_CHECK_INSTANCE (instance), 0); + g_return_val_if_fail(detailed_signal != NULL, 0); + g_return_val_if_fail(c_handler != NULL, 0); + g_return_val_if_fail(G_IS_OBJECT (gobject), 0); + g_return_val_if_fail((connect_flags & ~(G_CONNECT_AFTER|G_CONNECT_SWAPPED)) == 0, 0); + + if (connect_flags & G_CONNECT_SWAPPED) + ctx->closure = g_cclosure_new_object_swap(c_handler, gobject); + else + ctx->closure = g_cclosure_new_object(c_handler, gobject); + + ctx->handler_id = g_signal_connect_closure(instance, detailed_signal, + ctx->closure, (connect_flags & G_CONNECT_AFTER) ? TRUE : FALSE); + + g_object_weak_ref(instance_obj, instance_destroyed_cb, ctx); + g_object_weak_ref(gobject, observer_destroyed_cb, ctx); + g_closure_add_invalidate_notifier(ctx->closure, ctx, + closure_invalidated_cb); + + return ctx->handler_id; +} + /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-util.h b/src/virt-viewer-util.h index 034ab8f..38c8078 100644 --- a/src/virt-viewer-util.h +++ b/src/virt-viewer-util.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * * 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 @@ -40,4 +40,18 @@ char **user, int *port); +gulong virt_viewer_signal_connect_object(gpointer instance, + const gchar *detailed_signal, + GCallback c_handler, + gpointer gobject, + GConnectFlags connect_flags); + #endif + +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index f80947e..7c6e41f 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -35,7 +35,9 @@ #include #include +#include "virt-gtk-compat.h" #include "virt-viewer-window.h" +#include "virt-viewer-session.h" #include "virt-viewer-app.h" #include "virt-viewer-util.h" #include "view/autoDrawer.h" @@ -51,321 +53,347 @@ void virt_viewer_window_menu_view_resize(GtkWidget *menu, VirtViewerWindow *self); void virt_viewer_window_menu_send(GtkWidget *menu, VirtViewerWindow *self); void virt_viewer_window_menu_file_screenshot(GtkWidget *menu, VirtViewerWindow *self); +void virt_viewer_window_menu_file_usb_device_selection(GtkWidget *menu, VirtViewerWindow *self); +void virt_viewer_window_menu_file_smartcard_insert(GtkWidget *menu, VirtViewerWindow *self); +void virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu, VirtViewerWindow *self); +void virt_viewer_window_menu_view_release_cursor(GtkWidget *menu, VirtViewerWindow *self); /* Internal methods */ static void virt_viewer_window_enable_modifiers(VirtViewerWindow *self); static void virt_viewer_window_disable_modifiers(VirtViewerWindow *self); static void virt_viewer_window_resize(VirtViewerWindow *self); static void virt_viewer_window_toolbar_setup(VirtViewerWindow *self); +static GtkMenu* virt_viewer_window_get_keycombo_menu(VirtViewerWindow *self); G_DEFINE_TYPE (VirtViewerWindow, virt_viewer_window, G_TYPE_OBJECT) -#define GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate)) +#define GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate)) enum { - PROP_0, - PROP_WINDOW, - PROP_DISPLAY, - PROP_SUBTITLE, - PROP_CONTAINER, - PROP_APP, + PROP_0, + PROP_WINDOW, + PROP_DISPLAY, + PROP_SUBTITLE, + PROP_CONTAINER, + PROP_APP, }; -enum menuNums { - FILE_MENU, - VIEW_MENU, - SEND_KEY_MENU, - HELP_MENU, - LAST_MENU // sentinel +struct _VirtViewerWindowPrivate { + VirtViewerApp *app; + GtkContainer *container; /* if any, then there is no window */ + + GtkBuilder *builder; + GtkWidget *window; + GtkWidget *layout; + GtkWidget *toolbar; + GtkWidget *toolbar_usb_device_selection; + GtkWidget *toolbar_send_key; + GtkAccelGroup *accel_group; + VirtViewerNotebook *notebook; + VirtViewerDisplay *display; + + gboolean accel_enabled; + GValue accel_setting; + GSList *accel_list; + gboolean enable_mnemonics_save; + gboolean grabbed; + gboolean before_saved; + GdkRectangle before_fullscreen; + gboolean desktop_resize_pending; + + gint zoomlevel; + gboolean auto_resize; + gboolean fullscreen; + gchar *subtitle; }; -struct _VirtViewerWindowPrivate { - VirtViewerApp *app; - GtkContainer *container; /* if any, then there is no window */ - - GtkBuilder *builder; - GtkWidget *window; - GtkWidget *layout; - GtkWidget *toolbar; - VirtViewerNotebook *notebook; - VirtViewerDisplay *display; - - gboolean accel_enabled; - GValue accel_setting; - GSList *accel_list; - int accel_menu_sig[LAST_MENU]; - gboolean grabbed; - gboolean before_saved; - GdkRectangle before_fullscreen; - - gint zoomlevel; - gboolean auto_resize; - gboolean fullscreen; - gchar *subtitle; -}; - +static void +virt_viewer_window_get_property (GObject *object, guint property_id, + GValue *value, GParamSpec *pspec) +{ + VirtViewerWindow *self = VIRT_VIEWER_WINDOW(object); + VirtViewerWindowPrivate *priv = self->priv; + + switch (property_id) { + case PROP_SUBTITLE: + g_value_set_string(value, priv->subtitle); + break; + + case PROP_WINDOW: + g_value_set_object(value, priv->window); + break; + + case PROP_DISPLAY: + g_value_set_object(value, virt_viewer_window_get_display(self)); + break; + + case PROP_CONTAINER: + g_value_set_object(value, priv->container); + break; + + case PROP_APP: + g_value_set_object(value, priv->app); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +virt_viewer_window_set_property (GObject *object, guint property_id, + const GValue *value, GParamSpec *pspec) +{ + VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv; + + switch (property_id) { + case PROP_SUBTITLE: + g_free(priv->subtitle); + priv->subtitle = g_value_dup_string(value); + virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(object)); + break; + + case PROP_CONTAINER: + g_return_if_fail(priv->container == NULL); + priv->container = g_value_dup_object(value); + break; + + case PROP_APP: + g_return_if_fail(priv->app == NULL); + priv->app = g_value_get_object(value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +virt_viewer_window_dispose (GObject *object) +{ + VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv; + GSList *it; + + G_OBJECT_CLASS (virt_viewer_window_parent_class)->dispose (object); + + if (priv->display) { + g_object_unref(priv->display); + priv->display = NULL; + } + + DEBUG_LOG("Disposing window %p\n", object); + + if (priv->window) { + gtk_widget_destroy(priv->window); + priv->window = NULL; + } + if (priv->builder) { + g_object_unref(priv->builder); + priv->builder = NULL; + } + + for (it = priv->accel_list ; it != NULL ; it = it->next) { + g_object_unref(G_OBJECT(it->data)); + } + g_slist_free(priv->accel_list); + priv->accel_list = NULL; + + g_free(priv->subtitle); + priv->subtitle = NULL; + + g_value_unset(&priv->accel_setting); +} + +static void +virt_viewer_window_class_init (VirtViewerWindowClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate)); + + object_class->get_property = virt_viewer_window_get_property; + object_class->set_property = virt_viewer_window_set_property; + object_class->dispose = virt_viewer_window_dispose; + + g_object_class_install_property(object_class, + PROP_SUBTITLE, + g_param_spec_string("subtitle", + "Subtitle", + "Window subtitle", + "", + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_WINDOW, + g_param_spec_object("window", + "Window", + "GtkWindow", + GTK_TYPE_WIDGET, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_DISPLAY, + g_param_spec_object("display", + "Display", + "VirtDisplay", + VIRT_VIEWER_TYPE_DISPLAY, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_CONTAINER, + g_param_spec_object("container", + "Container", + "Container widget", + VIRT_VIEWER_TYPE_DISPLAY, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property(object_class, + PROP_APP, + g_param_spec_object("app", + "App", + "VirtViewerApp", + VIRT_VIEWER_TYPE_APP, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); +} + +static gboolean +can_activate_cb (GtkWidget *widget G_GNUC_UNUSED, + guint signal_id G_GNUC_UNUSED, + VirtViewerWindow *self G_GNUC_UNUSED) +{ + return TRUE; +} + +static void +virt_viewer_window_init (VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv; + GtkWidget *vbox; + GtkWidget *menu; + GdkColor color; + GSList *accels; + + self->priv = GET_PRIVATE(self); + priv = self->priv; + + priv->auto_resize = TRUE; + g_value_init(&priv->accel_setting, G_TYPE_STRING); + + priv->notebook = virt_viewer_notebook_new(); + priv->builder = virt_viewer_util_load_ui("virt-viewer.xml"); + + menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize")); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), FALSE); + + gtk_builder_connect_signals(priv->builder, self); + + priv->accel_group = GTK_ACCEL_GROUP(gtk_builder_get_object(priv->builder, "accelgroup")); + + /* make sure they can be activated even if the menu item is not visible */ + g_signal_connect(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"), + "can-activate-accel", G_CALLBACK(can_activate_cb), self); + g_signal_connect(gtk_builder_get_object(priv->builder, "menu-file-smartcard-insert"), + "can-activate-accel", G_CALLBACK(can_activate_cb), self); + g_signal_connect(gtk_builder_get_object(priv->builder, "menu-file-smartcard-remove"), + "can-activate-accel", G_CALLBACK(can_activate_cb), self); + g_signal_connect(gtk_builder_get_object(priv->builder, "menu-view-release-cursor"), + "can-activate-accel", G_CALLBACK(can_activate_cb), self); + + vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box")); + virt_viewer_window_toolbar_setup(self); + + gtk_box_pack_end(GTK_BOX(vbox), priv->layout, TRUE, TRUE, 0); + gdk_color_parse("black", &color); + gtk_widget_modify_bg(priv->layout, GTK_STATE_NORMAL, &color); + + priv->window = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer")); + gtk_window_add_accel_group(GTK_WINDOW(priv->window), priv->accel_group); + + virt_viewer_window_update_title(self); + gtk_window_set_resizable(GTK_WINDOW(priv->window), TRUE); #if GTK_CHECK_VERSION(3, 0, 0) -#define GDK_Control_L GDK_KEY_Control_L -#define GDK_Alt_L GDK_KEY_Alt_L -#define GDK_Delete GDK_KEY_Delete -#define GDK_BackSpace GDK_KEY_BackSpace -#define GDK_Print GDK_KEY_Print -#define GDK_F1 GDK_KEY_F1 -#define GDK_F2 GDK_KEY_F2 -#define GDK_F3 GDK_KEY_F3 -#define GDK_F4 GDK_KEY_F4 -#define GDK_F5 GDK_KEY_F5 -#define GDK_F6 GDK_KEY_F6 -#define GDK_F7 GDK_KEY_F7 -#define GDK_F8 GDK_KEY_F8 -#define GDK_F9 GDK_KEY_F9 -#define GDK_F10 GDK_KEY_F10 -#define GDK_F11 GDK_KEY_F11 -#define GDK_F12 GDK_KEY_F12 + gtk_window_set_has_resize_grip(GTK_WINDOW(priv->window), FALSE); #endif - -static void -virt_viewer_window_get_property (GObject *object, guint property_id, - GValue *value, GParamSpec *pspec) -{ - VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv; - - switch (property_id) { - case PROP_SUBTITLE: - g_value_set_string(value, priv->subtitle); - break; - - case PROP_WINDOW: - g_value_set_object(value, priv->window); - break; - - case PROP_DISPLAY: - g_value_set_object(value, priv->display); - break; - - case PROP_CONTAINER: - g_value_set_object(value, priv->container); - break; - - case PROP_APP: - g_value_set_object(value, priv->app); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -virt_viewer_window_set_property (GObject *object, guint property_id, - const GValue *value, GParamSpec *pspec) -{ - VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv; - - switch (property_id) { - case PROP_SUBTITLE: - g_free(priv->subtitle); - priv->subtitle = g_value_dup_string(value); - break; - - case PROP_CONTAINER: - g_return_if_fail(priv->container == NULL); - priv->container = g_value_dup_object(value); - break; - - case PROP_APP: - g_return_if_fail(priv->app == NULL); - priv->app = g_value_dup_object(value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -virt_viewer_window_dispose (GObject *object) -{ - VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv; - G_OBJECT_CLASS (virt_viewer_window_parent_class)->dispose (object); - - if (priv->display) { - g_object_unref(priv->display); - priv->display = NULL; - } - - if (priv->app) { - g_object_unref(priv->app); - priv->app = NULL; - } - - g_free(priv->subtitle); - priv->subtitle = NULL; -} - -static void -virt_viewer_window_class_init (VirtViewerWindowClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate)); - - object_class->get_property = virt_viewer_window_get_property; - object_class->set_property = virt_viewer_window_set_property; - object_class->dispose = virt_viewer_window_dispose; - - g_object_class_install_property(object_class, - PROP_SUBTITLE, - g_param_spec_string("subtitle", - "Subtitle", - "Window subtitle", - "", - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_WINDOW, - g_param_spec_object("window", - "Window", - "GtkWindow", - GTK_TYPE_WIDGET, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_DISPLAY, - g_param_spec_object("display", - "Display", - "VirtDisplay", - VIRT_VIEWER_TYPE_DISPLAY, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_CONTAINER, - g_param_spec_object("container", - "Container", - "Container widget", - VIRT_VIEWER_TYPE_DISPLAY, - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property(object_class, - PROP_APP, - g_param_spec_object("app", - "App", - "VirtViewerApp", - VIRT_VIEWER_TYPE_APP, - G_PARAM_READABLE | - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); -} - -static void -virt_viewer_window_init (VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv; - GtkWidget *vbox; - GtkWidget *menu; - GdkColor color; - GSList *accels; - - self->priv = GET_PRIVATE(self); - priv = self->priv; - - priv->auto_resize = TRUE; - g_value_init(&priv->accel_setting, G_TYPE_STRING); - - priv->notebook = virt_viewer_notebook_new(); - priv->builder = virt_viewer_util_load_ui("virt-viewer.xml"); - - menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize")); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE); - - gtk_builder_connect_signals(priv->builder, self); - - vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box")); - virt_viewer_window_toolbar_setup(self); - - gtk_box_pack_end(GTK_BOX(vbox), priv->layout, TRUE, TRUE, 0); - gdk_color_parse("black", &color); - gtk_widget_modify_bg(priv->layout, GTK_STATE_NORMAL, &color); - - priv->window = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer")); - - virt_viewer_window_update_title(self); - gtk_window_set_resizable(GTK_WINDOW(priv->window), TRUE); -#if GTK_CHECK_VERSION(3, 0, 0) - gtk_window_set_has_resize_grip(GTK_WINDOW(priv->window), FALSE); -#endif - priv->accel_enabled = TRUE; - - accels = gtk_accel_groups_from_object(G_OBJECT(priv->window)); - for ( ; accels ; accels = accels->next) { - priv->accel_list = g_slist_append(priv->accel_list, accels->data); - g_object_ref(G_OBJECT(accels->data)); - } + priv->accel_enabled = TRUE; + + accels = gtk_accel_groups_from_object(G_OBJECT(priv->window)); + for ( ; accels ; accels = accels->next) { + priv->accel_list = g_slist_append(priv->accel_list, accels->data); + g_object_ref(G_OBJECT(accels->data)); + } + + priv->zoomlevel = 100; } static void virt_viewer_window_desktop_resize(VirtViewerDisplay *display G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - if (priv->auto_resize && priv->window && !priv->fullscreen) - virt_viewer_window_resize(self); -} - - -void + VirtViewerWindow *self) +{ + if (!gtk_widget_get_visible(self->priv->window)) { + self->priv->desktop_resize_pending = TRUE; + return; + } + virt_viewer_window_resize(self); +} + + +G_MODULE_EXPORT void virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - - if (priv->zoomlevel > 10) - priv->zoomlevel -= 10; - - if (!priv->display) - return; - - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - if (priv->display) - virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); -} - -void + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + + if (priv->zoomlevel > 10) + priv->zoomlevel -= 10; + + if (!priv->display) + return; + + gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); + if (priv->display) + virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); +} + +G_MODULE_EXPORT void virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - - if (priv->zoomlevel < 400) - priv->zoomlevel += 10; - - if (!priv->display) - return; - - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - if (priv->display) - virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); -} - -void + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + + if (priv->zoomlevel < 400) + priv->zoomlevel += 10; + + if (!priv->display) + return; + + gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); + if (priv->display) + virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); +} + +G_MODULE_EXPORT void virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - priv->zoomlevel = 100; - - if (priv->display) - virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); + priv->zoomlevel = 100; + + if (priv->display) + virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); } /* @@ -377,523 +405,735 @@ static void virt_viewer_window_resize(VirtViewerWindow *self) { - GdkRectangle fullscreen; - GdkScreen *screen; - int width, height; - double desktopAspect; - double screenAspect; - guint desktopWidth; - guint desktopHeight; - VirtViewerWindowPrivate *priv = self->priv; - - DEBUG_LOG("Preparing main window resize"); - if (!priv->display) { - DEBUG_LOG("Skipping inactive resize"); - return; - } - - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - - virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display), - &desktopWidth, &desktopHeight); - - screen = gtk_widget_get_screen(priv->window); - gdk_screen_get_monitor_geometry(screen, - gdk_screen_get_monitor_at_window - (screen, gtk_widget_get_window(priv->window)), - &fullscreen); - - desktopAspect = (double)desktopWidth / (double)desktopHeight; - screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128); - - if ((desktopWidth > (fullscreen.width - 128)) || - (desktopHeight > (fullscreen.height - 128))) { - /* Doesn't fit native res, so go as large as possible - maintaining aspect ratio */ - if (screenAspect > desktopAspect) { - width = desktopHeight * desktopAspect; - height = desktopHeight; - } else { - width = desktopWidth; - height = desktopWidth / desktopAspect; - } - } else { - width = desktopWidth; - height = desktopHeight; - } - - DEBUG_LOG("Decided todo %dx%d (desktop is %dx%d, fullscreen is %dx%d", - width, height, desktopWidth, desktopHeight, - fullscreen.width, fullscreen.height); - - virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(priv->display), - width, height); + GdkRectangle fullscreen; + GdkScreen *screen; + int width, height; + double desktopAspect; + double screenAspect; + guint desktopWidth; + guint desktopHeight; + VirtViewerWindowPrivate *priv = self->priv; + + if (!priv->auto_resize || priv->fullscreen) + return; + + DEBUG_LOG("Preparing main window resize"); + if (!priv->display) { + DEBUG_LOG("Skipping inactive resize"); + return; + } + + gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); + + virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display), + &desktopWidth, &desktopHeight); + + screen = gtk_widget_get_screen(priv->window); + gdk_screen_get_monitor_geometry(screen, + gdk_screen_get_monitor_at_window + (screen, gtk_widget_get_window(priv->window)), + &fullscreen); + + g_return_if_fail(fullscreen.height > 128); + g_return_if_fail(fullscreen.width > 128); + g_return_if_fail(desktopWidth > 0); + g_return_if_fail(desktopHeight > 0); + + desktopAspect = (double)desktopWidth / (double)desktopHeight; + screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128); + + if ((desktopWidth > (fullscreen.width - 128)) || + (desktopHeight > (fullscreen.height - 128))) { + /* Doesn't fit native res, so go as large as possible + maintaining aspect ratio */ + if (screenAspect > desktopAspect) { + width = desktopHeight * desktopAspect; + height = desktopHeight; + } else { + width = desktopWidth; + height = desktopWidth / desktopAspect; + } + } else { + width = desktopWidth; + height = desktopHeight; + } + + DEBUG_LOG("Decided todo %dx%d (desktop is %dx%d, fullscreen is %dx%d", + width, height, desktopWidth, desktopHeight, + fullscreen.width, fullscreen.height); + + virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(priv->display), + width, height); } void virt_viewer_window_leave_fullscreen(VirtViewerWindow *self) { - VirtViewerWindowPrivate *priv = self->priv; - GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu")); - GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen")); - - if (!priv->fullscreen) - return; - - gtk_check_menu_item_set_active(check, FALSE); - priv->fullscreen = FALSE; - ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE); - gtk_widget_show(menu); - gtk_widget_hide(priv->toolbar); - gtk_window_unfullscreen(GTK_WINDOW(priv->window)); - - if (priv->before_saved) { - gtk_window_move(GTK_WINDOW(priv->window), - priv->before_fullscreen.x, - priv->before_fullscreen.y); - gtk_window_resize(GTK_WINDOW(priv->window), - priv->before_fullscreen.width, - priv->before_fullscreen.height); - priv->before_saved = FALSE; - } + VirtViewerWindowPrivate *priv = self->priv; + GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu")); + GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen")); + + if (!priv->fullscreen) + return; + + gtk_check_menu_item_set_active(check, FALSE); + priv->fullscreen = FALSE; + ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE); + gtk_widget_show(menu); + gtk_widget_hide(priv->toolbar); +#ifdef G_OS_WIN32 + gtk_widget_set_size_request(GTK_WIDGET(priv->window), -1, -1); +#endif + gtk_window_unfullscreen(GTK_WINDOW(priv->window)); + + if (priv->before_saved) { + gtk_window_move(GTK_WINDOW(priv->window), + priv->before_fullscreen.x, + priv->before_fullscreen.y); + gtk_window_resize(GTK_WINDOW(priv->window), + priv->before_fullscreen.width, + priv->before_fullscreen.height); + priv->before_saved = FALSE; + } } void virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y) { - VirtViewerWindowPrivate *priv = self->priv; - GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu")); - GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen")); - - if (!priv->before_saved) { - gtk_window_get_position(GTK_WINDOW(priv->window), - &priv->before_fullscreen.x, - &priv->before_fullscreen.y); - gtk_window_get_size(GTK_WINDOW(priv->window), - &priv->before_fullscreen.width, - &priv->before_fullscreen.height); - priv->before_saved = TRUE; - } - - if (!priv->fullscreen) { - gtk_check_menu_item_set_active(check, TRUE); - priv->fullscreen = TRUE; - gtk_widget_hide(menu); - gtk_widget_show(priv->toolbar); - ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE); - ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout)); - } - - if (move) - gtk_window_move(GTK_WINDOW(priv->window), x, y); - - gtk_window_fullscreen(GTK_WINDOW(priv->window)); + VirtViewerWindowPrivate *priv = self->priv; + GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu")); + GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen")); + + if (!priv->before_saved) { + gtk_window_get_position(GTK_WINDOW(priv->window), + &priv->before_fullscreen.x, + &priv->before_fullscreen.y); + gtk_window_get_size(GTK_WINDOW(priv->window), + &priv->before_fullscreen.width, + &priv->before_fullscreen.height); + priv->before_saved = TRUE; + } + + if (priv->fullscreen) + return; + priv->fullscreen = TRUE; + + gtk_check_menu_item_set_active(check, TRUE); + gtk_widget_hide(menu); + gtk_widget_show(priv->toolbar); + ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE); + ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout)); + + /* g_debug("enter fullscreen move:%d %d+%d", move, x, y); */ + if (move) + gtk_window_move(GTK_WINDOW(priv->window), x, y); + + gtk_window_fullscreen(GTK_WINDOW(priv->window)); +#ifdef G_OS_WIN32 + /* on windows, fullscreen doesn't always hide the taskbar + See https://bugzilla.gnome.org/show_bug.cgi?id=652049 */ + gtk_widget_set_size_request(GTK_WIDGET(priv->window), + gdk_screen_width(), + gdk_screen_height()); +#endif } #define MAX_KEY_COMBO 3 -struct keyComboDef { - guint keys[MAX_KEY_COMBO]; - guint nkeys; - const char *label; +struct keyComboDef { + guint keys[MAX_KEY_COMBO]; + guint nkeys; + const char *label; }; static const struct keyComboDef keyCombos[] = { - { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"}, - { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"}, - { {}, 0, "" }, - { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F4 }, 3, "Ctrl+Alt+F_4"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_5"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_9"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F1_0"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F11"}, - { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F12"}, - { {}, 0, "" }, - { { GDK_Print }, 1, "_PrintScreen"}, + { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"}, + { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"}, + { {}, 0, "" }, + { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F4 }, 3, "Ctrl+Alt+F_4"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_5"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F9 }, 3, "Ctrl+Alt+F_9"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F10 }, 3, "Ctrl+Alt+F1_0"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F11 }, 3, "Ctrl+Alt+F11"}, + { { GDK_Control_L, GDK_Alt_L, GDK_F12 }, 3, "Ctrl+Alt+F12"}, + { {}, 0, "" }, + { { GDK_Print }, 1, "_PrintScreen"}, }; -void -virt_viewer_window_menu_send(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - int i; - GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu)); - const char *text = gtk_label_get_label(GTK_LABEL(label)); - VirtViewerWindowPrivate *priv = self->priv; - - for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) { - if (!strcmp(text, keyCombos[i].label)) { - DEBUG_LOG("Sending key combo %s", gtk_label_get_text(GTK_LABEL(label))); - virt_viewer_display_send_keys(VIRT_VIEWER_DISPLAY(priv->display), - keyCombos[i].keys, - keyCombos[i].nkeys); - return; - } - } - DEBUG_LOG("Failed to find key combo %s", gtk_label_get_text(GTK_LABEL(label))); -} - -static gboolean -virt_viewer_window_ignore_accel(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self G_GNUC_UNUSED) -{ - /* ignore accelerator */ - return TRUE; -} - -static const char * const menuNames[LAST_MENU] = { - "menu-file", "menu-view", "menu-send", "menu-help" -}; +G_MODULE_EXPORT void +virt_viewer_window_menu_send(GtkWidget *menu, + VirtViewerWindow *self) +{ + int i; + GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu)); + const char *text = gtk_label_get_label(GTK_LABEL(label)); + VirtViewerWindowPrivate *priv = self->priv; + + for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) { + if (!strcmp(text, keyCombos[i].label)) { + DEBUG_LOG("Sending key combo %s", gtk_label_get_text(GTK_LABEL(label))); + virt_viewer_display_send_keys(VIRT_VIEWER_DISPLAY(priv->display), + keyCombos[i].keys, + keyCombos[i].nkeys); + return; + } + } + DEBUG_LOG("Failed to find key combo %s", gtk_label_get_text(GTK_LABEL(label))); +} + +static GtkMenu* +virt_viewer_window_get_keycombo_menu(VirtViewerWindow *self) +{ + gint i; + GtkMenu *menu = GTK_MENU(gtk_menu_new()); + + for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) { + GtkWidget *item; + if (keyCombos[i].nkeys == 0) { + item = gtk_separator_menu_item_new (); + } else { + item = gtk_menu_item_new_with_mnemonic(keyCombos[i].label); + g_signal_connect(item, "activate", G_CALLBACK(virt_viewer_window_menu_send), self); + } + gtk_container_add(GTK_CONTAINER(menu), item); + } + + gtk_widget_show_all(GTK_WIDGET(menu)); + return g_object_ref_sink(menu); +} void virt_viewer_window_disable_modifiers(VirtViewerWindow *self) { - GtkSettings *settings = gtk_settings_get_default(); - VirtViewerWindowPrivate *priv = self->priv; - GValue empty; - GSList *accels; - int i; - - if (!priv->window) - return; - - if (!priv->accel_enabled) - return; - - /* This stops F10 activating menu bar */ - memset(&empty, 0, sizeof empty); - g_value_init(&empty, G_TYPE_STRING); - g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting); - g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty); - - /* This stops global accelerators like Ctrl+Q == Quit */ - for (accels = priv->accel_list ; accels ; accels = accels->next) { - gtk_window_remove_accel_group(GTK_WINDOW(priv->window), accels->data); - } - - /* This stops menu bar shortcuts like Alt+F == File */ - for (i = 0 ; i < LAST_MENU ; i++) { - GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i])); - priv->accel_menu_sig[i] = - g_signal_connect(menu, "mnemonic-activate", - G_CALLBACK(virt_viewer_window_ignore_accel), self); - } - - priv->accel_enabled = FALSE; + GtkSettings *settings = gtk_settings_get_default(); + VirtViewerWindowPrivate *priv = self->priv; + GValue empty; + GSList *accels; + + if (!priv->accel_enabled) + return; + + /* This stops F10 activating menu bar */ + memset(&empty, 0, sizeof empty); + g_value_init(&empty, G_TYPE_STRING); + g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting); + g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty); + + /* This stops global accelerators like Ctrl+Q == Quit */ + for (accels = priv->accel_list ; accels ; accels = accels->next) { + if (virt_viewer_app_get_enable_accel(priv->app) && + priv->accel_group == accels->data) + continue; + gtk_window_remove_accel_group(GTK_WINDOW(priv->window), accels->data); + } + + /* This stops menu bar shortcuts like Alt+F == File */ + g_object_get(settings, + "gtk-enable-mnemonics", &priv->enable_mnemonics_save, + NULL); + g_object_set(settings, + "gtk-enable-mnemonics", FALSE, + NULL); + + priv->accel_enabled = FALSE; } void virt_viewer_window_enable_modifiers(VirtViewerWindow *self) { - GtkSettings *settings = gtk_settings_get_default(); - VirtViewerWindowPrivate *priv = self->priv; - GSList *accels; - int i; - - if (!priv->window) - return; - - if (priv->accel_enabled) - return; - - /* This allows F10 activating menu bar */ - g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting); - - /* This allows global accelerators like Ctrl+Q == Quit */ - for (accels = priv->accel_list ; accels ; accels = accels->next) { - gtk_window_add_accel_group(GTK_WINDOW(priv->window), accels->data); - } - - /* This allows menu bar shortcuts like Alt+F == File */ - for (i = 0 ; i < LAST_MENU ; i++) { - GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i])); - g_signal_handler_disconnect(menu, priv->accel_menu_sig[i]); - } - - priv->accel_enabled = TRUE; -} - - -gboolean + GtkSettings *settings = gtk_settings_get_default(); + VirtViewerWindowPrivate *priv = self->priv; + GSList *accels; + + if (priv->accel_enabled) + return; + + /* This allows F10 activating menu bar */ + g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting); + + /* This allows global accelerators like Ctrl+Q == Quit */ + for (accels = priv->accel_list ; accels ; accels = accels->next) { + if (virt_viewer_app_get_enable_accel(priv->app) && + priv->accel_group == accels->data) + continue; + gtk_window_add_accel_group(GTK_WINDOW(priv->window), accels->data); + } + + /* This allows menu bar shortcuts like Alt+F == File */ + g_object_set(settings, + "gtk-enable-mnemonics", priv->enable_mnemonics_save, + NULL); + + priv->accel_enabled = TRUE; +} + + +G_MODULE_EXPORT gboolean virt_viewer_window_delete(GtkWidget *src G_GNUC_UNUSED, - void *dummy G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - virt_viewer_app_window_set_visible(self->priv->app, self, FALSE); - return TRUE; -} - - -void + void *dummy G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + DEBUG_LOG("Window closed"); + virt_viewer_app_window_set_visible(self->priv->app, self, FALSE); + return TRUE; +} + + +G_MODULE_EXPORT void virt_viewer_window_menu_file_quit(GtkWidget *src G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - virt_viewer_app_quit(self->priv->app); + VirtViewerWindow *self) +{ + virt_viewer_app_quit(self->priv->app); } static void virt_viewer_window_toolbar_leave_fullscreen(GtkWidget *button G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - g_object_set(self->priv->app, "fullscreen", FALSE, NULL); -} - - -void + VirtViewerWindow *self) +{ + g_object_set(self->priv->app, "fullscreen", FALSE, NULL); +} + +static void keycombo_menu_location(GtkMenu *menu G_GNUC_UNUSED, gint *x, gint *y, + gboolean *push_in, gpointer user_data) +{ + VirtViewerWindow *self = user_data; + GtkAllocation allocation; + + *push_in = TRUE; + gdk_window_get_origin(gtk_widget_get_window(self->priv->toolbar_send_key), x, y); + gtk_widget_translate_coordinates(self->priv->toolbar_send_key, gtk_widget_get_toplevel(self->priv->toolbar_send_key), + 0, 0, x, y); + gtk_widget_get_allocation(self->priv->toolbar_send_key, &allocation); + *y += allocation.height; +} + +static void +virt_viewer_window_toolbar_send_key(GtkWidget *button G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + GtkMenu *menu = virt_viewer_window_get_keycombo_menu(self); + gtk_menu_popup(menu, NULL, NULL, keycombo_menu_location, self, + 0, gtk_get_current_event_time()); + g_object_unref(menu); +} + + +G_MODULE_EXPORT void virt_viewer_window_menu_view_fullscreen(GtkWidget *menu, - VirtViewerWindow *self) -{ - gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu)); - - g_object_set(self->priv->app, "fullscreen", fullscreen, NULL); -} - -void + VirtViewerWindow *self) +{ + gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu)); + + g_object_set(self->priv->app, "fullscreen", fullscreen, NULL); +} + +G_MODULE_EXPORT void virt_viewer_window_menu_view_resize(GtkWidget *menu, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - - if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) { - priv->auto_resize = TRUE; - if (!priv->fullscreen) - virt_viewer_window_resize(self); - } else { - priv->auto_resize = FALSE; - } + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) { + priv->auto_resize = TRUE; + virt_viewer_window_resize(self); + } else { + priv->auto_resize = FALSE; + } + + virt_viewer_display_set_auto_resize(priv->display, priv->auto_resize); } static void virt_viewer_window_save_screenshot(VirtViewerWindow *self, - const char *file) -{ - VirtViewerWindowPrivate *priv = self->priv; - GdkPixbuf *pix = virt_viewer_display_get_pixbuf(VIRT_VIEWER_DISPLAY(priv->display)); - - gdk_pixbuf_save(pix, file, "png", NULL, - "tEXt::Generator App", PACKAGE, NULL); - gdk_pixbuf_unref(pix); -} - -void + const char *file) +{ + VirtViewerWindowPrivate *priv = self->priv; + GdkPixbuf *pix = virt_viewer_display_get_pixbuf(VIRT_VIEWER_DISPLAY(priv->display)); + + gdk_pixbuf_save(pix, file, "png", NULL, + "tEXt::Generator App", PACKAGE, NULL); + g_object_unref(pix); +} + +G_MODULE_EXPORT void virt_viewer_window_menu_file_screenshot(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - GtkWidget *dialog; - VirtViewerWindowPrivate *priv = self->priv; - - g_return_if_fail(priv->display != NULL); - - dialog = gtk_file_chooser_dialog_new ("Save screenshot", - NULL, - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, - NULL); - gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); - - //gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving); - //gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Screenshot"); - - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { - char *filename; - - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); - virt_viewer_window_save_screenshot(self, filename); - g_free (filename); - } - - gtk_widget_destroy (dialog); -} - -void + VirtViewerWindow *self) +{ + GtkWidget *dialog; + VirtViewerWindowPrivate *priv = self->priv; + + g_return_if_fail(priv->display != NULL); + + dialog = gtk_file_chooser_dialog_new("Save screenshot", + NULL, + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, + NULL); + gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (dialog), TRUE); + gtk_window_set_transient_for(GTK_WINDOW(dialog), + GTK_WINDOW(self->priv->window)); + + //gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving); + //gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Screenshot"); + + if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { + char *filename; + + filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog)); + virt_viewer_window_save_screenshot(self, filename); + g_free(filename); + } + + gtk_widget_destroy(dialog); +} + +G_MODULE_EXPORT void +virt_viewer_window_menu_file_usb_device_selection(GtkWidget *menu G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + virt_viewer_session_usb_device_selection(virt_viewer_app_get_session(self->priv->app), + GTK_WINDOW(self->priv->window)); +} + +G_MODULE_EXPORT void +virt_viewer_window_menu_file_smartcard_insert(GtkWidget *menu G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + virt_viewer_session_smartcard_insert(virt_viewer_app_get_session(self->priv->app)); +} + +G_MODULE_EXPORT void +virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + virt_viewer_session_smartcard_remove(virt_viewer_app_get_session(self->priv->app)); +} + +G_MODULE_EXPORT void +virt_viewer_window_menu_view_release_cursor(GtkWidget *menu G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + virt_viewer_display_release_cursor(VIRT_VIEWER_DISPLAY(self->priv->display)); +} + +G_MODULE_EXPORT void virt_viewer_window_menu_help_about(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - GtkBuilder *about = virt_viewer_util_load_ui("virt-viewer-about.xml"); - - GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(about, "about")); - gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION); - - gtk_builder_connect_signals(about, self); - - gtk_widget_show_all(dialog); - - g_object_unref(G_OBJECT(about)); + VirtViewerWindow *self) +{ + GtkBuilder *about = virt_viewer_util_load_ui("virt-viewer-about.xml"); + + GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(about, "about")); + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION); + + gtk_window_set_transient_for(GTK_WINDOW(dialog), + GTK_WINDOW(self->priv->window)); + + gtk_builder_connect_signals(about, self); + + gtk_widget_show_all(dialog); + + g_object_unref(G_OBJECT(about)); } static void virt_viewer_window_toolbar_setup(VirtViewerWindow *self) { - GtkWidget *button; - VirtViewerWindowPrivate *priv = self->priv; - - priv->toolbar = gtk_toolbar_new(); - gtk_toolbar_set_show_arrow(GTK_TOOLBAR(priv->toolbar), FALSE); - gtk_widget_set_no_show_all(priv->toolbar, TRUE); - gtk_toolbar_set_style(GTK_TOOLBAR(priv->toolbar), GTK_TOOLBAR_BOTH_HORIZ); - - /* Close connection */ - button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE)); - gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Disconnect")); - gtk_widget_show(GTK_WIDGET(button)); - gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM (button), 0); - g_signal_connect(button, "clicked", G_CALLBACK(gtk_main_quit), NULL); - - /* Leave fullscreen */ - button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN)); - gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("Leave fullscreen")); - gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Leave fullscreen")); - gtk_tool_item_set_is_important(GTK_TOOL_ITEM(button), TRUE); - gtk_widget_show(GTK_WIDGET(button)); - gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0); - g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_leave_fullscreen), self); - - priv->layout = ViewAutoDrawer_New(); - - ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE); - ViewOvBox_SetOver(VIEW_OV_BOX(priv->layout), priv->toolbar); - ViewOvBox_SetUnder(VIEW_OV_BOX(priv->layout), GTK_WIDGET(priv->notebook)); - ViewAutoDrawer_SetOffset(VIEW_AUTODRAWER(priv->layout), -1); - ViewAutoDrawer_SetFill(VIEW_AUTODRAWER(priv->layout), FALSE); - ViewAutoDrawer_SetOverlapPixels(VIEW_AUTODRAWER(priv->layout), 1); - ViewAutoDrawer_SetNoOverlapPixels(VIEW_AUTODRAWER(priv->layout), 0); - gtk_widget_show(priv->layout); + GtkWidget *button; + VirtViewerWindowPrivate *priv = self->priv; + + priv->toolbar = gtk_toolbar_new(); + gtk_toolbar_set_show_arrow(GTK_TOOLBAR(priv->toolbar), FALSE); + gtk_widget_set_no_show_all(priv->toolbar, TRUE); + gtk_toolbar_set_style(GTK_TOOLBAR(priv->toolbar), GTK_TOOLBAR_BOTH_HORIZ); + + /* Close connection */ + button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE)); + gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Disconnect")); + gtk_widget_show(GTK_WIDGET(button)); + gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM (button), 0); + g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_menu_file_quit), self); + + /* USB Device selection */ + button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_PREFERENCES)); + gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("USB device selection")); + gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("USB device selection")); + gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0); + g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_menu_file_usb_device_selection), self); + priv->toolbar_usb_device_selection = button; + + /* Send key */ + button = GTK_WIDGET(gtk_tool_button_new(NULL, NULL)); + gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(button), "preferences-desktop-keyboard-shortcuts"); + gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Send key combination")); + gtk_widget_show(GTK_WIDGET(button)); + gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0); + g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_send_key), self); + gtk_widget_set_sensitive(button, FALSE); + priv->toolbar_send_key = button; + + /* Leave fullscreen */ + button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN)); + gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("Leave fullscreen")); + gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Leave fullscreen")); + gtk_tool_item_set_is_important(GTK_TOOL_ITEM(button), TRUE); + gtk_widget_show(GTK_WIDGET(button)); + gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0); + g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_leave_fullscreen), self); + + priv->layout = ViewAutoDrawer_New(); + + ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE); + ViewOvBox_SetOver(VIEW_OV_BOX(priv->layout), priv->toolbar); + ViewOvBox_SetUnder(VIEW_OV_BOX(priv->layout), GTK_WIDGET(priv->notebook)); + ViewAutoDrawer_SetOffset(VIEW_AUTODRAWER(priv->layout), -1); + ViewAutoDrawer_SetFill(VIEW_AUTODRAWER(priv->layout), FALSE); + ViewAutoDrawer_SetOverlapPixels(VIEW_AUTODRAWER(priv->layout), 1); + ViewAutoDrawer_SetNoOverlapPixels(VIEW_AUTODRAWER(priv->layout), 0); + gtk_widget_show(priv->layout); } VirtViewerNotebook* virt_viewer_window_get_notebook (VirtViewerWindow *self) { - return VIRT_VIEWER_NOTEBOOK(self->priv->notebook); + return VIRT_VIEWER_NOTEBOOK(self->priv->notebook); } GtkWindow* virt_viewer_window_get_window (VirtViewerWindow *self) { - return GTK_WINDOW(self->priv->window); + return GTK_WINDOW(self->priv->window); } static void virt_viewer_window_pointer_grab(VirtViewerDisplay *display G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - - priv->grabbed = TRUE; - virt_viewer_window_update_title(self); + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + + priv->grabbed = TRUE; + virt_viewer_window_update_title(self); } static void virt_viewer_window_pointer_ungrab(VirtViewerDisplay *display G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - VirtViewerWindowPrivate *priv = self->priv; - - priv->grabbed = FALSE; - virt_viewer_window_update_title(self); + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + + priv->grabbed = FALSE; + virt_viewer_window_update_title(self); } static void virt_viewer_window_keyboard_grab(VirtViewerDisplay *display G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - virt_viewer_window_disable_modifiers(self); + VirtViewerWindow *self) +{ + virt_viewer_window_disable_modifiers(self); } static void virt_viewer_window_keyboard_ungrab(VirtViewerDisplay *display G_GNUC_UNUSED, - VirtViewerWindow *self) -{ - virt_viewer_window_enable_modifiers(self); + VirtViewerWindow *self) +{ + virt_viewer_window_enable_modifiers(self); } void virt_viewer_window_update_title(VirtViewerWindow *self) { - VirtViewerWindowPrivate *priv = self->priv; - char *title; - const char *subtitle; - - if (priv->grabbed) - subtitle = "(Press Ctrl+Alt to release pointer) "; - else - subtitle = ""; - - if (priv->subtitle) - title = g_strdup_printf("%s%s - Virt Viewer", - subtitle, priv->subtitle); - else - title = g_strdup("Virt Viewer"); - - gtk_window_set_title(GTK_WINDOW(priv->window), title); - - g_free(title); + VirtViewerWindowPrivate *priv = self->priv; + char *title; + gchar *ungrab = NULL; + + if (priv->grabbed) { + gchar *label; + + if (virt_viewer_app_get_enable_accel(priv->app)) { + GtkAccelKey key; + gtk_accel_map_lookup_entry("/view/release-cursor", &key); + label = gtk_accelerator_get_label(key.accel_key, key.accel_mods); + } else { + label = g_strdup(_("Ctrl+Alt")); + } + + ungrab = g_strdup_printf(_("(Press %s to release pointer)"), label); + g_free(label); + } + + if (!ungrab && !priv->subtitle) + title = g_strdup(g_get_application_name()); + else + /* translators: + * This is " - " + * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt Viewer" + */ + title = g_strdup_printf(_("%s%s%s - %s"), + /* translators: */ + ungrab ? ungrab : "", + /* translators: */ + ungrab && priv->subtitle ? _(" ") : "", + priv->subtitle, + g_get_application_name()); + + gtk_window_set_title(GTK_WINDOW(priv->window), title); + + g_free(title); + g_free(ungrab); +} + +void +virt_viewer_window_set_usb_options_sensitive(VirtViewerWindow *self, gboolean sensitive) +{ + VirtViewerWindowPrivate *priv; + GtkWidget *menu; + + g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self)); + + priv = self->priv; + menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-file-usb-device-selection")); + gtk_widget_set_sensitive(menu, sensitive); + gtk_widget_set_visible(priv->toolbar_usb_device_selection, sensitive); +} + +static void +display_show_hint(VirtViewerDisplay *display, + GParamSpec *pspec G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + guint hint; + + g_object_get(display, "show-hint", &hint, NULL); + + hint = (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY); + + gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), hint); + gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), hint); + gtk_widget_set_sensitive(self->priv->toolbar_send_key, hint); } void virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display) { - VirtViewerWindowPrivate *priv; - - g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self)); - g_return_if_fail(display == NULL || VIRT_VIEWER_IS_DISPLAY(display)); - - priv = self->priv; - if (priv->display) { - gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), 1); - g_object_unref(priv->display); - priv->display = NULL; - } - - if (display != NULL) { - priv->display = g_object_ref(display); - - gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL); - if (gtk_bin_get_child(GTK_BIN(display))) - gtk_widget_realize(GTK_WIDGET(gtk_bin_get_child(GTK_BIN(display)))); - gtk_widget_show_all(GTK_WIDGET(display)); - - g_signal_connect(display, "display-pointer-grab", - G_CALLBACK(virt_viewer_window_pointer_grab), self); - g_signal_connect(display, "display-pointer-ungrab", - G_CALLBACK(virt_viewer_window_pointer_ungrab), self); - g_signal_connect(display, "display-keyboard-grab", - G_CALLBACK(virt_viewer_window_keyboard_grab), self); - g_signal_connect(display, "display-keyboard-ungrab", - G_CALLBACK(virt_viewer_window_keyboard_ungrab), self); - g_signal_connect(display, "display-desktop-resize", - G_CALLBACK(virt_viewer_window_desktop_resize), self); - } + VirtViewerWindowPrivate *priv; + + g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self)); + g_return_if_fail(display == NULL || VIRT_VIEWER_IS_DISPLAY(display)); + + priv = self->priv; + if (priv->display) { + gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), 1); + g_object_unref(priv->display); + priv->display = NULL; + } + + if (display != NULL) { + priv->display = g_object_ref(display); + + virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); + virt_viewer_display_set_auto_resize(VIRT_VIEWER_DISPLAY(priv->display), priv->auto_resize); + + gtk_widget_show_all(GTK_WIDGET(display)); + gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL); + /* switch back to non-display if not ready */ + if (!(virt_viewer_display_get_show_hint(display) & + VIRT_VIEWER_DISPLAY_SHOW_HINT_READY)) + gtk_notebook_set_current_page(GTK_NOTEBOOK(priv->notebook), 0); + + virt_viewer_signal_connect_object(display, "display-pointer-grab", + G_CALLBACK(virt_viewer_window_pointer_grab), self, 0); + virt_viewer_signal_connect_object(display, "display-pointer-ungrab", + G_CALLBACK(virt_viewer_window_pointer_ungrab), self, 0); + virt_viewer_signal_connect_object(display, "display-keyboard-grab", + G_CALLBACK(virt_viewer_window_keyboard_grab), self, 0); + virt_viewer_signal_connect_object(display, "display-keyboard-ungrab", + G_CALLBACK(virt_viewer_window_keyboard_ungrab), self, 0); + virt_viewer_signal_connect_object(display, "display-desktop-resize", + G_CALLBACK(virt_viewer_window_desktop_resize), self, 0); + virt_viewer_signal_connect_object(display, "notify::show-hint", + G_CALLBACK(display_show_hint), self, 0); + } +} + +void +virt_viewer_window_show(VirtViewerWindow *self) +{ + gtk_widget_show(self->priv->window); + + if (self->priv->display) + virt_viewer_display_set_enabled(self->priv->display, TRUE); + + if (self->priv->desktop_resize_pending) { + virt_viewer_window_resize(self); + self->priv->desktop_resize_pending = FALSE; + } +} + +void +virt_viewer_window_hide(VirtViewerWindow *self) +{ + gtk_widget_hide(self->priv->window); + + if (self->priv->display) { + VirtViewerDisplay *display = self->priv->display; + guint nth; + + g_object_get(display, "nth-display", &nth, NULL); + if (nth != 0) + virt_viewer_display_set_enabled(display, FALSE); + } } void virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level) { - g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self)); - - /* FIXME: turn into a dynamic property */ - self->priv->zoomlevel = zoom_level; + g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self)); + + /* FIXME: turn into a dynamic property */ + self->priv->zoomlevel = zoom_level; +} + +gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), 100); + return self->priv->zoomlevel; } GtkMenuItem* virt_viewer_window_get_menu_displays(VirtViewerWindow *self) { - g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL); - return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays")); + g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL); + + return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays")); +} + +GtkBuilder* +virt_viewer_window_get_builder(VirtViewerWindow *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL); + + return self->priv->builder; +} + +VirtViewerDisplay* +virt_viewer_window_get_display(VirtViewerWindow *self) +{ + g_return_val_if_fail(VIRT_VIEWER_WINDOW(self), FALSE); + + return self->priv->display; } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer-window.h b/src/virt-viewer-window.h index d582d81..44db585 100644 --- a/src/virt-viewer-window.h +++ b/src/virt-viewer-window.h @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -32,30 +32,30 @@ #define VIRT_VIEWER_TYPE_WINDOW virt_viewer_window_get_type() -#define VIRT_VIEWER_WINDOW(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindow)) +#define VIRT_VIEWER_WINDOW(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindow)) -#define VIRT_VIEWER_WINDOW_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass)) +#define VIRT_VIEWER_WINDOW_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass)) -#define VIRT_VIEWER_IS_WINDOW(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_WINDOW)) +#define VIRT_VIEWER_IS_WINDOW(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_WINDOW)) -#define VIRT_VIEWER_IS_WINDOW_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_WINDOW)) +#define VIRT_VIEWER_IS_WINDOW_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_WINDOW)) -#define VIRT_VIEWER_WINDOW_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass)) +#define VIRT_VIEWER_WINDOW_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass)) typedef struct _VirtViewerWindowPrivate VirtViewerWindowPrivate; typedef struct { - GObject parent; - VirtViewerWindowPrivate *priv; + GObject parent; + VirtViewerWindowPrivate *priv; } VirtViewerWindow; typedef struct { - GObjectClass parent_class; + GObjectClass parent_class; } VirtViewerWindowClass; GType virt_viewer_window_get_type (void); @@ -63,20 +63,26 @@ GtkWindow* virt_viewer_window_get_window (VirtViewerWindow* window); VirtViewerNotebook* virt_viewer_window_get_notebook (VirtViewerWindow* window); void virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display); +VirtViewerDisplay* virt_viewer_window_get_display(VirtViewerWindow *self); +void virt_viewer_window_set_usb_options_sensitive(VirtViewerWindow *self, gboolean sensitive); void virt_viewer_window_update_title(VirtViewerWindow *self); +void virt_viewer_window_show(VirtViewerWindow *self); +void virt_viewer_window_hide(VirtViewerWindow *self); void virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level); +gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self); void virt_viewer_window_leave_fullscreen(VirtViewerWindow *self); void virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y); GtkMenuItem *virt_viewer_window_get_menu_displays(VirtViewerWindow *self); +GtkBuilder* virt_viewer_window_get_builder(VirtViewerWindow *window); G_END_DECLS #endif /* _VIRT_VIEWER_WINDOW */ + /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer.c b/src/virt-viewer.c index 364f30b..3143104 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -1,8 +1,8 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007-2009 Red Hat, - * Copyright (C) 2009 Daniel P. Berrange + * Copyright (C) 2007-2012 Red Hat, Inc. + * Copyright (C) 2009-2012 Daniel P. Berrange * Copyright (C) 2010 Marc-André Lureau * * This program is free software; you can redistribute it and/or modify @@ -40,514 +40,656 @@ #include #include +#if defined(HAVE_SOCKETPAIR) +#include +#endif + #include "virt-viewer.h" #include "virt-viewer-app.h" #include "virt-viewer-events.h" #include "virt-viewer-auth.h" struct _VirtViewerPrivate { - char *uri; - virConnectPtr conn; - char *domkey; - char *domtitle; - gboolean withEvents; - gboolean waitvm; - gboolean reconnect; + char *uri; + virConnectPtr conn; + virDomainPtr dom; + char *domkey; + gboolean withEvents; + gboolean waitvm; + gboolean reconnect; }; G_DEFINE_TYPE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP) -#define GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate)) +#define GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate)) static int virt_viewer_initial_connect(VirtViewerApp *self); +static gboolean virt_viewer_open_connection(VirtViewerApp *self, int *fd); static void virt_viewer_deactivated(VirtViewerApp *self); static gboolean virt_viewer_start(VirtViewerApp *self); static void virt_viewer_get_property (GObject *object, guint property_id, - GValue *value G_GNUC_UNUSED, GParamSpec *pspec) -{ - switch (property_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } + GValue *value G_GNUC_UNUSED, GParamSpec *pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } } static void virt_viewer_set_property (GObject *object, guint property_id, - const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) -{ - switch (property_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } + const GValue *value G_GNUC_UNUSED, GParamSpec *pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } } static void virt_viewer_dispose (GObject *object) { - G_OBJECT_CLASS(virt_viewer_parent_class)->dispose (object); + VirtViewer *self = VIRT_VIEWER(object); + VirtViewerPrivate *priv = self->priv; + if (priv->dom) + virDomainFree(priv->dom); + if (priv->conn) + virConnectClose(priv->conn); + G_OBJECT_CLASS(virt_viewer_parent_class)->dispose (object); } static void virt_viewer_class_init (VirtViewerClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); - VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass); - - g_type_class_add_private (klass, sizeof (VirtViewerPrivate)); - - object_class->get_property = virt_viewer_get_property; - object_class->set_property = virt_viewer_set_property; - object_class->dispose = virt_viewer_dispose; - - app_class->initial_connect = virt_viewer_initial_connect; - app_class->deactivated = virt_viewer_deactivated; - app_class->start = virt_viewer_start; + GObjectClass *object_class = G_OBJECT_CLASS (klass); + VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass); + + g_type_class_add_private (klass, sizeof (VirtViewerPrivate)); + + object_class->get_property = virt_viewer_get_property; + object_class->set_property = virt_viewer_set_property; + object_class->dispose = virt_viewer_dispose; + + app_class->initial_connect = virt_viewer_initial_connect; + app_class->deactivated = virt_viewer_deactivated; + app_class->open_connection = virt_viewer_open_connection; + app_class->start = virt_viewer_start; } static void virt_viewer_init(VirtViewer *self) { - self->priv = GET_PRIVATE(self); + self->priv = GET_PRIVATE(self); } static void virt_viewer_deactivated(VirtViewerApp *app) { - VirtViewer *self = VIRT_VIEWER(app); - VirtViewerPrivate *priv = self->priv; - - if (priv->reconnect) { - if (!priv->withEvents) { - DEBUG_LOG("No domain events, falling back to polling"); - virt_viewer_app_start_reconnect_poll(app); - } - - virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start")); - virt_viewer_app_trace(app, "Guest %s display has disconnected, waiting to reconnect", priv->domkey); - } else { - VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->deactivated(app); - } + VirtViewer *self = VIRT_VIEWER(app); + VirtViewerPrivate *priv = self->priv; + + if (priv->dom) { + virDomainFree(priv->dom); + priv->dom = NULL; + } + + if (priv->reconnect) { + if (!priv->withEvents) { + DEBUG_LOG("No domain events, falling back to polling"); + virt_viewer_app_start_reconnect_poll(app); + } + + virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start")); + virt_viewer_app_trace(app, "Guest %s display has disconnected, waiting to reconnect", priv->domkey); + } else { + VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->deactivated(app); + } } static int virt_viewer_parse_uuid(const char *name, - unsigned char *uuid) -{ - int i; - - const char *cur = name; - for (i = 0;i < 16;) { - uuid[i] = 0; - if (*cur == 0) - return -1; - if ((*cur == '-') || (*cur == ' ')) { - cur++; - continue; - } - if ((*cur >= '0') && (*cur <= '9')) - uuid[i] = *cur - '0'; - else if ((*cur >= 'a') && (*cur <= 'f')) - uuid[i] = *cur - 'a' + 10; - else if ((*cur >= 'A') && (*cur <= 'F')) - uuid[i] = *cur - 'A' + 10; - else - return -1; - uuid[i] *= 16; - cur++; - if (*cur == 0) - return -1; - if ((*cur >= '0') && (*cur <= '9')) - uuid[i] += *cur - '0'; - else if ((*cur >= 'a') && (*cur <= 'f')) - uuid[i] += *cur - 'a' + 10; - else if ((*cur >= 'A') && (*cur <= 'F')) - uuid[i] += *cur - 'A' + 10; - else - return -1; - i++; - cur++; - } - - return 0; + unsigned char *uuid) +{ + int i; + + const char *cur = name; + for (i = 0;i < 16;) { + uuid[i] = 0; + if (*cur == 0) + return -1; + if ((*cur == '-') || (*cur == ' ')) { + cur++; + continue; + } + if ((*cur >= '0') && (*cur <= '9')) + uuid[i] = *cur - '0'; + else if ((*cur >= 'a') && (*cur <= 'f')) + uuid[i] = *cur - 'a' + 10; + else if ((*cur >= 'A') && (*cur <= 'F')) + uuid[i] = *cur - 'A' + 10; + else + return -1; + uuid[i] *= 16; + cur++; + if (*cur == 0) + return -1; + if ((*cur >= '0') && (*cur <= '9')) + uuid[i] += *cur - '0'; + else if ((*cur >= 'a') && (*cur <= 'f')) + uuid[i] += *cur - 'a' + 10; + else if ((*cur >= 'A') && (*cur <= 'F')) + uuid[i] += *cur - 'A' + 10; + else + return -1; + i++; + cur++; + } + + return 0; } static virDomainPtr virt_viewer_lookup_domain(VirtViewer *self) { - char *end; - VirtViewerPrivate *priv = self->priv; - int id = strtol(priv->domkey, &end, 10); - virDomainPtr dom = NULL; - unsigned char uuid[16]; - - if (id >= 0 && end && !*end) { - dom = virDomainLookupByID(priv->conn, id); - } - if (!dom && virt_viewer_parse_uuid(priv->domkey, uuid) == 0) { - dom = virDomainLookupByUUID(priv->conn, uuid); - } - if (!dom) { - dom = virDomainLookupByName(priv->conn, priv->domkey); - } - return dom; + char *end; + VirtViewerPrivate *priv = self->priv; + int id = strtol(priv->domkey, &end, 10); + virDomainPtr dom = NULL; + unsigned char uuid[16]; + + if (id >= 0 && end && !*end) { + dom = virDomainLookupByID(priv->conn, id); + } + if (!dom && virt_viewer_parse_uuid(priv->domkey, uuid) == 0) { + dom = virDomainLookupByUUID(priv->conn, uuid); + } + if (!dom) { + dom = virDomainLookupByName(priv->conn, priv->domkey); + } + return dom; } static int virt_viewer_matches_domain(VirtViewer *self, - virDomainPtr dom) -{ - char *end; - const char *name; - VirtViewerPrivate *priv = self->priv; - int id = strtol(priv->domkey, &end, 10); - unsigned char wantuuid[16]; - unsigned char domuuid[16]; - - if (id >= 0 && end && !*end) { - if (virDomainGetID(dom) == id) - return 1; - } - if (virt_viewer_parse_uuid(priv->domkey, wantuuid) == 0) { - virDomainGetUUID(dom, domuuid); - if (memcmp(wantuuid, domuuid, VIR_UUID_BUFLEN) == 0) - return 1; - } - - name = virDomainGetName(dom); - if (strcmp(name, priv->domkey) == 0) - return 1; - - return 0; + virDomainPtr dom) +{ + char *end; + const char *name; + VirtViewerPrivate *priv = self->priv; + int id = strtol(priv->domkey, &end, 10); + unsigned char wantuuid[16]; + unsigned char domuuid[16]; + + if (id >= 0 && end && !*end) { + if (virDomainGetID(dom) == id) + return 1; + } + if (virt_viewer_parse_uuid(priv->domkey, wantuuid) == 0) { + virDomainGetUUID(dom, domuuid); + if (memcmp(wantuuid, domuuid, VIR_UUID_BUFLEN) == 0) + return 1; + } + + name = virDomainGetName(dom); + if (strcmp(name, priv->domkey) == 0) + return 1; + + return 0; } static char * virt_viewer_extract_xpath_string(const gchar *xmldesc, - const gchar *xpath) -{ - xmlDocPtr xml = NULL; - xmlParserCtxtPtr pctxt = NULL; - xmlXPathContextPtr ctxt = NULL; - xmlXPathObjectPtr obj = NULL; - char *port = NULL; - - pctxt = xmlNewParserCtxt(); - if (!pctxt || !pctxt->sax) - goto error; - - xml = xmlCtxtReadDoc(pctxt, (const xmlChar *)xmldesc, "domain.xml", NULL, - XML_PARSE_NOENT | XML_PARSE_NONET | - XML_PARSE_NOWARNING); - if (!xml) - goto error; - - ctxt = xmlXPathNewContext(xml); - if (!ctxt) - goto error; - - obj = xmlXPathEval((const xmlChar *)xpath, ctxt); - if (!obj || obj->type != XPATH_STRING || !obj->stringval || !obj->stringval[0]) - goto error; - if (!strcmp((const char*)obj->stringval, "-1")) - goto error; - - port = g_strdup((const char*)obj->stringval); - xmlXPathFreeObject(obj); - obj = NULL; + const gchar *xpath) +{ + xmlDocPtr xml = NULL; + xmlParserCtxtPtr pctxt = NULL; + xmlXPathContextPtr ctxt = NULL; + xmlXPathObjectPtr obj = NULL; + char *port = NULL; + + pctxt = xmlNewParserCtxt(); + if (!pctxt || !pctxt->sax) + goto error; + + xml = xmlCtxtReadDoc(pctxt, (const xmlChar *)xmldesc, "domain.xml", NULL, + XML_PARSE_NOENT | XML_PARSE_NONET | + XML_PARSE_NOWARNING); + if (!xml) + goto error; + + ctxt = xmlXPathNewContext(xml); + if (!ctxt) + goto error; + + obj = xmlXPathEval((const xmlChar *)xpath, ctxt); + if (!obj || obj->type != XPATH_STRING || !obj->stringval || !obj->stringval[0]) + goto error; + if (!strcmp((const char*)obj->stringval, "-1")) + goto error; + + port = g_strdup((const char*)obj->stringval); + xmlXPathFreeObject(obj); + obj = NULL; error: - if (obj) - xmlXPathFreeObject(obj); - if (ctxt) - xmlXPathFreeContext(ctxt); - if (xml) - xmlFreeDoc(xml); - if (pctxt) - xmlFreeParserCtxt(pctxt); - return port; + xmlXPathFreeObject(obj); + xmlXPathFreeContext(ctxt); + xmlFreeDoc(xml); + xmlFreeParserCtxt(pctxt); + return port; } static gboolean virt_viewer_extract_connect_info(VirtViewer *self, - virDomainPtr dom) -{ - char *type = NULL; - char *xpath = NULL; - gboolean retval = FALSE; - char *xmldesc = virDomainGetXMLDesc(dom, 0); - VirtViewerPrivate *priv = self->priv; - VirtViewerApp *app = VIRT_VIEWER_APP(self); - gchar *gport = NULL; - gchar *ghost = NULL; - gchar *unixsock = NULL; - gchar *host = NULL; - gchar *transport = NULL; - gchar *user = NULL; - gint port = 0; - - virt_viewer_app_free_connect_info(app); - - if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) { - virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"), - priv->domkey); - goto cleanup; - } - - if (virt_viewer_app_create_session(app, type) < 0) - goto cleanup; - - xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@port)", type); - if ((gport = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) { - free(xpath); - xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@socket)", type); - if ((unixsock = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) { - virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic address for the guest %s"), - priv->domkey); - goto cleanup; - } - } else { - free(xpath); - xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@listen)", type); - ghost = virt_viewer_extract_xpath_string(xmldesc, xpath); - if (ghost == NULL) - ghost = g_strdup("localhost"); - } - - if (gport) - DEBUG_LOG("Guest graphics address is %s:%s", ghost, gport); - else - DEBUG_LOG("Guest graphics address is %s", unixsock); - - if (virt_viewer_util_extract_host(priv->uri, NULL, &host, &transport, &user, &port) < 0) { - virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"), - priv->domkey); - goto cleanup; - } - - virt_viewer_app_set_connect_info(app, host, ghost, gport, transport, unixsock, user, port); - - retval = TRUE; + virDomainPtr dom) +{ + char *type = NULL; + char *xpath = NULL; + gboolean retval = FALSE; + char *xmldesc = virDomainGetXMLDesc(dom, 0); + VirtViewerPrivate *priv = self->priv; + VirtViewerApp *app = VIRT_VIEWER_APP(self); + gchar *gport = NULL; + gchar *gtlsport = NULL; + gchar *ghost = NULL; + gchar *unixsock = NULL; + gchar *host = NULL; + gchar *transport = NULL; + gchar *user = NULL; + gint port = 0; + gchar *uri = NULL; + + virt_viewer_app_free_connect_info(app); + + if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) { + virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"), + priv->domkey); + goto cleanup; + } + + if (virt_viewer_app_create_session(app, type) < 0) + goto cleanup; + + xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@port)", type); + if ((gport = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) { + free(xpath); + xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@socket)", type); + if ((unixsock = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) { + virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic address for the guest %s"), + priv->domkey); + goto cleanup; + } + } else { + if (g_str_equal(type, "spice")) { + free(xpath); + xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@tlsPort)", type); + gtlsport = virt_viewer_extract_xpath_string(xmldesc, xpath); + } + + free(xpath); + xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@listen)", type); + ghost = virt_viewer_extract_xpath_string(xmldesc, xpath); + } + + if (ghost && gport) + DEBUG_LOG("Guest graphics address is %s:%s", ghost, gport); + else if (unixsock) + DEBUG_LOG("Guest graphics address is %s", unixsock); + + uri = virConnectGetURI(priv->conn); + if (virt_viewer_util_extract_host(uri, NULL, &host, &transport, &user, &port) < 0) { + virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"), + priv->domkey); + goto cleanup; + } + + /* If the XML listen attribute shows a wildcard address, we need to + * throw that away since you obviously can't 'connect(2)' to that + * from a remote host. Instead we fallback to the hostname used in + * the libvirt URI. This isn't perfect but it is better than nothing + */ + if (!ghost || + (strcmp(ghost, "0.0.0.0") == 0 || + strcmp(ghost, "::") == 0)) { + DEBUG_LOG("Guest graphics listen '%s' is NULL or a wildcard, replacing with '%s'", + ghost ? ghost : "", host); + g_free(ghost); + ghost = g_strdup(host); + } + + virt_viewer_app_set_connect_info(app, host, ghost, gport, gtlsport,transport, unixsock, user, port, NULL); + + retval = TRUE; cleanup: - g_free(gport); - g_free(ghost); - g_free(unixsock); - g_free(host); - g_free(transport); - g_free(user); - g_free(type); - g_free(xpath); - g_free(xmldesc); - return retval; + g_free(gport); + g_free(gtlsport); + g_free(ghost); + g_free(unixsock); + g_free(host); + g_free(transport); + g_free(user); + g_free(type); + g_free(xpath); + g_free(xmldesc); + g_free(uri); + return retval; } static int virt_viewer_update_display(VirtViewer *self, virDomainPtr dom) { - VirtViewerPrivate *priv = self->priv; - VirtViewerApp *app = VIRT_VIEWER_APP(self); - - virt_viewer_app_trace(app, "Guest %s is running, determining display\n", - priv->domkey); - - if (!virt_viewer_app_has_session(app)) { - if (!virt_viewer_extract_connect_info(self, dom)) - return -1; - } - - return 0; + VirtViewerPrivate *priv = self->priv; + VirtViewerApp *app = VIRT_VIEWER_APP(self); + + if (priv->dom) + virDomainFree(priv->dom); + priv->dom = dom; + virDomainRef(priv->dom); + + virt_viewer_app_trace(app, "Guest %s is running, determining display\n", + priv->domkey); + + g_object_set(app, "title", virDomainGetName(dom), NULL); + + if (!virt_viewer_app_has_session(app)) { + if (!virt_viewer_extract_connect_info(self, dom)) + return -1; + } + + return 0; +} + +static gboolean +virt_viewer_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd) +{ +#if defined(HAVE_SOCKETPAIR) + VirtViewer *viewer = VIRT_VIEWER(self); + VirtViewerPrivate *priv = viewer->priv; + int pair[2]; +#endif + *fd = -1; +#if defined(HAVE_SOCKETPAIR) + if (!priv->dom) + return TRUE; + + if (socketpair(PF_UNIX, SOCK_STREAM, 0, pair) < 0) + return FALSE; + + if (virDomainOpenGraphics(priv->dom, 0, pair[0], + VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH) < 0) { + virErrorPtr err = virGetLastError(); + DEBUG_LOG("Error %s", err && err->message ? err->message : "Unknown"); + close(pair[0]); + close(pair[1]); + return TRUE; + } + close(pair[0]); + *fd = pair[1]; +#endif + return TRUE; } static int virt_viewer_domain_event(virConnectPtr conn G_GNUC_UNUSED, - virDomainPtr dom, - int event, - int detail G_GNUC_UNUSED, - void *opaque) -{ - VirtViewer *self = opaque; - VirtViewerApp *app = VIRT_VIEWER_APP(self); - - DEBUG_LOG("Got domain event %d %d", event, detail); - - if (!virt_viewer_matches_domain(self, dom)) - return 0; - - switch (event) { - case VIR_DOMAIN_EVENT_STOPPED: - //virt_viewer_deactivate(self); - break; - - case VIR_DOMAIN_EVENT_STARTED: - virt_viewer_update_display(self, dom); - virt_viewer_app_activate(app); - break; - } - - return 0; + virDomainPtr dom, + int event, + int detail G_GNUC_UNUSED, + void *opaque) +{ + VirtViewer *self = opaque; + VirtViewerApp *app = VIRT_VIEWER_APP(self); + + DEBUG_LOG("Got domain event %d %d", event, detail); + + if (!virt_viewer_matches_domain(self, dom)) + return 0; + + switch (event) { + case VIR_DOMAIN_EVENT_STOPPED: + //virt_viewer_deactivate(self); + break; + + case VIR_DOMAIN_EVENT_STARTED: + virt_viewer_update_display(self, dom); + virt_viewer_app_activate(app); + break; + } + + return 0; } static int virt_viewer_initial_connect(VirtViewerApp *app) { - virDomainPtr dom = NULL; - virDomainInfo info; - int ret = -1; - VirtViewer *self = VIRT_VIEWER(app); - VirtViewerPrivate *priv = self->priv; - - virt_viewer_app_show_status(app, _("Finding guest domain")); - dom = virt_viewer_lookup_domain(self); - if (!dom) { - if (priv->waitvm) { - virt_viewer_app_show_status(app, _("Waiting for guest domain to be created")); - virt_viewer_app_trace(app, "Guest %s does not yet exist, waiting for it to be created\n", - priv->domkey); - goto done; - } else { - virt_viewer_app_simple_message_dialog(app, _("Cannot find guest domain %s"), - priv->domkey); - DEBUG_LOG("Cannot find guest %s", priv->domkey); - goto cleanup; - } - } - - free(priv->domtitle); - priv->domtitle = g_strdup(virDomainGetName(dom)); - - virt_viewer_app_show_status(app, _("Checking guest domain status")); - if (virDomainGetInfo(dom, &info) < 0) { - DEBUG_LOG("Cannot get guest state"); - goto cleanup; - } - - if (info.state == VIR_DOMAIN_SHUTOFF) { - virt_viewer_app_show_status(app, _("Waiting for guest domain to start")); - } else { - ret = virt_viewer_update_display(self, dom); - if (ret >= 0) - ret = VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->initial_connect(app); - if (ret < 0) { - if (priv->waitvm) { - virt_viewer_app_show_status(app, _("Waiting for guest domain to start server")); - virt_viewer_app_trace(app, "Guest %s has not activated its display yet, waiting for it to start\n", - priv->domkey); - } else { - DEBUG_LOG("Failed to activate viewer"); - goto cleanup; - } - } else if (ret == 0) { - DEBUG_LOG("Failed to activate viewer"); - ret = -1; - goto cleanup; - } - } + virDomainPtr dom = NULL; + virDomainInfo info; + int ret = -1; + VirtViewer *self = VIRT_VIEWER(app); + VirtViewerPrivate *priv = self->priv; + + virt_viewer_app_show_status(app, _("Finding guest domain")); + dom = virt_viewer_lookup_domain(self); + if (!dom) { + if (priv->waitvm) { + virt_viewer_app_show_status(app, _("Waiting for guest domain to be created")); + virt_viewer_app_trace(app, "Guest %s does not yet exist, waiting for it to be created\n", + priv->domkey); + goto done; + } else { + virt_viewer_app_simple_message_dialog(app, _("Cannot find guest domain %s"), + priv->domkey); + DEBUG_LOG("Cannot find guest %s", priv->domkey); + goto cleanup; + } + } + + virt_viewer_app_show_status(app, _("Checking guest domain status")); + if (virDomainGetInfo(dom, &info) < 0) { + DEBUG_LOG("Cannot get guest state"); + goto cleanup; + } + + if (info.state == VIR_DOMAIN_SHUTOFF) { + virt_viewer_app_show_status(app, _("Waiting for guest domain to start")); + } else { + ret = virt_viewer_update_display(self, dom); + if (ret >= 0) + ret = VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->initial_connect(app); + if (ret < 0) { + if (priv->waitvm) { + virt_viewer_app_show_status(app, _("Waiting for guest domain to start server")); + virt_viewer_app_trace(app, "Guest %s has not activated its display yet, waiting for it to start\n", + priv->domkey); + } else { + DEBUG_LOG("Failed to activate viewer"); + goto cleanup; + } + } else if (ret == 0) { + DEBUG_LOG("Failed to activate viewer"); + ret = -1; + goto cleanup; + } + } done: - ret = 0; + ret = 0; cleanup: - if (dom) - virDomainFree(dom); - return ret; + if (dom) + virDomainFree(dom); + return ret; } static void virt_viewer_error_func (void *data G_GNUC_UNUSED, - virErrorPtr error G_GNUC_UNUSED) -{ - /* nada */ -} + virErrorPtr error G_GNUC_UNUSED) +{ + /* nada */ +} + + + +static int +virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred, + unsigned int ncred, + void *cbdata) +{ + char **username = NULL, **password = NULL; + VirtViewer *app = cbdata; + int i; + int ret = -1; + + DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred); + + for (i = 0 ; i < ncred ; i++) { + switch (cred[i].type) { + case VIR_CRED_USERNAME: + case VIR_CRED_AUTHNAME: + username = &cred[i].result; + break; + case VIR_CRED_PASSPHRASE: + password = &cred[i].result; + break; + default: + DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type); + return -1; + } + } + + if (username || password) { + VirtViewerWindow *vwin = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(app)); + GtkWindow *win = virt_viewer_window_get_window(vwin); + ret = virt_viewer_auth_collect_credentials(win, + "libvirt", + app->priv->uri, + username, password); + if (ret < 0) + goto cleanup; + } else { + ret = 0; + } + + for (i = 0 ; i < ncred ; i++) { + switch (cred[i].type) { + case VIR_CRED_AUTHNAME: + case VIR_CRED_USERNAME: + case VIR_CRED_PASSPHRASE: + if (cred[i].result) + cred[i].resultlen = strlen(cred[i].result); + else + cred[i].resultlen = 0; + DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type); + break; + } + } + + cleanup: + DEBUG_LOG("Return %d", ret); + return ret; +} + static gboolean virt_viewer_start(VirtViewerApp *app) { - VirtViewer *self = VIRT_VIEWER(app); - VirtViewerPrivate *priv = self->priv; - int cred_types[] = - { VIR_CRED_AUTHNAME, VIR_CRED_PASSPHRASE }; - virConnectAuth auth_libvirt = { - .credtype = cred_types, - .ncredtype = ARRAY_CARDINALITY(cred_types), - .cb = virt_viewer_auth_libvirt_credentials, - .cbdata = (void *)priv->uri, - }; - - virt_viewer_events_register(); - - virSetErrorFunc(NULL, virt_viewer_error_func); - - virt_viewer_app_trace(app, "Opening connection to libvirt with URI %s\n", - priv->uri ? priv->uri : ""); - priv->conn = virConnectOpenAuth(priv->uri, - //virConnectAuthPtrDefault, - &auth_libvirt, - VIR_CONNECT_RO); - if (!priv->conn) { - virt_viewer_app_simple_message_dialog(app, _("Unable to connect to libvirt with URI %s"), - priv->uri ? priv->uri : _("[none]")); - return FALSE; - } - - if (virt_viewer_app_initial_connect(app) < 0) - return FALSE; - - if (virConnectDomainEventRegister(priv->conn, - virt_viewer_domain_event, - self, - NULL) < 0) - priv->withEvents = FALSE; - else - priv->withEvents = TRUE; - - if (!priv->withEvents && - !virt_viewer_app_is_active(app)) { - DEBUG_LOG("No domain events, falling back to polling"); - virt_viewer_app_start_reconnect_poll(app); - } - - return VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->start(app); + VirtViewer *self = VIRT_VIEWER(app); + VirtViewerPrivate *priv = self->priv; + int cred_types[] = + { VIR_CRED_AUTHNAME, VIR_CRED_PASSPHRASE }; + virConnectAuth auth_libvirt = { + .credtype = cred_types, + .ncredtype = ARRAY_CARDINALITY(cred_types), + .cb = virt_viewer_auth_libvirt_credentials, + .cbdata = app, + }; + int oflags = 0; + + if (!virt_viewer_app_get_attach(app)) + oflags |= VIR_CONNECT_RO; + + virt_viewer_events_register(); + + virSetErrorFunc(NULL, virt_viewer_error_func); + + virt_viewer_app_trace(app, "Opening connection to libvirt with URI %s\n", + priv->uri ? priv->uri : ""); + priv->conn = virConnectOpenAuth(priv->uri, + //virConnectAuthPtrDefault, + &auth_libvirt, + oflags); + if (!priv->conn) { + virt_viewer_app_simple_message_dialog(app, _("Unable to connect to libvirt with URI %s"), + priv->uri ? priv->uri : _("[none]")); + return FALSE; + } + + if (virt_viewer_app_initial_connect(app) < 0) + return FALSE; + + if (virConnectDomainEventRegister(priv->conn, + virt_viewer_domain_event, + self, + NULL) < 0) + priv->withEvents = FALSE; + else + priv->withEvents = TRUE; + + if (!priv->withEvents && + !virt_viewer_app_is_active(app)) { + DEBUG_LOG("No domain events, falling back to polling"); + virt_viewer_app_start_reconnect_poll(app); + } + + return VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->start(app); } VirtViewer * virt_viewer_new(const char *uri, - const char *name, - gint zoom, - gboolean direct, - gboolean waitvm, - gboolean reconnect, - gboolean verbose, - GtkWidget *container) -{ - VirtViewer *self; - VirtViewerApp *app; - VirtViewerPrivate *priv; - - self = g_object_new(VIRT_VIEWER_TYPE, - "container", container, - "verbose", verbose, - NULL); - app = VIRT_VIEWER_APP(self); - priv = self->priv; - - virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom); - virt_viewer_app_set_direct(app, direct); - - /* should probably be properties instead */ - priv->uri = g_strdup(uri); - priv->domkey = g_strdup(name); - priv->waitvm = waitvm; - priv->reconnect = reconnect; - - return self; + const char *name, + gint zoom, + gboolean direct, + gboolean attach, + gboolean waitvm, + gboolean reconnect, + gboolean verbose, + GtkWidget *container) +{ + VirtViewer *self; + VirtViewerApp *app; + VirtViewerPrivate *priv; + + self = g_object_new(VIRT_VIEWER_TYPE, + "container", container, + "verbose", verbose, + "guest-name", name, + NULL); + app = VIRT_VIEWER_APP(self); + priv = self->priv; + + /* Set initial title based on guest name arg, which can be a ID, + * UUID, or NAME string. To be replaced with the real guest name later + */ + g_object_set(app, "title", name, NULL); + virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom); + virt_viewer_app_set_direct(app, direct); + virt_viewer_app_set_attach(app, attach); + + /* should probably be properties instead */ + priv->uri = g_strdup(uri); + priv->domkey = g_strdup(name); + priv->waitvm = waitvm; + priv->reconnect = reconnect; + + return self; } /* * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * tab-width: 8 - * indent-tabs-mode: t + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil * End: */ diff --git a/src/virt-viewer.h b/src/virt-viewer.h index 886a0f3..d136ade 100644 --- a/src/virt-viewer.h +++ b/src/virt-viewer.h @@ -1,7 +1,7 @@ /* * Virt Viewer: A virtual machine console viewer * - * Copyright (C) 2007 Red Hat, + * Copyright (C) 2007-2012 Red Hat, Inc. * * 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 @@ -38,26 +38,35 @@ typedef struct _VirtViewerPrivate VirtViewerPrivate; typedef struct { - VirtViewerApp parent; - VirtViewerPrivate *priv; + VirtViewerApp parent; + VirtViewerPrivate *priv; } VirtViewer; typedef struct { - VirtViewerAppClass parent_class; + VirtViewerAppClass parent_class; } VirtViewerClass; GType virt_viewer_get_type (void); VirtViewer * virt_viewer_new(const char *uri, - const char *name, - gint zoom, - gboolean direct, - gboolean waitvm, - gboolean reconnect, - gboolean verbose, - GtkWidget *container); + const char *name, + gint zoom, + gboolean direct, + gboolean attach, + gboolean waitvm, + gboolean reconnect, + gboolean verbose, + GtkWidget *container); G_END_DECLS #endif /* VIRT_VIEWER_H */ + +/* + * Local variables: + * c-indent-level: 4 + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/src/virt-viewer.manifest b/src/virt-viewer.manifest new file mode 100644 index 0000000..d921a06 --- /dev/null +++ b/src/virt-viewer.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/virt-viewer.rc b/src/virt-viewer.rc new file mode 100644 index 0000000..e944602 --- /dev/null +++ b/src/virt-viewer.rc @@ -0,0 +1,27 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 + +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "virt-manager.org" + VALUE "FileDescription", "A remote desktop client" + VALUE "FileVersion", "0.5.4" + VALUE "InternalName", "virt-viewer 0.5.4" + VALUE "LegalCopyright", "Copyright (C) 2007-2012 Red Hat, Inc." + VALUE "OriginalFilename", "virt-viewer.exe" + VALUE "ProductName", "VirtViewer" + VALUE "ProductVersion", "0.5.4" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END +2 ICON ICONDIR "/virt-viewer.ico" +3 RT_MANIFEST MANIFESTDIR "/virt-viewer.manifest" diff --git a/src/virt-viewer.rc.in b/src/virt-viewer.rc.in new file mode 100644 index 0000000..196e631 --- /dev/null +++ b/src/virt-viewer.rc.in @@ -0,0 +1,27 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 + +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "virt-manager.org" + VALUE "FileDescription", "A remote desktop client" + VALUE "FileVersion", "@VERSION@" + VALUE "InternalName", "@PACKAGE_STRING@" + VALUE "LegalCopyright", "Copyright (C) 2007-2012 Red Hat, Inc." + VALUE "OriginalFilename", "virt-viewer.exe" + VALUE "ProductName", "VirtViewer" + VALUE "ProductVersion", "@VERSION@" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END +2 ICON ICONDIR "/virt-viewer.ico" +3 RT_MANIFEST MANIFESTDIR "/virt-viewer.manifest" diff --git a/src/virt-viewer.xml b/src/virt-viewer.xml index b701c2c..cce1f0d 100644 --- a/src/virt-viewer.xml +++ b/src/virt-viewer.xml @@ -1,6 +1,7 @@ + False 400 @@ -25,6 +26,7 @@ True False + accelgroup True @@ -33,6 +35,37 @@ Screenshot True + + + + + True + False + False + False + USB device selection + True + + + + + + False + False + <virt-viewer>/file/smartcard-insert + Smartcard insertion + True + + + + + + False + False + <virt-viewer>/file/smartcard-remove + Smartcard removal + True + @@ -68,14 +101,15 @@ True False + accelgroup True False False + <virt-viewer>/view/fullscreen Full screen True - @@ -155,6 +189,16 @@ True + + + False + False + <virt-viewer>/view/release-cursor + Release cursor + True + + + diff --git a/src/windows-cmdline-wrapper.c b/src/windows-cmdline-wrapper.c new file mode 100644 index 0000000..510763b --- /dev/null +++ b/src/windows-cmdline-wrapper.c @@ -0,0 +1,91 @@ +/* + * Windows cmd: a command line wrapper for GUI applications + * + * Copyright (C) 2012 Red Hat, Inc. + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Usage: + * If your app is a GUI app compiled with -Wl,--subsystem,windows But + * you still want to run it from the command line to support console + * interaction (input, output), you can compile and install this small + * wrapper as a .com file next to your .exe. (.com takes precedence) + * + * This wrapper will call the .exe with the same arguments, and wait + * until it finished. The child process should attach to the same + * console and redirect standard input/output, this way: + * + * if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) { + * freopen("CONIN$", "r", stdin); + * freopen("CONOUT$", "w", stdout); + * freopen("CONERR$", "w", stderr); + * dup2(fileno(stdin), STDIN_FILENO); + * dup2(fileno(stdout), STDOUT_FILENO); + * dup2(fileno(stderr), STDERR_FILENO); + * } + + * Note: if you have a better solution for hybrid console/windows app, + * I would be glad to learn how! + * + * Author: Marc-André Lureau + */ + +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + STARTUPINFO si = { 0, }; + PROCESS_INFORMATION pi = { 0, }; + TCHAR name[MAX_PATH]; + DWORD len = GetModuleFileName(NULL, name, MAX_PATH); + + if (len < 5) { + printf("Invalid process name\n"); + exit(1); + } else { + // We expect our helper to end with .com + assert(strncmp(name + len - 3, "com", 4) == 0); + // replace .com with .exe + strncpy(name + len - 3, "exe", 3); + } + + si.cb = sizeof(si); + if (!CreateProcess(name, + GetCommandLine(), + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + 0, // No creation flags + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, + &pi)) { + printf("CreateProcess failed (%ld).\n", GetLastError()); + exit(1); + } + + // Wait until child process exits. + WaitForSingleObject(pi.hProcess, INFINITE); + + // Close process and thread handles. + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + + return 0; +} diff --git a/virt-viewer.spec b/virt-viewer.spec index a759e14..a3417be 100644 --- a/virt-viewer.spec +++ b/virt-viewer.spec @@ -10,7 +10,11 @@ %endif %define with_spice 0 -%if 0%{?fedora} >= 16 +%if 0%{?fedora} >= 17 +%define with_spice 1 +%endif + +%if 0%{?rhel} >= 6 %define with_spice 1 %endif @@ -20,7 +24,7 @@ %endif Name: virt-viewer -Version: 0.4.1 +Version: 0.5.4 Release: 1%{?dist}%{?extra_release} Summary: Virtual Machine Viewer Group: Applications/System @@ -29,25 +33,31 @@ Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: openssh-clients +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils +BuildRequires: glib2-devel >= 2.22 %if %{with_gtk3} BuildRequires: gtk3-devel >= 3.0.0 %else BuildRequires: gtk2-devel >= 2.12.0 %endif -BuildRequires: libvirt-devel >= 0.6.0 +BuildRequires: libvirt-devel >= 0.9.7 BuildRequires: libxml2-devel %if %{with_gtk3} -BuildRequires: gtk-vnc2-devel >= 0.4.3 +BuildRequires: gtk-vnc2-devel >= 0.4.0 %else BuildRequires: gtk-vnc-devel >= 0.3.8 %endif %if %{with_spice} %if %{with_gtk3} -BuildRequires: spice-gtk3-devel >= 0.6 +BuildRequires: spice-gtk3-devel >= 0.12.101 %else -BuildRequires: spice-gtk-devel >= 0.6 +BuildRequires: spice-gtk-devel >= 0.12.101 %endif +BuildRequires: spice-protocol >= 0.10.1 %endif BuildRequires: /usr/bin/pod2man BuildRequires: intltool @@ -91,9 +101,9 @@ %endif %if %{with_spice} -%define spice_arg --enable-spice +%define spice_arg --with-spice-gtk %else -%define spice_arg --disable-spice +%define spice_arg --without-spice-gtk %endif %if %{with_gtk3} @@ -109,6 +119,9 @@ %install rm -rf $RPM_BUILD_ROOT %__make install DESTDIR=$RPM_BUILD_ROOT +mkdir -p %{buildroot}%{_libexecdir} +touch %{buildroot}%{_libexecdir}/spice-xpi-client +install -m 0755 data/spice-xpi-client-remote-viewer %{buildroot}%{_libexecdir}/ %if %{_with_plugin} rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.a rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.la @@ -118,16 +131,39 @@ %clean rm -rf $RPM_BUILD_ROOT +%post +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%{_sbindir}/update-alternatives --install %{_libexecdir}/spice-xpi-client \ + spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer 25 +update-desktop-database -q %{_datadir}/applications + +%postun +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %{_sbindir}/update-alternatives --remove spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer +fi +update-desktop-database -q %{_datadir}/applications + +%posttrans +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %files -f %{name}.lang %defattr(-,root,root,-) %doc README COPYING AUTHORS ChangeLog NEWS %{_bindir}/%{name} +%{_bindir}/remote-viewer %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/ui/ %{_datadir}/%{name}/ui/virt-viewer.xml %{_datadir}/%{name}/ui/virt-viewer-auth.xml %{_datadir}/%{name}/ui/virt-viewer-about.xml -%{_mandir}/man1/%{name}* +%{_datadir}/icons/hicolor/*/apps/* +%{_datadir}/applications/remote-viewer.desktop +%ghost %{_libexecdir}/spice-xpi-client +%{_libexecdir}/spice-xpi-client-remote-viewer +%{_mandir}/man1/virt-viewer.1* +%{_mandir}/man1/remote-viewer.1* %if %{_with_plugin} %files plugin diff --git a/virt-viewer.spec.in b/virt-viewer.spec.in index a4fb25d..ac236f4 100644 --- a/virt-viewer.spec.in +++ b/virt-viewer.spec.in @@ -10,7 +10,11 @@ %endif %define with_spice 0 -%if 0%{?fedora} >= 16 +%if 0%{?fedora} >= 17 +%define with_spice 1 +%endif + +%if 0%{?rhel} >= 6 %define with_spice 1 %endif @@ -29,25 +33,31 @@ Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: openssh-clients +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils +BuildRequires: glib2-devel >= 2.22 %if %{with_gtk3} BuildRequires: gtk3-devel >= 3.0.0 %else BuildRequires: gtk2-devel >= 2.12.0 %endif -BuildRequires: libvirt-devel >= 0.6.0 +BuildRequires: libvirt-devel >= 0.9.7 BuildRequires: libxml2-devel %if %{with_gtk3} -BuildRequires: gtk-vnc2-devel >= 0.4.3 +BuildRequires: gtk-vnc2-devel >= 0.4.0 %else BuildRequires: gtk-vnc-devel >= 0.3.8 %endif %if %{with_spice} %if %{with_gtk3} -BuildRequires: spice-gtk3-devel >= 0.6 +BuildRequires: spice-gtk3-devel >= 0.12.101 %else -BuildRequires: spice-gtk-devel >= 0.6 +BuildRequires: spice-gtk-devel >= 0.12.101 %endif +BuildRequires: spice-protocol >= 0.10.1 %endif BuildRequires: /usr/bin/pod2man BuildRequires: intltool @@ -91,9 +101,9 @@ %endif %if %{with_spice} -%define spice_arg --enable-spice +%define spice_arg --with-spice-gtk %else -%define spice_arg --disable-spice +%define spice_arg --without-spice-gtk %endif %if %{with_gtk3} @@ -109,6 +119,9 @@ %install rm -rf $RPM_BUILD_ROOT %__make install DESTDIR=$RPM_BUILD_ROOT +mkdir -p %{buildroot}%{_libexecdir} +touch %{buildroot}%{_libexecdir}/spice-xpi-client +install -m 0755 data/spice-xpi-client-remote-viewer %{buildroot}%{_libexecdir}/ %if %{_with_plugin} rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.a rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.la @@ -118,16 +131,39 @@ %clean rm -rf $RPM_BUILD_ROOT +%post +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%{_sbindir}/update-alternatives --install %{_libexecdir}/spice-xpi-client \ + spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer 25 +update-desktop-database -q %{_datadir}/applications + +%postun +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %{_sbindir}/update-alternatives --remove spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer +fi +update-desktop-database -q %{_datadir}/applications + +%posttrans +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %files -f %{name}.lang %defattr(-,root,root,-) %doc README COPYING AUTHORS ChangeLog NEWS %{_bindir}/%{name} +%{_bindir}/remote-viewer %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/ui/ %{_datadir}/%{name}/ui/virt-viewer.xml %{_datadir}/%{name}/ui/virt-viewer-auth.xml %{_datadir}/%{name}/ui/virt-viewer-about.xml -%{_mandir}/man1/%{name}* +%{_datadir}/icons/hicolor/*/apps/* +%{_datadir}/applications/remote-viewer.desktop +%ghost %{_libexecdir}/spice-xpi-client +%{_libexecdir}/spice-xpi-client-remote-viewer +%{_mandir}/man1/virt-viewer.1* +%{_mandir}/man1/remote-viewer.1* %if %{_with_plugin} %files plugin