Codebase list virt-viewer / 6de523a
Merge branch 'master' into experimental Guido Günther 11 years ago
173 changed file(s) with 57280 addition(s) and 26237 deletion(s). Raw diff Collapse all Expand all
00 Virt Viewer Authors
11 ===================
22
3 The Virt Viewer application is written by
3 The Virt Viewer application is maintained by
44
5 Daniel P. Berrange <berrange-at-redhat-dot-com>
5 Daniel P. Berrange <berrange@redhat.com> (Original author)
6 Christophe Fergeau <cfergeau@redhat.com>
7 Marc-André Lureau <marcandre.lureau@redhat.com>
8 Hans de Goede <hdegoede@redhat.com>
69
710 With additional patches from:
811
9 Chris Lalancette <clalance-at-redhat-dot-com>
10 Atsushi SAKAI <sakaia-at-jp-dot-fujitsu-dot-com>
11 Richard W.M. Jones <rjones-at-redhat-dot-com>
12 Guido G\374nther <agx-at-sigxcpu-dot-org>
13 Hiroyuki Kaguchi <fj7025cf-at-aa-dot-jp-dot-fujitsu-dot-com>
12 Atsushi SAKAI <sakaia@jp.fujitsu.com>
13 Chris Lalancette <clalance@redhat.com>
14 Guannan Ren <gren@redhat.com>
15 Guido G\374nther <agx@sigxcpu.org>
16 Hans de Goede <hdegoede@redhat.com>
17 Hiroyuki Kaguchi <fj7025cf@aa.jp.fujitsu.com>
18 Jiri Denemark <Jiri.Denemark@gmail.com>
19 Pavel Raiskup <praiskup@redhat.com>
20 Richard W.M. Jones <rjones@redhat.com>
1421 Ronnie Sahlberg <ronniesahlberg@gmail.com>
15 Marc-André Lureau <marcandre.lureau-at-redhat-dot-com>
22 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
23 Yonit Halperin <yhalperi@redhat.com>
24 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
1625
1726 ...send patches to get your name here...
1827
19 The Translation team are listed in the .po files for their
20 languages under the po/ directory.
28 Translations have been provided by
2129
30 <amitakhya@fedoraproject.org>
31 <andreyjktl@fedoraproject.org>
32 <anipeter@fedoraproject.org>
33 <ankit@fedoraproject.org>
34 <aron@fedoraproject.org>
35 <bozzo@fedoraproject.org>
36 <elsupergomez@fedoraproject.org>
37 <enshahar@fedoraproject.org>
38 <fdaluisio@fedoraproject.org>
39 <gcintra@fedoraproject.org>
40 <giallu@fedoraproject.org>
41 <hedda@fedoraproject.org>
42 <htaira@fedoraproject.org>
43 <ifelix@fedoraproject.org>
44 <jassy@fedoraproject.org>
45 <khasida@fedoraproject.org>
46 <kkrothap@fedoraproject.org>
47 <leahliu@fedoraproject.org>
48 <mgiri@fedoraproject.org>
49 <mospina@fedoraproject.org>
50 <mvdz@fedoraproject.org>
51 <rajesh@fedoraproject.org>
52 <raven@fedoraproject.org>
53 <renault@fedoraproject.org>
54 <runab@fedoraproject.org>
55 <samfreemanz@fedoraproject.org>
56 <sandeeps@fedoraproject.org>
57 <shanky@fedoraproject.org>
58 <snicore@fedoraproject.org>
59 <swkothar@fedoraproject.org>
60 <tchuang@fedoraproject.org>
61 <tombo@fedoraproject.org>
62 <tomspur@fedoraproject.org>
63 <warrink@fedoraproject.org>
64 <webappz@fedoraproject.org>
65 <ypoyarko@fedoraproject.org>
66 <yurchor@fedoraproject.org>
67 <zoltanh721@fedoraproject.org>
68 ...and more...
69
70 For full translation credits see the header of the individual
71 files in the po/ directory.
2272
2373 -- End
+1669
-614
ChangeLog less more
0 2012-09-17 Daniel P. Berrange <berrange@redhat.com>
1
2 Update for 0.5.4 releae
3
4 2012-09-14 Daniel P. Berrange <berrange@redhat.com>
5
6 Use a more specific regex to fix enum include paths
7 Simply doing a search replace on $(srcdir) doesn't work very
8 well in non-VPATH builds. Use a more specific regex that won't
9 generate false matches
10
11 Look in builddir for icons & strip build dir prefix from enum file includs
12
13 Don't include generated icons in tar.gz and clean them up
14
15 Convert to use Mingw64 toolchain for Windows biulds
16
17 2012-08-13 Christophe Fergeau <cfergeau@redhat.com>
18
19 Document -f=auto-conf in remote-viewer --help
20 virt-viewer does not support -f=auto-conf so this does not change the
21 option there.
22 Fixes rhbz#718001
23
24 2012-08-10 Christophe Fergeau <cfergeau@redhat.com>
25
26 Use real binary name in help message
27 Now that we have 2 distinct binaries, remote-viewer and virt-viewer,
28 'PACKAGE' can no longer be used in error messages as the name of the
29 binary. This causes a small inconsistency when running
30 'remote-viewer --foobar' as the error message would be:
31 'Unknown option --foobar
32 Run 'virt-viewer --help' to see a full list of available command line options'
33
34 This commit makes sure we use argv[0] for this message.
35 Fixes rhbz#814150
36
37 2012-07-23 Marc-André Lureau <marcandre.lureau@gmail.com>
38
39 Show status page by default if display not ready
40 Switch back to status page if display is not ready.
41
42 Make status widget visible immediately
43 GtkNotebook will use the currently visible widget as default page.
44 If we don't show status widget before we append the display, the
45 current page will be on display. Quoting Gtk+ documentation:
46
47 "Note that due to historical reasons, GtkNotebook refuses to switch to
48 a page unless the child widget is visible. Therefore, it is
49 recommended to show child widgets before adding them to a notebook."
50
51 vnc: when session is disconnected, make the display as non-ready
52
53 Simplify display flag handling
54
55 Add VirtViewerSession::session-display-updated
56 Rebuild menu when agent is connected. Only when the agent is running
57 may a display be enabled/disabled.
58
59 Make the display submenu insensitive if display can't be selected
60
61 spice: factor out main channel lookup code
62
63 Add VirtViewerDisplay::selectable property
64 This property will be set when the display can be selected to be
65 "enabled" and shown (this can involve creating/connecting an
66 additional guest monitor, and may need guest agent cooperation for
67 example).
68
69 Add virt_viewer_window_get_display()
70 Getter used in following changes.
71
72 Hook up handling of Monitors
73 Rely on spice-gtk display channel monitors property to manage
74 displays. The same display channel may now provide several monitors,
75 the SpiceDisplay widget must be told which monitor to display
76
77 Bump glib > 2.22, add compat file
78 We use API from 2.22, and some from further version. Add
79 virt-glib-compat.h fallback file for those.
80
81 Use SpiceDisplay:ready property instead of channel mark
82 The display can now check several conditions before the display can be
83 shown, use that instead of display mark, which was not high-level
84 enough.
85
86 Number display starting from 1
87
88 Prevent from adding the same display several time in the session
89 In virt_viewer_session_spice_display_monitors(), we (re)add the
90 display unconditionnaly every time we receive a new MonitorConfig.
91
92 Add a DISABLED display hint
93 This flag will help to track whether the display has been
94 removed/closed and whether it really has a valid display.
95
96 Ready in contrast, is used to "hide" temporarily the display (when
97 starting or redrawing the display, to avoid artifacts)
98
99 Use virt_viewer_connect_object() for display
100 When display is released, detach signal automatically.
101
102 Fix various crash related to not cleaning up signal handlers properly,
103 due to no longer 1-1 only relation between display widget and channel.
104
105 Rebuild display menu when a window is added or removed
106
107 Mark a menu string as translatable
108
109 Run-time check values before doing bad computation
110
111 Turn display:show-hint into flags type
112
113 Destroy dialog immediately after run
114 If the parent is already destroyed, it looks like the dialog is
115 destroyed too. This avoids a crash when calling app_quit().
116
117 build: generate enums type boilerplate
118
119 spice: disconnect signal handlers when either object is destroyed
120 Use virt_viewer_signal_connect_object(), a copy of telepathy
121 utility function tp_g_signal_connect_object(). This function
122 will take care of removing signal handler if any of emitter or
123 attached object are destroyed.
124
125 The following patches will have this condition met, since there is no
126 longer 1-1 relation between channel and display. The channels can
127 continue to be around when some of the display are removed.
128
129 spice: improve fullscreen=auto-conf
130 Do keep client monitor position, do not align monitors automatically.
131 The align property is only available since v0.12.101.
132
133 2012-07-03 Marc-André Lureau <marcandre.lureau@gmail.com>
134
135 build: allow building with newer glibc-headers and -O0
136 Fix copied from libvirt, commit by Eric Blake.
137
138 glibc 2.15 (on Fedora 17) coupled with explicit disabling of
139 optimization during development dies a painful death:
140
141 /usr/include/features.h:314:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
142
143 Work around this by only conditionally defining _FORTIFY_SOURCE,
144 in the case where glibc can actually use it. The trick is using
145 AH_VERBATIM instead of AC_DEFINE.
146
147 2012-06-15 Christophe Fergeau <cfergeau@redhat.com>
148
149 Revert "Fix virt_viewer_app_activate return value"
150 This reverts commit 3ce6df7c309068f36e2602692da809a153ed5688. This
151 commit broke virt-viewer which expects this function to return -1
152 or 0 on error, and a positive value on success in
153 virt_viewer_initial_connect.
154
155 2012-06-13 Christophe Fergeau <cfergeau@redhat.com>
156
157 Fix virt_viewer_app_activate return value
158 VirtViewerApp::activate is expected to return -1 on errors.
159 It calls the VirtViewerSession::open_* methods, which return FALSE
160 on error. However, VirtViewerApp::activate directly returns these
161 boolean instead of testing the returned value and properly returning
162 -1 on errors. This caused errors in these open methodes to be ignored.
163
164 Fix various memory leaks
165 ==25063== 59 bytes in 1 blocks are definitely lost in loss record 5,163 of 9,502
166 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263)
167 ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159)
168 ==25063== by 0x3DE3862D0B: g_strdup (gstrfuncs.c:356)
169 ==25063== by 0x41F40A: connected (remote-viewer-main.c:186)
170 ==25063== by 0x3DE400F663: g_closure_invoke (gclosure.c:777)
171 ==25063== by 0x3DE40206D7: signal_emit_unlocked_R (gsignal.c:3547)
172 ==25063== by 0x3DE402866C: g_signal_emit_valist (gsignal.c:3296)
173 ==25063== by 0x3DE4028CCF: g_signal_emit_by_name (gsignal.c:3389)
174 ==25063== by 0x41AA53: reemit_signal_VOID (virt-viewer-session-ovirt.c:211)
175 ==25063== by 0x3DE400F942: _g_closure_invoke_va (gclosure.c:840)
176 ==25063== by 0x3DE4027D87: g_signal_emit_valist (gsignal.c:3207)
177 ==25063== by 0x3DE4028CCF: g_signal_emit_by_name (gsignal.c:3389)
178
179 ==25063== 14 bytes in 1 blocks are definitely lost in loss record 623 of 9,502
180 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263)
181 ==25063== by 0x34561092F7: __vasprintf_chk (vasprintf_chk.c:82)
182 ==25063== by 0x3DE3882F1A: g_vasprintf (stdio2.h:199)
183 ==25063== by 0x3DE3862EDC: g_strdup_vprintf (gstrfuncs.c:509)
184 ==25063== by 0x3DE3862F7B: g_strdup_printf (gstrfuncs.c:535)
185 ==25063== by 0x40CBAE: virt_viewer_app_update_pretty_address (virt-viewer-app.c:1538)
186 ==25063== by 0x40FB55: virt_viewer_app_free_connect_info (virt-viewer-app.c:1707)
187 ==25063== by 0x40FBE9: virt_viewer_app_dispose (virt-viewer-app.c:1291)
188 ==25063== by 0x3DE40144F7: g_object_unref (gobject.c:2981)
189 ==25063== by 0x40C31A: main (remote-viewer-main.c:336)
190
191 ==25063== 10 bytes in 1 blocks are definitely lost in loss record 491 of 9,502
192 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263)
193 ==25063== by 0x34561092F7: __vasprintf_chk (vasprintf_chk.c:82)
194 ==25063== by 0x3DE3882F1A: g_vasprintf (stdio2.h:199)
195 ==25063== by 0x3DE3862EDC: g_strdup_vprintf (gstrfuncs.c:509)
196 ==25063== by 0x3DE3862F7B: g_strdup_printf (gstrfuncs.c:535)
197 ==25063== by 0x40DE36: window_update_menu_displays_cb (virt-viewer-app.c:1640)
198 ==25063== by 0x3DE383833F: g_hash_table_foreach (ghash.c:1524)
199 ==25063== by 0x3DE400F663: g_closure_invoke (gclosure.c:777)
200 ==25063== by 0x3DE40206D7: signal_emit_unlocked_R (gsignal.c:3547)
201 ==25063== by 0x3DE402866C: g_signal_emit_valist (gsignal.c:3296)
202 ==25063== by 0x3DE40287C1: g_signal_emit (gsignal.c:3352)
203 ==25063== by 0x5772F95: gtk_widget_show (gtkwidget.c:3225)
204
205 ==25063== 8,431 (72 direct, 8,359 indirect) bytes in 1 blocks are definitely lost in loss record 9,468 of 9,502
206 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263)
207 ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159)
208 ==25063== by 0x3DE38616B1: g_slice_alloc (gslice.c:1003)
209 ==25063== by 0x3DE3861C05: g_slice_alloc0 (gslice.c:1029)
210 ==25063== by 0x3DE402F96F: g_type_create_instance (gtype.c:1872)
211 ==25063== by 0x3DE40147A7: g_object_constructor (gobject.c:1849)
212 ==25063== by 0x3DE4016260: g_object_newv (gobject.c:1632)
213 ==25063== by 0x3DE40168AB: g_object_new (gobject.c:1542)
214 ==25063== by 0x40C4BD: virt_viewer_util_load_ui (virt-viewer-util.c:41)
215 ==25063== by 0x40C7EB: virt_viewer_auth_collect_credentials (virt-viewer-auth.c:43)
216 ==25063== by 0x41B391: authenticate_cb (virt-viewer-session-ovirt.c:430)
217 ==25063== by 0x3458C05E8F: ffi_call_unix64 (unix64.S:75)
218
219 ==25063== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 3,962 of 9,502
220 ==25063== at 0x4A0884D: malloc (vg_replace_malloc.c:263)
221 ==25063== by 0x3DE384D2BE: g_malloc (gmem.c:159)
222 ==25063== by 0x3DE38616B1: g_slice_alloc (gslice.c:1003)
223 ==25063== by 0x3DE38629F2: g_slist_append (gslist.c:222)
224 ==25063== by 0x41483C: virt_viewer_window_init (virt-viewer-window.c:323)
225 ==25063== by 0x3DE402FA05: g_type_create_instance (gtype.c:1892)
226 ==25063== by 0x3DE40147A7: g_object_constructor (gobject.c:1849)
227 ==25063== by 0x3DE4015D70: g_object_newv (gobject.c:1713)
228 ==25063== by 0x3DE401655F: g_object_new_valist (gobject.c:1830)
229 ==25063== by 0x3DE4016893: g_object_new (gobject.c:1545)
230 ==25063== by 0x40DA34: virt_viewer_app_window_new (virt-viewer-app.c:590)
231 ==25063== by 0x40E300: virt_viewer_app_constructor (virt-viewer-app.c:1336)
232
233 ==30355== 4 bytes in 1 blocks are definitely lost in loss record 53 of 9,267
234 ==30355== at 0x4A0884D: malloc (vg_replace_malloc.c:263)
235 ==30355== by 0x3DE384D2BE: g_malloc (gmem.c:159)
236 ==30355== by 0x3DE3862D0B: g_strdup (gstrfuncs.c:356)
237 ==30355== by 0x3DE40360FC: value_copy_string (gvaluetypes.c:276)
238 ==30355== by 0x3DE40340CA: g_value_transform (gvalue.c:535)
239 ==30355== by 0x3FDAE621DD: gdk_screen_get_setting (gdkevents-x11.c:3022)
240 ==30355== by 0x3FDB3C7415: gtk_settings_get_property (gtksettings.c:1152)
241 ==30355== by 0x3DE4017A74: g_object_get_property (gobject.c:1289)
242 ==30355== by 0x414991: virt_viewer_window_disable_modifiers (virt-viewer-window.c:616)
243 ==30355== by 0x415922: virt_viewer_window_keyboard_grab (virt-viewer-window.c:931)
244 ==30355== by 0x3DE400F942: _g_closure_invoke_va (gclosure.c:840)
245 ==30355== by 0x3DE4027D87: g_signal_emit_valist (gsignal.c:3207)
246
247 Don't leak SPICE ticket
248
249 2012-05-17 Marc-André Lureau <marcandre.lureau@gmail.com>
250
251 spice: use weak references to display channel
252 Fix switch-host migration with Spice.
253
254 spice-gtk doesn't like channels staying around when they should be
255 destroyed/finalized, ie removed from session.
256
257 spice-gtk should probably learned to handle better the case of non
258 cooperating clients, and be able to dissociate a channel from a
259 session without waiting for it to be disposed, but for now, the
260 relation is quite tight.
261
262 2012-05-15 Daniel P. Berrange <berrange@redhat.com>
263
264 Avoid use of deprecated GTK3 pointer APIs
265 The gtk_widget_get_pointer() API is deprecated in GTK3 since it
266 is not aware of multiple pointers. Replace its usage in autoDrawer.c
267 with GdkDeviceManager and friends
268
269 Adapt to avoid use of deprecated GTK3 style & size APIs
270 The GtkStyle API has been deprecated in favour of GtkStyleContext.
271 Update ovBox.c to use the latter if building with GtK3. Also replace
272 use of the gtk_widget_size_request API with gtk_widget_get_preferred_size.
273
274 2012-05-15 Marc-André Lureau <marcandre.lureau@gmail.com>
275
276 Release v0.5.3
277
278 nsis: fix .nsis file paths
279 - look up for icons under the DESTDIR directory
280 - don't ship gstaudiofx, unneeded
281 - add missing libtasn
282
283 2012-05-14 Marc-André Lureau <marcandre.lureau@gmail.com>
284
285 dist: ship .ico in tarball
286 Some distros (a 4-letters) don't have icotool.
287 Let's ship the .ico in the tarball.
288
289 The build will fail if icoutil is not installed when
290 building from git or when the .ico is absent. The error
291 should be explicit.
292
293 nsis: IE policy to launch silentely remote-viewer
294 Add IE ElevationPolicy for the remote-viewer client.
295
296 http://msdn.microsoft.com/en-us/library/bb250462%28v=vs.85%29.aspx
297
298 nsis: fix removal of start menu directory
299
300 2012-05-08 Daniel P. Berrange <berrange@redhat.com>
301
302 Avoid race condition when disposing of app
303 When disposing of the VirtViewerApp, we free the hash table
304 containing the windows. This causes each window to be freed,
305 which in turn causes the visibility callback to be invoked.
306 This can then get NULL pointers from the self->priv->windows
307 usage.
308
309 Blank out priv->windows before unrefing the hashs and add
310 a check to ensure priv->windows is non-NULL.
311
312 2012-05-04 Daniel P. Berrange <berrange@redhat.com>
313
314 Ensure windows are destroyed when display closes
315 When running virt-viewer with the --reconnect argument, when
316 the session closes, the VirtViewerWindow instances were being
317 freed, but not the GtkWindow itself. So the orphaned window
318 stayed around doing nothing. The GtkBuilder instance was also
319 leaked.
320
321 Fix these two leaks & also add some debugging to help future
322 troubleshooting
323
324 2012-05-02 Daniel P. Berrange <berrange@redhat.com>
325
326 Change 'OK' button to 'Close' button in USB device selection
327 The USB device selection applies immediately, so the dialog
328 should be using 'Close' instead of 'OK' for its primary button
329
330 2012-04-27 Christophe Fergeau <cfergeau@redhat.com>
331
332 g_getenv returns a const string
333 When switching from getenv to g_getenv, 'doms' declaration
334 wasn't changed from char * to const char *, which causes
335 a gcc warning.
336
337 2012-04-26 Daniel P. Berrange <berrange@redhat.com>
338
339 Replace getenv/setenv with g_getenv/g_setenv for Win32 portability
340
341 2012-04-25 Daniel P. Berrange <berrange@redhat.com>
342
343 Add debugging when performing fullscreen auto-configuration
344
345 Refresh translations from transifex
346
347 Really fix debug output on glib >= 2.31
348
349 Fix debug output on glib >= 2.31
350
351 2012-04-23 Daniel P. Berrange <berrange@redhat.com>
352
353 Set the remote-viewer binary application name
354 Currently the window titles for remote-view have 'remote-viewer'
355 appended them. This is based off the argv[0] name. We should be
356 setting the GLib application name though, so we can get a localized
357 'Remote Viewer' string in the titlebar
358
359 Add support for raw IPv6 addresses in VNC & libvirt URIs
360 Support vnc://[x:y:z:]:5901/ for raw IPv6 addresses in URIs,
361 and qemu+ssh://root@[x:y:x:]:22/ for raw IPv6 addresses in
362 libvirt URIs
363
364 2012-04-19 Daniel P. Berrange <berrange@redhat.com>
365
366 Fix scaling of window to avoid integer truncation
367 Use round() instead of integer truncation when scaling the window,
368 to avoid floating point precision problems on i386
369
370 2012-04-18 Daniel P. Berrange <berrange@redhat.com>
371
372 Add a desktop file for launching remote-viewer
373 Enable automagic handling of spice:// URLs in firefox by
374 registering a desktop handler for remote-viewer with the
375 SPICE URI scheme
376
377 2012-04-17 Daniel P. Berrange <berrange@redhat.com>
378
379 Give remote-viewer priority over spicec for spice-xpi-client
380
381 Add manpage docs for the --attach option
382
383 Fix manpage to s/--fullscreen/--full-screen/
384
385 2012-04-17 Christophe Fergeau <cfergeau@redhat.com>
386
387 Fix automatic usb redir through controller
388 remote-viewer is currently trying to use
389 SpiceUsbDeviceManager::auto-connect to control whether USB devices
390 should be automatically connected or not. However, this property
391 is more or less an internal spice-gtk property which is toggled
392 by SpiceGtkSession when the SPICE widget gets/loses focus.
393
394 SpiceGtkSession has an "auto-usbredir" property which can be used
395 by applications to enable/disable automatic usb redirection through
396 SPICE. Since this property is helpfully bound to
397 VirtViewerSession::auto-usbredir, use this when the controller
398 is told to enable/disable USB redirection.
399
400 Without this change, automatic USB redirection will always get reenabled
401 as soon as there's a focus change since SpiceGtkSession::auto-usbredir
402 defaults to be enabled in spice-gtk.
403
404 2012-04-05 Daniel P. Berrange <berrange@redhat.com>
405
406 Ensure windres & icotool are present on Win32 builds
407 Builds are failing with an obscure error message
408
409 make[3]: Entering directory `/var/lib/builder/source-root/virt-viewer/build/icons'
410 GEN virt-viewer.ico
411 /bin/sh: -c: command not found
412 make[3]: *** [virt-viewer.ico] Error 127
413
414 This is because configure.ac does not enforce that icotool
415 is present on Win32.
416
417 * configure.ac: Mandate windres & icotool on Win32
418
419 Require F17 for spice in RPM builds
420
421 Exclude windows-cmdline-wrapper.c from some syntax check rules
422
423 Add Yonit to authors file
424
425 Fix some syntax violations in git.mk
426
427 2012-04-05 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
428
429 Minor simplification/optimization of VirtViewerDisplay
430
431 2012-04-04 Daniel P. Berrange <berrange@redhat.com>
432
433 Fix typo in variable names for Win32 command helper
434
435 Fix close of VNC displays
436 When clicking the close button on a virt-viewer window with
437 a VNC session open, while the VNC session terminates, the
438 window does not go away.
439
440 The problem is that the virt_viewer_session_vnc_disconnected
441 method never gets invoked. The close button triggers a call
442 to virt_viewer_session_clear_displays which unrefs the
443 VirtViewerDisplayVnc instance. This in turn triggers a call
444 to gtk_container_destroy, which destroys all widgets it
445 contains, ie the VncDisplay * object.
446
447 With the VncDisplay object in its dispose phase, no signals
448 will ever be emitted, thus the 'vnc-disconnected' signal
449 never gets seen.
450
451 The design issue is that VirtViewerDisplayVnc is assuming
452 it owns the VncDisplay, whereas in fact the real owner is
453 the VirtViewerSessionVnc object.
454
455 The solution is to introduce a new virt_viewer_display_close
456 method which can be used to de-parent the widget before
457 VirtViewerDisplay is unref'd.
458
459 The VirtViewerSessionVnc object also needs to hold a full ref
460 on the VncDisplay object, not merely a floating reference
461
462 * virt-viewer-display-spice.c, virt-viewer-display.c,
463 virt-viewer-display.h: Add virt_viewer_display_close
464 * virt-viewer-display-vnc.c: Deparent VNC widget in
465 virt_viewer_display_close impl
466 * virt-viewer-session-vnc.c: Improve logging
467 * virt-viewer-session.c: Call virt_viewer_display_close
468 before unrefing display
469 * virt-viewer-window.c: Improve logging
470
471 2012-04-04 Christophe Fergeau <cfergeau@redhat.com>
472
473 Propagate USB redirection controller messages
474
475 2012-04-03 Yonit Halperin <yhalperi@redhat.com>
476
477 Add support for the SPICE properties disable-effects & color-depth
478
479 2012-04-03 Christophe Fergeau <cfergeau@redhat.com>
480
481 build-sys: fix Windows specific LDFLAGS on non-mingw
482
483 2012-04-02 Marc-André Lureau <marcandre.lureau@gmail.com>
484
485 nsis: fix a few missing icons
486
487 nsis: add the remote-viewer cmdline wrapper
488
489 remote-viewer: make it a GUI/windows application with hybrid console
490 If the application can attach to its parent console, redirect
491 input/output. So that will work nicely with the command line wrapper.
492
493 Add a Windows command line wrapper
494 Add a small command line wrapper, to be able to call GUI/windows application from the console
495
496 2012-04-01 Marc-André Lureau <marcandre.lureau@gmail.com>
497
498 Disable mnemonics via gtk-enable-mnemonics settings
499 This has 2 advantages, and I can't figure any drawback:
500 - it fixes the issue of mnemonic hints being draw when pressing Alt
501 key (character underlined), even when they were disabled.
502 - it simplifies the code :)
503
504 Disable menu items that would fail when there is no display
505
506 build-sys: simplify autogen.sh
507 It should support NOCONFIGURE=1 ./autogen.sh && mingw32-configure
508
509 2012-03-30 Marc-André Lureau <marcandre.lureau@gmail.com>
510
511 build-sys: use git.mk to generate gitignore
512 This makefile is just fantastic, it forces you into good practices,
513 support various build targets (my windows builddir ignore the right
514 files etc..)
515
516 The more I use it, the more I like it.
517
518 win32: add a few Windows sepecific data
519 Add application icon and manifest
520
521 win32: clean-up the NSIS installer, allow user install
522
523 Fix recent --spice-controller regression, add error message
524 The current code will attempt to dereference args if
525 --spice-controller, even if args is NULL.
526
527 Let's not accept any extra argument/uri on the command line if using
528 the controller. Beside, the conditionnal block looks better outside of
529 the if condition.
530
531 2012-03-29 Hans de Goede <hdegoede@redhat.com>
532
533 usbredir: listen for device-error signal
534
535 2012-03-29 Marc-André Lureau <marcandre.lureau@gmail.com>
536
537 remote-viewer: press Enter to connect in dialog
538
539 Remove unused variable i
540
541 remote-viewer: add a simple connection dialog
542 If the user doesn't provide URI, let's show a simple dialog to enter it.
543
544 Also save & list recently used URLs in that dialog.
545
546 Fix g_thread_init deprecation warning
547 Although the doc says it is only deprecated since >2.32, it's actually
548 >2.31 according to glib git log.
549
550 2012-03-21 Marc-Andre Lureau <marcandre.lureau@redhat.com>
551
552 Do not warn if the display is shown and not ready
553 Lower warning message to debug level. There are various racy ways it
554 ends up calling show_display although the display is not yet
555 ready. This is not such a big problem, although it would be nice to
556 handle this case better
557
558 Notify focus state when the foreign menu title is set
559 The current code only inform of focus state when the listener is ready.
560 spice-gtk controller code lacks signal when a client connects, but a
561 client will set the title when connected and send a notify signal.
562 Use this event to notify of application focus state.
563
564 Do not try to unref NULL menu
565
566 Don't leak foreign menu
567 The RemoveViewer object will have its own ref.
568
569 2012-03-21 Marc-André Lureau <marcandre.lureau@gmail.com>
570
571 spice: handle switch-host event
572 Do not disconnect session when switching host (non-seamless migration
573 method).
574
575 Also, handle a bit better main channel events and do not disconnect on
576 unknown events, however raise unhandled event message to warning
577 level.
578
579 spice: remove usage of deprecated audio api
580
581 Display correct key bindings to release cursor
582 If the accels are enabled (with Spice controller custom bindings),
583 show the configured keybinding in the title bar.
584
585 spice: implement --fullscreen=auto-conf
586 - auto-conf is an optionnal argument to --fullscreen:
587 it will set the guest display configuration to match the client
588 display configuration, by sending the client monitors size and
589 position to capable guests.
590
591 2012-03-18 Marc-André Lureau <marcandre.lureau@gmail.com>
592
593 Fix indentation
594
595 2012-03-16 Marc-André Lureau <marcandre.lureau@gmail.com>
596
597 Do not crash so easily when given invalid uri
598 'remote-viewer foobar' shouldn't crash
599
600 2012-03-13 Daniel P. Berrange <berrange@redhat.com>
601
602 Updated translations
603
604 2012-03-09 Marc-André Lureau <marcandre.lureau@gmail.com>
605
606 Make sure we call g_thread_init()
607 GThread is needed by spice-gtk
608
609 Notify of focus state when a client connects
610 The current code notifies the controller when the remote-viewer
611 application starts, but not when the client is connected. We should do
612 the later instead
613
614 2012-03-09 Daniel P. Berrange <berrange@redhat.com>
615
616 Update NEWS for 0.5.2 release
617
618 Import newer translations from transifex
619
620 Fix libvirt/SPICE min versions
621 We require libvirt >= 0.9.7 to get virDomainOpenGraphics
622
623 We require spice-gtk >= 0.11 to get the fix for dealing with
624 authentication over an SSH tunnel
625
626 We requires spice-protocol >= 0.10.1 to get a constant
627 required by USB redirection
628
629 2012-03-08 Marc-André Lureau <marcandre.lureau@gmail.com>
630
631 Add a send-key menu in fullscreen
632
633 2012-03-07 Marc-André Lureau <marcandre.lureau@gmail.com>
634
635 build: fix autogen message
636 When running ./autogen.sh on a pristine git checkout, I got:
637
638 libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
639 libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
640 You should add the contents of '/usr/share/aclocal/intltool.m4' to 'aclocal.m4'.
641
642 2012-03-07 Hans de Goede <hdegoede@redhat.com>
643
644 virt-viewer-window: Don't try to resize non visible windows
645 Trying to resize not visible windows leads to the following being printed
646 to the console:
647 Gdk-CRITICAL **: IA__gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)'
648
649 This gets triggered by the gdk_screen_get_monitor_geometry() call in
650 virt_viewer_window_resize()
651
652 virt-viewer-window: Add show / hide utility functions
653
654 virt-viewer-window: Move checks before resize to virt_viewer_window_resize
655
656 virt-viewer-window: Remove useless tests for priv->window != NULL
657 priv->window gets set on init and never unset, so there is no need to check
658 for it.
659
660 2012-03-07 Daniel P. Berrange <berrange@redhat.com>
661
662 Update AUTHORS file
663
664 Refresh translations
665
666 2012-03-06 Hans de Goede <hdegoede@redhat.com>
667
668 virt-viewer-window: Add a USB device selection to the fullscreen menu (v2)
669 Note this button only gets shown on USB redir capable virtual machines.
670
671 Changes in v2:
672 -Use gtk_widget_set_visible for simpler code
673
674 window: Call virt_viewer_app_quit instead of gtk_main_quit
675 When quiting from the fullscreen menu call virt_viewer_app_quit instead of
676 gtk_main_quit so that the session gets properly disconnected before quiting.
677
678 virt_viewer_app_quit: Cleanly close the connection before quiting
679 Even though the previous patches in this series ensure that the session
680 gets properly finalized, we still need to wait for the disconnect signal,
681 as spice-glib uses co-routines which need some time to cleanly close the
682 connection / session.
683
684 session-spice: Delay the disconnected signal till all channels are closed
685 Before this patch session-spice would emit the disconnected signal as soon
686 as the main channel is closed, but other channels may still be open at
687 that time and raising the disconnected signal usally leads to the app class
688 calling gtk_main_quit, at which point the other channels never get properly
689 finalized (as there co-routines still hold a reference to them).
690
691 This is esp. bad for usbredir channels as these re-attach the kernel driver
692 for redirected devices when finalized. So exiting without properly finalizing
693 them leads to the formerly redirected devices not being usuable until the
694 driver is manually reloaded or the device is unplugged and re-plugged
695 (the kernel does not automatically re-bind kernel drivers when userspace
696 closes a usbfs node).
697
698 This patch fixes this by delaying the emitting of the disconnect signal
699 until the last channel has been destroyed.
700
701 virt-viewer-app: unref the session on dispose
702 With this patch combined with the previous patches in this series, the
703 VirtViewerSession (finally) gets properly finalized on exit.
704
705 virt-viewer-display: Use a borrowed reference to session
706 Before this patch there was a cyclic reference between VirtViewerSesion and
707 VirtViewerDisplay, since all VirtViewerDisplays are created / destroyed by
708 VirtViewerSession it is safe to assume that lifetime of VirtViewerSession >=
709 VirtViewerDisplay, so VirtViewerDisplay can take a borrowed reference
710 breaking the circle, and allowing proper cleanup on exit.
711
712 Note that there is no g_object_unref removed from virt-viewer-display, this
713 because there is no finalize / dispose and before this patch
714 VirtViewerDisplay never unref-ed the reference it hold to the session.
715
716 virt-viewer-window: Use a borrowed reference to app
717 Before this patch there was a cyclic reference between VirtViewerApp and
718 VirtViewerWindow, since all VirtViewerWindows are created / destroyed by
719 VirtViewerApp it is safe to assume that lifetime of VirtViewerApp >=
720 VirtViewerWindow, so VirtViewerWindow can take a borrowed reference
721 breaking the circle, and allowing proper cleanup on exit.
722
723 virt-viewer-app: main_window is part of our windows hashtable
724 This means that:
725 1) There is no need to explictly set its title separately
726 2) It is unref-ed when we do g_hash_table_unref(priv->windows), so it
727 should not be unref-ed separately otherwise it is unref-ed twice!
728
729 Notice that 2 was never a problem because of circular references
730 between VirtViewerApp and VirtViewerWindow, but once the follow
731 up patch to this one breaks the circle 2 becomes an issue.
732
733 session-spice: dispose should chain up to dispose not finalize!!
734
735 usbredir: Gnome HIG-ify USB device selection dialog
736 These changes match the changes already made to the spice-gtk
737 usb device selection widget to match the spacing advised by the Gnome HIG.
738
739 usbredir: Shrink the usb device selection dialog when devices are unplugged
740
741 2012-03-05 Christophe Fergeau <cfergeau@redhat.com>
742
743 Don't attempt to translate ""
744 The empty string has a magic meaning for gettext, it's used to
745 store a translation header with all kind of information about the
746 po file. This is not something we want to use as a window title, so
747 change to _("") to "" when we want an empty string.
748
749 Fix path to spice-controller.h
750
751 2012-03-01 Daniel P. Berrange <berrange@redhat.com>
752
753 Remove trailing blank line
754
755 2012-03-01 Marc-André Lureau <marcandre.lureau@gmail.com>
756
757 fix make distcheck
758
759 Prepare for release 0.5.2
760
761 update .mailmap
762
763 2012-03-01 Marc-Andre Lureau <marcandre.lureau@redhat.com>
764
765 remote-viewer: support spice foreign menu
766
767 2012-03-01 Marc-André Lureau <marcandre.lureau@gmail.com>
768
769 Add property app:has-focus
770
771 Fix compilation with gtk 2.18
772
773 spice: fix connecting via ssh to a password-protected server
774 spice_session_connect() will attempt to connect directly to the
775 server, we need to continue calling spice_session_open_fd() for ssh
776 tunnel to work.
777
778 spice: fix double unref of main channel
779 When doing unref() on a channel, channel-destroy signal may be emitted
780 during object dispose time, and it will attempt to unref() the channel
781 again likely leading to a crash.
782
783 It may be that spice-gtk should have a different/simpler object
784 life-cycle model, but it's also a good assumption to not take strong
785 references on the channels, but just keep a weak reference as the
786 session is really the channel life-cycle manager.
787
788 https://bugzilla.redhat.com/show_bug.cgi?id=797082
789
790 2012-02-27 Daniel P. Berrange <berrange@redhat.com>
791
792 Import translations
793
794 2012-02-23 Marc-André Lureau <marcandre.lureau@gmail.com>
795
796 nsis: set HKCU "Software\spice-space.org\spicex\client"
797 With recent RHEV portal plugin, the Spice client is chosen according
798 to this key.
799
800 2012-02-22 Marc-André Lureau <marcandre.lureau@gmail.com>
801
802 remote-viewer: add smartcard controller message
803
804 spice: teach customizable key bindings with controller
805 Tested with RHEVM 3.0 instance with custom bindings for fullscreen &
806 ungrab.
807
808 Small code simplification
809
810 Use the accelgroup to define key bindings
811 With accelgroups, we can redefine the keybindings
812
813 Add hidden menu smartcard remove/insert and release-cursor
814
815 Add virt_viewer_app_get_session()
816
817 spice: implement smartcard-{insert,remove} virtual methods
818
819 Add smartcard-{insert,remove} and release-cursor virtual methods
820
821 Do not disable accelgroup if accels are enabled
822
823 Add VirtViewerApp:enable-accel property
824
825 Require an accel group for full-screen menu
826 Bump Gtk depedency to 2.18, since we already use symbols from it.
827
828 2012-02-17 Daniel P. Berrange <berrange@redhat.com>
829
830 Prepare for release 0.5.1
831
832 2012-02-16 Daniel P. Berrange <berrange@redhat.com>
833
834 Remove virt-viewer.pot from git, as it is generated dynamically
835
836 Add back compat for GObject 2.22 which lacks GBinding
837
838 Relax GTK-VNC version again
839 A previous commit needlessly increased the min required GTK-VNC
840
841 Only link remote-viewer program against SPICE controller
842
843 Remove use of a libtool convenience library
844 The use of a libtool convenience library causes some platforms to
845 loose the ability to use the GNU_RELRO security feature in the
846 resulting binary. Refactor the makefile to simply compile the
847 common files twice, once for virt-viewer & once for remote-viewer
848
849 Import latest translations from transifex
850
851 2012-02-15 Daniel P. Berrange <berrange@redhat.com>
852
853 Adjust POTFILES.in check to strip type prefix
854
855 Add transifex configuration file
856
857 2012-02-14 Daniel P. Berrange <berrange@redhat.com>
858
859 Fix inclusion of GtkBuilder files in virt-viewer.pot
860
861 Refresh translation files
862
863 Update for release 0.5.0
864
865 2012-02-14 Marc-André Lureau <marcandre.lureau@gmail.com>
866
867 First %d in controller title should be substituted with window nth
868
869 Add libp11-kit-0.dll to nsis script
870
871 2012-02-14 Daniel P. Berrange <berrange@redhat.com>
872
873 Set pretty icon for remote-viewer windows too
874
875 Don't hardcode 'localhost' in no @listen parameter is given
876 If no @listen parameter is given, we must not hardcode 'localhost'
877 since we can't assume we are running on the same host. Instead use
878 the hostname from the connection URI
879
880 Extract tlsPort for SPICE and use it to enable secure connections
881
882 2012-02-08 Daniel P. Berrange <berrange@redhat.com>
883
884 Don't do whitespace checks on icons
885
886 Set transient parent for screenshot dialog
887
888 Ensure auth popup windows have correct transient parent
889
890 2012-02-08 Marc-André Lureau <marcandre.lureau@gmail.com>
891
892 Make the password field activates default widget
893 When pressing "Enter", the default auth dialog action isn't activated.
894 Setting activates_default to TRUE fixes this issue.
895
896 Do not resize guest desktop if !auto-resize
897 If auto-resize is enabled, the guest desktop size will be resized to
898 match current window*zoom size.
899
900 This can be a problem if the user explicitely set the desktop size to
901 a different resolution and want to keep it. Disabling auto-resize
902 sounds like a simple way to allow that.
903
904 Resize Spice guest display to the container size
905 The SpiceDisplay doesn't receive the full allocation, because
906 VirtViewerDisplay maintains current aspect ratio. However, the guest
907 display can be resize up to its container size.
908
909 This fixes going full-screen and not getting native resolution for
910 instance.
911
912 2012-02-08 Daniel P. Berrange <berrange@redhat.com>
913
914 Ensure About dialog has transient hints setup
915
916 Import a pretty icon for virt-viewer application
917
918 Re-added GtkBuilder XML files to POTFILES.in
919 Adapt syntax-check rule to allow XML files in POTFILES.in and
920 re-add the GtkBuilder XML files
921
922 Implement SPICE desktop resizing that takes account of zoom level
923 The standard SPICE widget guest resize implementation does not
924 take into account the zoom level settings in virt-viewer, because
925 it has no knowledge of this functionality. The guest resize can,
926 however, be done by calling spice_main_set_display() directly.
927 This allows virt-viewer to resize the guest taking into account
928 zoom levels.
929
930 ie, if virt-viewer is run with --zoom 50 and the window
931 is resized to 400x300, then the guest agent should
932 be told to set its resolution to 800x600
933
934 2012-02-07 Daniel P. Berrange <berrange@redhat.com>
935
936 Revert support for resizing guest desktop
937 The SpiceDisplay widget has built-in support for resizing the
938 guest desktop, but this does not know that virt-viewer has a
939 zoom level setting. This makes the virt-viewer zoom completely
940 inoperable. Revert use of the 'resize-guest' property.
941
942 2012-02-06 Marc-André Lureau <marcandre.lureau@gmail.com>
943
944 Add spice-xpi-client-remote-viewer alternative
945
946 man: add remote-viewer man page
947
948 2012-02-06 Daniel P. Berrange <berrange@redhat.com>
949
950 Import GNULIB rules for syntax checking code
951
952 Add config.h to every source file
953
954 Use exit() constants
955
956 copyright fix
957
958 End of file whitespace cleanup
959
960 Update POTFILES.in
961
962 Replace @FOO@ with $(FOO) in all Makefile.am
963
964 Update copyright headers
965
966 Remove useless if() before free()
967
968 Update AUTHORS file
969
970 Simplify no-op debug macro & fix plugin header
971
972 Fix makefile.am subsitutions for plugin
973
974 Convert TABS to spaces & reindent everywhere
975
976 2012-02-06 Hans de Goede <hdegoede@redhat.com>
977
978 Only make the USB device selection sensitive when the vm is USB capable
979
980 Add a menu entry for USB device selection
981
982 2012-02-06 Marc-André Lureau <marcandre.lureau@gmail.com>
983
984 Grab the focus when showing the display
985 Override the grab_focus() method in the display class. Since both VNC
986 and Spice displays are the direct child, let's just grab the child.
987 It can be that this behaviour need to be overriden if Spice or VNC
988 display become more complex (using sub-childs or different objects)
989
990 2012-01-31 Daniel P. Berrange <berrange@redhat.com>
991
992 Ignore more generated files
993
994 2012-01-31 Guannan Ren <gren@redhat.com>
995
996 Disconnect virt-viewer when receiving signal session-cancelled
997
998 Register a new signal session-cancelled
999
1000 Tune the first argument in calls to g_type_class_add_private()
1001
1002 2012-01-31 Daniel P. Berrange <berrange@redhat.com>
1003
1004 Support for virDomainOpenGraphics API
1005 Add a new flag --attach, which instructs virt-viewer to attach
1006 to the target display using virDomainOpenGraphics, instead of
1007 initiating a VNC/SPICE connection directly.
1008
1009 Make VNC support opening connections based on URI
1010
1011 Adapt remote-viewer so that it builds without SPICE
1012
1013 2012-01-31 Marc-André Lureau <marcandre.lureau@redhat.com>
1014
1015 Add virt-viewer.nsis
1016 Use ${DESTDIR} variable and @prefix@ to look for files.
1017 Can't easily be generated, it has too much customization.
1018
1019 2012-01-31 Marc-André Lureau <marcandre.lureau@gmail.com>
1020
1021 Enable spice auto-usbredir
1022
1023 Remove usage of deprecated property
1024
1025 Add error dialog for USB redirection failure
1026
1027 Resize guest desktop with SPICE
1028 This is the method we prefer, even though we can't keep aspect ratio.
1029 We could eventually support aspect ration in spice-gtk.
1030
1031 2012-01-31 Marc-André Lureau <marcandre.lureau@redhat.com>
1032
1033 build: make libvirt optionnal
1034
1035 2012-01-31 Marc-André Lureau <marcandre.lureau@gmail.com>
1036
1037 Use a first letter capital in help
1038 The GLib/GNOME convention seems to have first letter as capital for
1039 option description strings.
1040
1041 2012-01-31 Marc-André Lureau <marcandre.lureau@redhat.com>
1042
1043 Add spice_get_option_group()
1044
1045 Add spice controller support in remote-viewer
1046 Usage is simply "remote-viewer --spice-controller"
1047
1048 Add remote-viewer program
1049 This program is meant for direct URI connections.
1050 ex: remote-viewer vnc://uri
1051
1052 2012-01-30 Marc-André Lureau <marcandre.lureau@gmail.com>
1053
1054 Add a few property getters, used by controller
1055 - virt_viewer_app_get_windows()
1056 - virt_viewer_window_get_builder()
1057 - "VirtViewerSessionSpice:spice-session" property
1058
1059 build: use AM_GLIB_GNU_GETTEXT
1060 Using intltool macro only causes build issues on exotic platforms,
1061 such as MinGW.
1062
1063 As long as this bug isn't fixed, we should use AM_GLIB_GNU_GETTEXT
1064 https://bugs.launchpad.net/intltool/+bug/398571
1065
1066 NB this partially reverts
1067
1068 3473c4bb49adc0caca58dc1a8b6ce81c6870558a
1069
1070 The difference is the ordering of the rules. With AM_GLIB_GNU_GETTEXT
1071 appearing after IT_PROG_INTLTOOL, the --disable-nls arg to configure
1072 is broken. Thus AM_GLIB_GNU_GETTEXT is called first in this change.
1073
1074 2012-01-30 Marc-André Lureau <marcandre.lureau@redhat.com>
1075
1076 Make virt_viewer_activate() a vfunc
1077 since other equivalent methods are already overridable.
1078
1079 Add window-added & window-removed signals
1080
1081 Use graphical URI for connection
1082 If specified, use URI for connection details
1083
1084 Add virt_viewer_session_open_uri
1085
1086 build: replace deprecated functions
1087
1088 2012-01-30 Daniel P. Berrange <berrange@redhat.com>
1089
1090 Add support for --system arg to autogen.sh
1091
1092 2011-11-09 Daniel P. Berrange <berrange@redhat.com>
1093
1094 Prep for 0.4.2 release
1095
1096 2011-11-07 Daniel P. Berrange <berrange@redhat.com>
1097
1098 Automatically generate changelog from GIT history during make dist
1099
1100 2011-11-07 Marc-André Lureau <marcandre.lureau@redhat.com>
1101
1102 Update POTFILES.in, fix make distcheck
1103
1104 2011-11-07 Daniel P. Berrange <berrange@redhat.com>
1105
1106 Ignore some more generated files
1107
1108 2011-11-07 Marc-André Lureau <marcandre.lureau@redhat.com>
1109
1110 build: make gtk-vnc optional
1111
1112 2011-11-07 Daniel P. Berrange <berrange@redhat.com>
1113
1114 Require GTK-VNC 0.4.3 and remove redundant realize() call
1115 Remove call to gtk_widget_realize for the GTK-VNC widget. Requires
1116 GTK-VNC >= 0.4.3
1117
1118 2011-11-07 Marc-André Lureau <marcandre.lureau@redhat.com>
1119
1120 Emit display-desktop-resize from set_desktop_size()
1121
1122 2011-11-07 Daniel P. Berrange <berrange@redhat.com>
1123
1124 Don't include INSTALL file in GIT
1125
1126 Revert 1a56de3acad6a19fd958fae9278cf1c97fdabb18
1127 The GLIB2 check previously removed was misleading because it in
1128 fact checked for gmodule-export-2.0 which is needed to export
1129 the signal handlers. Revert the previous commit, but rename the
1130 var to GMODULE2 to make it clearer
1131
1132 Always use canonical URI from libvirt connection
1133 The URI we feed into libvirt may be an alias, so always query the
1134 actual URI used internally
1135
1136 2011-11-04 Daniel P. Berrange <berrange@redhat.com>
1137
1138 Update automated build to test both GTK2 and GTK3 builds
1139
1140 Update mingw32 RPM specfile to use GTK3 on F15 or later
1141
1142 Remove pkgconfig check for GLIB2 since it is implied by GTK2/3
1143
1144 2011-11-03 Daniel P. Berrange <berrange@redhat.com>
1145
1146 Fix configure arg for disabling spice
1147
1148 Print configuration summary
1149
1150 2011-10-11 Daniel P. Berrange <berrange@redhat.com>
1151
1152 Fix broken keycombos for F9->F12 menu
1153 The table for sending C-A-Fn to guests had messed up mappings
1154 for F9->F12
1155
1156 Wire up SpiceDisplay grab signals
1157 To ensure that we can put the key release sequence message in the
1158 title bar, wire up VirtViewerDisplaySpice to the grab signals
1159 in SpiceDisplay
1160
1161 Fix setting of window title with --wait
1162 When waiting for a VM to appear or start, set the initial window
1163 title to the command line arg. When the VM actually appears then
1164 update it to the real VM name
1165
1166 2011-09-28 Daniel P. Berrange <berrange@redhat.com>
1167
1168 Fix crash from previous commit when using UNIX sockets
1169 Code in the previous commit would use 'ghost' even when it was
1170 NULL, as with UNIX domain socket based connections.
1171
1172 2011-09-19 Daniel P. Berrange <berrange@redhat.com>
1173
1174 Fix hostname when XML gives a wildcard address
1175 When the guest XML contains a wildcard address like 0.0.0.0 or ::,
1176 we can't directly use connect() on it. Instead we have to use the
1177 hostname/IP from the libvirt URI.
1178
1179 2011-09-16 Daniel P. Berrange <berrange@redhat.com>
1180
1181 Propagate primary window zoom level to secondary windows
1182 Ensure that all windows get a default zoom level of 100. Propagate
1183 the primary window's zoom level to all secondary windows when
1184 initially creating them
1185
1186 Fix setting of window title with domain name
1187
1188 2011-08-16 Daniel P. Berrange <berrange@redhat.com>
1189
1190 Fix setting of initial zoom level on display
1191
1192 2011-08-16 Guido Günther <agx@sigxcpu.org>
1193
1194 ff callbacks must be invoked from a clean stack
1195 If 'ff' callbacks are invoked directly from the remove
1196 callback they will likely deadlock in libvirt. They must
1197 be invoked from a clean stack, so switch to using a
1198 glib idle callback.
1199
1200 2011-08-14 Guido Günther <agx@sigxcpu.org>
1201
1202 Don't print (null) as user
1203
1204 Don't print incorrect port numbers
1205 The port isn't 22 when we connect to an alternate port given in
1206 .ssh/config.
1207
1208 Don't hardcode ssh port to 0
1209 Many thanks to Luca Capello <luca@pca.it> for debugging this.
1210
1211 2011-08-12 Daniel P. Berrange <berrange@redhat.com>
1212
1213 Fix inverted sshport test that broke SSH tunnelling
1214
1215 2011-08-04 Marc-André Lureau <marcandre.lureau@redhat.com>
1216
1217 Return if xmlParseURI() failed, instead of crashing
1218
1219 Lookup UI file correctly, to fix Windows support
1220
1221 Mark exported function for gtkbuild to lookup on Windows
1222
1223 Make title more translatable and using application name
1224
1225 Use g_printerr for errors instead of fprintf(stderr,..)
1226
1227 Lower severity of unhandled Spice events
1228
1229 Add virt_viewer_app_show_display()
1230 Similar to previous virt_viewer_app_show_status().
1231 Used later on by Spice controller to switch between display and status.
1232
1233 Fix fullscreen should hide taskbar on Windows
1234
1235 2011-08-04 Daniel P. Berrange <berrange@redhat.com>
1236
1237 Update for 0.4.1 release
1238
1239 Update authors & copyright dates
1240
1241 Fix sort order of displays submenu
1242
1243 2011-08-03 Guido Günther <agx@sigxcpu.org>
1244
1245 Don't hardcode SSH port to 22
1246 To allow $HOME/.ssh/config to override the default SSH port,
1247 don't hardcode '-p 22' in the command line.
1248
1249 2011-08-03 Pavel Raiskup <praiskup@redhat.com>
1250
1251 Remove unreachable condition in authentication dialog
1252
1253 2011-07-26 Daniel P. Berrange <berrange@redhat.com>
1254
1255 Remove duplicated struct definition
1256
1257 2011-07-26 Marc-André Lureau <marcandre.lureau@redhat.com>
1258
1259 If only one display, fullscreen should be on the current display
1260
1261 Show status on all open windows
1262 The split virt_viewer_notebook_show_status() to
1263 virt_viewer_notebook_show_status_va() is unnecessary
1264 in the end, but it's more future-proof.
1265
1266 Add a "Displays" submenu, and warn when closing last display
1267
1268 Don't ignore creation of secondary displays
1269
1270 Use app fullscreen property instead of app.start() argument
1271
1272 Implement app_set_fullscreen() to go over existing windows
1273
1274 Show display and rise its window when we have the display show hint
1275 Track event for Spice, and imitate it for VNC.
1276
1277 Change enter/leave fullscreen to take/restore position
1278 That allow positionning windows in multi-head.
1279
1280 Also, get rid of window_state_cb, since it's impossible to
1281 properly catch the event to do the right thing, ie move to a different
1282 screen before go full-screen, or disallow it in case nb physical
1283 monitors < nb virtual monitors.
1284
1285 Add nth window to virt_viewer_app_window_new()
1286
1287 Introduce fullscreen property and virt_viewer_app_set_fullscreen()
1288
1289 Let virt_viewer_notebook_show_status take varags
1290
1291 Status messages can be translated
1292
1293 Add show-hint property to display
1294
1295 Split VirtViewerApp window into VirtViewerWindow
1296
1297 2011-07-22 Marc-André Lureau <marcandre.lureau@redhat.com>
1298
1299 Inherit from VirtViewerApp for VirtViewer
1300 Make it a real GObject.
1301
1302 The parts specific to virt should go in virt-viewer.c
1303
1304 Turn VirtViewer into a VirtViewerApp object
1305
1306 Split virt_viewer_start() and virt_viewer_new()
1307
1308 Split virt_viewer_activate() and virt_viewer_set_domain()
1309
1310 Split virt_viewer_create_session() out of virt_viewer_extract_connect_info()
1311 For future reusability
1312
1313 Reorder _VirtViewer to make it easier to split with RemoteViewer
1314
1315 Extract scheme in virt_viewer_extract_host()
1316 Needed for remote-viewer.
1317
1318 2011-07-18 Daniel P. Berrange <berrange@redhat.com>
1319
1320 Remove use of AM_GLIB_GNU_GETTEXT
1321 Since we already invoke the intltool macros, also invoking
1322 AM_GLIB_GNU_GETTEXT is wrong and causes problems with the
1323 later makefile rules
1324
1325 2011-07-12 Daniel P. Berrange <berrange@redhat.com>
1326
1327 Fix build requirements for GTK3
1328
1329 Remove bogus hardcoded check for GTK2
1330
1331 Disable SPICE unless on x86 architectures
1332
1333 Fix compat with GTK 2.18.0
1334
1335 Updates for 0.4.0 release
1336
1337 Remove virt-viewer-priv.h from sources, since it is gone
1338
1339 Remove duplicated typedefs
1340
1341 Annotate unused variables
1342
1343 Fix leak of graphics type attribute from XML
1344
1345 Fix leak of command line arguments
1346
1347 2011-07-11 Daniel P. Berrange <berrange@redhat.com>
1348
1349 Split pull part of VirtViewerDisplay out into VirtViewerSession
1350 To facilitate introduction of multi-head support, pull some of
1351 the VirtViewerDisplay class out into a new VirtViewerSession
1352 class.
1353
1354 Avoid (null) in titlebar
1355
1356 Fix colour of status label to show up on black background
1357
1358 Fix reconnecting of SPICE display
1359
1360 2011-07-11 Marc-André Lureau <marcandre.lureau@redhat.com>
1361
1362 Fill space on the display alignment with black
1363
1364 Add support for --fullscreen option
1365
1366 Skip non-primary monitors in SPICE
1367
1368 2011-07-11 Daniel P. Berrange <berrange@redhat.com>
1369
1370 Remove circular dependancy between VirtViewerDisplay and VirtViewer
1371 Add many signals to VirtViewerDisplay which are emitted when various
1372 events occur. This lets us remove all the code in the VirtViewerDisplay
1373 subclasses which call back into VirtViewer methods. Instead VirtViewer
1374 can simply connect signals to the display
1375
1376 Turn VirtViewerDisplay into a proper Gtk widget
1377 Turn VirtViewerDisplay into a Gtk widget instead of just a GObject,
1378 by merging the functionality from VirtViewerAlign
1379
1380 2011-07-11 Daniel P. Berrange <dan@berrange.com>
1381
1382 Update to optionally build with GTK3
1383
1384 2011-07-01 Daniel P. Berrange <dan@berrange.com>
1385
1386 Replace use of GtkAlignment with a custom align widget
1387 To use the GtkAlignment we have to play evil tricks overriding
1388 its size request, to make it reallocate the child to the preferred
1389 size we desire based on the virtual desktop size + zoom level.
1390
1391 By replacing the GtkAlignment with a custom widget we can
1392 directly implement the layout/sizing semantics we want without
1393 playing stupid games
1394
1395 Introduce standard naming convention to files & methods
1396 All source files must be named
1397
1398 virt-viewer-XXXX
1399
1400 All methods named
1401
1402 virt_viewer_XXX
1403
1404 2011-07-01 Daniel P. Berrange <berrange@redhat.com>
1405
1406 Fix some compile warnings
1407
1408 Convert from Glade to GtkBuilder
1409
1410 Refactor configure.ac to pull out required version
1411
1412 Enable use of scaling from spice >= 0.6
1413 Make the SPICE widget operate in the same way as the VNC widget
1414 with display scaling, and auto-resize, but preserving guest
1415 aspect ratio
1416
1417 Hide menu bar on fullscreen & add a hiding toolbar
1418 * src/Makefile.am, src/view/autoDrawer.c, src/view/autoDrawer.c
1419 src/view/drawer.c, src/view/drawer.h, src/view/ovBox.c,
1420 src/view/ovBox.c: Import auto-drawer from vinagre
1421 * src/viewer-priv.h, src/viewer.c, src/viewer.glade,
1422 src/display-vnc.c: Insert an auto-drawer above the
1423 notebook and display an auto-hiding toolbar when fullscreen
1424
1425 2011-06-30 Daniel P. Berrange <berrange@redhat.com>
1426
1427 Add message about whether it is VNC or SPICE display
1428
1429 Add some useful data for the --verbose flag
1430
1431 2011-05-23 Daniel P. Berrange <berrange@redhat.com>
1432
1433 Fix re-connect after authentication failure
1434 viewer->display will be non-NULL if we have already attempted a
1435 connection. So, remove the check for it being NULL, and instead
1436 skip the widget setup step.
1437
1438 2011-05-23 Jiri Denemark <Jiri.Denemark@gmail.com>
1439
1440 Add support for listen attribute
1441 Virt-viewer now parses listen attribute from graphics element to be able
1442 to connect to domains configured with explicit listen address:
1443
1444 <graphics type='vnc' port='-1' autoport='yes' listen='123.45.67.89'/>
1445
1446 2011-05-23 Daniel P. Berrange <berrange@redhat.com>
1447
1448 Replace .hgignore with .gitignore
1449
01450 2011-02-21 Daniel P. Berrange <dan@berrange.com>
11451
2 * configure.ac:
1452 Added tag release-0.3.1 for changeset f71b32a6a583
1453
1454 Updates for 0.3.1 release
1455
31456 Fix typo in SPICE configure setup
4 [cfb261f0ffed] [tip]
5
6 * .hgtags:
1457
71458 Added tag release-0.3.0 for changeset 807203083e74
8 [22b287a68428]
9
10 * ChangeLog, NEWS, README, configure.ac:
1459
111460 Updates for 0.3.0 release
12 [807203083e74] [release-0.3.0]
13
14 * virt-viewer.spec.in:
1461
151462 Fix misc RPM specfile bugs
16 [74bd54a2be1b]
171463
181464 2011-02-11 Daniel P. Berrange <dan@berrange.com>
191465
20 * Merge heads
21 [63a275e6efad]
1466 Merge heads
1467
1468 Disable mozilla plugin since it doesn't build currently
1469
1470 Enable SPICE in Fedora 15 or later
221471
231472 2011-02-08 yurchor <yurchor@fedoraproject.org>
241473
25 * po/uk.po:
261474 l10n: Updates to Ukrainian (uk) translation
27
28 Transmitted-via: Transifex (translate.fedoraproject.org)
29 [42abba3e0529]
1475 Transmitted-via: Transifex (translate.fedoraproject.org)
301476
311477 2011-02-08 elsupergomez <elsupergomez@fedoraproject.org>
321478
33 * po/es.po:
341479 l10n: Updates to Spanish (Castilian) (es) translation
35
36 Transmitted-via: Transifex (translate.fedoraproject.org)
37 [f59694a06f0e]
38
39 2011-02-11 Daniel P. Berrange <dan@berrange.com>
40
41 * autobuild.sh:
42 Disable mozilla plugin since it doesn't build currently
43 [a15854eff628]
44
45 * virt-viewer.spec.in:
46 Enable SPICE in Fedora 15 or later
47 [4e4482cfc5df]
1480 Transmitted-via: Transifex (translate.fedoraproject.org)
481481
491482 2011-02-07 Daniel P. Berrange <dan@berrange.com>
501483
51 * configure.ac:
521484 Update pkg-config check for spice-gtk library
53 [35b857dedeee]
541485
551486 2011-02-04 warrink <warrink@fedoraproject.org>
561487
57 * po/nl.po:
581488 l10n: Updates to Dutch (Flemish) (nl) translation
59
60 Transmitted-via: Transifex (translate.fedoraproject.org)
61 [4bdba329fd50]
1489 Transmitted-via: Transifex (translate.fedoraproject.org)
621490
631491 2011-02-04 raven <raven@fedoraproject.org>
641492
65 * po/pl.po:
661493 l10n: Updates to Polish (pl) translation
67
68 Transmitted-via: Transifex (translate.fedoraproject.org)
69 [819835e085c6]
70
71 * po/pl.po:
1494 Transmitted-via: Transifex (translate.fedoraproject.org)
1495
721496 l10n: Updates to Polish (pl) translation
73
74 Transmitted-via: Transifex (translate.fedoraproject.org)
75 [8e8defe7444c]
1497 Transmitted-via: Transifex (translate.fedoraproject.org)
761498
771499 2011-02-03 Daniel P. Berrange <dan@berrange.com>
781500
79 * src/viewer.c:
801501 Fix waiting for VM based on UUID
81 [607c42b3aba6]
82
83 * src/viewer-priv.h, src/viewer.c:
1502
841503 Support connections over UNIX sockets
85 [4f6b2cf8d10a]
86
87 * src/viewer.c:
1504
881505 Avoid fetching XML document multiple times when extracting graphics
89 [eccf7b274d8c]
901506
911507 2011-01-29 fdaluisio <fdaluisio@fedoraproject.org>
921508
93 * po/it.po:
941509 l10n: Updates to Italian (it) translation
95
96 Transmitted-via: Transifex (translate.fedoraproject.org)
97 [c1559894facc]
1510 Transmitted-via: Transifex (translate.fedoraproject.org)
981511
991512 2011-01-28 tomspur <tomspur@fedoraproject.org>
1001513
101 * po/de.po:
1021514 l10n: Updates to German (de) translation
103
104 Transmitted-via: Transifex (translate.fedoraproject.org)
105 [8e6056966e8c]
1515 Transmitted-via: Transifex (translate.fedoraproject.org)
1061516
1071517 2011-01-12 andreyjktl <andreyjktl@fedoraproject.org>
1081518
109 * po/ru.po:
1101519 l10n: Updates to Russian (ru) translation
111
112 Transmitted-via: Transifex (translate.fedoraproject.org)
113 [6a5fa15abaa3]
1520 Transmitted-via: Transifex (translate.fedoraproject.org)
1141521
1151522 2011-01-10 elsupergomez <elsupergomez@fedoraproject.org>
1161523
117 * po/es.po:
1181524 l10n: Updates to Spanish (Castilian) (es) translation
119
120 Transmitted-via: Transifex (translate.fedoraproject.org)
121 [aaf4f61830cc]
1525 Transmitted-via: Transifex (translate.fedoraproject.org)
1221526
1231527 2010-12-21 jassy <jassy@fedoraproject.org>
1241528
125 * po/pa.po:
1261529 l10n: Updates to Panjabi (Punjabi) (pa) translation
127
128 Transmitted-via: Transifex (translate.fedoraproject.org)
129 [72eb4f8f3bc0]
1530 Transmitted-via: Transifex (translate.fedoraproject.org)
1301531
1311532 2010-12-16 warrink <warrink@fedoraproject.org>
1321533
133 * po/nl.po:
1341534 l10n: Updates to Dutch (Flemish) (nl) translation
135
136 Transmitted-via: Transifex (translate.fedoraproject.org)
137 [c2bc3efb0265]
1535 Transmitted-via: Transifex (translate.fedoraproject.org)
1381536
1391537 2010-12-15 raven <raven@fedoraproject.org>
1401538
141 * po/pl.po:
1421539 l10n: Updates to Polish (pl) translation
143
144 Transmitted-via: Transifex (translate.fedoraproject.org)
145 [879ab95fa860]
1540 Transmitted-via: Transifex (translate.fedoraproject.org)
1461541
1471542 2010-12-10 Marc-André Lureau <marcandre.lureau@redhat.com>
1481543
149 * configure.ac, src/Makefile.am, src/viewer.c:
1501544 build: make spice-gtk dependency optional
151 [992d73fd6a85]
1521545
1531546 2010-11-30 Marc-André Lureau <marcandre.lureau@redhat.com>
1541547
155 * src/display-spice.c, src/display-vnc.c, src/display.h, src/viewer.c,
156 src/viewer.glade:
1571548 viewer: add support for spice resize-guest
158
1591549 And also turn on clipboard sharing.
160 [328f3f0f57d2]
161
162 * AUTHORS, configure.ac, man/Makefile.am, man/virt-viewer.pod,
163 po/POTFILES.in, src/Makefile.am, src/auth.c, src/auth.h, src
164 /display-spice.c, src/display-spice.h, src/display-vnc.c, src
165 /display-vnc.h, src/display.c, src/display.h, src/viewer-priv.h,
166 src/viewer.c, src/viewer.glade:
1550
1671551 viewer: Add support for Spice
168 [e9167b61921b]
1691552
1701553 2010-11-19 Marc-André Lureau <marcandre.lureau@redhat.com>
1711554
172 * src/viewer.c:
1731555 viewer: generalize extract_port() into viewer_extract_xpath_string()
174 [dbcb547de1e9]
175
176 * src/viewer.c:
1556
1771557 viewer: silence a few warnings of unused variables
178 [bc2713b7997b]
179
180 * src/viewer.c:
1558
1811559 viewer: split vnc display creation out of viewer_activate()
182 [de2d7bf9bd1e]
1831560
1841561 2010-12-14 Daniel P. Berrange <dan@berrange.com>
1851562
186 * src/auth.c:
1871563 Improve auth dialog message when no address is available
188 [526813f252f3]
1891564
1901565 2010-11-17 tombo <tombo@fedoraproject.org>
1911566
192 * po/it.po:
1931567 l10n: Updates to Italian (it) translation
194
195 Transmitted-via: Transifex (translate.fedoraproject.org)
196 [fa512d3379da]
1568 Transmitted-via: Transifex (translate.fedoraproject.org)
1971569
1981570 2010-10-04 giallu <giallu@fedoraproject.org>
1991571
200 * po/it.po:
2011572 l10n: Updates to Italian (it) translation
202
203 Transmitted-via: Transifex (translate.fedoraproject.org)
204 [d0eba3f3dcf4]
1573 Transmitted-via: Transifex (translate.fedoraproject.org)
2051574
2061575 2010-09-30 aron <aron@fedoraproject.org>
2071576
208 * po/zh_CN.po:
2091577 l10n: Updates to Chinese (China) (zh_CN) translation
210
211 Transmitted-via: Transifex (translate.fedoraproject.org)
212 [eb3fb9f7894c]
1578 Transmitted-via: Transifex (translate.fedoraproject.org)
2131579
2141580 2010-08-10 bozzo <bozzo@fedoraproject.org>
2151581
216 * po/fr.po:
2171582 l10n: Updates to French (fr) translation
218
219 Transmitted-via: Transifex (translate.fedoraproject.org)
220 [d5bc241ed9f7]
1583 Transmitted-via: Transifex (translate.fedoraproject.org)
2211584
2221585 2010-08-03 warrink <warrink@fedoraproject.org>
2231586
224 * po/nl.po:
2251587 l10n: First Dutch translation
226
227 Transmitted-via: Transifex (translate.fedoraproject.org)
228 [bfb63c06f06d]
1588 Transmitted-via: Transifex (translate.fedoraproject.org)
2291589
2301590 2010-07-22 ankit <ankit@fedoraproject.org>
2311591
232 * po/gu.po:
2331592 l10n: Updates to Gujarati (gu) translation
234
235 Transmitted-via: Transifex (translate.fedoraproject.org)
236 [44d8dc6c88f7]
1593 Transmitted-via: Transifex (translate.fedoraproject.org)
2371594
2381595 2010-07-09 Daniel P. Berrange <dan@berrange.com>
2391596
240 * Merge heads
241 [45de382c1988]
242
243 2010-07-06 raven <raven@fedoraproject.org>
244
245 * po/pl.po:
246 l10n: Updates to Polish (pl) translation
247
248 Transmitted-via: Transifex (translate.fedoraproject.org)
249 [c374cc9b4e33]
250
251 2010-07-06 elsupergomez <elsupergomez@fedoraproject.org>
252
253 * po/es.po:
254 l10n: Updates to Spanish (Castilian) (es) translation
255
256 Transmitted-via: Transifex (translate.fedoraproject.org)
257 [5c703e23a2b4]
1597 Merge heads
2581598
2591599 2010-07-09 Ronnie Sahlberg <ronniesahlberg@gmail.com>
2601600
261 * man/virt-viewer.pod:
2621601 Misc fixes to command line args in virt-viewer manpage
263
2641602 Fix three issues with the manpage for virt-viewer :
2651603
2661604 * Short option for --reconnect is -r, not -w
2671605 * Show that the short option for zoom takes an argument
2681606 * Add the --debug argument.
269 [67e2d8113af9]
1607
1608 2010-07-06 raven <raven@fedoraproject.org>
1609
1610 l10n: Updates to Polish (pl) translation
1611 Transmitted-via: Transifex (translate.fedoraproject.org)
1612
1613 2010-07-06 elsupergomez <elsupergomez@fedoraproject.org>
1614
1615 l10n: Updates to Spanish (Castilian) (es) translation
1616 Transmitted-via: Transifex (translate.fedoraproject.org)
2701617
2711618 2010-07-05 Ronnie Sahlberg <ronniesahlberg@gmail.com>
2721619
273 * AUTHORS, man/virt-viewer.pod, src/main.c, src/viewer.c,
274 src/viewer.glade, src/viewer.h:
2751620 Add support for zoom levels
276
2771621 Add a menu for zooming in/out of the virtual desktop.
2781622
2791623 Add a --zoom command line to set the initial zoom level.
2801624
2811625 Defaults to 100% zoom at startup
282 [99cd453a8746]
2831626
2841627 2010-07-05 Daniel P. Berrange <dan@berrange.com>
2851628
286 * po/LINGUAS:
2871629 Add all current languages to LINGUAS file
288
289 No locale files were being installed since all the languages were
290 missing in LINGUAS
291 [9111b6888676]
1630 No locale files were being installed since all the
1631 languages were missing in LINGUAS
2921632
2931633 2010-06-27 zoltanh721 <zoltanh721@fedoraproject.org>
2941634
295 * po/hu.po:
2961635 l10n: Updates to Hungarian (hu) translation
297
298 Transmitted-via: Transifex (translate.fedoraproject.org)
299 [10cd88edd331]
1636 Transmitted-via: Transifex (translate.fedoraproject.org)
3001637
3011638 2010-06-25 htaira <htaira@fedoraproject.org>
3021639
303 * po/ja.po:
3041640 l10n: Updates to Japanese (ja) translation
305
306 Transmitted-via: Transifex (translate.fedoraproject.org)
307 [31ea04a18446]
1641 Transmitted-via: Transifex (translate.fedoraproject.org)
3081642
3091643 2010-06-09 htaira <htaira@fedoraproject.org>
3101644
311 * po/ja.po:
3121645 l10n: Updates to Japanese (ja) translation
313
314 Transmitted-via: Transifex (translate.fedoraproject.org)
315 [a0786647b8e9]
1646 Transmitted-via: Transifex (translate.fedoraproject.org)
3161647
3171648 2010-04-14 mvdz <mvdz@fedoraproject.org>
3181649
319 * po/uk.po:
3201650 l10n: Updates to Ukrainian (uk) translation
321
322 Transmitted-via: Transifex (translate.fedoraproject.org)
323 [47d846d27fdd]
324
325 2010-03-31 enshahar <enshahar@fedoraproject.org>
326
327 * po/ko.po:
1651 Transmitted-via: Transifex (translate.fedoraproject.org)
1652
1653 2010-04-01 enshahar <enshahar@fedoraproject.org>
1654
3281655 l10n: Updates to Korean (ko) translation
329
330 Transmitted-via: Transifex (translate.fedoraproject.org)
331 [4ea747fc1d6b]
1656 Transmitted-via: Transifex (translate.fedoraproject.org)
3321657
3331658 2010-03-30 webappz <webappz@fedoraproject.org>
3341659
335 * po/hu.po:
3361660 l10n: Updates to Hungarian (hu) translation
337
338 Transmitted-via: Transifex (translate.fedoraproject.org)
339 [c2e41385dabf]
340
341 * po/hu.po:
1661 Transmitted-via: Transifex (translate.fedoraproject.org)
1662
3421663 l10n: Updates to Hungarian (hu) translation
343
344 Transmitted-via: Transifex (translate.fedoraproject.org)
345 [f38b2e86c5ef]
346
347 * po/hu.po:
1664 Transmitted-via: Transifex (translate.fedoraproject.org)
1665
3481666 l10n: Updates to Hungarian (hu) translation
349
350 Transmitted-via: Transifex (translate.fedoraproject.org)
351 [2e4d842c62af]
1667 Transmitted-via: Transifex (translate.fedoraproject.org)
3521668
3531669 2010-03-22 mvdz <mvdz@fedoraproject.org>
3541670
355 * po/uk.po:
3561671 l10n: Added Ukrainian translation.
357
358 Transmitted-via: Transifex (translate.fedoraproject.org)
359 [88ad52cdf0aa]
1672 Transmitted-via: Transifex (translate.fedoraproject.org)
3601673
3611674 2010-03-14 amitakhya <amitakhya@fedoraproject.org>
3621675
363 * po/as.po:
3641676 l10n: Adding Assamese translations.
365
366 Transmitted-via: Transifex (translate.fedoraproject.org)
367 [f815e2c8e5ad]
1677 Transmitted-via: Transifex (translate.fedoraproject.org)
3681678
3691679 2010-02-26 runab <runab@fedoraproject.org>
3701680
371 * po/bn_IN.po:
3721681 Sending translation for po/bn_IN.po
373 [5c79b3bd5068]
3741682
3751683 2010-02-24 rajesh <rajesh@fedoraproject.org>
3761684
377 * po/hi.po:
3781685 Sending translation for po/hi.po
379 [c8f2537692e0]
3801686
3811687 2010-02-20 snicore <snicore@fedoraproject.org>
3821688
383 * po/hu.po:
3841689 Sending translation for po/hu.po
385 [1462825b8e02]
3861690
3871691 2010-02-08 anipeter <anipeter@fedoraproject.org>
3881692
389 * po/ml.po:
3901693 Sending translation for po/ml.po
391 [cd1284f62107]
3921694
3931695 2010-02-01 mgiri <mgiri@fedoraproject.org>
3941696
395 * po/or.po:
3961697 Sending translation for po/or.po
397 [78feb4d583ed]
3981698
3991699 2010-01-29 ifelix <ifelix@fedoraproject.org>
4001700
401 * po/ta.po:
4021701 Sending translation for po/ta.po
403 [7d4d3f5993a2]
4041702
4051703 2010-01-29 jassy <jassy@fedoraproject.org>
4061704
407 * po/pa.po:
4081705 Sending translation for Punjabi
409 [a5842cd7e908]
4101706
4111707 2010-01-28 sandeeps <sandeeps@fedoraproject.org>
4121708
413 * po/mr.po:
4141709 Sending translation for po/mr.po
415 [9de827a3645a]
4161710
4171711 2010-01-28 shanky <shanky@fedoraproject.org>
4181712
419 * po/kn.po:
4201713 Sending translation for po/kn.po
421 [32bedf3379c1]
4221714
4231715 2010-01-28 giallu <giallu@fedoraproject.org>
4241716
425 * po/it.po:
4261717 Sending translation for Italian
427 [4169a6aa9f03]
4281718
4291719 2010-01-28 jassy <jassy@fedoraproject.org>
4301720
431 * po/pa.po:
4321721 Sending translation for po/pa.po
433 [90ae444ba69c]
4341722
4351723 2010-01-28 kkrothap <kkrothap@fedoraproject.org>
4361724
437 * po/te.po:
4381725 Sending translation for po/te.po
439 [fca3f9a5bc8b]
4401726
4411727 2010-01-28 mospina <mospina@fedoraproject.org>
4421728
443 * po/ko.po:
4441729 Sending translation for Korean
445 [185dc845cc3f]
446
447 2010-01-25 "Daniel P. Berrange <berrange@redhat.com>
448
449 * po/it_IT.po:
1730
1731 2010-01-25 Daniel P. Berrange <berrange@redhat.com>
1732
4501733 Remove bogus it_IT.po file, correct name was it.po
451 [87e34764f943]
4521734
4531735 2010-01-24 tchuang <tchuang@fedoraproject.org>
4541736
455 * po/zh_TW.po:
4561737 Sending translation for po/zh_TW.po
457 [e50f8116a8ab]
4581738
4591739 2010-01-24 raven <raven@fedoraproject.org>
4601740
461 * po/it.po:
4621741 Sending translation for po/it.po
463 [9b614ce582ea]
4641742
4651743 2010-01-23 giallu <giallu@fedoraproject.org>
4661744
467 * po/it_IT.po:
4681745 Sending translation for po/it_IT.po
469 [ee470027df65]
4701746
4711747 2010-01-22 hedda <hedda@fedoraproject.org>
4721748
473 * po/de.po:
4741749 Sending translation for German
475 [557f60ac53b3]
4761750
4771751 2010-01-22 leahliu <leahliu@fedoraproject.org>
4781752
479 * po/zh_CN.po:
4801753 Sending translation for Chinese (Simplified)
481 [c9d98ce01d93]
4821754
4831755 2010-01-22 khasida <khasida@fedoraproject.org>
4841756
485 * po/ja.po:
4861757 Sending translation for po/ja.po
487 [34d80402dbed]
4881758
4891759 2010-01-22 mospina <mospina@fedoraproject.org>
4901760
491 * po/ko.po:
4921761 Sending translation for po/ko.po
493 [2b9684476fe6]
494
495 * po/es.po:
1762
4961763 Sending translation for Spanish
497 [e08c6128ea8f]
4981764
4991765 2010-01-22 ypoyarko <ypoyarko@fedoraproject.org>
5001766
501 * po/ru.po:
5021767 Sending translation for Russian
503 [b11d479ee1f4]
5041768
5051769 2010-01-22 gcintra <gcintra@fedoraproject.org>
5061770
507 * po/pt_BR.po:
5081771 Sending translation for po/pt_BR.po
509 [892a90a8af67]
5101772
5111773 2010-01-22 samfreemanz <samfreemanz@fedoraproject.org>
5121774
513 * po/fr.po:
5141775 Sending translation for French
515 [5b55be5a0e46]
5161776
5171777 2010-01-22 hedda <hedda@fedoraproject.org>
5181778
519 * po/de.po:
5201779 Sending translation for po/de.po
521 [b13384930995]
5221780
5231781 2010-01-22 leahliu <leahliu@fedoraproject.org>
5241782
525 * po/zh_CN.po:
5261783 Sending translation for Chinese (Simplified)
527 [a2e13f979d94]
5281784
5291785 2010-01-21 leahliu <leahliu@fedoraproject.org>
5301786
531 * po/zh_CN.po:
5321787 Sending translation for po/zh_CN.po
533 [18b0c5353fef]
5341788
5351789 2010-01-21 ypoyarko <ypoyarko@fedoraproject.org>
5361790
537 * po/ru.po:
5381791 Sending translation for po/ru.po
539 [f22e478e8046]
5401792
5411793 2010-01-21 mospina <mospina@fedoraproject.org>
5421794
543 * po/es.po:
5441795 Sending translation for po/es.po
545 [cd6be7781059]
5461796
5471797 2010-01-21 swkothar <swkothar@fedoraproject.org>
5481798
549 * po/gu.po:
5501799 Sending translation for po/gu.po
551 [ed59815240d9]
5521800
5531801 2010-01-18 renault <renault@fedoraproject.org>
5541802
555 * po/fr.po:
5561803 Sending translation for po/fr.po
557 [f0a3b5b30f92]
558
559 2010-01-15 "Daniel P. Berrange <berrange@redhat.com>
560
561 * .hgtags:
1804
1805 2010-01-15 Daniel P. Berrange <berrange@redhat.com>
1806
5621807 Added tag release-0.2.1 for changeset 13bcca43c859
563 [236029760251]
564
565 * AUTHORS, ChangeLog, NEWS, README, configure.ac:
1808
5661809 Updates for 0.2.1 release
567 [13bcca43c859] [release-0.2.1]
5681810
5691811 2010-01-13 raven <raven@fedoraproject.org>
5701812
571 * po/pl.po:
5721813 Sending translation for Polish
573 [d114aac4cfb8]
574
575 2010-01-12 "Daniel P. Berrange <berrange@redhat.com>
576
577 * src/viewer.c:
1814
1815 2010-01-12 Daniel P. Berrange <berrange@redhat.com>
1816
5781817 Add message dialog displays for important error scenarios
579 [6d1f30e5fb71]
580
581 * src/auth.glade:
1818
5821819 Fix warning with default widget focus in auth dialog
583 [e0e91e221add]
584
585 * src/viewer.c:
586 Add dialog to alert user to unsuccessful authentication & retry
587 Alert user if VNC server has no compatible auth methods Support VNC
588 bell & cut text events
589 [f098a86755a7]
590
591 * configure.ac:
1820
1821 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
1822
5921823 Turn on automake's silent build rules if available
593 [d388340febbc]
594
595 * src/main.c, src/viewer.c:
1824
5961825 Various cleanups for Glib/GTK and BZ 474213
597 [c13f1d31eab7]
5981826
5991827 2010-01-11 raven <raven@fedoraproject.org>
6001828
601 * po/pl.po:
6021829 Sending translation for Polish
603 [31af732a9a55]
604
605 2010-01-11 "Daniel P. Berrange <berrange@redhat.com>
606
607 * .hgignore, mingw32-virt-viewer.spec.in, po/LINGUAS, po/virt-
608 viewer.pot, src/about.glade, virt-viewer.spec.in:
609 Add 'pl' to LINGUAS. Remove accidentally committed .pot file and add
610 it to .hgignore. Add RPM specfile magic for translations. Fix typo
611 in about.glade URL
612 [09c9db915104]
1830
1831 2010-01-11 Daniel P. Berrange <berrange@redhat.com>
1832
1833 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
6131834
6141835 2010-01-11 raven <raven@fedoraproject.org>
6151836
616 * po/pl.po, po/virt-viewer.pot:
6171837 Sending translation for po/pl.po
618 [affb21844c39]
619
620 2010-01-11 "Daniel P. Berrange <berrange@redhat.com>
621
622 * .hgignore, Makefile.am, autogen.sh, configure.ac, intltool-
623 extract.in, intltool-merge.in, intltool-update.in, po/LINGUAS,
624 po/POTFILES.in, src/Makefile.am, src/main.c:
1838
1839 2010-01-11 Daniel P. Berrange <berrange@redhat.com>
1840
6251841 Add support for i18n of the UI
626
627 Add all the boilerplate code required for doing i18n of the UI. No
628 translations available yet though
629 [07db22b2f766]
630
631 2009-08-15 "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
632
633 * src/util.h:
1842 Add all the boilerplate code required for doing i18n of the UI.
1843 No translations available yet though
1844
1845 2009-08-15 Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
1846
6341847 viewer: fix build on 'old' GTK2
635
636 Debian lenny has gtk2 2.12.12, which is missing
637 gtk_widget_get_window. Provide our own function if GTK2 <= 2.12 .
638
639 Highly inspired from: http://osdir.com/ml/svn-commits-
640 list/2009-08/msg00725.html
641 [e05cd5be9c36]
642
643 2009-07-29 "Daniel P. Berrange <berrange@redhat.com>
644
645 * .hgtags:
1848 Debian lenny has gtk2 2.12.12, which is missing gtk_widget_get_window.
1849 Provide our own function if GTK2 <= 2.12 .
1850
1851 Highly inspired from: http://osdir.com/ml/svn-commits-list/2009-08/msg00725.html
1852
1853 2009-07-29 Daniel P. Berrange <berrange@redhat.com>
1854
6461855 Added tag release-0.2.0 for changeset b38a2c67ebfd
647 [99ba88ee7820]
648
649 * NEWS, configure.ac, virt-viewer.spec.in:
1856
6501857 Update for 0.2.0 release
651 [b38a2c67ebfd] [release-0.2.0]
652
653 * plugin/Makefile.am:
654 Disable compile errors in plugin till we figure out what's up with
655 the header files
656 [f2fabc428441]
657
658 * mingw32-virt-viewer.spec.in, virt-viewer.spec.in:
1858
1859 Disable compile errors in plugin till we figure out what's up with the header files
1860
6591861 Update deps in rpm
660 [d5ef17c7856e]
661
662 * src/viewer.c:
1862
6631863 Ensure VNC display is centered if being scaled
664 [f5e758b7a271]
665
666 * src/auth.glade:
1864
6671865 Ensure password is not echoed
668 [e826ca02a7d4]
669
670 * src/auth.c, src/auth.glade, src/auth.h, src/util.h, src/viewer.c:
1866
6711867 Add support for libvirt graphical auth
672 [a8e92767179f]
673
674 * plugin/Makefile.am, src/Makefile.am, src/auth.c, src/auth.h,
675 src/events.c, src/events.h, src/util.c, src/util.h, src/viewer.c,
676 src/viewer.h:
1868
6771869 Pull auth code out into separate file
678 [1471c65b8280]
679
680 2009-07-28 "Daniel P. Berrange <berrange@redhat.com>
681
682 * plugin/Makefile.am, plugin/npshell.c, plugin/npupp.h,
683 plugin/test.html, plugin/virt-viewer-plugin.c, plugin/virt-viewer-
684 plugin.h, src/viewer.c:
1870
1871 2009-07-28 Daniel P. Berrange <berrange@redhat.com>
1872
6851873 Make plugin work again
686 [68646d3db76d]
687
688 * src/viewer.c:
1874
6891875 Add compatability logic for drivers without domain event support
690 [c29276a0f2ec]
691
692 * src/viewer.c:
1876
6931877 Fix mouse / key grab vs modifier disabling mixup
694 [6cdf7dfa223d]
695
696 * configure.ac, mingw32-virt-viewer.spec.in, plugin/Makefile.am,
697 src/Makefile.am, src/events.c, src/events.h, src/viewer.c, virt-
698 viewer.spec.in:
699 Pull glib event loop integration into tree until libvirt-glib is
700 more mature
701 [dd92609022ac]
702
703 * src/viewer.c, src/viewer.glade:
1878
1879 Pull glib event loop integration into tree until libvirt-glib is more mature
1880
7041881 Re-write the way scaling/resizing works
705
706 * Default to auto-resize mode where we try to fit the VNC widget 1:1
707 in the main window
708 * If local desktop is not large enough for VNC widget, scale down,
709 maintaining aspect ratio
710 * Allow the user to turn off auto-resize and have total manual control
711 over window size
1882 * Default to auto-resize mode where we try to fit the VNC widget 1:1 in the main window
1883 * If local desktop is not large enough for VNC widget, scale down, maintaining aspect ratio
1884 * Allow the user to turn off auto-resize and have total manual control over window size
7121885 * Always scale the display in fullscreen mode
713 [3521ee2a63e6]
714
715 * plugin/virt-viewer-plugin.c, src/main.c, src/viewer.c, src/viewer.h:
1886
7161887 Add a --debug command line flag
717 [1a3b36e0b6f2]
718
719 * src/viewer.c:
1888
7201889 Fix waiting for a VM that does not initially exist
721 [da53b8f99cdf]
722
723 * plugin/Makefile.am, plugin/npshell.c, src/Makefile.am, src/main.c,
724 src/viewer.c:
1890
7251891 Move most of viewer code out into viewer.c
726 [8f237adf2792]
727
728 2008-11-28 "Daniel P. Berrange <berrange@redhat.com>
729
730 * autobuild.sh, configure.ac, mingw32-virt-viewer.spec.in, virt-
731 viewer.spec.in:
1892
1893 2008-11-28 Daniel P. Berrange <berrange@redhat.com>
1894
7321895 Initial mingw32 build support
733 [92da1556bbf9]
734
735 * src/main.c:
1896
7361897 Use g_strdup & friends
737 [029b506ca4cf]
738
739 * configure.ac, src/main.c, src/usleep.c:
1898
7401899 Remove unused usleep code
741 [ac45bee371c8]
742
743 2008-11-26 "Daniel P. Berrange <berrange@redhat.com>
744
745 * .hgignore, autogen.sh, configure.ac, man/virt-viewer.pod,
746 plugin/Makefile.am, plugin/npshell.c, plugin/virt-viewer-plugin.c,
747 plugin/virt-viewer-plugin.h, src/Makefile.am, src/about.glade,
748 src/auth.glade, src/main.c, src/viewer.glade, src/viewer.h, virt-
749 viewer.spec.in:
750 Re-write completely to use Glade, libvirt events, and libvirt-glib
751 integration
752 [8e98b3d44c8d]
753
754 2008-11-03 "Daniel P. Berrange <berrange@redhat.com>
755
756 * plugin/Makefile.am:
1900
1901 2008-11-26 Daniel P. Berrange <berrange@redhat.com>
1902
1903 Re-write completely to use Glade, libvirt events, and libvirt-glib integration
1904
1905 2008-11-03 Daniel P. Berrange <berrange@redhat.com>
1906
7571907 Fix rule to use DESTDIR on plugin install
758 [e70af57502f9]
759
760 2008-10-10 "Richard W.M. Jones <rjones@redhat.com>
761
762 * .hgignore, ChangeLog, configure.ac, src/Makefile.am, src/main.c,
763 src/usleep.c:
764 * configure.ac, src/Makefile.am, src/main.c, src/usleep.c: Support
765 for building on Windows using MinGW compiler toolchain (or
766 for cross-compiling using the same).
767
768 * .hgignore: Ignore some generated files.
769 [2cce513346ae]
770
771 2008-06-17 "Daniel P. Berrange <berrange@redhat.com>
772
773 * src/main.c:
1908
1909 2008-10-10 Richard W.M. Jones <rjones@redhat.com>
1910
1911 * 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).
1912 * .hgignore: Ignore some generated files.
1913
1914 2008-06-17 Daniel P. Berrange <berrange@redhat.com>
1915
7741916 Add error message when conecting to inactive VM (Hiroyuki Kaguchi)
775 [57d1fb020d57]
776
777 2008-04-27 "Daniel P. Berrange <berrange@redhat.com>
778
779 * configure.ac, src/main.c:
1917
1918 2008-04-28 Daniel P. Berrange <berrange@redhat.com>
1919
7801920 Use GTK apis for option parsing (Guido G\374nther)
781 [5299a3aaebb5]
782
783 2008-04-23 "Daniel P. Berrange <berrange@redhat.com>
784
785 * AUTHORS, src/main.c:
786 Avoid caching inactive domain to workaround issues with older XenD
787 (Hiroyuki Kaguchi)
788 [7f20b8bb6abd]
789
790 2008-04-22 "Daniel P. Berrange <berrange@redhat.com>
791
792 * AUTHORS, src/main.c:
1921
1922 2008-04-24 Daniel P. Berrange <berrange@redhat.com>
1923
1924 Avoid caching inactive domain to workaround issues with older XenD (Hiroyuki Kaguchi)
1925
1926 2008-04-22 Daniel P. Berrange <berrange@redhat.com>
1927
7931928 Call gtk_init early to ensure it grabs args like --sync
794 [5f14440985f8]
795
796 2008-04-08 "Daniel P. Berrange <berrange@redhat.com>
797
798 * man/virt-viewer.pod:
1929
1930 2008-04-08 Daniel P. Berrange <berrange@redhat.com>
1931
7991932 Fix manpage typo
800 [e2ee322e3d1a]
801
802 2008-03-21 "Daniel P. Berrange <berrange@redhat.com>
803
804 * configure.ac:
1933
1934 2008-03-21 Daniel P. Berrange <berrange@redhat.com>
1935
8051936 Bump GTK dep to 2.10.0
806 [d8cf9d390762]
807
808 2008-03-10 "Daniel P. Berrange <berrange@redhat.com>
809
810 * .hgtags:
1937
1938 2008-03-10 Daniel P. Berrange <berrange@redhat.com>
1939
8111940 Added tag release-0.0.3 for changeset 05f9c167354b
812 [5d426425c850]
813
814 * ChangeLog, NEWS:
1941
8151942 Refresh news / changelog for release
816 [05f9c167354b] [release-0.0.3]
817
818 2008-03-09 "Daniel P. Berrange <berrange@redhat.com>
819
820 * autobuild.sh, configure.ac, virt-viewer.spec.in:
1943
1944 2008-03-09 Daniel P. Berrange <berrange@redhat.com>
1945
8211946 Added -plugin sub RPM, disabled by default, except for autobuild
822 [efcac0fc56b5]
823
824 2008-03-08 "Daniel P. Berrange <berrange@redhat.com>
825
826 * configure.ac:
1947
1948 2008-03-08 Daniel P. Berrange <berrange@redhat.com>
1949
8271950 Relax firefox plugin version to 1.5.0
828 [0252cf01fe3c]
829
830 2008-03-07 "Daniel P. Berrange <berrange@redhat.com>
831
832 * src/main.c:
1951
1952 2008-03-07 Daniel P. Berrange <berrange@redhat.com>
1953
8331954 Disable scaling by default if running on composited window
834 [aadb3fb8316e]
835
836 * src/main.c:
1955
8371956 Block view menu accelerator & remove debug
838 [01e11e3566ff]
839
840 * src/main.c, virt-viewer.spec.in:
1957
8411958 Added support for desktop scaling with OpenGL
842 [23cd61984e4c]
843
844 2008-03-05 "Daniel P. Berrange <berrange@redhat.com>
845
846 * .hgignore, acinclude.m4, autobuild.sh, autogen.sh, configure.ac,
847 plugin/Makefile.am, plugin/npshell.c, plugin/npunix.c, plugin/virt-
848 viewer-plugin.c, src/main.c:
849 Kill automake portability warnings. Use a config.h Cleanup misc
850 build issues. Build with fatal compile warnings
851 [7254e127a017]
852
853 * src/main.c:
1959
1960 2008-03-05 Daniel P. Berrange <berrange@redhat.com>
1961
1962 Kill automake portability warnings. Use a config.h Cleanup misc build issues. Build with fatal compile warnings
1963
8541964 Disable menu accelerators when keyboard is grabbed (Chris Lalancett)
855 [50ed4d0b0632]
856
857 * autogen.sh:
1965
8581966 Fix type in autogen.sh output (Chris Lalancett)
859 [25932c2b565a]
860
861 2008-01-25 "Daniel P. Berrange <berrange@redhat.com>
862
863 * .hgignore, Makefile.am, autogen.sh, configure.ac,
864 plugin/Makefile.am, plugin/npshell.c, plugin/npunix.c,
865 plugin/test.html, plugin/virt-viewer-plugin.c, plugin/virt-viewer-
866 plugin.h:
1967
1968 2008-01-25 Daniel P. Berrange <berrange@redhat.com>
1969
8671970 Added browser plugin (Richard Jones)
868 [09761c04bdcd]
869
870 * AUTHORS, src/Makefile.am, src/main.c, src/viewer.h:
1971
8711972 Refactor main method for viewer to prepare for plugin (Richard Jones
872 [270fbc7d4192]
873
874 2008-01-11 "Daniel P. Berrange <berrange@redhat.com>
875
876 * src/main.c:
1973
1974 2008-01-11 Daniel P. Berrange <berrange@redhat.com>
1975
8771976 Whitespace fix
878 [fe1efb558b4b]
879
880 * src/main.c:
1977
8811978 Hide chars in passwd field
882 [69daa8257222]
883
884 2008-01-10 "Daniel P. Berrange <berrange@redhat.com>
885
886 * AUTHORS, NEWS, README, man/virt-viewer.pod, src/main.c:
1979
8871980 Fix a few typos (Atsushi SAKAI)
888 [a0d79af724b0]
889
890 2007-11-29 "Daniel P. Berrange <berrange@redhat.com>
891
892 * AUTHORS, src/main.c:
1981
1982 2007-11-29 Daniel P. Berrange <berrange@redhat.com>
1983
8931984 Use proper domain name in title bar, rather than VNC server title
894 [59fccec87973]
895
896 2007-08-28 "Daniel P. Berrange <berrange@redhat.com>
897
898 * .hgtags:
1985
1986 2007-08-29 Daniel P. Berrange <berrange@redhat.com>
1987
8991988 Added tag release-0.0.2 for changeset f3accb51c6f5
900 [97f00b8df38a]
901
902 * src/main.c:
1989
9031990 Fix crash with no transport
904 [f3accb51c6f5] [release-0.0.2]
905
906 * ChangeLog, NEWS, configure.ac, virt-viewer.spec.in:
1991
9071992 New release 0.0.2
908 [3d88506cc468]
909
910 * man/virt-viewer.pod:
1993
9111994 Document the '--direct' option
912 [0d9a8fd612d9]
913
914 * src/main.c:
1995
9151996 Support TLS credentials & improved SSH tunnelling
916 [2ca6f1a9ba64]
917
918 * src/main.c:
1997
9191998 Support for connecting over an SSH tunnel
920 [33102c06fd50]
921
922 2007-08-27 "Daniel P. Berrange <berrange@redhat.com>
923
924 * Merge
925 [c40130b3a7ec]
926
927 * src/main.c:
1999
2000 2007-08-28 Daniel P. Berrange <berrange@redhat.com>
2001
2002 Merge
2003
9282004 Added initial ability to connect remote hosts
929 [ac9cae161efb]
930
931 * src/main.c:
2005
9322006 Disable debug flag
933 [61d8448ba53f]
934
935 * src/main.c:
2007
9362008 Fixed delete-event handler args
937 [21f7b4c5c93c]
938
939 2007-08-15 "Daniel P. Berrange <berrange@redhat.com>
940
941 * COPYING, INSTALL:
2009
2010 2007-08-16 Daniel P. Berrange <berrange@redhat.com>
2011
9422012 Added COPYING/INSTALL files
943 [1f83ef35bb59]
944
945 * .hgtags:
2013
9462014 Added tag release-0.0.1 for changeset 2b78ab2d18ce
947 [916abae9a263]
948
949 * virt-viewer.spec.in:
2015
9502016 Fixed build requires & group. Removed exclusivearch
951 [2b78ab2d18ce] [release-0.0.1]
952
953 * AUTHORS, NEWS, README, virt-viewer.spec.in:
2017
9542018 Fill out authors, news & readme
955 [6a74d1951e33]
956
957 2007-07-20 "Daniel P. Berrange <berrange@redhat.com>
958
959 * src/main.c:
960 Connected up screenshot & about menus
961 [7cd9b16e3185]
962
963 * Makefile.am, configure.ac, man/Makefile.am, man/virt-viewer.pod,
964 virt-viewer.spec.in:
2019
2020 2007-07-21 Daniel P. Berrange <berrange@redhat.com>
2021
2022 Connected up screenshot & about menus
2023
2024 2007-07-20 Daniel P. Berrange <berrange@redhat.com>
2025
9652026 Added manual page
966 [db9f0ff467e5]
967
968 * .hgignore, AUTHORS, ChangeLog, Makefile.am, NEWS, README,
969 acinclude.m4, autobuild.sh, autogen.sh, configure.ac,
970 src/Makefile.am, src/main.c, virt-viewer.spec.in:
2027
9712028 Initial commit
972 [df454dc97f2f]
973
0 # Having a separate GNUmakefile lets me `include' the dynamically
1 # generated rules created via cfg.mk (package-local configuration)
2 # as well as maint.mk (generic maintainer rules).
3 # This makefile is used only if you run GNU Make.
4 # It is necessary if you want to build targets usually of interest
5 # only to the maintainer.
6
7 # Copyright (C) 2001, 2003, 2006-2011 Free Software Foundation, Inc.
8
9 # This program is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
13
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
18
19 # You should have received a copy of the GNU General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22 # Systems where /bin/sh is not the default shell need this. The $(shell)
23 # command below won't work with e.g. stock DOS/Windows shells.
24 ifeq ($(wildcard /bin/s[h]),/bin/sh)
25 SHELL = /bin/sh
26 else
27 # will be used only with the next shell-test line, then overwritten
28 # by a configured-in value
29 SHELL = sh
30 endif
31
32 # If the user runs GNU make but has not yet run ./configure,
33 # give them a diagnostic.
34 _have-Makefile := $(shell test -f Makefile && echo yes)
35 ifeq ($(_have-Makefile),yes)
36
37 # Make tar archive easier to reproduce.
38 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
39
40 # Allow the user to add to this in the Makefile.
41 ALL_RECURSIVE_TARGETS =
42
43 include Makefile
44
45 # Some projects override e.g., _autoreconf here.
46 -include $(srcdir)/cfg.mk
47
48 # Allow cfg.mk to override these.
49 _build-aux ?= build-aux
50 _autoreconf ?= autoreconf -v
51
52 include $(srcdir)/maint.mk
53
54 # Ensure that $(VERSION) is up to date for dist-related targets, but not
55 # for others: rerunning autoreconf and recompiling everything isn't cheap.
56 _have-git-version-gen := \
57 $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
58 ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
59 _is-dist-target ?= $(filter-out %clean, \
60 $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS)))
61 _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS)))
62 ifneq (,$(_is-dist-target)$(_is-install-target))
63 _curr-ver := $(shell cd $(srcdir) \
64 && $(_build-aux)/git-version-gen \
65 .tarball-version \
66 $(git-version-gen-tag-sed-script))
67 ifneq ($(_curr-ver),$(VERSION))
68 ifeq ($(_curr-ver),UNKNOWN)
69 $(info WARNING: unable to verify if $(VERSION) is the correct version)
70 else
71 ifneq (,$(_is-install-target))
72 # GNU Coding Standards state that 'make install' should not cause
73 # recompilation after 'make all'. But as long as changing the version
74 # string alters config.h, the cost of having 'make all' always have an
75 # up-to-date version is prohibitive. So, as a compromise, we merely
76 # warn when installing a version string that is out of date; the user
77 # should run 'autoreconf' (or something like 'make distcheck') to
78 # fix the version, 'make all' to propagate it, then 'make install'.
79 $(info WARNING: version string $(VERSION) is out of date;)
80 $(info run '$(MAKE) _version' to fix it)
81 else
82 $(info INFO: running autoreconf for new version string: $(_curr-ver))
83 GNUmakefile: _version
84 touch GNUmakefile
85 endif
86 endif
87 endif
88 endif
89 endif
90
91 .PHONY: _version
92 _version:
93 cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
94 $(MAKE) $(AM_MAKEFLAGS) Makefile
95
96 else
97
98 .DEFAULT_GOAL := abort-due-to-no-makefile
99 srcdir = .
100
101 # The package can override .DEFAULT_GOAL to run actions like autoreconf.
102 -include ./cfg.mk
103 include ./maint.mk
104
105 ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
106 $(MAKECMDGOALS): abort-due-to-no-makefile
107 endif
108
109 abort-due-to-no-makefile:
110 @echo There seems to be no Makefile in this directory. 1>&2
111 @echo "You must run ./configure before running \`make'." 1>&2
112 @exit 1
113
114 endif
115
116 # Tell version 3.79 and up of GNU make to not build goals in this
117 # directory in parallel, in case someone tries to build multiple
118 # targets, and one of them can cause a recursive target to be invoked.
119
120 # Only set this if Automake doesn't provide it.
121 AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \
122 $(RECURSIVE_CLEAN_TARGETS:-recursive=) \
123 dist distcheck tags ctags
124
125 ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS)
126
127 ifneq ($(word 2, $(MAKECMDGOALS)), )
128 ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), )
129 .NOTPARALLEL:
130 endif
131 endif
00 Installation Instructions
11 *************************
22
3 Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
4 Software Foundation, Inc.
5
6 This file is free documentation; the Free Software Foundation gives
7 unlimited permission to copy, distribute and modify it.
3 Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
4 Inc.
5
6 Copying and distribution of this file, with or without modification,
7 are permitted in any medium without royalty provided the copyright
8 notice and this notice are preserved. This file is offered as-is,
9 without warranty of any kind.
810
911 Basic Installation
1012 ==================
1113
12 These are generic installation instructions.
14 Briefly, the shell commands `./configure; make; make install' should
15 configure, build, and install this package. The following
16 more-detailed instructions are generic; see the `README' file for
17 instructions specific to this package. Some packages provide this
18 `INSTALL' file but do not implement all of the features documented
19 below. The lack of an optional feature in a given package is not
20 necessarily a bug. More recommendations for GNU packages can be found
21 in *note Makefile Conventions: (standards)Makefile Conventions.
1322
1423 The `configure' shell script attempts to guess correct values for
1524 various system-dependent variables used during compilation. It uses
2231
2332 It can also use an optional file (typically called `config.cache'
2433 and enabled with `--cache-file=config.cache' or simply `-C') that saves
25 the results of its tests to speed up reconfiguring. (Caching is
34 the results of its tests to speed up reconfiguring. Caching is
2635 disabled by default to prevent problems with accidental use of stale
27 cache files.)
36 cache files.
2837
2938 If you need to do unusual things to compile the package, please try
3039 to figure out how `configure' could check whether to do them, and mail
3443 may remove or edit it.
3544
3645 The file `configure.ac' (or `configure.in') is used to create
37 `configure' by a program called `autoconf'. You only need
38 `configure.ac' if you want to change it or regenerate `configure' using
39 a newer version of `autoconf'.
40
41 The simplest way to compile this package is:
46 `configure' by a program called `autoconf'. You need `configure.ac' if
47 you want to change it or regenerate `configure' using a newer version
48 of `autoconf'.
49
50 The simplest way to compile this package is:
4251
4352 1. `cd' to the directory containing the package's source code and type
44 `./configure' to configure the package for your system. If you're
45 using `csh' on an old version of System V, you might need to type
46 `sh ./configure' instead to prevent `csh' from trying to execute
47 `configure' itself.
48
49 Running `configure' takes awhile. While running, it prints some
50 messages telling which features it is checking for.
53 `./configure' to configure the package for your system.
54
55 Running `configure' might take a while. While running, it prints
56 some messages telling which features it is checking for.
5157
5258 2. Type `make' to compile the package.
5359
5460 3. Optionally, type `make check' to run any self-tests that come with
55 the package.
61 the package, generally using the just-built uninstalled binaries.
5662
5763 4. Type `make install' to install the programs and any data files and
58 documentation.
59
60 5. You can remove the program binaries and object files from the
64 documentation. When installing into a prefix owned by root, it is
65 recommended that the package be configured and built as a regular
66 user, and only the `make install' phase executed with root
67 privileges.
68
69 5. Optionally, type `make installcheck' to repeat any self-tests, but
70 this time using the binaries in their final installed location.
71 This target does not install anything. Running this target as a
72 regular user, particularly if the prior `make install' required
73 root privileges, verifies that the installation completed
74 correctly.
75
76 6. You can remove the program binaries and object files from the
6177 source code directory by typing `make clean'. To also remove the
6278 files that `configure' created (so you can compile the package for
6379 a different kind of computer), type `make distclean'. There is
6682 all sorts of other programs in order to regenerate files that came
6783 with the distribution.
6884
85 7. Often, you can also type `make uninstall' to remove the installed
86 files again. In practice, not all packages have tested that
87 uninstallation works correctly, even though it is required by the
88 GNU Coding Standards.
89
90 8. Some packages, particularly those that use Automake, provide `make
91 distcheck', which can by used by developers to test that all other
92 targets like `make install' and `make uninstall' work correctly.
93 This target is generally not run by end users.
94
6995 Compilers and Options
7096 =====================
7197
72 Some systems require unusual options for compilation or linking that the
73 `configure' script does not know about. Run `./configure --help' for
74 details on some of the pertinent environment variables.
98 Some systems require unusual options for compilation or linking that
99 the `configure' script does not know about. Run `./configure --help'
100 for details on some of the pertinent environment variables.
75101
76102 You can give `configure' initial values for configuration parameters
77103 by setting variables in the command line or in the environment. Here
78104 is an example:
79105
80 ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
106 ./configure CC=c99 CFLAGS=-g LIBS=-lposix
81107
82108 *Note Defining Variables::, for more details.
83109
84110 Compiling For Multiple Architectures
85111 ====================================
86112
87 You can compile the package for more than one kind of computer at the
113 You can compile the package for more than one kind of computer at the
88114 same time, by placing the object files for each architecture in their
89 own directory. To do this, you must use a version of `make' that
90 supports the `VPATH' variable, such as GNU `make'. `cd' to the
115 own directory. To do this, you can use GNU `make'. `cd' to the
91116 directory where you want the object files and executables to go and run
92117 the `configure' script. `configure' automatically checks for the
93 source code in the directory that `configure' is in and in `..'.
94
95 If you have to use a `make' that does not support the `VPATH'
96 variable, you have to compile the package for one architecture at a
97 time in the source code directory. After you have installed the
98 package for one architecture, use `make distclean' before reconfiguring
99 for another architecture.
118 source code in the directory that `configure' is in and in `..'. This
119 is known as a "VPATH" build.
120
121 With a non-GNU `make', it is safer to compile the package for one
122 architecture at a time in the source code directory. After you have
123 installed the package for one architecture, use `make distclean' before
124 reconfiguring for another architecture.
125
126 On MacOS X 10.5 and later systems, you can create libraries and
127 executables that work on multiple system types--known as "fat" or
128 "universal" binaries--by specifying multiple `-arch' options to the
129 compiler but only a single `-arch' option to the preprocessor. Like
130 this:
131
132 ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
133 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134 CPP="gcc -E" CXXCPP="g++ -E"
135
136 This is not guaranteed to produce working output in all cases, you
137 may have to build one architecture at a time and combine the results
138 using the `lipo' tool if you have problems.
100139
101140 Installation Names
102141 ==================
103142
104 By default, `make install' installs the package's commands under
143 By default, `make install' installs the package's commands under
105144 `/usr/local/bin', include files under `/usr/local/include', etc. You
106145 can specify an installation prefix other than `/usr/local' by giving
107 `configure' the option `--prefix=PREFIX'.
146 `configure' the option `--prefix=PREFIX', where PREFIX must be an
147 absolute file name.
108148
109149 You can specify separate installation prefixes for
110150 architecture-specific files and architecture-independent files. If you
115155 In addition, if you use an unusual directory layout you can give
116156 options like `--bindir=DIR' to specify different values for particular
117157 kinds of files. Run `configure --help' for a list of the directories
118 you can set and what kinds of files go in them.
158 you can set and what kinds of files go in them. In general, the
159 default for these options is expressed in terms of `${prefix}', so that
160 specifying just `--prefix' will affect all of the other directory
161 specifications that were not explicitly provided.
162
163 The most portable way to affect installation locations is to pass the
164 correct locations to `configure'; however, many packages provide one or
165 both of the following shortcuts of passing variable assignments to the
166 `make install' command line to change installation locations without
167 having to reconfigure or recompile.
168
169 The first method involves providing an override variable for each
170 affected directory. For example, `make install
171 prefix=/alternate/directory' will choose an alternate location for all
172 directory configuration variables that were expressed in terms of
173 `${prefix}'. Any directories that were specified during `configure',
174 but not in terms of `${prefix}', must each be overridden at install
175 time for the entire installation to be relocated. The approach of
176 makefile variable overrides for each directory variable is required by
177 the GNU Coding Standards, and ideally causes no recompilation.
178 However, some platforms have known limitations with the semantics of
179 shared libraries that end up requiring recompilation when using this
180 method, particularly noticeable in packages that use GNU Libtool.
181
182 The second method involves providing the `DESTDIR' variable. For
183 example, `make install DESTDIR=/alternate/directory' will prepend
184 `/alternate/directory' before all installation names. The approach of
185 `DESTDIR' overrides is not required by the GNU Coding Standards, and
186 does not work on platforms that have drive letters. On the other hand,
187 it does better at avoiding recompilation issues, and works well even
188 when some directory options were not specified in terms of `${prefix}'
189 at `configure' time.
190
191 Optional Features
192 =================
119193
120194 If the package supports it, you can cause programs to be installed
121195 with an extra prefix or suffix on their names by giving `configure' the
122196 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
123197
124 Optional Features
125 =================
126
127 Some packages pay attention to `--enable-FEATURE' options to
198 Some packages pay attention to `--enable-FEATURE' options to
128199 `configure', where FEATURE indicates an optional part of the package.
129200 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
130201 is something like `gnu-as' or `x' (for the X Window System). The
136207 you can use the `configure' options `--x-includes=DIR' and
137208 `--x-libraries=DIR' to specify their locations.
138209
210 Some packages offer the ability to configure how verbose the
211 execution of `make' will be. For these packages, running `./configure
212 --enable-silent-rules' sets the default to minimal output, which can be
213 overridden with `make V=1'; while running `./configure
214 --disable-silent-rules' sets the default to verbose, which can be
215 overridden with `make V=0'.
216
217 Particular systems
218 ==================
219
220 On HP-UX, the default C compiler is not ANSI C compatible. If GNU
221 CC is not installed, it is recommended to use the following options in
222 order to use an ANSI C compiler:
223
224 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
225
226 and if that doesn't work, install pre-built binaries of GCC for HP-UX.
227
228 HP-UX `make' updates targets which have the same time stamps as
229 their prerequisites, which makes it generally unusable when shipped
230 generated files such as `configure' are involved. Use GNU `make'
231 instead.
232
233 On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
234 parse its `<wchar.h>' header file. The option `-nodtk' can be used as
235 a workaround. If GNU CC is not installed, it is therefore recommended
236 to try
237
238 ./configure CC="cc"
239
240 and if that doesn't work, try
241
242 ./configure CC="cc -nodtk"
243
244 On Solaris, don't put `/usr/ucb' early in your `PATH'. This
245 directory contains several dysfunctional programs; working variants of
246 these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
247 in your `PATH', put it _after_ `/usr/bin'.
248
249 On Haiku, software installed for all users goes in `/boot/common',
250 not `/usr/local'. It is recommended to use the following options:
251
252 ./configure --prefix=/boot/common
253
139254 Specifying the System Type
140255 ==========================
141256
142 There may be some features `configure' cannot figure out automatically,
143 but needs to determine by the type of machine the package will run on.
144 Usually, assuming the package is built to be run on the _same_
145 architectures, `configure' can figure that out, but if it prints a
146 message saying it cannot guess the machine type, give it the
257 There may be some features `configure' cannot figure out
258 automatically, but needs to determine by the type of machine the package
259 will run on. Usually, assuming the package is built to be run on the
260 _same_ architectures, `configure' can figure that out, but if it prints
261 a message saying it cannot guess the machine type, give it the
147262 `--build=TYPE' option. TYPE can either be a short name for the system
148263 type, such as `sun4', or a canonical name which has the form:
149264
151266
152267 where SYSTEM can have one of these forms:
153268
154 OS KERNEL-OS
269 OS
270 KERNEL-OS
155271
156272 See the file `config.sub' for the possible values of each field. If
157273 `config.sub' isn't included in this package, then this package doesn't
169285 Sharing Defaults
170286 ================
171287
172 If you want to set default values for `configure' scripts to share, you
173 can create a site shell script called `config.site' that gives default
174 values for variables like `CC', `cache_file', and `prefix'.
288 If you want to set default values for `configure' scripts to share,
289 you can create a site shell script called `config.site' that gives
290 default values for variables like `CC', `cache_file', and `prefix'.
175291 `configure' looks for `PREFIX/share/config.site' if it exists, then
176292 `PREFIX/etc/config.site' if it exists. Or, you can set the
177293 `CONFIG_SITE' environment variable to the location of the site script.
180296 Defining Variables
181297 ==================
182298
183 Variables not defined in a site shell script can be set in the
299 Variables not defined in a site shell script can be set in the
184300 environment passed to `configure'. However, some packages may run
185301 configure again during the build, and the customized values of these
186302 variables may be lost. In order to avoid this problem, you should set
189305 ./configure CC=/usr/local2/bin/gcc
190306
191307 causes the specified `gcc' to be used as the C compiler (unless it is
192 overridden in the site shell script). Here is a another example:
193
194 /bin/bash ./configure CONFIG_SHELL=/bin/bash
195
196 Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
197 configuration-related scripts to be executed by `/bin/bash'.
308 overridden in the site shell script).
309
310 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
311 an Autoconf limitation. Until the limitation is lifted, you can use
312 this workaround:
313
314 CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
198315
199316 `configure' Invocation
200317 ======================
201318
202 `configure' recognizes the following options to control how it operates.
319 `configure' recognizes the following options to control how it
320 operates.
203321
204322 `--help'
205323 `-h'
206 Print a summary of the options to `configure', and exit.
324 Print a summary of all of the options to `configure', and exit.
325
326 `--help=short'
327 `--help=recursive'
328 Print a summary of the options unique to this package's
329 `configure', and exit. The `short' variant lists options used
330 only in the top level, while the `recursive' variant lists options
331 also present in any nested packages.
207332
208333 `--version'
209334 `-V'
230355 Look for the package's source code in directory DIR. Usually
231356 `configure' can determine that directory automatically.
232357
358 `--prefix=DIR'
359 Use DIR as the installation prefix. *note Installation Names::
360 for more details, including other options available for fine-tuning
361 the installation locations.
362
363 `--no-create'
364 `-n'
365 Run the configure checks, but stop before creating any output
366 files.
367
233368 `configure' also accepts some other, not widely useful, options. Run
234369 `configure --help' for more details.
235
0 NULL =
01
12 ACLOCAL_AMFLAGS = -I m4
23
3 SUBDIRS = src man plugin po
4 SUBDIRS = icons src man plugin po data
45
5 EXTRA_DIST = @PACKAGE@.spec \
6 intltool-extract.in \
7 intltool-merge.in \
8 intltool-update.in
6 EXTRA_DIST = \
7 $(PACKAGE).spec \
8 intltool-extract.in \
9 intltool-merge.in \
10 intltool-update.in \
11 GNUmakefile \
12 maint.mk \
13 cfg.mk \
14 build-aux/gitlog-to-changelog \
15 build-aux/useless-if-before-free \
16 build-aux/vc-list-files \
17 $(NULL)
918
10 DISTCLEAN_FILES = @PACKAGE@.spec \
11 intltool-extract \
12 intltool-merge \
13 intltool-update
19 DISTCLEAN_FILES = \
20 $(PACKAGE).spec \
21 intltool-extract \
22 intltool-merge \
23 intltool-update \
24 $(NULL)
1425
15 MAINTAINERCLEANFILES = \
16 m4/libtool.m4 \
17 m4/lt~obsolete.m4 \
18 m4/ltoptions.m4 \
19 m4/ltsugar.m4 \
20 m4/ltversion.m4
26 MAINTAINERCLEANFILES = \
27 $(srcdir)/INSTALL \
28 $(srcdir)/aclocal.m4 \
29 $(srcdir)/autoscan.log \
30 $(srcdir)/config.h.in \
31 $(srcdir)/build-aux/compile \
32 $(srcdir)/build-aux/config.guess \
33 $(srcdir)/build-aux/config.sub \
34 $(srcdir)/build-aux/depcomp \
35 $(srcdir)/build-aux/install-sh \
36 $(srcdir)/build-aux/ltmain.sh \
37 $(srcdir)/build-aux/missing \
38 $(srcdir)/m4/intltool.m4 \
39 $(srcdir)/m4/libtool.m4 \
40 $(srcdir)/m4/ltoptions.m4 \
41 $(srcdir)/m4/ltsugar.m4 \
42 $(srcdir)/m4/ltversion.m4 \
43 $(srcdir)/m4/lt~obsolete.m4 \
44 $(NULL)
45
46 dist-hook: gen-ChangeLog
47
48 # Generate the ChangeLog file (with all entries since the switch to git)
49 # and insert it into the directory we're about to use to create a tarball.
50 .PHONY: gen-ChangeLog
51 gen-ChangeLog:
52 if test -d .git || test -d ../.git; then \
53 $(top_srcdir)/build-aux/gitlog-to-changelog \
54 > $(distdir)/cl-t; \
55 rm -f $(distdir)/ChangeLog; \
56 mv $(distdir)/cl-t $(distdir)/ChangeLog; \
57 fi
58
59 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
5 # Inc.
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
65 # This Makefile.in is free software; the Free Software Foundation
76 # gives unlimited permission to copy and/or distribute it,
87 # with or without modifications, as long as this notice is preserved.
1413
1514 @SET_MAKE@
1615 VPATH = @srcdir@
16 am__make_dryrun = \
17 { \
18 am__dry=no; \
19 case $$MAKEFLAGS in \
20 *\\[\ \ ]*) \
21 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
22 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
23 *) \
24 for am__flg in $$MAKEFLAGS; do \
25 case $$am__flg in \
26 *=*|--*) ;; \
27 *n*) am__dry=yes; break;; \
28 esac; \
29 done;; \
30 esac; \
31 test $$am__dry = yes; \
32 }
1733 pkgdatadir = $(datadir)/@PACKAGE@
1834 pkgincludedir = $(includedir)/@PACKAGE@
1935 pkglibdir = $(libdir)/@PACKAGE@
3551 subdir = .
3652 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
3753 $(srcdir)/Makefile.in $(srcdir)/config.h.in \
38 $(srcdir)/mingw32-virt-viewer.spec.in \
39 $(srcdir)/virt-viewer.spec.in $(top_srcdir)/configure AUTHORS \
40 COPYING ChangeLog INSTALL NEWS compile config.guess config.sub \
41 depcomp install-sh ltmain.sh missing
54 $(srcdir)/mingw-virt-viewer.spec.in \
55 $(srcdir)/virt-viewer.spec.in $(top_srcdir)/build-aux/compile \
56 $(top_srcdir)/build-aux/config.guess \
57 $(top_srcdir)/build-aux/config.sub \
58 $(top_srcdir)/build-aux/install-sh \
59 $(top_srcdir)/build-aux/ltmain.sh \
60 $(top_srcdir)/build-aux/missing $(top_srcdir)/configure \
61 AUTHORS COPYING ChangeLog INSTALL NEWS build-aux/compile \
62 build-aux/config.guess build-aux/config.sub \
63 build-aux/install-sh build-aux/ltmain.sh build-aux/missing
4264 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
43 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
44 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
45 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
46 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
65 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
66 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
67 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
68 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
69 $(top_srcdir)/configure.ac
4770 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4871 $(ACLOCAL_M4)
4972 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
5073 configure.lineno config.status.lineno
5174 mkinstalldirs = $(install_sh) -d
5275 CONFIG_HEADER = config.h
53 CONFIG_CLEAN_FILES = virt-viewer.spec mingw32-virt-viewer.spec
76 CONFIG_CLEAN_FILES = mingw-virt-viewer.spec virt-viewer.spec
5477 CONFIG_CLEAN_VPATH_FILES =
55 AM_V_GEN = $(am__v_GEN_$(V))
56 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
57 am__v_GEN_0 = @echo " GEN " $@;
58 AM_V_at = $(am__v_at_$(V))
59 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
78 AM_V_P = $(am__v_P_@AM_V@)
79 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
80 am__v_P_0 = false
81 am__v_P_1 = :
82 AM_V_GEN = $(am__v_GEN_@AM_V@)
83 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
84 am__v_GEN_0 = @echo " GEN " $@;
85 am__v_GEN_1 =
86 AM_V_at = $(am__v_at_@AM_V@)
87 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
6088 am__v_at_0 = @
89 am__v_at_1 =
6190 SOURCES =
6291 DIST_SOURCES =
6392 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
6796 install-pdf-recursive install-ps-recursive install-recursive \
6897 installcheck-recursive installdirs-recursive pdf-recursive \
6998 ps-recursive uninstall-recursive
99 am__can_run_installinfo = \
100 case $$AM_UPDATE_INFO_DIR in \
101 n|no|NO) false;; \
102 *) (install-info --version) >/dev/null 2>&1;; \
103 esac
70104 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
71105 distclean-recursive maintainer-clean-recursive
72106 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
73107 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
74 distdir dist dist-all distcheck
108 cscope distdir dist dist-all distcheck
75109 ETAGS = etags
76110 CTAGS = ctags
111 CSCOPE = cscope
77112 DIST_SUBDIRS = $(SUBDIRS)
78113 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
79114 distdir = $(PACKAGE)-$(VERSION)
80115 top_distdir = $(distdir)
81116 am__remove_distdir = \
82 { test ! -d "$(distdir)" \
83 || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
84 && rm -fr "$(distdir)"; }; }
117 if test -d "$(distdir)"; then \
118 find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
119 && rm -rf "$(distdir)" \
120 || { sleep 5 && rm -rf "$(distdir)"; }; \
121 else :; fi
122 am__post_remove_distdir = $(am__remove_distdir)
85123 am__relativize = \
86124 dir0=`pwd`; \
87125 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
109147 reldir="$$dir2"
110148 DIST_ARCHIVES = $(distdir).tar.gz
111149 GZIP_ENV = --best
150 DIST_TARGETS = dist-gzip
112151 distuninstallcheck_listfiles = find . -type f -print
152 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
153 | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
113154 distcleancheck_listfiles = find . -type f -print
114155 ACLOCAL = @ACLOCAL@
115156 ALL_LINGUAS = @ALL_LINGUAS@
120161 AUTOHEADER = @AUTOHEADER@
121162 AUTOMAKE = @AUTOMAKE@
122163 AWK = @AWK@
164 CATALOGS = @CATALOGS@
165 CATOBJEXT = @CATOBJEXT@
123166 CC = @CC@
124167 CCDEPMODE = @CCDEPMODE@
125168 CFLAGS = @CFLAGS@
143186 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
144187 GLIB2_CFLAGS = @GLIB2_CFLAGS@
145188 GLIB2_LIBS = @GLIB2_LIBS@
189 GLIB_MKENUMS = @GLIB_MKENUMS@
190 GMOFILES = @GMOFILES@
146191 GMSGFMT = @GMSGFMT@
147192 GREP = @GREP@
148193 GTK_API_VERSION = @GTK_API_VERSION@
152197 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
153198 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
154199 GTK_VNC_LIBS = @GTK_VNC_LIBS@
200 ICOTOOL = @ICOTOOL@
155201 INSTALL = @INSTALL@
156202 INSTALL_DATA = @INSTALL_DATA@
157203 INSTALL_PROGRAM = @INSTALL_PROGRAM@
158204 INSTALL_SCRIPT = @INSTALL_SCRIPT@
159205 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
206 INSTOBJEXT = @INSTOBJEXT@
207 INTLLIBS = @INTLLIBS@
160208 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
161209 INTLTOOL_MERGE = @INTLTOOL_MERGE@
162210 INTLTOOL_PERL = @INTLTOOL_PERL@
163211 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
212 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
213 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
214 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
215 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
164216 LD = @LD@
165217 LDFLAGS = @LDFLAGS@
166218 LIBOBJS = @LIBOBJS@
176228 MAKEINFO = @MAKEINFO@
177229 MANIFEST_TOOL = @MANIFEST_TOOL@
178230 MKDIR_P = @MKDIR_P@
231 MKINSTALLDIRS = @MKINSTALLDIRS@
179232 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
180233 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
181234 MSGFMT = @MSGFMT@
235 MSGFMT_OPTS = @MSGFMT_OPTS@
182236 MSGMERGE = @MSGMERGE@
183237 NM = @NM@
184238 NMEDIT = @NMEDIT@
199253 PKG_CONFIG = @PKG_CONFIG@
200254 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
201255 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
256 POFILES = @POFILES@
257 POSUB = @POSUB@
258 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
259 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
202260 RANLIB = @RANLIB@
203261 SED = @SED@
204262 SET_MAKE = @SET_MAKE@
205263 SHELL = @SHELL@
264 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
265 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
206266 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
207267 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
268 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
269 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
208270 STRIP = @STRIP@
209271 USE_NLS = @USE_NLS@
210272 VERSION = @VERSION@
211273 WARN_CFLAGS = @WARN_CFLAGS@
274 WINDRES = @WINDRES@
212275 XGETTEXT = @XGETTEXT@
213276 abs_builddir = @abs_builddir@
214277 abs_srcdir = @abs_srcdir@
243306 includedir = @includedir@
244307 infodir = @infodir@
245308 install_sh = @install_sh@
309 intltool__v_merge_options_ = @intltool__v_merge_options_@
310 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
246311 libdir = @libdir@
247312 libexecdir = @libexecdir@
248313 localedir = @localedir@
262327 top_build_prefix = @top_build_prefix@
263328 top_builddir = @top_builddir@
264329 top_srcdir = @top_srcdir@
330 NULL =
265331 ACLOCAL_AMFLAGS = -I m4
266 SUBDIRS = src man plugin po
267 EXTRA_DIST = @PACKAGE@.spec \
268 intltool-extract.in \
269 intltool-merge.in \
270 intltool-update.in
271
272 DISTCLEAN_FILES = @PACKAGE@.spec \
273 intltool-extract \
274 intltool-merge \
275 intltool-update
332 SUBDIRS = icons src man plugin po data
333 EXTRA_DIST = \
334 $(PACKAGE).spec \
335 intltool-extract.in \
336 intltool-merge.in \
337 intltool-update.in \
338 GNUmakefile \
339 maint.mk \
340 cfg.mk \
341 build-aux/gitlog-to-changelog \
342 build-aux/useless-if-before-free \
343 build-aux/vc-list-files \
344 $(NULL)
345
346 DISTCLEAN_FILES = \
347 $(PACKAGE).spec \
348 intltool-extract \
349 intltool-merge \
350 intltool-update \
351 $(NULL)
276352
277353 MAINTAINERCLEANFILES = \
278 m4/libtool.m4 \
279 m4/lt~obsolete.m4 \
280 m4/ltoptions.m4 \
281 m4/ltsugar.m4 \
282 m4/ltversion.m4
354 $(srcdir)/INSTALL \
355 $(srcdir)/aclocal.m4 \
356 $(srcdir)/autoscan.log \
357 $(srcdir)/config.h.in \
358 $(srcdir)/build-aux/compile \
359 $(srcdir)/build-aux/config.guess \
360 $(srcdir)/build-aux/config.sub \
361 $(srcdir)/build-aux/depcomp \
362 $(srcdir)/build-aux/install-sh \
363 $(srcdir)/build-aux/ltmain.sh \
364 $(srcdir)/build-aux/missing \
365 $(srcdir)/m4/intltool.m4 \
366 $(srcdir)/m4/libtool.m4 \
367 $(srcdir)/m4/ltoptions.m4 \
368 $(srcdir)/m4/ltsugar.m4 \
369 $(srcdir)/m4/ltversion.m4 \
370 $(srcdir)/m4/lt~obsolete.m4 \
371 $(NULL)
283372
284373 all: config.h
285374 $(MAKE) $(AM_MAKEFLAGS) all-recursive
286375
287376 .SUFFIXES:
288 am--refresh:
377 am--refresh: Makefile
289378 @:
290379 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
291380 @for dep in $?; do \
321410 $(am__aclocal_m4_deps):
322411
323412 config.h: stamp-h1
324 @if test ! -f $@; then \
325 rm -f stamp-h1; \
326 $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
327 else :; fi
413 @if test ! -f $@; then rm -f stamp-h1; else :; fi
414 @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
328415
329416 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
330417 @rm -f stamp-h1
336423
337424 distclean-hdr:
338425 -rm -f config.h stamp-h1
426 mingw-virt-viewer.spec: $(top_builddir)/config.status $(srcdir)/mingw-virt-viewer.spec.in
427 cd $(top_builddir) && $(SHELL) ./config.status $@
339428 virt-viewer.spec: $(top_builddir)/config.status $(srcdir)/virt-viewer.spec.in
340429 cd $(top_builddir) && $(SHELL) ./config.status $@
341 mingw32-virt-viewer.spec: $(top_builddir)/config.status $(srcdir)/mingw32-virt-viewer.spec.in
342 cd $(top_builddir) && $(SHELL) ./config.status $@
343430
344431 mostlyclean-libtool:
345432 -rm -f *.lo
351438 -rm -f libtool config.lt
352439
353440 # This directory's subdirectories are mostly independent; you can cd
354 # into them and run `make' without going through this Makefile.
355 # To change the values of `make' variables: instead of editing Makefiles,
356 # (1) if the variable is set in `config.status', edit `config.status'
357 # (which will cause the Makefiles to be regenerated when you run `make');
358 # (2) otherwise, pass the desired values on the `make' command line.
359 $(RECURSIVE_TARGETS):
441 # into them and run 'make' without going through this Makefile.
442 # To change the values of 'make' variables: instead of editing Makefiles,
443 # (1) if the variable is set in 'config.status', edit 'config.status'
444 # (which will cause the Makefiles to be regenerated when you run 'make');
445 # (2) otherwise, pass the desired values on the 'make' command line.
446 $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
360447 @fail= failcom='exit 1'; \
361448 for f in x $$MAKEFLAGS; do \
362449 case $$f in \
366453 done; \
367454 dot_seen=no; \
368455 target=`echo $@ | sed s/-recursive//`; \
369 list='$(SUBDIRS)'; for subdir in $$list; do \
456 case "$@" in \
457 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
458 *) list='$(SUBDIRS)' ;; \
459 esac; \
460 for subdir in $$list; do \
370461 echo "Making $$target in $$subdir"; \
371462 if test "$$subdir" = "."; then \
372463 dot_seen=yes; \
380471 if test "$$dot_seen" = "no"; then \
381472 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
382473 fi; test -z "$$fail"
383
384 $(RECURSIVE_CLEAN_TARGETS):
385 @fail= failcom='exit 1'; \
386 for f in x $$MAKEFLAGS; do \
387 case $$f in \
388 *=* | --[!k]*);; \
389 *k*) failcom='fail=yes';; \
390 esac; \
391 done; \
392 dot_seen=no; \
393 case "$@" in \
394 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
395 *) list='$(SUBDIRS)' ;; \
396 esac; \
397 rev=''; for subdir in $$list; do \
398 if test "$$subdir" = "."; then :; else \
399 rev="$$subdir $$rev"; \
400 fi; \
401 done; \
402 rev="$$rev ."; \
403 target=`echo $@ | sed s/-recursive//`; \
404 for subdir in $$rev; do \
405 echo "Making $$target in $$subdir"; \
406 if test "$$subdir" = "."; then \
407 local_target="$$target-am"; \
408 else \
409 local_target="$$target"; \
410 fi; \
411 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
412 || eval $$failcom; \
413 done && test -z "$$fail"
414474 tags-recursive:
415475 list='$(SUBDIRS)'; for subdir in $$list; do \
416476 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
418478 ctags-recursive:
419479 list='$(SUBDIRS)'; for subdir in $$list; do \
420480 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
481 done
482 cscopelist-recursive:
483 list='$(SUBDIRS)'; for subdir in $$list; do \
484 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
421485 done
422486
423487 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
482546 && $(am__cd) $(top_srcdir) \
483547 && gtags -i $(GTAGS_ARGS) "$$here"
484548
549 cscope: cscope.files
550 test ! -s cscope.files \
551 || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
552
553 clean-cscope:
554 -rm -f cscope.files
555
556 cscope.files: clean-cscope cscopelist-recursive cscopelist
557
558 cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
559 list='$(SOURCES) $(HEADERS) $(LISP)'; \
560 case "$(srcdir)" in \
561 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
562 *) sdir=$(subdir)/$(srcdir) ;; \
563 esac; \
564 for i in $$list; do \
565 if test -f "$$i"; then \
566 echo "$(subdir)/$$i"; \
567 else \
568 echo "$$sdir/$$i"; \
569 fi; \
570 done >> $(top_builddir)/cscope.files
571
485572 distclean-tags:
486573 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
574 -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
487575
488576 distdir: $(DISTFILES)
489577 $(am__remove_distdir)
519607 done
520608 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
521609 if test "$$subdir" = .; then :; else \
522 test -d "$(distdir)/$$subdir" \
523 || $(MKDIR_P) "$(distdir)/$$subdir" \
524 || exit 1; \
525 fi; \
526 done
527 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
528 if test "$$subdir" = .; then :; else \
610 $(am__make_dryrun) \
611 || test -d "$(distdir)/$$subdir" \
612 || $(MKDIR_P) "$(distdir)/$$subdir" \
613 || exit 1; \
529614 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
530615 $(am__relativize); \
531616 new_distdir=$$reldir; \
545630 || exit 1; \
546631 fi; \
547632 done
633 $(MAKE) $(AM_MAKEFLAGS) \
634 top_distdir="$(top_distdir)" distdir="$(distdir)" \
635 dist-hook
548636 -test -n "$(am__skip_mode_fix)" \
549637 || find "$(distdir)" -type d ! -perm -755 \
550638 -exec chmod u+rwx,go+rx {} \; -o \
554642 || chmod -R a+r "$(distdir)"
555643 dist-gzip: distdir
556644 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
557 $(am__remove_distdir)
645 $(am__post_remove_distdir)
558646
559647 dist-bzip2: distdir
560 tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
561 $(am__remove_distdir)
562
563 dist-lzma: distdir
564 tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
565 $(am__remove_distdir)
648 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
649 $(am__post_remove_distdir)
650
651 dist-lzip: distdir
652 tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
653 $(am__post_remove_distdir)
566654
567655 dist-xz: distdir
568 tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
569 $(am__remove_distdir)
656 tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
657 $(am__post_remove_distdir)
570658
571659 dist-tarZ: distdir
572660 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
573 $(am__remove_distdir)
661 $(am__post_remove_distdir)
574662
575663 dist-shar: distdir
576664 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
577 $(am__remove_distdir)
665 $(am__post_remove_distdir)
578666
579667 dist-zip: distdir
580668 -rm -f $(distdir).zip
581669 zip -rq $(distdir).zip $(distdir)
582 $(am__remove_distdir)
583
584 dist dist-all: distdir
585 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
586 $(am__remove_distdir)
670 $(am__post_remove_distdir)
671
672 dist dist-all:
673 $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
674 $(am__post_remove_distdir)
587675
588676 # This target untars the dist file and tries a VPATH configuration. Then
589677 # it guarantees that the distribution is self-contained by making another
594682 GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
595683 *.tar.bz2*) \
596684 bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
597 *.tar.lzma*) \
598 lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
685 *.tar.lz*) \
686 lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
599687 *.tar.xz*) \
600688 xz -dc $(distdir).tar.xz | $(am__untar) ;;\
601689 *.tar.Z*) \
605693 *.zip*) \
606694 unzip $(distdir).zip ;;\
607695 esac
608 chmod -R a-w $(distdir); chmod a+w $(distdir)
696 chmod -R a-w $(distdir); chmod u+w $(distdir)
609697 mkdir $(distdir)/_build
610698 mkdir $(distdir)/_inst
611699 chmod a-w $(distdir)
615703 && am__cwd=`pwd` \
616704 && $(am__cd) $(distdir)/_build \
617705 && ../configure --srcdir=.. --prefix="$$dc_install_base" \
706 $(AM_DISTCHECK_CONFIGURE_FLAGS) \
618707 $(DISTCHECK_CONFIGURE_FLAGS) \
619708 && $(MAKE) $(AM_MAKEFLAGS) \
620709 && $(MAKE) $(AM_MAKEFLAGS) dvi \
638727 && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
639728 && cd "$$am__cwd" \
640729 || exit 1
641 $(am__remove_distdir)
730 $(am__post_remove_distdir)
642731 @(echo "$(distdir) archives ready for distribution: "; \
643732 list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
644733 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
645734 distuninstallcheck:
646 @$(am__cd) '$(distuninstallcheck_dir)' \
647 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
735 @test -n '$(distuninstallcheck_dir)' || { \
736 echo 'ERROR: trying to run $@ with an empty' \
737 '$$(distuninstallcheck_dir)' >&2; \
738 exit 1; \
739 }; \
740 $(am__cd) '$(distuninstallcheck_dir)' || { \
741 echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
742 exit 1; \
743 }; \
744 test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
648745 || { echo "ERROR: files left after uninstall:" ; \
649746 if test -n "$(DESTDIR)"; then \
650747 echo " (check DESTDIR support)"; \
675772
676773 installcheck: installcheck-recursive
677774 install-strip:
678 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
679 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
680 `test -z '$(STRIP)' || \
681 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
775 if test -z '$(STRIP)'; then \
776 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
777 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
778 install; \
779 else \
780 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
781 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
782 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
783 fi
682784 mostlyclean-generic:
683785
684786 clean-generic:
762864 uninstall-am:
763865
764866 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
765 ctags-recursive install-am install-strip tags-recursive
867 cscopelist-recursive ctags-recursive install-am install-strip \
868 tags-recursive
766869
767870 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
768 all all-am am--refresh check check-am clean clean-generic \
769 clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
770 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
771 distcheck distclean distclean-generic distclean-hdr \
772 distclean-libtool distclean-tags distcleancheck distdir \
773 distuninstallcheck dvi dvi-am html html-am info info-am \
774 install install-am install-data install-data-am install-dvi \
775 install-dvi-am install-exec install-exec-am install-html \
776 install-html-am install-info install-info-am install-man \
777 install-pdf install-pdf-am install-ps install-ps-am \
778 install-strip installcheck installcheck-am installdirs \
779 installdirs-am maintainer-clean maintainer-clean-generic \
780 mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
781 ps ps-am tags tags-recursive uninstall uninstall-am
782
871 all all-am am--refresh check check-am clean clean-cscope \
872 clean-generic clean-libtool cscope cscopelist \
873 cscopelist-recursive ctags ctags-recursive dist dist-all \
874 dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar dist-tarZ \
875 dist-xz dist-zip distcheck distclean distclean-generic \
876 distclean-hdr distclean-libtool distclean-tags distcleancheck \
877 distdir distuninstallcheck dvi dvi-am html html-am info \
878 info-am install install-am install-data install-data-am \
879 install-dvi install-dvi-am install-exec install-exec-am \
880 install-html install-html-am install-info install-info-am \
881 install-man install-pdf install-pdf-am install-ps \
882 install-ps-am install-strip installcheck installcheck-am \
883 installdirs installdirs-am maintainer-clean \
884 maintainer-clean-generic mostlyclean mostlyclean-generic \
885 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
886 uninstall uninstall-am
887
888
889 dist-hook: gen-ChangeLog
890
891 # Generate the ChangeLog file (with all entries since the switch to git)
892 # and insert it into the directory we're about to use to create a tarball.
893 .PHONY: gen-ChangeLog
894 gen-ChangeLog:
895 if test -d .git || test -d ../.git; then \
896 $(top_srcdir)/build-aux/gitlog-to-changelog \
897 > $(distdir)/cl-t; \
898 rm -f $(distdir)/ChangeLog; \
899 mv $(distdir)/cl-t $(distdir)/ChangeLog; \
900 fi
901
902 -include $(top_srcdir)/git.mk
783903
784904 # Tell versions [3.59,3.63) of GNU make to not export all variables.
785905 # Otherwise a system limit (for SysV at least) may be exceeded.
00 Virt Viewer News
11 ================
2
3 0.5.4: Sep 17, 2012
4 -------------------
5
6 - Fix host migration with Spice
7 - Fix misc memory leaks
8 - Fix build with newer glibc and -O0
9 - Improve automatic fullscreen Spice configuration
10 - Avoid crash when quiting application
11 - Rebuild display men whenever a window is added/removed
12 - Number displays starting from 1 instead of 0
13 - Add support for handling multiple monitors with Spice
14 - Menu display menu insensitive if no displays can be selected
15 - Use real binary name in remote-viewer help message
16 - Document -f=auto-conf in remote-viewer help
17
18 0.5.3: May 14, 2012
19 -------------------
20
21 - Add support for raw IPv6 addresses
22 - Add a remote-viewer.desktop file and register spice:// handling
23 - Add a simple connection dialog to remote-viewer
24 - Add remote-viewer --fullscreen=auto-conf option, to update guest
25 monitors configuration to match client
26 - Spice controller support for disable-effects, color-depth and
27 usbredir
28 - Spice controller interaction fixes
29 - Windows version and nsis installer improvements
30 - Import newer translations from transifex
31 - Misc reference leak / crash bugs fixed
32
33
34 0.5.2: Mar 09, 2012
35 -------------------
36
37 - Require libvirt >= 0.9.7, spice-gtk >= 0.11, spice-protocol >= 0.10.1
38 - Import newer translations from transifex
39 - remote-viewer learned Spice controller customizable key bindings,
40 smartcard property, and foreign menu
41 - Fix Spice crash on re-connection
42 - Fix connecting via ssh to a password-protected server
43 - Add a sendkey menu in fullscreen mode
44 - Add USB device selection in fullscreen mode
45 - Misc reference leak / crash bugs fixed
46
47 0.5.1: Feb 17, 2012
48 -------------------
49
50 - Import newer translations from transifex
51 - Fix build system to ensure we don't loose GNU_RELRO
52 security feature
53 - Don't link virt-viewer binary against spice controller
54 - Add back compat for GObject 2.22 which lacks GBinding
55
56 0.5.0: Feb 14, 2012
57 -------------------
58
59 - Add a remote-viewer binary for connecting to a SPICE/VNC
60 server based on URI, instead of querying libvirt
61 - Add ability to attach to a local VM via libvirt instead of
62 connecting over UNIX sockets
63 - Add support for SPICE controller
64 - Allow build without libvirt, for remote-viewer only
65 - Automatically resize guest desktop when resizing window with SPICE
66 - Add support for redirecting host USB devices to remote guest
67 - Grab focus when first showing the display
68 - Register as a spice-xpi-client-remote alternative
69 - Add pretty icon for virt-viewer app
70 - Set transient window hints on all popups
71 - Activate password 'Ok' button when pressing Enter
72 - Support secure connections with SPICE
73 - Don't hardcode 'localhost' for hostname
74
75 0.4.2: Nov 9, 2011
76 -------------------
77
78 - Fix exports of signal functions for GTK UI builder on Windows
79 - Avoid crash if xmlParseURI fails
80 - Fix inverted test for SSH port that broke tunnelling
81 - Don't hardcode port numbers for SSH if not requested by user
82 - Fix deadlock in event handling
83 - Fix initial zoom level for all windows
84 - Fix window title to include domain name
85 - Fix hostname used when XML gives a wildcard IP address
86 - Fix window title when waiting for domain to appear
87 - Fix key shortcust for F9-F12 menus
88 - Always ask libvirt for its canonical URI
89 - Allow build without GTK-VNC (ie spice only)
90 - Require GTK-VNC >= 0.4.3
91 - Require SPICE-GTK >= 0.6.0
92
293
394 0.4.1: Aug 4, 2011
495 -------------------
1313
1414 ./configure --with-gtk=3.0 (or =2.0)
1515
16 Virt Viewer uses the GTK-VNC widget to provide a display
17 of the VNC protocol. This is available from
16 Virt Viewer uses the GTK-VNC (>= 0.4.3) widget to provide a
17 display of the VNC protocol, which is available from
1818
1919 http://gtk-vnc.sourceforge.net/
2020
21 Optionally Virt Viewer can also provide a SPICE client
22 using the SPICE-GTK widget (>= 0.6) available from
21 Virt Viewer uses the SPICE-GTK (>= 0.12.101) widget to provide a
22 display of the SPICE protocol, which is available from:
2323
2424 http://spice-space.org/page/Spice-Gtk
25
26 Use of either SPICE-GTK or GTK-VNC can be disabled at time
27 of configure, with --without-gtk-vnc or --without-spice-gtk
28 respectively.
2529
2630 Virt Viewer uses libvirt to lookup information about the
2731 guest OS display. This is available from
1818
1919 warnCFLAGS=
2020
21 try_compiler_flags="-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables"
21 try_compiler_flags="-fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables"
2222
2323 case "$enable_compile_warnings" in
2424 no)
4242 AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
4343 ;;
4444 esac
45
46 AH_VERBATIM([FORTIFY_SOURCE],
47 [/* Enable compile-time and run-time bounds-checking, and some warnings. */
48 #if defined __OPTIMIZE__ && __OPTIMIZE__
49 # define _FORTIFY_SOURCE 2
50 #endif
51 ])
4552
4653 compiler_flags=
4754 for option in $try_compiler_flags; do
0 # generated automatically by aclocal 1.11.1 -*- Autoconf -*-
1
2 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
3 # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
0 # generated automatically by aclocal 1.12.2 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2012 Free Software Foundation, Inc.
3
44 # This file is free software; the Free Software Foundation
55 # gives unlimited permission to copy and/or distribute it,
66 # with or without modifications, as long as this notice is preserved.
1616 [m4_warning([this file was generated for autoconf 2.68.
1717 You have another version of autoconf. It may work, but is not guaranteed to.
1818 If you have problems, you may need to regenerate the build system entirely.
19 To do so, use the procedure documented by the package, typically `autoreconf'.])])
20
21
22 dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
23 # serial 40 IT_PROG_INTLTOOL
24 AC_DEFUN([IT_PROG_INTLTOOL], [
25 AC_PREREQ([2.50])dnl
26 AC_REQUIRE([AM_NLS])dnl
27
28 case "$am__api_version" in
29 1.[01234])
30 AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
31 ;;
32 *)
33 ;;
34 esac
35
36 if test -n "$1"; then
37 AC_MSG_CHECKING([for intltool >= $1])
38
39 INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
40 INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
41 [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
42 ]
43 AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
44 test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
45 AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
19 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
20
21 # Copyright (C) 1995-2002 Free Software Foundation, Inc.
22 # Copyright (C) 2001-2003,2004 Red Hat, Inc.
23 #
24 # This file is free software, distributed under the terms of the GNU
25 # General Public License. As a special exception to the GNU General
26 # Public License, this file may be distributed as part of a program
27 # that contains a configuration script generated by Autoconf, under
28 # the same distribution terms as the rest of that program.
29 #
30 # This file can be copied and used freely without restrictions. It can
31 # be used in projects which are not available under the GNU Public License
32 # but which still want to provide support for the GNU gettext functionality.
33 #
34 # Macro to add for using GNU gettext.
35 # Ulrich Drepper <drepper@cygnus.com>, 1995, 1996
36 #
37 # Modified to never use included libintl.
38 # Owen Taylor <otaylor@redhat.com>, 12/15/1998
39 #
40 # Major rework to remove unused code
41 # Owen Taylor <otaylor@redhat.com>, 12/11/2002
42 #
43 # Added better handling of ALL_LINGUAS from GNU gettext version
44 # written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
45 #
46 # Modified to require ngettext
47 # Matthias Clasen <mclasen@redhat.com> 08/06/2004
48 #
49 # We need this here as well, since someone might use autoconf-2.5x
50 # to configure GLib then an older version to configure a package
51 # using AM_GLIB_GNU_GETTEXT
52 AC_PREREQ(2.53)
53
54 dnl
55 dnl We go to great lengths to make sure that aclocal won't
56 dnl try to pull in the installed version of these macros
57 dnl when running aclocal in the glib directory.
58 dnl
59 m4_copy([AC_DEFUN],[glib_DEFUN])
60 m4_copy([AC_REQUIRE],[glib_REQUIRE])
61 dnl
62 dnl At the end, if we're not within glib, we'll define the public
63 dnl definitions in terms of our private definitions.
64 dnl
65
66 # GLIB_LC_MESSAGES
67 #--------------------
68 glib_DEFUN([GLIB_LC_MESSAGES],
69 [AC_CHECK_HEADERS([locale.h])
70 if test $ac_cv_header_locale_h = yes; then
71 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
72 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
73 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
74 if test $am_cv_val_LC_MESSAGES = yes; then
75 AC_DEFINE(HAVE_LC_MESSAGES, 1,
76 [Define if your <locale.h> file defines LC_MESSAGES.])
77 fi
78 fi])
79
80 # GLIB_PATH_PROG_WITH_TEST
81 #----------------------------
82 dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
83 dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
84 glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
85 [# Extract the first word of "$2", so it can be a program name with args.
86 set dummy $2; ac_word=[$]2
87 AC_MSG_CHECKING([for $ac_word])
88 AC_CACHE_VAL(ac_cv_path_$1,
89 [case "[$]$1" in
90 /*)
91 ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
92 ;;
93 *)
94 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
95 for ac_dir in ifelse([$5], , $PATH, [$5]); do
96 test -z "$ac_dir" && ac_dir=.
97 if test -f $ac_dir/$ac_word; then
98 if [$3]; then
99 ac_cv_path_$1="$ac_dir/$ac_word"
100 break
101 fi
102 fi
103 done
104 IFS="$ac_save_ifs"
105 dnl If no 4th arg is given, leave the cache variable unset,
106 dnl so AC_PATH_PROGS will keep looking.
107 ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
108 ])dnl
109 ;;
110 esac])dnl
111 $1="$ac_cv_path_$1"
112 if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
113 AC_MSG_RESULT([$]$1)
114 else
115 AC_MSG_RESULT(no)
46116 fi
47
48 AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
49 AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
50 AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
51 if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
52 AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
117 AC_SUBST($1)dnl
118 ])
119
120 # GLIB_WITH_NLS
121 #-----------------
122 glib_DEFUN([GLIB_WITH_NLS],
123 dnl NLS is obligatory
124 [USE_NLS=yes
125 AC_SUBST(USE_NLS)
126
127 gt_cv_have_gettext=no
128
129 CATOBJEXT=NONE
130 XGETTEXT=:
131 INTLLIBS=
132
133 AC_CHECK_HEADER(libintl.h,
134 [gt_cv_func_dgettext_libintl="no"
135 libintl_extra_libs=""
136
137 #
138 # First check in libc
139 #
140 AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
141 [AC_TRY_LINK([
142 #include <libintl.h>
143 ],
144 [return !ngettext ("","", 1)],
145 gt_cv_func_ngettext_libc=yes,
146 gt_cv_func_ngettext_libc=no)
147 ])
148
149 if test "$gt_cv_func_ngettext_libc" = "yes" ; then
150 AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
151 [AC_TRY_LINK([
152 #include <libintl.h>
153 ],
154 [return !dgettext ("","")],
155 gt_cv_func_dgettext_libc=yes,
156 gt_cv_func_dgettext_libc=no)
157 ])
158 fi
159
160 if test "$gt_cv_func_ngettext_libc" = "yes" ; then
161 AC_CHECK_FUNCS(bind_textdomain_codeset)
162 fi
163
164 #
165 # If we don't have everything we want, check in libintl
166 #
167 if test "$gt_cv_func_dgettext_libc" != "yes" \
168 || test "$gt_cv_func_ngettext_libc" != "yes" \
169 || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
170
171 AC_CHECK_LIB(intl, bindtextdomain,
172 [AC_CHECK_LIB(intl, ngettext,
173 [AC_CHECK_LIB(intl, dgettext,
174 gt_cv_func_dgettext_libintl=yes)])])
175
176 if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
177 AC_MSG_CHECKING([if -liconv is needed to use gettext])
178 AC_MSG_RESULT([])
179 AC_CHECK_LIB(intl, ngettext,
180 [AC_CHECK_LIB(intl, dcgettext,
181 [gt_cv_func_dgettext_libintl=yes
182 libintl_extra_libs=-liconv],
183 :,-liconv)],
184 :,-liconv)
185 fi
186
187 #
188 # If we found libintl, then check in it for bind_textdomain_codeset();
189 # we'll prefer libc if neither have bind_textdomain_codeset(),
190 # and both have dgettext and ngettext
191 #
192 if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
193 glib_save_LIBS="$LIBS"
194 LIBS="$LIBS -lintl $libintl_extra_libs"
195 unset ac_cv_func_bind_textdomain_codeset
196 AC_CHECK_FUNCS(bind_textdomain_codeset)
197 LIBS="$glib_save_LIBS"
198
199 if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
200 gt_cv_func_dgettext_libc=no
201 else
202 if test "$gt_cv_func_dgettext_libc" = "yes" \
203 && test "$gt_cv_func_ngettext_libc" = "yes"; then
204 gt_cv_func_dgettext_libintl=no
205 fi
206 fi
207 fi
208 fi
209
210 if test "$gt_cv_func_dgettext_libc" = "yes" \
211 || test "$gt_cv_func_dgettext_libintl" = "yes"; then
212 gt_cv_have_gettext=yes
213 fi
214
215 if test "$gt_cv_func_dgettext_libintl" = "yes"; then
216 INTLLIBS="-lintl $libintl_extra_libs"
217 fi
218
219 if test "$gt_cv_have_gettext" = "yes"; then
220 AC_DEFINE(HAVE_GETTEXT,1,
221 [Define if the GNU gettext() function is already present or preinstalled.])
222 GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
223 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
224 if test "$MSGFMT" != "no"; then
225 glib_save_LIBS="$LIBS"
226 LIBS="$LIBS $INTLLIBS"
227 AC_CHECK_FUNCS(dcgettext)
228 MSGFMT_OPTS=
229 AC_MSG_CHECKING([if msgfmt accepts -c])
230 GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
231 msgid ""
232 msgstr ""
233 "Content-Type: text/plain; charset=UTF-8\n"
234 "Project-Id-Version: test 1.0\n"
235 "PO-Revision-Date: 2007-02-15 12:01+0100\n"
236 "Last-Translator: test <foo@bar.xx>\n"
237 "Language-Team: C <LL@li.org>\n"
238 "MIME-Version: 1.0\n"
239 "Content-Transfer-Encoding: 8bit\n"
240 ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
241 AC_SUBST(MSGFMT_OPTS)
242 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
243 GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
244 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
245 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
246 return _nl_msg_cat_cntr],
247 [CATOBJEXT=.gmo
248 DATADIRNAME=share],
249 [case $host in
250 *-*-solaris*)
251 dnl On Solaris, if bind_textdomain_codeset is in libc,
252 dnl GNU format message catalog is always supported,
253 dnl since both are added to the libc all together.
254 dnl Hence, we'd like to go with DATADIRNAME=share and
255 dnl and CATOBJEXT=.gmo in this case.
256 AC_CHECK_FUNC(bind_textdomain_codeset,
257 [CATOBJEXT=.gmo
258 DATADIRNAME=share],
259 [CATOBJEXT=.mo
260 DATADIRNAME=lib])
261 ;;
262 *-*-openbsd*)
263 CATOBJEXT=.mo
264 DATADIRNAME=share
265 ;;
266 *)
267 CATOBJEXT=.mo
268 DATADIRNAME=lib
269 ;;
270 esac])
271 LIBS="$glib_save_LIBS"
272 INSTOBJEXT=.mo
273 else
274 gt_cv_have_gettext=no
275 fi
276 fi
277 ])
278
279 if test "$gt_cv_have_gettext" = "yes" ; then
280 AC_DEFINE(ENABLE_NLS, 1,
281 [always defined to indicate that i18n is enabled])
282 fi
283
284 dnl Test whether we really found GNU xgettext.
285 if test "$XGETTEXT" != ":"; then
286 dnl If it is not GNU xgettext we define it as : so that the
287 dnl Makefiles still can work.
288 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
289 : ;
290 else
291 AC_MSG_RESULT(
292 [found xgettext program is not GNU xgettext; ignore it])
293 XGETTEXT=":"
294 fi
295 fi
296
297 # We need to process the po/ directory.
298 POSUB=po
299
300 AC_OUTPUT_COMMANDS(
301 [case "$CONFIG_FILES" in *po/Makefile.in*)
302 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
303 esac])
304
305 dnl These rules are solely for the distribution goal. While doing this
306 dnl we only have to keep exactly one list of the available catalogs
307 dnl in configure.ac.
308 for lang in $ALL_LINGUAS; do
309 GMOFILES="$GMOFILES $lang.gmo"
310 POFILES="$POFILES $lang.po"
311 done
312
313 dnl Make all variables we use known to autoconf.
314 AC_SUBST(CATALOGS)
315 AC_SUBST(CATOBJEXT)
316 AC_SUBST(DATADIRNAME)
317 AC_SUBST(GMOFILES)
318 AC_SUBST(INSTOBJEXT)
319 AC_SUBST(INTLLIBS)
320 AC_SUBST(PO_IN_DATADIR_TRUE)
321 AC_SUBST(PO_IN_DATADIR_FALSE)
322 AC_SUBST(POFILES)
323 AC_SUBST(POSUB)
324 ])
325
326 # AM_GLIB_GNU_GETTEXT
327 # -------------------
328 # Do checks necessary for use of gettext. If a suitable implementation
329 # of gettext is found in either in libintl or in the C library,
330 # it will set INTLLIBS to the libraries needed for use of gettext
331 # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
332 # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
333 # on various variables needed by the Makefile.in.in installed by
334 # glib-gettextize.
335 dnl
336 glib_DEFUN([GLIB_GNU_GETTEXT],
337 [AC_REQUIRE([AC_PROG_CC])dnl
338 AC_REQUIRE([AC_HEADER_STDC])dnl
339
340 GLIB_LC_MESSAGES
341 GLIB_WITH_NLS
342
343 if test "$gt_cv_have_gettext" = "yes"; then
344 if test "x$ALL_LINGUAS" = "x"; then
345 LINGUAS=
346 else
347 AC_MSG_CHECKING(for catalogs to be installed)
348 NEW_LINGUAS=
349 for presentlang in $ALL_LINGUAS; do
350 useit=no
351 if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
352 desiredlanguages="$LINGUAS"
353 else
354 desiredlanguages="$ALL_LINGUAS"
355 fi
356 for desiredlang in $desiredlanguages; do
357 # Use the presentlang catalog if desiredlang is
358 # a. equal to presentlang, or
359 # b. a variant of presentlang (because in this case,
360 # presentlang can be used as a fallback for messages
361 # which are not translated in the desiredlang catalog).
362 case "$desiredlang" in
363 "$presentlang"*) useit=yes;;
364 esac
365 done
366 if test $useit = yes; then
367 NEW_LINGUAS="$NEW_LINGUAS $presentlang"
368 fi
369 done
370 LINGUAS=$NEW_LINGUAS
371 AC_MSG_RESULT($LINGUAS)
372 fi
373
374 dnl Construct list of names of catalog files to be constructed.
375 if test -n "$LINGUAS"; then
376 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
377 fi
378 fi
379
380 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
381 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
382 dnl Try to locate is.
383 MKINSTALLDIRS=
384 if test -n "$ac_aux_dir"; then
385 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
386 fi
387 if test -z "$MKINSTALLDIRS"; then
388 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
389 fi
390 AC_SUBST(MKINSTALLDIRS)
391
392 dnl Generate list of files to be processed by xgettext which will
393 dnl be included in po/Makefile.
394 test -d po || mkdir po
395 if test "x$srcdir" != "x."; then
396 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
397 posrcprefix="$srcdir/"
398 else
399 posrcprefix="../$srcdir/"
400 fi
401 else
402 posrcprefix="../"
403 fi
404 rm -f po/POTFILES
405 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
406 < $srcdir/po/POTFILES.in > po/POTFILES
407 ])
408
409 # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
410 # -------------------------------
411 # Define VARIABLE to the location where catalog files will
412 # be installed by po/Makefile.
413 glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
414 [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
415 glib_save_prefix="$prefix"
416 glib_save_exec_prefix="$exec_prefix"
417 glib_save_datarootdir="$datarootdir"
418 test "x$prefix" = xNONE && prefix=$ac_default_prefix
419 test "x$exec_prefix" = xNONE && exec_prefix=$prefix
420 datarootdir=`eval echo "${datarootdir}"`
421 if test "x$CATOBJEXT" = "x.mo" ; then
422 localedir=`eval echo "${libdir}/locale"`
423 else
424 localedir=`eval echo "${datadir}/locale"`
53425 fi
54
55 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 $< [$]@'
56 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 $< [$]@'
57 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 $< [$]@'
58 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 $< [$]@'
59 INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
60 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 $< [$]@'
61 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 $< [$]@'
62 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 $< [$]@'
63 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 $< [$]@'
64 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 $< [$]@'
65 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 $< [$]@'
66 INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
67 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 $< [$]@'
68 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 $< [$]@'
69 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 $< [$]@'
70 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 $< [$]@'
71 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 $< [$]@'
72 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 $< [$]@'
73 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 $< [$]@'
74
75 _IT_SUBST(INTLTOOL_DESKTOP_RULE)
76 _IT_SUBST(INTLTOOL_DIRECTORY_RULE)
77 _IT_SUBST(INTLTOOL_KEYS_RULE)
78 _IT_SUBST(INTLTOOL_PROP_RULE)
79 _IT_SUBST(INTLTOOL_OAF_RULE)
80 _IT_SUBST(INTLTOOL_PONG_RULE)
81 _IT_SUBST(INTLTOOL_SERVER_RULE)
82 _IT_SUBST(INTLTOOL_SHEET_RULE)
83 _IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
84 _IT_SUBST(INTLTOOL_UI_RULE)
85 _IT_SUBST(INTLTOOL_XAM_RULE)
86 _IT_SUBST(INTLTOOL_KBD_RULE)
87 _IT_SUBST(INTLTOOL_XML_RULE)
88 _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
89 _IT_SUBST(INTLTOOL_CAVES_RULE)
90 _IT_SUBST(INTLTOOL_SCHEMAS_RULE)
91 _IT_SUBST(INTLTOOL_THEME_RULE)
92 _IT_SUBST(INTLTOOL_SERVICE_RULE)
93 _IT_SUBST(INTLTOOL_POLICY_RULE)
94
95 # Check the gettext tools to make sure they are GNU
96 AC_PATH_PROG(XGETTEXT, xgettext)
97 AC_PATH_PROG(MSGMERGE, msgmerge)
98 AC_PATH_PROG(MSGFMT, msgfmt)
99 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
100 if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
101 AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
102 fi
103 xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
104 mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
105 mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
106 if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
107 AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
108 fi
109
110 AC_PATH_PROG(INTLTOOL_PERL, perl)
111 if test -z "$INTLTOOL_PERL"; then
112 AC_MSG_ERROR([perl not found])
113 fi
114 AC_MSG_CHECKING([for perl >= 5.8.1])
115 $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
116 if test $? -ne 0; then
117 AC_MSG_ERROR([perl 5.8.1 is required for intltool])
118 else
119 IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
120 AC_MSG_RESULT([$IT_PERL_VERSION])
121 fi
122 if test "x$2" != "xno-xml"; then
123 AC_MSG_CHECKING([for XML::Parser])
124 if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
125 AC_MSG_RESULT([ok])
126 else
127 AC_MSG_ERROR([XML::Parser perl module is required for intltool])
128 fi
129 fi
130
131 # Substitute ALL_LINGUAS so we can use it in po/Makefile
132 AC_SUBST(ALL_LINGUAS)
133
134 # Set DATADIRNAME correctly if it is not set yet
135 # (copied from glib-gettext.m4)
136 if test -z "$DATADIRNAME"; then
137 AC_LINK_IFELSE(
138 [AC_LANG_PROGRAM([[]],
139 [[extern int _nl_msg_cat_cntr;
140 return _nl_msg_cat_cntr]])],
141 [DATADIRNAME=share],
142 [case $host in
143 *-*-solaris*)
144 dnl On Solaris, if bind_textdomain_codeset is in libc,
145 dnl GNU format message catalog is always supported,
146 dnl since both are added to the libc all together.
147 dnl Hence, we'd like to go with DATADIRNAME=share
148 dnl in this case.
149 AC_CHECK_FUNC(bind_textdomain_codeset,
150 [DATADIRNAME=share], [DATADIRNAME=lib])
151 ;;
152 *)
153 [DATADIRNAME=lib]
154 ;;
155 esac])
156 fi
157 AC_SUBST(DATADIRNAME)
158
159 IT_PO_SUBDIR([po])
160
426 prefix="$glib_save_prefix"
427 exec_prefix="$glib_save_exec_prefix"
428 datarootdir="$glib_save_datarootdir"
429 AC_DEFINE_UNQUOTED($1, "$localedir",
430 [Define the location where the catalogs will be installed])
161431 ])
162432
163
164 # IT_PO_SUBDIR(DIRNAME)
165 # ---------------------
166 # All po subdirs have to be declared with this macro; the subdir "po" is
167 # declared by IT_PROG_INTLTOOL.
168 #
169 AC_DEFUN([IT_PO_SUBDIR],
170 [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
171433 dnl
172 dnl The following CONFIG_COMMANDS should be executed at the very end
173 dnl of config.status.
174 AC_CONFIG_COMMANDS_PRE([
175 AC_CONFIG_COMMANDS([$1/stamp-it], [
176 if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
177 AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
178 fi
179 rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
180 >"$1/stamp-it.tmp"
181 [sed '/^#/d
182 s/^[[].*] *//
183 /^[ ]*$/d
184 '"s|^| $ac_top_srcdir/|" \
185 "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
186 ]
187 [sed '/^POTFILES =/,/[^\\]$/ {
188 /^POTFILES =/!d
189 r $1/POTFILES
190 }
191 ' "$1/Makefile.in" >"$1/Makefile"]
192 rm -f "$1/Makefile.tmp"
193 mv "$1/stamp-it.tmp" "$1/stamp-it"
194 ])
434 dnl Now the definitions that aclocal will find
435 dnl
436 ifdef(glib_configure_ac,[],[
437 AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
438 AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
195439 ])dnl
196 ])
197
198 # _IT_SUBST(VARIABLE)
199 # -------------------
200 # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
201 #
202 AC_DEFUN([_IT_SUBST],
203 [
204 AC_SUBST([$1])
205 m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
206 ]
207 )
208
209 # deprecated macros
210 AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
211 # A hint is needed for aclocal from Automake <= 1.9.4:
212 # AC_DEFUN([AC_PROG_INTLTOOL], ...)
440
441 # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
442 #
443 # Create a temporary file with TEST-FILE as its contents and pass the
444 # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with
445 # 0 and perform ACTION-IF-FAIL for any other exit status.
446 AC_DEFUN([GLIB_RUN_PROG],
447 [cat >conftest.foo <<_ACEOF
448 $2
449 _ACEOF
450 if AC_RUN_LOG([$1 conftest.foo]); then
451 m4_ifval([$3], [$3], [:])
452 m4_ifvaln([$4], [else $4])dnl
453 echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
454 sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
455 fi])
213456
214457
215458 # nls.m4 serial 5 (gettext-0.18)
403646 fi[]dnl
404647 ])# PKG_CHECK_MODULES
405648
406 # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
407 #
408 # This file is free software; the Free Software Foundation
409 # gives unlimited permission to copy and/or distribute it,
410 # with or without modifications, as long as this notice is preserved.
649 # Copyright (C) 2002-2012 Free Software Foundation, Inc.
650 #
651 # This file is free software; the Free Software Foundation
652 # gives unlimited permission to copy and/or distribute it,
653 # with or without modifications, as long as this notice is preserved.
654
655 # serial 8
411656
412657 # AM_AUTOMAKE_VERSION(VERSION)
413658 # ----------------------------
415660 # generated from the m4 files accompanying Automake X.Y.
416661 # (This private macro should not be called outside this file.)
417662 AC_DEFUN([AM_AUTOMAKE_VERSION],
418 [am__api_version='1.11'
663 [am__api_version='1.12'
419664 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
420665 dnl require some minimum version. Point them to the right macro.
421 m4_if([$1], [1.11.1], [],
666 m4_if([$1], [1.12.2], [],
422667 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
423668 ])
424669
434679 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
435680 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
436681 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
437 [AM_AUTOMAKE_VERSION([1.11.1])dnl
682 [AM_AUTOMAKE_VERSION([1.12.2])dnl
438683 m4_ifndef([AC_AUTOCONF_VERSION],
439684 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
440685 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
441686
442687 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
443688
444 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
445 #
446 # This file is free software; the Free Software Foundation
447 # gives unlimited permission to copy and/or distribute it,
448 # with or without modifications, as long as this notice is preserved.
689 # Copyright (C) 2001-2012 Free Software Foundation, Inc.
690 #
691 # This file is free software; the Free Software Foundation
692 # gives unlimited permission to copy and/or distribute it,
693 # with or without modifications, as long as this notice is preserved.
694
695 # serial 2
449696
450697 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
451 # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
452 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
698 # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
699 # '$srcdir', '$srcdir/..', or '$srcdir/../..'.
453700 #
454701 # Of course, Automake must honor this variable whenever it calls a
455702 # tool from the auxiliary directory. The problem is that $srcdir (and
468715 #
469716 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
470717 # are both prefixed by $srcdir. In an in-source build this is usually
471 # harmless because $srcdir is `.', but things will broke when you
718 # harmless because $srcdir is '.', but things will broke when you
472719 # start a VPATH build or use an absolute $srcdir.
473720 #
474721 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
494741
495742 # AM_CONDITIONAL -*- Autoconf -*-
496743
497 # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
498 # Free Software Foundation, Inc.
499 #
500 # This file is free software; the Free Software Foundation
501 # gives unlimited permission to copy and/or distribute it,
502 # with or without modifications, as long as this notice is preserved.
503
504 # serial 9
744 # Copyright (C) 1997-2012 Free Software Foundation, Inc.
745 #
746 # This file is free software; the Free Software Foundation
747 # gives unlimited permission to copy and/or distribute it,
748 # with or without modifications, as long as this notice is preserved.
749
750 # serial 10
505751
506752 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
507753 # -------------------------------------
508754 # Define a conditional.
509755 AC_DEFUN([AM_CONDITIONAL],
510 [AC_PREREQ(2.52)dnl
511 ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
512 [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
756 [AC_PREREQ([2.52])dnl
757 m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
758 [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
513759 AC_SUBST([$1_TRUE])dnl
514760 AC_SUBST([$1_FALSE])dnl
515761 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
528774 Usually this means the macro was only invoked conditionally.]])
529775 fi])])
530776
531 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
532 # Free Software Foundation, Inc.
533 #
534 # This file is free software; the Free Software Foundation
535 # gives unlimited permission to copy and/or distribute it,
536 # with or without modifications, as long as this notice is preserved.
537
538 # serial 10
539
540 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
777 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
778 #
779 # This file is free software; the Free Software Foundation
780 # gives unlimited permission to copy and/or distribute it,
781 # with or without modifications, as long as this notice is preserved.
782
783 # serial 17
784
785 # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
541786 # written in clear, in which case automake, when reading aclocal.m4,
542787 # will think it sees a *use*, and therefore will trigger all it's
543788 # C support machinery. Also note that it means that autoscan, seeing
547792 # _AM_DEPENDENCIES(NAME)
548793 # ----------------------
549794 # See how the compiler implements dependency checking.
550 # NAME is "CC", "CXX", "GCJ", or "OBJC".
795 # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
551796 # We try a few techniques and use that to set a single cache variable.
552797 #
553798 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
560805 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
561806 AC_REQUIRE([AM_DEP_TRACK])dnl
562807
563 ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
564 [$1], CXX, [depcc="$CXX" am_compiler_list=],
565 [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
566 [$1], UPC, [depcc="$UPC" am_compiler_list=],
567 [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
568 [depcc="$$1" am_compiler_list=])
808 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
809 [$1], [CXX], [depcc="$CXX" am_compiler_list=],
810 [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
811 [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
812 [$1], [UPC], [depcc="$UPC" am_compiler_list=],
813 [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
814 [depcc="$$1" am_compiler_list=])
569815
570816 AC_CACHE_CHECK([dependency style of $depcc],
571817 [am_cv_$1_dependencies_compiler_type],
573819 # We make a subdir and do the tests there. Otherwise we can end up
574820 # making bogus files that we don't know about and never remove. For
575821 # instance it was reported that on HP-UX the gcc test will end up
576 # making a dummy file named `D' -- because `-MD' means `put the output
577 # in D'.
822 # making a dummy file named 'D' -- because '-MD' means "put the output
823 # in D".
824 rm -rf conftest.dir
578825 mkdir conftest.dir
579826 # Copy depcomp to subdir because otherwise we won't find it if we're
580827 # using a relative directory.
613860 : > sub/conftest.c
614861 for i in 1 2 3 4 5 6; do
615862 echo '#include "conftst'$i'.h"' >> sub/conftest.c
616 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
617 # Solaris 8's {/usr,}/bin/sh.
618 touch sub/conftst$i.h
863 # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
864 # Solaris 10 /bin/sh.
865 echo '/* dummy */' > sub/conftst$i.h
619866 done
620867 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
621868
622 # We check with `-c' and `-o' for the sake of the "dashmstdout"
869 # We check with '-c' and '-o' for the sake of the "dashmstdout"
623870 # mode. It turns out that the SunPro C++ compiler does not properly
624 # handle `-M -o', and we need to detect this. Also, some Intel
625 # versions had trouble with output in subdirs
871 # handle '-M -o', and we need to detect this. Also, some Intel
872 # versions had trouble with output in subdirs.
626873 am__obj=sub/conftest.${OBJEXT-o}
627874 am__minus_obj="-o $am__obj"
628875 case $depmode in
631878 test "$am__universal" = false || continue
632879 ;;
633880 nosideeffect)
634 # after this tag, mechanisms are not by side-effect, so they'll
635 # only be used when explicitly requested
881 # After this tag, mechanisms are not by side-effect, so they'll
882 # only be used when explicitly requested.
636883 if test "x$enable_dependency_tracking" = xyes; then
637884 continue
638885 else
639886 break
640887 fi
641888 ;;
642 msvisualcpp | msvcmsys)
643 # This compiler won't grok `-c -o', but also, the minuso test has
889 msvc7 | msvc7msys | msvisualcpp | msvcmsys)
890 # This compiler won't grok '-c -o', but also, the minuso test has
644891 # not run yet. These depmodes are late enough in the game, and
645892 # so weak that their functioning should not be impacted.
646893 am__obj=conftest.${OBJEXT-o}
688935 # AM_SET_DEPDIR
689936 # -------------
690937 # Choose a directory name for dependency files.
691 # This macro is AC_REQUIREd in _AM_DEPENDENCIES
938 # This macro is AC_REQUIREd in _AM_DEPENDENCIES.
692939 AC_DEFUN([AM_SET_DEPDIR],
693940 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
694941 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
698945 # AM_DEP_TRACK
699946 # ------------
700947 AC_DEFUN([AM_DEP_TRACK],
701 [AC_ARG_ENABLE(dependency-tracking,
702 [ --disable-dependency-tracking speeds up one-time build
703 --enable-dependency-tracking do not reject slow dependency extractors])
948 [AC_ARG_ENABLE([dependency-tracking], [dnl
949 AS_HELP_STRING(
950 [--enable-dependency-tracking],
951 [do not reject slow dependency extractors])
952 AS_HELP_STRING(
953 [--disable-dependency-tracking],
954 [speeds up one-time build])])
704955 if test "x$enable_dependency_tracking" != xno; then
705956 am_depcomp="$ac_aux_dir/depcomp"
706957 AMDEPBACKSLASH='\'
958 am__nodep='_no'
707959 fi
708960 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
709961 AC_SUBST([AMDEPBACKSLASH])dnl
710962 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
963 AC_SUBST([am__nodep])dnl
964 _AM_SUBST_NOTMAKE([am__nodep])dnl
711965 ])
712966
713967 # Generate code to set up dependency tracking. -*- Autoconf -*-
714968
715 # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
716 # Free Software Foundation, Inc.
717 #
718 # This file is free software; the Free Software Foundation
719 # gives unlimited permission to copy and/or distribute it,
720 # with or without modifications, as long as this notice is preserved.
721
722 #serial 5
969 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
970 #
971 # This file is free software; the Free Software Foundation
972 # gives unlimited permission to copy and/or distribute it,
973 # with or without modifications, as long as this notice is preserved.
974
975 # serial 6
723976
724977 # _AM_OUTPUT_DEPENDENCY_COMMANDS
725978 # ------------------------------
738991 # Strip MF so we end up with the name of the file.
739992 mf=`echo "$mf" | sed -e 's/:.*$//'`
740993 # Check whether this is an Automake generated Makefile or not.
741 # We used to match only the files named `Makefile.in', but
994 # We used to match only the files named 'Makefile.in', but
742995 # some people rename them; so instead we look at the file content.
743996 # Grep'ing the first line is not enough: some people post-process
744997 # each Makefile.in and add a new line on top of each file to say so.
7501003 continue
7511004 fi
7521005 # Extract the definition of DEPDIR, am__include, and am__quote
753 # from the Makefile without running `make'.
1006 # from the Makefile without running 'make'.
7541007 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
7551008 test -z "$DEPDIR" && continue
7561009 am__include=`sed -n 's/^am__include = //p' < "$mf"`
7571010 test -z "am__include" && continue
7581011 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
759 # When using ansi2knr, U may be empty or an underscore; expand it
760 U=`sed -n 's/^U = //p' < "$mf"`
7611012 # Find all dependency output files, they are included files with
7621013 # $(DEPDIR) in their names. We invoke sed twice because it is the
7631014 # simplest approach to changing $(DEPDIR) to its actual value in the
7641015 # expansion.
7651016 for file in `sed -n "
7661017 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
767 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
1018 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
7681019 # Make sure the directory exists.
7691020 test -f "$dirpart/$file" && continue
7701021 fdir=`AS_DIRNAME(["$file"])`
7821033 # This macro should only be invoked once -- use via AC_REQUIRE.
7831034 #
7841035 # This code is only required when automatic dependency tracking
785 # is enabled. FIXME. This creates each `.P' file that we will
1036 # is enabled. FIXME. This creates each '.P' file that we will
7861037 # need in order to bootstrap the dependency handling code.
7871038 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
7881039 [AC_CONFIG_COMMANDS([depfiles],
7901041 [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
7911042 ])
7921043
793 # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
794 # Free Software Foundation, Inc.
1044 # Copyright (C) 1996-2012 Free Software Foundation, Inc.
7951045 #
7961046 # This file is free software; the Free Software Foundation
7971047 # gives unlimited permission to copy and/or distribute it,
8041054
8051055 # Do all the work for Automake. -*- Autoconf -*-
8061056
807 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
808 # 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
809 #
810 # This file is free software; the Free Software Foundation
811 # gives unlimited permission to copy and/or distribute it,
812 # with or without modifications, as long as this notice is preserved.
813
814 # serial 16
1057 # Copyright (C) 1996-2012 Free Software Foundation, Inc.
1058 #
1059 # This file is free software; the Free Software Foundation
1060 # gives unlimited permission to copy and/or distribute it,
1061 # with or without modifications, as long as this notice is preserved.
1062
1063 # serial 19
8151064
8161065 # This macro actually does too much. Some checks are only needed if
8171066 # your package does certain things. But this isn't really a big deal.
8571106 # Define the identity of the package.
8581107 dnl Distinguish between old-style and new-style calls.
8591108 m4_ifval([$2],
860 [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
1109 [AC_DIAGNOSE([obsolete],
1110 [$0: two- and three-arguments forms are deprecated. For more info, see:
1111 http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
1112 m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
8611113 AC_SUBST([PACKAGE], [$1])dnl
8621114 AC_SUBST([VERSION], [$2])],
8631115 [_AM_SET_OPTIONS([$1])dnl
8641116 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
865 m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
1117 m4_if(
1118 m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
1119 [ok:ok],,
8661120 [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
8671121 AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
8681122 AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
8691123
8701124 _AM_IF_OPTION([no-define],,
871 [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
872 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
1125 [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
1126 AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
8731127
8741128 # Some tools Automake needs.
8751129 AC_REQUIRE([AM_SANITY_CHECK])dnl
8761130 AC_REQUIRE([AC_ARG_PROGRAM])dnl
877 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
878 AM_MISSING_PROG(AUTOCONF, autoconf)
879 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
880 AM_MISSING_PROG(AUTOHEADER, autoheader)
881 AM_MISSING_PROG(MAKEINFO, makeinfo)
1131 AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
1132 AM_MISSING_PROG([AUTOCONF], [autoconf])
1133 AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
1134 AM_MISSING_PROG([AUTOHEADER], [autoheader])
1135 AM_MISSING_PROG([MAKEINFO], [makeinfo])
8821136 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
8831137 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
884 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
1138 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
1139 # For better backward compatibility. To be removed once Automake 1.9.x
1140 # dies out for good. For more background, see:
1141 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
1142 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
1143 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
8851144 # We need awk for the "check" target. The system "awk" is bad on
8861145 # some platforms.
8871146 AC_REQUIRE([AC_PROG_AWK])dnl
8921151 [_AM_PROG_TAR([v7])])])
8931152 _AM_IF_OPTION([no-dependencies],,
8941153 [AC_PROVIDE_IFELSE([AC_PROG_CC],
895 [_AM_DEPENDENCIES(CC)],
896 [define([AC_PROG_CC],
897 defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
1154 [_AM_DEPENDENCIES([CC])],
1155 [m4_define([AC_PROG_CC],
1156 m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
8981157 AC_PROVIDE_IFELSE([AC_PROG_CXX],
899 [_AM_DEPENDENCIES(CXX)],
900 [define([AC_PROG_CXX],
901 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
1158 [_AM_DEPENDENCIES([CXX])],
1159 [m4_define([AC_PROG_CXX],
1160 m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
9021161 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
903 [_AM_DEPENDENCIES(OBJC)],
904 [define([AC_PROG_OBJC],
905 defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
1162 [_AM_DEPENDENCIES([OBJC])],
1163 [m4_define([AC_PROG_OBJC],
1164 m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
1165 dnl Support for Objective C++ was only introduced in Autoconf 2.65,
1166 dnl but we still cater to Autoconf 2.62.
1167 m4_ifdef([AC_PROG_OBJCXX],
1168 [AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
1169 [_AM_DEPENDENCIES([OBJCXX])],
1170 [m4_define([AC_PROG_OBJCXX],
1171 m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
9061172 ])
9071173 _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
908 dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
909 dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
1174 dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
1175 dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
9101176 dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
9111177 AC_CONFIG_COMMANDS_PRE(dnl
9121178 [m4_provide_if([_AM_COMPILER_EXEEXT],
9131179 [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
9141180 ])
9151181
916 dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
1182 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
9171183 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
9181184 dnl mangled by Autoconf and run in a shell conditional statement.
9191185 m4_define([_AC_COMPILER_EXEEXT],
9411207 done
9421208 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
9431209
944 # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
945 #
946 # This file is free software; the Free Software Foundation
947 # gives unlimited permission to copy and/or distribute it,
948 # with or without modifications, as long as this notice is preserved.
1210 # Copyright (C) 2001-2012 Free Software Foundation, Inc.
1211 #
1212 # This file is free software; the Free Software Foundation
1213 # gives unlimited permission to copy and/or distribute it,
1214 # with or without modifications, as long as this notice is preserved.
1215
1216 # serial 8
9491217
9501218 # AM_PROG_INSTALL_SH
9511219 # ------------------
9601228 install_sh="\${SHELL} $am_aux_dir/install-sh"
9611229 esac
9621230 fi
963 AC_SUBST(install_sh)])
964
965 # Copyright (C) 2003, 2005 Free Software Foundation, Inc.
1231 AC_SUBST([install_sh])])
1232
1233 # Copyright (C) 2003-2012 Free Software Foundation, Inc.
9661234 #
9671235 # This file is free software; the Free Software Foundation
9681236 # gives unlimited permission to copy and/or distribute it,
9851253
9861254 # Check to see how 'make' treats includes. -*- Autoconf -*-
9871255
988 # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
989 #
990 # This file is free software; the Free Software Foundation
991 # gives unlimited permission to copy and/or distribute it,
992 # with or without modifications, as long as this notice is preserved.
993
994 # serial 4
1256 # Copyright (C) 2001-2012 Free Software Foundation, Inc.
1257 #
1258 # This file is free software; the Free Software Foundation
1259 # gives unlimited permission to copy and/or distribute it,
1260 # with or without modifications, as long as this notice is preserved.
1261
1262 # serial 5
9951263
9961264 # AM_MAKE_INCLUDE()
9971265 # -----------------
10101278 _am_result=none
10111279 # First try GNU make style include.
10121280 echo "include confinc" > confmf
1013 # Ignore all kinds of additional output from `make'.
1281 # Ignore all kinds of additional output from 'make'.
10141282 case `$am_make -s -f confmf 2> /dev/null` in #(
10151283 *the\ am__doit\ target*)
10161284 am__include=include
10351303 rm -f confinc confmf
10361304 ])
10371305
1038 # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
1039 # Free Software Foundation, Inc.
1306 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
10401307 #
10411308 # This file is free software; the Free Software Foundation
10421309 # gives unlimited permission to copy and/or distribute it,
10721339
10731340 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
10741341
1075 # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
1076 # Free Software Foundation, Inc.
1077 #
1078 # This file is free software; the Free Software Foundation
1079 # gives unlimited permission to copy and/or distribute it,
1080 # with or without modifications, as long as this notice is preserved.
1081
1082 # serial 6
1342 # Copyright (C) 1997-2012 Free Software Foundation, Inc.
1343 #
1344 # This file is free software; the Free Software Foundation
1345 # gives unlimited permission to copy and/or distribute it,
1346 # with or without modifications, as long as this notice is preserved.
1347
1348 # serial 7
10831349
10841350 # AM_MISSING_PROG(NAME, PROGRAM)
10851351 # ------------------------------
11091375 am_missing_run="$MISSING --run "
11101376 else
11111377 am_missing_run=
1112 AC_MSG_WARN([`missing' script is too old or missing])
1378 AC_MSG_WARN(['missing' script is too old or missing])
11131379 fi
11141380 ])
11151381
1116 # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
1117 #
1118 # This file is free software; the Free Software Foundation
1119 # gives unlimited permission to copy and/or distribute it,
1120 # with or without modifications, as long as this notice is preserved.
1121
1122 # AM_PROG_MKDIR_P
1123 # ---------------
1124 # Check for `mkdir -p'.
1125 AC_DEFUN([AM_PROG_MKDIR_P],
1126 [AC_PREREQ([2.60])dnl
1127 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
1128 dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
1129 dnl while keeping a definition of mkdir_p for backward compatibility.
1130 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
1131 dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
1132 dnl Makefile.ins that do not define MKDIR_P, so we do our own
1133 dnl adjustment using top_builddir (which is defined more often than
1134 dnl MKDIR_P).
1135 AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
1136 case $mkdir_p in
1137 [[\\/$]]* | ?:[[\\/]]*) ;;
1138 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
1139 esac
1140 ])
1141
11421382 # Helper functions for option handling. -*- Autoconf -*-
11431383
1144 # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
1145 #
1146 # This file is free software; the Free Software Foundation
1147 # gives unlimited permission to copy and/or distribute it,
1148 # with or without modifications, as long as this notice is preserved.
1149
1150 # serial 4
1384 # Copyright (C) 2001-2012 Free Software Foundation, Inc.
1385 #
1386 # This file is free software; the Free Software Foundation
1387 # gives unlimited permission to copy and/or distribute it,
1388 # with or without modifications, as long as this notice is preserved.
1389
1390 # serial 6
11511391
11521392 # _AM_MANGLE_OPTION(NAME)
11531393 # -----------------------
11551395 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
11561396
11571397 # _AM_SET_OPTION(NAME)
1158 # ------------------------------
1398 # --------------------
11591399 # Set option NAME. Presently that only means defining a flag for this option.
11601400 AC_DEFUN([_AM_SET_OPTION],
1161 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
1401 [m4_define(_AM_MANGLE_OPTION([$1]), [1])])
11621402
11631403 # _AM_SET_OPTIONS(OPTIONS)
1164 # ----------------------------------
1404 # ------------------------
11651405 # OPTIONS is a space-separated list of Automake options.
11661406 AC_DEFUN([_AM_SET_OPTIONS],
11671407 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
11741414
11751415 # Check to make sure that the build environment is sane. -*- Autoconf -*-
11761416
1177 # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
1178 # Free Software Foundation, Inc.
1179 #
1180 # This file is free software; the Free Software Foundation
1181 # gives unlimited permission to copy and/or distribute it,
1182 # with or without modifications, as long as this notice is preserved.
1183
1184 # serial 5
1417 # Copyright (C) 1996-2012 Free Software Foundation, Inc.
1418 #
1419 # This file is free software; the Free Software Foundation
1420 # gives unlimited permission to copy and/or distribute it,
1421 # with or without modifications, as long as this notice is preserved.
1422
1423 # serial 9
11851424
11861425 # AM_SANITY_CHECK
11871426 # ---------------
11881427 AC_DEFUN([AM_SANITY_CHECK],
11891428 [AC_MSG_CHECKING([whether build environment is sane])
1190 # Just in case
1191 sleep 1
1192 echo timestamp > conftest.file
11931429 # Reject unsafe characters in $srcdir or the absolute working directory
11941430 # name. Accept space and tab only in the latter.
11951431 am_lf='
12001436 esac
12011437 case $srcdir in
12021438 *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
1203 AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
1439 AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
12041440 esac
12051441
1206 # Do `set' in a subshell so we don't clobber the current shell's
1442 # Do 'set' in a subshell so we don't clobber the current shell's
12071443 # arguments. Must try -L first in case configure is actually a
12081444 # symlink; some systems play weird games with the mod time of symlinks
12091445 # (eg FreeBSD returns the mod time of the symlink's containing
12101446 # directory).
12111447 if (
1212 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
1213 if test "$[*]" = "X"; then
1214 # -L didn't work.
1215 set X `ls -t "$srcdir/configure" conftest.file`
1216 fi
1217 rm -f conftest.file
1218 if test "$[*]" != "X $srcdir/configure conftest.file" \
1219 && test "$[*]" != "X conftest.file $srcdir/configure"; then
1220
1221 # If neither matched, then we have a broken ls. This can happen
1222 # if, for instance, CONFIG_SHELL is bash and it inherits a
1223 # broken ls alias from the environment. This has actually
1224 # happened. Such a system could not be considered "sane".
1225 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1226 alias in your environment])
1227 fi
1228
1448 am_has_slept=no
1449 for am_try in 1 2; do
1450 echo "timestamp, slept: $am_has_slept" > conftest.file
1451 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
1452 if test "$[*]" = "X"; then
1453 # -L didn't work.
1454 set X `ls -t "$srcdir/configure" conftest.file`
1455 fi
1456 if test "$[*]" != "X $srcdir/configure conftest.file" \
1457 && test "$[*]" != "X conftest.file $srcdir/configure"; then
1458
1459 # If neither matched, then we have a broken ls. This can happen
1460 # if, for instance, CONFIG_SHELL is bash and it inherits a
1461 # broken ls alias from the environment. This has actually
1462 # happened. Such a system could not be considered "sane".
1463 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1464 alias in your environment])
1465 fi
1466 if test "$[2]" = conftest.file || test $am_try -eq 2; then
1467 break
1468 fi
1469 # Just in case.
1470 sleep 1
1471 am_has_slept=yes
1472 done
12291473 test "$[2]" = conftest.file
12301474 )
12311475 then
12351479 AC_MSG_ERROR([newly created file is older than distributed files!
12361480 Check your system clock])
12371481 fi
1238 AC_MSG_RESULT(yes)])
1239
1240 # Copyright (C) 2009 Free Software Foundation, Inc.
1241 #
1242 # This file is free software; the Free Software Foundation
1243 # gives unlimited permission to copy and/or distribute it,
1244 # with or without modifications, as long as this notice is preserved.
1245
1246 # serial 1
1482 AC_MSG_RESULT([yes])
1483 # If we didn't sleep, we still need to ensure time stamps of config.status and
1484 # generated files are strictly newer.
1485 am_sleep_pid=
1486 if grep 'slept: no' conftest.file >/dev/null 2>&1; then
1487 ( sleep 1 ) &
1488 am_sleep_pid=$!
1489 fi
1490 AC_CONFIG_COMMANDS_PRE(
1491 [AC_MSG_CHECKING([that generated files are newer than configure])
1492 if test -n "$am_sleep_pid"; then
1493 # Hide warnings about reused PIDs.
1494 wait $am_sleep_pid 2>/dev/null
1495 fi
1496 AC_MSG_RESULT([done])])
1497 rm -f conftest.file
1498 ])
1499
1500 # Copyright (C) 2009-2012 Free Software Foundation, Inc.
1501 #
1502 # This file is free software; the Free Software Foundation
1503 # gives unlimited permission to copy and/or distribute it,
1504 # with or without modifications, as long as this notice is preserved.
1505
1506 # serial 3
12471507
12481508 # AM_SILENT_RULES([DEFAULT])
12491509 # --------------------------
12501510 # Enable less verbose build rules; with the default set to DEFAULT
1251 # (`yes' being less verbose, `no' or empty being verbose).
1511 # ("yes" being less verbose, "no" or empty being verbose).
12521512 AC_DEFUN([AM_SILENT_RULES],
1253 [AC_ARG_ENABLE([silent-rules],
1254 [ --enable-silent-rules less verbose build output (undo: `make V=1')
1255 --disable-silent-rules verbose build output (undo: `make V=0')])
1256 case $enable_silent_rules in
1257 yes) AM_DEFAULT_VERBOSITY=0;;
1258 no) AM_DEFAULT_VERBOSITY=1;;
1259 *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
1513 [AC_ARG_ENABLE([silent-rules], [dnl
1514 AS_HELP_STRING(
1515 [--enable-silent-rules],
1516 [less verbose build output (undo: "make V=1")])
1517 AS_HELP_STRING(
1518 [--disable-silent-rules],
1519 [verbose build output (undo: "make V=0")])dnl
1520 ])
1521 case $enable_silent_rules in @%:@ (((
1522 yes) AM_DEFAULT_VERBOSITY=0;;
1523 no) AM_DEFAULT_VERBOSITY=1;;
1524 *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
12601525 esac
1526 dnl
1527 dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
1528 dnl do not support nested variable expansions.
1529 dnl See automake bug#9928 and bug#10237.
1530 am_make=${MAKE-make}
1531 AC_CACHE_CHECK([whether $am_make supports nested variables],
1532 [am_cv_make_support_nested_variables],
1533 [if AS_ECHO([['TRUE=$(BAR$(V))
1534 BAR0=false
1535 BAR1=true
1536 V=1
1537 am__doit:
1538 @$(TRUE)
1539 .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
1540 am_cv_make_support_nested_variables=yes
1541 else
1542 am_cv_make_support_nested_variables=no
1543 fi])
1544 if test $am_cv_make_support_nested_variables = yes; then
1545 dnl Using '$V' instead of '$(V)' breaks IRIX make.
1546 AM_V='$(V)'
1547 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
1548 else
1549 AM_V=$AM_DEFAULT_VERBOSITY
1550 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
1551 fi
1552 AC_SUBST([AM_V])dnl
1553 AM_SUBST_NOTMAKE([AM_V])dnl
1554 AC_SUBST([AM_DEFAULT_V])dnl
1555 AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
12611556 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
12621557 AM_BACKSLASH='\'
12631558 AC_SUBST([AM_BACKSLASH])dnl
12641559 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
12651560 ])
12661561
1267 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
1268 #
1269 # This file is free software; the Free Software Foundation
1270 # gives unlimited permission to copy and/or distribute it,
1271 # with or without modifications, as long as this notice is preserved.
1562 # Copyright (C) 2001-2012 Free Software Foundation, Inc.
1563 #
1564 # This file is free software; the Free Software Foundation
1565 # gives unlimited permission to copy and/or distribute it,
1566 # with or without modifications, as long as this notice is preserved.
1567
1568 # serial 2
12721569
12731570 # AM_PROG_INSTALL_STRIP
12741571 # ---------------------
1275 # One issue with vendor `install' (even GNU) is that you can't
1572 # One issue with vendor 'install' (even GNU) is that you can't
12761573 # specify the program used to strip binaries. This is especially
12771574 # annoying in cross-compiling environments, where the build's strip
12781575 # is unlikely to handle the host's binaries.
12791576 # Fortunately install-sh will honor a STRIPPROG variable, so we
1280 # always use install-sh in `make install-strip', and initialize
1577 # always use install-sh in "make install-strip", and initialize
12811578 # STRIPPROG with the value of the STRIP variable (set by the user).
12821579 AC_DEFUN([AM_PROG_INSTALL_STRIP],
12831580 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
1284 # Installed binaries are usually stripped using `strip' when the user
1285 # run `make install-strip'. However `strip' might not be the right
1581 # Installed binaries are usually stripped using 'strip' when the user
1582 # run "make install-strip". However 'strip' might not be the right
12861583 # tool to use in cross-compilation environments, therefore Automake
1287 # will honor the `STRIP' environment variable to overrule this program.
1288 dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
1584 # will honor the 'STRIP' environment variable to overrule this program.
1585 dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
12891586 if test "$cross_compiling" != no; then
12901587 AC_CHECK_TOOL([STRIP], [strip], :)
12911588 fi
12921589 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
12931590 AC_SUBST([INSTALL_STRIP_PROGRAM])])
12941591
1295 # Copyright (C) 2006, 2008 Free Software Foundation, Inc.
1296 #
1297 # This file is free software; the Free Software Foundation
1298 # gives unlimited permission to copy and/or distribute it,
1299 # with or without modifications, as long as this notice is preserved.
1300
1301 # serial 2
1592 # Copyright (C) 2006-2012 Free Software Foundation, Inc.
1593 #
1594 # This file is free software; the Free Software Foundation
1595 # gives unlimited permission to copy and/or distribute it,
1596 # with or without modifications, as long as this notice is preserved.
1597
1598 # serial 3
13021599
13031600 # _AM_SUBST_NOTMAKE(VARIABLE)
13041601 # ---------------------------
13071604 AC_DEFUN([_AM_SUBST_NOTMAKE])
13081605
13091606 # AM_SUBST_NOTMAKE(VARIABLE)
1310 # ---------------------------
1607 # --------------------------
13111608 # Public sister of _AM_SUBST_NOTMAKE.
13121609 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
13131610
13141611 # Check how to create a tarball. -*- Autoconf -*-
13151612
1316 # Copyright (C) 2004, 2005 Free Software Foundation, Inc.
1317 #
1318 # This file is free software; the Free Software Foundation
1319 # gives unlimited permission to copy and/or distribute it,
1320 # with or without modifications, as long as this notice is preserved.
1321
1322 # serial 2
1613 # Copyright (C) 2004-2012 Free Software Foundation, Inc.
1614 #
1615 # This file is free software; the Free Software Foundation
1616 # gives unlimited permission to copy and/or distribute it,
1617 # with or without modifications, as long as this notice is preserved.
1618
1619 # serial 3
13231620
13241621 # _AM_PROG_TAR(FORMAT)
13251622 # --------------------
13261623 # Check how to create a tarball in format FORMAT.
1327 # FORMAT should be one of `v7', `ustar', or `pax'.
1624 # FORMAT should be one of 'v7', 'ustar', or 'pax'.
13281625 #
13291626 # Substitute a variable $(am__tar) that is a command
13301627 # writing to stdout a FORMAT-tarball containing the directory
13351632 # a tarball read from stdin.
13361633 # $(am__untar) < result.tar
13371634 AC_DEFUN([_AM_PROG_TAR],
1338 [# Always define AMTAR for backward compatibility.
1339 AM_MISSING_PROG([AMTAR], [tar])
1635 [# Always define AMTAR for backward compatibility. Yes, it's still used
1636 # in the wild :-( We should find a proper way to deprecate it ...
1637 AC_SUBST([AMTAR], ['$${TAR-tar}'])
13401638 m4_if([$1], [v7],
1341 [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
1639 [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
13421640 [m4_case([$1], [ustar],, [pax],,
13431641 [m4_fatal([Unknown tar format])])
13441642 AC_MSG_CHECKING([how to create a $1 tar archive])
13461644 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
13471645 _am_tools=${am_cv_prog_tar_$1-$_am_tools}
13481646 # Do not fold the above two line into one, because Tru64 sh and
1349 # Solaris sh will not grok spaces in the rhs of `-'.
1647 # Solaris sh will not grok spaces in the rhs of '-'.
13501648 for _am_tool in $_am_tools
13511649 do
13521650 case $_am_tool in
14071705 AC_SUBST([am__untar])
14081706 ]) # _AM_PROG_TAR
14091707
1708 m4_include([m4/intltool.m4])
14101709 m4_include([m4/libtool.m4])
14111710 m4_include([m4/ltoptions.m4])
14121711 m4_include([m4/ltsugar.m4])
0 #! /bin/sh
1 # Wrapper for compilers which do not understand '-c -o'.
2
3 scriptversion=2012-03-05.13; # UTC
4
5 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
6 # Written by Tom Tromey <tromey@cygnus.com>.
7 #
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 # This file is maintained in Automake, please report
27 # bugs to <bug-automake@gnu.org> or send patches to
28 # <automake-patches@gnu.org>.
29
30 nl='
31 '
32
33 # We need space, tab and new line, in precisely that order. Quoting is
34 # there to prevent tools from complaining about whitespace usage.
35 IFS=" "" $nl"
36
37 file_conv=
38
39 # func_file_conv build_file lazy
40 # Convert a $build file to $host form and store it in $file
41 # Currently only supports Windows hosts. If the determined conversion
42 # type is listed in (the comma separated) LAZY, no conversion will
43 # take place.
44 func_file_conv ()
45 {
46 file=$1
47 case $file in
48 / | /[!/]*) # absolute file, and not a UNC file
49 if test -z "$file_conv"; then
50 # lazily determine how to convert abs files
51 case `uname -s` in
52 MINGW*)
53 file_conv=mingw
54 ;;
55 CYGWIN*)
56 file_conv=cygwin
57 ;;
58 *)
59 file_conv=wine
60 ;;
61 esac
62 fi
63 case $file_conv/,$2, in
64 *,$file_conv,*)
65 ;;
66 mingw/*)
67 file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
68 ;;
69 cygwin/*)
70 file=`cygpath -m "$file" || echo "$file"`
71 ;;
72 wine/*)
73 file=`winepath -w "$file" || echo "$file"`
74 ;;
75 esac
76 ;;
77 esac
78 }
79
80 # func_cl_dashL linkdir
81 # Make cl look for libraries in LINKDIR
82 func_cl_dashL ()
83 {
84 func_file_conv "$1"
85 if test -z "$lib_path"; then
86 lib_path=$file
87 else
88 lib_path="$lib_path;$file"
89 fi
90 linker_opts="$linker_opts -LIBPATH:$file"
91 }
92
93 # func_cl_dashl library
94 # Do a library search-path lookup for cl
95 func_cl_dashl ()
96 {
97 lib=$1
98 found=no
99 save_IFS=$IFS
100 IFS=';'
101 for dir in $lib_path $LIB
102 do
103 IFS=$save_IFS
104 if $shared && test -f "$dir/$lib.dll.lib"; then
105 found=yes
106 lib=$dir/$lib.dll.lib
107 break
108 fi
109 if test -f "$dir/$lib.lib"; then
110 found=yes
111 lib=$dir/$lib.lib
112 break
113 fi
114 done
115 IFS=$save_IFS
116
117 if test "$found" != yes; then
118 lib=$lib.lib
119 fi
120 }
121
122 # func_cl_wrapper cl arg...
123 # Adjust compile command to suit cl
124 func_cl_wrapper ()
125 {
126 # Assume a capable shell
127 lib_path=
128 shared=:
129 linker_opts=
130 for arg
131 do
132 if test -n "$eat"; then
133 eat=
134 else
135 case $1 in
136 -o)
137 # configure might choose to run compile as 'compile cc -o foo foo.c'.
138 eat=1
139 case $2 in
140 *.o | *.[oO][bB][jJ])
141 func_file_conv "$2"
142 set x "$@" -Fo"$file"
143 shift
144 ;;
145 *)
146 func_file_conv "$2"
147 set x "$@" -Fe"$file"
148 shift
149 ;;
150 esac
151 ;;
152 -I)
153 eat=1
154 func_file_conv "$2" mingw
155 set x "$@" -I"$file"
156 shift
157 ;;
158 -I*)
159 func_file_conv "${1#-I}" mingw
160 set x "$@" -I"$file"
161 shift
162 ;;
163 -l)
164 eat=1
165 func_cl_dashl "$2"
166 set x "$@" "$lib"
167 shift
168 ;;
169 -l*)
170 func_cl_dashl "${1#-l}"
171 set x "$@" "$lib"
172 shift
173 ;;
174 -L)
175 eat=1
176 func_cl_dashL "$2"
177 ;;
178 -L*)
179 func_cl_dashL "${1#-L}"
180 ;;
181 -static)
182 shared=false
183 ;;
184 -Wl,*)
185 arg=${1#-Wl,}
186 save_ifs="$IFS"; IFS=','
187 for flag in $arg; do
188 IFS="$save_ifs"
189 linker_opts="$linker_opts $flag"
190 done
191 IFS="$save_ifs"
192 ;;
193 -Xlinker)
194 eat=1
195 linker_opts="$linker_opts $2"
196 ;;
197 -*)
198 set x "$@" "$1"
199 shift
200 ;;
201 *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
202 func_file_conv "$1"
203 set x "$@" -Tp"$file"
204 shift
205 ;;
206 *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
207 func_file_conv "$1" mingw
208 set x "$@" "$file"
209 shift
210 ;;
211 *)
212 set x "$@" "$1"
213 shift
214 ;;
215 esac
216 fi
217 shift
218 done
219 if test -n "$linker_opts"; then
220 linker_opts="-link$linker_opts"
221 fi
222 exec "$@" $linker_opts
223 exit 1
224 }
225
226 eat=
227
228 case $1 in
229 '')
230 echo "$0: No command. Try '$0 --help' for more information." 1>&2
231 exit 1;
232 ;;
233 -h | --h*)
234 cat <<\EOF
235 Usage: compile [--help] [--version] PROGRAM [ARGS]
236
237 Wrapper for compilers which do not understand '-c -o'.
238 Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
239 arguments, and rename the output as expected.
240
241 If you are trying to build a whole package this is not the
242 right script to run: please start by reading the file 'INSTALL'.
243
244 Report bugs to <bug-automake@gnu.org>.
245 EOF
246 exit $?
247 ;;
248 -v | --v*)
249 echo "compile $scriptversion"
250 exit $?
251 ;;
252 cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
253 func_cl_wrapper "$@" # Doesn't return...
254 ;;
255 esac
256
257 ofile=
258 cfile=
259
260 for arg
261 do
262 if test -n "$eat"; then
263 eat=
264 else
265 case $1 in
266 -o)
267 # configure might choose to run compile as 'compile cc -o foo foo.c'.
268 # So we strip '-o arg' only if arg is an object.
269 eat=1
270 case $2 in
271 *.o | *.obj)
272 ofile=$2
273 ;;
274 *)
275 set x "$@" -o "$2"
276 shift
277 ;;
278 esac
279 ;;
280 *.c)
281 cfile=$1
282 set x "$@" "$1"
283 shift
284 ;;
285 *)
286 set x "$@" "$1"
287 shift
288 ;;
289 esac
290 fi
291 shift
292 done
293
294 if test -z "$ofile" || test -z "$cfile"; then
295 # If no '-o' option was seen then we might have been invoked from a
296 # pattern rule where we don't need one. That is ok -- this is a
297 # normal compilation that the losing compiler can handle. If no
298 # '.c' file was seen then we are probably linking. That is also
299 # ok.
300 exec "$@"
301 fi
302
303 # Name of file we expect compiler to create.
304 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
305
306 # Create the lock directory.
307 # Note: use '[/\\:.-]' here to ensure that we don't use the same name
308 # that we are using for the .o file. Also, base the name on the expected
309 # object file name, since that is what matters with a parallel build.
310 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
311 while true; do
312 if mkdir "$lockdir" >/dev/null 2>&1; then
313 break
314 fi
315 sleep 1
316 done
317 # FIXME: race condition here if user kills between mkdir and trap.
318 trap "rmdir '$lockdir'; exit 1" 1 2 15
319
320 # Run the compile.
321 "$@"
322 ret=$?
323
324 if test -f "$cofile"; then
325 test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
326 elif test -f "${cofile}bj"; then
327 test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
328 fi
329
330 rmdir "$lockdir"
331 exit $ret
332
333 # Local Variables:
334 # mode: shell-script
335 # sh-indentation: 2
336 # eval: (add-hook 'write-file-hooks 'time-stamp)
337 # time-stamp-start: "scriptversion="
338 # time-stamp-format: "%:y-%02m-%02d.%02H"
339 # time-stamp-time-zone: "UTC"
340 # time-stamp-end: "; # UTC"
341 # End:
0 #! /bin/sh
1 # Attempt to guess a canonical system name.
2 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
4 # 2011, 2012 Free Software Foundation, Inc.
5
6 timestamp='2012-06-10'
7
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, see <http://www.gnu.org/licenses/>.
20 #
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26
27 # Originally written by Per Bothner. Please send patches (context
28 # diff format) to <config-patches@gnu.org> and include a ChangeLog
29 # entry.
30 #
31 # This script attempts to guess a canonical system name similar to
32 # config.sub. If it succeeds, it prints the system name on stdout, and
33 # exits with 0. Otherwise, it exits with 1.
34 #
35 # You can get the latest version of this script from:
36 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
37
38 me=`echo "$0" | sed -e 's,.*/,,'`
39
40 usage="\
41 Usage: $0 [OPTION]
42
43 Output the configuration name of the system \`$me' is run on.
44
45 Operation modes:
46 -h, --help print this help, then exit
47 -t, --time-stamp print date of last modification, then exit
48 -v, --version print version number, then exit
49
50 Report bugs and patches to <config-patches@gnu.org>."
51
52 version="\
53 GNU config.guess ($timestamp)
54
55 Originally written by Per Bothner.
56 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
57 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
58 Free Software Foundation, Inc.
59
60 This is free software; see the source for copying conditions. There is NO
61 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
62
63 help="
64 Try \`$me --help' for more information."
65
66 # Parse command line
67 while test $# -gt 0 ; do
68 case $1 in
69 --time-stamp | --time* | -t )
70 echo "$timestamp" ; exit ;;
71 --version | -v )
72 echo "$version" ; exit ;;
73 --help | --h* | -h )
74 echo "$usage"; exit ;;
75 -- ) # Stop option processing
76 shift; break ;;
77 - ) # Use stdin as input.
78 break ;;
79 -* )
80 echo "$me: invalid option $1$help" >&2
81 exit 1 ;;
82 * )
83 break ;;
84 esac
85 done
86
87 if test $# != 0; then
88 echo "$me: too many arguments$help" >&2
89 exit 1
90 fi
91
92 trap 'exit 1' 1 2 15
93
94 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
95 # compiler to aid in system detection is discouraged as it requires
96 # temporary files to be created and, as you can see below, it is a
97 # headache to deal with in a portable fashion.
98
99 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
100 # use `HOST_CC' if defined, but it is deprecated.
101
102 # Portable tmp directory creation inspired by the Autoconf team.
103
104 set_cc_for_build='
105 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
106 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
107 : ${TMPDIR=/tmp} ;
108 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
109 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
110 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
111 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
112 dummy=$tmp/dummy ;
113 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
114 case $CC_FOR_BUILD,$HOST_CC,$CC in
115 ,,) echo "int x;" > $dummy.c ;
116 for c in cc gcc c89 c99 ; do
117 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
118 CC_FOR_BUILD="$c"; break ;
119 fi ;
120 done ;
121 if test x"$CC_FOR_BUILD" = x ; then
122 CC_FOR_BUILD=no_compiler_found ;
123 fi
124 ;;
125 ,,*) CC_FOR_BUILD=$CC ;;
126 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
127 esac ; set_cc_for_build= ;'
128
129 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
130 # (ghazi@noc.rutgers.edu 1994-08-24)
131 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
132 PATH=$PATH:/.attbin ; export PATH
133 fi
134
135 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
136 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
137 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
138 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
139
140 # Note: order is significant - the case branches are not exclusive.
141
142 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
143 *:NetBSD:*:*)
144 # NetBSD (nbsd) targets should (where applicable) match one or
145 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
146 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
147 # switched to ELF, *-*-netbsd* would select the old
148 # object file format. This provides both forward
149 # compatibility and a consistent mechanism for selecting the
150 # object file format.
151 #
152 # Note: NetBSD doesn't particularly care about the vendor
153 # portion of the name. We always set it to "unknown".
154 sysctl="sysctl -n hw.machine_arch"
155 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
156 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
157 case "${UNAME_MACHINE_ARCH}" in
158 armeb) machine=armeb-unknown ;;
159 arm*) machine=arm-unknown ;;
160 sh3el) machine=shl-unknown ;;
161 sh3eb) machine=sh-unknown ;;
162 sh5el) machine=sh5le-unknown ;;
163 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
164 esac
165 # The Operating System including object format, if it has switched
166 # to ELF recently, or will in the future.
167 case "${UNAME_MACHINE_ARCH}" in
168 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
169 eval $set_cc_for_build
170 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
171 | grep -q __ELF__
172 then
173 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
174 # Return netbsd for either. FIX?
175 os=netbsd
176 else
177 os=netbsdelf
178 fi
179 ;;
180 *)
181 os=netbsd
182 ;;
183 esac
184 # The OS release
185 # Debian GNU/NetBSD machines have a different userland, and
186 # thus, need a distinct triplet. However, they do not need
187 # kernel version information, so it can be replaced with a
188 # suitable tag, in the style of linux-gnu.
189 case "${UNAME_VERSION}" in
190 Debian*)
191 release='-gnu'
192 ;;
193 *)
194 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
195 ;;
196 esac
197 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
198 # contains redundant information, the shorter form:
199 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
200 echo "${machine}-${os}${release}"
201 exit ;;
202 *:OpenBSD:*:*)
203 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
204 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
205 exit ;;
206 *:ekkoBSD:*:*)
207 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
208 exit ;;
209 *:SolidBSD:*:*)
210 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
211 exit ;;
212 macppc:MirBSD:*:*)
213 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
214 exit ;;
215 *:MirBSD:*:*)
216 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
217 exit ;;
218 alpha:OSF1:*:*)
219 case $UNAME_RELEASE in
220 *4.0)
221 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
222 ;;
223 *5.*)
224 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
225 ;;
226 esac
227 # According to Compaq, /usr/sbin/psrinfo has been available on
228 # OSF/1 and Tru64 systems produced since 1995. I hope that
229 # covers most systems running today. This code pipes the CPU
230 # types through head -n 1, so we only detect the type of CPU 0.
231 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
232 case "$ALPHA_CPU_TYPE" in
233 "EV4 (21064)")
234 UNAME_MACHINE="alpha" ;;
235 "EV4.5 (21064)")
236 UNAME_MACHINE="alpha" ;;
237 "LCA4 (21066/21068)")
238 UNAME_MACHINE="alpha" ;;
239 "EV5 (21164)")
240 UNAME_MACHINE="alphaev5" ;;
241 "EV5.6 (21164A)")
242 UNAME_MACHINE="alphaev56" ;;
243 "EV5.6 (21164PC)")
244 UNAME_MACHINE="alphapca56" ;;
245 "EV5.7 (21164PC)")
246 UNAME_MACHINE="alphapca57" ;;
247 "EV6 (21264)")
248 UNAME_MACHINE="alphaev6" ;;
249 "EV6.7 (21264A)")
250 UNAME_MACHINE="alphaev67" ;;
251 "EV6.8CB (21264C)")
252 UNAME_MACHINE="alphaev68" ;;
253 "EV6.8AL (21264B)")
254 UNAME_MACHINE="alphaev68" ;;
255 "EV6.8CX (21264D)")
256 UNAME_MACHINE="alphaev68" ;;
257 "EV6.9A (21264/EV69A)")
258 UNAME_MACHINE="alphaev69" ;;
259 "EV7 (21364)")
260 UNAME_MACHINE="alphaev7" ;;
261 "EV7.9 (21364A)")
262 UNAME_MACHINE="alphaev79" ;;
263 esac
264 # A Pn.n version is a patched version.
265 # A Vn.n version is a released version.
266 # A Tn.n version is a released field test version.
267 # A Xn.n version is an unreleased experimental baselevel.
268 # 1.2 uses "1.2" for uname -r.
269 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
270 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
271 exitcode=$?
272 trap '' 0
273 exit $exitcode ;;
274 Alpha\ *:Windows_NT*:*)
275 # How do we know it's Interix rather than the generic POSIX subsystem?
276 # Should we change UNAME_MACHINE based on the output of uname instead
277 # of the specific Alpha model?
278 echo alpha-pc-interix
279 exit ;;
280 21064:Windows_NT:50:3)
281 echo alpha-dec-winnt3.5
282 exit ;;
283 Amiga*:UNIX_System_V:4.0:*)
284 echo m68k-unknown-sysv4
285 exit ;;
286 *:[Aa]miga[Oo][Ss]:*:*)
287 echo ${UNAME_MACHINE}-unknown-amigaos
288 exit ;;
289 *:[Mm]orph[Oo][Ss]:*:*)
290 echo ${UNAME_MACHINE}-unknown-morphos
291 exit ;;
292 *:OS/390:*:*)
293 echo i370-ibm-openedition
294 exit ;;
295 *:z/VM:*:*)
296 echo s390-ibm-zvmoe
297 exit ;;
298 *:OS400:*:*)
299 echo powerpc-ibm-os400
300 exit ;;
301 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
302 echo arm-acorn-riscix${UNAME_RELEASE}
303 exit ;;
304 arm:riscos:*:*|arm:RISCOS:*:*)
305 echo arm-unknown-riscos
306 exit ;;
307 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
308 echo hppa1.1-hitachi-hiuxmpp
309 exit ;;
310 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
311 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
312 if test "`(/bin/universe) 2>/dev/null`" = att ; then
313 echo pyramid-pyramid-sysv3
314 else
315 echo pyramid-pyramid-bsd
316 fi
317 exit ;;
318 NILE*:*:*:dcosx)
319 echo pyramid-pyramid-svr4
320 exit ;;
321 DRS?6000:unix:4.0:6*)
322 echo sparc-icl-nx6
323 exit ;;
324 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
325 case `/usr/bin/uname -p` in
326 sparc) echo sparc-icl-nx7; exit ;;
327 esac ;;
328 s390x:SunOS:*:*)
329 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
330 exit ;;
331 sun4H:SunOS:5.*:*)
332 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
333 exit ;;
334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
341 eval $set_cc_for_build
342 SUN_ARCH="i386"
343 # If there is a compiler, see if it is configured for 64-bit objects.
344 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
345 # This test works for both compilers.
346 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
347 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
348 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
349 grep IS_64BIT_ARCH >/dev/null
350 then
351 SUN_ARCH="x86_64"
352 fi
353 fi
354 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
355 exit ;;
356 sun4*:SunOS:6*:*)
357 # According to config.sub, this is the proper way to canonicalize
358 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
359 # it's likely to be more like Solaris than SunOS4.
360 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
361 exit ;;
362 sun4*:SunOS:*:*)
363 case "`/usr/bin/arch -k`" in
364 Series*|S4*)
365 UNAME_RELEASE=`uname -v`
366 ;;
367 esac
368 # Japanese Language versions have a version number like `4.1.3-JL'.
369 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
370 exit ;;
371 sun3*:SunOS:*:*)
372 echo m68k-sun-sunos${UNAME_RELEASE}
373 exit ;;
374 sun*:*:4.2BSD:*)
375 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
376 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
377 case "`/bin/arch`" in
378 sun3)
379 echo m68k-sun-sunos${UNAME_RELEASE}
380 ;;
381 sun4)
382 echo sparc-sun-sunos${UNAME_RELEASE}
383 ;;
384 esac
385 exit ;;
386 aushp:SunOS:*:*)
387 echo sparc-auspex-sunos${UNAME_RELEASE}
388 exit ;;
389 # The situation for MiNT is a little confusing. The machine name
390 # can be virtually everything (everything which is not
391 # "atarist" or "atariste" at least should have a processor
392 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
393 # to the lowercase version "mint" (or "freemint"). Finally
394 # the system name "TOS" denotes a system which is actually not
395 # MiNT. But MiNT is downward compatible to TOS, so this should
396 # be no problem.
397 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
398 echo m68k-atari-mint${UNAME_RELEASE}
399 exit ;;
400 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
401 echo m68k-atari-mint${UNAME_RELEASE}
402 exit ;;
403 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
404 echo m68k-atari-mint${UNAME_RELEASE}
405 exit ;;
406 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
407 echo m68k-milan-mint${UNAME_RELEASE}
408 exit ;;
409 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
410 echo m68k-hades-mint${UNAME_RELEASE}
411 exit ;;
412 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
413 echo m68k-unknown-mint${UNAME_RELEASE}
414 exit ;;
415 m68k:machten:*:*)
416 echo m68k-apple-machten${UNAME_RELEASE}
417 exit ;;
418 powerpc:machten:*:*)
419 echo powerpc-apple-machten${UNAME_RELEASE}
420 exit ;;
421 RISC*:Mach:*:*)
422 echo mips-dec-mach_bsd4.3
423 exit ;;
424 RISC*:ULTRIX:*:*)
425 echo mips-dec-ultrix${UNAME_RELEASE}
426 exit ;;
427 VAX*:ULTRIX*:*:*)
428 echo vax-dec-ultrix${UNAME_RELEASE}
429 exit ;;
430 2020:CLIX:*:* | 2430:CLIX:*:*)
431 echo clipper-intergraph-clix${UNAME_RELEASE}
432 exit ;;
433 mips:*:*:UMIPS | mips:*:*:RISCos)
434 eval $set_cc_for_build
435 sed 's/^ //' << EOF >$dummy.c
436 #ifdef __cplusplus
437 #include <stdio.h> /* for printf() prototype */
438 int main (int argc, char *argv[]) {
439 #else
440 int main (argc, argv) int argc; char *argv[]; {
441 #endif
442 #if defined (host_mips) && defined (MIPSEB)
443 #if defined (SYSTYPE_SYSV)
444 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
445 #endif
446 #if defined (SYSTYPE_SVR4)
447 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
448 #endif
449 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
450 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
451 #endif
452 #endif
453 exit (-1);
454 }
455 EOF
456 $CC_FOR_BUILD -o $dummy $dummy.c &&
457 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
458 SYSTEM_NAME=`$dummy $dummyarg` &&
459 { echo "$SYSTEM_NAME"; exit; }
460 echo mips-mips-riscos${UNAME_RELEASE}
461 exit ;;
462 Motorola:PowerMAX_OS:*:*)
463 echo powerpc-motorola-powermax
464 exit ;;
465 Motorola:*:4.3:PL8-*)
466 echo powerpc-harris-powermax
467 exit ;;
468 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
469 echo powerpc-harris-powermax
470 exit ;;
471 Night_Hawk:Power_UNIX:*:*)
472 echo powerpc-harris-powerunix
473 exit ;;
474 m88k:CX/UX:7*:*)
475 echo m88k-harris-cxux7
476 exit ;;
477 m88k:*:4*:R4*)
478 echo m88k-motorola-sysv4
479 exit ;;
480 m88k:*:3*:R3*)
481 echo m88k-motorola-sysv3
482 exit ;;
483 AViiON:dgux:*:*)
484 # DG/UX returns AViiON for all architectures
485 UNAME_PROCESSOR=`/usr/bin/uname -p`
486 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
487 then
488 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
489 [ ${TARGET_BINARY_INTERFACE}x = x ]
490 then
491 echo m88k-dg-dgux${UNAME_RELEASE}
492 else
493 echo m88k-dg-dguxbcs${UNAME_RELEASE}
494 fi
495 else
496 echo i586-dg-dgux${UNAME_RELEASE}
497 fi
498 exit ;;
499 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
500 echo m88k-dolphin-sysv3
501 exit ;;
502 M88*:*:R3*:*)
503 # Delta 88k system running SVR3
504 echo m88k-motorola-sysv3
505 exit ;;
506 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
507 echo m88k-tektronix-sysv3
508 exit ;;
509 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
510 echo m68k-tektronix-bsd
511 exit ;;
512 *:IRIX*:*:*)
513 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
514 exit ;;
515 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
516 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
517 exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
518 i*86:AIX:*:*)
519 echo i386-ibm-aix
520 exit ;;
521 ia64:AIX:*:*)
522 if [ -x /usr/bin/oslevel ] ; then
523 IBM_REV=`/usr/bin/oslevel`
524 else
525 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
526 fi
527 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
528 exit ;;
529 *:AIX:2:3)
530 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
531 eval $set_cc_for_build
532 sed 's/^ //' << EOF >$dummy.c
533 #include <sys/systemcfg.h>
534
535 main()
536 {
537 if (!__power_pc())
538 exit(1);
539 puts("powerpc-ibm-aix3.2.5");
540 exit(0);
541 }
542 EOF
543 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
544 then
545 echo "$SYSTEM_NAME"
546 else
547 echo rs6000-ibm-aix3.2.5
548 fi
549 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
550 echo rs6000-ibm-aix3.2.4
551 else
552 echo rs6000-ibm-aix3.2
553 fi
554 exit ;;
555 *:AIX:*:[4567])
556 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
557 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
558 IBM_ARCH=rs6000
559 else
560 IBM_ARCH=powerpc
561 fi
562 if [ -x /usr/bin/oslevel ] ; then
563 IBM_REV=`/usr/bin/oslevel`
564 else
565 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
566 fi
567 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
568 exit ;;
569 *:AIX:*:*)
570 echo rs6000-ibm-aix
571 exit ;;
572 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
573 echo romp-ibm-bsd4.4
574 exit ;;
575 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
576 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
577 exit ;; # report: romp-ibm BSD 4.3
578 *:BOSX:*:*)
579 echo rs6000-bull-bosx
580 exit ;;
581 DPX/2?00:B.O.S.:*:*)
582 echo m68k-bull-sysv3
583 exit ;;
584 9000/[34]??:4.3bsd:1.*:*)
585 echo m68k-hp-bsd
586 exit ;;
587 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
588 echo m68k-hp-bsd4.4
589 exit ;;
590 9000/[34678]??:HP-UX:*:*)
591 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
592 case "${UNAME_MACHINE}" in
593 9000/31? ) HP_ARCH=m68000 ;;
594 9000/[34]?? ) HP_ARCH=m68k ;;
595 9000/[678][0-9][0-9])
596 if [ -x /usr/bin/getconf ]; then
597 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
598 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
599 case "${sc_cpu_version}" in
600 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
601 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
602 532) # CPU_PA_RISC2_0
603 case "${sc_kernel_bits}" in
604 32) HP_ARCH="hppa2.0n" ;;
605 64) HP_ARCH="hppa2.0w" ;;
606 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
607 esac ;;
608 esac
609 fi
610 if [ "${HP_ARCH}" = "" ]; then
611 eval $set_cc_for_build
612 sed 's/^ //' << EOF >$dummy.c
613
614 #define _HPUX_SOURCE
615 #include <stdlib.h>
616 #include <unistd.h>
617
618 int main ()
619 {
620 #if defined(_SC_KERNEL_BITS)
621 long bits = sysconf(_SC_KERNEL_BITS);
622 #endif
623 long cpu = sysconf (_SC_CPU_VERSION);
624
625 switch (cpu)
626 {
627 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
628 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
629 case CPU_PA_RISC2_0:
630 #if defined(_SC_KERNEL_BITS)
631 switch (bits)
632 {
633 case 64: puts ("hppa2.0w"); break;
634 case 32: puts ("hppa2.0n"); break;
635 default: puts ("hppa2.0"); break;
636 } break;
637 #else /* !defined(_SC_KERNEL_BITS) */
638 puts ("hppa2.0"); break;
639 #endif
640 default: puts ("hppa1.0"); break;
641 }
642 exit (0);
643 }
644 EOF
645 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
646 test -z "$HP_ARCH" && HP_ARCH=hppa
647 fi ;;
648 esac
649 if [ ${HP_ARCH} = "hppa2.0w" ]
650 then
651 eval $set_cc_for_build
652
653 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
654 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
655 # generating 64-bit code. GNU and HP use different nomenclature:
656 #
657 # $ CC_FOR_BUILD=cc ./config.guess
658 # => hppa2.0w-hp-hpux11.23
659 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
660 # => hppa64-hp-hpux11.23
661
662 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
663 grep -q __LP64__
664 then
665 HP_ARCH="hppa2.0w"
666 else
667 HP_ARCH="hppa64"
668 fi
669 fi
670 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
671 exit ;;
672 ia64:HP-UX:*:*)
673 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
674 echo ia64-hp-hpux${HPUX_REV}
675 exit ;;
676 3050*:HI-UX:*:*)
677 eval $set_cc_for_build
678 sed 's/^ //' << EOF >$dummy.c
679 #include <unistd.h>
680 int
681 main ()
682 {
683 long cpu = sysconf (_SC_CPU_VERSION);
684 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
685 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
686 results, however. */
687 if (CPU_IS_PA_RISC (cpu))
688 {
689 switch (cpu)
690 {
691 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
692 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
693 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
694 default: puts ("hppa-hitachi-hiuxwe2"); break;
695 }
696 }
697 else if (CPU_IS_HP_MC68K (cpu))
698 puts ("m68k-hitachi-hiuxwe2");
699 else puts ("unknown-hitachi-hiuxwe2");
700 exit (0);
701 }
702 EOF
703 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
704 { echo "$SYSTEM_NAME"; exit; }
705 echo unknown-hitachi-hiuxwe2
706 exit ;;
707 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
708 echo hppa1.1-hp-bsd
709 exit ;;
710 9000/8??:4.3bsd:*:*)
711 echo hppa1.0-hp-bsd
712 exit ;;
713 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
714 echo hppa1.0-hp-mpeix
715 exit ;;
716 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
717 echo hppa1.1-hp-osf
718 exit ;;
719 hp8??:OSF1:*:*)
720 echo hppa1.0-hp-osf
721 exit ;;
722 i*86:OSF1:*:*)
723 if [ -x /usr/sbin/sysversion ] ; then
724 echo ${UNAME_MACHINE}-unknown-osf1mk
725 else
726 echo ${UNAME_MACHINE}-unknown-osf1
727 fi
728 exit ;;
729 parisc*:Lites*:*:*)
730 echo hppa1.1-hp-lites
731 exit ;;
732 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
733 echo c1-convex-bsd
734 exit ;;
735 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
736 if getsysinfo -f scalar_acc
737 then echo c32-convex-bsd
738 else echo c2-convex-bsd
739 fi
740 exit ;;
741 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
742 echo c34-convex-bsd
743 exit ;;
744 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
745 echo c38-convex-bsd
746 exit ;;
747 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
748 echo c4-convex-bsd
749 exit ;;
750 CRAY*Y-MP:*:*:*)
751 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
752 exit ;;
753 CRAY*[A-Z]90:*:*:*)
754 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
755 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
756 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
757 -e 's/\.[^.]*$/.X/'
758 exit ;;
759 CRAY*TS:*:*:*)
760 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
761 exit ;;
762 CRAY*T3E:*:*:*)
763 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
764 exit ;;
765 CRAY*SV1:*:*:*)
766 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
767 exit ;;
768 *:UNICOS/mp:*:*)
769 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
770 exit ;;
771 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
772 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
773 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
774 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
775 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
776 exit ;;
777 5000:UNIX_System_V:4.*:*)
778 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
779 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
780 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
781 exit ;;
782 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
783 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
784 exit ;;
785 sparc*:BSD/OS:*:*)
786 echo sparc-unknown-bsdi${UNAME_RELEASE}
787 exit ;;
788 *:BSD/OS:*:*)
789 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
790 exit ;;
791 *:FreeBSD:*:*)
792 UNAME_PROCESSOR=`/usr/bin/uname -p`
793 case ${UNAME_PROCESSOR} in
794 amd64)
795 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
796 *)
797 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
798 esac
799 exit ;;
800 i*:CYGWIN*:*)
801 echo ${UNAME_MACHINE}-pc-cygwin
802 exit ;;
803 *:MINGW*:*)
804 echo ${UNAME_MACHINE}-pc-mingw32
805 exit ;;
806 i*:MSYS*:*)
807 echo ${UNAME_MACHINE}-pc-msys
808 exit ;;
809 i*:windows32*:*)
810 # uname -m includes "-pc" on this system.
811 echo ${UNAME_MACHINE}-mingw32
812 exit ;;
813 i*:PW*:*)
814 echo ${UNAME_MACHINE}-pc-pw32
815 exit ;;
816 *:Interix*:*)
817 case ${UNAME_MACHINE} in
818 x86)
819 echo i586-pc-interix${UNAME_RELEASE}
820 exit ;;
821 authenticamd | genuineintel | EM64T)
822 echo x86_64-unknown-interix${UNAME_RELEASE}
823 exit ;;
824 IA64)
825 echo ia64-unknown-interix${UNAME_RELEASE}
826 exit ;;
827 esac ;;
828 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
829 echo i${UNAME_MACHINE}-pc-mks
830 exit ;;
831 8664:Windows_NT:*)
832 echo x86_64-pc-mks
833 exit ;;
834 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
835 # How do we know it's Interix rather than the generic POSIX subsystem?
836 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
837 # UNAME_MACHINE based on the output of uname instead of i386?
838 echo i586-pc-interix
839 exit ;;
840 i*:UWIN*:*)
841 echo ${UNAME_MACHINE}-pc-uwin
842 exit ;;
843 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
844 echo x86_64-unknown-cygwin
845 exit ;;
846 p*:CYGWIN*:*)
847 echo powerpcle-unknown-cygwin
848 exit ;;
849 prep*:SunOS:5.*:*)
850 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
851 exit ;;
852 *:GNU:*:*)
853 # the GNU system
854 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
855 exit ;;
856 *:GNU/*:*:*)
857 # other systems with GNU libc and userland
858 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
859 exit ;;
860 i*86:Minix:*:*)
861 echo ${UNAME_MACHINE}-pc-minix
862 exit ;;
863 aarch64:Linux:*:*)
864 echo ${UNAME_MACHINE}-unknown-linux-gnu
865 exit ;;
866 aarch64_be:Linux:*:*)
867 UNAME_MACHINE=aarch64_be
868 echo ${UNAME_MACHINE}-unknown-linux-gnu
869 exit ;;
870 alpha:Linux:*:*)
871 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
872 EV5) UNAME_MACHINE=alphaev5 ;;
873 EV56) UNAME_MACHINE=alphaev56 ;;
874 PCA56) UNAME_MACHINE=alphapca56 ;;
875 PCA57) UNAME_MACHINE=alphapca56 ;;
876 EV6) UNAME_MACHINE=alphaev6 ;;
877 EV67) UNAME_MACHINE=alphaev67 ;;
878 EV68*) UNAME_MACHINE=alphaev68 ;;
879 esac
880 objdump --private-headers /bin/sh | grep -q ld.so.1
881 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
882 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
883 exit ;;
884 arm*:Linux:*:*)
885 eval $set_cc_for_build
886 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
887 | grep -q __ARM_EABI__
888 then
889 echo ${UNAME_MACHINE}-unknown-linux-gnu
890 else
891 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
892 | grep -q __ARM_PCS_VFP
893 then
894 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
895 else
896 echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
897 fi
898 fi
899 exit ;;
900 avr32*:Linux:*:*)
901 echo ${UNAME_MACHINE}-unknown-linux-gnu
902 exit ;;
903 cris:Linux:*:*)
904 echo ${UNAME_MACHINE}-axis-linux-gnu
905 exit ;;
906 crisv32:Linux:*:*)
907 echo ${UNAME_MACHINE}-axis-linux-gnu
908 exit ;;
909 frv:Linux:*:*)
910 echo ${UNAME_MACHINE}-unknown-linux-gnu
911 exit ;;
912 hexagon:Linux:*:*)
913 echo ${UNAME_MACHINE}-unknown-linux-gnu
914 exit ;;
915 i*86:Linux:*:*)
916 LIBC=gnu
917 eval $set_cc_for_build
918 sed 's/^ //' << EOF >$dummy.c
919 #ifdef __dietlibc__
920 LIBC=dietlibc
921 #endif
922 EOF
923 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
924 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
925 exit ;;
926 ia64:Linux:*:*)
927 echo ${UNAME_MACHINE}-unknown-linux-gnu
928 exit ;;
929 m32r*:Linux:*:*)
930 echo ${UNAME_MACHINE}-unknown-linux-gnu
931 exit ;;
932 m68*:Linux:*:*)
933 echo ${UNAME_MACHINE}-unknown-linux-gnu
934 exit ;;
935 mips:Linux:*:* | mips64:Linux:*:*)
936 eval $set_cc_for_build
937 sed 's/^ //' << EOF >$dummy.c
938 #undef CPU
939 #undef ${UNAME_MACHINE}
940 #undef ${UNAME_MACHINE}el
941 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
942 CPU=${UNAME_MACHINE}el
943 #else
944 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
945 CPU=${UNAME_MACHINE}
946 #else
947 CPU=
948 #endif
949 #endif
950 EOF
951 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
952 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
953 ;;
954 or32:Linux:*:*)
955 echo ${UNAME_MACHINE}-unknown-linux-gnu
956 exit ;;
957 padre:Linux:*:*)
958 echo sparc-unknown-linux-gnu
959 exit ;;
960 parisc64:Linux:*:* | hppa64:Linux:*:*)
961 echo hppa64-unknown-linux-gnu
962 exit ;;
963 parisc:Linux:*:* | hppa:Linux:*:*)
964 # Look for CPU level
965 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
966 PA7*) echo hppa1.1-unknown-linux-gnu ;;
967 PA8*) echo hppa2.0-unknown-linux-gnu ;;
968 *) echo hppa-unknown-linux-gnu ;;
969 esac
970 exit ;;
971 ppc64:Linux:*:*)
972 echo powerpc64-unknown-linux-gnu
973 exit ;;
974 ppc:Linux:*:*)
975 echo powerpc-unknown-linux-gnu
976 exit ;;
977 s390:Linux:*:* | s390x:Linux:*:*)
978 echo ${UNAME_MACHINE}-ibm-linux
979 exit ;;
980 sh64*:Linux:*:*)
981 echo ${UNAME_MACHINE}-unknown-linux-gnu
982 exit ;;
983 sh*:Linux:*:*)
984 echo ${UNAME_MACHINE}-unknown-linux-gnu
985 exit ;;
986 sparc:Linux:*:* | sparc64:Linux:*:*)
987 echo ${UNAME_MACHINE}-unknown-linux-gnu
988 exit ;;
989 tile*:Linux:*:*)
990 echo ${UNAME_MACHINE}-unknown-linux-gnu
991 exit ;;
992 vax:Linux:*:*)
993 echo ${UNAME_MACHINE}-dec-linux-gnu
994 exit ;;
995 x86_64:Linux:*:*)
996 echo ${UNAME_MACHINE}-unknown-linux-gnu
997 exit ;;
998 xtensa*:Linux:*:*)
999 echo ${UNAME_MACHINE}-unknown-linux-gnu
1000 exit ;;
1001 i*86:DYNIX/ptx:4*:*)
1002 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1003 # earlier versions are messed up and put the nodename in both
1004 # sysname and nodename.
1005 echo i386-sequent-sysv4
1006 exit ;;
1007 i*86:UNIX_SV:4.2MP:2.*)
1008 # Unixware is an offshoot of SVR4, but it has its own version
1009 # number series starting with 2...
1010 # I am not positive that other SVR4 systems won't match this,
1011 # I just have to hope. -- rms.
1012 # Use sysv4.2uw... so that sysv4* matches it.
1013 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1014 exit ;;
1015 i*86:OS/2:*:*)
1016 # If we were able to find `uname', then EMX Unix compatibility
1017 # is probably installed.
1018 echo ${UNAME_MACHINE}-pc-os2-emx
1019 exit ;;
1020 i*86:XTS-300:*:STOP)
1021 echo ${UNAME_MACHINE}-unknown-stop
1022 exit ;;
1023 i*86:atheos:*:*)
1024 echo ${UNAME_MACHINE}-unknown-atheos
1025 exit ;;
1026 i*86:syllable:*:*)
1027 echo ${UNAME_MACHINE}-pc-syllable
1028 exit ;;
1029 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1030 echo i386-unknown-lynxos${UNAME_RELEASE}
1031 exit ;;
1032 i*86:*DOS:*:*)
1033 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1034 exit ;;
1035 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1036 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1037 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1038 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1039 else
1040 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1041 fi
1042 exit ;;
1043 i*86:*:5:[678]*)
1044 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1045 case `/bin/uname -X | grep "^Machine"` in
1046 *486*) UNAME_MACHINE=i486 ;;
1047 *Pentium) UNAME_MACHINE=i586 ;;
1048 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1049 esac
1050 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1051 exit ;;
1052 i*86:*:3.2:*)
1053 if test -f /usr/options/cb.name; then
1054 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1055 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1056 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1057 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1058 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1059 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1060 && UNAME_MACHINE=i586
1061 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1062 && UNAME_MACHINE=i686
1063 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1064 && UNAME_MACHINE=i686
1065 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1066 else
1067 echo ${UNAME_MACHINE}-pc-sysv32
1068 fi
1069 exit ;;
1070 pc:*:*:*)
1071 # Left here for compatibility:
1072 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1073 # the processor, so we play safe by assuming i586.
1074 # Note: whatever this is, it MUST be the same as what config.sub
1075 # prints for the "djgpp" host, or else GDB configury will decide that
1076 # this is a cross-build.
1077 echo i586-pc-msdosdjgpp
1078 exit ;;
1079 Intel:Mach:3*:*)
1080 echo i386-pc-mach3
1081 exit ;;
1082 paragon:*:*:*)
1083 echo i860-intel-osf1
1084 exit ;;
1085 i860:*:4.*:*) # i860-SVR4
1086 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1087 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1088 else # Add other i860-SVR4 vendors below as they are discovered.
1089 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1090 fi
1091 exit ;;
1092 mini*:CTIX:SYS*5:*)
1093 # "miniframe"
1094 echo m68010-convergent-sysv
1095 exit ;;
1096 mc68k:UNIX:SYSTEM5:3.51m)
1097 echo m68k-convergent-sysv
1098 exit ;;
1099 M680?0:D-NIX:5.3:*)
1100 echo m68k-diab-dnix
1101 exit ;;
1102 M68*:*:R3V[5678]*:*)
1103 test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1104 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)
1105 OS_REL=''
1106 test -r /etc/.relid \
1107 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1108 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1109 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1110 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1111 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1112 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1113 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1114 && { echo i486-ncr-sysv4; exit; } ;;
1115 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1116 OS_REL='.3'
1117 test -r /etc/.relid \
1118 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1119 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1120 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1121 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1122 && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1123 /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1124 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1125 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1126 echo m68k-unknown-lynxos${UNAME_RELEASE}
1127 exit ;;
1128 mc68030:UNIX_System_V:4.*:*)
1129 echo m68k-atari-sysv4
1130 exit ;;
1131 TSUNAMI:LynxOS:2.*:*)
1132 echo sparc-unknown-lynxos${UNAME_RELEASE}
1133 exit ;;
1134 rs6000:LynxOS:2.*:*)
1135 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1136 exit ;;
1137 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1138 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1139 exit ;;
1140 SM[BE]S:UNIX_SV:*:*)
1141 echo mips-dde-sysv${UNAME_RELEASE}
1142 exit ;;
1143 RM*:ReliantUNIX-*:*:*)
1144 echo mips-sni-sysv4
1145 exit ;;
1146 RM*:SINIX-*:*:*)
1147 echo mips-sni-sysv4
1148 exit ;;
1149 *:SINIX-*:*:*)
1150 if uname -p 2>/dev/null >/dev/null ; then
1151 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1152 echo ${UNAME_MACHINE}-sni-sysv4
1153 else
1154 echo ns32k-sni-sysv
1155 fi
1156 exit ;;
1157 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1158 # says <Richard.M.Bartel@ccMail.Census.GOV>
1159 echo i586-unisys-sysv4
1160 exit ;;
1161 *:UNIX_System_V:4*:FTX*)
1162 # From Gerald Hewes <hewes@openmarket.com>.
1163 # How about differentiating between stratus architectures? -djm
1164 echo hppa1.1-stratus-sysv4
1165 exit ;;
1166 *:*:*:FTX*)
1167 # From seanf@swdc.stratus.com.
1168 echo i860-stratus-sysv4
1169 exit ;;
1170 i*86:VOS:*:*)
1171 # From Paul.Green@stratus.com.
1172 echo ${UNAME_MACHINE}-stratus-vos
1173 exit ;;
1174 *:VOS:*:*)
1175 # From Paul.Green@stratus.com.
1176 echo hppa1.1-stratus-vos
1177 exit ;;
1178 mc68*:A/UX:*:*)
1179 echo m68k-apple-aux${UNAME_RELEASE}
1180 exit ;;
1181 news*:NEWS-OS:6*:*)
1182 echo mips-sony-newsos6
1183 exit ;;
1184 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1185 if [ -d /usr/nec ]; then
1186 echo mips-nec-sysv${UNAME_RELEASE}
1187 else
1188 echo mips-unknown-sysv${UNAME_RELEASE}
1189 fi
1190 exit ;;
1191 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1192 echo powerpc-be-beos
1193 exit ;;
1194 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1195 echo powerpc-apple-beos
1196 exit ;;
1197 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1198 echo i586-pc-beos
1199 exit ;;
1200 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1201 echo i586-pc-haiku
1202 exit ;;
1203 SX-4:SUPER-UX:*:*)
1204 echo sx4-nec-superux${UNAME_RELEASE}
1205 exit ;;
1206 SX-5:SUPER-UX:*:*)
1207 echo sx5-nec-superux${UNAME_RELEASE}
1208 exit ;;
1209 SX-6:SUPER-UX:*:*)
1210 echo sx6-nec-superux${UNAME_RELEASE}
1211 exit ;;
1212 SX-7:SUPER-UX:*:*)
1213 echo sx7-nec-superux${UNAME_RELEASE}
1214 exit ;;
1215 SX-8:SUPER-UX:*:*)
1216 echo sx8-nec-superux${UNAME_RELEASE}
1217 exit ;;
1218 SX-8R:SUPER-UX:*:*)
1219 echo sx8r-nec-superux${UNAME_RELEASE}
1220 exit ;;
1221 Power*:Rhapsody:*:*)
1222 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1223 exit ;;
1224 *:Rhapsody:*:*)
1225 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1226 exit ;;
1227 *:Darwin:*:*)
1228 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1229 case $UNAME_PROCESSOR in
1230 i386)
1231 eval $set_cc_for_build
1232 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1233 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1234 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1235 grep IS_64BIT_ARCH >/dev/null
1236 then
1237 UNAME_PROCESSOR="x86_64"
1238 fi
1239 fi ;;
1240 unknown) UNAME_PROCESSOR=powerpc ;;
1241 esac
1242 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1243 exit ;;
1244 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1245 UNAME_PROCESSOR=`uname -p`
1246 if test "$UNAME_PROCESSOR" = "x86"; then
1247 UNAME_PROCESSOR=i386
1248 UNAME_MACHINE=pc
1249 fi
1250 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1251 exit ;;
1252 *:QNX:*:4*)
1253 echo i386-pc-qnx
1254 exit ;;
1255 NEO-?:NONSTOP_KERNEL:*:*)
1256 echo neo-tandem-nsk${UNAME_RELEASE}
1257 exit ;;
1258 NSE-*:NONSTOP_KERNEL:*:*)
1259 echo nse-tandem-nsk${UNAME_RELEASE}
1260 exit ;;
1261 NSR-?:NONSTOP_KERNEL:*:*)
1262 echo nsr-tandem-nsk${UNAME_RELEASE}
1263 exit ;;
1264 *:NonStop-UX:*:*)
1265 echo mips-compaq-nonstopux
1266 exit ;;
1267 BS2000:POSIX*:*:*)
1268 echo bs2000-siemens-sysv
1269 exit ;;
1270 DS/*:UNIX_System_V:*:*)
1271 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1272 exit ;;
1273 *:Plan9:*:*)
1274 # "uname -m" is not consistent, so use $cputype instead. 386
1275 # is converted to i386 for consistency with other x86
1276 # operating systems.
1277 if test "$cputype" = "386"; then
1278 UNAME_MACHINE=i386
1279 else
1280 UNAME_MACHINE="$cputype"
1281 fi
1282 echo ${UNAME_MACHINE}-unknown-plan9
1283 exit ;;
1284 *:TOPS-10:*:*)
1285 echo pdp10-unknown-tops10
1286 exit ;;
1287 *:TENEX:*:*)
1288 echo pdp10-unknown-tenex
1289 exit ;;
1290 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1291 echo pdp10-dec-tops20
1292 exit ;;
1293 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1294 echo pdp10-xkl-tops20
1295 exit ;;
1296 *:TOPS-20:*:*)
1297 echo pdp10-unknown-tops20
1298 exit ;;
1299 *:ITS:*:*)
1300 echo pdp10-unknown-its
1301 exit ;;
1302 SEI:*:*:SEIUX)
1303 echo mips-sei-seiux${UNAME_RELEASE}
1304 exit ;;
1305 *:DragonFly:*:*)
1306 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1307 exit ;;
1308 *:*VMS:*:*)
1309 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1310 case "${UNAME_MACHINE}" in
1311 A*) echo alpha-dec-vms ; exit ;;
1312 I*) echo ia64-dec-vms ; exit ;;
1313 V*) echo vax-dec-vms ; exit ;;
1314 esac ;;
1315 *:XENIX:*:SysV)
1316 echo i386-pc-xenix
1317 exit ;;
1318 i*86:skyos:*:*)
1319 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1320 exit ;;
1321 i*86:rdos:*:*)
1322 echo ${UNAME_MACHINE}-pc-rdos
1323 exit ;;
1324 i*86:AROS:*:*)
1325 echo ${UNAME_MACHINE}-pc-aros
1326 exit ;;
1327 x86_64:VMkernel:*:*)
1328 echo ${UNAME_MACHINE}-unknown-esx
1329 exit ;;
1330 esac
1331
1332 #echo '(No uname command or uname output not recognized.)' 1>&2
1333 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1334
1335 eval $set_cc_for_build
1336 cat >$dummy.c <<EOF
1337 #ifdef _SEQUENT_
1338 # include <sys/types.h>
1339 # include <sys/utsname.h>
1340 #endif
1341 main ()
1342 {
1343 #if defined (sony)
1344 #if defined (MIPSEB)
1345 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1346 I don't know.... */
1347 printf ("mips-sony-bsd\n"); exit (0);
1348 #else
1349 #include <sys/param.h>
1350 printf ("m68k-sony-newsos%s\n",
1351 #ifdef NEWSOS4
1352 "4"
1353 #else
1354 ""
1355 #endif
1356 ); exit (0);
1357 #endif
1358 #endif
1359
1360 #if defined (__arm) && defined (__acorn) && defined (__unix)
1361 printf ("arm-acorn-riscix\n"); exit (0);
1362 #endif
1363
1364 #if defined (hp300) && !defined (hpux)
1365 printf ("m68k-hp-bsd\n"); exit (0);
1366 #endif
1367
1368 #if defined (NeXT)
1369 #if !defined (__ARCHITECTURE__)
1370 #define __ARCHITECTURE__ "m68k"
1371 #endif
1372 int version;
1373 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1374 if (version < 4)
1375 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1376 else
1377 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1378 exit (0);
1379 #endif
1380
1381 #if defined (MULTIMAX) || defined (n16)
1382 #if defined (UMAXV)
1383 printf ("ns32k-encore-sysv\n"); exit (0);
1384 #else
1385 #if defined (CMU)
1386 printf ("ns32k-encore-mach\n"); exit (0);
1387 #else
1388 printf ("ns32k-encore-bsd\n"); exit (0);
1389 #endif
1390 #endif
1391 #endif
1392
1393 #if defined (__386BSD__)
1394 printf ("i386-pc-bsd\n"); exit (0);
1395 #endif
1396
1397 #if defined (sequent)
1398 #if defined (i386)
1399 printf ("i386-sequent-dynix\n"); exit (0);
1400 #endif
1401 #if defined (ns32000)
1402 printf ("ns32k-sequent-dynix\n"); exit (0);
1403 #endif
1404 #endif
1405
1406 #if defined (_SEQUENT_)
1407 struct utsname un;
1408
1409 uname(&un);
1410
1411 if (strncmp(un.version, "V2", 2) == 0) {
1412 printf ("i386-sequent-ptx2\n"); exit (0);
1413 }
1414 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1415 printf ("i386-sequent-ptx1\n"); exit (0);
1416 }
1417 printf ("i386-sequent-ptx\n"); exit (0);
1418
1419 #endif
1420
1421 #if defined (vax)
1422 # if !defined (ultrix)
1423 # include <sys/param.h>
1424 # if defined (BSD)
1425 # if BSD == 43
1426 printf ("vax-dec-bsd4.3\n"); exit (0);
1427 # else
1428 # if BSD == 199006
1429 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1430 # else
1431 printf ("vax-dec-bsd\n"); exit (0);
1432 # endif
1433 # endif
1434 # else
1435 printf ("vax-dec-bsd\n"); exit (0);
1436 # endif
1437 # else
1438 printf ("vax-dec-ultrix\n"); exit (0);
1439 # endif
1440 #endif
1441
1442 #if defined (alliant) && defined (i860)
1443 printf ("i860-alliant-bsd\n"); exit (0);
1444 #endif
1445
1446 exit (1);
1447 }
1448 EOF
1449
1450 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1451 { echo "$SYSTEM_NAME"; exit; }
1452
1453 # Apollos put the system type in the environment.
1454
1455 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1456
1457 # Convex versions that predate uname can use getsysinfo(1)
1458
1459 if [ -x /usr/convex/getsysinfo ]
1460 then
1461 case `getsysinfo -f cpu_type` in
1462 c1*)
1463 echo c1-convex-bsd
1464 exit ;;
1465 c2*)
1466 if getsysinfo -f scalar_acc
1467 then echo c32-convex-bsd
1468 else echo c2-convex-bsd
1469 fi
1470 exit ;;
1471 c34*)
1472 echo c34-convex-bsd
1473 exit ;;
1474 c38*)
1475 echo c38-convex-bsd
1476 exit ;;
1477 c4*)
1478 echo c4-convex-bsd
1479 exit ;;
1480 esac
1481 fi
1482
1483 cat >&2 <<EOF
1484 $0: unable to guess system type
1485
1486 This script, last modified $timestamp, has failed to recognize
1487 the operating system you are using. It is advised that you
1488 download the most up to date version of the config scripts from
1489
1490 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1491 and
1492 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1493
1494 If the version you run ($0) is already up to date, please
1495 send the following data and any information you think might be
1496 pertinent to <config-patches@gnu.org> in order to provide the needed
1497 information to handle your system.
1498
1499 config.guess timestamp = $timestamp
1500
1501 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1502 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1503 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1504 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1505
1506 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1507 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1508
1509 hostinfo = `(hostinfo) 2>/dev/null`
1510 /bin/universe = `(/bin/universe) 2>/dev/null`
1511 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1512 /bin/arch = `(/bin/arch) 2>/dev/null`
1513 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1514 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1515
1516 UNAME_MACHINE = ${UNAME_MACHINE}
1517 UNAME_RELEASE = ${UNAME_RELEASE}
1518 UNAME_SYSTEM = ${UNAME_SYSTEM}
1519 UNAME_VERSION = ${UNAME_VERSION}
1520 EOF
1521
1522 exit 1
1523
1524 # Local variables:
1525 # eval: (add-hook 'write-file-hooks 'time-stamp)
1526 # time-stamp-start: "timestamp='"
1527 # time-stamp-format: "%:y-%02m-%02d"
1528 # time-stamp-end: "'"
1529 # End:
0 #! /bin/sh
1 # Configuration validation subroutine script.
2 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
4 # 2011, 2012 Free Software Foundation, Inc.
5
6 timestamp='2012-04-18'
7
8 # This file is (in principle) common to ALL GNU software.
9 # The presence of a machine in this file suggests that SOME GNU software
10 # can handle that machine. It does not imply ALL GNU software can.
11 #
12 # This file is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 2 of the License, or
15 # (at your option) any later version.
16 #
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, see <http://www.gnu.org/licenses/>.
24 #
25 # As a special exception to the GNU General Public License, if you
26 # distribute this file as part of a program that contains a
27 # configuration script generated by Autoconf, you may include it under
28 # the same distribution terms that you use for the rest of that program.
29
30
31 # Please send patches to <config-patches@gnu.org>. Submit a context
32 # diff and a properly formatted GNU ChangeLog entry.
33 #
34 # Configuration subroutine to validate and canonicalize a configuration type.
35 # Supply the specified configuration type as an argument.
36 # If it is invalid, we print an error message on stderr and exit with code 1.
37 # Otherwise, we print the canonical config type on stdout and succeed.
38
39 # You can get the latest version of this script from:
40 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
41
42 # This file is supposed to be the same for all GNU packages
43 # and recognize all the CPU types, system types and aliases
44 # that are meaningful with *any* GNU software.
45 # Each package is responsible for reporting which valid configurations
46 # it does not support. The user should be able to distinguish
47 # a failure to support a valid configuration from a meaningless
48 # configuration.
49
50 # The goal of this file is to map all the various variations of a given
51 # machine specification into a single specification in the form:
52 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
53 # or in some cases, the newer four-part form:
54 # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
55 # It is wrong to echo any other type of specification.
56
57 me=`echo "$0" | sed -e 's,.*/,,'`
58
59 usage="\
60 Usage: $0 [OPTION] CPU-MFR-OPSYS
61 $0 [OPTION] ALIAS
62
63 Canonicalize a configuration name.
64
65 Operation modes:
66 -h, --help print this help, then exit
67 -t, --time-stamp print date of last modification, then exit
68 -v, --version print version number, then exit
69
70 Report bugs and patches to <config-patches@gnu.org>."
71
72 version="\
73 GNU config.sub ($timestamp)
74
75 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
76 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
77 Free Software Foundation, Inc.
78
79 This is free software; see the source for copying conditions. There is NO
80 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
81
82 help="
83 Try \`$me --help' for more information."
84
85 # Parse command line
86 while test $# -gt 0 ; do
87 case $1 in
88 --time-stamp | --time* | -t )
89 echo "$timestamp" ; exit ;;
90 --version | -v )
91 echo "$version" ; exit ;;
92 --help | --h* | -h )
93 echo "$usage"; exit ;;
94 -- ) # Stop option processing
95 shift; break ;;
96 - ) # Use stdin as input.
97 break ;;
98 -* )
99 echo "$me: invalid option $1$help"
100 exit 1 ;;
101
102 *local*)
103 # First pass through any local machine types.
104 echo $1
105 exit ;;
106
107 * )
108 break ;;
109 esac
110 done
111
112 case $# in
113 0) echo "$me: missing argument$help" >&2
114 exit 1;;
115 1) ;;
116 *) echo "$me: too many arguments$help" >&2
117 exit 1;;
118 esac
119
120 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
121 # Here we must recognize all the valid KERNEL-OS combinations.
122 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
123 case $maybe_os in
124 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
125 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
126 knetbsd*-gnu* | netbsd*-gnu* | \
127 kopensolaris*-gnu* | \
128 storm-chaos* | os2-emx* | rtmk-nova*)
129 os=-$maybe_os
130 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
131 ;;
132 android-linux)
133 os=-linux-android
134 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
135 ;;
136 *)
137 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
138 if [ $basic_machine != $1 ]
139 then os=`echo $1 | sed 's/.*-/-/'`
140 else os=; fi
141 ;;
142 esac
143
144 ### Let's recognize common machines as not being operating systems so
145 ### that things like config.sub decstation-3100 work. We also
146 ### recognize some manufacturers as not being operating systems, so we
147 ### can provide default operating systems below.
148 case $os in
149 -sun*os*)
150 # Prevent following clause from handling this invalid input.
151 ;;
152 -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
153 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
154 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
155 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
156 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
157 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
158 -apple | -axis | -knuth | -cray | -microblaze)
159 os=
160 basic_machine=$1
161 ;;
162 -bluegene*)
163 os=-cnk
164 ;;
165 -sim | -cisco | -oki | -wec | -winbond)
166 os=
167 basic_machine=$1
168 ;;
169 -scout)
170 ;;
171 -wrs)
172 os=-vxworks
173 basic_machine=$1
174 ;;
175 -chorusos*)
176 os=-chorusos
177 basic_machine=$1
178 ;;
179 -chorusrdb)
180 os=-chorusrdb
181 basic_machine=$1
182 ;;
183 -hiux*)
184 os=-hiuxwe2
185 ;;
186 -sco6)
187 os=-sco5v6
188 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
189 ;;
190 -sco5)
191 os=-sco3.2v5
192 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
193 ;;
194 -sco4)
195 os=-sco3.2v4
196 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
197 ;;
198 -sco3.2.[4-9]*)
199 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
200 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
201 ;;
202 -sco3.2v[4-9]*)
203 # Don't forget version if it is 3.2v4 or newer.
204 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
205 ;;
206 -sco5v6*)
207 # Don't forget version if it is 3.2v4 or newer.
208 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
209 ;;
210 -sco*)
211 os=-sco3.2v2
212 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
213 ;;
214 -udk*)
215 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
216 ;;
217 -isc)
218 os=-isc2.2
219 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
220 ;;
221 -clix*)
222 basic_machine=clipper-intergraph
223 ;;
224 -isc*)
225 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
226 ;;
227 -lynx*178)
228 os=-lynxos178
229 ;;
230 -lynx*5)
231 os=-lynxos5
232 ;;
233 -lynx*)
234 os=-lynxos
235 ;;
236 -ptx*)
237 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
238 ;;
239 -windowsnt*)
240 os=`echo $os | sed -e 's/windowsnt/winnt/'`
241 ;;
242 -psos*)
243 os=-psos
244 ;;
245 -mint | -mint[0-9]*)
246 basic_machine=m68k-atari
247 os=-mint
248 ;;
249 esac
250
251 # Decode aliases for certain CPU-COMPANY combinations.
252 case $basic_machine in
253 # Recognize the basic CPU types without company name.
254 # Some are omitted here because they have special meanings below.
255 1750a | 580 \
256 | a29k \
257 | aarch64 | aarch64_be \
258 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
259 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
260 | am33_2.0 \
261 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
262 | be32 | be64 \
263 | bfin \
264 | c4x | clipper \
265 | d10v | d30v | dlx | dsp16xx \
266 | epiphany \
267 | fido | fr30 | frv \
268 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
269 | hexagon \
270 | i370 | i860 | i960 | ia64 \
271 | ip2k | iq2000 \
272 | le32 | le64 \
273 | lm32 \
274 | m32c | m32r | m32rle | m68000 | m68k | m88k \
275 | maxq | mb | microblaze | mcore | mep | metag \
276 | mips | mipsbe | mipseb | mipsel | mipsle \
277 | mips16 \
278 | mips64 | mips64el \
279 | mips64octeon | mips64octeonel \
280 | mips64orion | mips64orionel \
281 | mips64r5900 | mips64r5900el \
282 | mips64vr | mips64vrel \
283 | mips64vr4100 | mips64vr4100el \
284 | mips64vr4300 | mips64vr4300el \
285 | mips64vr5000 | mips64vr5000el \
286 | mips64vr5900 | mips64vr5900el \
287 | mipsisa32 | mipsisa32el \
288 | mipsisa32r2 | mipsisa32r2el \
289 | mipsisa64 | mipsisa64el \
290 | mipsisa64r2 | mipsisa64r2el \
291 | mipsisa64sb1 | mipsisa64sb1el \
292 | mipsisa64sr71k | mipsisa64sr71kel \
293 | mipstx39 | mipstx39el \
294 | mn10200 | mn10300 \
295 | moxie \
296 | mt \
297 | msp430 \
298 | nds32 | nds32le | nds32be \
299 | nios | nios2 \
300 | ns16k | ns32k \
301 | open8 \
302 | or32 \
303 | pdp10 | pdp11 | pj | pjl \
304 | powerpc | powerpc64 | powerpc64le | powerpcle \
305 | pyramid \
306 | rl78 | rx \
307 | score \
308 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
309 | sh64 | sh64le \
310 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
311 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
312 | spu \
313 | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
314 | ubicom32 \
315 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
316 | we32k \
317 | x86 | xc16x | xstormy16 | xtensa \
318 | z8k | z80)
319 basic_machine=$basic_machine-unknown
320 ;;
321 c54x)
322 basic_machine=tic54x-unknown
323 ;;
324 c55x)
325 basic_machine=tic55x-unknown
326 ;;
327 c6x)
328 basic_machine=tic6x-unknown
329 ;;
330 m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
331 basic_machine=$basic_machine-unknown
332 os=-none
333 ;;
334 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
335 ;;
336 ms1)
337 basic_machine=mt-unknown
338 ;;
339
340 strongarm | thumb | xscale)
341 basic_machine=arm-unknown
342 ;;
343 xgate)
344 basic_machine=$basic_machine-unknown
345 os=-none
346 ;;
347 xscaleeb)
348 basic_machine=armeb-unknown
349 ;;
350
351 xscaleel)
352 basic_machine=armel-unknown
353 ;;
354
355 # We use `pc' rather than `unknown'
356 # because (1) that's what they normally are, and
357 # (2) the word "unknown" tends to confuse beginning users.
358 i*86 | x86_64)
359 basic_machine=$basic_machine-pc
360 ;;
361 # Object if more than one company name word.
362 *-*-*)
363 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
364 exit 1
365 ;;
366 # Recognize the basic CPU types with company name.
367 580-* \
368 | a29k-* \
369 | aarch64-* | aarch64_be-* \
370 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
371 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
372 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
373 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
374 | avr-* | avr32-* \
375 | be32-* | be64-* \
376 | bfin-* | bs2000-* \
377 | c[123]* | c30-* | [cjt]90-* | c4x-* \
378 | clipper-* | craynv-* | cydra-* \
379 | d10v-* | d30v-* | dlx-* \
380 | elxsi-* \
381 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
382 | h8300-* | h8500-* \
383 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
384 | hexagon-* \
385 | i*86-* | i860-* | i960-* | ia64-* \
386 | ip2k-* | iq2000-* \
387 | le32-* | le64-* \
388 | lm32-* \
389 | m32c-* | m32r-* | m32rle-* \
390 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
391 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
392 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
393 | mips16-* \
394 | mips64-* | mips64el-* \
395 | mips64octeon-* | mips64octeonel-* \
396 | mips64orion-* | mips64orionel-* \
397 | mips64r5900-* | mips64r5900el-* \
398 | mips64vr-* | mips64vrel-* \
399 | mips64vr4100-* | mips64vr4100el-* \
400 | mips64vr4300-* | mips64vr4300el-* \
401 | mips64vr5000-* | mips64vr5000el-* \
402 | mips64vr5900-* | mips64vr5900el-* \
403 | mipsisa32-* | mipsisa32el-* \
404 | mipsisa32r2-* | mipsisa32r2el-* \
405 | mipsisa64-* | mipsisa64el-* \
406 | mipsisa64r2-* | mipsisa64r2el-* \
407 | mipsisa64sb1-* | mipsisa64sb1el-* \
408 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
409 | mipstx39-* | mipstx39el-* \
410 | mmix-* \
411 | mt-* \
412 | msp430-* \
413 | nds32-* | nds32le-* | nds32be-* \
414 | nios-* | nios2-* \
415 | none-* | np1-* | ns16k-* | ns32k-* \
416 | open8-* \
417 | orion-* \
418 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
419 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
420 | pyramid-* \
421 | rl78-* | romp-* | rs6000-* | rx-* \
422 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
423 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
424 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
425 | sparclite-* \
426 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
427 | tahoe-* \
428 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
429 | tile*-* \
430 | tron-* \
431 | ubicom32-* \
432 | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
433 | vax-* \
434 | we32k-* \
435 | x86-* | x86_64-* | xc16x-* | xps100-* \
436 | xstormy16-* | xtensa*-* \
437 | ymp-* \
438 | z8k-* | z80-*)
439 ;;
440 # Recognize the basic CPU types without company name, with glob match.
441 xtensa*)
442 basic_machine=$basic_machine-unknown
443 ;;
444 # Recognize the various machine names and aliases which stand
445 # for a CPU type and a company and sometimes even an OS.
446 386bsd)
447 basic_machine=i386-unknown
448 os=-bsd
449 ;;
450 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
451 basic_machine=m68000-att
452 ;;
453 3b*)
454 basic_machine=we32k-att
455 ;;
456 a29khif)
457 basic_machine=a29k-amd
458 os=-udi
459 ;;
460 abacus)
461 basic_machine=abacus-unknown
462 ;;
463 adobe68k)
464 basic_machine=m68010-adobe
465 os=-scout
466 ;;
467 alliant | fx80)
468 basic_machine=fx80-alliant
469 ;;
470 altos | altos3068)
471 basic_machine=m68k-altos
472 ;;
473 am29k)
474 basic_machine=a29k-none
475 os=-bsd
476 ;;
477 amd64)
478 basic_machine=x86_64-pc
479 ;;
480 amd64-*)
481 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
482 ;;
483 amdahl)
484 basic_machine=580-amdahl
485 os=-sysv
486 ;;
487 amiga | amiga-*)
488 basic_machine=m68k-unknown
489 ;;
490 amigaos | amigados)
491 basic_machine=m68k-unknown
492 os=-amigaos
493 ;;
494 amigaunix | amix)
495 basic_machine=m68k-unknown
496 os=-sysv4
497 ;;
498 apollo68)
499 basic_machine=m68k-apollo
500 os=-sysv
501 ;;
502 apollo68bsd)
503 basic_machine=m68k-apollo
504 os=-bsd
505 ;;
506 aros)
507 basic_machine=i386-pc
508 os=-aros
509 ;;
510 aux)
511 basic_machine=m68k-apple
512 os=-aux
513 ;;
514 balance)
515 basic_machine=ns32k-sequent
516 os=-dynix
517 ;;
518 blackfin)
519 basic_machine=bfin-unknown
520 os=-linux
521 ;;
522 blackfin-*)
523 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
524 os=-linux
525 ;;
526 bluegene*)
527 basic_machine=powerpc-ibm
528 os=-cnk
529 ;;
530 c54x-*)
531 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
532 ;;
533 c55x-*)
534 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
535 ;;
536 c6x-*)
537 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
538 ;;
539 c90)
540 basic_machine=c90-cray
541 os=-unicos
542 ;;
543 cegcc)
544 basic_machine=arm-unknown
545 os=-cegcc
546 ;;
547 convex-c1)
548 basic_machine=c1-convex
549 os=-bsd
550 ;;
551 convex-c2)
552 basic_machine=c2-convex
553 os=-bsd
554 ;;
555 convex-c32)
556 basic_machine=c32-convex
557 os=-bsd
558 ;;
559 convex-c34)
560 basic_machine=c34-convex
561 os=-bsd
562 ;;
563 convex-c38)
564 basic_machine=c38-convex
565 os=-bsd
566 ;;
567 cray | j90)
568 basic_machine=j90-cray
569 os=-unicos
570 ;;
571 craynv)
572 basic_machine=craynv-cray
573 os=-unicosmp
574 ;;
575 cr16 | cr16-*)
576 basic_machine=cr16-unknown
577 os=-elf
578 ;;
579 crds | unos)
580 basic_machine=m68k-crds
581 ;;
582 crisv32 | crisv32-* | etraxfs*)
583 basic_machine=crisv32-axis
584 ;;
585 cris | cris-* | etrax*)
586 basic_machine=cris-axis
587 ;;
588 crx)
589 basic_machine=crx-unknown
590 os=-elf
591 ;;
592 da30 | da30-*)
593 basic_machine=m68k-da30
594 ;;
595 decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
596 basic_machine=mips-dec
597 ;;
598 decsystem10* | dec10*)
599 basic_machine=pdp10-dec
600 os=-tops10
601 ;;
602 decsystem20* | dec20*)
603 basic_machine=pdp10-dec
604 os=-tops20
605 ;;
606 delta | 3300 | motorola-3300 | motorola-delta \
607 | 3300-motorola | delta-motorola)
608 basic_machine=m68k-motorola
609 ;;
610 delta88)
611 basic_machine=m88k-motorola
612 os=-sysv3
613 ;;
614 dicos)
615 basic_machine=i686-pc
616 os=-dicos
617 ;;
618 djgpp)
619 basic_machine=i586-pc
620 os=-msdosdjgpp
621 ;;
622 dpx20 | dpx20-*)
623 basic_machine=rs6000-bull
624 os=-bosx
625 ;;
626 dpx2* | dpx2*-bull)
627 basic_machine=m68k-bull
628 os=-sysv3
629 ;;
630 ebmon29k)
631 basic_machine=a29k-amd
632 os=-ebmon
633 ;;
634 elxsi)
635 basic_machine=elxsi-elxsi
636 os=-bsd
637 ;;
638 encore | umax | mmax)
639 basic_machine=ns32k-encore
640 ;;
641 es1800 | OSE68k | ose68k | ose | OSE)
642 basic_machine=m68k-ericsson
643 os=-ose
644 ;;
645 fx2800)
646 basic_machine=i860-alliant
647 ;;
648 genix)
649 basic_machine=ns32k-ns
650 ;;
651 gmicro)
652 basic_machine=tron-gmicro
653 os=-sysv
654 ;;
655 go32)
656 basic_machine=i386-pc
657 os=-go32
658 ;;
659 h3050r* | hiux*)
660 basic_machine=hppa1.1-hitachi
661 os=-hiuxwe2
662 ;;
663 h8300hms)
664 basic_machine=h8300-hitachi
665 os=-hms
666 ;;
667 h8300xray)
668 basic_machine=h8300-hitachi
669 os=-xray
670 ;;
671 h8500hms)
672 basic_machine=h8500-hitachi
673 os=-hms
674 ;;
675 harris)
676 basic_machine=m88k-harris
677 os=-sysv3
678 ;;
679 hp300-*)
680 basic_machine=m68k-hp
681 ;;
682 hp300bsd)
683 basic_machine=m68k-hp
684 os=-bsd
685 ;;
686 hp300hpux)
687 basic_machine=m68k-hp
688 os=-hpux
689 ;;
690 hp3k9[0-9][0-9] | hp9[0-9][0-9])
691 basic_machine=hppa1.0-hp
692 ;;
693 hp9k2[0-9][0-9] | hp9k31[0-9])
694 basic_machine=m68000-hp
695 ;;
696 hp9k3[2-9][0-9])
697 basic_machine=m68k-hp
698 ;;
699 hp9k6[0-9][0-9] | hp6[0-9][0-9])
700 basic_machine=hppa1.0-hp
701 ;;
702 hp9k7[0-79][0-9] | hp7[0-79][0-9])
703 basic_machine=hppa1.1-hp
704 ;;
705 hp9k78[0-9] | hp78[0-9])
706 # FIXME: really hppa2.0-hp
707 basic_machine=hppa1.1-hp
708 ;;
709 hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
710 # FIXME: really hppa2.0-hp
711 basic_machine=hppa1.1-hp
712 ;;
713 hp9k8[0-9][13679] | hp8[0-9][13679])
714 basic_machine=hppa1.1-hp
715 ;;
716 hp9k8[0-9][0-9] | hp8[0-9][0-9])
717 basic_machine=hppa1.0-hp
718 ;;
719 hppa-next)
720 os=-nextstep3
721 ;;
722 hppaosf)
723 basic_machine=hppa1.1-hp
724 os=-osf
725 ;;
726 hppro)
727 basic_machine=hppa1.1-hp
728 os=-proelf
729 ;;
730 i370-ibm* | ibm*)
731 basic_machine=i370-ibm
732 ;;
733 i*86v32)
734 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
735 os=-sysv32
736 ;;
737 i*86v4*)
738 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
739 os=-sysv4
740 ;;
741 i*86v)
742 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
743 os=-sysv
744 ;;
745 i*86sol2)
746 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
747 os=-solaris2
748 ;;
749 i386mach)
750 basic_machine=i386-mach
751 os=-mach
752 ;;
753 i386-vsta | vsta)
754 basic_machine=i386-unknown
755 os=-vsta
756 ;;
757 iris | iris4d)
758 basic_machine=mips-sgi
759 case $os in
760 -irix*)
761 ;;
762 *)
763 os=-irix4
764 ;;
765 esac
766 ;;
767 isi68 | isi)
768 basic_machine=m68k-isi
769 os=-sysv
770 ;;
771 m68knommu)
772 basic_machine=m68k-unknown
773 os=-linux
774 ;;
775 m68knommu-*)
776 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
777 os=-linux
778 ;;
779 m88k-omron*)
780 basic_machine=m88k-omron
781 ;;
782 magnum | m3230)
783 basic_machine=mips-mips
784 os=-sysv
785 ;;
786 merlin)
787 basic_machine=ns32k-utek
788 os=-sysv
789 ;;
790 microblaze)
791 basic_machine=microblaze-xilinx
792 ;;
793 mingw32)
794 basic_machine=i386-pc
795 os=-mingw32
796 ;;
797 mingw32ce)
798 basic_machine=arm-unknown
799 os=-mingw32ce
800 ;;
801 miniframe)
802 basic_machine=m68000-convergent
803 ;;
804 *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
805 basic_machine=m68k-atari
806 os=-mint
807 ;;
808 mips3*-*)
809 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
810 ;;
811 mips3*)
812 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
813 ;;
814 monitor)
815 basic_machine=m68k-rom68k
816 os=-coff
817 ;;
818 morphos)
819 basic_machine=powerpc-unknown
820 os=-morphos
821 ;;
822 msdos)
823 basic_machine=i386-pc
824 os=-msdos
825 ;;
826 ms1-*)
827 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
828 ;;
829 msys)
830 basic_machine=i386-pc
831 os=-msys
832 ;;
833 mvs)
834 basic_machine=i370-ibm
835 os=-mvs
836 ;;
837 nacl)
838 basic_machine=le32-unknown
839 os=-nacl
840 ;;
841 ncr3000)
842 basic_machine=i486-ncr
843 os=-sysv4
844 ;;
845 netbsd386)
846 basic_machine=i386-unknown
847 os=-netbsd
848 ;;
849 netwinder)
850 basic_machine=armv4l-rebel
851 os=-linux
852 ;;
853 news | news700 | news800 | news900)
854 basic_machine=m68k-sony
855 os=-newsos
856 ;;
857 news1000)
858 basic_machine=m68030-sony
859 os=-newsos
860 ;;
861 news-3600 | risc-news)
862 basic_machine=mips-sony
863 os=-newsos
864 ;;
865 necv70)
866 basic_machine=v70-nec
867 os=-sysv
868 ;;
869 next | m*-next )
870 basic_machine=m68k-next
871 case $os in
872 -nextstep* )
873 ;;
874 -ns2*)
875 os=-nextstep2
876 ;;
877 *)
878 os=-nextstep3
879 ;;
880 esac
881 ;;
882 nh3000)
883 basic_machine=m68k-harris
884 os=-cxux
885 ;;
886 nh[45]000)
887 basic_machine=m88k-harris
888 os=-cxux
889 ;;
890 nindy960)
891 basic_machine=i960-intel
892 os=-nindy
893 ;;
894 mon960)
895 basic_machine=i960-intel
896 os=-mon960
897 ;;
898 nonstopux)
899 basic_machine=mips-compaq
900 os=-nonstopux
901 ;;
902 np1)
903 basic_machine=np1-gould
904 ;;
905 neo-tandem)
906 basic_machine=neo-tandem
907 ;;
908 nse-tandem)
909 basic_machine=nse-tandem
910 ;;
911 nsr-tandem)
912 basic_machine=nsr-tandem
913 ;;
914 op50n-* | op60c-*)
915 basic_machine=hppa1.1-oki
916 os=-proelf
917 ;;
918 openrisc | openrisc-*)
919 basic_machine=or32-unknown
920 ;;
921 os400)
922 basic_machine=powerpc-ibm
923 os=-os400
924 ;;
925 OSE68000 | ose68000)
926 basic_machine=m68000-ericsson
927 os=-ose
928 ;;
929 os68k)
930 basic_machine=m68k-none
931 os=-os68k
932 ;;
933 pa-hitachi)
934 basic_machine=hppa1.1-hitachi
935 os=-hiuxwe2
936 ;;
937 paragon)
938 basic_machine=i860-intel
939 os=-osf
940 ;;
941 parisc)
942 basic_machine=hppa-unknown
943 os=-linux
944 ;;
945 parisc-*)
946 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
947 os=-linux
948 ;;
949 pbd)
950 basic_machine=sparc-tti
951 ;;
952 pbb)
953 basic_machine=m68k-tti
954 ;;
955 pc532 | pc532-*)
956 basic_machine=ns32k-pc532
957 ;;
958 pc98)
959 basic_machine=i386-pc
960 ;;
961 pc98-*)
962 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
963 ;;
964 pentium | p5 | k5 | k6 | nexgen | viac3)
965 basic_machine=i586-pc
966 ;;
967 pentiumpro | p6 | 6x86 | athlon | athlon_*)
968 basic_machine=i686-pc
969 ;;
970 pentiumii | pentium2 | pentiumiii | pentium3)
971 basic_machine=i686-pc
972 ;;
973 pentium4)
974 basic_machine=i786-pc
975 ;;
976 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
977 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
978 ;;
979 pentiumpro-* | p6-* | 6x86-* | athlon-*)
980 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
981 ;;
982 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
983 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
984 ;;
985 pentium4-*)
986 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
987 ;;
988 pn)
989 basic_machine=pn-gould
990 ;;
991 power) basic_machine=power-ibm
992 ;;
993 ppc | ppcbe) basic_machine=powerpc-unknown
994 ;;
995 ppc-* | ppcbe-*)
996 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
997 ;;
998 ppcle | powerpclittle | ppc-le | powerpc-little)
999 basic_machine=powerpcle-unknown
1000 ;;
1001 ppcle-* | powerpclittle-*)
1002 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1003 ;;
1004 ppc64) basic_machine=powerpc64-unknown
1005 ;;
1006 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1007 ;;
1008 ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1009 basic_machine=powerpc64le-unknown
1010 ;;
1011 ppc64le-* | powerpc64little-*)
1012 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1013 ;;
1014 ps2)
1015 basic_machine=i386-ibm
1016 ;;
1017 pw32)
1018 basic_machine=i586-unknown
1019 os=-pw32
1020 ;;
1021 rdos)
1022 basic_machine=i386-pc
1023 os=-rdos
1024 ;;
1025 rom68k)
1026 basic_machine=m68k-rom68k
1027 os=-coff
1028 ;;
1029 rm[46]00)
1030 basic_machine=mips-siemens
1031 ;;
1032 rtpc | rtpc-*)
1033 basic_machine=romp-ibm
1034 ;;
1035 s390 | s390-*)
1036 basic_machine=s390-ibm
1037 ;;
1038 s390x | s390x-*)
1039 basic_machine=s390x-ibm
1040 ;;
1041 sa29200)
1042 basic_machine=a29k-amd
1043 os=-udi
1044 ;;
1045 sb1)
1046 basic_machine=mipsisa64sb1-unknown
1047 ;;
1048 sb1el)
1049 basic_machine=mipsisa64sb1el-unknown
1050 ;;
1051 sde)
1052 basic_machine=mipsisa32-sde
1053 os=-elf
1054 ;;
1055 sei)
1056 basic_machine=mips-sei
1057 os=-seiux
1058 ;;
1059 sequent)
1060 basic_machine=i386-sequent
1061 ;;
1062 sh)
1063 basic_machine=sh-hitachi
1064 os=-hms
1065 ;;
1066 sh5el)
1067 basic_machine=sh5le-unknown
1068 ;;
1069 sh64)
1070 basic_machine=sh64-unknown
1071 ;;
1072 sparclite-wrs | simso-wrs)
1073 basic_machine=sparclite-wrs
1074 os=-vxworks
1075 ;;
1076 sps7)
1077 basic_machine=m68k-bull
1078 os=-sysv2
1079 ;;
1080 spur)
1081 basic_machine=spur-unknown
1082 ;;
1083 st2000)
1084 basic_machine=m68k-tandem
1085 ;;
1086 stratus)
1087 basic_machine=i860-stratus
1088 os=-sysv4
1089 ;;
1090 strongarm-* | thumb-*)
1091 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1092 ;;
1093 sun2)
1094 basic_machine=m68000-sun
1095 ;;
1096 sun2os3)
1097 basic_machine=m68000-sun
1098 os=-sunos3
1099 ;;
1100 sun2os4)
1101 basic_machine=m68000-sun
1102 os=-sunos4
1103 ;;
1104 sun3os3)
1105 basic_machine=m68k-sun
1106 os=-sunos3
1107 ;;
1108 sun3os4)
1109 basic_machine=m68k-sun
1110 os=-sunos4
1111 ;;
1112 sun4os3)
1113 basic_machine=sparc-sun
1114 os=-sunos3
1115 ;;
1116 sun4os4)
1117 basic_machine=sparc-sun
1118 os=-sunos4
1119 ;;
1120 sun4sol2)
1121 basic_machine=sparc-sun
1122 os=-solaris2
1123 ;;
1124 sun3 | sun3-*)
1125 basic_machine=m68k-sun
1126 ;;
1127 sun4)
1128 basic_machine=sparc-sun
1129 ;;
1130 sun386 | sun386i | roadrunner)
1131 basic_machine=i386-sun
1132 ;;
1133 sv1)
1134 basic_machine=sv1-cray
1135 os=-unicos
1136 ;;
1137 symmetry)
1138 basic_machine=i386-sequent
1139 os=-dynix
1140 ;;
1141 t3e)
1142 basic_machine=alphaev5-cray
1143 os=-unicos
1144 ;;
1145 t90)
1146 basic_machine=t90-cray
1147 os=-unicos
1148 ;;
1149 tile*)
1150 basic_machine=$basic_machine-unknown
1151 os=-linux-gnu
1152 ;;
1153 tx39)
1154 basic_machine=mipstx39-unknown
1155 ;;
1156 tx39el)
1157 basic_machine=mipstx39el-unknown
1158 ;;
1159 toad1)
1160 basic_machine=pdp10-xkl
1161 os=-tops20
1162 ;;
1163 tower | tower-32)
1164 basic_machine=m68k-ncr
1165 ;;
1166 tpf)
1167 basic_machine=s390x-ibm
1168 os=-tpf
1169 ;;
1170 udi29k)
1171 basic_machine=a29k-amd
1172 os=-udi
1173 ;;
1174 ultra3)
1175 basic_machine=a29k-nyu
1176 os=-sym1
1177 ;;
1178 v810 | necv810)
1179 basic_machine=v810-nec
1180 os=-none
1181 ;;
1182 vaxv)
1183 basic_machine=vax-dec
1184 os=-sysv
1185 ;;
1186 vms)
1187 basic_machine=vax-dec
1188 os=-vms
1189 ;;
1190 vpp*|vx|vx-*)
1191 basic_machine=f301-fujitsu
1192 ;;
1193 vxworks960)
1194 basic_machine=i960-wrs
1195 os=-vxworks
1196 ;;
1197 vxworks68)
1198 basic_machine=m68k-wrs
1199 os=-vxworks
1200 ;;
1201 vxworks29k)
1202 basic_machine=a29k-wrs
1203 os=-vxworks
1204 ;;
1205 w65*)
1206 basic_machine=w65-wdc
1207 os=-none
1208 ;;
1209 w89k-*)
1210 basic_machine=hppa1.1-winbond
1211 os=-proelf
1212 ;;
1213 xbox)
1214 basic_machine=i686-pc
1215 os=-mingw32
1216 ;;
1217 xps | xps100)
1218 basic_machine=xps100-honeywell
1219 ;;
1220 xscale-* | xscalee[bl]-*)
1221 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1222 ;;
1223 ymp)
1224 basic_machine=ymp-cray
1225 os=-unicos
1226 ;;
1227 z8k-*-coff)
1228 basic_machine=z8k-unknown
1229 os=-sim
1230 ;;
1231 z80-*-coff)
1232 basic_machine=z80-unknown
1233 os=-sim
1234 ;;
1235 none)
1236 basic_machine=none-none
1237 os=-none
1238 ;;
1239
1240 # Here we handle the default manufacturer of certain CPU types. It is in
1241 # some cases the only manufacturer, in others, it is the most popular.
1242 w89k)
1243 basic_machine=hppa1.1-winbond
1244 ;;
1245 op50n)
1246 basic_machine=hppa1.1-oki
1247 ;;
1248 op60c)
1249 basic_machine=hppa1.1-oki
1250 ;;
1251 romp)
1252 basic_machine=romp-ibm
1253 ;;
1254 mmix)
1255 basic_machine=mmix-knuth
1256 ;;
1257 rs6000)
1258 basic_machine=rs6000-ibm
1259 ;;
1260 vax)
1261 basic_machine=vax-dec
1262 ;;
1263 pdp10)
1264 # there are many clones, so DEC is not a safe bet
1265 basic_machine=pdp10-unknown
1266 ;;
1267 pdp11)
1268 basic_machine=pdp11-dec
1269 ;;
1270 we32k)
1271 basic_machine=we32k-att
1272 ;;
1273 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1274 basic_machine=sh-unknown
1275 ;;
1276 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1277 basic_machine=sparc-sun
1278 ;;
1279 cydra)
1280 basic_machine=cydra-cydrome
1281 ;;
1282 orion)
1283 basic_machine=orion-highlevel
1284 ;;
1285 orion105)
1286 basic_machine=clipper-highlevel
1287 ;;
1288 mac | mpw | mac-mpw)
1289 basic_machine=m68k-apple
1290 ;;
1291 pmac | pmac-mpw)
1292 basic_machine=powerpc-apple
1293 ;;
1294 *-unknown)
1295 # Make sure to match an already-canonicalized machine name.
1296 ;;
1297 *)
1298 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1299 exit 1
1300 ;;
1301 esac
1302
1303 # Here we canonicalize certain aliases for manufacturers.
1304 case $basic_machine in
1305 *-digital*)
1306 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1307 ;;
1308 *-commodore*)
1309 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1310 ;;
1311 *)
1312 ;;
1313 esac
1314
1315 # Decode manufacturer-specific aliases for certain operating systems.
1316
1317 if [ x"$os" != x"" ]
1318 then
1319 case $os in
1320 # First match some system type aliases
1321 # that might get confused with valid system types.
1322 # -solaris* is a basic system type, with this one exception.
1323 -auroraux)
1324 os=-auroraux
1325 ;;
1326 -solaris1 | -solaris1.*)
1327 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1328 ;;
1329 -solaris)
1330 os=-solaris2
1331 ;;
1332 -svr4*)
1333 os=-sysv4
1334 ;;
1335 -unixware*)
1336 os=-sysv4.2uw
1337 ;;
1338 -gnu/linux*)
1339 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1340 ;;
1341 # First accept the basic system types.
1342 # The portable systems comes first.
1343 # Each alternative MUST END IN A *, to match a version number.
1344 # -sysv* is not here because it comes later, after sysvr4.
1345 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1346 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1347 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1348 | -sym* | -kopensolaris* \
1349 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1350 | -aos* | -aros* \
1351 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1352 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1353 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1354 | -openbsd* | -solidbsd* \
1355 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1356 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1357 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1358 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1359 | -chorusos* | -chorusrdb* | -cegcc* \
1360 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1361 | -mingw32* | -linux-gnu* | -linux-android* \
1362 | -linux-newlib* | -linux-uclibc* \
1363 | -uxpv* | -beos* | -mpeix* | -udk* \
1364 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1365 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1366 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1367 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1368 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1369 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1370 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1371 # Remember, each alternative MUST END IN *, to match a version number.
1372 ;;
1373 -qnx*)
1374 case $basic_machine in
1375 x86-* | i*86-*)
1376 ;;
1377 *)
1378 os=-nto$os
1379 ;;
1380 esac
1381 ;;
1382 -nto-qnx*)
1383 ;;
1384 -nto*)
1385 os=`echo $os | sed -e 's|nto|nto-qnx|'`
1386 ;;
1387 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1388 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1389 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1390 ;;
1391 -mac*)
1392 os=`echo $os | sed -e 's|mac|macos|'`
1393 ;;
1394 -linux-dietlibc)
1395 os=-linux-dietlibc
1396 ;;
1397 -linux*)
1398 os=`echo $os | sed -e 's|linux|linux-gnu|'`
1399 ;;
1400 -sunos5*)
1401 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1402 ;;
1403 -sunos6*)
1404 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1405 ;;
1406 -opened*)
1407 os=-openedition
1408 ;;
1409 -os400*)
1410 os=-os400
1411 ;;
1412 -wince*)
1413 os=-wince
1414 ;;
1415 -osfrose*)
1416 os=-osfrose
1417 ;;
1418 -osf*)
1419 os=-osf
1420 ;;
1421 -utek*)
1422 os=-bsd
1423 ;;
1424 -dynix*)
1425 os=-bsd
1426 ;;
1427 -acis*)
1428 os=-aos
1429 ;;
1430 -atheos*)
1431 os=-atheos
1432 ;;
1433 -syllable*)
1434 os=-syllable
1435 ;;
1436 -386bsd)
1437 os=-bsd
1438 ;;
1439 -ctix* | -uts*)
1440 os=-sysv
1441 ;;
1442 -nova*)
1443 os=-rtmk-nova
1444 ;;
1445 -ns2 )
1446 os=-nextstep2
1447 ;;
1448 -nsk*)
1449 os=-nsk
1450 ;;
1451 # Preserve the version number of sinix5.
1452 -sinix5.*)
1453 os=`echo $os | sed -e 's|sinix|sysv|'`
1454 ;;
1455 -sinix*)
1456 os=-sysv4
1457 ;;
1458 -tpf*)
1459 os=-tpf
1460 ;;
1461 -triton*)
1462 os=-sysv3
1463 ;;
1464 -oss*)
1465 os=-sysv3
1466 ;;
1467 -svr4)
1468 os=-sysv4
1469 ;;
1470 -svr3)
1471 os=-sysv3
1472 ;;
1473 -sysvr4)
1474 os=-sysv4
1475 ;;
1476 # This must come after -sysvr4.
1477 -sysv*)
1478 ;;
1479 -ose*)
1480 os=-ose
1481 ;;
1482 -es1800*)
1483 os=-ose
1484 ;;
1485 -xenix)
1486 os=-xenix
1487 ;;
1488 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1489 os=-mint
1490 ;;
1491 -aros*)
1492 os=-aros
1493 ;;
1494 -kaos*)
1495 os=-kaos
1496 ;;
1497 -zvmoe)
1498 os=-zvmoe
1499 ;;
1500 -dicos*)
1501 os=-dicos
1502 ;;
1503 -nacl*)
1504 ;;
1505 -none)
1506 ;;
1507 *)
1508 # Get rid of the `-' at the beginning of $os.
1509 os=`echo $os | sed 's/[^-]*-//'`
1510 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1511 exit 1
1512 ;;
1513 esac
1514 else
1515
1516 # Here we handle the default operating systems that come with various machines.
1517 # The value should be what the vendor currently ships out the door with their
1518 # machine or put another way, the most popular os provided with the machine.
1519
1520 # Note that if you're going to try to match "-MANUFACTURER" here (say,
1521 # "-sun"), then you have to tell the case statement up towards the top
1522 # that MANUFACTURER isn't an operating system. Otherwise, code above
1523 # will signal an error saying that MANUFACTURER isn't an operating
1524 # system, and we'll never get to this point.
1525
1526 case $basic_machine in
1527 score-*)
1528 os=-elf
1529 ;;
1530 spu-*)
1531 os=-elf
1532 ;;
1533 *-acorn)
1534 os=-riscix1.2
1535 ;;
1536 arm*-rebel)
1537 os=-linux
1538 ;;
1539 arm*-semi)
1540 os=-aout
1541 ;;
1542 c4x-* | tic4x-*)
1543 os=-coff
1544 ;;
1545 hexagon-*)
1546 os=-elf
1547 ;;
1548 tic54x-*)
1549 os=-coff
1550 ;;
1551 tic55x-*)
1552 os=-coff
1553 ;;
1554 tic6x-*)
1555 os=-coff
1556 ;;
1557 # This must come before the *-dec entry.
1558 pdp10-*)
1559 os=-tops20
1560 ;;
1561 pdp11-*)
1562 os=-none
1563 ;;
1564 *-dec | vax-*)
1565 os=-ultrix4.2
1566 ;;
1567 m68*-apollo)
1568 os=-domain
1569 ;;
1570 i386-sun)
1571 os=-sunos4.0.2
1572 ;;
1573 m68000-sun)
1574 os=-sunos3
1575 ;;
1576 m68*-cisco)
1577 os=-aout
1578 ;;
1579 mep-*)
1580 os=-elf
1581 ;;
1582 mips*-cisco)
1583 os=-elf
1584 ;;
1585 mips*-*)
1586 os=-elf
1587 ;;
1588 or32-*)
1589 os=-coff
1590 ;;
1591 *-tti) # must be before sparc entry or we get the wrong os.
1592 os=-sysv3
1593 ;;
1594 sparc-* | *-sun)
1595 os=-sunos4.1.1
1596 ;;
1597 *-be)
1598 os=-beos
1599 ;;
1600 *-haiku)
1601 os=-haiku
1602 ;;
1603 *-ibm)
1604 os=-aix
1605 ;;
1606 *-knuth)
1607 os=-mmixware
1608 ;;
1609 *-wec)
1610 os=-proelf
1611 ;;
1612 *-winbond)
1613 os=-proelf
1614 ;;
1615 *-oki)
1616 os=-proelf
1617 ;;
1618 *-hp)
1619 os=-hpux
1620 ;;
1621 *-hitachi)
1622 os=-hiux
1623 ;;
1624 i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1625 os=-sysv
1626 ;;
1627 *-cbm)
1628 os=-amigaos
1629 ;;
1630 *-dg)
1631 os=-dgux
1632 ;;
1633 *-dolphin)
1634 os=-sysv3
1635 ;;
1636 m68k-ccur)
1637 os=-rtu
1638 ;;
1639 m88k-omron*)
1640 os=-luna
1641 ;;
1642 *-next )
1643 os=-nextstep
1644 ;;
1645 *-sequent)
1646 os=-ptx
1647 ;;
1648 *-crds)
1649 os=-unos
1650 ;;
1651 *-ns)
1652 os=-genix
1653 ;;
1654 i370-*)
1655 os=-mvs
1656 ;;
1657 *-next)
1658 os=-nextstep3
1659 ;;
1660 *-gould)
1661 os=-sysv
1662 ;;
1663 *-highlevel)
1664 os=-bsd
1665 ;;
1666 *-encore)
1667 os=-bsd
1668 ;;
1669 *-sgi)
1670 os=-irix
1671 ;;
1672 *-siemens)
1673 os=-sysv4
1674 ;;
1675 *-masscomp)
1676 os=-rtu
1677 ;;
1678 f30[01]-fujitsu | f700-fujitsu)
1679 os=-uxpv
1680 ;;
1681 *-rom68k)
1682 os=-coff
1683 ;;
1684 *-*bug)
1685 os=-coff
1686 ;;
1687 *-apple)
1688 os=-macos
1689 ;;
1690 *-atari*)
1691 os=-mint
1692 ;;
1693 *)
1694 os=-none
1695 ;;
1696 esac
1697 fi
1698
1699 # Here we handle the case where we know the os, and the CPU type, but not the
1700 # manufacturer. We pick the logical manufacturer.
1701 vendor=unknown
1702 case $basic_machine in
1703 *-unknown)
1704 case $os in
1705 -riscix*)
1706 vendor=acorn
1707 ;;
1708 -sunos*)
1709 vendor=sun
1710 ;;
1711 -cnk*|-aix*)
1712 vendor=ibm
1713 ;;
1714 -beos*)
1715 vendor=be
1716 ;;
1717 -hpux*)
1718 vendor=hp
1719 ;;
1720 -mpeix*)
1721 vendor=hp
1722 ;;
1723 -hiux*)
1724 vendor=hitachi
1725 ;;
1726 -unos*)
1727 vendor=crds
1728 ;;
1729 -dgux*)
1730 vendor=dg
1731 ;;
1732 -luna*)
1733 vendor=omron
1734 ;;
1735 -genix*)
1736 vendor=ns
1737 ;;
1738 -mvs* | -opened*)
1739 vendor=ibm
1740 ;;
1741 -os400*)
1742 vendor=ibm
1743 ;;
1744 -ptx*)
1745 vendor=sequent
1746 ;;
1747 -tpf*)
1748 vendor=ibm
1749 ;;
1750 -vxsim* | -vxworks* | -windiss*)
1751 vendor=wrs
1752 ;;
1753 -aux*)
1754 vendor=apple
1755 ;;
1756 -hms*)
1757 vendor=hitachi
1758 ;;
1759 -mpw* | -macos*)
1760 vendor=apple
1761 ;;
1762 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1763 vendor=atari
1764 ;;
1765 -vos*)
1766 vendor=stratus
1767 ;;
1768 esac
1769 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1770 ;;
1771 esac
1772
1773 echo $basic_machine$os
1774 exit
1775
1776 # Local variables:
1777 # eval: (add-hook 'write-file-hooks 'time-stamp)
1778 # time-stamp-start: "timestamp='"
1779 # time-stamp-format: "%:y-%02m-%02d"
1780 # time-stamp-end: "'"
1781 # End:
0 #! /bin/sh
1 # depcomp - compile a program generating dependencies as side-effects
2
3 scriptversion=2012-03-27.16; # UTC
4
5 # Copyright (C) 1999-2012 Free Software Foundation, Inc.
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
10 # any later version.
11
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that program.
24
25 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
26
27 case $1 in
28 '')
29 echo "$0: No command. Try '$0 --help' for more information." 1>&2
30 exit 1;
31 ;;
32 -h | --h*)
33 cat <<\EOF
34 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
35
36 Run PROGRAMS ARGS to compile a file, generating dependencies
37 as side-effects.
38
39 Environment variables:
40 depmode Dependency tracking mode.
41 source Source file read by 'PROGRAMS ARGS'.
42 object Object file output by 'PROGRAMS ARGS'.
43 DEPDIR directory where to store dependencies.
44 depfile Dependency file to output.
45 tmpdepfile Temporary file to use when outputting dependencies.
46 libtool Whether libtool is used (yes/no).
47
48 Report bugs to <bug-automake@gnu.org>.
49 EOF
50 exit $?
51 ;;
52 -v | --v*)
53 echo "depcomp $scriptversion"
54 exit $?
55 ;;
56 esac
57
58 # A tabulation character.
59 tab=' '
60 # A newline character.
61 nl='
62 '
63
64 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
65 echo "depcomp: Variables source, object and depmode must be set" 1>&2
66 exit 1
67 fi
68
69 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
70 depfile=${depfile-`echo "$object" |
71 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
72 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
73
74 rm -f "$tmpdepfile"
75
76 # Some modes work just like other modes, but use different flags. We
77 # parameterize here, but still list the modes in the big case below,
78 # to make depend.m4 easier to write. Note that we *cannot* use a case
79 # here, because this file can only contain one case statement.
80 if test "$depmode" = hp; then
81 # HP compiler uses -M and no extra arg.
82 gccflag=-M
83 depmode=gcc
84 fi
85
86 if test "$depmode" = dashXmstdout; then
87 # This is just like dashmstdout with a different argument.
88 dashmflag=-xM
89 depmode=dashmstdout
90 fi
91
92 cygpath_u="cygpath -u -f -"
93 if test "$depmode" = msvcmsys; then
94 # This is just like msvisualcpp but w/o cygpath translation.
95 # Just convert the backslash-escaped backslashes to single forward
96 # slashes to satisfy depend.m4
97 cygpath_u='sed s,\\\\,/,g'
98 depmode=msvisualcpp
99 fi
100
101 if test "$depmode" = msvc7msys; then
102 # This is just like msvc7 but w/o cygpath translation.
103 # Just convert the backslash-escaped backslashes to single forward
104 # slashes to satisfy depend.m4
105 cygpath_u='sed s,\\\\,/,g'
106 depmode=msvc7
107 fi
108
109 if test "$depmode" = xlc; then
110 # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
111 gccflag=-qmakedep=gcc,-MF
112 depmode=gcc
113 fi
114
115 case "$depmode" in
116 gcc3)
117 ## gcc 3 implements dependency tracking that does exactly what
118 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
119 ## it if -MD -MP comes after the -MF stuff. Hmm.
120 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
121 ## the command line argument order; so add the flags where they
122 ## appear in depend2.am. Note that the slowdown incurred here
123 ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
124 for arg
125 do
126 case $arg in
127 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
128 *) set fnord "$@" "$arg" ;;
129 esac
130 shift # fnord
131 shift # $arg
132 done
133 "$@"
134 stat=$?
135 if test $stat -eq 0; then :
136 else
137 rm -f "$tmpdepfile"
138 exit $stat
139 fi
140 mv "$tmpdepfile" "$depfile"
141 ;;
142
143 gcc)
144 ## There are various ways to get dependency output from gcc. Here's
145 ## why we pick this rather obscure method:
146 ## - Don't want to use -MD because we'd like the dependencies to end
147 ## up in a subdir. Having to rename by hand is ugly.
148 ## (We might end up doing this anyway to support other compilers.)
149 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
150 ## -MM, not -M (despite what the docs say).
151 ## - Using -M directly means running the compiler twice (even worse
152 ## than renaming).
153 if test -z "$gccflag"; then
154 gccflag=-MD,
155 fi
156 "$@" -Wp,"$gccflag$tmpdepfile"
157 stat=$?
158 if test $stat -eq 0; then :
159 else
160 rm -f "$tmpdepfile"
161 exit $stat
162 fi
163 rm -f "$depfile"
164 echo "$object : \\" > "$depfile"
165 alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
166 ## The second -e expression handles DOS-style file names with drive letters.
167 sed -e 's/^[^:]*: / /' \
168 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
169 ## This next piece of magic avoids the "deleted header file" problem.
170 ## The problem is that when a header file which appears in a .P file
171 ## is deleted, the dependency causes make to die (because there is
172 ## typically no way to rebuild the header). We avoid this by adding
173 ## dummy dependencies for each header file. Too bad gcc doesn't do
174 ## this for us directly.
175 tr ' ' "$nl" < "$tmpdepfile" |
176 ## Some versions of gcc put a space before the ':'. On the theory
177 ## that the space means something, we add a space to the output as
178 ## well. hp depmode also adds that space, but also prefixes the VPATH
179 ## to the object. Take care to not repeat it in the output.
180 ## Some versions of the HPUX 10.20 sed can't process this invocation
181 ## correctly. Breaking it into two sed invocations is a workaround.
182 sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
183 | sed -e 's/$/ :/' >> "$depfile"
184 rm -f "$tmpdepfile"
185 ;;
186
187 hp)
188 # This case exists only to let depend.m4 do its work. It works by
189 # looking at the text of this script. This case will never be run,
190 # since it is checked for above.
191 exit 1
192 ;;
193
194 sgi)
195 if test "$libtool" = yes; then
196 "$@" "-Wp,-MDupdate,$tmpdepfile"
197 else
198 "$@" -MDupdate "$tmpdepfile"
199 fi
200 stat=$?
201 if test $stat -eq 0; then :
202 else
203 rm -f "$tmpdepfile"
204 exit $stat
205 fi
206 rm -f "$depfile"
207
208 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
209 echo "$object : \\" > "$depfile"
210
211 # Clip off the initial element (the dependent). Don't try to be
212 # clever and replace this with sed code, as IRIX sed won't handle
213 # lines with more than a fixed number of characters (4096 in
214 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
215 # the IRIX cc adds comments like '#:fec' to the end of the
216 # dependency line.
217 tr ' ' "$nl" < "$tmpdepfile" \
218 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
219 tr "$nl" ' ' >> "$depfile"
220 echo >> "$depfile"
221
222 # The second pass generates a dummy entry for each header file.
223 tr ' ' "$nl" < "$tmpdepfile" \
224 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
225 >> "$depfile"
226 else
227 # The sourcefile does not contain any dependencies, so just
228 # store a dummy comment line, to avoid errors with the Makefile
229 # "include basename.Plo" scheme.
230 echo "#dummy" > "$depfile"
231 fi
232 rm -f "$tmpdepfile"
233 ;;
234
235 xlc)
236 # This case exists only to let depend.m4 do its work. It works by
237 # looking at the text of this script. This case will never be run,
238 # since it is checked for above.
239 exit 1
240 ;;
241
242 aix)
243 # The C for AIX Compiler uses -M and outputs the dependencies
244 # in a .u file. In older versions, this file always lives in the
245 # current directory. Also, the AIX compiler puts '$object:' at the
246 # start of each line; $object doesn't have directory information.
247 # Version 6 uses the directory in both cases.
248 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
249 test "x$dir" = "x$object" && dir=
250 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
251 if test "$libtool" = yes; then
252 tmpdepfile1=$dir$base.u
253 tmpdepfile2=$base.u
254 tmpdepfile3=$dir.libs/$base.u
255 "$@" -Wc,-M
256 else
257 tmpdepfile1=$dir$base.u
258 tmpdepfile2=$dir$base.u
259 tmpdepfile3=$dir$base.u
260 "$@" -M
261 fi
262 stat=$?
263
264 if test $stat -eq 0; then :
265 else
266 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
267 exit $stat
268 fi
269
270 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
271 do
272 test -f "$tmpdepfile" && break
273 done
274 if test -f "$tmpdepfile"; then
275 # Each line is of the form 'foo.o: dependent.h'.
276 # Do two passes, one to just change these to
277 # '$object: dependent.h' and one to simply 'dependent.h:'.
278 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
279 sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
280 else
281 # The sourcefile does not contain any dependencies, so just
282 # store a dummy comment line, to avoid errors with the Makefile
283 # "include basename.Plo" scheme.
284 echo "#dummy" > "$depfile"
285 fi
286 rm -f "$tmpdepfile"
287 ;;
288
289 icc)
290 # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
291 # However on
292 # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
293 # ICC 7.0 will fill foo.d with something like
294 # foo.o: sub/foo.c
295 # foo.o: sub/foo.h
296 # which is wrong. We want
297 # sub/foo.o: sub/foo.c
298 # sub/foo.o: sub/foo.h
299 # sub/foo.c:
300 # sub/foo.h:
301 # ICC 7.1 will output
302 # foo.o: sub/foo.c sub/foo.h
303 # and will wrap long lines using '\':
304 # foo.o: sub/foo.c ... \
305 # sub/foo.h ... \
306 # ...
307 # tcc 0.9.26 (FIXME still under development at the moment of writing)
308 # will emit a similar output, but also prepend the continuation lines
309 # with horizontal tabulation characters.
310 "$@" -MD -MF "$tmpdepfile"
311 stat=$?
312 if test $stat -eq 0; then :
313 else
314 rm -f "$tmpdepfile"
315 exit $stat
316 fi
317 rm -f "$depfile"
318 # Each line is of the form 'foo.o: dependent.h',
319 # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
320 # Do two passes, one to just change these to
321 # '$object: dependent.h' and one to simply 'dependent.h:'.
322 sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
323 < "$tmpdepfile" > "$depfile"
324 sed '
325 s/[ '"$tab"'][ '"$tab"']*/ /g
326 s/^ *//
327 s/ *\\*$//
328 s/^[^:]*: *//
329 /^$/d
330 /:$/d
331 s/$/ :/
332 ' < "$tmpdepfile" >> "$depfile"
333 rm -f "$tmpdepfile"
334 ;;
335
336 hp2)
337 # The "hp" stanza above does not work with aCC (C++) and HP's ia64
338 # compilers, which have integrated preprocessors. The correct option
339 # to use with these is +Maked; it writes dependencies to a file named
340 # 'foo.d', which lands next to the object file, wherever that
341 # happens to be.
342 # Much of this is similar to the tru64 case; see comments there.
343 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
344 test "x$dir" = "x$object" && dir=
345 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
346 if test "$libtool" = yes; then
347 tmpdepfile1=$dir$base.d
348 tmpdepfile2=$dir.libs/$base.d
349 "$@" -Wc,+Maked
350 else
351 tmpdepfile1=$dir$base.d
352 tmpdepfile2=$dir$base.d
353 "$@" +Maked
354 fi
355 stat=$?
356 if test $stat -eq 0; then :
357 else
358 rm -f "$tmpdepfile1" "$tmpdepfile2"
359 exit $stat
360 fi
361
362 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
363 do
364 test -f "$tmpdepfile" && break
365 done
366 if test -f "$tmpdepfile"; then
367 sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
368 # Add 'dependent.h:' lines.
369 sed -ne '2,${
370 s/^ *//
371 s/ \\*$//
372 s/$/:/
373 p
374 }' "$tmpdepfile" >> "$depfile"
375 else
376 echo "#dummy" > "$depfile"
377 fi
378 rm -f "$tmpdepfile" "$tmpdepfile2"
379 ;;
380
381 tru64)
382 # The Tru64 compiler uses -MD to generate dependencies as a side
383 # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
384 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
385 # dependencies in 'foo.d' instead, so we check for that too.
386 # Subdirectories are respected.
387 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
388 test "x$dir" = "x$object" && dir=
389 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
390
391 if test "$libtool" = yes; then
392 # With Tru64 cc, shared objects can also be used to make a
393 # static library. This mechanism is used in libtool 1.4 series to
394 # handle both shared and static libraries in a single compilation.
395 # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
396 #
397 # With libtool 1.5 this exception was removed, and libtool now
398 # generates 2 separate objects for the 2 libraries. These two
399 # compilations output dependencies in $dir.libs/$base.o.d and
400 # in $dir$base.o.d. We have to check for both files, because
401 # one of the two compilations can be disabled. We should prefer
402 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
403 # automatically cleaned when .libs/ is deleted, while ignoring
404 # the former would cause a distcleancheck panic.
405 tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
406 tmpdepfile2=$dir$base.o.d # libtool 1.5
407 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
408 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
409 "$@" -Wc,-MD
410 else
411 tmpdepfile1=$dir$base.o.d
412 tmpdepfile2=$dir$base.d
413 tmpdepfile3=$dir$base.d
414 tmpdepfile4=$dir$base.d
415 "$@" -MD
416 fi
417
418 stat=$?
419 if test $stat -eq 0; then :
420 else
421 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
422 exit $stat
423 fi
424
425 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
426 do
427 test -f "$tmpdepfile" && break
428 done
429 if test -f "$tmpdepfile"; then
430 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
431 sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
432 else
433 echo "#dummy" > "$depfile"
434 fi
435 rm -f "$tmpdepfile"
436 ;;
437
438 msvc7)
439 if test "$libtool" = yes; then
440 showIncludes=-Wc,-showIncludes
441 else
442 showIncludes=-showIncludes
443 fi
444 "$@" $showIncludes > "$tmpdepfile"
445 stat=$?
446 grep -v '^Note: including file: ' "$tmpdepfile"
447 if test "$stat" = 0; then :
448 else
449 rm -f "$tmpdepfile"
450 exit $stat
451 fi
452 rm -f "$depfile"
453 echo "$object : \\" > "$depfile"
454 # The first sed program below extracts the file names and escapes
455 # backslashes for cygpath. The second sed program outputs the file
456 # name when reading, but also accumulates all include files in the
457 # hold buffer in order to output them again at the end. This only
458 # works with sed implementations that can handle large buffers.
459 sed < "$tmpdepfile" -n '
460 /^Note: including file: *\(.*\)/ {
461 s//\1/
462 s/\\/\\\\/g
463 p
464 }' | $cygpath_u | sort -u | sed -n '
465 s/ /\\ /g
466 s/\(.*\)/'"$tab"'\1 \\/p
467 s/.\(.*\) \\/\1:/
468 H
469 $ {
470 s/.*/'"$tab"'/
471 G
472 p
473 }' >> "$depfile"
474 rm -f "$tmpdepfile"
475 ;;
476
477 msvc7msys)
478 # This case exists only to let depend.m4 do its work. It works by
479 # looking at the text of this script. This case will never be run,
480 # since it is checked for above.
481 exit 1
482 ;;
483
484 #nosideeffect)
485 # This comment above is used by automake to tell side-effect
486 # dependency tracking mechanisms from slower ones.
487
488 dashmstdout)
489 # Important note: in order to support this mode, a compiler *must*
490 # always write the preprocessed file to stdout, regardless of -o.
491 "$@" || exit $?
492
493 # Remove the call to Libtool.
494 if test "$libtool" = yes; then
495 while test "X$1" != 'X--mode=compile'; do
496 shift
497 done
498 shift
499 fi
500
501 # Remove '-o $object'.
502 IFS=" "
503 for arg
504 do
505 case $arg in
506 -o)
507 shift
508 ;;
509 $object)
510 shift
511 ;;
512 *)
513 set fnord "$@" "$arg"
514 shift # fnord
515 shift # $arg
516 ;;
517 esac
518 done
519
520 test -z "$dashmflag" && dashmflag=-M
521 # Require at least two characters before searching for ':'
522 # in the target name. This is to cope with DOS-style filenames:
523 # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
524 "$@" $dashmflag |
525 sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
526 rm -f "$depfile"
527 cat < "$tmpdepfile" > "$depfile"
528 tr ' ' "$nl" < "$tmpdepfile" | \
529 ## Some versions of the HPUX 10.20 sed can't process this invocation
530 ## correctly. Breaking it into two sed invocations is a workaround.
531 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
532 rm -f "$tmpdepfile"
533 ;;
534
535 dashXmstdout)
536 # This case only exists to satisfy depend.m4. It is never actually
537 # run, as this mode is specially recognized in the preamble.
538 exit 1
539 ;;
540
541 makedepend)
542 "$@" || exit $?
543 # Remove any Libtool call
544 if test "$libtool" = yes; then
545 while test "X$1" != 'X--mode=compile'; do
546 shift
547 done
548 shift
549 fi
550 # X makedepend
551 shift
552 cleared=no eat=no
553 for arg
554 do
555 case $cleared in
556 no)
557 set ""; shift
558 cleared=yes ;;
559 esac
560 if test $eat = yes; then
561 eat=no
562 continue
563 fi
564 case "$arg" in
565 -D*|-I*)
566 set fnord "$@" "$arg"; shift ;;
567 # Strip any option that makedepend may not understand. Remove
568 # the object too, otherwise makedepend will parse it as a source file.
569 -arch)
570 eat=yes ;;
571 -*|$object)
572 ;;
573 *)
574 set fnord "$@" "$arg"; shift ;;
575 esac
576 done
577 obj_suffix=`echo "$object" | sed 's/^.*\././'`
578 touch "$tmpdepfile"
579 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
580 rm -f "$depfile"
581 # makedepend may prepend the VPATH from the source file name to the object.
582 # No need to regex-escape $object, excess matching of '.' is harmless.
583 sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
584 sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
585 ## Some versions of the HPUX 10.20 sed can't process this invocation
586 ## correctly. Breaking it into two sed invocations is a workaround.
587 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
588 rm -f "$tmpdepfile" "$tmpdepfile".bak
589 ;;
590
591 cpp)
592 # Important note: in order to support this mode, a compiler *must*
593 # always write the preprocessed file to stdout.
594 "$@" || exit $?
595
596 # Remove the call to Libtool.
597 if test "$libtool" = yes; then
598 while test "X$1" != 'X--mode=compile'; do
599 shift
600 done
601 shift
602 fi
603
604 # Remove '-o $object'.
605 IFS=" "
606 for arg
607 do
608 case $arg in
609 -o)
610 shift
611 ;;
612 $object)
613 shift
614 ;;
615 *)
616 set fnord "$@" "$arg"
617 shift # fnord
618 shift # $arg
619 ;;
620 esac
621 done
622
623 "$@" -E |
624 sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
625 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
626 sed '$ s: \\$::' > "$tmpdepfile"
627 rm -f "$depfile"
628 echo "$object : \\" > "$depfile"
629 cat < "$tmpdepfile" >> "$depfile"
630 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
631 rm -f "$tmpdepfile"
632 ;;
633
634 msvisualcpp)
635 # Important note: in order to support this mode, a compiler *must*
636 # always write the preprocessed file to stdout.
637 "$@" || exit $?
638
639 # Remove the call to Libtool.
640 if test "$libtool" = yes; then
641 while test "X$1" != 'X--mode=compile'; do
642 shift
643 done
644 shift
645 fi
646
647 IFS=" "
648 for arg
649 do
650 case "$arg" in
651 -o)
652 shift
653 ;;
654 $object)
655 shift
656 ;;
657 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
658 set fnord "$@"
659 shift
660 shift
661 ;;
662 *)
663 set fnord "$@" "$arg"
664 shift
665 shift
666 ;;
667 esac
668 done
669 "$@" -E 2>/dev/null |
670 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
671 rm -f "$depfile"
672 echo "$object : \\" > "$depfile"
673 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
674 echo "$tab" >> "$depfile"
675 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
676 rm -f "$tmpdepfile"
677 ;;
678
679 msvcmsys)
680 # This case exists only to let depend.m4 do its work. It works by
681 # looking at the text of this script. This case will never be run,
682 # since it is checked for above.
683 exit 1
684 ;;
685
686 none)
687 exec "$@"
688 ;;
689
690 *)
691 echo "Unknown depmode $depmode" 1>&2
692 exit 1
693 ;;
694 esac
695
696 exit 0
697
698 # Local Variables:
699 # mode: shell-script
700 # sh-indentation: 2
701 # eval: (add-hook 'write-file-hooks 'time-stamp)
702 # time-stamp-start: "scriptversion="
703 # time-stamp-format: "%:y-%02m-%02d.%02H"
704 # time-stamp-time-zone: "UTC"
705 # time-stamp-end: "; # UTC"
706 # End:
0 eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
1 & eval 'exec perl -wS "$0" $argv:q'
2 if 0;
3 # Convert git log output to ChangeLog format.
4
5 my $VERSION = '2009-10-30 13:46'; # UTC
6 # The definition above must lie within the first 8 lines in order
7 # for the Emacs time-stamp write hook (at end) to update it.
8 # If you change this file with Emacs, please let the write hook
9 # do its job. Otherwise, update this string manually.
10
11 # Copyright (C) 2008-2011 Free Software Foundation, Inc.
12
13 # This program is free software: you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation, either version 3 of the License, or
16 # (at your option) any later version.
17
18 # This program is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
22
23 # You should have received a copy of the GNU General Public License
24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
25
26 # Written by Jim Meyering
27
28 use strict;
29 use warnings;
30 use Getopt::Long;
31 use POSIX qw(strftime);
32
33 (my $ME = $0) =~ s|.*/||;
34
35 # use File::Coda; # http://meyering.net/code/Coda/
36 END {
37 defined fileno STDOUT or return;
38 close STDOUT and return;
39 warn "$ME: failed to close standard output: $!\n";
40 $? ||= 1;
41 }
42
43 sub usage ($)
44 {
45 my ($exit_code) = @_;
46 my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
47 if ($exit_code != 0)
48 {
49 print $STREAM "Try `$ME --help' for more information.\n";
50 }
51 else
52 {
53 print $STREAM <<EOF;
54 Usage: $ME [OPTIONS] [ARGS]
55
56 Convert git log output to ChangeLog format. If present, any ARGS
57 are passed to "git log". To avoid ARGS being parsed as options to
58 $ME, they may be preceded by '--'.
59
60 OPTIONS:
61
62 --since=DATE convert only the logs since DATE;
63 the default is to convert all log entries.
64 --format=FMT set format string for commit subject and body;
65 see 'man git-log' for the list of format metacharacters;
66 the default is '%s%n%b%n'
67
68 --help display this help and exit
69 --version output version information and exit
70
71 EXAMPLE:
72
73 $ME --since=2008-01-01 > ChangeLog
74 $ME -- -n 5 foo > last-5-commits-to-branch-foo
75
76 EOF
77 }
78 exit $exit_code;
79 }
80
81 # If the string $S is a well-behaved file name, simply return it.
82 # If it contains white space, quotes, etc., quote it, and return the new string.
83 sub shell_quote($)
84 {
85 my ($s) = @_;
86 if ($s =~ m![^\w+/.,-]!)
87 {
88 # Convert each single quote to '\''
89 $s =~ s/\'/\'\\\'\'/g;
90 # Then single quote the string.
91 $s = "'$s'";
92 }
93 return $s;
94 }
95
96 sub quoted_cmd(@)
97 {
98 return join (' ', map {shell_quote $_} @_);
99 }
100
101 {
102 my $since_date = '1970-01-01 UTC';
103 my $format_string = '%s%n%b%n';
104 GetOptions
105 (
106 help => sub { usage 0 },
107 version => sub { print "$ME version $VERSION\n"; exit },
108 'since=s' => \$since_date,
109 'format=s' => \$format_string,
110 ) or usage 1;
111
112 my @cmd = (qw (git log --log-size), "--since=$since_date",
113 '--pretty=format:%ct %an <%ae>%n%n'.$format_string, @ARGV);
114 open PIPE, '-|', @cmd
115 or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n"
116 . "(Is your Git too old? Version 1.5.1 or later is required.)\n");
117
118 my $prev_date_line = '';
119 while (1)
120 {
121 defined (my $in = <PIPE>)
122 or last;
123 $in =~ /^log size (\d+)$/
124 or die "$ME:$.: Invalid line (expected log size):\n$in";
125 my $log_nbytes = $1;
126
127 my $log;
128 my $n_read = read PIPE, $log, $log_nbytes;
129 $n_read == $log_nbytes
130 or die "$ME:$.: unexpected EOF\n";
131
132 my @line = split "\n", $log;
133 my $author_line = shift @line;
134 defined $author_line
135 or die "$ME:$.: unexpected EOF\n";
136 $author_line =~ /^(\d+) (.*>)$/
137 or die "$ME:$.: Invalid line "
138 . "(expected date/author/email):\n$author_line\n";
139
140 my $date_line = sprintf "%s $2\n", strftime ("%F", localtime ($1));
141 # If this line would be the same as the previous date/name/email
142 # line, then arrange not to print it.
143 if ($date_line ne $prev_date_line)
144 {
145 $prev_date_line eq ''
146 or print "\n";
147 print $date_line;
148 }
149 $prev_date_line = $date_line;
150
151 # Omit "Signed-off-by..." lines.
152 @line = grep !/^Signed-off-by: .*>$/, @line;
153
154 # If there were any lines
155 if (@line == 0)
156 {
157 warn "$ME: warning: empty commit message:\n $date_line\n";
158 }
159 else
160 {
161 # Remove leading and trailing blank lines.
162 while ($line[0] =~ /^\s*$/) { shift @line; }
163 while ($line[$#line] =~ /^\s*$/) { pop @line; }
164
165 # Prefix each non-empty line with a TAB.
166 @line = map { length $_ ? "\t$_" : '' } @line;
167
168 print "\n", join ("\n", @line), "\n";
169 }
170
171 defined ($in = <PIPE>)
172 or last;
173 $in ne "\n"
174 and die "$ME:$.: unexpected line:\n$in";
175 }
176
177 close PIPE
178 or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
179 # FIXME-someday: include $PROCESS_STATUS in the diagnostic
180 }
181
182 # Local Variables:
183 # mode: perl
184 # indent-tabs-mode: nil
185 # eval: (add-hook 'write-file-hooks 'time-stamp)
186 # time-stamp-start: "my $VERSION = '"
187 # time-stamp-format: "%:y-%02m-%02d %02H:%02M"
188 # time-stamp-time-zone: "UTC"
189 # time-stamp-end: "'; # UTC"
190 # End:
0 #!/bin/sh
1 # install - install a program, script, or datafile
2
3 scriptversion=2011-11-20.07; # UTC
4
5 # This originates from X11R5 (mit/util/scripts/install.sh), which was
6 # later released in X11R6 (xc/config/util/install.sh) with the
7 # following copyright and license.
8 #
9 # Copyright (C) 1994 X Consortium
10 #
11 # Permission is hereby granted, free of charge, to any person obtaining a copy
12 # of this software and associated documentation files (the "Software"), to
13 # deal in the Software without restriction, including without limitation the
14 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
15 # sell copies of the Software, and to permit persons to whom the Software is
16 # furnished to do so, subject to the following conditions:
17 #
18 # The above copyright notice and this permission notice shall be included in
19 # all copies or substantial portions of the Software.
20 #
21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
25 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
26 # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 #
28 # Except as contained in this notice, the name of the X Consortium shall not
29 # be used in advertising or otherwise to promote the sale, use or other deal-
30 # ings in this Software without prior written authorization from the X Consor-
31 # tium.
32 #
33 #
34 # FSF changes to this file are in the public domain.
35 #
36 # Calling this script install-sh is preferred over install.sh, to prevent
37 # 'make' implicit rules from creating a file called install from it
38 # when there is no Makefile.
39 #
40 # This script is compatible with the BSD install script, but was written
41 # from scratch.
42
43 nl='
44 '
45 IFS=" "" $nl"
46
47 # set DOITPROG to echo to test this script
48
49 # Don't use :- since 4.3BSD and earlier shells don't like it.
50 doit=${DOITPROG-}
51 if test -z "$doit"; then
52 doit_exec=exec
53 else
54 doit_exec=$doit
55 fi
56
57 # Put in absolute file names if you don't have them in your path;
58 # or use environment vars.
59
60 chgrpprog=${CHGRPPROG-chgrp}
61 chmodprog=${CHMODPROG-chmod}
62 chownprog=${CHOWNPROG-chown}
63 cmpprog=${CMPPROG-cmp}
64 cpprog=${CPPROG-cp}
65 mkdirprog=${MKDIRPROG-mkdir}
66 mvprog=${MVPROG-mv}
67 rmprog=${RMPROG-rm}
68 stripprog=${STRIPPROG-strip}
69
70 posix_glob='?'
71 initialize_posix_glob='
72 test "$posix_glob" != "?" || {
73 if (set -f) 2>/dev/null; then
74 posix_glob=
75 else
76 posix_glob=:
77 fi
78 }
79 '
80
81 posix_mkdir=
82
83 # Desired mode of installed file.
84 mode=0755
85
86 chgrpcmd=
87 chmodcmd=$chmodprog
88 chowncmd=
89 mvcmd=$mvprog
90 rmcmd="$rmprog -f"
91 stripcmd=
92
93 src=
94 dst=
95 dir_arg=
96 dst_arg=
97
98 copy_on_change=false
99 no_target_directory=
100
101 usage="\
102 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
103 or: $0 [OPTION]... SRCFILES... DIRECTORY
104 or: $0 [OPTION]... -t DIRECTORY SRCFILES...
105 or: $0 [OPTION]... -d DIRECTORIES...
106
107 In the 1st form, copy SRCFILE to DSTFILE.
108 In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
109 In the 4th, create DIRECTORIES.
110
111 Options:
112 --help display this help and exit.
113 --version display version info and exit.
114
115 -c (ignored)
116 -C install only if different (preserve the last data modification time)
117 -d create directories instead of installing files.
118 -g GROUP $chgrpprog installed files to GROUP.
119 -m MODE $chmodprog installed files to MODE.
120 -o USER $chownprog installed files to USER.
121 -s $stripprog installed files.
122 -t DIRECTORY install into DIRECTORY.
123 -T report an error if DSTFILE is a directory.
124
125 Environment variables override the default commands:
126 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
127 RMPROG STRIPPROG
128 "
129
130 while test $# -ne 0; do
131 case $1 in
132 -c) ;;
133
134 -C) copy_on_change=true;;
135
136 -d) dir_arg=true;;
137
138 -g) chgrpcmd="$chgrpprog $2"
139 shift;;
140
141 --help) echo "$usage"; exit $?;;
142
143 -m) mode=$2
144 case $mode in
145 *' '* | *' '* | *'
146 '* | *'*'* | *'?'* | *'['*)
147 echo "$0: invalid mode: $mode" >&2
148 exit 1;;
149 esac
150 shift;;
151
152 -o) chowncmd="$chownprog $2"
153 shift;;
154
155 -s) stripcmd=$stripprog;;
156
157 -t) dst_arg=$2
158 # Protect names problematic for 'test' and other utilities.
159 case $dst_arg in
160 -* | [=\(\)!]) dst_arg=./$dst_arg;;
161 esac
162 shift;;
163
164 -T) no_target_directory=true;;
165
166 --version) echo "$0 $scriptversion"; exit $?;;
167
168 --) shift
169 break;;
170
171 -*) echo "$0: invalid option: $1" >&2
172 exit 1;;
173
174 *) break;;
175 esac
176 shift
177 done
178
179 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
180 # When -d is used, all remaining arguments are directories to create.
181 # When -t is used, the destination is already specified.
182 # Otherwise, the last argument is the destination. Remove it from $@.
183 for arg
184 do
185 if test -n "$dst_arg"; then
186 # $@ is not empty: it contains at least $arg.
187 set fnord "$@" "$dst_arg"
188 shift # fnord
189 fi
190 shift # arg
191 dst_arg=$arg
192 # Protect names problematic for 'test' and other utilities.
193 case $dst_arg in
194 -* | [=\(\)!]) dst_arg=./$dst_arg;;
195 esac
196 done
197 fi
198
199 if test $# -eq 0; then
200 if test -z "$dir_arg"; then
201 echo "$0: no input file specified." >&2
202 exit 1
203 fi
204 # It's OK to call 'install-sh -d' without argument.
205 # This can happen when creating conditional directories.
206 exit 0
207 fi
208
209 if test -z "$dir_arg"; then
210 do_exit='(exit $ret); exit $ret'
211 trap "ret=129; $do_exit" 1
212 trap "ret=130; $do_exit" 2
213 trap "ret=141; $do_exit" 13
214 trap "ret=143; $do_exit" 15
215
216 # Set umask so as not to create temps with too-generous modes.
217 # However, 'strip' requires both read and write access to temps.
218 case $mode in
219 # Optimize common cases.
220 *644) cp_umask=133;;
221 *755) cp_umask=22;;
222
223 *[0-7])
224 if test -z "$stripcmd"; then
225 u_plus_rw=
226 else
227 u_plus_rw='% 200'
228 fi
229 cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
230 *)
231 if test -z "$stripcmd"; then
232 u_plus_rw=
233 else
234 u_plus_rw=,u+rw
235 fi
236 cp_umask=$mode$u_plus_rw;;
237 esac
238 fi
239
240 for src
241 do
242 # Protect names problematic for 'test' and other utilities.
243 case $src in
244 -* | [=\(\)!]) src=./$src;;
245 esac
246
247 if test -n "$dir_arg"; then
248 dst=$src
249 dstdir=$dst
250 test -d "$dstdir"
251 dstdir_status=$?
252 else
253
254 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
255 # might cause directories to be created, which would be especially bad
256 # if $src (and thus $dsttmp) contains '*'.
257 if test ! -f "$src" && test ! -d "$src"; then
258 echo "$0: $src does not exist." >&2
259 exit 1
260 fi
261
262 if test -z "$dst_arg"; then
263 echo "$0: no destination specified." >&2
264 exit 1
265 fi
266 dst=$dst_arg
267
268 # If destination is a directory, append the input filename; won't work
269 # if double slashes aren't ignored.
270 if test -d "$dst"; then
271 if test -n "$no_target_directory"; then
272 echo "$0: $dst_arg: Is a directory" >&2
273 exit 1
274 fi
275 dstdir=$dst
276 dst=$dstdir/`basename "$src"`
277 dstdir_status=0
278 else
279 # Prefer dirname, but fall back on a substitute if dirname fails.
280 dstdir=`
281 (dirname "$dst") 2>/dev/null ||
282 expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
283 X"$dst" : 'X\(//\)[^/]' \| \
284 X"$dst" : 'X\(//\)$' \| \
285 X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
286 echo X"$dst" |
287 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
288 s//\1/
289 q
290 }
291 /^X\(\/\/\)[^/].*/{
292 s//\1/
293 q
294 }
295 /^X\(\/\/\)$/{
296 s//\1/
297 q
298 }
299 /^X\(\/\).*/{
300 s//\1/
301 q
302 }
303 s/.*/./; q'
304 `
305
306 test -d "$dstdir"
307 dstdir_status=$?
308 fi
309 fi
310
311 obsolete_mkdir_used=false
312
313 if test $dstdir_status != 0; then
314 case $posix_mkdir in
315 '')
316 # Create intermediate dirs using mode 755 as modified by the umask.
317 # This is like FreeBSD 'install' as of 1997-10-28.
318 umask=`umask`
319 case $stripcmd.$umask in
320 # Optimize common cases.
321 *[2367][2367]) mkdir_umask=$umask;;
322 .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
323
324 *[0-7])
325 mkdir_umask=`expr $umask + 22 \
326 - $umask % 100 % 40 + $umask % 20 \
327 - $umask % 10 % 4 + $umask % 2
328 `;;
329 *) mkdir_umask=$umask,go-w;;
330 esac
331
332 # With -d, create the new directory with the user-specified mode.
333 # Otherwise, rely on $mkdir_umask.
334 if test -n "$dir_arg"; then
335 mkdir_mode=-m$mode
336 else
337 mkdir_mode=
338 fi
339
340 posix_mkdir=false
341 case $umask in
342 *[123567][0-7][0-7])
343 # POSIX mkdir -p sets u+wx bits regardless of umask, which
344 # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
345 ;;
346 *)
347 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
348 trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
349
350 if (umask $mkdir_umask &&
351 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
352 then
353 if test -z "$dir_arg" || {
354 # Check for POSIX incompatibilities with -m.
355 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
356 # other-writable bit of parent directory when it shouldn't.
357 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
358 ls_ld_tmpdir=`ls -ld "$tmpdir"`
359 case $ls_ld_tmpdir in
360 d????-?r-*) different_mode=700;;
361 d????-?--*) different_mode=755;;
362 *) false;;
363 esac &&
364 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
365 ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
366 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
367 }
368 }
369 then posix_mkdir=:
370 fi
371 rmdir "$tmpdir/d" "$tmpdir"
372 else
373 # Remove any dirs left behind by ancient mkdir implementations.
374 rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
375 fi
376 trap '' 0;;
377 esac;;
378 esac
379
380 if
381 $posix_mkdir && (
382 umask $mkdir_umask &&
383 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
384 )
385 then :
386 else
387
388 # The umask is ridiculous, or mkdir does not conform to POSIX,
389 # or it failed possibly due to a race condition. Create the
390 # directory the slow way, step by step, checking for races as we go.
391
392 case $dstdir in
393 /*) prefix='/';;
394 [-=\(\)!]*) prefix='./';;
395 *) prefix='';;
396 esac
397
398 eval "$initialize_posix_glob"
399
400 oIFS=$IFS
401 IFS=/
402 $posix_glob set -f
403 set fnord $dstdir
404 shift
405 $posix_glob set +f
406 IFS=$oIFS
407
408 prefixes=
409
410 for d
411 do
412 test X"$d" = X && continue
413
414 prefix=$prefix$d
415 if test -d "$prefix"; then
416 prefixes=
417 else
418 if $posix_mkdir; then
419 (umask=$mkdir_umask &&
420 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
421 # Don't fail if two instances are running concurrently.
422 test -d "$prefix" || exit 1
423 else
424 case $prefix in
425 *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
426 *) qprefix=$prefix;;
427 esac
428 prefixes="$prefixes '$qprefix'"
429 fi
430 fi
431 prefix=$prefix/
432 done
433
434 if test -n "$prefixes"; then
435 # Don't fail if two instances are running concurrently.
436 (umask $mkdir_umask &&
437 eval "\$doit_exec \$mkdirprog $prefixes") ||
438 test -d "$dstdir" || exit 1
439 obsolete_mkdir_used=true
440 fi
441 fi
442 fi
443
444 if test -n "$dir_arg"; then
445 { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
446 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
447 { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
448 test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
449 else
450
451 # Make a couple of temp file names in the proper directory.
452 dsttmp=$dstdir/_inst.$$_
453 rmtmp=$dstdir/_rm.$$_
454
455 # Trap to clean up those temp files at exit.
456 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
457
458 # Copy the file name to the temp name.
459 (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
460
461 # and set any options; do chmod last to preserve setuid bits.
462 #
463 # If any of these fail, we abort the whole thing. If we want to
464 # ignore errors from any of these, just make sure not to ignore
465 # errors from the above "$doit $cpprog $src $dsttmp" command.
466 #
467 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
468 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
469 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
470 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
471
472 # If -C, don't bother to copy if it wouldn't change the file.
473 if $copy_on_change &&
474 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
475 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
476
477 eval "$initialize_posix_glob" &&
478 $posix_glob set -f &&
479 set X $old && old=:$2:$4:$5:$6 &&
480 set X $new && new=:$2:$4:$5:$6 &&
481 $posix_glob set +f &&
482
483 test "$old" = "$new" &&
484 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
485 then
486 rm -f "$dsttmp"
487 else
488 # Rename the file to the real destination.
489 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
490
491 # The rename failed, perhaps because mv can't rename something else
492 # to itself, or perhaps because mv is so ancient that it does not
493 # support -f.
494 {
495 # Now remove or move aside any old file at destination location.
496 # We try this two ways since rm can't unlink itself on some
497 # systems and the destination file might be busy for other
498 # reasons. In this case, the final cleanup might fail but the new
499 # file should still install successfully.
500 {
501 test ! -f "$dst" ||
502 $doit $rmcmd -f "$dst" 2>/dev/null ||
503 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
504 { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
505 } ||
506 { echo "$0: cannot unlink or rename $dst" >&2
507 (exit 1); exit 1
508 }
509 } &&
510
511 # Now rename the file to the real destination.
512 $doit $mvcmd "$dsttmp" "$dst"
513 }
514 fi || exit 1
515
516 trap '' 0
517 fi
518 done
519
520 # Local variables:
521 # eval: (add-hook 'write-file-hooks 'time-stamp)
522 # time-stamp-start: "scriptversion="
523 # time-stamp-format: "%:y-%02m-%02d.%02H"
524 # time-stamp-time-zone: "UTC"
525 # time-stamp-end: "; # UTC"
526 # End:
0
1 # libtool (GNU libtool) 2.4.2
2 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
3
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5 # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
6 # This is free software; see the source for copying conditions. There is NO
7 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8
9 # GNU Libtool is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # As a special exception to the GNU General Public License,
15 # if you distribute this file as part of a program or library that
16 # is built using GNU Libtool, you may include this file under the
17 # same distribution terms that you use for the rest of that program.
18 #
19 # GNU Libtool is distributed in the hope that it will be useful, but
20 # WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 # General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with GNU Libtool; see the file COPYING. If not, a copy
26 # can be downloaded from http://www.gnu.org/licenses/gpl.html,
27 # or obtained by writing to the Free Software Foundation, Inc.,
28 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
29
30 # Usage: $progname [OPTION]... [MODE-ARG]...
31 #
32 # Provide generalized library-building support services.
33 #
34 # --config show all configuration variables
35 # --debug enable verbose shell tracing
36 # -n, --dry-run display commands without modifying any files
37 # --features display basic configuration information and exit
38 # --mode=MODE use operation mode MODE
39 # --preserve-dup-deps don't remove duplicate dependency libraries
40 # --quiet, --silent don't print informational messages
41 # --no-quiet, --no-silent
42 # print informational messages (default)
43 # --no-warn don't display warning messages
44 # --tag=TAG use configuration variables from tag TAG
45 # -v, --verbose print more informational messages than default
46 # --no-verbose don't print the extra informational messages
47 # --version print version information
48 # -h, --help, --help-all print short, long, or detailed help message
49 #
50 # MODE must be one of the following:
51 #
52 # clean remove files from the build directory
53 # compile compile a source file into a libtool object
54 # execute automatically set library path, then run a program
55 # finish complete the installation of libtool libraries
56 # install install libraries or executables
57 # link create a library or an executable
58 # uninstall remove libraries from an installed directory
59 #
60 # MODE-ARGS vary depending on the MODE. When passed as first option,
61 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
62 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
63 #
64 # When reporting a bug, please describe a test case to reproduce it and
65 # include the following information:
66 #
67 # host-triplet: $host
68 # shell: $SHELL
69 # compiler: $LTCC
70 # compiler flags: $LTCFLAGS
71 # linker: $LD (gnu? $with_gnu_ld)
72 # $progname: (GNU libtool) 2.4.2
73 # automake: $automake_version
74 # autoconf: $autoconf_version
75 #
76 # Report bugs to <bug-libtool@gnu.org>.
77 # GNU libtool home page: <http://www.gnu.org/software/libtool/>.
78 # General help using GNU software: <http://www.gnu.org/gethelp/>.
79
80 PROGRAM=libtool
81 PACKAGE=libtool
82 VERSION=2.4.2
83 TIMESTAMP=""
84 package_revision=1.3337
85
86 # Be Bourne compatible
87 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
88 emulate sh
89 NULLCMD=:
90 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
91 # is contrary to our usage. Disable this feature.
92 alias -g '${1+"$@"}'='"$@"'
93 setopt NO_GLOB_SUBST
94 else
95 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
96 fi
97 BIN_SH=xpg4; export BIN_SH # for Tru64
98 DUALCASE=1; export DUALCASE # for MKS sh
99
100 # A function that is used when there is no print builtin or printf.
101 func_fallback_echo ()
102 {
103 eval 'cat <<_LTECHO_EOF
104 $1
105 _LTECHO_EOF'
106 }
107
108 # NLS nuisances: We save the old values to restore during execute mode.
109 lt_user_locale=
110 lt_safe_locale=
111 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
112 do
113 eval "if test \"\${$lt_var+set}\" = set; then
114 save_$lt_var=\$$lt_var
115 $lt_var=C
116 export $lt_var
117 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
118 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
119 fi"
120 done
121 LC_ALL=C
122 LANGUAGE=C
123 export LANGUAGE LC_ALL
124
125 $lt_unset CDPATH
126
127
128 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
129 # is ksh but when the shell is invoked as "sh" and the current value of
130 # the _XPG environment variable is not equal to 1 (one), the special
131 # positional parameter $0, within a function call, is the name of the
132 # function.
133 progpath="$0"
134
135
136
137 : ${CP="cp -f"}
138 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
139 : ${MAKE="make"}
140 : ${MKDIR="mkdir"}
141 : ${MV="mv -f"}
142 : ${RM="rm -f"}
143 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
144 : ${Xsed="$SED -e 1s/^X//"}
145
146 # Global variables:
147 EXIT_SUCCESS=0
148 EXIT_FAILURE=1
149 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
150 EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
151
152 exit_status=$EXIT_SUCCESS
153
154 # Make sure IFS has a sensible default
155 lt_nl='
156 '
157 IFS=" $lt_nl"
158
159 dirname="s,/[^/]*$,,"
160 basename="s,^.*/,,"
161
162 # func_dirname file append nondir_replacement
163 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
164 # otherwise set result to NONDIR_REPLACEMENT.
165 func_dirname ()
166 {
167 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
168 if test "X$func_dirname_result" = "X${1}"; then
169 func_dirname_result="${3}"
170 else
171 func_dirname_result="$func_dirname_result${2}"
172 fi
173 } # func_dirname may be replaced by extended shell implementation
174
175
176 # func_basename file
177 func_basename ()
178 {
179 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
180 } # func_basename may be replaced by extended shell implementation
181
182
183 # func_dirname_and_basename file append nondir_replacement
184 # perform func_basename and func_dirname in a single function
185 # call:
186 # dirname: Compute the dirname of FILE. If nonempty,
187 # add APPEND to the result, otherwise set result
188 # to NONDIR_REPLACEMENT.
189 # value returned in "$func_dirname_result"
190 # basename: Compute filename of FILE.
191 # value retuned in "$func_basename_result"
192 # Implementation must be kept synchronized with func_dirname
193 # and func_basename. For efficiency, we do not delegate to
194 # those functions but instead duplicate the functionality here.
195 func_dirname_and_basename ()
196 {
197 # Extract subdirectory from the argument.
198 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
199 if test "X$func_dirname_result" = "X${1}"; then
200 func_dirname_result="${3}"
201 else
202 func_dirname_result="$func_dirname_result${2}"
203 fi
204 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
205 } # func_dirname_and_basename may be replaced by extended shell implementation
206
207
208 # func_stripname prefix suffix name
209 # strip PREFIX and SUFFIX off of NAME.
210 # PREFIX and SUFFIX must not contain globbing or regex special
211 # characters, hashes, percent signs, but SUFFIX may contain a leading
212 # dot (in which case that matches only a dot).
213 # func_strip_suffix prefix name
214 func_stripname ()
215 {
216 case ${2} in
217 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
218 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
219 esac
220 } # func_stripname may be replaced by extended shell implementation
221
222
223 # These SED scripts presuppose an absolute path with a trailing slash.
224 pathcar='s,^/\([^/]*\).*$,\1,'
225 pathcdr='s,^/[^/]*,,'
226 removedotparts=':dotsl
227 s@/\./@/@g
228 t dotsl
229 s,/\.$,/,'
230 collapseslashes='s@/\{1,\}@/@g'
231 finalslash='s,/*$,/,'
232
233 # func_normal_abspath PATH
234 # Remove doubled-up and trailing slashes, "." path components,
235 # and cancel out any ".." path components in PATH after making
236 # it an absolute path.
237 # value returned in "$func_normal_abspath_result"
238 func_normal_abspath ()
239 {
240 # Start from root dir and reassemble the path.
241 func_normal_abspath_result=
242 func_normal_abspath_tpath=$1
243 func_normal_abspath_altnamespace=
244 case $func_normal_abspath_tpath in
245 "")
246 # Empty path, that just means $cwd.
247 func_stripname '' '/' "`pwd`"
248 func_normal_abspath_result=$func_stripname_result
249 return
250 ;;
251 # The next three entries are used to spot a run of precisely
252 # two leading slashes without using negated character classes;
253 # we take advantage of case's first-match behaviour.
254 ///*)
255 # Unusual form of absolute path, do nothing.
256 ;;
257 //*)
258 # Not necessarily an ordinary path; POSIX reserves leading '//'
259 # and for example Cygwin uses it to access remote file shares
260 # over CIFS/SMB, so we conserve a leading double slash if found.
261 func_normal_abspath_altnamespace=/
262 ;;
263 /*)
264 # Absolute path, do nothing.
265 ;;
266 *)
267 # Relative path, prepend $cwd.
268 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
269 ;;
270 esac
271 # Cancel out all the simple stuff to save iterations. We also want
272 # the path to end with a slash for ease of parsing, so make sure
273 # there is one (and only one) here.
274 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
275 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
276 while :; do
277 # Processed it all yet?
278 if test "$func_normal_abspath_tpath" = / ; then
279 # If we ascended to the root using ".." the result may be empty now.
280 if test -z "$func_normal_abspath_result" ; then
281 func_normal_abspath_result=/
282 fi
283 break
284 fi
285 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
286 -e "$pathcar"`
287 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
288 -e "$pathcdr"`
289 # Figure out what to do with it
290 case $func_normal_abspath_tcomponent in
291 "")
292 # Trailing empty path component, ignore it.
293 ;;
294 ..)
295 # Parent dir; strip last assembled component from result.
296 func_dirname "$func_normal_abspath_result"
297 func_normal_abspath_result=$func_dirname_result
298 ;;
299 *)
300 # Actual path component, append it.
301 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
302 ;;
303 esac
304 done
305 # Restore leading double-slash if one was found on entry.
306 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
307 }
308
309 # func_relative_path SRCDIR DSTDIR
310 # generates a relative path from SRCDIR to DSTDIR, with a trailing
311 # slash if non-empty, suitable for immediately appending a filename
312 # without needing to append a separator.
313 # value returned in "$func_relative_path_result"
314 func_relative_path ()
315 {
316 func_relative_path_result=
317 func_normal_abspath "$1"
318 func_relative_path_tlibdir=$func_normal_abspath_result
319 func_normal_abspath "$2"
320 func_relative_path_tbindir=$func_normal_abspath_result
321
322 # Ascend the tree starting from libdir
323 while :; do
324 # check if we have found a prefix of bindir
325 case $func_relative_path_tbindir in
326 $func_relative_path_tlibdir)
327 # found an exact match
328 func_relative_path_tcancelled=
329 break
330 ;;
331 $func_relative_path_tlibdir*)
332 # found a matching prefix
333 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
334 func_relative_path_tcancelled=$func_stripname_result
335 if test -z "$func_relative_path_result"; then
336 func_relative_path_result=.
337 fi
338 break
339 ;;
340 *)
341 func_dirname $func_relative_path_tlibdir
342 func_relative_path_tlibdir=${func_dirname_result}
343 if test "x$func_relative_path_tlibdir" = x ; then
344 # Have to descend all the way to the root!
345 func_relative_path_result=../$func_relative_path_result
346 func_relative_path_tcancelled=$func_relative_path_tbindir
347 break
348 fi
349 func_relative_path_result=../$func_relative_path_result
350 ;;
351 esac
352 done
353
354 # Now calculate path; take care to avoid doubling-up slashes.
355 func_stripname '' '/' "$func_relative_path_result"
356 func_relative_path_result=$func_stripname_result
357 func_stripname '/' '/' "$func_relative_path_tcancelled"
358 if test "x$func_stripname_result" != x ; then
359 func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
360 fi
361
362 # Normalisation. If bindir is libdir, return empty string,
363 # else relative path ending with a slash; either way, target
364 # file name can be directly appended.
365 if test ! -z "$func_relative_path_result"; then
366 func_stripname './' '' "$func_relative_path_result/"
367 func_relative_path_result=$func_stripname_result
368 fi
369 }
370
371 # The name of this program:
372 func_dirname_and_basename "$progpath"
373 progname=$func_basename_result
374
375 # Make sure we have an absolute path for reexecution:
376 case $progpath in
377 [\\/]*|[A-Za-z]:\\*) ;;
378 *[\\/]*)
379 progdir=$func_dirname_result
380 progdir=`cd "$progdir" && pwd`
381 progpath="$progdir/$progname"
382 ;;
383 *)
384 save_IFS="$IFS"
385 IFS=${PATH_SEPARATOR-:}
386 for progdir in $PATH; do
387 IFS="$save_IFS"
388 test -x "$progdir/$progname" && break
389 done
390 IFS="$save_IFS"
391 test -n "$progdir" || progdir=`pwd`
392 progpath="$progdir/$progname"
393 ;;
394 esac
395
396 # Sed substitution that helps us do robust quoting. It backslashifies
397 # metacharacters that are still active within double-quoted strings.
398 Xsed="${SED}"' -e 1s/^X//'
399 sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
400
401 # Same as above, but do not quote variable references.
402 double_quote_subst='s/\(["`\\]\)/\\\1/g'
403
404 # Sed substitution that turns a string into a regex matching for the
405 # string literally.
406 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
407
408 # Sed substitution that converts a w32 file name or path
409 # which contains forward slashes, into one that contains
410 # (escaped) backslashes. A very naive implementation.
411 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
412
413 # Re-`\' parameter expansions in output of double_quote_subst that were
414 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
415 # in input to double_quote_subst, that '$' was protected from expansion.
416 # Since each input `\' is now two `\'s, look for any number of runs of
417 # four `\'s followed by two `\'s and then a '$'. `\' that '$'.
418 bs='\\'
419 bs2='\\\\'
420 bs4='\\\\\\\\'
421 dollar='\$'
422 sed_double_backslash="\
423 s/$bs4/&\\
424 /g
425 s/^$bs2$dollar/$bs&/
426 s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
427 s/\n//g"
428
429 # Standard options:
430 opt_dry_run=false
431 opt_help=false
432 opt_quiet=false
433 opt_verbose=false
434 opt_warning=:
435
436 # func_echo arg...
437 # Echo program name prefixed message, along with the current mode
438 # name if it has been set yet.
439 func_echo ()
440 {
441 $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
442 }
443
444 # func_verbose arg...
445 # Echo program name prefixed message in verbose mode only.
446 func_verbose ()
447 {
448 $opt_verbose && func_echo ${1+"$@"}
449
450 # A bug in bash halts the script if the last line of a function
451 # fails when set -e is in force, so we need another command to
452 # work around that:
453 :
454 }
455
456 # func_echo_all arg...
457 # Invoke $ECHO with all args, space-separated.
458 func_echo_all ()
459 {
460 $ECHO "$*"
461 }
462
463 # func_error arg...
464 # Echo program name prefixed message to standard error.
465 func_error ()
466 {
467 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
468 }
469
470 # func_warning arg...
471 # Echo program name prefixed warning message to standard error.
472 func_warning ()
473 {
474 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
475
476 # bash bug again:
477 :
478 }
479
480 # func_fatal_error arg...
481 # Echo program name prefixed message to standard error, and exit.
482 func_fatal_error ()
483 {
484 func_error ${1+"$@"}
485 exit $EXIT_FAILURE
486 }
487
488 # func_fatal_help arg...
489 # Echo program name prefixed message to standard error, followed by
490 # a help hint, and exit.
491 func_fatal_help ()
492 {
493 func_error ${1+"$@"}
494 func_fatal_error "$help"
495 }
496 help="Try \`$progname --help' for more information." ## default
497
498
499 # func_grep expression filename
500 # Check whether EXPRESSION matches any line of FILENAME, without output.
501 func_grep ()
502 {
503 $GREP "$1" "$2" >/dev/null 2>&1
504 }
505
506
507 # func_mkdir_p directory-path
508 # Make sure the entire path to DIRECTORY-PATH is available.
509 func_mkdir_p ()
510 {
511 my_directory_path="$1"
512 my_dir_list=
513
514 if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
515
516 # Protect directory names starting with `-'
517 case $my_directory_path in
518 -*) my_directory_path="./$my_directory_path" ;;
519 esac
520
521 # While some portion of DIR does not yet exist...
522 while test ! -d "$my_directory_path"; do
523 # ...make a list in topmost first order. Use a colon delimited
524 # list incase some portion of path contains whitespace.
525 my_dir_list="$my_directory_path:$my_dir_list"
526
527 # If the last portion added has no slash in it, the list is done
528 case $my_directory_path in */*) ;; *) break ;; esac
529
530 # ...otherwise throw away the child directory and loop
531 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
532 done
533 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
534
535 save_mkdir_p_IFS="$IFS"; IFS=':'
536 for my_dir in $my_dir_list; do
537 IFS="$save_mkdir_p_IFS"
538 # mkdir can fail with a `File exist' error if two processes
539 # try to create one of the directories concurrently. Don't
540 # stop in that case!
541 $MKDIR "$my_dir" 2>/dev/null || :
542 done
543 IFS="$save_mkdir_p_IFS"
544
545 # Bail out if we (or some other process) failed to create a directory.
546 test -d "$my_directory_path" || \
547 func_fatal_error "Failed to create \`$1'"
548 fi
549 }
550
551
552 # func_mktempdir [string]
553 # Make a temporary directory that won't clash with other running
554 # libtool processes, and avoids race conditions if possible. If
555 # given, STRING is the basename for that directory.
556 func_mktempdir ()
557 {
558 my_template="${TMPDIR-/tmp}/${1-$progname}"
559
560 if test "$opt_dry_run" = ":"; then
561 # Return a directory name, but don't create it in dry-run mode
562 my_tmpdir="${my_template}-$$"
563 else
564
565 # If mktemp works, use that first and foremost
566 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
567
568 if test ! -d "$my_tmpdir"; then
569 # Failing that, at least try and use $RANDOM to avoid a race
570 my_tmpdir="${my_template}-${RANDOM-0}$$"
571
572 save_mktempdir_umask=`umask`
573 umask 0077
574 $MKDIR "$my_tmpdir"
575 umask $save_mktempdir_umask
576 fi
577
578 # If we're not in dry-run mode, bomb out on failure
579 test -d "$my_tmpdir" || \
580 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
581 fi
582
583 $ECHO "$my_tmpdir"
584 }
585
586
587 # func_quote_for_eval arg
588 # Aesthetically quote ARG to be evaled later.
589 # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
590 # is double-quoted, suitable for a subsequent eval, whereas
591 # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
592 # which are still active within double quotes backslashified.
593 func_quote_for_eval ()
594 {
595 case $1 in
596 *[\\\`\"\$]*)
597 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
598 *)
599 func_quote_for_eval_unquoted_result="$1" ;;
600 esac
601
602 case $func_quote_for_eval_unquoted_result in
603 # Double-quote args containing shell metacharacters to delay
604 # word splitting, command substitution and and variable
605 # expansion for a subsequent eval.
606 # Many Bourne shells cannot handle close brackets correctly
607 # in scan sets, so we specify it separately.
608 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
609 func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
610 ;;
611 *)
612 func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
613 esac
614 }
615
616
617 # func_quote_for_expand arg
618 # Aesthetically quote ARG to be evaled later; same as above,
619 # but do not quote variable references.
620 func_quote_for_expand ()
621 {
622 case $1 in
623 *[\\\`\"]*)
624 my_arg=`$ECHO "$1" | $SED \
625 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
626 *)
627 my_arg="$1" ;;
628 esac
629
630 case $my_arg in
631 # Double-quote args containing shell metacharacters to delay
632 # word splitting and command substitution for a subsequent eval.
633 # Many Bourne shells cannot handle close brackets correctly
634 # in scan sets, so we specify it separately.
635 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
636 my_arg="\"$my_arg\""
637 ;;
638 esac
639
640 func_quote_for_expand_result="$my_arg"
641 }
642
643
644 # func_show_eval cmd [fail_exp]
645 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
646 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
647 # is given, then evaluate it.
648 func_show_eval ()
649 {
650 my_cmd="$1"
651 my_fail_exp="${2-:}"
652
653 ${opt_silent-false} || {
654 func_quote_for_expand "$my_cmd"
655 eval "func_echo $func_quote_for_expand_result"
656 }
657
658 if ${opt_dry_run-false}; then :; else
659 eval "$my_cmd"
660 my_status=$?
661 if test "$my_status" -eq 0; then :; else
662 eval "(exit $my_status); $my_fail_exp"
663 fi
664 fi
665 }
666
667
668 # func_show_eval_locale cmd [fail_exp]
669 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
670 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
671 # is given, then evaluate it. Use the saved locale for evaluation.
672 func_show_eval_locale ()
673 {
674 my_cmd="$1"
675 my_fail_exp="${2-:}"
676
677 ${opt_silent-false} || {
678 func_quote_for_expand "$my_cmd"
679 eval "func_echo $func_quote_for_expand_result"
680 }
681
682 if ${opt_dry_run-false}; then :; else
683 eval "$lt_user_locale
684 $my_cmd"
685 my_status=$?
686 eval "$lt_safe_locale"
687 if test "$my_status" -eq 0; then :; else
688 eval "(exit $my_status); $my_fail_exp"
689 fi
690 fi
691 }
692
693 # func_tr_sh
694 # Turn $1 into a string suitable for a shell variable name.
695 # Result is stored in $func_tr_sh_result. All characters
696 # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
697 # if $1 begins with a digit, a '_' is prepended as well.
698 func_tr_sh ()
699 {
700 case $1 in
701 [0-9]* | *[!a-zA-Z0-9_]*)
702 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
703 ;;
704 * )
705 func_tr_sh_result=$1
706 ;;
707 esac
708 }
709
710
711 # func_version
712 # Echo version message to standard output and exit.
713 func_version ()
714 {
715 $opt_debug
716
717 $SED -n '/(C)/!b go
718 :more
719 /\./!{
720 N
721 s/\n# / /
722 b more
723 }
724 :go
725 /^# '$PROGRAM' (GNU /,/# warranty; / {
726 s/^# //
727 s/^# *$//
728 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
729 p
730 }' < "$progpath"
731 exit $?
732 }
733
734 # func_usage
735 # Echo short help message to standard output and exit.
736 func_usage ()
737 {
738 $opt_debug
739
740 $SED -n '/^# Usage:/,/^# *.*--help/ {
741 s/^# //
742 s/^# *$//
743 s/\$progname/'$progname'/
744 p
745 }' < "$progpath"
746 echo
747 $ECHO "run \`$progname --help | more' for full usage"
748 exit $?
749 }
750
751 # func_help [NOEXIT]
752 # Echo long help message to standard output and exit,
753 # unless 'noexit' is passed as argument.
754 func_help ()
755 {
756 $opt_debug
757
758 $SED -n '/^# Usage:/,/# Report bugs to/ {
759 :print
760 s/^# //
761 s/^# *$//
762 s*\$progname*'$progname'*
763 s*\$host*'"$host"'*
764 s*\$SHELL*'"$SHELL"'*
765 s*\$LTCC*'"$LTCC"'*
766 s*\$LTCFLAGS*'"$LTCFLAGS"'*
767 s*\$LD*'"$LD"'*
768 s/\$with_gnu_ld/'"$with_gnu_ld"'/
769 s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
770 s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
771 p
772 d
773 }
774 /^# .* home page:/b print
775 /^# General help using/b print
776 ' < "$progpath"
777 ret=$?
778 if test -z "$1"; then
779 exit $ret
780 fi
781 }
782
783 # func_missing_arg argname
784 # Echo program name prefixed message to standard error and set global
785 # exit_cmd.
786 func_missing_arg ()
787 {
788 $opt_debug
789
790 func_error "missing argument for $1."
791 exit_cmd=exit
792 }
793
794
795 # func_split_short_opt shortopt
796 # Set func_split_short_opt_name and func_split_short_opt_arg shell
797 # variables after splitting SHORTOPT after the 2nd character.
798 func_split_short_opt ()
799 {
800 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
801 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
802
803 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
804 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
805 } # func_split_short_opt may be replaced by extended shell implementation
806
807
808 # func_split_long_opt longopt
809 # Set func_split_long_opt_name and func_split_long_opt_arg shell
810 # variables after splitting LONGOPT at the `=' sign.
811 func_split_long_opt ()
812 {
813 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
814 my_sed_long_arg='1s/^--[^=]*=//'
815
816 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
817 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
818 } # func_split_long_opt may be replaced by extended shell implementation
819
820 exit_cmd=:
821
822
823
824
825
826 magic="%%%MAGIC variable%%%"
827 magic_exe="%%%MAGIC EXE variable%%%"
828
829 # Global variables.
830 nonopt=
831 preserve_args=
832 lo2o="s/\\.lo\$/.${objext}/"
833 o2lo="s/\\.${objext}\$/.lo/"
834 extracted_archives=
835 extracted_serial=0
836
837 # If this variable is set in any of the actions, the command in it
838 # will be execed at the end. This prevents here-documents from being
839 # left over by shells.
840 exec_cmd=
841
842 # func_append var value
843 # Append VALUE to the end of shell variable VAR.
844 func_append ()
845 {
846 eval "${1}=\$${1}\${2}"
847 } # func_append may be replaced by extended shell implementation
848
849 # func_append_quoted var value
850 # Quote VALUE and append to the end of shell variable VAR, separated
851 # by a space.
852 func_append_quoted ()
853 {
854 func_quote_for_eval "${2}"
855 eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
856 } # func_append_quoted may be replaced by extended shell implementation
857
858
859 # func_arith arithmetic-term...
860 func_arith ()
861 {
862 func_arith_result=`expr "${@}"`
863 } # func_arith may be replaced by extended shell implementation
864
865
866 # func_len string
867 # STRING may not start with a hyphen.
868 func_len ()
869 {
870 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
871 } # func_len may be replaced by extended shell implementation
872
873
874 # func_lo2o object
875 func_lo2o ()
876 {
877 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
878 } # func_lo2o may be replaced by extended shell implementation
879
880
881 # func_xform libobj-or-source
882 func_xform ()
883 {
884 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
885 } # func_xform may be replaced by extended shell implementation
886
887
888 # func_fatal_configuration arg...
889 # Echo program name prefixed message to standard error, followed by
890 # a configuration failure hint, and exit.
891 func_fatal_configuration ()
892 {
893 func_error ${1+"$@"}
894 func_error "See the $PACKAGE documentation for more information."
895 func_fatal_error "Fatal configuration error."
896 }
897
898
899 # func_config
900 # Display the configuration for all the tags in this script.
901 func_config ()
902 {
903 re_begincf='^# ### BEGIN LIBTOOL'
904 re_endcf='^# ### END LIBTOOL'
905
906 # Default configuration.
907 $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
908
909 # Now print the configurations for the tags.
910 for tagname in $taglist; do
911 $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
912 done
913
914 exit $?
915 }
916
917 # func_features
918 # Display the features supported by this script.
919 func_features ()
920 {
921 echo "host: $host"
922 if test "$build_libtool_libs" = yes; then
923 echo "enable shared libraries"
924 else
925 echo "disable shared libraries"
926 fi
927 if test "$build_old_libs" = yes; then
928 echo "enable static libraries"
929 else
930 echo "disable static libraries"
931 fi
932
933 exit $?
934 }
935
936 # func_enable_tag tagname
937 # Verify that TAGNAME is valid, and either flag an error and exit, or
938 # enable the TAGNAME tag. We also add TAGNAME to the global $taglist
939 # variable here.
940 func_enable_tag ()
941 {
942 # Global variable:
943 tagname="$1"
944
945 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
946 re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
947 sed_extractcf="/$re_begincf/,/$re_endcf/p"
948
949 # Validate tagname.
950 case $tagname in
951 *[!-_A-Za-z0-9,/]*)
952 func_fatal_error "invalid tag name: $tagname"
953 ;;
954 esac
955
956 # Don't test for the "default" C tag, as we know it's
957 # there but not specially marked.
958 case $tagname in
959 CC) ;;
960 *)
961 if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
962 taglist="$taglist $tagname"
963
964 # Evaluate the configuration. Be careful to quote the path
965 # and the sed script, to avoid splitting on whitespace, but
966 # also don't use non-portable quotes within backquotes within
967 # quotes we have to do it in 2 steps:
968 extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
969 eval "$extractedcf"
970 else
971 func_error "ignoring unknown tag $tagname"
972 fi
973 ;;
974 esac
975 }
976
977 # func_check_version_match
978 # Ensure that we are using m4 macros, and libtool script from the same
979 # release of libtool.
980 func_check_version_match ()
981 {
982 if test "$package_revision" != "$macro_revision"; then
983 if test "$VERSION" != "$macro_version"; then
984 if test -z "$macro_version"; then
985 cat >&2 <<_LT_EOF
986 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
987 $progname: definition of this LT_INIT comes from an older release.
988 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
989 $progname: and run autoconf again.
990 _LT_EOF
991 else
992 cat >&2 <<_LT_EOF
993 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
994 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
995 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
996 $progname: and run autoconf again.
997 _LT_EOF
998 fi
999 else
1000 cat >&2 <<_LT_EOF
1001 $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1002 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
1003 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
1004 $progname: of $PACKAGE $VERSION and run autoconf again.
1005 _LT_EOF
1006 fi
1007
1008 exit $EXIT_MISMATCH
1009 fi
1010 }
1011
1012
1013 # Shorthand for --mode=foo, only valid as the first argument
1014 case $1 in
1015 clean|clea|cle|cl)
1016 shift; set dummy --mode clean ${1+"$@"}; shift
1017 ;;
1018 compile|compil|compi|comp|com|co|c)
1019 shift; set dummy --mode compile ${1+"$@"}; shift
1020 ;;
1021 execute|execut|execu|exec|exe|ex|e)
1022 shift; set dummy --mode execute ${1+"$@"}; shift
1023 ;;
1024 finish|finis|fini|fin|fi|f)
1025 shift; set dummy --mode finish ${1+"$@"}; shift
1026 ;;
1027 install|instal|insta|inst|ins|in|i)
1028 shift; set dummy --mode install ${1+"$@"}; shift
1029 ;;
1030 link|lin|li|l)
1031 shift; set dummy --mode link ${1+"$@"}; shift
1032 ;;
1033 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1034 shift; set dummy --mode uninstall ${1+"$@"}; shift
1035 ;;
1036 esac
1037
1038
1039
1040 # Option defaults:
1041 opt_debug=:
1042 opt_dry_run=false
1043 opt_config=false
1044 opt_preserve_dup_deps=false
1045 opt_features=false
1046 opt_finish=false
1047 opt_help=false
1048 opt_help_all=false
1049 opt_silent=:
1050 opt_warning=:
1051 opt_verbose=:
1052 opt_silent=false
1053 opt_verbose=false
1054
1055
1056 # Parse options once, thoroughly. This comes as soon as possible in the
1057 # script to make things like `--version' happen as quickly as we can.
1058 {
1059 # this just eases exit handling
1060 while test $# -gt 0; do
1061 opt="$1"
1062 shift
1063 case $opt in
1064 --debug|-x) opt_debug='set -x'
1065 func_echo "enabling shell trace mode"
1066 $opt_debug
1067 ;;
1068 --dry-run|--dryrun|-n)
1069 opt_dry_run=:
1070 ;;
1071 --config)
1072 opt_config=:
1073 func_config
1074 ;;
1075 --dlopen|-dlopen)
1076 optarg="$1"
1077 opt_dlopen="${opt_dlopen+$opt_dlopen
1078 }$optarg"
1079 shift
1080 ;;
1081 --preserve-dup-deps)
1082 opt_preserve_dup_deps=:
1083 ;;
1084 --features)
1085 opt_features=:
1086 func_features
1087 ;;
1088 --finish)
1089 opt_finish=:
1090 set dummy --mode finish ${1+"$@"}; shift
1091 ;;
1092 --help)
1093 opt_help=:
1094 ;;
1095 --help-all)
1096 opt_help_all=:
1097 opt_help=': help-all'
1098 ;;
1099 --mode)
1100 test $# = 0 && func_missing_arg $opt && break
1101 optarg="$1"
1102 opt_mode="$optarg"
1103 case $optarg in
1104 # Valid mode arguments:
1105 clean|compile|execute|finish|install|link|relink|uninstall) ;;
1106
1107 # Catch anything else as an error
1108 *) func_error "invalid argument for $opt"
1109 exit_cmd=exit
1110 break
1111 ;;
1112 esac
1113 shift
1114 ;;
1115 --no-silent|--no-quiet)
1116 opt_silent=false
1117 func_append preserve_args " $opt"
1118 ;;
1119 --no-warning|--no-warn)
1120 opt_warning=false
1121 func_append preserve_args " $opt"
1122 ;;
1123 --no-verbose)
1124 opt_verbose=false
1125 func_append preserve_args " $opt"
1126 ;;
1127 --silent|--quiet)
1128 opt_silent=:
1129 func_append preserve_args " $opt"
1130 opt_verbose=false
1131 ;;
1132 --verbose|-v)
1133 opt_verbose=:
1134 func_append preserve_args " $opt"
1135 opt_silent=false
1136 ;;
1137 --tag)
1138 test $# = 0 && func_missing_arg $opt && break
1139 optarg="$1"
1140 opt_tag="$optarg"
1141 func_append preserve_args " $opt $optarg"
1142 func_enable_tag "$optarg"
1143 shift
1144 ;;
1145
1146 -\?|-h) func_usage ;;
1147 --help) func_help ;;
1148 --version) func_version ;;
1149
1150 # Separate optargs to long options:
1151 --*=*)
1152 func_split_long_opt "$opt"
1153 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
1154 shift
1155 ;;
1156
1157 # Separate non-argument short options:
1158 -\?*|-h*|-n*|-v*)
1159 func_split_short_opt "$opt"
1160 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
1161 shift
1162 ;;
1163
1164 --) break ;;
1165 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1166 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
1167 esac
1168 done
1169
1170 # Validate options:
1171
1172 # save first non-option argument
1173 if test "$#" -gt 0; then
1174 nonopt="$opt"
1175 shift
1176 fi
1177
1178 # preserve --debug
1179 test "$opt_debug" = : || func_append preserve_args " --debug"
1180
1181 case $host in
1182 *cygwin* | *mingw* | *pw32* | *cegcc*)
1183 # don't eliminate duplications in $postdeps and $predeps
1184 opt_duplicate_compiler_generated_deps=:
1185 ;;
1186 *)
1187 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
1188 ;;
1189 esac
1190
1191 $opt_help || {
1192 # Sanity checks first:
1193 func_check_version_match
1194
1195 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1196 func_fatal_configuration "not configured to build any kind of library"
1197 fi
1198
1199 # Darwin sucks
1200 eval std_shrext=\"$shrext_cmds\"
1201
1202 # Only execute mode is allowed to have -dlopen flags.
1203 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
1204 func_error "unrecognized option \`-dlopen'"
1205 $ECHO "$help" 1>&2
1206 exit $EXIT_FAILURE
1207 fi
1208
1209 # Change the help message to a mode-specific one.
1210 generic_help="$help"
1211 help="Try \`$progname --help --mode=$opt_mode' for more information."
1212 }
1213
1214
1215 # Bail if the options were screwed
1216 $exit_cmd $EXIT_FAILURE
1217 }
1218
1219
1220
1221
1222 ## ----------- ##
1223 ## Main. ##
1224 ## ----------- ##
1225
1226 # func_lalib_p file
1227 # True iff FILE is a libtool `.la' library or `.lo' object file.
1228 # This function is only a basic sanity check; it will hardly flush out
1229 # determined imposters.
1230 func_lalib_p ()
1231 {
1232 test -f "$1" &&
1233 $SED -e 4q "$1" 2>/dev/null \
1234 | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
1235 }
1236
1237 # func_lalib_unsafe_p file
1238 # True iff FILE is a libtool `.la' library or `.lo' object file.
1239 # This function implements the same check as func_lalib_p without
1240 # resorting to external programs. To this end, it redirects stdin and
1241 # closes it afterwards, without saving the original file descriptor.
1242 # As a safety measure, use it only where a negative result would be
1243 # fatal anyway. Works if `file' does not exist.
1244 func_lalib_unsafe_p ()
1245 {
1246 lalib_p=no
1247 if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
1248 for lalib_p_l in 1 2 3 4
1249 do
1250 read lalib_p_line
1251 case "$lalib_p_line" in
1252 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
1253 esac
1254 done
1255 exec 0<&5 5<&-
1256 fi
1257 test "$lalib_p" = yes
1258 }
1259
1260 # func_ltwrapper_script_p file
1261 # True iff FILE is a libtool wrapper script
1262 # This function is only a basic sanity check; it will hardly flush out
1263 # determined imposters.
1264 func_ltwrapper_script_p ()
1265 {
1266 func_lalib_p "$1"
1267 }
1268
1269 # func_ltwrapper_executable_p file
1270 # True iff FILE is a libtool wrapper executable
1271 # This function is only a basic sanity check; it will hardly flush out
1272 # determined imposters.
1273 func_ltwrapper_executable_p ()
1274 {
1275 func_ltwrapper_exec_suffix=
1276 case $1 in
1277 *.exe) ;;
1278 *) func_ltwrapper_exec_suffix=.exe ;;
1279 esac
1280 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
1281 }
1282
1283 # func_ltwrapper_scriptname file
1284 # Assumes file is an ltwrapper_executable
1285 # uses $file to determine the appropriate filename for a
1286 # temporary ltwrapper_script.
1287 func_ltwrapper_scriptname ()
1288 {
1289 func_dirname_and_basename "$1" "" "."
1290 func_stripname '' '.exe' "$func_basename_result"
1291 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
1292 }
1293
1294 # func_ltwrapper_p file
1295 # True iff FILE is a libtool wrapper script or wrapper executable
1296 # This function is only a basic sanity check; it will hardly flush out
1297 # determined imposters.
1298 func_ltwrapper_p ()
1299 {
1300 func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
1301 }
1302
1303
1304 # func_execute_cmds commands fail_cmd
1305 # Execute tilde-delimited COMMANDS.
1306 # If FAIL_CMD is given, eval that upon failure.
1307 # FAIL_CMD may read-access the current command in variable CMD!
1308 func_execute_cmds ()
1309 {
1310 $opt_debug
1311 save_ifs=$IFS; IFS='~'
1312 for cmd in $1; do
1313 IFS=$save_ifs
1314 eval cmd=\"$cmd\"
1315 func_show_eval "$cmd" "${2-:}"
1316 done
1317 IFS=$save_ifs
1318 }
1319
1320
1321 # func_source file
1322 # Source FILE, adding directory component if necessary.
1323 # Note that it is not necessary on cygwin/mingw to append a dot to
1324 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
1325 # behavior happens only for exec(3), not for open(2)! Also, sourcing
1326 # `FILE.' does not work on cygwin managed mounts.
1327 func_source ()
1328 {
1329 $opt_debug
1330 case $1 in
1331 */* | *\\*) . "$1" ;;
1332 *) . "./$1" ;;
1333 esac
1334 }
1335
1336
1337 # func_resolve_sysroot PATH
1338 # Replace a leading = in PATH with a sysroot. Store the result into
1339 # func_resolve_sysroot_result
1340 func_resolve_sysroot ()
1341 {
1342 func_resolve_sysroot_result=$1
1343 case $func_resolve_sysroot_result in
1344 =*)
1345 func_stripname '=' '' "$func_resolve_sysroot_result"
1346 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
1347 ;;
1348 esac
1349 }
1350
1351 # func_replace_sysroot PATH
1352 # If PATH begins with the sysroot, replace it with = and
1353 # store the result into func_replace_sysroot_result.
1354 func_replace_sysroot ()
1355 {
1356 case "$lt_sysroot:$1" in
1357 ?*:"$lt_sysroot"*)
1358 func_stripname "$lt_sysroot" '' "$1"
1359 func_replace_sysroot_result="=$func_stripname_result"
1360 ;;
1361 *)
1362 # Including no sysroot.
1363 func_replace_sysroot_result=$1
1364 ;;
1365 esac
1366 }
1367
1368 # func_infer_tag arg
1369 # Infer tagged configuration to use if any are available and
1370 # if one wasn't chosen via the "--tag" command line option.
1371 # Only attempt this if the compiler in the base compile
1372 # command doesn't match the default compiler.
1373 # arg is usually of the form 'gcc ...'
1374 func_infer_tag ()
1375 {
1376 $opt_debug
1377 if test -n "$available_tags" && test -z "$tagname"; then
1378 CC_quoted=
1379 for arg in $CC; do
1380 func_append_quoted CC_quoted "$arg"
1381 done
1382 CC_expanded=`func_echo_all $CC`
1383 CC_quoted_expanded=`func_echo_all $CC_quoted`
1384 case $@ in
1385 # Blanks in the command may have been stripped by the calling shell,
1386 # but not from the CC environment variable when configure was run.
1387 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1388 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1389 # Blanks at the start of $base_compile will cause this to fail
1390 # if we don't check for them as well.
1391 *)
1392 for z in $available_tags; do
1393 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
1394 # Evaluate the configuration.
1395 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1396 CC_quoted=
1397 for arg in $CC; do
1398 # Double-quote args containing other shell metacharacters.
1399 func_append_quoted CC_quoted "$arg"
1400 done
1401 CC_expanded=`func_echo_all $CC`
1402 CC_quoted_expanded=`func_echo_all $CC_quoted`
1403 case "$@ " in
1404 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1405 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1406 # The compiler in the base compile command matches
1407 # the one in the tagged configuration.
1408 # Assume this is the tagged configuration we want.
1409 tagname=$z
1410 break
1411 ;;
1412 esac
1413 fi
1414 done
1415 # If $tagname still isn't set, then no tagged configuration
1416 # was found and let the user know that the "--tag" command
1417 # line option must be used.
1418 if test -z "$tagname"; then
1419 func_echo "unable to infer tagged configuration"
1420 func_fatal_error "specify a tag with \`--tag'"
1421 # else
1422 # func_verbose "using $tagname tagged configuration"
1423 fi
1424 ;;
1425 esac
1426 fi
1427 }
1428
1429
1430
1431 # func_write_libtool_object output_name pic_name nonpic_name
1432 # Create a libtool object file (analogous to a ".la" file),
1433 # but don't create it if we're doing a dry run.
1434 func_write_libtool_object ()
1435 {
1436 write_libobj=${1}
1437 if test "$build_libtool_libs" = yes; then
1438 write_lobj=\'${2}\'
1439 else
1440 write_lobj=none
1441 fi
1442
1443 if test "$build_old_libs" = yes; then
1444 write_oldobj=\'${3}\'
1445 else
1446 write_oldobj=none
1447 fi
1448
1449 $opt_dry_run || {
1450 cat >${write_libobj}T <<EOF
1451 # $write_libobj - a libtool object file
1452 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1453 #
1454 # Please DO NOT delete this file!
1455 # It is necessary for linking the library.
1456
1457 # Name of the PIC object.
1458 pic_object=$write_lobj
1459
1460 # Name of the non-PIC object
1461 non_pic_object=$write_oldobj
1462
1463 EOF
1464 $MV "${write_libobj}T" "${write_libobj}"
1465 }
1466 }
1467
1468
1469 ##################################################
1470 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
1471 ##################################################
1472
1473 # func_convert_core_file_wine_to_w32 ARG
1474 # Helper function used by file name conversion functions when $build is *nix,
1475 # and $host is mingw, cygwin, or some other w32 environment. Relies on a
1476 # correctly configured wine environment available, with the winepath program
1477 # in $build's $PATH.
1478 #
1479 # ARG is the $build file name to be converted to w32 format.
1480 # Result is available in $func_convert_core_file_wine_to_w32_result, and will
1481 # be empty on error (or when ARG is empty)
1482 func_convert_core_file_wine_to_w32 ()
1483 {
1484 $opt_debug
1485 func_convert_core_file_wine_to_w32_result="$1"
1486 if test -n "$1"; then
1487 # Unfortunately, winepath does not exit with a non-zero error code, so we
1488 # are forced to check the contents of stdout. On the other hand, if the
1489 # command is not found, the shell will set an exit code of 127 and print
1490 # *an error message* to stdout. So we must check for both error code of
1491 # zero AND non-empty stdout, which explains the odd construction:
1492 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
1493 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
1494 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
1495 $SED -e "$lt_sed_naive_backslashify"`
1496 else
1497 func_convert_core_file_wine_to_w32_result=
1498 fi
1499 fi
1500 }
1501 # end: func_convert_core_file_wine_to_w32
1502
1503
1504 # func_convert_core_path_wine_to_w32 ARG
1505 # Helper function used by path conversion functions when $build is *nix, and
1506 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
1507 # configured wine environment available, with the winepath program in $build's
1508 # $PATH. Assumes ARG has no leading or trailing path separator characters.
1509 #
1510 # ARG is path to be converted from $build format to win32.
1511 # Result is available in $func_convert_core_path_wine_to_w32_result.
1512 # Unconvertible file (directory) names in ARG are skipped; if no directory names
1513 # are convertible, then the result may be empty.
1514 func_convert_core_path_wine_to_w32 ()
1515 {
1516 $opt_debug
1517 # unfortunately, winepath doesn't convert paths, only file names
1518 func_convert_core_path_wine_to_w32_result=""
1519 if test -n "$1"; then
1520 oldIFS=$IFS
1521 IFS=:
1522 for func_convert_core_path_wine_to_w32_f in $1; do
1523 IFS=$oldIFS
1524 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
1525 if test -n "$func_convert_core_file_wine_to_w32_result" ; then
1526 if test -z "$func_convert_core_path_wine_to_w32_result"; then
1527 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
1528 else
1529 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
1530 fi
1531 fi
1532 done
1533 IFS=$oldIFS
1534 fi
1535 }
1536 # end: func_convert_core_path_wine_to_w32
1537
1538
1539 # func_cygpath ARGS...
1540 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
1541 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
1542 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
1543 # (2), returns the Cygwin file name or path in func_cygpath_result (input
1544 # file name or path is assumed to be in w32 format, as previously converted
1545 # from $build's *nix or MSYS format). In case (3), returns the w32 file name
1546 # or path in func_cygpath_result (input file name or path is assumed to be in
1547 # Cygwin format). Returns an empty string on error.
1548 #
1549 # ARGS are passed to cygpath, with the last one being the file name or path to
1550 # be converted.
1551 #
1552 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
1553 # environment variable; do not put it in $PATH.
1554 func_cygpath ()
1555 {
1556 $opt_debug
1557 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
1558 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
1559 if test "$?" -ne 0; then
1560 # on failure, ensure result is empty
1561 func_cygpath_result=
1562 fi
1563 else
1564 func_cygpath_result=
1565 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
1566 fi
1567 }
1568 #end: func_cygpath
1569
1570
1571 # func_convert_core_msys_to_w32 ARG
1572 # Convert file name or path ARG from MSYS format to w32 format. Return
1573 # result in func_convert_core_msys_to_w32_result.
1574 func_convert_core_msys_to_w32 ()
1575 {
1576 $opt_debug
1577 # awkward: cmd appends spaces to result
1578 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
1579 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
1580 }
1581 #end: func_convert_core_msys_to_w32
1582
1583
1584 # func_convert_file_check ARG1 ARG2
1585 # Verify that ARG1 (a file name in $build format) was converted to $host
1586 # format in ARG2. Otherwise, emit an error message, but continue (resetting
1587 # func_to_host_file_result to ARG1).
1588 func_convert_file_check ()
1589 {
1590 $opt_debug
1591 if test -z "$2" && test -n "$1" ; then
1592 func_error "Could not determine host file name corresponding to"
1593 func_error " \`$1'"
1594 func_error "Continuing, but uninstalled executables may not work."
1595 # Fallback:
1596 func_to_host_file_result="$1"
1597 fi
1598 }
1599 # end func_convert_file_check
1600
1601
1602 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
1603 # Verify that FROM_PATH (a path in $build format) was converted to $host
1604 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting
1605 # func_to_host_file_result to a simplistic fallback value (see below).
1606 func_convert_path_check ()
1607 {
1608 $opt_debug
1609 if test -z "$4" && test -n "$3"; then
1610 func_error "Could not determine the host path corresponding to"
1611 func_error " \`$3'"
1612 func_error "Continuing, but uninstalled executables may not work."
1613 # Fallback. This is a deliberately simplistic "conversion" and
1614 # should not be "improved". See libtool.info.
1615 if test "x$1" != "x$2"; then
1616 lt_replace_pathsep_chars="s|$1|$2|g"
1617 func_to_host_path_result=`echo "$3" |
1618 $SED -e "$lt_replace_pathsep_chars"`
1619 else
1620 func_to_host_path_result="$3"
1621 fi
1622 fi
1623 }
1624 # end func_convert_path_check
1625
1626
1627 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
1628 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
1629 # and appending REPL if ORIG matches BACKPAT.
1630 func_convert_path_front_back_pathsep ()
1631 {
1632 $opt_debug
1633 case $4 in
1634 $1 ) func_to_host_path_result="$3$func_to_host_path_result"
1635 ;;
1636 esac
1637 case $4 in
1638 $2 ) func_append func_to_host_path_result "$3"
1639 ;;
1640 esac
1641 }
1642 # end func_convert_path_front_back_pathsep
1643
1644
1645 ##################################################
1646 # $build to $host FILE NAME CONVERSION FUNCTIONS #
1647 ##################################################
1648 # invoked via `$to_host_file_cmd ARG'
1649 #
1650 # In each case, ARG is the path to be converted from $build to $host format.
1651 # Result will be available in $func_to_host_file_result.
1652
1653
1654 # func_to_host_file ARG
1655 # Converts the file name ARG from $build format to $host format. Return result
1656 # in func_to_host_file_result.
1657 func_to_host_file ()
1658 {
1659 $opt_debug
1660 $to_host_file_cmd "$1"
1661 }
1662 # end func_to_host_file
1663
1664
1665 # func_to_tool_file ARG LAZY
1666 # converts the file name ARG from $build format to toolchain format. Return
1667 # result in func_to_tool_file_result. If the conversion in use is listed
1668 # in (the comma separated) LAZY, no conversion takes place.
1669 func_to_tool_file ()
1670 {
1671 $opt_debug
1672 case ,$2, in
1673 *,"$to_tool_file_cmd",*)
1674 func_to_tool_file_result=$1
1675 ;;
1676 *)
1677 $to_tool_file_cmd "$1"
1678 func_to_tool_file_result=$func_to_host_file_result
1679 ;;
1680 esac
1681 }
1682 # end func_to_tool_file
1683
1684
1685 # func_convert_file_noop ARG
1686 # Copy ARG to func_to_host_file_result.
1687 func_convert_file_noop ()
1688 {
1689 func_to_host_file_result="$1"
1690 }
1691 # end func_convert_file_noop
1692
1693
1694 # func_convert_file_msys_to_w32 ARG
1695 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
1696 # conversion to w32 is not available inside the cwrapper. Returns result in
1697 # func_to_host_file_result.
1698 func_convert_file_msys_to_w32 ()
1699 {
1700 $opt_debug
1701 func_to_host_file_result="$1"
1702 if test -n "$1"; then
1703 func_convert_core_msys_to_w32 "$1"
1704 func_to_host_file_result="$func_convert_core_msys_to_w32_result"
1705 fi
1706 func_convert_file_check "$1" "$func_to_host_file_result"
1707 }
1708 # end func_convert_file_msys_to_w32
1709
1710
1711 # func_convert_file_cygwin_to_w32 ARG
1712 # Convert file name ARG from Cygwin to w32 format. Returns result in
1713 # func_to_host_file_result.
1714 func_convert_file_cygwin_to_w32 ()
1715 {
1716 $opt_debug
1717 func_to_host_file_result="$1"
1718 if test -n "$1"; then
1719 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
1720 # LT_CYGPATH in this case.
1721 func_to_host_file_result=`cygpath -m "$1"`
1722 fi
1723 func_convert_file_check "$1" "$func_to_host_file_result"
1724 }
1725 # end func_convert_file_cygwin_to_w32
1726
1727
1728 # func_convert_file_nix_to_w32 ARG
1729 # Convert file name ARG from *nix to w32 format. Requires a wine environment
1730 # and a working winepath. Returns result in func_to_host_file_result.
1731 func_convert_file_nix_to_w32 ()
1732 {
1733 $opt_debug
1734 func_to_host_file_result="$1"
1735 if test -n "$1"; then
1736 func_convert_core_file_wine_to_w32 "$1"
1737 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
1738 fi
1739 func_convert_file_check "$1" "$func_to_host_file_result"
1740 }
1741 # end func_convert_file_nix_to_w32
1742
1743
1744 # func_convert_file_msys_to_cygwin ARG
1745 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1746 # Returns result in func_to_host_file_result.
1747 func_convert_file_msys_to_cygwin ()
1748 {
1749 $opt_debug
1750 func_to_host_file_result="$1"
1751 if test -n "$1"; then
1752 func_convert_core_msys_to_w32 "$1"
1753 func_cygpath -u "$func_convert_core_msys_to_w32_result"
1754 func_to_host_file_result="$func_cygpath_result"
1755 fi
1756 func_convert_file_check "$1" "$func_to_host_file_result"
1757 }
1758 # end func_convert_file_msys_to_cygwin
1759
1760
1761 # func_convert_file_nix_to_cygwin ARG
1762 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
1763 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result
1764 # in func_to_host_file_result.
1765 func_convert_file_nix_to_cygwin ()
1766 {
1767 $opt_debug
1768 func_to_host_file_result="$1"
1769 if test -n "$1"; then
1770 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
1771 func_convert_core_file_wine_to_w32 "$1"
1772 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
1773 func_to_host_file_result="$func_cygpath_result"
1774 fi
1775 func_convert_file_check "$1" "$func_to_host_file_result"
1776 }
1777 # end func_convert_file_nix_to_cygwin
1778
1779
1780 #############################################
1781 # $build to $host PATH CONVERSION FUNCTIONS #
1782 #############################################
1783 # invoked via `$to_host_path_cmd ARG'
1784 #
1785 # In each case, ARG is the path to be converted from $build to $host format.
1786 # The result will be available in $func_to_host_path_result.
1787 #
1788 # Path separators are also converted from $build format to $host format. If
1789 # ARG begins or ends with a path separator character, it is preserved (but
1790 # converted to $host format) on output.
1791 #
1792 # All path conversion functions are named using the following convention:
1793 # file name conversion function : func_convert_file_X_to_Y ()
1794 # path conversion function : func_convert_path_X_to_Y ()
1795 # where, for any given $build/$host combination the 'X_to_Y' value is the
1796 # same. If conversion functions are added for new $build/$host combinations,
1797 # the two new functions must follow this pattern, or func_init_to_host_path_cmd
1798 # will break.
1799
1800
1801 # func_init_to_host_path_cmd
1802 # Ensures that function "pointer" variable $to_host_path_cmd is set to the
1803 # appropriate value, based on the value of $to_host_file_cmd.
1804 to_host_path_cmd=
1805 func_init_to_host_path_cmd ()
1806 {
1807 $opt_debug
1808 if test -z "$to_host_path_cmd"; then
1809 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
1810 to_host_path_cmd="func_convert_path_${func_stripname_result}"
1811 fi
1812 }
1813
1814
1815 # func_to_host_path ARG
1816 # Converts the path ARG from $build format to $host format. Return result
1817 # in func_to_host_path_result.
1818 func_to_host_path ()
1819 {
1820 $opt_debug
1821 func_init_to_host_path_cmd
1822 $to_host_path_cmd "$1"
1823 }
1824 # end func_to_host_path
1825
1826
1827 # func_convert_path_noop ARG
1828 # Copy ARG to func_to_host_path_result.
1829 func_convert_path_noop ()
1830 {
1831 func_to_host_path_result="$1"
1832 }
1833 # end func_convert_path_noop
1834
1835
1836 # func_convert_path_msys_to_w32 ARG
1837 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
1838 # conversion to w32 is not available inside the cwrapper. Returns result in
1839 # func_to_host_path_result.
1840 func_convert_path_msys_to_w32 ()
1841 {
1842 $opt_debug
1843 func_to_host_path_result="$1"
1844 if test -n "$1"; then
1845 # Remove leading and trailing path separator characters from ARG. MSYS
1846 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
1847 # and winepath ignores them completely.
1848 func_stripname : : "$1"
1849 func_to_host_path_tmp1=$func_stripname_result
1850 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1851 func_to_host_path_result="$func_convert_core_msys_to_w32_result"
1852 func_convert_path_check : ";" \
1853 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1854 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1855 fi
1856 }
1857 # end func_convert_path_msys_to_w32
1858
1859
1860 # func_convert_path_cygwin_to_w32 ARG
1861 # Convert path ARG from Cygwin to w32 format. Returns result in
1862 # func_to_host_file_result.
1863 func_convert_path_cygwin_to_w32 ()
1864 {
1865 $opt_debug
1866 func_to_host_path_result="$1"
1867 if test -n "$1"; then
1868 # See func_convert_path_msys_to_w32:
1869 func_stripname : : "$1"
1870 func_to_host_path_tmp1=$func_stripname_result
1871 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
1872 func_convert_path_check : ";" \
1873 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1874 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1875 fi
1876 }
1877 # end func_convert_path_cygwin_to_w32
1878
1879
1880 # func_convert_path_nix_to_w32 ARG
1881 # Convert path ARG from *nix to w32 format. Requires a wine environment and
1882 # a working winepath. Returns result in func_to_host_file_result.
1883 func_convert_path_nix_to_w32 ()
1884 {
1885 $opt_debug
1886 func_to_host_path_result="$1"
1887 if test -n "$1"; then
1888 # See func_convert_path_msys_to_w32:
1889 func_stripname : : "$1"
1890 func_to_host_path_tmp1=$func_stripname_result
1891 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1892 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
1893 func_convert_path_check : ";" \
1894 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1895 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1896 fi
1897 }
1898 # end func_convert_path_nix_to_w32
1899
1900
1901 # func_convert_path_msys_to_cygwin ARG
1902 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1903 # Returns result in func_to_host_file_result.
1904 func_convert_path_msys_to_cygwin ()
1905 {
1906 $opt_debug
1907 func_to_host_path_result="$1"
1908 if test -n "$1"; then
1909 # See func_convert_path_msys_to_w32:
1910 func_stripname : : "$1"
1911 func_to_host_path_tmp1=$func_stripname_result
1912 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1913 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
1914 func_to_host_path_result="$func_cygpath_result"
1915 func_convert_path_check : : \
1916 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1917 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1918 fi
1919 }
1920 # end func_convert_path_msys_to_cygwin
1921
1922
1923 # func_convert_path_nix_to_cygwin ARG
1924 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
1925 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in
1926 # func_to_host_file_result.
1927 func_convert_path_nix_to_cygwin ()
1928 {
1929 $opt_debug
1930 func_to_host_path_result="$1"
1931 if test -n "$1"; then
1932 # Remove leading and trailing path separator characters from
1933 # ARG. msys behavior is inconsistent here, cygpath turns them
1934 # into '.;' and ';.', and winepath ignores them completely.
1935 func_stripname : : "$1"
1936 func_to_host_path_tmp1=$func_stripname_result
1937 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1938 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
1939 func_to_host_path_result="$func_cygpath_result"
1940 func_convert_path_check : : \
1941 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1942 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1943 fi
1944 }
1945 # end func_convert_path_nix_to_cygwin
1946
1947
1948 # func_mode_compile arg...
1949 func_mode_compile ()
1950 {
1951 $opt_debug
1952 # Get the compilation command and the source file.
1953 base_compile=
1954 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
1955 suppress_opt=yes
1956 suppress_output=
1957 arg_mode=normal
1958 libobj=
1959 later=
1960 pie_flag=
1961
1962 for arg
1963 do
1964 case $arg_mode in
1965 arg )
1966 # do not "continue". Instead, add this to base_compile
1967 lastarg="$arg"
1968 arg_mode=normal
1969 ;;
1970
1971 target )
1972 libobj="$arg"
1973 arg_mode=normal
1974 continue
1975 ;;
1976
1977 normal )
1978 # Accept any command-line options.
1979 case $arg in
1980 -o)
1981 test -n "$libobj" && \
1982 func_fatal_error "you cannot specify \`-o' more than once"
1983 arg_mode=target
1984 continue
1985 ;;
1986
1987 -pie | -fpie | -fPIE)
1988 func_append pie_flag " $arg"
1989 continue
1990 ;;
1991
1992 -shared | -static | -prefer-pic | -prefer-non-pic)
1993 func_append later " $arg"
1994 continue
1995 ;;
1996
1997 -no-suppress)
1998 suppress_opt=no
1999 continue
2000 ;;
2001
2002 -Xcompiler)
2003 arg_mode=arg # the next one goes into the "base_compile" arg list
2004 continue # The current "srcfile" will either be retained or
2005 ;; # replaced later. I would guess that would be a bug.
2006
2007 -Wc,*)
2008 func_stripname '-Wc,' '' "$arg"
2009 args=$func_stripname_result
2010 lastarg=
2011 save_ifs="$IFS"; IFS=','
2012 for arg in $args; do
2013 IFS="$save_ifs"
2014 func_append_quoted lastarg "$arg"
2015 done
2016 IFS="$save_ifs"
2017 func_stripname ' ' '' "$lastarg"
2018 lastarg=$func_stripname_result
2019
2020 # Add the arguments to base_compile.
2021 func_append base_compile " $lastarg"
2022 continue
2023 ;;
2024
2025 *)
2026 # Accept the current argument as the source file.
2027 # The previous "srcfile" becomes the current argument.
2028 #
2029 lastarg="$srcfile"
2030 srcfile="$arg"
2031 ;;
2032 esac # case $arg
2033 ;;
2034 esac # case $arg_mode
2035
2036 # Aesthetically quote the previous argument.
2037 func_append_quoted base_compile "$lastarg"
2038 done # for arg
2039
2040 case $arg_mode in
2041 arg)
2042 func_fatal_error "you must specify an argument for -Xcompile"
2043 ;;
2044 target)
2045 func_fatal_error "you must specify a target with \`-o'"
2046 ;;
2047 *)
2048 # Get the name of the library object.
2049 test -z "$libobj" && {
2050 func_basename "$srcfile"
2051 libobj="$func_basename_result"
2052 }
2053 ;;
2054 esac
2055
2056 # Recognize several different file suffixes.
2057 # If the user specifies -o file.o, it is replaced with file.lo
2058 case $libobj in
2059 *.[cCFSifmso] | \
2060 *.ada | *.adb | *.ads | *.asm | \
2061 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
2062 *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
2063 func_xform "$libobj"
2064 libobj=$func_xform_result
2065 ;;
2066 esac
2067
2068 case $libobj in
2069 *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
2070 *)
2071 func_fatal_error "cannot determine name of library object from \`$libobj'"
2072 ;;
2073 esac
2074
2075 func_infer_tag $base_compile
2076
2077 for arg in $later; do
2078 case $arg in
2079 -shared)
2080 test "$build_libtool_libs" != yes && \
2081 func_fatal_configuration "can not build a shared library"
2082 build_old_libs=no
2083 continue
2084 ;;
2085
2086 -static)
2087 build_libtool_libs=no
2088 build_old_libs=yes
2089 continue
2090 ;;
2091
2092 -prefer-pic)
2093 pic_mode=yes
2094 continue
2095 ;;
2096
2097 -prefer-non-pic)
2098 pic_mode=no
2099 continue
2100 ;;
2101 esac
2102 done
2103
2104 func_quote_for_eval "$libobj"
2105 test "X$libobj" != "X$func_quote_for_eval_result" \
2106 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
2107 && func_warning "libobj name \`$libobj' may not contain shell special characters."
2108 func_dirname_and_basename "$obj" "/" ""
2109 objname="$func_basename_result"
2110 xdir="$func_dirname_result"
2111 lobj=${xdir}$objdir/$objname
2112
2113 test -z "$base_compile" && \
2114 func_fatal_help "you must specify a compilation command"
2115
2116 # Delete any leftover library objects.
2117 if test "$build_old_libs" = yes; then
2118 removelist="$obj $lobj $libobj ${libobj}T"
2119 else
2120 removelist="$lobj $libobj ${libobj}T"
2121 fi
2122
2123 # On Cygwin there's no "real" PIC flag so we must build both object types
2124 case $host_os in
2125 cygwin* | mingw* | pw32* | os2* | cegcc*)
2126 pic_mode=default
2127 ;;
2128 esac
2129 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
2130 # non-PIC code in shared libraries is not supported
2131 pic_mode=default
2132 fi
2133
2134 # Calculate the filename of the output object if compiler does
2135 # not support -o with -c
2136 if test "$compiler_c_o" = no; then
2137 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
2138 lockfile="$output_obj.lock"
2139 else
2140 output_obj=
2141 need_locks=no
2142 lockfile=
2143 fi
2144
2145 # Lock this critical section if it is needed
2146 # We use this script file to make the link, it avoids creating a new file
2147 if test "$need_locks" = yes; then
2148 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
2149 func_echo "Waiting for $lockfile to be removed"
2150 sleep 2
2151 done
2152 elif test "$need_locks" = warn; then
2153 if test -f "$lockfile"; then
2154 $ECHO "\
2155 *** ERROR, $lockfile exists and contains:
2156 `cat $lockfile 2>/dev/null`
2157
2158 This indicates that another process is trying to use the same
2159 temporary object file, and libtool could not work around it because
2160 your compiler does not support \`-c' and \`-o' together. If you
2161 repeat this compilation, it may succeed, by chance, but you had better
2162 avoid parallel builds (make -j) in this platform, or get a better
2163 compiler."
2164
2165 $opt_dry_run || $RM $removelist
2166 exit $EXIT_FAILURE
2167 fi
2168 func_append removelist " $output_obj"
2169 $ECHO "$srcfile" > "$lockfile"
2170 fi
2171
2172 $opt_dry_run || $RM $removelist
2173 func_append removelist " $lockfile"
2174 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
2175
2176 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
2177 srcfile=$func_to_tool_file_result
2178 func_quote_for_eval "$srcfile"
2179 qsrcfile=$func_quote_for_eval_result
2180
2181 # Only build a PIC object if we are building libtool libraries.
2182 if test "$build_libtool_libs" = yes; then
2183 # Without this assignment, base_compile gets emptied.
2184 fbsd_hideous_sh_bug=$base_compile
2185
2186 if test "$pic_mode" != no; then
2187 command="$base_compile $qsrcfile $pic_flag"
2188 else
2189 # Don't build PIC code
2190 command="$base_compile $qsrcfile"
2191 fi
2192
2193 func_mkdir_p "$xdir$objdir"
2194
2195 if test -z "$output_obj"; then
2196 # Place PIC objects in $objdir
2197 func_append command " -o $lobj"
2198 fi
2199
2200 func_show_eval_locale "$command" \
2201 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
2202
2203 if test "$need_locks" = warn &&
2204 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2205 $ECHO "\
2206 *** ERROR, $lockfile contains:
2207 `cat $lockfile 2>/dev/null`
2208
2209 but it should contain:
2210 $srcfile
2211
2212 This indicates that another process is trying to use the same
2213 temporary object file, and libtool could not work around it because
2214 your compiler does not support \`-c' and \`-o' together. If you
2215 repeat this compilation, it may succeed, by chance, but you had better
2216 avoid parallel builds (make -j) in this platform, or get a better
2217 compiler."
2218
2219 $opt_dry_run || $RM $removelist
2220 exit $EXIT_FAILURE
2221 fi
2222
2223 # Just move the object if needed, then go on to compile the next one
2224 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
2225 func_show_eval '$MV "$output_obj" "$lobj"' \
2226 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
2227 fi
2228
2229 # Allow error messages only from the first compilation.
2230 if test "$suppress_opt" = yes; then
2231 suppress_output=' >/dev/null 2>&1'
2232 fi
2233 fi
2234
2235 # Only build a position-dependent object if we build old libraries.
2236 if test "$build_old_libs" = yes; then
2237 if test "$pic_mode" != yes; then
2238 # Don't build PIC code
2239 command="$base_compile $qsrcfile$pie_flag"
2240 else
2241 command="$base_compile $qsrcfile $pic_flag"
2242 fi
2243 if test "$compiler_c_o" = yes; then
2244 func_append command " -o $obj"
2245 fi
2246
2247 # Suppress compiler output if we already did a PIC compilation.
2248 func_append command "$suppress_output"
2249 func_show_eval_locale "$command" \
2250 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
2251
2252 if test "$need_locks" = warn &&
2253 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2254 $ECHO "\
2255 *** ERROR, $lockfile contains:
2256 `cat $lockfile 2>/dev/null`
2257
2258 but it should contain:
2259 $srcfile
2260
2261 This indicates that another process is trying to use the same
2262 temporary object file, and libtool could not work around it because
2263 your compiler does not support \`-c' and \`-o' together. If you
2264 repeat this compilation, it may succeed, by chance, but you had better
2265 avoid parallel builds (make -j) in this platform, or get a better
2266 compiler."
2267
2268 $opt_dry_run || $RM $removelist
2269 exit $EXIT_FAILURE
2270 fi
2271
2272 # Just move the object if needed
2273 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
2274 func_show_eval '$MV "$output_obj" "$obj"' \
2275 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
2276 fi
2277 fi
2278
2279 $opt_dry_run || {
2280 func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
2281
2282 # Unlock the critical section if it was locked
2283 if test "$need_locks" != no; then
2284 removelist=$lockfile
2285 $RM "$lockfile"
2286 fi
2287 }
2288
2289 exit $EXIT_SUCCESS
2290 }
2291
2292 $opt_help || {
2293 test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
2294 }
2295
2296 func_mode_help ()
2297 {
2298 # We need to display help for each of the modes.
2299 case $opt_mode in
2300 "")
2301 # Generic help is extracted from the usage comments
2302 # at the start of this file.
2303 func_help
2304 ;;
2305
2306 clean)
2307 $ECHO \
2308 "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
2309
2310 Remove files from the build directory.
2311
2312 RM is the name of the program to use to delete files associated with each FILE
2313 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2314 to RM.
2315
2316 If FILE is a libtool library, object or program, all the files associated
2317 with it are deleted. Otherwise, only FILE itself is deleted using RM."
2318 ;;
2319
2320 compile)
2321 $ECHO \
2322 "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
2323
2324 Compile a source file into a libtool library object.
2325
2326 This mode accepts the following additional options:
2327
2328 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
2329 -no-suppress do not suppress compiler output for multiple passes
2330 -prefer-pic try to build PIC objects only
2331 -prefer-non-pic try to build non-PIC objects only
2332 -shared do not build a \`.o' file suitable for static linking
2333 -static only build a \`.o' file suitable for static linking
2334 -Wc,FLAG pass FLAG directly to the compiler
2335
2336 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2337 from the given SOURCEFILE.
2338
2339 The output file name is determined by removing the directory component from
2340 SOURCEFILE, then substituting the C source code suffix \`.c' with the
2341 library object suffix, \`.lo'."
2342 ;;
2343
2344 execute)
2345 $ECHO \
2346 "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
2347
2348 Automatically set library path, then run a program.
2349
2350 This mode accepts the following additional options:
2351
2352 -dlopen FILE add the directory containing FILE to the library path
2353
2354 This mode sets the library path environment variable according to \`-dlopen'
2355 flags.
2356
2357 If any of the ARGS are libtool executable wrappers, then they are translated
2358 into their corresponding uninstalled binary, and any of their required library
2359 directories are added to the library path.
2360
2361 Then, COMMAND is executed, with ARGS as arguments."
2362 ;;
2363
2364 finish)
2365 $ECHO \
2366 "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
2367
2368 Complete the installation of libtool libraries.
2369
2370 Each LIBDIR is a directory that contains libtool libraries.
2371
2372 The commands that this mode executes may require superuser privileges. Use
2373 the \`--dry-run' option if you just want to see what would be executed."
2374 ;;
2375
2376 install)
2377 $ECHO \
2378 "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
2379
2380 Install executables or libraries.
2381
2382 INSTALL-COMMAND is the installation command. The first component should be
2383 either the \`install' or \`cp' program.
2384
2385 The following components of INSTALL-COMMAND are treated specially:
2386
2387 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
2388
2389 The rest of the components are interpreted as arguments to that command (only
2390 BSD-compatible install options are recognized)."
2391 ;;
2392
2393 link)
2394 $ECHO \
2395 "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
2396
2397 Link object files or libraries together to form another library, or to
2398 create an executable program.
2399
2400 LINK-COMMAND is a command using the C compiler that you would use to create
2401 a program from several object files.
2402
2403 The following components of LINK-COMMAND are treated specially:
2404
2405 -all-static do not do any dynamic linking at all
2406 -avoid-version do not add a version suffix if possible
2407 -bindir BINDIR specify path to binaries directory (for systems where
2408 libraries must be found in the PATH setting at runtime)
2409 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
2410 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
2411 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2412 -export-symbols SYMFILE
2413 try to export only the symbols listed in SYMFILE
2414 -export-symbols-regex REGEX
2415 try to export only the symbols matching REGEX
2416 -LLIBDIR search LIBDIR for required installed libraries
2417 -lNAME OUTPUT-FILE requires the installed library libNAME
2418 -module build a library that can dlopened
2419 -no-fast-install disable the fast-install mode
2420 -no-install link a not-installable executable
2421 -no-undefined declare that a library does not refer to external symbols
2422 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
2423 -objectlist FILE Use a list of object files found in FILE to specify objects
2424 -precious-files-regex REGEX
2425 don't remove output files matching REGEX
2426 -release RELEASE specify package release information
2427 -rpath LIBDIR the created library will eventually be installed in LIBDIR
2428 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
2429 -shared only do dynamic linking of libtool libraries
2430 -shrext SUFFIX override the standard shared library file extension
2431 -static do not do any dynamic linking of uninstalled libtool libraries
2432 -static-libtool-libs
2433 do not do any dynamic linking of libtool libraries
2434 -version-info CURRENT[:REVISION[:AGE]]
2435 specify library version info [each variable defaults to 0]
2436 -weak LIBNAME declare that the target provides the LIBNAME interface
2437 -Wc,FLAG
2438 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
2439 -Wl,FLAG
2440 -Xlinker FLAG pass linker-specific FLAG directly to the linker
2441 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
2442
2443 All other options (arguments beginning with \`-') are ignored.
2444
2445 Every other argument is treated as a filename. Files ending in \`.la' are
2446 treated as uninstalled libtool libraries, other files are standard or library
2447 object files.
2448
2449 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
2450 only library objects (\`.lo' files) may be specified, and \`-rpath' is
2451 required, except when creating a convenience library.
2452
2453 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2454 using \`ar' and \`ranlib', or on Windows using \`lib'.
2455
2456 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2457 is created, otherwise an executable program is created."
2458 ;;
2459
2460 uninstall)
2461 $ECHO \
2462 "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2463
2464 Remove libraries from an installation directory.
2465
2466 RM is the name of the program to use to delete files associated with each FILE
2467 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2468 to RM.
2469
2470 If FILE is a libtool library, all the files associated with it are deleted.
2471 Otherwise, only FILE itself is deleted using RM."
2472 ;;
2473
2474 *)
2475 func_fatal_help "invalid operation mode \`$opt_mode'"
2476 ;;
2477 esac
2478
2479 echo
2480 $ECHO "Try \`$progname --help' for more information about other modes."
2481 }
2482
2483 # Now that we've collected a possible --mode arg, show help if necessary
2484 if $opt_help; then
2485 if test "$opt_help" = :; then
2486 func_mode_help
2487 else
2488 {
2489 func_help noexit
2490 for opt_mode in compile link execute install finish uninstall clean; do
2491 func_mode_help
2492 done
2493 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
2494 {
2495 func_help noexit
2496 for opt_mode in compile link execute install finish uninstall clean; do
2497 echo
2498 func_mode_help
2499 done
2500 } |
2501 sed '1d
2502 /^When reporting/,/^Report/{
2503 H
2504 d
2505 }
2506 $x
2507 /information about other modes/d
2508 /more detailed .*MODE/d
2509 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
2510 fi
2511 exit $?
2512 fi
2513
2514
2515 # func_mode_execute arg...
2516 func_mode_execute ()
2517 {
2518 $opt_debug
2519 # The first argument is the command name.
2520 cmd="$nonopt"
2521 test -z "$cmd" && \
2522 func_fatal_help "you must specify a COMMAND"
2523
2524 # Handle -dlopen flags immediately.
2525 for file in $opt_dlopen; do
2526 test -f "$file" \
2527 || func_fatal_help "\`$file' is not a file"
2528
2529 dir=
2530 case $file in
2531 *.la)
2532 func_resolve_sysroot "$file"
2533 file=$func_resolve_sysroot_result
2534
2535 # Check to see that this really is a libtool archive.
2536 func_lalib_unsafe_p "$file" \
2537 || func_fatal_help "\`$lib' is not a valid libtool archive"
2538
2539 # Read the libtool library.
2540 dlname=
2541 library_names=
2542 func_source "$file"
2543
2544 # Skip this library if it cannot be dlopened.
2545 if test -z "$dlname"; then
2546 # Warn if it was a shared library.
2547 test -n "$library_names" && \
2548 func_warning "\`$file' was not linked with \`-export-dynamic'"
2549 continue
2550 fi
2551
2552 func_dirname "$file" "" "."
2553 dir="$func_dirname_result"
2554
2555 if test -f "$dir/$objdir/$dlname"; then
2556 func_append dir "/$objdir"
2557 else
2558 if test ! -f "$dir/$dlname"; then
2559 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
2560 fi
2561 fi
2562 ;;
2563
2564 *.lo)
2565 # Just add the directory containing the .lo file.
2566 func_dirname "$file" "" "."
2567 dir="$func_dirname_result"
2568 ;;
2569
2570 *)
2571 func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
2572 continue
2573 ;;
2574 esac
2575
2576 # Get the absolute pathname.
2577 absdir=`cd "$dir" && pwd`
2578 test -n "$absdir" && dir="$absdir"
2579
2580 # Now add the directory to shlibpath_var.
2581 if eval "test -z \"\$$shlibpath_var\""; then
2582 eval "$shlibpath_var=\"\$dir\""
2583 else
2584 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2585 fi
2586 done
2587
2588 # This variable tells wrapper scripts just to set shlibpath_var
2589 # rather than running their programs.
2590 libtool_execute_magic="$magic"
2591
2592 # Check if any of the arguments is a wrapper script.
2593 args=
2594 for file
2595 do
2596 case $file in
2597 -* | *.la | *.lo ) ;;
2598 *)
2599 # Do a test to see if this is really a libtool program.
2600 if func_ltwrapper_script_p "$file"; then
2601 func_source "$file"
2602 # Transform arg to wrapped name.
2603 file="$progdir/$program"
2604 elif func_ltwrapper_executable_p "$file"; then
2605 func_ltwrapper_scriptname "$file"
2606 func_source "$func_ltwrapper_scriptname_result"
2607 # Transform arg to wrapped name.
2608 file="$progdir/$program"
2609 fi
2610 ;;
2611 esac
2612 # Quote arguments (to preserve shell metacharacters).
2613 func_append_quoted args "$file"
2614 done
2615
2616 if test "X$opt_dry_run" = Xfalse; then
2617 if test -n "$shlibpath_var"; then
2618 # Export the shlibpath_var.
2619 eval "export $shlibpath_var"
2620 fi
2621
2622 # Restore saved environment variables
2623 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
2624 do
2625 eval "if test \"\${save_$lt_var+set}\" = set; then
2626 $lt_var=\$save_$lt_var; export $lt_var
2627 else
2628 $lt_unset $lt_var
2629 fi"
2630 done
2631
2632 # Now prepare to actually exec the command.
2633 exec_cmd="\$cmd$args"
2634 else
2635 # Display what would be done.
2636 if test -n "$shlibpath_var"; then
2637 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
2638 echo "export $shlibpath_var"
2639 fi
2640 $ECHO "$cmd$args"
2641 exit $EXIT_SUCCESS
2642 fi
2643 }
2644
2645 test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
2646
2647
2648 # func_mode_finish arg...
2649 func_mode_finish ()
2650 {
2651 $opt_debug
2652 libs=
2653 libdirs=
2654 admincmds=
2655
2656 for opt in "$nonopt" ${1+"$@"}
2657 do
2658 if test -d "$opt"; then
2659 func_append libdirs " $opt"
2660
2661 elif test -f "$opt"; then
2662 if func_lalib_unsafe_p "$opt"; then
2663 func_append libs " $opt"
2664 else
2665 func_warning "\`$opt' is not a valid libtool archive"
2666 fi
2667
2668 else
2669 func_fatal_error "invalid argument \`$opt'"
2670 fi
2671 done
2672
2673 if test -n "$libs"; then
2674 if test -n "$lt_sysroot"; then
2675 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
2676 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
2677 else
2678 sysroot_cmd=
2679 fi
2680
2681 # Remove sysroot references
2682 if $opt_dry_run; then
2683 for lib in $libs; do
2684 echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
2685 done
2686 else
2687 tmpdir=`func_mktempdir`
2688 for lib in $libs; do
2689 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
2690 > $tmpdir/tmp-la
2691 mv -f $tmpdir/tmp-la $lib
2692 done
2693 ${RM}r "$tmpdir"
2694 fi
2695 fi
2696
2697 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2698 for libdir in $libdirs; do
2699 if test -n "$finish_cmds"; then
2700 # Do each command in the finish commands.
2701 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
2702 '"$cmd"'"'
2703 fi
2704 if test -n "$finish_eval"; then
2705 # Do the single finish_eval.
2706 eval cmds=\"$finish_eval\"
2707 $opt_dry_run || eval "$cmds" || func_append admincmds "
2708 $cmds"
2709 fi
2710 done
2711 fi
2712
2713 # Exit here if they wanted silent mode.
2714 $opt_silent && exit $EXIT_SUCCESS
2715
2716 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2717 echo "----------------------------------------------------------------------"
2718 echo "Libraries have been installed in:"
2719 for libdir in $libdirs; do
2720 $ECHO " $libdir"
2721 done
2722 echo
2723 echo "If you ever happen to want to link against installed libraries"
2724 echo "in a given directory, LIBDIR, you must either use libtool, and"
2725 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2726 echo "flag during linking and do at least one of the following:"
2727 if test -n "$shlibpath_var"; then
2728 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2729 echo " during execution"
2730 fi
2731 if test -n "$runpath_var"; then
2732 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2733 echo " during linking"
2734 fi
2735 if test -n "$hardcode_libdir_flag_spec"; then
2736 libdir=LIBDIR
2737 eval flag=\"$hardcode_libdir_flag_spec\"
2738
2739 $ECHO " - use the \`$flag' linker flag"
2740 fi
2741 if test -n "$admincmds"; then
2742 $ECHO " - have your system administrator run these commands:$admincmds"
2743 fi
2744 if test -f /etc/ld.so.conf; then
2745 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2746 fi
2747 echo
2748
2749 echo "See any operating system documentation about shared libraries for"
2750 case $host in
2751 solaris2.[6789]|solaris2.1[0-9])
2752 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2753 echo "pages."
2754 ;;
2755 *)
2756 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2757 ;;
2758 esac
2759 echo "----------------------------------------------------------------------"
2760 fi
2761 exit $EXIT_SUCCESS
2762 }
2763
2764 test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
2765
2766
2767 # func_mode_install arg...
2768 func_mode_install ()
2769 {
2770 $opt_debug
2771 # There may be an optional sh(1) argument at the beginning of
2772 # install_prog (especially on Windows NT).
2773 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
2774 # Allow the use of GNU shtool's install command.
2775 case $nonopt in *shtool*) :;; *) false;; esac; then
2776 # Aesthetically quote it.
2777 func_quote_for_eval "$nonopt"
2778 install_prog="$func_quote_for_eval_result "
2779 arg=$1
2780 shift
2781 else
2782 install_prog=
2783 arg=$nonopt
2784 fi
2785
2786 # The real first argument should be the name of the installation program.
2787 # Aesthetically quote it.
2788 func_quote_for_eval "$arg"
2789 func_append install_prog "$func_quote_for_eval_result"
2790 install_shared_prog=$install_prog
2791 case " $install_prog " in
2792 *[\\\ /]cp\ *) install_cp=: ;;
2793 *) install_cp=false ;;
2794 esac
2795
2796 # We need to accept at least all the BSD install flags.
2797 dest=
2798 files=
2799 opts=
2800 prev=
2801 install_type=
2802 isdir=no
2803 stripme=
2804 no_mode=:
2805 for arg
2806 do
2807 arg2=
2808 if test -n "$dest"; then
2809 func_append files " $dest"
2810 dest=$arg
2811 continue
2812 fi
2813
2814 case $arg in
2815 -d) isdir=yes ;;
2816 -f)
2817 if $install_cp; then :; else
2818 prev=$arg
2819 fi
2820 ;;
2821 -g | -m | -o)
2822 prev=$arg
2823 ;;
2824 -s)
2825 stripme=" -s"
2826 continue
2827 ;;
2828 -*)
2829 ;;
2830 *)
2831 # If the previous option needed an argument, then skip it.
2832 if test -n "$prev"; then
2833 if test "x$prev" = x-m && test -n "$install_override_mode"; then
2834 arg2=$install_override_mode
2835 no_mode=false
2836 fi
2837 prev=
2838 else
2839 dest=$arg
2840 continue
2841 fi
2842 ;;
2843 esac
2844
2845 # Aesthetically quote the argument.
2846 func_quote_for_eval "$arg"
2847 func_append install_prog " $func_quote_for_eval_result"
2848 if test -n "$arg2"; then
2849 func_quote_for_eval "$arg2"
2850 fi
2851 func_append install_shared_prog " $func_quote_for_eval_result"
2852 done
2853
2854 test -z "$install_prog" && \
2855 func_fatal_help "you must specify an install program"
2856
2857 test -n "$prev" && \
2858 func_fatal_help "the \`$prev' option requires an argument"
2859
2860 if test -n "$install_override_mode" && $no_mode; then
2861 if $install_cp; then :; else
2862 func_quote_for_eval "$install_override_mode"
2863 func_append install_shared_prog " -m $func_quote_for_eval_result"
2864 fi
2865 fi
2866
2867 if test -z "$files"; then
2868 if test -z "$dest"; then
2869 func_fatal_help "no file or destination specified"
2870 else
2871 func_fatal_help "you must specify a destination"
2872 fi
2873 fi
2874
2875 # Strip any trailing slash from the destination.
2876 func_stripname '' '/' "$dest"
2877 dest=$func_stripname_result
2878
2879 # Check to see that the destination is a directory.
2880 test -d "$dest" && isdir=yes
2881 if test "$isdir" = yes; then
2882 destdir="$dest"
2883 destname=
2884 else
2885 func_dirname_and_basename "$dest" "" "."
2886 destdir="$func_dirname_result"
2887 destname="$func_basename_result"
2888
2889 # Not a directory, so check to see that there is only one file specified.
2890 set dummy $files; shift
2891 test "$#" -gt 1 && \
2892 func_fatal_help "\`$dest' is not a directory"
2893 fi
2894 case $destdir in
2895 [\\/]* | [A-Za-z]:[\\/]*) ;;
2896 *)
2897 for file in $files; do
2898 case $file in
2899 *.lo) ;;
2900 *)
2901 func_fatal_help "\`$destdir' must be an absolute directory name"
2902 ;;
2903 esac
2904 done
2905 ;;
2906 esac
2907
2908 # This variable tells wrapper scripts just to set variables rather
2909 # than running their programs.
2910 libtool_install_magic="$magic"
2911
2912 staticlibs=
2913 future_libdirs=
2914 current_libdirs=
2915 for file in $files; do
2916
2917 # Do each installation.
2918 case $file in
2919 *.$libext)
2920 # Do the static libraries later.
2921 func_append staticlibs " $file"
2922 ;;
2923
2924 *.la)
2925 func_resolve_sysroot "$file"
2926 file=$func_resolve_sysroot_result
2927
2928 # Check to see that this really is a libtool archive.
2929 func_lalib_unsafe_p "$file" \
2930 || func_fatal_help "\`$file' is not a valid libtool archive"
2931
2932 library_names=
2933 old_library=
2934 relink_command=
2935 func_source "$file"
2936
2937 # Add the libdir to current_libdirs if it is the destination.
2938 if test "X$destdir" = "X$libdir"; then
2939 case "$current_libdirs " in
2940 *" $libdir "*) ;;
2941 *) func_append current_libdirs " $libdir" ;;
2942 esac
2943 else
2944 # Note the libdir as a future libdir.
2945 case "$future_libdirs " in
2946 *" $libdir "*) ;;
2947 *) func_append future_libdirs " $libdir" ;;
2948 esac
2949 fi
2950
2951 func_dirname "$file" "/" ""
2952 dir="$func_dirname_result"
2953 func_append dir "$objdir"
2954
2955 if test -n "$relink_command"; then
2956 # Determine the prefix the user has applied to our future dir.
2957 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2958
2959 # Don't allow the user to place us outside of our expected
2960 # location b/c this prevents finding dependent libraries that
2961 # are installed to the same prefix.
2962 # At present, this check doesn't affect windows .dll's that
2963 # are installed into $libdir/../bin (currently, that works fine)
2964 # but it's something to keep an eye on.
2965 test "$inst_prefix_dir" = "$destdir" && \
2966 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
2967
2968 if test -n "$inst_prefix_dir"; then
2969 # Stick the inst_prefix_dir data into the link command.
2970 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2971 else
2972 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2973 fi
2974
2975 func_warning "relinking \`$file'"
2976 func_show_eval "$relink_command" \
2977 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2978 fi
2979
2980 # See the names of the shared library.
2981 set dummy $library_names; shift
2982 if test -n "$1"; then
2983 realname="$1"
2984 shift
2985
2986 srcname="$realname"
2987 test -n "$relink_command" && srcname="$realname"T
2988
2989 # Install the shared library and build the symlinks.
2990 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2991 'exit $?'
2992 tstripme="$stripme"
2993 case $host_os in
2994 cygwin* | mingw* | pw32* | cegcc*)
2995 case $realname in
2996 *.dll.a)
2997 tstripme=""
2998 ;;
2999 esac
3000 ;;
3001 esac
3002 if test -n "$tstripme" && test -n "$striplib"; then
3003 func_show_eval "$striplib $destdir/$realname" 'exit $?'
3004 fi
3005
3006 if test "$#" -gt 0; then
3007 # Delete the old symlinks, and create new ones.
3008 # Try `ln -sf' first, because the `ln' binary might depend on
3009 # the symlink we replace! Solaris /bin/ln does not understand -f,
3010 # so we also need to try rm && ln -s.
3011 for linkname
3012 do
3013 test "$linkname" != "$realname" \
3014 && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
3015 done
3016 fi
3017
3018 # Do each command in the postinstall commands.
3019 lib="$destdir/$realname"
3020 func_execute_cmds "$postinstall_cmds" 'exit $?'
3021 fi
3022
3023 # Install the pseudo-library for information purposes.
3024 func_basename "$file"
3025 name="$func_basename_result"
3026 instname="$dir/$name"i
3027 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
3028
3029 # Maybe install the static library, too.
3030 test -n "$old_library" && func_append staticlibs " $dir/$old_library"
3031 ;;
3032
3033 *.lo)
3034 # Install (i.e. copy) a libtool object.
3035
3036 # Figure out destination file name, if it wasn't already specified.
3037 if test -n "$destname"; then
3038 destfile="$destdir/$destname"
3039 else
3040 func_basename "$file"
3041 destfile="$func_basename_result"
3042 destfile="$destdir/$destfile"
3043 fi
3044
3045 # Deduce the name of the destination old-style object file.
3046 case $destfile in
3047 *.lo)
3048 func_lo2o "$destfile"
3049 staticdest=$func_lo2o_result
3050 ;;
3051 *.$objext)
3052 staticdest="$destfile"
3053 destfile=
3054 ;;
3055 *)
3056 func_fatal_help "cannot copy a libtool object to \`$destfile'"
3057 ;;
3058 esac
3059
3060 # Install the libtool object if requested.
3061 test -n "$destfile" && \
3062 func_show_eval "$install_prog $file $destfile" 'exit $?'
3063
3064 # Install the old object if enabled.
3065 if test "$build_old_libs" = yes; then
3066 # Deduce the name of the old-style object file.
3067 func_lo2o "$file"
3068 staticobj=$func_lo2o_result
3069 func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
3070 fi
3071 exit $EXIT_SUCCESS
3072 ;;
3073
3074 *)
3075 # Figure out destination file name, if it wasn't already specified.
3076 if test -n "$destname"; then
3077 destfile="$destdir/$destname"
3078 else
3079 func_basename "$file"
3080 destfile="$func_basename_result"
3081 destfile="$destdir/$destfile"
3082 fi
3083
3084 # If the file is missing, and there is a .exe on the end, strip it
3085 # because it is most likely a libtool script we actually want to
3086 # install
3087 stripped_ext=""
3088 case $file in
3089 *.exe)
3090 if test ! -f "$file"; then
3091 func_stripname '' '.exe' "$file"
3092 file=$func_stripname_result
3093 stripped_ext=".exe"
3094 fi
3095 ;;
3096 esac
3097
3098 # Do a test to see if this is really a libtool program.
3099 case $host in
3100 *cygwin* | *mingw*)
3101 if func_ltwrapper_executable_p "$file"; then
3102 func_ltwrapper_scriptname "$file"
3103 wrapper=$func_ltwrapper_scriptname_result
3104 else
3105 func_stripname '' '.exe' "$file"
3106 wrapper=$func_stripname_result
3107 fi
3108 ;;
3109 *)
3110 wrapper=$file
3111 ;;
3112 esac
3113 if func_ltwrapper_script_p "$wrapper"; then
3114 notinst_deplibs=
3115 relink_command=
3116
3117 func_source "$wrapper"
3118
3119 # Check the variables that should have been set.
3120 test -z "$generated_by_libtool_version" && \
3121 func_fatal_error "invalid libtool wrapper script \`$wrapper'"
3122
3123 finalize=yes
3124 for lib in $notinst_deplibs; do
3125 # Check to see that each library is installed.
3126 libdir=
3127 if test -f "$lib"; then
3128 func_source "$lib"
3129 fi
3130 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
3131 if test -n "$libdir" && test ! -f "$libfile"; then
3132 func_warning "\`$lib' has not been installed in \`$libdir'"
3133 finalize=no
3134 fi
3135 done
3136
3137 relink_command=
3138 func_source "$wrapper"
3139
3140 outputname=
3141 if test "$fast_install" = no && test -n "$relink_command"; then
3142 $opt_dry_run || {
3143 if test "$finalize" = yes; then
3144 tmpdir=`func_mktempdir`
3145 func_basename "$file$stripped_ext"
3146 file="$func_basename_result"
3147 outputname="$tmpdir/$file"
3148 # Replace the output file specification.
3149 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
3150
3151 $opt_silent || {
3152 func_quote_for_expand "$relink_command"
3153 eval "func_echo $func_quote_for_expand_result"
3154 }
3155 if eval "$relink_command"; then :
3156 else
3157 func_error "error: relink \`$file' with the above command before installing it"
3158 $opt_dry_run || ${RM}r "$tmpdir"
3159 continue
3160 fi
3161 file="$outputname"
3162 else
3163 func_warning "cannot relink \`$file'"
3164 fi
3165 }
3166 else
3167 # Install the binary that we compiled earlier.
3168 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
3169 fi
3170 fi
3171
3172 # remove .exe since cygwin /usr/bin/install will append another
3173 # one anyway
3174 case $install_prog,$host in
3175 */usr/bin/install*,*cygwin*)
3176 case $file:$destfile in
3177 *.exe:*.exe)
3178 # this is ok
3179 ;;
3180 *.exe:*)
3181 destfile=$destfile.exe
3182 ;;
3183 *:*.exe)
3184 func_stripname '' '.exe' "$destfile"
3185 destfile=$func_stripname_result
3186 ;;
3187 esac
3188 ;;
3189 esac
3190 func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
3191 $opt_dry_run || if test -n "$outputname"; then
3192 ${RM}r "$tmpdir"
3193 fi
3194 ;;
3195 esac
3196 done
3197
3198 for file in $staticlibs; do
3199 func_basename "$file"
3200 name="$func_basename_result"
3201
3202 # Set up the ranlib parameters.
3203 oldlib="$destdir/$name"
3204 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
3205 tool_oldlib=$func_to_tool_file_result
3206
3207 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
3208
3209 if test -n "$stripme" && test -n "$old_striplib"; then
3210 func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
3211 fi
3212
3213 # Do each command in the postinstall commands.
3214 func_execute_cmds "$old_postinstall_cmds" 'exit $?'
3215 done
3216
3217 test -n "$future_libdirs" && \
3218 func_warning "remember to run \`$progname --finish$future_libdirs'"
3219
3220 if test -n "$current_libdirs"; then
3221 # Maybe just do a dry run.
3222 $opt_dry_run && current_libdirs=" -n$current_libdirs"
3223 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
3224 else
3225 exit $EXIT_SUCCESS
3226 fi
3227 }
3228
3229 test "$opt_mode" = install && func_mode_install ${1+"$@"}
3230
3231
3232 # func_generate_dlsyms outputname originator pic_p
3233 # Extract symbols from dlprefiles and create ${outputname}S.o with
3234 # a dlpreopen symbol table.
3235 func_generate_dlsyms ()
3236 {
3237 $opt_debug
3238 my_outputname="$1"
3239 my_originator="$2"
3240 my_pic_p="${3-no}"
3241 my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
3242 my_dlsyms=
3243
3244 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3245 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3246 my_dlsyms="${my_outputname}S.c"
3247 else
3248 func_error "not configured to extract global symbols from dlpreopened files"
3249 fi
3250 fi
3251
3252 if test -n "$my_dlsyms"; then
3253 case $my_dlsyms in
3254 "") ;;
3255 *.c)
3256 # Discover the nlist of each of the dlfiles.
3257 nlist="$output_objdir/${my_outputname}.nm"
3258
3259 func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
3260
3261 # Parse the name list into a source file.
3262 func_verbose "creating $output_objdir/$my_dlsyms"
3263
3264 $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
3265 /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
3266 /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
3267
3268 #ifdef __cplusplus
3269 extern \"C\" {
3270 #endif
3271
3272 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
3273 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
3274 #endif
3275
3276 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3277 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3278 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3279 relocations are performed -- see ld's documentation on pseudo-relocs. */
3280 # define LT_DLSYM_CONST
3281 #elif defined(__osf__)
3282 /* This system does not cope well with relocations in const data. */
3283 # define LT_DLSYM_CONST
3284 #else
3285 # define LT_DLSYM_CONST const
3286 #endif
3287
3288 /* External symbol declarations for the compiler. */\
3289 "
3290
3291 if test "$dlself" = yes; then
3292 func_verbose "generating symbol list for \`$output'"
3293
3294 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
3295
3296 # Add our own program objects to the symbol list.
3297 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
3298 for progfile in $progfiles; do
3299 func_to_tool_file "$progfile" func_convert_file_msys_to_w32
3300 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
3301 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
3302 done
3303
3304 if test -n "$exclude_expsyms"; then
3305 $opt_dry_run || {
3306 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3307 eval '$MV "$nlist"T "$nlist"'
3308 }
3309 fi
3310
3311 if test -n "$export_symbols_regex"; then
3312 $opt_dry_run || {
3313 eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3314 eval '$MV "$nlist"T "$nlist"'
3315 }
3316 fi
3317
3318 # Prepare the list of exported symbols
3319 if test -z "$export_symbols"; then
3320 export_symbols="$output_objdir/$outputname.exp"
3321 $opt_dry_run || {
3322 $RM $export_symbols
3323 eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3324 case $host in
3325 *cygwin* | *mingw* | *cegcc* )
3326 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3327 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
3328 ;;
3329 esac
3330 }
3331 else
3332 $opt_dry_run || {
3333 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
3334 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
3335 eval '$MV "$nlist"T "$nlist"'
3336 case $host in
3337 *cygwin* | *mingw* | *cegcc* )
3338 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3339 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
3340 ;;
3341 esac
3342 }
3343 fi
3344 fi
3345
3346 for dlprefile in $dlprefiles; do
3347 func_verbose "extracting global C symbols from \`$dlprefile'"
3348 func_basename "$dlprefile"
3349 name="$func_basename_result"
3350 case $host in
3351 *cygwin* | *mingw* | *cegcc* )
3352 # if an import library, we need to obtain dlname
3353 if func_win32_import_lib_p "$dlprefile"; then
3354 func_tr_sh "$dlprefile"
3355 eval "curr_lafile=\$libfile_$func_tr_sh_result"
3356 dlprefile_dlbasename=""
3357 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
3358 # Use subshell, to avoid clobbering current variable values
3359 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
3360 if test -n "$dlprefile_dlname" ; then
3361 func_basename "$dlprefile_dlname"
3362 dlprefile_dlbasename="$func_basename_result"
3363 else
3364 # no lafile. user explicitly requested -dlpreopen <import library>.
3365 $sharedlib_from_linklib_cmd "$dlprefile"
3366 dlprefile_dlbasename=$sharedlib_from_linklib_result
3367 fi
3368 fi
3369 $opt_dry_run || {
3370 if test -n "$dlprefile_dlbasename" ; then
3371 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
3372 else
3373 func_warning "Could not compute DLL name from $name"
3374 eval '$ECHO ": $name " >> "$nlist"'
3375 fi
3376 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3377 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
3378 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
3379 }
3380 else # not an import lib
3381 $opt_dry_run || {
3382 eval '$ECHO ": $name " >> "$nlist"'
3383 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3384 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3385 }
3386 fi
3387 ;;
3388 *)
3389 $opt_dry_run || {
3390 eval '$ECHO ": $name " >> "$nlist"'
3391 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3392 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3393 }
3394 ;;
3395 esac
3396 done
3397
3398 $opt_dry_run || {
3399 # Make sure we have at least an empty file.
3400 test -f "$nlist" || : > "$nlist"
3401
3402 if test -n "$exclude_expsyms"; then
3403 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3404 $MV "$nlist"T "$nlist"
3405 fi
3406
3407 # Try sorting and uniquifying the output.
3408 if $GREP -v "^: " < "$nlist" |
3409 if sort -k 3 </dev/null >/dev/null 2>&1; then
3410 sort -k 3
3411 else
3412 sort +2
3413 fi |
3414 uniq > "$nlist"S; then
3415 :
3416 else
3417 $GREP -v "^: " < "$nlist" > "$nlist"S
3418 fi
3419
3420 if test -f "$nlist"S; then
3421 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
3422 else
3423 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
3424 fi
3425
3426 echo >> "$output_objdir/$my_dlsyms" "\
3427
3428 /* The mapping between symbol names and symbols. */
3429 typedef struct {
3430 const char *name;
3431 void *address;
3432 } lt_dlsymlist;
3433 extern LT_DLSYM_CONST lt_dlsymlist
3434 lt_${my_prefix}_LTX_preloaded_symbols[];
3435 LT_DLSYM_CONST lt_dlsymlist
3436 lt_${my_prefix}_LTX_preloaded_symbols[] =
3437 {\
3438 { \"$my_originator\", (void *) 0 },"
3439
3440 case $need_lib_prefix in
3441 no)
3442 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
3443 ;;
3444 *)
3445 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
3446 ;;
3447 esac
3448 echo >> "$output_objdir/$my_dlsyms" "\
3449 {0, (void *) 0}
3450 };
3451
3452 /* This works around a problem in FreeBSD linker */
3453 #ifdef FREEBSD_WORKAROUND
3454 static const void *lt_preloaded_setup() {
3455 return lt_${my_prefix}_LTX_preloaded_symbols;
3456 }
3457 #endif
3458
3459 #ifdef __cplusplus
3460 }
3461 #endif\
3462 "
3463 } # !$opt_dry_run
3464
3465 pic_flag_for_symtable=
3466 case "$compile_command " in
3467 *" -static "*) ;;
3468 *)
3469 case $host in
3470 # compiling the symbol table file with pic_flag works around
3471 # a FreeBSD bug that causes programs to crash when -lm is
3472 # linked before any other PIC object. But we must not use
3473 # pic_flag when linking with -static. The problem exists in
3474 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3475 *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3476 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
3477 *-*-hpux*)
3478 pic_flag_for_symtable=" $pic_flag" ;;
3479 *)
3480 if test "X$my_pic_p" != Xno; then
3481 pic_flag_for_symtable=" $pic_flag"
3482 fi
3483 ;;
3484 esac
3485 ;;
3486 esac
3487 symtab_cflags=
3488 for arg in $LTCFLAGS; do
3489 case $arg in
3490 -pie | -fpie | -fPIE) ;;
3491 *) func_append symtab_cflags " $arg" ;;
3492 esac
3493 done
3494
3495 # Now compile the dynamic symbol file.
3496 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
3497
3498 # Clean up the generated files.
3499 func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
3500
3501 # Transform the symbol file into the correct name.
3502 symfileobj="$output_objdir/${my_outputname}S.$objext"
3503 case $host in
3504 *cygwin* | *mingw* | *cegcc* )
3505 if test -f "$output_objdir/$my_outputname.def"; then
3506 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3507 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3508 else
3509 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3510 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3511 fi
3512 ;;
3513 *)
3514 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3515 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3516 ;;
3517 esac
3518 ;;
3519 *)
3520 func_fatal_error "unknown suffix for \`$my_dlsyms'"
3521 ;;
3522 esac
3523 else
3524 # We keep going just in case the user didn't refer to
3525 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3526 # really was required.
3527
3528 # Nullify the symbol file.
3529 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
3530 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
3531 fi
3532 }
3533
3534 # func_win32_libid arg
3535 # return the library type of file 'arg'
3536 #
3537 # Need a lot of goo to handle *both* DLLs and import libs
3538 # Has to be a shell function in order to 'eat' the argument
3539 # that is supplied when $file_magic_command is called.
3540 # Despite the name, also deal with 64 bit binaries.
3541 func_win32_libid ()
3542 {
3543 $opt_debug
3544 win32_libid_type="unknown"
3545 win32_fileres=`file -L $1 2>/dev/null`
3546 case $win32_fileres in
3547 *ar\ archive\ import\ library*) # definitely import
3548 win32_libid_type="x86 archive import"
3549 ;;
3550 *ar\ archive*) # could be an import, or static
3551 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
3552 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
3553 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
3554 func_to_tool_file "$1" func_convert_file_msys_to_w32
3555 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
3556 $SED -n -e '
3557 1,100{
3558 / I /{
3559 s,.*,import,
3560 p
3561 q
3562 }
3563 }'`
3564 case $win32_nmres in
3565 import*) win32_libid_type="x86 archive import";;
3566 *) win32_libid_type="x86 archive static";;
3567 esac
3568 fi
3569 ;;
3570 *DLL*)
3571 win32_libid_type="x86 DLL"
3572 ;;
3573 *executable*) # but shell scripts are "executable" too...
3574 case $win32_fileres in
3575 *MS\ Windows\ PE\ Intel*)
3576 win32_libid_type="x86 DLL"
3577 ;;
3578 esac
3579 ;;
3580 esac
3581 $ECHO "$win32_libid_type"
3582 }
3583
3584 # func_cygming_dll_for_implib ARG
3585 #
3586 # Platform-specific function to extract the
3587 # name of the DLL associated with the specified
3588 # import library ARG.
3589 # Invoked by eval'ing the libtool variable
3590 # $sharedlib_from_linklib_cmd
3591 # Result is available in the variable
3592 # $sharedlib_from_linklib_result
3593 func_cygming_dll_for_implib ()
3594 {
3595 $opt_debug
3596 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
3597 }
3598
3599 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
3600 #
3601 # The is the core of a fallback implementation of a
3602 # platform-specific function to extract the name of the
3603 # DLL associated with the specified import library LIBNAME.
3604 #
3605 # SECTION_NAME is either .idata$6 or .idata$7, depending
3606 # on the platform and compiler that created the implib.
3607 #
3608 # Echos the name of the DLL associated with the
3609 # specified import library.
3610 func_cygming_dll_for_implib_fallback_core ()
3611 {
3612 $opt_debug
3613 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
3614 $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
3615 $SED '/^Contents of section '"$match_literal"':/{
3616 # Place marker at beginning of archive member dllname section
3617 s/.*/====MARK====/
3618 p
3619 d
3620 }
3621 # These lines can sometimes be longer than 43 characters, but
3622 # are always uninteresting
3623 /:[ ]*file format pe[i]\{,1\}-/d
3624 /^In archive [^:]*:/d
3625 # Ensure marker is printed
3626 /^====MARK====/p
3627 # Remove all lines with less than 43 characters
3628 /^.\{43\}/!d
3629 # From remaining lines, remove first 43 characters
3630 s/^.\{43\}//' |
3631 $SED -n '
3632 # Join marker and all lines until next marker into a single line
3633 /^====MARK====/ b para
3634 H
3635 $ b para
3636 b
3637 :para
3638 x
3639 s/\n//g
3640 # Remove the marker
3641 s/^====MARK====//
3642 # Remove trailing dots and whitespace
3643 s/[\. \t]*$//
3644 # Print
3645 /./p' |
3646 # we now have a list, one entry per line, of the stringified
3647 # contents of the appropriate section of all members of the
3648 # archive which possess that section. Heuristic: eliminate
3649 # all those which have a first or second character that is
3650 # a '.' (that is, objdump's representation of an unprintable
3651 # character.) This should work for all archives with less than
3652 # 0x302f exports -- but will fail for DLLs whose name actually
3653 # begins with a literal '.' or a single character followed by
3654 # a '.'.
3655 #
3656 # Of those that remain, print the first one.
3657 $SED -e '/^\./d;/^.\./d;q'
3658 }
3659
3660 # func_cygming_gnu_implib_p ARG
3661 # This predicate returns with zero status (TRUE) if
3662 # ARG is a GNU/binutils-style import library. Returns
3663 # with nonzero status (FALSE) otherwise.
3664 func_cygming_gnu_implib_p ()
3665 {
3666 $opt_debug
3667 func_to_tool_file "$1" func_convert_file_msys_to_w32
3668 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)$'`
3669 test -n "$func_cygming_gnu_implib_tmp"
3670 }
3671
3672 # func_cygming_ms_implib_p ARG
3673 # This predicate returns with zero status (TRUE) if
3674 # ARG is an MS-style import library. Returns
3675 # with nonzero status (FALSE) otherwise.
3676 func_cygming_ms_implib_p ()
3677 {
3678 $opt_debug
3679 func_to_tool_file "$1" func_convert_file_msys_to_w32
3680 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
3681 test -n "$func_cygming_ms_implib_tmp"
3682 }
3683
3684 # func_cygming_dll_for_implib_fallback ARG
3685 # Platform-specific function to extract the
3686 # name of the DLL associated with the specified
3687 # import library ARG.
3688 #
3689 # This fallback implementation is for use when $DLLTOOL
3690 # does not support the --identify-strict option.
3691 # Invoked by eval'ing the libtool variable
3692 # $sharedlib_from_linklib_cmd
3693 # Result is available in the variable
3694 # $sharedlib_from_linklib_result
3695 func_cygming_dll_for_implib_fallback ()
3696 {
3697 $opt_debug
3698 if func_cygming_gnu_implib_p "$1" ; then
3699 # binutils import library
3700 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
3701 elif func_cygming_ms_implib_p "$1" ; then
3702 # ms-generated import library
3703 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
3704 else
3705 # unknown
3706 sharedlib_from_linklib_result=""
3707 fi
3708 }
3709
3710
3711 # func_extract_an_archive dir oldlib
3712 func_extract_an_archive ()
3713 {
3714 $opt_debug
3715 f_ex_an_ar_dir="$1"; shift
3716 f_ex_an_ar_oldlib="$1"
3717 if test "$lock_old_archive_extraction" = yes; then
3718 lockfile=$f_ex_an_ar_oldlib.lock
3719 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
3720 func_echo "Waiting for $lockfile to be removed"
3721 sleep 2
3722 done
3723 fi
3724 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
3725 'stat=$?; rm -f "$lockfile"; exit $stat'
3726 if test "$lock_old_archive_extraction" = yes; then
3727 $opt_dry_run || rm -f "$lockfile"
3728 fi
3729 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3730 :
3731 else
3732 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
3733 fi
3734 }
3735
3736
3737 # func_extract_archives gentop oldlib ...
3738 func_extract_archives ()
3739 {
3740 $opt_debug
3741 my_gentop="$1"; shift
3742 my_oldlibs=${1+"$@"}
3743 my_oldobjs=""
3744 my_xlib=""
3745 my_xabs=""
3746 my_xdir=""
3747
3748 for my_xlib in $my_oldlibs; do
3749 # Extract the objects.
3750 case $my_xlib in
3751 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3752 *) my_xabs=`pwd`"/$my_xlib" ;;
3753 esac
3754 func_basename "$my_xlib"
3755 my_xlib="$func_basename_result"
3756 my_xlib_u=$my_xlib
3757 while :; do
3758 case " $extracted_archives " in
3759 *" $my_xlib_u "*)
3760 func_arith $extracted_serial + 1
3761 extracted_serial=$func_arith_result
3762 my_xlib_u=lt$extracted_serial-$my_xlib ;;
3763 *) break ;;
3764 esac
3765 done
3766 extracted_archives="$extracted_archives $my_xlib_u"
3767 my_xdir="$my_gentop/$my_xlib_u"
3768
3769 func_mkdir_p "$my_xdir"
3770
3771 case $host in
3772 *-darwin*)
3773 func_verbose "Extracting $my_xabs"
3774 # Do not bother doing anything if just a dry run
3775 $opt_dry_run || {
3776 darwin_orig_dir=`pwd`
3777 cd $my_xdir || exit $?
3778 darwin_archive=$my_xabs
3779 darwin_curdir=`pwd`
3780 darwin_base_archive=`basename "$darwin_archive"`
3781 darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
3782 if test -n "$darwin_arches"; then
3783 darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
3784 darwin_arch=
3785 func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
3786 for darwin_arch in $darwin_arches ; do
3787 func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3788 $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3789 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3790 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3791 cd "$darwin_curdir"
3792 $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3793 done # $darwin_arches
3794 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
3795 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
3796 darwin_file=
3797 darwin_files=
3798 for darwin_file in $darwin_filelist; do
3799 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
3800 $LIPO -create -output "$darwin_file" $darwin_files
3801 done # $darwin_filelist
3802 $RM -rf unfat-$$
3803 cd "$darwin_orig_dir"
3804 else
3805 cd $darwin_orig_dir
3806 func_extract_an_archive "$my_xdir" "$my_xabs"
3807 fi # $darwin_arches
3808 } # !$opt_dry_run
3809 ;;
3810 *)
3811 func_extract_an_archive "$my_xdir" "$my_xabs"
3812 ;;
3813 esac
3814 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
3815 done
3816
3817 func_extract_archives_result="$my_oldobjs"
3818 }
3819
3820
3821 # func_emit_wrapper [arg=no]
3822 #
3823 # Emit a libtool wrapper script on stdout.
3824 # Don't directly open a file because we may want to
3825 # incorporate the script contents within a cygwin/mingw
3826 # wrapper executable. Must ONLY be called from within
3827 # func_mode_link because it depends on a number of variables
3828 # set therein.
3829 #
3830 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
3831 # variable will take. If 'yes', then the emitted script
3832 # will assume that the directory in which it is stored is
3833 # the $objdir directory. This is a cygwin/mingw-specific
3834 # behavior.
3835 func_emit_wrapper ()
3836 {
3837 func_emit_wrapper_arg1=${1-no}
3838
3839 $ECHO "\
3840 #! $SHELL
3841
3842 # $output - temporary wrapper script for $objdir/$outputname
3843 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3844 #
3845 # The $output program cannot be directly executed until all the libtool
3846 # libraries that it depends on are installed.
3847 #
3848 # This wrapper script should never be moved out of the build directory.
3849 # If it is, it will not operate correctly.
3850
3851 # Sed substitution that helps us do robust quoting. It backslashifies
3852 # metacharacters that are still active within double-quoted strings.
3853 sed_quote_subst='$sed_quote_subst'
3854
3855 # Be Bourne compatible
3856 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
3857 emulate sh
3858 NULLCMD=:
3859 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
3860 # is contrary to our usage. Disable this feature.
3861 alias -g '\${1+\"\$@\"}'='\"\$@\"'
3862 setopt NO_GLOB_SUBST
3863 else
3864 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
3865 fi
3866 BIN_SH=xpg4; export BIN_SH # for Tru64
3867 DUALCASE=1; export DUALCASE # for MKS sh
3868
3869 # The HP-UX ksh and POSIX shell print the target directory to stdout
3870 # if CDPATH is set.
3871 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3872
3873 relink_command=\"$relink_command\"
3874
3875 # This environment variable determines our operation mode.
3876 if test \"\$libtool_install_magic\" = \"$magic\"; then
3877 # install mode needs the following variables:
3878 generated_by_libtool_version='$macro_version'
3879 notinst_deplibs='$notinst_deplibs'
3880 else
3881 # When we are sourced in execute mode, \$file and \$ECHO are already set.
3882 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3883 file=\"\$0\""
3884
3885 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
3886 $ECHO "\
3887
3888 # A function that is used when there is no print builtin or printf.
3889 func_fallback_echo ()
3890 {
3891 eval 'cat <<_LTECHO_EOF
3892 \$1
3893 _LTECHO_EOF'
3894 }
3895 ECHO=\"$qECHO\"
3896 fi
3897
3898 # Very basic option parsing. These options are (a) specific to
3899 # the libtool wrapper, (b) are identical between the wrapper
3900 # /script/ and the wrapper /executable/ which is used only on
3901 # windows platforms, and (c) all begin with the string "--lt-"
3902 # (application programs are unlikely to have options which match
3903 # this pattern).
3904 #
3905 # There are only two supported options: --lt-debug and
3906 # --lt-dump-script. There is, deliberately, no --lt-help.
3907 #
3908 # The first argument to this parsing function should be the
3909 # script's $0 value, followed by "$@".
3910 lt_option_debug=
3911 func_parse_lt_options ()
3912 {
3913 lt_script_arg0=\$0
3914 shift
3915 for lt_opt
3916 do
3917 case \"\$lt_opt\" in
3918 --lt-debug) lt_option_debug=1 ;;
3919 --lt-dump-script)
3920 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3921 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3922 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3923 cat \"\$lt_dump_D/\$lt_dump_F\"
3924 exit 0
3925 ;;
3926 --lt-*)
3927 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3928 exit 1
3929 ;;
3930 esac
3931 done
3932
3933 # Print the debug banner immediately:
3934 if test -n \"\$lt_option_debug\"; then
3935 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3936 fi
3937 }
3938
3939 # Used when --lt-debug. Prints its arguments to stdout
3940 # (redirection is the responsibility of the caller)
3941 func_lt_dump_args ()
3942 {
3943 lt_dump_args_N=1;
3944 for lt_arg
3945 do
3946 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3947 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3948 done
3949 }
3950
3951 # Core function for launching the target application
3952 func_exec_program_core ()
3953 {
3954 "
3955 case $host in
3956 # Backslashes separate directories on plain windows
3957 *-*-mingw | *-*-os2* | *-cegcc*)
3958 $ECHO "\
3959 if test -n \"\$lt_option_debug\"; then
3960 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3961 func_lt_dump_args \${1+\"\$@\"} 1>&2
3962 fi
3963 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3964 "
3965 ;;
3966
3967 *)
3968 $ECHO "\
3969 if test -n \"\$lt_option_debug\"; then
3970 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3971 func_lt_dump_args \${1+\"\$@\"} 1>&2
3972 fi
3973 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3974 "
3975 ;;
3976 esac
3977 $ECHO "\
3978 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3979 exit 1
3980 }
3981
3982 # A function to encapsulate launching the target application
3983 # Strips options in the --lt-* namespace from \$@ and
3984 # launches target application with the remaining arguments.
3985 func_exec_program ()
3986 {
3987 case \" \$* \" in
3988 *\\ --lt-*)
3989 for lt_wr_arg
3990 do
3991 case \$lt_wr_arg in
3992 --lt-*) ;;
3993 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3994 esac
3995 shift
3996 done ;;
3997 esac
3998 func_exec_program_core \${1+\"\$@\"}
3999 }
4000
4001 # Parse options
4002 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
4003
4004 # Find the directory that this script lives in.
4005 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
4006 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4007
4008 # Follow symbolic links until we get to the real thisdir.
4009 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
4010 while test -n \"\$file\"; do
4011 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
4012
4013 # If there was a directory component, then change thisdir.
4014 if test \"x\$destdir\" != \"x\$file\"; then
4015 case \"\$destdir\" in
4016 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4017 *) thisdir=\"\$thisdir/\$destdir\" ;;
4018 esac
4019 fi
4020
4021 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
4022 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
4023 done
4024
4025 # Usually 'no', except on cygwin/mingw when embedded into
4026 # the cwrapper.
4027 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
4028 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
4029 # special case for '.'
4030 if test \"\$thisdir\" = \".\"; then
4031 thisdir=\`pwd\`
4032 fi
4033 # remove .libs from thisdir
4034 case \"\$thisdir\" in
4035 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
4036 $objdir ) thisdir=. ;;
4037 esac
4038 fi
4039
4040 # Try to get the absolute directory name.
4041 absdir=\`cd \"\$thisdir\" && pwd\`
4042 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4043 "
4044
4045 if test "$fast_install" = yes; then
4046 $ECHO "\
4047 program=lt-'$outputname'$exeext
4048 progdir=\"\$thisdir/$objdir\"
4049
4050 if test ! -f \"\$progdir/\$program\" ||
4051 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4052 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4053
4054 file=\"\$\$-\$program\"
4055
4056 if test ! -d \"\$progdir\"; then
4057 $MKDIR \"\$progdir\"
4058 else
4059 $RM \"\$progdir/\$file\"
4060 fi"
4061
4062 $ECHO "\
4063
4064 # relink executable if necessary
4065 if test -n \"\$relink_command\"; then
4066 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4067 else
4068 $ECHO \"\$relink_command_output\" >&2
4069 $RM \"\$progdir/\$file\"
4070 exit 1
4071 fi
4072 fi
4073
4074 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4075 { $RM \"\$progdir/\$program\";
4076 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4077 $RM \"\$progdir/\$file\"
4078 fi"
4079 else
4080 $ECHO "\
4081 program='$outputname'
4082 progdir=\"\$thisdir/$objdir\"
4083 "
4084 fi
4085
4086 $ECHO "\
4087
4088 if test -f \"\$progdir/\$program\"; then"
4089
4090 # fixup the dll searchpath if we need to.
4091 #
4092 # Fix the DLL searchpath if we need to. Do this before prepending
4093 # to shlibpath, because on Windows, both are PATH and uninstalled
4094 # libraries must come first.
4095 if test -n "$dllsearchpath"; then
4096 $ECHO "\
4097 # Add the dll search path components to the executable PATH
4098 PATH=$dllsearchpath:\$PATH
4099 "
4100 fi
4101
4102 # Export our shlibpath_var if we have one.
4103 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4104 $ECHO "\
4105 # Add our own library path to $shlibpath_var
4106 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4107
4108 # Some systems cannot cope with colon-terminated $shlibpath_var
4109 # The second colon is a workaround for a bug in BeOS R4 sed
4110 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
4111
4112 export $shlibpath_var
4113 "
4114 fi
4115
4116 $ECHO "\
4117 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4118 # Run the actual program with our arguments.
4119 func_exec_program \${1+\"\$@\"}
4120 fi
4121 else
4122 # The program doesn't exist.
4123 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
4124 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
4125 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
4126 exit 1
4127 fi
4128 fi\
4129 "
4130 }
4131
4132
4133 # func_emit_cwrapperexe_src
4134 # emit the source code for a wrapper executable on stdout
4135 # Must ONLY be called from within func_mode_link because
4136 # it depends on a number of variable set therein.
4137 func_emit_cwrapperexe_src ()
4138 {
4139 cat <<EOF
4140
4141 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4142 Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
4143
4144 The $output program cannot be directly executed until all the libtool
4145 libraries that it depends on are installed.
4146
4147 This wrapper executable should never be moved out of the build directory.
4148 If it is, it will not operate correctly.
4149 */
4150 EOF
4151 cat <<"EOF"
4152 #ifdef _MSC_VER
4153 # define _CRT_SECURE_NO_DEPRECATE 1
4154 #endif
4155 #include <stdio.h>
4156 #include <stdlib.h>
4157 #ifdef _MSC_VER
4158 # include <direct.h>
4159 # include <process.h>
4160 # include <io.h>
4161 #else
4162 # include <unistd.h>
4163 # include <stdint.h>
4164 # ifdef __CYGWIN__
4165 # include <io.h>
4166 # endif
4167 #endif
4168 #include <malloc.h>
4169 #include <stdarg.h>
4170 #include <assert.h>
4171 #include <string.h>
4172 #include <ctype.h>
4173 #include <errno.h>
4174 #include <fcntl.h>
4175 #include <sys/stat.h>
4176
4177 /* declarations of non-ANSI functions */
4178 #if defined(__MINGW32__)
4179 # ifdef __STRICT_ANSI__
4180 int _putenv (const char *);
4181 # endif
4182 #elif defined(__CYGWIN__)
4183 # ifdef __STRICT_ANSI__
4184 char *realpath (const char *, char *);
4185 int putenv (char *);
4186 int setenv (const char *, const char *, int);
4187 # endif
4188 /* #elif defined (other platforms) ... */
4189 #endif
4190
4191 /* portability defines, excluding path handling macros */
4192 #if defined(_MSC_VER)
4193 # define setmode _setmode
4194 # define stat _stat
4195 # define chmod _chmod
4196 # define getcwd _getcwd
4197 # define putenv _putenv
4198 # define S_IXUSR _S_IEXEC
4199 # ifndef _INTPTR_T_DEFINED
4200 # define _INTPTR_T_DEFINED
4201 # define intptr_t int
4202 # endif
4203 #elif defined(__MINGW32__)
4204 # define setmode _setmode
4205 # define stat _stat
4206 # define chmod _chmod
4207 # define getcwd _getcwd
4208 # define putenv _putenv
4209 #elif defined(__CYGWIN__)
4210 # define HAVE_SETENV
4211 # define FOPEN_WB "wb"
4212 /* #elif defined (other platforms) ... */
4213 #endif
4214
4215 #if defined(PATH_MAX)
4216 # define LT_PATHMAX PATH_MAX
4217 #elif defined(MAXPATHLEN)
4218 # define LT_PATHMAX MAXPATHLEN
4219 #else
4220 # define LT_PATHMAX 1024
4221 #endif
4222
4223 #ifndef S_IXOTH
4224 # define S_IXOTH 0
4225 #endif
4226 #ifndef S_IXGRP
4227 # define S_IXGRP 0
4228 #endif
4229
4230 /* path handling portability macros */
4231 #ifndef DIR_SEPARATOR
4232 # define DIR_SEPARATOR '/'
4233 # define PATH_SEPARATOR ':'
4234 #endif
4235
4236 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4237 defined (__OS2__)
4238 # define HAVE_DOS_BASED_FILE_SYSTEM
4239 # define FOPEN_WB "wb"
4240 # ifndef DIR_SEPARATOR_2
4241 # define DIR_SEPARATOR_2 '\\'
4242 # endif
4243 # ifndef PATH_SEPARATOR_2
4244 # define PATH_SEPARATOR_2 ';'
4245 # endif
4246 #endif
4247
4248 #ifndef DIR_SEPARATOR_2
4249 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4250 #else /* DIR_SEPARATOR_2 */
4251 # define IS_DIR_SEPARATOR(ch) \
4252 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4253 #endif /* DIR_SEPARATOR_2 */
4254
4255 #ifndef PATH_SEPARATOR_2
4256 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4257 #else /* PATH_SEPARATOR_2 */
4258 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4259 #endif /* PATH_SEPARATOR_2 */
4260
4261 #ifndef FOPEN_WB
4262 # define FOPEN_WB "w"
4263 #endif
4264 #ifndef _O_BINARY
4265 # define _O_BINARY 0
4266 #endif
4267
4268 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4269 #define XFREE(stale) do { \
4270 if (stale) { free ((void *) stale); stale = 0; } \
4271 } while (0)
4272
4273 #if defined(LT_DEBUGWRAPPER)
4274 static int lt_debug = 1;
4275 #else
4276 static int lt_debug = 0;
4277 #endif
4278
4279 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
4280
4281 void *xmalloc (size_t num);
4282 char *xstrdup (const char *string);
4283 const char *base_name (const char *name);
4284 char *find_executable (const char *wrapper);
4285 char *chase_symlinks (const char *pathspec);
4286 int make_executable (const char *path);
4287 int check_executable (const char *path);
4288 char *strendzap (char *str, const char *pat);
4289 void lt_debugprintf (const char *file, int line, const char *fmt, ...);
4290 void lt_fatal (const char *file, int line, const char *message, ...);
4291 static const char *nonnull (const char *s);
4292 static const char *nonempty (const char *s);
4293 void lt_setenv (const char *name, const char *value);
4294 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
4295 void lt_update_exe_path (const char *name, const char *value);
4296 void lt_update_lib_path (const char *name, const char *value);
4297 char **prepare_spawn (char **argv);
4298 void lt_dump_script (FILE *f);
4299 EOF
4300
4301 cat <<EOF
4302 volatile const char * MAGIC_EXE = "$magic_exe";
4303 const char * LIB_PATH_VARNAME = "$shlibpath_var";
4304 EOF
4305
4306 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4307 func_to_host_path "$temp_rpath"
4308 cat <<EOF
4309 const char * LIB_PATH_VALUE = "$func_to_host_path_result";
4310 EOF
4311 else
4312 cat <<"EOF"
4313 const char * LIB_PATH_VALUE = "";
4314 EOF
4315 fi
4316
4317 if test -n "$dllsearchpath"; then
4318 func_to_host_path "$dllsearchpath:"
4319 cat <<EOF
4320 const char * EXE_PATH_VARNAME = "PATH";
4321 const char * EXE_PATH_VALUE = "$func_to_host_path_result";
4322 EOF
4323 else
4324 cat <<"EOF"
4325 const char * EXE_PATH_VARNAME = "";
4326 const char * EXE_PATH_VALUE = "";
4327 EOF
4328 fi
4329
4330 if test "$fast_install" = yes; then
4331 cat <<EOF
4332 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
4333 EOF
4334 else
4335 cat <<EOF
4336 const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
4337 EOF
4338 fi
4339
4340
4341 cat <<"EOF"
4342
4343 #define LTWRAPPER_OPTION_PREFIX "--lt-"
4344
4345 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
4346 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
4347 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
4348
4349 int
4350 main (int argc, char *argv[])
4351 {
4352 char **newargz;
4353 int newargc;
4354 char *tmp_pathspec;
4355 char *actual_cwrapper_path;
4356 char *actual_cwrapper_name;
4357 char *target_name;
4358 char *lt_argv_zero;
4359 intptr_t rval = 127;
4360
4361 int i;
4362
4363 program_name = (char *) xstrdup (base_name (argv[0]));
4364 newargz = XMALLOC (char *, argc + 1);
4365
4366 /* very simple arg parsing; don't want to rely on getopt
4367 * also, copy all non cwrapper options to newargz, except
4368 * argz[0], which is handled differently
4369 */
4370 newargc=0;
4371 for (i = 1; i < argc; i++)
4372 {
4373 if (strcmp (argv[i], dumpscript_opt) == 0)
4374 {
4375 EOF
4376 case "$host" in
4377 *mingw* | *cygwin* )
4378 # make stdout use "unix" line endings
4379 echo " setmode(1,_O_BINARY);"
4380 ;;
4381 esac
4382
4383 cat <<"EOF"
4384 lt_dump_script (stdout);
4385 return 0;
4386 }
4387 if (strcmp (argv[i], debug_opt) == 0)
4388 {
4389 lt_debug = 1;
4390 continue;
4391 }
4392 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
4393 {
4394 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
4395 namespace, but it is not one of the ones we know about and
4396 have already dealt with, above (inluding dump-script), then
4397 report an error. Otherwise, targets might begin to believe
4398 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
4399 namespace. The first time any user complains about this, we'll
4400 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
4401 or a configure.ac-settable value.
4402 */
4403 lt_fatal (__FILE__, __LINE__,
4404 "unrecognized %s option: '%s'",
4405 ltwrapper_option_prefix, argv[i]);
4406 }
4407 /* otherwise ... */
4408 newargz[++newargc] = xstrdup (argv[i]);
4409 }
4410 newargz[++newargc] = NULL;
4411
4412 EOF
4413 cat <<EOF
4414 /* The GNU banner must be the first non-error debug message */
4415 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
4416 EOF
4417 cat <<"EOF"
4418 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
4419 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
4420
4421 tmp_pathspec = find_executable (argv[0]);
4422 if (tmp_pathspec == NULL)
4423 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
4424 lt_debugprintf (__FILE__, __LINE__,
4425 "(main) found exe (before symlink chase) at: %s\n",
4426 tmp_pathspec);
4427
4428 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
4429 lt_debugprintf (__FILE__, __LINE__,
4430 "(main) found exe (after symlink chase) at: %s\n",
4431 actual_cwrapper_path);
4432 XFREE (tmp_pathspec);
4433
4434 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
4435 strendzap (actual_cwrapper_path, actual_cwrapper_name);
4436
4437 /* wrapper name transforms */
4438 strendzap (actual_cwrapper_name, ".exe");
4439 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
4440 XFREE (actual_cwrapper_name);
4441 actual_cwrapper_name = tmp_pathspec;
4442 tmp_pathspec = 0;
4443
4444 /* target_name transforms -- use actual target program name; might have lt- prefix */
4445 target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
4446 strendzap (target_name, ".exe");
4447 tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
4448 XFREE (target_name);
4449 target_name = tmp_pathspec;
4450 tmp_pathspec = 0;
4451
4452 lt_debugprintf (__FILE__, __LINE__,
4453 "(main) libtool target name: %s\n",
4454 target_name);
4455 EOF
4456
4457 cat <<EOF
4458 newargz[0] =
4459 XMALLOC (char, (strlen (actual_cwrapper_path) +
4460 strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
4461 strcpy (newargz[0], actual_cwrapper_path);
4462 strcat (newargz[0], "$objdir");
4463 strcat (newargz[0], "/");
4464 EOF
4465
4466 cat <<"EOF"
4467 /* stop here, and copy so we don't have to do this twice */
4468 tmp_pathspec = xstrdup (newargz[0]);
4469
4470 /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
4471 strcat (newargz[0], actual_cwrapper_name);
4472
4473 /* DO want the lt- prefix here if it exists, so use target_name */
4474 lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
4475 XFREE (tmp_pathspec);
4476 tmp_pathspec = NULL;
4477 EOF
4478
4479 case $host_os in
4480 mingw*)
4481 cat <<"EOF"
4482 {
4483 char* p;
4484 while ((p = strchr (newargz[0], '\\')) != NULL)
4485 {
4486 *p = '/';
4487 }
4488 while ((p = strchr (lt_argv_zero, '\\')) != NULL)
4489 {
4490 *p = '/';
4491 }
4492 }
4493 EOF
4494 ;;
4495 esac
4496
4497 cat <<"EOF"
4498 XFREE (target_name);
4499 XFREE (actual_cwrapper_path);
4500 XFREE (actual_cwrapper_name);
4501
4502 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
4503 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
4504 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
4505 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
4506 because on Windows, both *_VARNAMEs are PATH but uninstalled
4507 libraries must come first. */
4508 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
4509 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
4510
4511 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
4512 nonnull (lt_argv_zero));
4513 for (i = 0; i < newargc; i++)
4514 {
4515 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
4516 i, nonnull (newargz[i]));
4517 }
4518
4519 EOF
4520
4521 case $host_os in
4522 mingw*)
4523 cat <<"EOF"
4524 /* execv doesn't actually work on mingw as expected on unix */
4525 newargz = prepare_spawn (newargz);
4526 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
4527 if (rval == -1)
4528 {
4529 /* failed to start process */
4530 lt_debugprintf (__FILE__, __LINE__,
4531 "(main) failed to launch target \"%s\": %s\n",
4532 lt_argv_zero, nonnull (strerror (errno)));
4533 return 127;
4534 }
4535 return rval;
4536 EOF
4537 ;;
4538 *)
4539 cat <<"EOF"
4540 execv (lt_argv_zero, newargz);
4541 return rval; /* =127, but avoids unused variable warning */
4542 EOF
4543 ;;
4544 esac
4545
4546 cat <<"EOF"
4547 }
4548
4549 void *
4550 xmalloc (size_t num)
4551 {
4552 void *p = (void *) malloc (num);
4553 if (!p)
4554 lt_fatal (__FILE__, __LINE__, "memory exhausted");
4555
4556 return p;
4557 }
4558
4559 char *
4560 xstrdup (const char *string)
4561 {
4562 return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
4563 string) : NULL;
4564 }
4565
4566 const char *
4567 base_name (const char *name)
4568 {
4569 const char *base;
4570
4571 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4572 /* Skip over the disk name in MSDOS pathnames. */
4573 if (isalpha ((unsigned char) name[0]) && name[1] == ':')
4574 name += 2;
4575 #endif
4576
4577 for (base = name; *name; name++)
4578 if (IS_DIR_SEPARATOR (*name))
4579 base = name + 1;
4580 return base;
4581 }
4582
4583 int
4584 check_executable (const char *path)
4585 {
4586 struct stat st;
4587
4588 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
4589 nonempty (path));
4590 if ((!path) || (!*path))
4591 return 0;
4592
4593 if ((stat (path, &st) >= 0)
4594 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
4595 return 1;
4596 else
4597 return 0;
4598 }
4599
4600 int
4601 make_executable (const char *path)
4602 {
4603 int rval = 0;
4604 struct stat st;
4605
4606 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
4607 nonempty (path));
4608 if ((!path) || (!*path))
4609 return 0;
4610
4611 if (stat (path, &st) >= 0)
4612 {
4613 rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
4614 }
4615 return rval;
4616 }
4617
4618 /* Searches for the full path of the wrapper. Returns
4619 newly allocated full path name if found, NULL otherwise
4620 Does not chase symlinks, even on platforms that support them.
4621 */
4622 char *
4623 find_executable (const char *wrapper)
4624 {
4625 int has_slash = 0;
4626 const char *p;
4627 const char *p_next;
4628 /* static buffer for getcwd */
4629 char tmp[LT_PATHMAX + 1];
4630 int tmp_len;
4631 char *concat_name;
4632
4633 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
4634 nonempty (wrapper));
4635
4636 if ((wrapper == NULL) || (*wrapper == '\0'))
4637 return NULL;
4638
4639 /* Absolute path? */
4640 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4641 if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
4642 {
4643 concat_name = xstrdup (wrapper);
4644 if (check_executable (concat_name))
4645 return concat_name;
4646 XFREE (concat_name);
4647 }
4648 else
4649 {
4650 #endif
4651 if (IS_DIR_SEPARATOR (wrapper[0]))
4652 {
4653 concat_name = xstrdup (wrapper);
4654 if (check_executable (concat_name))
4655 return concat_name;
4656 XFREE (concat_name);
4657 }
4658 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4659 }
4660 #endif
4661
4662 for (p = wrapper; *p; p++)
4663 if (*p == '/')
4664 {
4665 has_slash = 1;
4666 break;
4667 }
4668 if (!has_slash)
4669 {
4670 /* no slashes; search PATH */
4671 const char *path = getenv ("PATH");
4672 if (path != NULL)
4673 {
4674 for (p = path; *p; p = p_next)
4675 {
4676 const char *q;
4677 size_t p_len;
4678 for (q = p; *q; q++)
4679 if (IS_PATH_SEPARATOR (*q))
4680 break;
4681 p_len = q - p;
4682 p_next = (*q == '\0' ? q : q + 1);
4683 if (p_len == 0)
4684 {
4685 /* empty path: current directory */
4686 if (getcwd (tmp, LT_PATHMAX) == NULL)
4687 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4688 nonnull (strerror (errno)));
4689 tmp_len = strlen (tmp);
4690 concat_name =
4691 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4692 memcpy (concat_name, tmp, tmp_len);
4693 concat_name[tmp_len] = '/';
4694 strcpy (concat_name + tmp_len + 1, wrapper);
4695 }
4696 else
4697 {
4698 concat_name =
4699 XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
4700 memcpy (concat_name, p, p_len);
4701 concat_name[p_len] = '/';
4702 strcpy (concat_name + p_len + 1, wrapper);
4703 }
4704 if (check_executable (concat_name))
4705 return concat_name;
4706 XFREE (concat_name);
4707 }
4708 }
4709 /* not found in PATH; assume curdir */
4710 }
4711 /* Relative path | not found in path: prepend cwd */
4712 if (getcwd (tmp, LT_PATHMAX) == NULL)
4713 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4714 nonnull (strerror (errno)));
4715 tmp_len = strlen (tmp);
4716 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4717 memcpy (concat_name, tmp, tmp_len);
4718 concat_name[tmp_len] = '/';
4719 strcpy (concat_name + tmp_len + 1, wrapper);
4720
4721 if (check_executable (concat_name))
4722 return concat_name;
4723 XFREE (concat_name);
4724 return NULL;
4725 }
4726
4727 char *
4728 chase_symlinks (const char *pathspec)
4729 {
4730 #ifndef S_ISLNK
4731 return xstrdup (pathspec);
4732 #else
4733 char buf[LT_PATHMAX];
4734 struct stat s;
4735 char *tmp_pathspec = xstrdup (pathspec);
4736 char *p;
4737 int has_symlinks = 0;
4738 while (strlen (tmp_pathspec) && !has_symlinks)
4739 {
4740 lt_debugprintf (__FILE__, __LINE__,
4741 "checking path component for symlinks: %s\n",
4742 tmp_pathspec);
4743 if (lstat (tmp_pathspec, &s) == 0)
4744 {
4745 if (S_ISLNK (s.st_mode) != 0)
4746 {
4747 has_symlinks = 1;
4748 break;
4749 }
4750
4751 /* search backwards for last DIR_SEPARATOR */
4752 p = tmp_pathspec + strlen (tmp_pathspec) - 1;
4753 while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4754 p--;
4755 if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4756 {
4757 /* no more DIR_SEPARATORS left */
4758 break;
4759 }
4760 *p = '\0';
4761 }
4762 else
4763 {
4764 lt_fatal (__FILE__, __LINE__,
4765 "error accessing file \"%s\": %s",
4766 tmp_pathspec, nonnull (strerror (errno)));
4767 }
4768 }
4769 XFREE (tmp_pathspec);
4770
4771 if (!has_symlinks)
4772 {
4773 return xstrdup (pathspec);
4774 }
4775
4776 tmp_pathspec = realpath (pathspec, buf);
4777 if (tmp_pathspec == 0)
4778 {
4779 lt_fatal (__FILE__, __LINE__,
4780 "could not follow symlinks for %s", pathspec);
4781 }
4782 return xstrdup (tmp_pathspec);
4783 #endif
4784 }
4785
4786 char *
4787 strendzap (char *str, const char *pat)
4788 {
4789 size_t len, patlen;
4790
4791 assert (str != NULL);
4792 assert (pat != NULL);
4793
4794 len = strlen (str);
4795 patlen = strlen (pat);
4796
4797 if (patlen <= len)
4798 {
4799 str += len - patlen;
4800 if (strcmp (str, pat) == 0)
4801 *str = '\0';
4802 }
4803 return str;
4804 }
4805
4806 void
4807 lt_debugprintf (const char *file, int line, const char *fmt, ...)
4808 {
4809 va_list args;
4810 if (lt_debug)
4811 {
4812 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4813 va_start (args, fmt);
4814 (void) vfprintf (stderr, fmt, args);
4815 va_end (args);
4816 }
4817 }
4818
4819 static void
4820 lt_error_core (int exit_status, const char *file,
4821 int line, const char *mode,
4822 const char *message, va_list ap)
4823 {
4824 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
4825 vfprintf (stderr, message, ap);
4826 fprintf (stderr, ".\n");
4827
4828 if (exit_status >= 0)
4829 exit (exit_status);
4830 }
4831
4832 void
4833 lt_fatal (const char *file, int line, const char *message, ...)
4834 {
4835 va_list ap;
4836 va_start (ap, message);
4837 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
4838 va_end (ap);
4839 }
4840
4841 static const char *
4842 nonnull (const char *s)
4843 {
4844 return s ? s : "(null)";
4845 }
4846
4847 static const char *
4848 nonempty (const char *s)
4849 {
4850 return (s && !*s) ? "(empty)" : nonnull (s);
4851 }
4852
4853 void
4854 lt_setenv (const char *name, const char *value)
4855 {
4856 lt_debugprintf (__FILE__, __LINE__,
4857 "(lt_setenv) setting '%s' to '%s'\n",
4858 nonnull (name), nonnull (value));
4859 {
4860 #ifdef HAVE_SETENV
4861 /* always make a copy, for consistency with !HAVE_SETENV */
4862 char *str = xstrdup (value);
4863 setenv (name, str, 1);
4864 #else
4865 int len = strlen (name) + 1 + strlen (value) + 1;
4866 char *str = XMALLOC (char, len);
4867 sprintf (str, "%s=%s", name, value);
4868 if (putenv (str) != EXIT_SUCCESS)
4869 {
4870 XFREE (str);
4871 }
4872 #endif
4873 }
4874 }
4875
4876 char *
4877 lt_extend_str (const char *orig_value, const char *add, int to_end)
4878 {
4879 char *new_value;
4880 if (orig_value && *orig_value)
4881 {
4882 int orig_value_len = strlen (orig_value);
4883 int add_len = strlen (add);
4884 new_value = XMALLOC (char, add_len + orig_value_len + 1);
4885 if (to_end)
4886 {
4887 strcpy (new_value, orig_value);
4888 strcpy (new_value + orig_value_len, add);
4889 }
4890 else
4891 {
4892 strcpy (new_value, add);
4893 strcpy (new_value + add_len, orig_value);
4894 }
4895 }
4896 else
4897 {
4898 new_value = xstrdup (add);
4899 }
4900 return new_value;
4901 }
4902
4903 void
4904 lt_update_exe_path (const char *name, const char *value)
4905 {
4906 lt_debugprintf (__FILE__, __LINE__,
4907 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4908 nonnull (name), nonnull (value));
4909
4910 if (name && *name && value && *value)
4911 {
4912 char *new_value = lt_extend_str (getenv (name), value, 0);
4913 /* some systems can't cope with a ':'-terminated path #' */
4914 int len = strlen (new_value);
4915 while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
4916 {
4917 new_value[len-1] = '\0';
4918 }
4919 lt_setenv (name, new_value);
4920 XFREE (new_value);
4921 }
4922 }
4923
4924 void
4925 lt_update_lib_path (const char *name, const char *value)
4926 {
4927 lt_debugprintf (__FILE__, __LINE__,
4928 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4929 nonnull (name), nonnull (value));
4930
4931 if (name && *name && value && *value)
4932 {
4933 char *new_value = lt_extend_str (getenv (name), value, 0);
4934 lt_setenv (name, new_value);
4935 XFREE (new_value);
4936 }
4937 }
4938
4939 EOF
4940 case $host_os in
4941 mingw*)
4942 cat <<"EOF"
4943
4944 /* Prepares an argument vector before calling spawn().
4945 Note that spawn() does not by itself call the command interpreter
4946 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4947 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4948 GetVersionEx(&v);
4949 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4950 }) ? "cmd.exe" : "command.com").
4951 Instead it simply concatenates the arguments, separated by ' ', and calls
4952 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4953 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4954 special way:
4955 - Space and tab are interpreted as delimiters. They are not treated as
4956 delimiters if they are surrounded by double quotes: "...".
4957 - Unescaped double quotes are removed from the input. Their only effect is
4958 that within double quotes, space and tab are treated like normal
4959 characters.
4960 - Backslashes not followed by double quotes are not special.
4961 - But 2*n+1 backslashes followed by a double quote become
4962 n backslashes followed by a double quote (n >= 0):
4963 \" -> "
4964 \\\" -> \"
4965 \\\\\" -> \\"
4966 */
4967 #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"
4968 #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"
4969 char **
4970 prepare_spawn (char **argv)
4971 {
4972 size_t argc;
4973 char **new_argv;
4974 size_t i;
4975
4976 /* Count number of arguments. */
4977 for (argc = 0; argv[argc] != NULL; argc++)
4978 ;
4979
4980 /* Allocate new argument vector. */
4981 new_argv = XMALLOC (char *, argc + 1);
4982
4983 /* Put quoted arguments into the new argument vector. */
4984 for (i = 0; i < argc; i++)
4985 {
4986 const char *string = argv[i];
4987
4988 if (string[0] == '\0')
4989 new_argv[i] = xstrdup ("\"\"");
4990 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4991 {
4992 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4993 size_t length;
4994 unsigned int backslashes;
4995 const char *s;
4996 char *quoted_string;
4997 char *p;
4998
4999 length = 0;
5000 backslashes = 0;
5001 if (quote_around)
5002 length++;
5003 for (s = string; *s != '\0'; s++)
5004 {
5005 char c = *s;
5006 if (c == '"')
5007 length += backslashes + 1;
5008 length++;
5009 if (c == '\\')
5010 backslashes++;
5011 else
5012 backslashes = 0;
5013 }
5014 if (quote_around)
5015 length += backslashes + 1;
5016
5017 quoted_string = XMALLOC (char, length + 1);
5018
5019 p = quoted_string;
5020 backslashes = 0;
5021 if (quote_around)
5022 *p++ = '"';
5023 for (s = string; *s != '\0'; s++)
5024 {
5025 char c = *s;
5026 if (c == '"')
5027 {
5028 unsigned int j;
5029 for (j = backslashes + 1; j > 0; j--)
5030 *p++ = '\\';
5031 }
5032 *p++ = c;
5033 if (c == '\\')
5034 backslashes++;
5035 else
5036 backslashes = 0;
5037 }
5038 if (quote_around)
5039 {
5040 unsigned int j;
5041 for (j = backslashes; j > 0; j--)
5042 *p++ = '\\';
5043 *p++ = '"';
5044 }
5045 *p = '\0';
5046
5047 new_argv[i] = quoted_string;
5048 }
5049 else
5050 new_argv[i] = (char *) string;
5051 }
5052 new_argv[argc] = NULL;
5053
5054 return new_argv;
5055 }
5056 EOF
5057 ;;
5058 esac
5059
5060 cat <<"EOF"
5061 void lt_dump_script (FILE* f)
5062 {
5063 EOF
5064 func_emit_wrapper yes |
5065 $SED -n -e '
5066 s/^\(.\{79\}\)\(..*\)/\1\
5067 \2/
5068 h
5069 s/\([\\"]\)/\\\1/g
5070 s/$/\\n/
5071 s/\([^\n]*\).*/ fputs ("\1", f);/p
5072 g
5073 D'
5074 cat <<"EOF"
5075 }
5076 EOF
5077 }
5078 # end: func_emit_cwrapperexe_src
5079
5080 # func_win32_import_lib_p ARG
5081 # True if ARG is an import lib, as indicated by $file_magic_cmd
5082 func_win32_import_lib_p ()
5083 {
5084 $opt_debug
5085 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
5086 *import*) : ;;
5087 *) false ;;
5088 esac
5089 }
5090
5091 # func_mode_link arg...
5092 func_mode_link ()
5093 {
5094 $opt_debug
5095 case $host in
5096 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5097 # It is impossible to link a dll without this setting, and
5098 # we shouldn't force the makefile maintainer to figure out
5099 # which system we are compiling for in order to pass an extra
5100 # flag for every libtool invocation.
5101 # allow_undefined=no
5102
5103 # FIXME: Unfortunately, there are problems with the above when trying
5104 # to make a dll which has undefined symbols, in which case not
5105 # even a static library is built. For now, we need to specify
5106 # -no-undefined on the libtool link line when we can be certain
5107 # that all symbols are satisfied, otherwise we get a static library.
5108 allow_undefined=yes
5109 ;;
5110 *)
5111 allow_undefined=yes
5112 ;;
5113 esac
5114 libtool_args=$nonopt
5115 base_compile="$nonopt $@"
5116 compile_command=$nonopt
5117 finalize_command=$nonopt
5118
5119 compile_rpath=
5120 finalize_rpath=
5121 compile_shlibpath=
5122 finalize_shlibpath=
5123 convenience=
5124 old_convenience=
5125 deplibs=
5126 old_deplibs=
5127 compiler_flags=
5128 linker_flags=
5129 dllsearchpath=
5130 lib_search_path=`pwd`
5131 inst_prefix_dir=
5132 new_inherited_linker_flags=
5133
5134 avoid_version=no
5135 bindir=
5136 dlfiles=
5137 dlprefiles=
5138 dlself=no
5139 export_dynamic=no
5140 export_symbols=
5141 export_symbols_regex=
5142 generated=
5143 libobjs=
5144 ltlibs=
5145 module=no
5146 no_install=no
5147 objs=
5148 non_pic_objects=
5149 precious_files_regex=
5150 prefer_static_libs=no
5151 preload=no
5152 prev=
5153 prevarg=
5154 release=
5155 rpath=
5156 xrpath=
5157 perm_rpath=
5158 temp_rpath=
5159 thread_safe=no
5160 vinfo=
5161 vinfo_number=no
5162 weak_libs=
5163 single_module="${wl}-single_module"
5164 func_infer_tag $base_compile
5165
5166 # We need to know -static, to get the right output filenames.
5167 for arg
5168 do
5169 case $arg in
5170 -shared)
5171 test "$build_libtool_libs" != yes && \
5172 func_fatal_configuration "can not build a shared library"
5173 build_old_libs=no
5174 break
5175 ;;
5176 -all-static | -static | -static-libtool-libs)
5177 case $arg in
5178 -all-static)
5179 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
5180 func_warning "complete static linking is impossible in this configuration"
5181 fi
5182 if test -n "$link_static_flag"; then
5183 dlopen_self=$dlopen_self_static
5184 fi
5185 prefer_static_libs=yes
5186 ;;
5187 -static)
5188 if test -z "$pic_flag" && test -n "$link_static_flag"; then
5189 dlopen_self=$dlopen_self_static
5190 fi
5191 prefer_static_libs=built
5192 ;;
5193 -static-libtool-libs)
5194 if test -z "$pic_flag" && test -n "$link_static_flag"; then
5195 dlopen_self=$dlopen_self_static
5196 fi
5197 prefer_static_libs=yes
5198 ;;
5199 esac
5200 build_libtool_libs=no
5201 build_old_libs=yes
5202 break
5203 ;;
5204 esac
5205 done
5206
5207 # See if our shared archives depend on static archives.
5208 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
5209
5210 # Go through the arguments, transforming them on the way.
5211 while test "$#" -gt 0; do
5212 arg="$1"
5213 shift
5214 func_quote_for_eval "$arg"
5215 qarg=$func_quote_for_eval_unquoted_result
5216 func_append libtool_args " $func_quote_for_eval_result"
5217
5218 # If the previous option needs an argument, assign it.
5219 if test -n "$prev"; then
5220 case $prev in
5221 output)
5222 func_append compile_command " @OUTPUT@"
5223 func_append finalize_command " @OUTPUT@"
5224 ;;
5225 esac
5226
5227 case $prev in
5228 bindir)
5229 bindir="$arg"
5230 prev=
5231 continue
5232 ;;
5233 dlfiles|dlprefiles)
5234 if test "$preload" = no; then
5235 # Add the symbol object into the linking commands.
5236 func_append compile_command " @SYMFILE@"
5237 func_append finalize_command " @SYMFILE@"
5238 preload=yes
5239 fi
5240 case $arg in
5241 *.la | *.lo) ;; # We handle these cases below.
5242 force)
5243 if test "$dlself" = no; then
5244 dlself=needless
5245 export_dynamic=yes
5246 fi
5247 prev=
5248 continue
5249 ;;
5250 self)
5251 if test "$prev" = dlprefiles; then
5252 dlself=yes
5253 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
5254 dlself=yes
5255 else
5256 dlself=needless
5257 export_dynamic=yes
5258 fi
5259 prev=
5260 continue
5261 ;;
5262 *)
5263 if test "$prev" = dlfiles; then
5264 func_append dlfiles " $arg"
5265 else
5266 func_append dlprefiles " $arg"
5267 fi
5268 prev=
5269 continue
5270 ;;
5271 esac
5272 ;;
5273 expsyms)
5274 export_symbols="$arg"
5275 test -f "$arg" \
5276 || func_fatal_error "symbol file \`$arg' does not exist"
5277 prev=
5278 continue
5279 ;;
5280 expsyms_regex)
5281 export_symbols_regex="$arg"
5282 prev=
5283 continue
5284 ;;
5285 framework)
5286 case $host in
5287 *-*-darwin*)
5288 case "$deplibs " in
5289 *" $qarg.ltframework "*) ;;
5290 *) func_append deplibs " $qarg.ltframework" # this is fixed later
5291 ;;
5292 esac
5293 ;;
5294 esac
5295 prev=
5296 continue
5297 ;;
5298 inst_prefix)
5299 inst_prefix_dir="$arg"
5300 prev=
5301 continue
5302 ;;
5303 objectlist)
5304 if test -f "$arg"; then
5305 save_arg=$arg
5306 moreargs=
5307 for fil in `cat "$save_arg"`
5308 do
5309 # func_append moreargs " $fil"
5310 arg=$fil
5311 # A libtool-controlled object.
5312
5313 # Check to see that this really is a libtool object.
5314 if func_lalib_unsafe_p "$arg"; then
5315 pic_object=
5316 non_pic_object=
5317
5318 # Read the .lo file
5319 func_source "$arg"
5320
5321 if test -z "$pic_object" ||
5322 test -z "$non_pic_object" ||
5323 test "$pic_object" = none &&
5324 test "$non_pic_object" = none; then
5325 func_fatal_error "cannot find name of object for \`$arg'"
5326 fi
5327
5328 # Extract subdirectory from the argument.
5329 func_dirname "$arg" "/" ""
5330 xdir="$func_dirname_result"
5331
5332 if test "$pic_object" != none; then
5333 # Prepend the subdirectory the object is found in.
5334 pic_object="$xdir$pic_object"
5335
5336 if test "$prev" = dlfiles; then
5337 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5338 func_append dlfiles " $pic_object"
5339 prev=
5340 continue
5341 else
5342 # If libtool objects are unsupported, then we need to preload.
5343 prev=dlprefiles
5344 fi
5345 fi
5346
5347 # CHECK ME: I think I busted this. -Ossama
5348 if test "$prev" = dlprefiles; then
5349 # Preload the old-style object.
5350 func_append dlprefiles " $pic_object"
5351 prev=
5352 fi
5353
5354 # A PIC object.
5355 func_append libobjs " $pic_object"
5356 arg="$pic_object"
5357 fi
5358
5359 # Non-PIC object.
5360 if test "$non_pic_object" != none; then
5361 # Prepend the subdirectory the object is found in.
5362 non_pic_object="$xdir$non_pic_object"
5363
5364 # A standard non-PIC object
5365 func_append non_pic_objects " $non_pic_object"
5366 if test -z "$pic_object" || test "$pic_object" = none ; then
5367 arg="$non_pic_object"
5368 fi
5369 else
5370 # If the PIC object exists, use it instead.
5371 # $xdir was prepended to $pic_object above.
5372 non_pic_object="$pic_object"
5373 func_append non_pic_objects " $non_pic_object"
5374 fi
5375 else
5376 # Only an error if not doing a dry-run.
5377 if $opt_dry_run; then
5378 # Extract subdirectory from the argument.
5379 func_dirname "$arg" "/" ""
5380 xdir="$func_dirname_result"
5381
5382 func_lo2o "$arg"
5383 pic_object=$xdir$objdir/$func_lo2o_result
5384 non_pic_object=$xdir$func_lo2o_result
5385 func_append libobjs " $pic_object"
5386 func_append non_pic_objects " $non_pic_object"
5387 else
5388 func_fatal_error "\`$arg' is not a valid libtool object"
5389 fi
5390 fi
5391 done
5392 else
5393 func_fatal_error "link input file \`$arg' does not exist"
5394 fi
5395 arg=$save_arg
5396 prev=
5397 continue
5398 ;;
5399 precious_regex)
5400 precious_files_regex="$arg"
5401 prev=
5402 continue
5403 ;;
5404 release)
5405 release="-$arg"
5406 prev=
5407 continue
5408 ;;
5409 rpath | xrpath)
5410 # We need an absolute path.
5411 case $arg in
5412 [\\/]* | [A-Za-z]:[\\/]*) ;;
5413 *)
5414 func_fatal_error "only absolute run-paths are allowed"
5415 ;;
5416 esac
5417 if test "$prev" = rpath; then
5418 case "$rpath " in
5419 *" $arg "*) ;;
5420 *) func_append rpath " $arg" ;;
5421 esac
5422 else
5423 case "$xrpath " in
5424 *" $arg "*) ;;
5425 *) func_append xrpath " $arg" ;;
5426 esac
5427 fi
5428 prev=
5429 continue
5430 ;;
5431 shrext)
5432 shrext_cmds="$arg"
5433 prev=
5434 continue
5435 ;;
5436 weak)
5437 func_append weak_libs " $arg"
5438 prev=
5439 continue
5440 ;;
5441 xcclinker)
5442 func_append linker_flags " $qarg"
5443 func_append compiler_flags " $qarg"
5444 prev=
5445 func_append compile_command " $qarg"
5446 func_append finalize_command " $qarg"
5447 continue
5448 ;;
5449 xcompiler)
5450 func_append compiler_flags " $qarg"
5451 prev=
5452 func_append compile_command " $qarg"
5453 func_append finalize_command " $qarg"
5454 continue
5455 ;;
5456 xlinker)
5457 func_append linker_flags " $qarg"
5458 func_append compiler_flags " $wl$qarg"
5459 prev=
5460 func_append compile_command " $wl$qarg"
5461 func_append finalize_command " $wl$qarg"
5462 continue
5463 ;;
5464 *)
5465 eval "$prev=\"\$arg\""
5466 prev=
5467 continue
5468 ;;
5469 esac
5470 fi # test -n "$prev"
5471
5472 prevarg="$arg"
5473
5474 case $arg in
5475 -all-static)
5476 if test -n "$link_static_flag"; then
5477 # See comment for -static flag below, for more details.
5478 func_append compile_command " $link_static_flag"
5479 func_append finalize_command " $link_static_flag"
5480 fi
5481 continue
5482 ;;
5483
5484 -allow-undefined)
5485 # FIXME: remove this flag sometime in the future.
5486 func_fatal_error "\`-allow-undefined' must not be used because it is the default"
5487 ;;
5488
5489 -avoid-version)
5490 avoid_version=yes
5491 continue
5492 ;;
5493
5494 -bindir)
5495 prev=bindir
5496 continue
5497 ;;
5498
5499 -dlopen)
5500 prev=dlfiles
5501 continue
5502 ;;
5503
5504 -dlpreopen)
5505 prev=dlprefiles
5506 continue
5507 ;;
5508
5509 -export-dynamic)
5510 export_dynamic=yes
5511 continue
5512 ;;
5513
5514 -export-symbols | -export-symbols-regex)
5515 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
5516 func_fatal_error "more than one -exported-symbols argument is not allowed"
5517 fi
5518 if test "X$arg" = "X-export-symbols"; then
5519 prev=expsyms
5520 else
5521 prev=expsyms_regex
5522 fi
5523 continue
5524 ;;
5525
5526 -framework)
5527 prev=framework
5528 continue
5529 ;;
5530
5531 -inst-prefix-dir)
5532 prev=inst_prefix
5533 continue
5534 ;;
5535
5536 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
5537 # so, if we see these flags be careful not to treat them like -L
5538 -L[A-Z][A-Z]*:*)
5539 case $with_gcc/$host in
5540 no/*-*-irix* | /*-*-irix*)
5541 func_append compile_command " $arg"
5542 func_append finalize_command " $arg"
5543 ;;
5544 esac
5545 continue
5546 ;;
5547
5548 -L*)
5549 func_stripname "-L" '' "$arg"
5550 if test -z "$func_stripname_result"; then
5551 if test "$#" -gt 0; then
5552 func_fatal_error "require no space between \`-L' and \`$1'"
5553 else
5554 func_fatal_error "need path for \`-L' option"
5555 fi
5556 fi
5557 func_resolve_sysroot "$func_stripname_result"
5558 dir=$func_resolve_sysroot_result
5559 # We need an absolute path.
5560 case $dir in
5561 [\\/]* | [A-Za-z]:[\\/]*) ;;
5562 *)
5563 absdir=`cd "$dir" && pwd`
5564 test -z "$absdir" && \
5565 func_fatal_error "cannot determine absolute directory name of \`$dir'"
5566 dir="$absdir"
5567 ;;
5568 esac
5569 case "$deplibs " in
5570 *" -L$dir "* | *" $arg "*)
5571 # Will only happen for absolute or sysroot arguments
5572 ;;
5573 *)
5574 # Preserve sysroot, but never include relative directories
5575 case $dir in
5576 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5577 *) func_append deplibs " -L$dir" ;;
5578 esac
5579 func_append lib_search_path " $dir"
5580 ;;
5581 esac
5582 case $host in
5583 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5584 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
5585 case :$dllsearchpath: in
5586 *":$dir:"*) ;;
5587 ::) dllsearchpath=$dir;;
5588 *) func_append dllsearchpath ":$dir";;
5589 esac
5590 case :$dllsearchpath: in
5591 *":$testbindir:"*) ;;
5592 ::) dllsearchpath=$testbindir;;
5593 *) func_append dllsearchpath ":$testbindir";;
5594 esac
5595 ;;
5596 esac
5597 continue
5598 ;;
5599
5600 -l*)
5601 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
5602 case $host in
5603 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
5604 # These systems don't actually have a C or math library (as such)
5605 continue
5606 ;;
5607 *-*-os2*)
5608 # These systems don't actually have a C library (as such)
5609 test "X$arg" = "X-lc" && continue
5610 ;;
5611 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5612 # Do not include libc due to us having libc/libc_r.
5613 test "X$arg" = "X-lc" && continue
5614 ;;
5615 *-*-rhapsody* | *-*-darwin1.[012])
5616 # Rhapsody C and math libraries are in the System framework
5617 func_append deplibs " System.ltframework"
5618 continue
5619 ;;
5620 *-*-sco3.2v5* | *-*-sco5v6*)
5621 # Causes problems with __ctype
5622 test "X$arg" = "X-lc" && continue
5623 ;;
5624 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
5625 # Compiler inserts libc in the correct place for threads to work
5626 test "X$arg" = "X-lc" && continue
5627 ;;
5628 esac
5629 elif test "X$arg" = "X-lc_r"; then
5630 case $host in
5631 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5632 # Do not include libc_r directly, use -pthread flag.
5633 continue
5634 ;;
5635 esac
5636 fi
5637 func_append deplibs " $arg"
5638 continue
5639 ;;
5640
5641 -module)
5642 module=yes
5643 continue
5644 ;;
5645
5646 # Tru64 UNIX uses -model [arg] to determine the layout of C++
5647 # classes, name mangling, and exception handling.
5648 # Darwin uses the -arch flag to determine output architecture.
5649 -model|-arch|-isysroot|--sysroot)
5650 func_append compiler_flags " $arg"
5651 func_append compile_command " $arg"
5652 func_append finalize_command " $arg"
5653 prev=xcompiler
5654 continue
5655 ;;
5656
5657 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
5658 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
5659 func_append compiler_flags " $arg"
5660 func_append compile_command " $arg"
5661 func_append finalize_command " $arg"
5662 case "$new_inherited_linker_flags " in
5663 *" $arg "*) ;;
5664 * ) func_append new_inherited_linker_flags " $arg" ;;
5665 esac
5666 continue
5667 ;;
5668
5669 -multi_module)
5670 single_module="${wl}-multi_module"
5671 continue
5672 ;;
5673
5674 -no-fast-install)
5675 fast_install=no
5676 continue
5677 ;;
5678
5679 -no-install)
5680 case $host in
5681 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
5682 # The PATH hackery in wrapper scripts is required on Windows
5683 # and Darwin in order for the loader to find any dlls it needs.
5684 func_warning "\`-no-install' is ignored for $host"
5685 func_warning "assuming \`-no-fast-install' instead"
5686 fast_install=no
5687 ;;
5688 *) no_install=yes ;;
5689 esac
5690 continue
5691 ;;
5692
5693 -no-undefined)
5694 allow_undefined=no
5695 continue
5696 ;;
5697
5698 -objectlist)
5699 prev=objectlist
5700 continue
5701 ;;
5702
5703 -o) prev=output ;;
5704
5705 -precious-files-regex)
5706 prev=precious_regex
5707 continue
5708 ;;
5709
5710 -release)
5711 prev=release
5712 continue
5713 ;;
5714
5715 -rpath)
5716 prev=rpath
5717 continue
5718 ;;
5719
5720 -R)
5721 prev=xrpath
5722 continue
5723 ;;
5724
5725 -R*)
5726 func_stripname '-R' '' "$arg"
5727 dir=$func_stripname_result
5728 # We need an absolute path.
5729 case $dir in
5730 [\\/]* | [A-Za-z]:[\\/]*) ;;
5731 =*)
5732 func_stripname '=' '' "$dir"
5733 dir=$lt_sysroot$func_stripname_result
5734 ;;
5735 *)
5736 func_fatal_error "only absolute run-paths are allowed"
5737 ;;
5738 esac
5739 case "$xrpath " in
5740 *" $dir "*) ;;
5741 *) func_append xrpath " $dir" ;;
5742 esac
5743 continue
5744 ;;
5745
5746 -shared)
5747 # The effects of -shared are defined in a previous loop.
5748 continue
5749 ;;
5750
5751 -shrext)
5752 prev=shrext
5753 continue
5754 ;;
5755
5756 -static | -static-libtool-libs)
5757 # The effects of -static are defined in a previous loop.
5758 # We used to do the same as -all-static on platforms that
5759 # didn't have a PIC flag, but the assumption that the effects
5760 # would be equivalent was wrong. It would break on at least
5761 # Digital Unix and AIX.
5762 continue
5763 ;;
5764
5765 -thread-safe)
5766 thread_safe=yes
5767 continue
5768 ;;
5769
5770 -version-info)
5771 prev=vinfo
5772 continue
5773 ;;
5774
5775 -version-number)
5776 prev=vinfo
5777 vinfo_number=yes
5778 continue
5779 ;;
5780
5781 -weak)
5782 prev=weak
5783 continue
5784 ;;
5785
5786 -Wc,*)
5787 func_stripname '-Wc,' '' "$arg"
5788 args=$func_stripname_result
5789 arg=
5790 save_ifs="$IFS"; IFS=','
5791 for flag in $args; do
5792 IFS="$save_ifs"
5793 func_quote_for_eval "$flag"
5794 func_append arg " $func_quote_for_eval_result"
5795 func_append compiler_flags " $func_quote_for_eval_result"
5796 done
5797 IFS="$save_ifs"
5798 func_stripname ' ' '' "$arg"
5799 arg=$func_stripname_result
5800 ;;
5801
5802 -Wl,*)
5803 func_stripname '-Wl,' '' "$arg"
5804 args=$func_stripname_result
5805 arg=
5806 save_ifs="$IFS"; IFS=','
5807 for flag in $args; do
5808 IFS="$save_ifs"
5809 func_quote_for_eval "$flag"
5810 func_append arg " $wl$func_quote_for_eval_result"
5811 func_append compiler_flags " $wl$func_quote_for_eval_result"
5812 func_append linker_flags " $func_quote_for_eval_result"
5813 done
5814 IFS="$save_ifs"
5815 func_stripname ' ' '' "$arg"
5816 arg=$func_stripname_result
5817 ;;
5818
5819 -Xcompiler)
5820 prev=xcompiler
5821 continue
5822 ;;
5823
5824 -Xlinker)
5825 prev=xlinker
5826 continue
5827 ;;
5828
5829 -XCClinker)
5830 prev=xcclinker
5831 continue
5832 ;;
5833
5834 # -msg_* for osf cc
5835 -msg_*)
5836 func_quote_for_eval "$arg"
5837 arg="$func_quote_for_eval_result"
5838 ;;
5839
5840 # Flags to be passed through unchanged, with rationale:
5841 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
5842 # -r[0-9][0-9]* specify processor for the SGI compiler
5843 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5844 # +DA*, +DD* enable 64-bit mode for the HP compiler
5845 # -q* compiler args for the IBM compiler
5846 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5847 # -F/path path to uninstalled frameworks, gcc on darwin
5848 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
5849 # @file GCC response files
5850 # -tp=* Portland pgcc target processor selection
5851 # --sysroot=* for sysroot support
5852 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
5853 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5854 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5855 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
5856 func_quote_for_eval "$arg"
5857 arg="$func_quote_for_eval_result"
5858 func_append compile_command " $arg"
5859 func_append finalize_command " $arg"
5860 func_append compiler_flags " $arg"
5861 continue
5862 ;;
5863
5864 # Some other compiler flag.
5865 -* | +*)
5866 func_quote_for_eval "$arg"
5867 arg="$func_quote_for_eval_result"
5868 ;;
5869
5870 *.$objext)
5871 # A standard object.
5872 func_append objs " $arg"
5873 ;;
5874
5875 *.lo)
5876 # A libtool-controlled object.
5877
5878 # Check to see that this really is a libtool object.
5879 if func_lalib_unsafe_p "$arg"; then
5880 pic_object=
5881 non_pic_object=
5882
5883 # Read the .lo file
5884 func_source "$arg"
5885
5886 if test -z "$pic_object" ||
5887 test -z "$non_pic_object" ||
5888 test "$pic_object" = none &&
5889 test "$non_pic_object" = none; then
5890 func_fatal_error "cannot find name of object for \`$arg'"
5891 fi
5892
5893 # Extract subdirectory from the argument.
5894 func_dirname "$arg" "/" ""
5895 xdir="$func_dirname_result"
5896
5897 if test "$pic_object" != none; then
5898 # Prepend the subdirectory the object is found in.
5899 pic_object="$xdir$pic_object"
5900
5901 if test "$prev" = dlfiles; then
5902 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5903 func_append dlfiles " $pic_object"
5904 prev=
5905 continue
5906 else
5907 # If libtool objects are unsupported, then we need to preload.
5908 prev=dlprefiles
5909 fi
5910 fi
5911
5912 # CHECK ME: I think I busted this. -Ossama
5913 if test "$prev" = dlprefiles; then
5914 # Preload the old-style object.
5915 func_append dlprefiles " $pic_object"
5916 prev=
5917 fi
5918
5919 # A PIC object.
5920 func_append libobjs " $pic_object"
5921 arg="$pic_object"
5922 fi
5923
5924 # Non-PIC object.
5925 if test "$non_pic_object" != none; then
5926 # Prepend the subdirectory the object is found in.
5927 non_pic_object="$xdir$non_pic_object"
5928
5929 # A standard non-PIC object
5930 func_append non_pic_objects " $non_pic_object"
5931 if test -z "$pic_object" || test "$pic_object" = none ; then
5932 arg="$non_pic_object"
5933 fi
5934 else
5935 # If the PIC object exists, use it instead.
5936 # $xdir was prepended to $pic_object above.
5937 non_pic_object="$pic_object"
5938 func_append non_pic_objects " $non_pic_object"
5939 fi
5940 else
5941 # Only an error if not doing a dry-run.
5942 if $opt_dry_run; then
5943 # Extract subdirectory from the argument.
5944 func_dirname "$arg" "/" ""
5945 xdir="$func_dirname_result"
5946
5947 func_lo2o "$arg"
5948 pic_object=$xdir$objdir/$func_lo2o_result
5949 non_pic_object=$xdir$func_lo2o_result
5950 func_append libobjs " $pic_object"
5951 func_append non_pic_objects " $non_pic_object"
5952 else
5953 func_fatal_error "\`$arg' is not a valid libtool object"
5954 fi
5955 fi
5956 ;;
5957
5958 *.$libext)
5959 # An archive.
5960 func_append deplibs " $arg"
5961 func_append old_deplibs " $arg"
5962 continue
5963 ;;
5964
5965 *.la)
5966 # A libtool-controlled library.
5967
5968 func_resolve_sysroot "$arg"
5969 if test "$prev" = dlfiles; then
5970 # This library was specified with -dlopen.
5971 func_append dlfiles " $func_resolve_sysroot_result"
5972 prev=
5973 elif test "$prev" = dlprefiles; then
5974 # The library was specified with -dlpreopen.
5975 func_append dlprefiles " $func_resolve_sysroot_result"
5976 prev=
5977 else
5978 func_append deplibs " $func_resolve_sysroot_result"
5979 fi
5980 continue
5981 ;;
5982
5983 # Some other compiler argument.
5984 *)
5985 # Unknown arguments in both finalize_command and compile_command need
5986 # to be aesthetically quoted because they are evaled later.
5987 func_quote_for_eval "$arg"
5988 arg="$func_quote_for_eval_result"
5989 ;;
5990 esac # arg
5991
5992 # Now actually substitute the argument into the commands.
5993 if test -n "$arg"; then
5994 func_append compile_command " $arg"
5995 func_append finalize_command " $arg"
5996 fi
5997 done # argument parsing loop
5998
5999 test -n "$prev" && \
6000 func_fatal_help "the \`$prevarg' option requires an argument"
6001
6002 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
6003 eval arg=\"$export_dynamic_flag_spec\"
6004 func_append compile_command " $arg"
6005 func_append finalize_command " $arg"
6006 fi
6007
6008 oldlibs=
6009 # calculate the name of the file, without its directory
6010 func_basename "$output"
6011 outputname="$func_basename_result"
6012 libobjs_save="$libobjs"
6013
6014 if test -n "$shlibpath_var"; then
6015 # get the directories listed in $shlibpath_var
6016 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
6017 else
6018 shlib_search_path=
6019 fi
6020 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
6021 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
6022
6023 func_dirname "$output" "/" ""
6024 output_objdir="$func_dirname_result$objdir"
6025 func_to_tool_file "$output_objdir/"
6026 tool_output_objdir=$func_to_tool_file_result
6027 # Create the object directory.
6028 func_mkdir_p "$output_objdir"
6029
6030 # Determine the type of output
6031 case $output in
6032 "")
6033 func_fatal_help "you must specify an output file"
6034 ;;
6035 *.$libext) linkmode=oldlib ;;
6036 *.lo | *.$objext) linkmode=obj ;;
6037 *.la) linkmode=lib ;;
6038 *) linkmode=prog ;; # Anything else should be a program.
6039 esac
6040
6041 specialdeplibs=
6042
6043 libs=
6044 # Find all interdependent deplibs by searching for libraries
6045 # that are linked more than once (e.g. -la -lb -la)
6046 for deplib in $deplibs; do
6047 if $opt_preserve_dup_deps ; then
6048 case "$libs " in
6049 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6050 esac
6051 fi
6052 func_append libs " $deplib"
6053 done
6054
6055 if test "$linkmode" = lib; then
6056 libs="$predeps $libs $compiler_lib_search_path $postdeps"
6057
6058 # Compute libraries that are listed more than once in $predeps
6059 # $postdeps and mark them as special (i.e., whose duplicates are
6060 # not to be eliminated).
6061 pre_post_deps=
6062 if $opt_duplicate_compiler_generated_deps; then
6063 for pre_post_dep in $predeps $postdeps; do
6064 case "$pre_post_deps " in
6065 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
6066 esac
6067 func_append pre_post_deps " $pre_post_dep"
6068 done
6069 fi
6070 pre_post_deps=
6071 fi
6072
6073 deplibs=
6074 newdependency_libs=
6075 newlib_search_path=
6076 need_relink=no # whether we're linking any uninstalled libtool libraries
6077 notinst_deplibs= # not-installed libtool libraries
6078 notinst_path= # paths that contain not-installed libtool libraries
6079
6080 case $linkmode in
6081 lib)
6082 passes="conv dlpreopen link"
6083 for file in $dlfiles $dlprefiles; do
6084 case $file in
6085 *.la) ;;
6086 *)
6087 func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
6088 ;;
6089 esac
6090 done
6091 ;;
6092 prog)
6093 compile_deplibs=
6094 finalize_deplibs=
6095 alldeplibs=no
6096 newdlfiles=
6097 newdlprefiles=
6098 passes="conv scan dlopen dlpreopen link"
6099 ;;
6100 *) passes="conv"
6101 ;;
6102 esac
6103
6104 for pass in $passes; do
6105 # The preopen pass in lib mode reverses $deplibs; put it back here
6106 # so that -L comes before libs that need it for instance...
6107 if test "$linkmode,$pass" = "lib,link"; then
6108 ## FIXME: Find the place where the list is rebuilt in the wrong
6109 ## order, and fix it there properly
6110 tmp_deplibs=
6111 for deplib in $deplibs; do
6112 tmp_deplibs="$deplib $tmp_deplibs"
6113 done
6114 deplibs="$tmp_deplibs"
6115 fi
6116
6117 if test "$linkmode,$pass" = "lib,link" ||
6118 test "$linkmode,$pass" = "prog,scan"; then
6119 libs="$deplibs"
6120 deplibs=
6121 fi
6122 if test "$linkmode" = prog; then
6123 case $pass in
6124 dlopen) libs="$dlfiles" ;;
6125 dlpreopen) libs="$dlprefiles" ;;
6126 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
6127 esac
6128 fi
6129 if test "$linkmode,$pass" = "lib,dlpreopen"; then
6130 # Collect and forward deplibs of preopened libtool libs
6131 for lib in $dlprefiles; do
6132 # Ignore non-libtool-libs
6133 dependency_libs=
6134 func_resolve_sysroot "$lib"
6135 case $lib in
6136 *.la) func_source "$func_resolve_sysroot_result" ;;
6137 esac
6138
6139 # Collect preopened libtool deplibs, except any this library
6140 # has declared as weak libs
6141 for deplib in $dependency_libs; do
6142 func_basename "$deplib"
6143 deplib_base=$func_basename_result
6144 case " $weak_libs " in
6145 *" $deplib_base "*) ;;
6146 *) func_append deplibs " $deplib" ;;
6147 esac
6148 done
6149 done
6150 libs="$dlprefiles"
6151 fi
6152 if test "$pass" = dlopen; then
6153 # Collect dlpreopened libraries
6154 save_deplibs="$deplibs"
6155 deplibs=
6156 fi
6157
6158 for deplib in $libs; do
6159 lib=
6160 found=no
6161 case $deplib in
6162 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
6163 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
6164 if test "$linkmode,$pass" = "prog,link"; then
6165 compile_deplibs="$deplib $compile_deplibs"
6166 finalize_deplibs="$deplib $finalize_deplibs"
6167 else
6168 func_append compiler_flags " $deplib"
6169 if test "$linkmode" = lib ; then
6170 case "$new_inherited_linker_flags " in
6171 *" $deplib "*) ;;
6172 * ) func_append new_inherited_linker_flags " $deplib" ;;
6173 esac
6174 fi
6175 fi
6176 continue
6177 ;;
6178 -l*)
6179 if test "$linkmode" != lib && test "$linkmode" != prog; then
6180 func_warning "\`-l' is ignored for archives/objects"
6181 continue
6182 fi
6183 func_stripname '-l' '' "$deplib"
6184 name=$func_stripname_result
6185 if test "$linkmode" = lib; then
6186 searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
6187 else
6188 searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
6189 fi
6190 for searchdir in $searchdirs; do
6191 for search_ext in .la $std_shrext .so .a; do
6192 # Search the libtool library
6193 lib="$searchdir/lib${name}${search_ext}"
6194 if test -f "$lib"; then
6195 if test "$search_ext" = ".la"; then
6196 found=yes
6197 else
6198 found=no
6199 fi
6200 break 2
6201 fi
6202 done
6203 done
6204 if test "$found" != yes; then
6205 # deplib doesn't seem to be a libtool library
6206 if test "$linkmode,$pass" = "prog,link"; then
6207 compile_deplibs="$deplib $compile_deplibs"
6208 finalize_deplibs="$deplib $finalize_deplibs"
6209 else
6210 deplibs="$deplib $deplibs"
6211 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
6212 fi
6213 continue
6214 else # deplib is a libtool library
6215 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
6216 # We need to do some special things here, and not later.
6217 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6218 case " $predeps $postdeps " in
6219 *" $deplib "*)
6220 if func_lalib_p "$lib"; then
6221 library_names=
6222 old_library=
6223 func_source "$lib"
6224 for l in $old_library $library_names; do
6225 ll="$l"
6226 done
6227 if test "X$ll" = "X$old_library" ; then # only static version available
6228 found=no
6229 func_dirname "$lib" "" "."
6230 ladir="$func_dirname_result"
6231 lib=$ladir/$old_library
6232 if test "$linkmode,$pass" = "prog,link"; then
6233 compile_deplibs="$deplib $compile_deplibs"
6234 finalize_deplibs="$deplib $finalize_deplibs"
6235 else
6236 deplibs="$deplib $deplibs"
6237 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
6238 fi
6239 continue
6240 fi
6241 fi
6242 ;;
6243 *) ;;
6244 esac
6245 fi
6246 fi
6247 ;; # -l
6248 *.ltframework)
6249 if test "$linkmode,$pass" = "prog,link"; then
6250 compile_deplibs="$deplib $compile_deplibs"
6251 finalize_deplibs="$deplib $finalize_deplibs"
6252 else
6253 deplibs="$deplib $deplibs"
6254 if test "$linkmode" = lib ; then
6255 case "$new_inherited_linker_flags " in
6256 *" $deplib "*) ;;
6257 * ) func_append new_inherited_linker_flags " $deplib" ;;
6258 esac
6259 fi
6260 fi
6261 continue
6262 ;;
6263 -L*)
6264 case $linkmode in
6265 lib)
6266 deplibs="$deplib $deplibs"
6267 test "$pass" = conv && continue
6268 newdependency_libs="$deplib $newdependency_libs"
6269 func_stripname '-L' '' "$deplib"
6270 func_resolve_sysroot "$func_stripname_result"
6271 func_append newlib_search_path " $func_resolve_sysroot_result"
6272 ;;
6273 prog)
6274 if test "$pass" = conv; then
6275 deplibs="$deplib $deplibs"
6276 continue
6277 fi
6278 if test "$pass" = scan; then
6279 deplibs="$deplib $deplibs"
6280 else
6281 compile_deplibs="$deplib $compile_deplibs"
6282 finalize_deplibs="$deplib $finalize_deplibs"
6283 fi
6284 func_stripname '-L' '' "$deplib"
6285 func_resolve_sysroot "$func_stripname_result"
6286 func_append newlib_search_path " $func_resolve_sysroot_result"
6287 ;;
6288 *)
6289 func_warning "\`-L' is ignored for archives/objects"
6290 ;;
6291 esac # linkmode
6292 continue
6293 ;; # -L
6294 -R*)
6295 if test "$pass" = link; then
6296 func_stripname '-R' '' "$deplib"
6297 func_resolve_sysroot "$func_stripname_result"
6298 dir=$func_resolve_sysroot_result
6299 # Make sure the xrpath contains only unique directories.
6300 case "$xrpath " in
6301 *" $dir "*) ;;
6302 *) func_append xrpath " $dir" ;;
6303 esac
6304 fi
6305 deplibs="$deplib $deplibs"
6306 continue
6307 ;;
6308 *.la)
6309 func_resolve_sysroot "$deplib"
6310 lib=$func_resolve_sysroot_result
6311 ;;
6312 *.$libext)
6313 if test "$pass" = conv; then
6314 deplibs="$deplib $deplibs"
6315 continue
6316 fi
6317 case $linkmode in
6318 lib)
6319 # Linking convenience modules into shared libraries is allowed,
6320 # but linking other static libraries is non-portable.
6321 case " $dlpreconveniencelibs " in
6322 *" $deplib "*) ;;
6323 *)
6324 valid_a_lib=no
6325 case $deplibs_check_method in
6326 match_pattern*)
6327 set dummy $deplibs_check_method; shift
6328 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
6329 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
6330 | $EGREP "$match_pattern_regex" > /dev/null; then
6331 valid_a_lib=yes
6332 fi
6333 ;;
6334 pass_all)
6335 valid_a_lib=yes
6336 ;;
6337 esac
6338 if test "$valid_a_lib" != yes; then
6339 echo
6340 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
6341 echo "*** I have the capability to make that library automatically link in when"
6342 echo "*** you link to this library. But I can only do this if you have a"
6343 echo "*** shared version of the library, which you do not appear to have"
6344 echo "*** because the file extensions .$libext of this argument makes me believe"
6345 echo "*** that it is just a static archive that I should not use here."
6346 else
6347 echo
6348 $ECHO "*** Warning: Linking the shared library $output against the"
6349 $ECHO "*** static library $deplib is not portable!"
6350 deplibs="$deplib $deplibs"
6351 fi
6352 ;;
6353 esac
6354 continue
6355 ;;
6356 prog)
6357 if test "$pass" != link; then
6358 deplibs="$deplib $deplibs"
6359 else
6360 compile_deplibs="$deplib $compile_deplibs"
6361 finalize_deplibs="$deplib $finalize_deplibs"
6362 fi
6363 continue
6364 ;;
6365 esac # linkmode
6366 ;; # *.$libext
6367 *.lo | *.$objext)
6368 if test "$pass" = conv; then
6369 deplibs="$deplib $deplibs"
6370 elif test "$linkmode" = prog; then
6371 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
6372 # If there is no dlopen support or we're linking statically,
6373 # we need to preload.
6374 func_append newdlprefiles " $deplib"
6375 compile_deplibs="$deplib $compile_deplibs"
6376 finalize_deplibs="$deplib $finalize_deplibs"
6377 else
6378 func_append newdlfiles " $deplib"
6379 fi
6380 fi
6381 continue
6382 ;;
6383 %DEPLIBS%)
6384 alldeplibs=yes
6385 continue
6386 ;;
6387 esac # case $deplib
6388
6389 if test "$found" = yes || test -f "$lib"; then :
6390 else
6391 func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
6392 fi
6393
6394 # Check to see that this really is a libtool archive.
6395 func_lalib_unsafe_p "$lib" \
6396 || func_fatal_error "\`$lib' is not a valid libtool archive"
6397
6398 func_dirname "$lib" "" "."
6399 ladir="$func_dirname_result"
6400
6401 dlname=
6402 dlopen=
6403 dlpreopen=
6404 libdir=
6405 library_names=
6406 old_library=
6407 inherited_linker_flags=
6408 # If the library was installed with an old release of libtool,
6409 # it will not redefine variables installed, or shouldnotlink
6410 installed=yes
6411 shouldnotlink=no
6412 avoidtemprpath=
6413
6414
6415 # Read the .la file
6416 func_source "$lib"
6417
6418 # Convert "-framework foo" to "foo.ltframework"
6419 if test -n "$inherited_linker_flags"; then
6420 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
6421 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
6422 case " $new_inherited_linker_flags " in
6423 *" $tmp_inherited_linker_flag "*) ;;
6424 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
6425 esac
6426 done
6427 fi
6428 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6429 if test "$linkmode,$pass" = "lib,link" ||
6430 test "$linkmode,$pass" = "prog,scan" ||
6431 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
6432 test -n "$dlopen" && func_append dlfiles " $dlopen"
6433 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
6434 fi
6435
6436 if test "$pass" = conv; then
6437 # Only check for convenience libraries
6438 deplibs="$lib $deplibs"
6439 if test -z "$libdir"; then
6440 if test -z "$old_library"; then
6441 func_fatal_error "cannot find name of link library for \`$lib'"
6442 fi
6443 # It is a libtool convenience library, so add in its objects.
6444 func_append convenience " $ladir/$objdir/$old_library"
6445 func_append old_convenience " $ladir/$objdir/$old_library"
6446 elif test "$linkmode" != prog && test "$linkmode" != lib; then
6447 func_fatal_error "\`$lib' is not a convenience library"
6448 fi
6449 tmp_libs=
6450 for deplib in $dependency_libs; do
6451 deplibs="$deplib $deplibs"
6452 if $opt_preserve_dup_deps ; then
6453 case "$tmp_libs " in
6454 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6455 esac
6456 fi
6457 func_append tmp_libs " $deplib"
6458 done
6459 continue
6460 fi # $pass = conv
6461
6462
6463 # Get the name of the library we link against.
6464 linklib=
6465 if test -n "$old_library" &&
6466 { test "$prefer_static_libs" = yes ||
6467 test "$prefer_static_libs,$installed" = "built,no"; }; then
6468 linklib=$old_library
6469 else
6470 for l in $old_library $library_names; do
6471 linklib="$l"
6472 done
6473 fi
6474 if test -z "$linklib"; then
6475 func_fatal_error "cannot find name of link library for \`$lib'"
6476 fi
6477
6478 # This library was specified with -dlopen.
6479 if test "$pass" = dlopen; then
6480 if test -z "$libdir"; then
6481 func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
6482 fi
6483 if test -z "$dlname" ||
6484 test "$dlopen_support" != yes ||
6485 test "$build_libtool_libs" = no; then
6486 # If there is no dlname, no dlopen support or we're linking
6487 # statically, we need to preload. We also need to preload any
6488 # dependent libraries so libltdl's deplib preloader doesn't
6489 # bomb out in the load deplibs phase.
6490 func_append dlprefiles " $lib $dependency_libs"
6491 else
6492 func_append newdlfiles " $lib"
6493 fi
6494 continue
6495 fi # $pass = dlopen
6496
6497 # We need an absolute path.
6498 case $ladir in
6499 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
6500 *)
6501 abs_ladir=`cd "$ladir" && pwd`
6502 if test -z "$abs_ladir"; then
6503 func_warning "cannot determine absolute directory name of \`$ladir'"
6504 func_warning "passing it literally to the linker, although it might fail"
6505 abs_ladir="$ladir"
6506 fi
6507 ;;
6508 esac
6509 func_basename "$lib"
6510 laname="$func_basename_result"
6511
6512 # Find the relevant object directory and library name.
6513 if test "X$installed" = Xyes; then
6514 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6515 func_warning "library \`$lib' was moved."
6516 dir="$ladir"
6517 absdir="$abs_ladir"
6518 libdir="$abs_ladir"
6519 else
6520 dir="$lt_sysroot$libdir"
6521 absdir="$lt_sysroot$libdir"
6522 fi
6523 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
6524 else
6525 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6526 dir="$ladir"
6527 absdir="$abs_ladir"
6528 # Remove this search path later
6529 func_append notinst_path " $abs_ladir"
6530 else
6531 dir="$ladir/$objdir"
6532 absdir="$abs_ladir/$objdir"
6533 # Remove this search path later
6534 func_append notinst_path " $abs_ladir"
6535 fi
6536 fi # $installed = yes
6537 func_stripname 'lib' '.la' "$laname"
6538 name=$func_stripname_result
6539
6540 # This library was specified with -dlpreopen.
6541 if test "$pass" = dlpreopen; then
6542 if test -z "$libdir" && test "$linkmode" = prog; then
6543 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
6544 fi
6545 case "$host" in
6546 # special handling for platforms with PE-DLLs.
6547 *cygwin* | *mingw* | *cegcc* )
6548 # Linker will automatically link against shared library if both
6549 # static and shared are present. Therefore, ensure we extract
6550 # symbols from the import library if a shared library is present
6551 # (otherwise, the dlopen module name will be incorrect). We do
6552 # this by putting the import library name into $newdlprefiles.
6553 # We recover the dlopen module name by 'saving' the la file
6554 # name in a special purpose variable, and (later) extracting the
6555 # dlname from the la file.
6556 if test -n "$dlname"; then
6557 func_tr_sh "$dir/$linklib"
6558 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
6559 func_append newdlprefiles " $dir/$linklib"
6560 else
6561 func_append newdlprefiles " $dir/$old_library"
6562 # Keep a list of preopened convenience libraries to check
6563 # that they are being used correctly in the link pass.
6564 test -z "$libdir" && \
6565 func_append dlpreconveniencelibs " $dir/$old_library"
6566 fi
6567 ;;
6568 * )
6569 # Prefer using a static library (so that no silly _DYNAMIC symbols
6570 # are required to link).
6571 if test -n "$old_library"; then
6572 func_append newdlprefiles " $dir/$old_library"
6573 # Keep a list of preopened convenience libraries to check
6574 # that they are being used correctly in the link pass.
6575 test -z "$libdir" && \
6576 func_append dlpreconveniencelibs " $dir/$old_library"
6577 # Otherwise, use the dlname, so that lt_dlopen finds it.
6578 elif test -n "$dlname"; then
6579 func_append newdlprefiles " $dir/$dlname"
6580 else
6581 func_append newdlprefiles " $dir/$linklib"
6582 fi
6583 ;;
6584 esac
6585 fi # $pass = dlpreopen
6586
6587 if test -z "$libdir"; then
6588 # Link the convenience library
6589 if test "$linkmode" = lib; then
6590 deplibs="$dir/$old_library $deplibs"
6591 elif test "$linkmode,$pass" = "prog,link"; then
6592 compile_deplibs="$dir/$old_library $compile_deplibs"
6593 finalize_deplibs="$dir/$old_library $finalize_deplibs"
6594 else
6595 deplibs="$lib $deplibs" # used for prog,scan pass
6596 fi
6597 continue
6598 fi
6599
6600
6601 if test "$linkmode" = prog && test "$pass" != link; then
6602 func_append newlib_search_path " $ladir"
6603 deplibs="$lib $deplibs"
6604
6605 linkalldeplibs=no
6606 if test "$link_all_deplibs" != no || test -z "$library_names" ||
6607 test "$build_libtool_libs" = no; then
6608 linkalldeplibs=yes
6609 fi
6610
6611 tmp_libs=
6612 for deplib in $dependency_libs; do
6613 case $deplib in
6614 -L*) func_stripname '-L' '' "$deplib"
6615 func_resolve_sysroot "$func_stripname_result"
6616 func_append newlib_search_path " $func_resolve_sysroot_result"
6617 ;;
6618 esac
6619 # Need to link against all dependency_libs?
6620 if test "$linkalldeplibs" = yes; then
6621 deplibs="$deplib $deplibs"
6622 else
6623 # Need to hardcode shared library paths
6624 # or/and link against static libraries
6625 newdependency_libs="$deplib $newdependency_libs"
6626 fi
6627 if $opt_preserve_dup_deps ; then
6628 case "$tmp_libs " in
6629 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6630 esac
6631 fi
6632 func_append tmp_libs " $deplib"
6633 done # for deplib
6634 continue
6635 fi # $linkmode = prog...
6636
6637 if test "$linkmode,$pass" = "prog,link"; then
6638 if test -n "$library_names" &&
6639 { { test "$prefer_static_libs" = no ||
6640 test "$prefer_static_libs,$installed" = "built,yes"; } ||
6641 test -z "$old_library"; }; then
6642 # We need to hardcode the library path
6643 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
6644 # Make sure the rpath contains only unique directories.
6645 case "$temp_rpath:" in
6646 *"$absdir:"*) ;;
6647 *) func_append temp_rpath "$absdir:" ;;
6648 esac
6649 fi
6650
6651 # Hardcode the library path.
6652 # Skip directories that are in the system default run-time
6653 # search path.
6654 case " $sys_lib_dlsearch_path " in
6655 *" $absdir "*) ;;
6656 *)
6657 case "$compile_rpath " in
6658 *" $absdir "*) ;;
6659 *) func_append compile_rpath " $absdir" ;;
6660 esac
6661 ;;
6662 esac
6663 case " $sys_lib_dlsearch_path " in
6664 *" $libdir "*) ;;
6665 *)
6666 case "$finalize_rpath " in
6667 *" $libdir "*) ;;
6668 *) func_append finalize_rpath " $libdir" ;;
6669 esac
6670 ;;
6671 esac
6672 fi # $linkmode,$pass = prog,link...
6673
6674 if test "$alldeplibs" = yes &&
6675 { test "$deplibs_check_method" = pass_all ||
6676 { test "$build_libtool_libs" = yes &&
6677 test -n "$library_names"; }; }; then
6678 # We only need to search for static libraries
6679 continue
6680 fi
6681 fi
6682
6683 link_static=no # Whether the deplib will be linked statically
6684 use_static_libs=$prefer_static_libs
6685 if test "$use_static_libs" = built && test "$installed" = yes; then
6686 use_static_libs=no
6687 fi
6688 if test -n "$library_names" &&
6689 { test "$use_static_libs" = no || test -z "$old_library"; }; then
6690 case $host in
6691 *cygwin* | *mingw* | *cegcc*)
6692 # No point in relinking DLLs because paths are not encoded
6693 func_append notinst_deplibs " $lib"
6694 need_relink=no
6695 ;;
6696 *)
6697 if test "$installed" = no; then
6698 func_append notinst_deplibs " $lib"
6699 need_relink=yes
6700 fi
6701 ;;
6702 esac
6703 # This is a shared library
6704
6705 # Warn about portability, can't link against -module's on some
6706 # systems (darwin). Don't bleat about dlopened modules though!
6707 dlopenmodule=""
6708 for dlpremoduletest in $dlprefiles; do
6709 if test "X$dlpremoduletest" = "X$lib"; then
6710 dlopenmodule="$dlpremoduletest"
6711 break
6712 fi
6713 done
6714 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
6715 echo
6716 if test "$linkmode" = prog; then
6717 $ECHO "*** Warning: Linking the executable $output against the loadable module"
6718 else
6719 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
6720 fi
6721 $ECHO "*** $linklib is not portable!"
6722 fi
6723 if test "$linkmode" = lib &&
6724 test "$hardcode_into_libs" = yes; then
6725 # Hardcode the library path.
6726 # Skip directories that are in the system default run-time
6727 # search path.
6728 case " $sys_lib_dlsearch_path " in
6729 *" $absdir "*) ;;
6730 *)
6731 case "$compile_rpath " in
6732 *" $absdir "*) ;;
6733 *) func_append compile_rpath " $absdir" ;;
6734 esac
6735 ;;
6736 esac
6737 case " $sys_lib_dlsearch_path " in
6738 *" $libdir "*) ;;
6739 *)
6740 case "$finalize_rpath " in
6741 *" $libdir "*) ;;
6742 *) func_append finalize_rpath " $libdir" ;;
6743 esac
6744 ;;
6745 esac
6746 fi
6747
6748 if test -n "$old_archive_from_expsyms_cmds"; then
6749 # figure out the soname
6750 set dummy $library_names
6751 shift
6752 realname="$1"
6753 shift
6754 libname=`eval "\\$ECHO \"$libname_spec\""`
6755 # use dlname if we got it. it's perfectly good, no?
6756 if test -n "$dlname"; then
6757 soname="$dlname"
6758 elif test -n "$soname_spec"; then
6759 # bleh windows
6760 case $host in
6761 *cygwin* | mingw* | *cegcc*)
6762 func_arith $current - $age
6763 major=$func_arith_result
6764 versuffix="-$major"
6765 ;;
6766 esac
6767 eval soname=\"$soname_spec\"
6768 else
6769 soname="$realname"
6770 fi
6771
6772 # Make a new name for the extract_expsyms_cmds to use
6773 soroot="$soname"
6774 func_basename "$soroot"
6775 soname="$func_basename_result"
6776 func_stripname 'lib' '.dll' "$soname"
6777 newlib=libimp-$func_stripname_result.a
6778
6779 # If the library has no export list, then create one now
6780 if test -f "$output_objdir/$soname-def"; then :
6781 else
6782 func_verbose "extracting exported symbol list from \`$soname'"
6783 func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
6784 fi
6785
6786 # Create $newlib
6787 if test -f "$output_objdir/$newlib"; then :; else
6788 func_verbose "generating import library for \`$soname'"
6789 func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
6790 fi
6791 # make sure the library variables are pointing to the new library
6792 dir=$output_objdir
6793 linklib=$newlib
6794 fi # test -n "$old_archive_from_expsyms_cmds"
6795
6796 if test "$linkmode" = prog || test "$opt_mode" != relink; then
6797 add_shlibpath=
6798 add_dir=
6799 add=
6800 lib_linked=yes
6801 case $hardcode_action in
6802 immediate | unsupported)
6803 if test "$hardcode_direct" = no; then
6804 add="$dir/$linklib"
6805 case $host in
6806 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
6807 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
6808 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
6809 *-*-unixware7*) add_dir="-L$dir" ;;
6810 *-*-darwin* )
6811 # if the lib is a (non-dlopened) module then we can not
6812 # link against it, someone is ignoring the earlier warnings
6813 if /usr/bin/file -L $add 2> /dev/null |
6814 $GREP ": [^:]* bundle" >/dev/null ; then
6815 if test "X$dlopenmodule" != "X$lib"; then
6816 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6817 if test -z "$old_library" ; then
6818 echo
6819 echo "*** And there doesn't seem to be a static archive available"
6820 echo "*** The link will probably fail, sorry"
6821 else
6822 add="$dir/$old_library"
6823 fi
6824 elif test -n "$old_library"; then
6825 add="$dir/$old_library"
6826 fi
6827 fi
6828 esac
6829 elif test "$hardcode_minus_L" = no; then
6830 case $host in
6831 *-*-sunos*) add_shlibpath="$dir" ;;
6832 esac
6833 add_dir="-L$dir"
6834 add="-l$name"
6835 elif test "$hardcode_shlibpath_var" = no; then
6836 add_shlibpath="$dir"
6837 add="-l$name"
6838 else
6839 lib_linked=no
6840 fi
6841 ;;
6842 relink)
6843 if test "$hardcode_direct" = yes &&
6844 test "$hardcode_direct_absolute" = no; then
6845 add="$dir/$linklib"
6846 elif test "$hardcode_minus_L" = yes; then
6847 add_dir="-L$absdir"
6848 # Try looking first in the location we're being installed to.
6849 if test -n "$inst_prefix_dir"; then
6850 case $libdir in
6851 [\\/]*)
6852 func_append add_dir " -L$inst_prefix_dir$libdir"
6853 ;;
6854 esac
6855 fi
6856 add="-l$name"
6857 elif test "$hardcode_shlibpath_var" = yes; then
6858 add_shlibpath="$dir"
6859 add="-l$name"
6860 else
6861 lib_linked=no
6862 fi
6863 ;;
6864 *) lib_linked=no ;;
6865 esac
6866
6867 if test "$lib_linked" != yes; then
6868 func_fatal_configuration "unsupported hardcode properties"
6869 fi
6870
6871 if test -n "$add_shlibpath"; then
6872 case :$compile_shlibpath: in
6873 *":$add_shlibpath:"*) ;;
6874 *) func_append compile_shlibpath "$add_shlibpath:" ;;
6875 esac
6876 fi
6877 if test "$linkmode" = prog; then
6878 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
6879 test -n "$add" && compile_deplibs="$add $compile_deplibs"
6880 else
6881 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6882 test -n "$add" && deplibs="$add $deplibs"
6883 if test "$hardcode_direct" != yes &&
6884 test "$hardcode_minus_L" != yes &&
6885 test "$hardcode_shlibpath_var" = yes; then
6886 case :$finalize_shlibpath: in
6887 *":$libdir:"*) ;;
6888 *) func_append finalize_shlibpath "$libdir:" ;;
6889 esac
6890 fi
6891 fi
6892 fi
6893
6894 if test "$linkmode" = prog || test "$opt_mode" = relink; then
6895 add_shlibpath=
6896 add_dir=
6897 add=
6898 # Finalize command for both is simple: just hardcode it.
6899 if test "$hardcode_direct" = yes &&
6900 test "$hardcode_direct_absolute" = no; then
6901 add="$libdir/$linklib"
6902 elif test "$hardcode_minus_L" = yes; then
6903 add_dir="-L$libdir"
6904 add="-l$name"
6905 elif test "$hardcode_shlibpath_var" = yes; then
6906 case :$finalize_shlibpath: in
6907 *":$libdir:"*) ;;
6908 *) func_append finalize_shlibpath "$libdir:" ;;
6909 esac
6910 add="-l$name"
6911 elif test "$hardcode_automatic" = yes; then
6912 if test -n "$inst_prefix_dir" &&
6913 test -f "$inst_prefix_dir$libdir/$linklib" ; then
6914 add="$inst_prefix_dir$libdir/$linklib"
6915 else
6916 add="$libdir/$linklib"
6917 fi
6918 else
6919 # We cannot seem to hardcode it, guess we'll fake it.
6920 add_dir="-L$libdir"
6921 # Try looking first in the location we're being installed to.
6922 if test -n "$inst_prefix_dir"; then
6923 case $libdir in
6924 [\\/]*)
6925 func_append add_dir " -L$inst_prefix_dir$libdir"
6926 ;;
6927 esac
6928 fi
6929 add="-l$name"
6930 fi
6931
6932 if test "$linkmode" = prog; then
6933 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
6934 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
6935 else
6936 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6937 test -n "$add" && deplibs="$add $deplibs"
6938 fi
6939 fi
6940 elif test "$linkmode" = prog; then
6941 # Here we assume that one of hardcode_direct or hardcode_minus_L
6942 # is not unsupported. This is valid on all known static and
6943 # shared platforms.
6944 if test "$hardcode_direct" != unsupported; then
6945 test -n "$old_library" && linklib="$old_library"
6946 compile_deplibs="$dir/$linklib $compile_deplibs"
6947 finalize_deplibs="$dir/$linklib $finalize_deplibs"
6948 else
6949 compile_deplibs="-l$name -L$dir $compile_deplibs"
6950 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
6951 fi
6952 elif test "$build_libtool_libs" = yes; then
6953 # Not a shared library
6954 if test "$deplibs_check_method" != pass_all; then
6955 # We're trying link a shared library against a static one
6956 # but the system doesn't support it.
6957
6958 # Just print a warning and add the library to dependency_libs so
6959 # that the program can be linked against the static library.
6960 echo
6961 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6962 echo "*** I have the capability to make that library automatically link in when"
6963 echo "*** you link to this library. But I can only do this if you have a"
6964 echo "*** shared version of the library, which you do not appear to have."
6965 if test "$module" = yes; then
6966 echo "*** But as you try to build a module library, libtool will still create "
6967 echo "*** a static module, that should work as long as the dlopening application"
6968 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
6969 if test -z "$global_symbol_pipe"; then
6970 echo
6971 echo "*** However, this would only work if libtool was able to extract symbol"
6972 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6973 echo "*** not find such a program. So, this module is probably useless."
6974 echo "*** \`nm' from GNU binutils and a full rebuild may help."
6975 fi
6976 if test "$build_old_libs" = no; then
6977 build_libtool_libs=module
6978 build_old_libs=yes
6979 else
6980 build_libtool_libs=no
6981 fi
6982 fi
6983 else
6984 deplibs="$dir/$old_library $deplibs"
6985 link_static=yes
6986 fi
6987 fi # link shared/static library?
6988
6989 if test "$linkmode" = lib; then
6990 if test -n "$dependency_libs" &&
6991 { test "$hardcode_into_libs" != yes ||
6992 test "$build_old_libs" = yes ||
6993 test "$link_static" = yes; }; then
6994 # Extract -R from dependency_libs
6995 temp_deplibs=
6996 for libdir in $dependency_libs; do
6997 case $libdir in
6998 -R*) func_stripname '-R' '' "$libdir"
6999 temp_xrpath=$func_stripname_result
7000 case " $xrpath " in
7001 *" $temp_xrpath "*) ;;
7002 *) func_append xrpath " $temp_xrpath";;
7003 esac;;
7004 *) func_append temp_deplibs " $libdir";;
7005 esac
7006 done
7007 dependency_libs="$temp_deplibs"
7008 fi
7009
7010 func_append newlib_search_path " $absdir"
7011 # Link against this library
7012 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
7013 # ... and its dependency_libs
7014 tmp_libs=
7015 for deplib in $dependency_libs; do
7016 newdependency_libs="$deplib $newdependency_libs"
7017 case $deplib in
7018 -L*) func_stripname '-L' '' "$deplib"
7019 func_resolve_sysroot "$func_stripname_result";;
7020 *) func_resolve_sysroot "$deplib" ;;
7021 esac
7022 if $opt_preserve_dup_deps ; then
7023 case "$tmp_libs " in
7024 *" $func_resolve_sysroot_result "*)
7025 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
7026 esac
7027 fi
7028 func_append tmp_libs " $func_resolve_sysroot_result"
7029 done
7030
7031 if test "$link_all_deplibs" != no; then
7032 # Add the search paths of all dependency libraries
7033 for deplib in $dependency_libs; do
7034 path=
7035 case $deplib in
7036 -L*) path="$deplib" ;;
7037 *.la)
7038 func_resolve_sysroot "$deplib"
7039 deplib=$func_resolve_sysroot_result
7040 func_dirname "$deplib" "" "."
7041 dir=$func_dirname_result
7042 # We need an absolute path.
7043 case $dir in
7044 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
7045 *)
7046 absdir=`cd "$dir" && pwd`
7047 if test -z "$absdir"; then
7048 func_warning "cannot determine absolute directory name of \`$dir'"
7049 absdir="$dir"
7050 fi
7051 ;;
7052 esac
7053 if $GREP "^installed=no" $deplib > /dev/null; then
7054 case $host in
7055 *-*-darwin*)
7056 depdepl=
7057 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
7058 if test -n "$deplibrary_names" ; then
7059 for tmp in $deplibrary_names ; do
7060 depdepl=$tmp
7061 done
7062 if test -f "$absdir/$objdir/$depdepl" ; then
7063 depdepl="$absdir/$objdir/$depdepl"
7064 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7065 if test -z "$darwin_install_name"; then
7066 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7067 fi
7068 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
7069 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
7070 path=
7071 fi
7072 fi
7073 ;;
7074 *)
7075 path="-L$absdir/$objdir"
7076 ;;
7077 esac
7078 else
7079 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
7080 test -z "$libdir" && \
7081 func_fatal_error "\`$deplib' is not a valid libtool archive"
7082 test "$absdir" != "$libdir" && \
7083 func_warning "\`$deplib' seems to be moved"
7084
7085 path="-L$absdir"
7086 fi
7087 ;;
7088 esac
7089 case " $deplibs " in
7090 *" $path "*) ;;
7091 *) deplibs="$path $deplibs" ;;
7092 esac
7093 done
7094 fi # link_all_deplibs != no
7095 fi # linkmode = lib
7096 done # for deplib in $libs
7097 if test "$pass" = link; then
7098 if test "$linkmode" = "prog"; then
7099 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
7100 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
7101 else
7102 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7103 fi
7104 fi
7105 dependency_libs="$newdependency_libs"
7106 if test "$pass" = dlpreopen; then
7107 # Link the dlpreopened libraries before other libraries
7108 for deplib in $save_deplibs; do
7109 deplibs="$deplib $deplibs"
7110 done
7111 fi
7112 if test "$pass" != dlopen; then
7113 if test "$pass" != conv; then
7114 # Make sure lib_search_path contains only unique directories.
7115 lib_search_path=
7116 for dir in $newlib_search_path; do
7117 case "$lib_search_path " in
7118 *" $dir "*) ;;
7119 *) func_append lib_search_path " $dir" ;;
7120 esac
7121 done
7122 newlib_search_path=
7123 fi
7124
7125 if test "$linkmode,$pass" != "prog,link"; then
7126 vars="deplibs"
7127 else
7128 vars="compile_deplibs finalize_deplibs"
7129 fi
7130 for var in $vars dependency_libs; do
7131 # Add libraries to $var in reverse order
7132 eval tmp_libs=\"\$$var\"
7133 new_libs=
7134 for deplib in $tmp_libs; do
7135 # FIXME: Pedantically, this is the right thing to do, so
7136 # that some nasty dependency loop isn't accidentally
7137 # broken:
7138 #new_libs="$deplib $new_libs"
7139 # Pragmatically, this seems to cause very few problems in
7140 # practice:
7141 case $deplib in
7142 -L*) new_libs="$deplib $new_libs" ;;
7143 -R*) ;;
7144 *)
7145 # And here is the reason: when a library appears more
7146 # than once as an explicit dependence of a library, or
7147 # is implicitly linked in more than once by the
7148 # compiler, it is considered special, and multiple
7149 # occurrences thereof are not removed. Compare this
7150 # with having the same library being listed as a
7151 # dependency of multiple other libraries: in this case,
7152 # we know (pedantically, we assume) the library does not
7153 # need to be listed more than once, so we keep only the
7154 # last copy. This is not always right, but it is rare
7155 # enough that we require users that really mean to play
7156 # such unportable linking tricks to link the library
7157 # using -Wl,-lname, so that libtool does not consider it
7158 # for duplicate removal.
7159 case " $specialdeplibs " in
7160 *" $deplib "*) new_libs="$deplib $new_libs" ;;
7161 *)
7162 case " $new_libs " in
7163 *" $deplib "*) ;;
7164 *) new_libs="$deplib $new_libs" ;;
7165 esac
7166 ;;
7167 esac
7168 ;;
7169 esac
7170 done
7171 tmp_libs=
7172 for deplib in $new_libs; do
7173 case $deplib in
7174 -L*)
7175 case " $tmp_libs " in
7176 *" $deplib "*) ;;
7177 *) func_append tmp_libs " $deplib" ;;
7178 esac
7179 ;;
7180 *) func_append tmp_libs " $deplib" ;;
7181 esac
7182 done
7183 eval $var=\"$tmp_libs\"
7184 done # for var
7185 fi
7186 # Last step: remove runtime libs from dependency_libs
7187 # (they stay in deplibs)
7188 tmp_libs=
7189 for i in $dependency_libs ; do
7190 case " $predeps $postdeps $compiler_lib_search_path " in
7191 *" $i "*)
7192 i=""
7193 ;;
7194 esac
7195 if test -n "$i" ; then
7196 func_append tmp_libs " $i"
7197 fi
7198 done
7199 dependency_libs=$tmp_libs
7200 done # for pass
7201 if test "$linkmode" = prog; then
7202 dlfiles="$newdlfiles"
7203 fi
7204 if test "$linkmode" = prog || test "$linkmode" = lib; then
7205 dlprefiles="$newdlprefiles"
7206 fi
7207
7208 case $linkmode in
7209 oldlib)
7210 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
7211 func_warning "\`-dlopen' is ignored for archives"
7212 fi
7213
7214 case " $deplibs" in
7215 *\ -l* | *\ -L*)
7216 func_warning "\`-l' and \`-L' are ignored for archives" ;;
7217 esac
7218
7219 test -n "$rpath" && \
7220 func_warning "\`-rpath' is ignored for archives"
7221
7222 test -n "$xrpath" && \
7223 func_warning "\`-R' is ignored for archives"
7224
7225 test -n "$vinfo" && \
7226 func_warning "\`-version-info/-version-number' is ignored for archives"
7227
7228 test -n "$release" && \
7229 func_warning "\`-release' is ignored for archives"
7230
7231 test -n "$export_symbols$export_symbols_regex" && \
7232 func_warning "\`-export-symbols' is ignored for archives"
7233
7234 # Now set the variables for building old libraries.
7235 build_libtool_libs=no
7236 oldlibs="$output"
7237 func_append objs "$old_deplibs"
7238 ;;
7239
7240 lib)
7241 # Make sure we only generate libraries of the form `libNAME.la'.
7242 case $outputname in
7243 lib*)
7244 func_stripname 'lib' '.la' "$outputname"
7245 name=$func_stripname_result
7246 eval shared_ext=\"$shrext_cmds\"
7247 eval libname=\"$libname_spec\"
7248 ;;
7249 *)
7250 test "$module" = no && \
7251 func_fatal_help "libtool library \`$output' must begin with \`lib'"
7252
7253 if test "$need_lib_prefix" != no; then
7254 # Add the "lib" prefix for modules if required
7255 func_stripname '' '.la' "$outputname"
7256 name=$func_stripname_result
7257 eval shared_ext=\"$shrext_cmds\"
7258 eval libname=\"$libname_spec\"
7259 else
7260 func_stripname '' '.la' "$outputname"
7261 libname=$func_stripname_result
7262 fi
7263 ;;
7264 esac
7265
7266 if test -n "$objs"; then
7267 if test "$deplibs_check_method" != pass_all; then
7268 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
7269 else
7270 echo
7271 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
7272 $ECHO "*** objects $objs is not portable!"
7273 func_append libobjs " $objs"
7274 fi
7275 fi
7276
7277 test "$dlself" != no && \
7278 func_warning "\`-dlopen self' is ignored for libtool libraries"
7279
7280 set dummy $rpath
7281 shift
7282 test "$#" -gt 1 && \
7283 func_warning "ignoring multiple \`-rpath's for a libtool library"
7284
7285 install_libdir="$1"
7286
7287 oldlibs=
7288 if test -z "$rpath"; then
7289 if test "$build_libtool_libs" = yes; then
7290 # Building a libtool convenience library.
7291 # Some compilers have problems with a `.al' extension so
7292 # convenience libraries should have the same extension an
7293 # archive normally would.
7294 oldlibs="$output_objdir/$libname.$libext $oldlibs"
7295 build_libtool_libs=convenience
7296 build_old_libs=yes
7297 fi
7298
7299 test -n "$vinfo" && \
7300 func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
7301
7302 test -n "$release" && \
7303 func_warning "\`-release' is ignored for convenience libraries"
7304 else
7305
7306 # Parse the version information argument.
7307 save_ifs="$IFS"; IFS=':'
7308 set dummy $vinfo 0 0 0
7309 shift
7310 IFS="$save_ifs"
7311
7312 test -n "$7" && \
7313 func_fatal_help "too many parameters to \`-version-info'"
7314
7315 # convert absolute version numbers to libtool ages
7316 # this retains compatibility with .la files and attempts
7317 # to make the code below a bit more comprehensible
7318
7319 case $vinfo_number in
7320 yes)
7321 number_major="$1"
7322 number_minor="$2"
7323 number_revision="$3"
7324 #
7325 # There are really only two kinds -- those that
7326 # use the current revision as the major version
7327 # and those that subtract age and use age as
7328 # a minor version. But, then there is irix
7329 # which has an extra 1 added just for fun
7330 #
7331 case $version_type in
7332 # correct linux to gnu/linux during the next big refactor
7333 darwin|linux|osf|windows|none)
7334 func_arith $number_major + $number_minor
7335 current=$func_arith_result
7336 age="$number_minor"
7337 revision="$number_revision"
7338 ;;
7339 freebsd-aout|freebsd-elf|qnx|sunos)
7340 current="$number_major"
7341 revision="$number_minor"
7342 age="0"
7343 ;;
7344 irix|nonstopux)
7345 func_arith $number_major + $number_minor
7346 current=$func_arith_result
7347 age="$number_minor"
7348 revision="$number_minor"
7349 lt_irix_increment=no
7350 ;;
7351 esac
7352 ;;
7353 no)
7354 current="$1"
7355 revision="$2"
7356 age="$3"
7357 ;;
7358 esac
7359
7360 # Check that each of the things are valid numbers.
7361 case $current in
7362 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]) ;;
7363 *)
7364 func_error "CURRENT \`$current' must be a nonnegative integer"
7365 func_fatal_error "\`$vinfo' is not valid version information"
7366 ;;
7367 esac
7368
7369 case $revision in
7370 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]) ;;
7371 *)
7372 func_error "REVISION \`$revision' must be a nonnegative integer"
7373 func_fatal_error "\`$vinfo' is not valid version information"
7374 ;;
7375 esac
7376
7377 case $age in
7378 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]) ;;
7379 *)
7380 func_error "AGE \`$age' must be a nonnegative integer"
7381 func_fatal_error "\`$vinfo' is not valid version information"
7382 ;;
7383 esac
7384
7385 if test "$age" -gt "$current"; then
7386 func_error "AGE \`$age' is greater than the current interface number \`$current'"
7387 func_fatal_error "\`$vinfo' is not valid version information"
7388 fi
7389
7390 # Calculate the version variables.
7391 major=
7392 versuffix=
7393 verstring=
7394 case $version_type in
7395 none) ;;
7396
7397 darwin)
7398 # Like Linux, but with the current version available in
7399 # verstring for coding it into the library header
7400 func_arith $current - $age
7401 major=.$func_arith_result
7402 versuffix="$major.$age.$revision"
7403 # Darwin ld doesn't like 0 for these options...
7404 func_arith $current + 1
7405 minor_current=$func_arith_result
7406 xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
7407 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
7408 ;;
7409
7410 freebsd-aout)
7411 major=".$current"
7412 versuffix=".$current.$revision";
7413 ;;
7414
7415 freebsd-elf)
7416 major=".$current"
7417 versuffix=".$current"
7418 ;;
7419
7420 irix | nonstopux)
7421 if test "X$lt_irix_increment" = "Xno"; then
7422 func_arith $current - $age
7423 else
7424 func_arith $current - $age + 1
7425 fi
7426 major=$func_arith_result
7427
7428 case $version_type in
7429 nonstopux) verstring_prefix=nonstopux ;;
7430 *) verstring_prefix=sgi ;;
7431 esac
7432 verstring="$verstring_prefix$major.$revision"
7433
7434 # Add in all the interfaces that we are compatible with.
7435 loop=$revision
7436 while test "$loop" -ne 0; do
7437 func_arith $revision - $loop
7438 iface=$func_arith_result
7439 func_arith $loop - 1
7440 loop=$func_arith_result
7441 verstring="$verstring_prefix$major.$iface:$verstring"
7442 done
7443
7444 # Before this point, $major must not contain `.'.
7445 major=.$major
7446 versuffix="$major.$revision"
7447 ;;
7448
7449 linux) # correct to gnu/linux during the next big refactor
7450 func_arith $current - $age
7451 major=.$func_arith_result
7452 versuffix="$major.$age.$revision"
7453 ;;
7454
7455 osf)
7456 func_arith $current - $age
7457 major=.$func_arith_result
7458 versuffix=".$current.$age.$revision"
7459 verstring="$current.$age.$revision"
7460
7461 # Add in all the interfaces that we are compatible with.
7462 loop=$age
7463 while test "$loop" -ne 0; do
7464 func_arith $current - $loop
7465 iface=$func_arith_result
7466 func_arith $loop - 1
7467 loop=$func_arith_result
7468 verstring="$verstring:${iface}.0"
7469 done
7470
7471 # Make executables depend on our current version.
7472 func_append verstring ":${current}.0"
7473 ;;
7474
7475 qnx)
7476 major=".$current"
7477 versuffix=".$current"
7478 ;;
7479
7480 sunos)
7481 major=".$current"
7482 versuffix=".$current.$revision"
7483 ;;
7484
7485 windows)
7486 # Use '-' rather than '.', since we only want one
7487 # extension on DOS 8.3 filesystems.
7488 func_arith $current - $age
7489 major=$func_arith_result
7490 versuffix="-$major"
7491 ;;
7492
7493 *)
7494 func_fatal_configuration "unknown library version type \`$version_type'"
7495 ;;
7496 esac
7497
7498 # Clear the version info if we defaulted, and they specified a release.
7499 if test -z "$vinfo" && test -n "$release"; then
7500 major=
7501 case $version_type in
7502 darwin)
7503 # we can't check for "0.0" in archive_cmds due to quoting
7504 # problems, so we reset it completely
7505 verstring=
7506 ;;
7507 *)
7508 verstring="0.0"
7509 ;;
7510 esac
7511 if test "$need_version" = no; then
7512 versuffix=
7513 else
7514 versuffix=".0.0"
7515 fi
7516 fi
7517
7518 # Remove version info from name if versioning should be avoided
7519 if test "$avoid_version" = yes && test "$need_version" = no; then
7520 major=
7521 versuffix=
7522 verstring=""
7523 fi
7524
7525 # Check to see if the archive will have undefined symbols.
7526 if test "$allow_undefined" = yes; then
7527 if test "$allow_undefined_flag" = unsupported; then
7528 func_warning "undefined symbols not allowed in $host shared libraries"
7529 build_libtool_libs=no
7530 build_old_libs=yes
7531 fi
7532 else
7533 # Don't allow undefined symbols.
7534 allow_undefined_flag="$no_undefined_flag"
7535 fi
7536
7537 fi
7538
7539 func_generate_dlsyms "$libname" "$libname" "yes"
7540 func_append libobjs " $symfileobj"
7541 test "X$libobjs" = "X " && libobjs=
7542
7543 if test "$opt_mode" != relink; then
7544 # Remove our outputs, but don't remove object files since they
7545 # may have been created when compiling PIC objects.
7546 removelist=
7547 tempremovelist=`$ECHO "$output_objdir/*"`
7548 for p in $tempremovelist; do
7549 case $p in
7550 *.$objext | *.gcno)
7551 ;;
7552 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
7553 if test "X$precious_files_regex" != "X"; then
7554 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
7555 then
7556 continue
7557 fi
7558 fi
7559 func_append removelist " $p"
7560 ;;
7561 *) ;;
7562 esac
7563 done
7564 test -n "$removelist" && \
7565 func_show_eval "${RM}r \$removelist"
7566 fi
7567
7568 # Now set the variables for building old libraries.
7569 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
7570 func_append oldlibs " $output_objdir/$libname.$libext"
7571
7572 # Transform .lo files to .o files.
7573 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
7574 fi
7575
7576 # Eliminate all temporary directories.
7577 #for path in $notinst_path; do
7578 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
7579 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
7580 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
7581 #done
7582
7583 if test -n "$xrpath"; then
7584 # If the user specified any rpath flags, then add them.
7585 temp_xrpath=
7586 for libdir in $xrpath; do
7587 func_replace_sysroot "$libdir"
7588 func_append temp_xrpath " -R$func_replace_sysroot_result"
7589 case "$finalize_rpath " in
7590 *" $libdir "*) ;;
7591 *) func_append finalize_rpath " $libdir" ;;
7592 esac
7593 done
7594 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
7595 dependency_libs="$temp_xrpath $dependency_libs"
7596 fi
7597 fi
7598
7599 # Make sure dlfiles contains only unique files that won't be dlpreopened
7600 old_dlfiles="$dlfiles"
7601 dlfiles=
7602 for lib in $old_dlfiles; do
7603 case " $dlprefiles $dlfiles " in
7604 *" $lib "*) ;;
7605 *) func_append dlfiles " $lib" ;;
7606 esac
7607 done
7608
7609 # Make sure dlprefiles contains only unique files
7610 old_dlprefiles="$dlprefiles"
7611 dlprefiles=
7612 for lib in $old_dlprefiles; do
7613 case "$dlprefiles " in
7614 *" $lib "*) ;;
7615 *) func_append dlprefiles " $lib" ;;
7616 esac
7617 done
7618
7619 if test "$build_libtool_libs" = yes; then
7620 if test -n "$rpath"; then
7621 case $host in
7622 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
7623 # these systems don't actually have a c library (as such)!
7624 ;;
7625 *-*-rhapsody* | *-*-darwin1.[012])
7626 # Rhapsody C library is in the System framework
7627 func_append deplibs " System.ltframework"
7628 ;;
7629 *-*-netbsd*)
7630 # Don't link with libc until the a.out ld.so is fixed.
7631 ;;
7632 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
7633 # Do not include libc due to us having libc/libc_r.
7634 ;;
7635 *-*-sco3.2v5* | *-*-sco5v6*)
7636 # Causes problems with __ctype
7637 ;;
7638 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
7639 # Compiler inserts libc in the correct place for threads to work
7640 ;;
7641 *)
7642 # Add libc to deplibs on all other systems if necessary.
7643 if test "$build_libtool_need_lc" = "yes"; then
7644 func_append deplibs " -lc"
7645 fi
7646 ;;
7647 esac
7648 fi
7649
7650 # Transform deplibs into only deplibs that can be linked in shared.
7651 name_save=$name
7652 libname_save=$libname
7653 release_save=$release
7654 versuffix_save=$versuffix
7655 major_save=$major
7656 # I'm not sure if I'm treating the release correctly. I think
7657 # release should show up in the -l (ie -lgmp5) so we don't want to
7658 # add it in twice. Is that correct?
7659 release=""
7660 versuffix=""
7661 major=""
7662 newdeplibs=
7663 droppeddeps=no
7664 case $deplibs_check_method in
7665 pass_all)
7666 # Don't check for shared/static. Everything works.
7667 # This might be a little naive. We might want to check
7668 # whether the library exists or not. But this is on
7669 # osf3 & osf4 and I'm not really sure... Just
7670 # implementing what was already the behavior.
7671 newdeplibs=$deplibs
7672 ;;
7673 test_compile)
7674 # This code stresses the "libraries are programs" paradigm to its
7675 # limits. Maybe even breaks it. We compile a program, linking it
7676 # against the deplibs as a proxy for the library. Then we can check
7677 # whether they linked in statically or dynamically with ldd.
7678 $opt_dry_run || $RM conftest.c
7679 cat > conftest.c <<EOF
7680 int main() { return 0; }
7681 EOF
7682 $opt_dry_run || $RM conftest
7683 if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
7684 ldd_output=`ldd conftest`
7685 for i in $deplibs; do
7686 case $i in
7687 -l*)
7688 func_stripname -l '' "$i"
7689 name=$func_stripname_result
7690 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7691 case " $predeps $postdeps " in
7692 *" $i "*)
7693 func_append newdeplibs " $i"
7694 i=""
7695 ;;
7696 esac
7697 fi
7698 if test -n "$i" ; then
7699 libname=`eval "\\$ECHO \"$libname_spec\""`
7700 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7701 set dummy $deplib_matches; shift
7702 deplib_match=$1
7703 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7704 func_append newdeplibs " $i"
7705 else
7706 droppeddeps=yes
7707 echo
7708 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7709 echo "*** I have the capability to make that library automatically link in when"
7710 echo "*** you link to this library. But I can only do this if you have a"
7711 echo "*** shared version of the library, which I believe you do not have"
7712 echo "*** because a test_compile did reveal that the linker did not use it for"
7713 echo "*** its dynamic dependency list that programs get resolved with at runtime."
7714 fi
7715 fi
7716 ;;
7717 *)
7718 func_append newdeplibs " $i"
7719 ;;
7720 esac
7721 done
7722 else
7723 # Error occurred in the first compile. Let's try to salvage
7724 # the situation: Compile a separate program for each library.
7725 for i in $deplibs; do
7726 case $i in
7727 -l*)
7728 func_stripname -l '' "$i"
7729 name=$func_stripname_result
7730 $opt_dry_run || $RM conftest
7731 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
7732 ldd_output=`ldd conftest`
7733 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7734 case " $predeps $postdeps " in
7735 *" $i "*)
7736 func_append newdeplibs " $i"
7737 i=""
7738 ;;
7739 esac
7740 fi
7741 if test -n "$i" ; then
7742 libname=`eval "\\$ECHO \"$libname_spec\""`
7743 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7744 set dummy $deplib_matches; shift
7745 deplib_match=$1
7746 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7747 func_append newdeplibs " $i"
7748 else
7749 droppeddeps=yes
7750 echo
7751 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7752 echo "*** I have the capability to make that library automatically link in when"
7753 echo "*** you link to this library. But I can only do this if you have a"
7754 echo "*** shared version of the library, which you do not appear to have"
7755 echo "*** because a test_compile did reveal that the linker did not use this one"
7756 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
7757 fi
7758 fi
7759 else
7760 droppeddeps=yes
7761 echo
7762 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
7763 echo "*** make it link in! You will probably need to install it or some"
7764 echo "*** library that it depends on before this library will be fully"
7765 echo "*** functional. Installing it before continuing would be even better."
7766 fi
7767 ;;
7768 *)
7769 func_append newdeplibs " $i"
7770 ;;
7771 esac
7772 done
7773 fi
7774 ;;
7775 file_magic*)
7776 set dummy $deplibs_check_method; shift
7777 file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7778 for a_deplib in $deplibs; do
7779 case $a_deplib in
7780 -l*)
7781 func_stripname -l '' "$a_deplib"
7782 name=$func_stripname_result
7783 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7784 case " $predeps $postdeps " in
7785 *" $a_deplib "*)
7786 func_append newdeplibs " $a_deplib"
7787 a_deplib=""
7788 ;;
7789 esac
7790 fi
7791 if test -n "$a_deplib" ; then
7792 libname=`eval "\\$ECHO \"$libname_spec\""`
7793 if test -n "$file_magic_glob"; then
7794 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
7795 else
7796 libnameglob=$libname
7797 fi
7798 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
7799 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7800 if test "$want_nocaseglob" = yes; then
7801 shopt -s nocaseglob
7802 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7803 $nocaseglob
7804 else
7805 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7806 fi
7807 for potent_lib in $potential_libs; do
7808 # Follow soft links.
7809 if ls -lLd "$potent_lib" 2>/dev/null |
7810 $GREP " -> " >/dev/null; then
7811 continue
7812 fi
7813 # The statement above tries to avoid entering an
7814 # endless loop below, in case of cyclic links.
7815 # We might still enter an endless loop, since a link
7816 # loop can be closed while we follow links,
7817 # but so what?
7818 potlib="$potent_lib"
7819 while test -h "$potlib" 2>/dev/null; do
7820 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
7821 case $potliblink in
7822 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
7823 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
7824 esac
7825 done
7826 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7827 $SED -e 10q |
7828 $EGREP "$file_magic_regex" > /dev/null; then
7829 func_append newdeplibs " $a_deplib"
7830 a_deplib=""
7831 break 2
7832 fi
7833 done
7834 done
7835 fi
7836 if test -n "$a_deplib" ; then
7837 droppeddeps=yes
7838 echo
7839 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7840 echo "*** I have the capability to make that library automatically link in when"
7841 echo "*** you link to this library. But I can only do this if you have a"
7842 echo "*** shared version of the library, which you do not appear to have"
7843 echo "*** because I did check the linker path looking for a file starting"
7844 if test -z "$potlib" ; then
7845 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7846 else
7847 $ECHO "*** with $libname and none of the candidates passed a file format test"
7848 $ECHO "*** using a file magic. Last file checked: $potlib"
7849 fi
7850 fi
7851 ;;
7852 *)
7853 # Add a -L argument.
7854 func_append newdeplibs " $a_deplib"
7855 ;;
7856 esac
7857 done # Gone through all deplibs.
7858 ;;
7859 match_pattern*)
7860 set dummy $deplibs_check_method; shift
7861 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7862 for a_deplib in $deplibs; do
7863 case $a_deplib in
7864 -l*)
7865 func_stripname -l '' "$a_deplib"
7866 name=$func_stripname_result
7867 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7868 case " $predeps $postdeps " in
7869 *" $a_deplib "*)
7870 func_append newdeplibs " $a_deplib"
7871 a_deplib=""
7872 ;;
7873 esac
7874 fi
7875 if test -n "$a_deplib" ; then
7876 libname=`eval "\\$ECHO \"$libname_spec\""`
7877 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7878 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7879 for potent_lib in $potential_libs; do
7880 potlib="$potent_lib" # see symlink-check above in file_magic test
7881 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
7882 $EGREP "$match_pattern_regex" > /dev/null; then
7883 func_append newdeplibs " $a_deplib"
7884 a_deplib=""
7885 break 2
7886 fi
7887 done
7888 done
7889 fi
7890 if test -n "$a_deplib" ; then
7891 droppeddeps=yes
7892 echo
7893 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7894 echo "*** I have the capability to make that library automatically link in when"
7895 echo "*** you link to this library. But I can only do this if you have a"
7896 echo "*** shared version of the library, which you do not appear to have"
7897 echo "*** because I did check the linker path looking for a file starting"
7898 if test -z "$potlib" ; then
7899 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7900 else
7901 $ECHO "*** with $libname and none of the candidates passed a file format test"
7902 $ECHO "*** using a regex pattern. Last file checked: $potlib"
7903 fi
7904 fi
7905 ;;
7906 *)
7907 # Add a -L argument.
7908 func_append newdeplibs " $a_deplib"
7909 ;;
7910 esac
7911 done # Gone through all deplibs.
7912 ;;
7913 none | unknown | *)
7914 newdeplibs=""
7915 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
7916 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7917 for i in $predeps $postdeps ; do
7918 # can't use Xsed below, because $i might contain '/'
7919 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
7920 done
7921 fi
7922 case $tmp_deplibs in
7923 *[!\ \ ]*)
7924 echo
7925 if test "X$deplibs_check_method" = "Xnone"; then
7926 echo "*** Warning: inter-library dependencies are not supported in this platform."
7927 else
7928 echo "*** Warning: inter-library dependencies are not known to be supported."
7929 fi
7930 echo "*** All declared inter-library dependencies are being dropped."
7931 droppeddeps=yes
7932 ;;
7933 esac
7934 ;;
7935 esac
7936 versuffix=$versuffix_save
7937 major=$major_save
7938 release=$release_save
7939 libname=$libname_save
7940 name=$name_save
7941
7942 case $host in
7943 *-*-rhapsody* | *-*-darwin1.[012])
7944 # On Rhapsody replace the C library with the System framework
7945 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
7946 ;;
7947 esac
7948
7949 if test "$droppeddeps" = yes; then
7950 if test "$module" = yes; then
7951 echo
7952 echo "*** Warning: libtool could not satisfy all declared inter-library"
7953 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7954 echo "*** a static module, that should work as long as the dlopening"
7955 echo "*** application is linked with the -dlopen flag."
7956 if test -z "$global_symbol_pipe"; then
7957 echo
7958 echo "*** However, this would only work if libtool was able to extract symbol"
7959 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7960 echo "*** not find such a program. So, this module is probably useless."
7961 echo "*** \`nm' from GNU binutils and a full rebuild may help."
7962 fi
7963 if test "$build_old_libs" = no; then
7964 oldlibs="$output_objdir/$libname.$libext"
7965 build_libtool_libs=module
7966 build_old_libs=yes
7967 else
7968 build_libtool_libs=no
7969 fi
7970 else
7971 echo "*** The inter-library dependencies that have been dropped here will be"
7972 echo "*** automatically added whenever a program is linked with this library"
7973 echo "*** or is declared to -dlopen it."
7974
7975 if test "$allow_undefined" = no; then
7976 echo
7977 echo "*** Since this library must not contain undefined symbols,"
7978 echo "*** because either the platform does not support them or"
7979 echo "*** it was explicitly requested with -no-undefined,"
7980 echo "*** libtool will only create a static version of it."
7981 if test "$build_old_libs" = no; then
7982 oldlibs="$output_objdir/$libname.$libext"
7983 build_libtool_libs=module
7984 build_old_libs=yes
7985 else
7986 build_libtool_libs=no
7987 fi
7988 fi
7989 fi
7990 fi
7991 # Done checking deplibs!
7992 deplibs=$newdeplibs
7993 fi
7994 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7995 case $host in
7996 *-*-darwin*)
7997 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7998 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7999 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8000 ;;
8001 esac
8002
8003 # move library search paths that coincide with paths to not yet
8004 # installed libraries to the beginning of the library search list
8005 new_libs=
8006 for path in $notinst_path; do
8007 case " $new_libs " in
8008 *" -L$path/$objdir "*) ;;
8009 *)
8010 case " $deplibs " in
8011 *" -L$path/$objdir "*)
8012 func_append new_libs " -L$path/$objdir" ;;
8013 esac
8014 ;;
8015 esac
8016 done
8017 for deplib in $deplibs; do
8018 case $deplib in
8019 -L*)
8020 case " $new_libs " in
8021 *" $deplib "*) ;;
8022 *) func_append new_libs " $deplib" ;;
8023 esac
8024 ;;
8025 *) func_append new_libs " $deplib" ;;
8026 esac
8027 done
8028 deplibs="$new_libs"
8029
8030 # All the library-specific variables (install_libdir is set above).
8031 library_names=
8032 old_library=
8033 dlname=
8034
8035 # Test again, we may have decided not to build it any more
8036 if test "$build_libtool_libs" = yes; then
8037 # Remove ${wl} instances when linking with ld.
8038 # FIXME: should test the right _cmds variable.
8039 case $archive_cmds in
8040 *\$LD\ *) wl= ;;
8041 esac
8042 if test "$hardcode_into_libs" = yes; then
8043 # Hardcode the library paths
8044 hardcode_libdirs=
8045 dep_rpath=
8046 rpath="$finalize_rpath"
8047 test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
8048 for libdir in $rpath; do
8049 if test -n "$hardcode_libdir_flag_spec"; then
8050 if test -n "$hardcode_libdir_separator"; then
8051 func_replace_sysroot "$libdir"
8052 libdir=$func_replace_sysroot_result
8053 if test -z "$hardcode_libdirs"; then
8054 hardcode_libdirs="$libdir"
8055 else
8056 # Just accumulate the unique libdirs.
8057 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8058 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8059 ;;
8060 *)
8061 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8062 ;;
8063 esac
8064 fi
8065 else
8066 eval flag=\"$hardcode_libdir_flag_spec\"
8067 func_append dep_rpath " $flag"
8068 fi
8069 elif test -n "$runpath_var"; then
8070 case "$perm_rpath " in
8071 *" $libdir "*) ;;
8072 *) func_append perm_rpath " $libdir" ;;
8073 esac
8074 fi
8075 done
8076 # Substitute the hardcoded libdirs into the rpath.
8077 if test -n "$hardcode_libdir_separator" &&
8078 test -n "$hardcode_libdirs"; then
8079 libdir="$hardcode_libdirs"
8080 eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
8081 fi
8082 if test -n "$runpath_var" && test -n "$perm_rpath"; then
8083 # We should set the runpath_var.
8084 rpath=
8085 for dir in $perm_rpath; do
8086 func_append rpath "$dir:"
8087 done
8088 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
8089 fi
8090 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
8091 fi
8092
8093 shlibpath="$finalize_shlibpath"
8094 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
8095 if test -n "$shlibpath"; then
8096 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
8097 fi
8098
8099 # Get the real and link names of the library.
8100 eval shared_ext=\"$shrext_cmds\"
8101 eval library_names=\"$library_names_spec\"
8102 set dummy $library_names
8103 shift
8104 realname="$1"
8105 shift
8106
8107 if test -n "$soname_spec"; then
8108 eval soname=\"$soname_spec\"
8109 else
8110 soname="$realname"
8111 fi
8112 if test -z "$dlname"; then
8113 dlname=$soname
8114 fi
8115
8116 lib="$output_objdir/$realname"
8117 linknames=
8118 for link
8119 do
8120 func_append linknames " $link"
8121 done
8122
8123 # Use standard objects if they are pic
8124 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
8125 test "X$libobjs" = "X " && libobjs=
8126
8127 delfiles=
8128 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8129 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
8130 export_symbols="$output_objdir/$libname.uexp"
8131 func_append delfiles " $export_symbols"
8132 fi
8133
8134 orig_export_symbols=
8135 case $host_os in
8136 cygwin* | mingw* | cegcc*)
8137 if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
8138 # exporting using user supplied symfile
8139 if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
8140 # and it's NOT already a .def file. Must figure out
8141 # which of the given symbols are data symbols and tag
8142 # them as such. So, trigger use of export_symbols_cmds.
8143 # export_symbols gets reassigned inside the "prepare
8144 # the list of exported symbols" if statement, so the
8145 # include_expsyms logic still works.
8146 orig_export_symbols="$export_symbols"
8147 export_symbols=
8148 always_export_symbols=yes
8149 fi
8150 fi
8151 ;;
8152 esac
8153
8154 # Prepare the list of exported symbols
8155 if test -z "$export_symbols"; then
8156 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
8157 func_verbose "generating symbol list for \`$libname.la'"
8158 export_symbols="$output_objdir/$libname.exp"
8159 $opt_dry_run || $RM $export_symbols
8160 cmds=$export_symbols_cmds
8161 save_ifs="$IFS"; IFS='~'
8162 for cmd1 in $cmds; do
8163 IFS="$save_ifs"
8164 # Take the normal branch if the nm_file_list_spec branch
8165 # doesn't work or if tool conversion is not needed.
8166 case $nm_file_list_spec~$to_tool_file_cmd in
8167 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
8168 try_normal_branch=yes
8169 eval cmd=\"$cmd1\"
8170 func_len " $cmd"
8171 len=$func_len_result
8172 ;;
8173 *)
8174 try_normal_branch=no
8175 ;;
8176 esac
8177 if test "$try_normal_branch" = yes \
8178 && { test "$len" -lt "$max_cmd_len" \
8179 || test "$max_cmd_len" -le -1; }
8180 then
8181 func_show_eval "$cmd" 'exit $?'
8182 skipped_export=false
8183 elif test -n "$nm_file_list_spec"; then
8184 func_basename "$output"
8185 output_la=$func_basename_result
8186 save_libobjs=$libobjs
8187 save_output=$output
8188 output=${output_objdir}/${output_la}.nm
8189 func_to_tool_file "$output"
8190 libobjs=$nm_file_list_spec$func_to_tool_file_result
8191 func_append delfiles " $output"
8192 func_verbose "creating $NM input file list: $output"
8193 for obj in $save_libobjs; do
8194 func_to_tool_file "$obj"
8195 $ECHO "$func_to_tool_file_result"
8196 done > "$output"
8197 eval cmd=\"$cmd1\"
8198 func_show_eval "$cmd" 'exit $?'
8199 output=$save_output
8200 libobjs=$save_libobjs
8201 skipped_export=false
8202 else
8203 # The command line is too long to execute in one step.
8204 func_verbose "using reloadable object file for export list..."
8205 skipped_export=:
8206 # Break out early, otherwise skipped_export may be
8207 # set to false by a later but shorter cmd.
8208 break
8209 fi
8210 done
8211 IFS="$save_ifs"
8212 if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
8213 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
8214 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
8215 fi
8216 fi
8217 fi
8218
8219 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8220 tmp_export_symbols="$export_symbols"
8221 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8222 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
8223 fi
8224
8225 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
8226 # The given exports_symbols file has to be filtered, so filter it.
8227 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8228 # FIXME: $output_objdir/$libname.filter potentially contains lots of
8229 # 's' commands which not all seds can handle. GNU sed should be fine
8230 # though. Also, the filter scales superlinearly with the number of
8231 # global variables. join(1) would be nice here, but unfortunately
8232 # isn't a blessed tool.
8233 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8234 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
8235 export_symbols=$output_objdir/$libname.def
8236 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8237 fi
8238
8239 tmp_deplibs=
8240 for test_deplib in $deplibs; do
8241 case " $convenience " in
8242 *" $test_deplib "*) ;;
8243 *)
8244 func_append tmp_deplibs " $test_deplib"
8245 ;;
8246 esac
8247 done
8248 deplibs="$tmp_deplibs"
8249
8250 if test -n "$convenience"; then
8251 if test -n "$whole_archive_flag_spec" &&
8252 test "$compiler_needs_object" = yes &&
8253 test -z "$libobjs"; then
8254 # extract the archives, so we have objects to list.
8255 # TODO: could optimize this to just extract one archive.
8256 whole_archive_flag_spec=
8257 fi
8258 if test -n "$whole_archive_flag_spec"; then
8259 save_libobjs=$libobjs
8260 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8261 test "X$libobjs" = "X " && libobjs=
8262 else
8263 gentop="$output_objdir/${outputname}x"
8264 func_append generated " $gentop"
8265
8266 func_extract_archives $gentop $convenience
8267 func_append libobjs " $func_extract_archives_result"
8268 test "X$libobjs" = "X " && libobjs=
8269 fi
8270 fi
8271
8272 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
8273 eval flag=\"$thread_safe_flag_spec\"
8274 func_append linker_flags " $flag"
8275 fi
8276
8277 # Make a backup of the uninstalled library when relinking
8278 if test "$opt_mode" = relink; then
8279 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
8280 fi
8281
8282 # Do each of the archive commands.
8283 if test "$module" = yes && test -n "$module_cmds" ; then
8284 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
8285 eval test_cmds=\"$module_expsym_cmds\"
8286 cmds=$module_expsym_cmds
8287 else
8288 eval test_cmds=\"$module_cmds\"
8289 cmds=$module_cmds
8290 fi
8291 else
8292 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
8293 eval test_cmds=\"$archive_expsym_cmds\"
8294 cmds=$archive_expsym_cmds
8295 else
8296 eval test_cmds=\"$archive_cmds\"
8297 cmds=$archive_cmds
8298 fi
8299 fi
8300
8301 if test "X$skipped_export" != "X:" &&
8302 func_len " $test_cmds" &&
8303 len=$func_len_result &&
8304 test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8305 :
8306 else
8307 # The command line is too long to link in one step, link piecewise
8308 # or, if using GNU ld and skipped_export is not :, use a linker
8309 # script.
8310
8311 # Save the value of $output and $libobjs because we want to
8312 # use them later. If we have whole_archive_flag_spec, we
8313 # want to use save_libobjs as it was before
8314 # whole_archive_flag_spec was expanded, because we can't
8315 # assume the linker understands whole_archive_flag_spec.
8316 # This may have to be revisited, in case too many
8317 # convenience libraries get linked in and end up exceeding
8318 # the spec.
8319 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
8320 save_libobjs=$libobjs
8321 fi
8322 save_output=$output
8323 func_basename "$output"
8324 output_la=$func_basename_result
8325
8326 # Clear the reloadable object creation command queue and
8327 # initialize k to one.
8328 test_cmds=
8329 concat_cmds=
8330 objlist=
8331 last_robj=
8332 k=1
8333
8334 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
8335 output=${output_objdir}/${output_la}.lnkscript
8336 func_verbose "creating GNU ld script: $output"
8337 echo 'INPUT (' > $output
8338 for obj in $save_libobjs
8339 do
8340 func_to_tool_file "$obj"
8341 $ECHO "$func_to_tool_file_result" >> $output
8342 done
8343 echo ')' >> $output
8344 func_append delfiles " $output"
8345 func_to_tool_file "$output"
8346 output=$func_to_tool_file_result
8347 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
8348 output=${output_objdir}/${output_la}.lnk
8349 func_verbose "creating linker input file list: $output"
8350 : > $output
8351 set x $save_libobjs
8352 shift
8353 firstobj=
8354 if test "$compiler_needs_object" = yes; then
8355 firstobj="$1 "
8356 shift
8357 fi
8358 for obj
8359 do
8360 func_to_tool_file "$obj"
8361 $ECHO "$func_to_tool_file_result" >> $output
8362 done
8363 func_append delfiles " $output"
8364 func_to_tool_file "$output"
8365 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
8366 else
8367 if test -n "$save_libobjs"; then
8368 func_verbose "creating reloadable object files..."
8369 output=$output_objdir/$output_la-${k}.$objext
8370 eval test_cmds=\"$reload_cmds\"
8371 func_len " $test_cmds"
8372 len0=$func_len_result
8373 len=$len0
8374
8375 # Loop over the list of objects to be linked.
8376 for obj in $save_libobjs
8377 do
8378 func_len " $obj"
8379 func_arith $len + $func_len_result
8380 len=$func_arith_result
8381 if test "X$objlist" = X ||
8382 test "$len" -lt "$max_cmd_len"; then
8383 func_append objlist " $obj"
8384 else
8385 # The command $test_cmds is almost too long, add a
8386 # command to the queue.
8387 if test "$k" -eq 1 ; then
8388 # The first file doesn't have a previous command to add.
8389 reload_objs=$objlist
8390 eval concat_cmds=\"$reload_cmds\"
8391 else
8392 # All subsequent reloadable object files will link in
8393 # the last one created.
8394 reload_objs="$objlist $last_robj"
8395 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
8396 fi
8397 last_robj=$output_objdir/$output_la-${k}.$objext
8398 func_arith $k + 1
8399 k=$func_arith_result
8400 output=$output_objdir/$output_la-${k}.$objext
8401 objlist=" $obj"
8402 func_len " $last_robj"
8403 func_arith $len0 + $func_len_result
8404 len=$func_arith_result
8405 fi
8406 done
8407 # Handle the remaining objects by creating one last
8408 # reloadable object file. All subsequent reloadable object
8409 # files will link in the last one created.
8410 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8411 reload_objs="$objlist $last_robj"
8412 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
8413 if test -n "$last_robj"; then
8414 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
8415 fi
8416 func_append delfiles " $output"
8417
8418 else
8419 output=
8420 fi
8421
8422 if ${skipped_export-false}; then
8423 func_verbose "generating symbol list for \`$libname.la'"
8424 export_symbols="$output_objdir/$libname.exp"
8425 $opt_dry_run || $RM $export_symbols
8426 libobjs=$output
8427 # Append the command to create the export file.
8428 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8429 eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
8430 if test -n "$last_robj"; then
8431 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
8432 fi
8433 fi
8434
8435 test -n "$save_libobjs" &&
8436 func_verbose "creating a temporary reloadable object file: $output"
8437
8438 # Loop through the commands generated above and execute them.
8439 save_ifs="$IFS"; IFS='~'
8440 for cmd in $concat_cmds; do
8441 IFS="$save_ifs"
8442 $opt_silent || {
8443 func_quote_for_expand "$cmd"
8444 eval "func_echo $func_quote_for_expand_result"
8445 }
8446 $opt_dry_run || eval "$cmd" || {
8447 lt_exit=$?
8448
8449 # Restore the uninstalled library and exit
8450 if test "$opt_mode" = relink; then
8451 ( cd "$output_objdir" && \
8452 $RM "${realname}T" && \
8453 $MV "${realname}U" "$realname" )
8454 fi
8455
8456 exit $lt_exit
8457 }
8458 done
8459 IFS="$save_ifs"
8460
8461 if test -n "$export_symbols_regex" && ${skipped_export-false}; then
8462 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
8463 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
8464 fi
8465 fi
8466
8467 if ${skipped_export-false}; then
8468 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8469 tmp_export_symbols="$export_symbols"
8470 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8471 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
8472 fi
8473
8474 if test -n "$orig_export_symbols"; then
8475 # The given exports_symbols file has to be filtered, so filter it.
8476 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8477 # FIXME: $output_objdir/$libname.filter potentially contains lots of
8478 # 's' commands which not all seds can handle. GNU sed should be fine
8479 # though. Also, the filter scales superlinearly with the number of
8480 # global variables. join(1) would be nice here, but unfortunately
8481 # isn't a blessed tool.
8482 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8483 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
8484 export_symbols=$output_objdir/$libname.def
8485 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8486 fi
8487 fi
8488
8489 libobjs=$output
8490 # Restore the value of output.
8491 output=$save_output
8492
8493 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
8494 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8495 test "X$libobjs" = "X " && libobjs=
8496 fi
8497 # Expand the library linking commands again to reset the
8498 # value of $libobjs for piecewise linking.
8499
8500 # Do each of the archive commands.
8501 if test "$module" = yes && test -n "$module_cmds" ; then
8502 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
8503 cmds=$module_expsym_cmds
8504 else
8505 cmds=$module_cmds
8506 fi
8507 else
8508 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
8509 cmds=$archive_expsym_cmds
8510 else
8511 cmds=$archive_cmds
8512 fi
8513 fi
8514 fi
8515
8516 if test -n "$delfiles"; then
8517 # Append the command to remove temporary files to $cmds.
8518 eval cmds=\"\$cmds~\$RM $delfiles\"
8519 fi
8520
8521 # Add any objects from preloaded convenience libraries
8522 if test -n "$dlprefiles"; then
8523 gentop="$output_objdir/${outputname}x"
8524 func_append generated " $gentop"
8525
8526 func_extract_archives $gentop $dlprefiles
8527 func_append libobjs " $func_extract_archives_result"
8528 test "X$libobjs" = "X " && libobjs=
8529 fi
8530
8531 save_ifs="$IFS"; IFS='~'
8532 for cmd in $cmds; do
8533 IFS="$save_ifs"
8534 eval cmd=\"$cmd\"
8535 $opt_silent || {
8536 func_quote_for_expand "$cmd"
8537 eval "func_echo $func_quote_for_expand_result"
8538 }
8539 $opt_dry_run || eval "$cmd" || {
8540 lt_exit=$?
8541
8542 # Restore the uninstalled library and exit
8543 if test "$opt_mode" = relink; then
8544 ( cd "$output_objdir" && \
8545 $RM "${realname}T" && \
8546 $MV "${realname}U" "$realname" )
8547 fi
8548
8549 exit $lt_exit
8550 }
8551 done
8552 IFS="$save_ifs"
8553
8554 # Restore the uninstalled library and exit
8555 if test "$opt_mode" = relink; then
8556 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
8557
8558 if test -n "$convenience"; then
8559 if test -z "$whole_archive_flag_spec"; then
8560 func_show_eval '${RM}r "$gentop"'
8561 fi
8562 fi
8563
8564 exit $EXIT_SUCCESS
8565 fi
8566
8567 # Create links to the real library.
8568 for linkname in $linknames; do
8569 if test "$realname" != "$linkname"; then
8570 func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
8571 fi
8572 done
8573
8574 # If -module or -export-dynamic was specified, set the dlname.
8575 if test "$module" = yes || test "$export_dynamic" = yes; then
8576 # On all known operating systems, these are identical.
8577 dlname="$soname"
8578 fi
8579 fi
8580 ;;
8581
8582 obj)
8583 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
8584 func_warning "\`-dlopen' is ignored for objects"
8585 fi
8586
8587 case " $deplibs" in
8588 *\ -l* | *\ -L*)
8589 func_warning "\`-l' and \`-L' are ignored for objects" ;;
8590 esac
8591
8592 test -n "$rpath" && \
8593 func_warning "\`-rpath' is ignored for objects"
8594
8595 test -n "$xrpath" && \
8596 func_warning "\`-R' is ignored for objects"
8597
8598 test -n "$vinfo" && \
8599 func_warning "\`-version-info' is ignored for objects"
8600
8601 test -n "$release" && \
8602 func_warning "\`-release' is ignored for objects"
8603
8604 case $output in
8605 *.lo)
8606 test -n "$objs$old_deplibs" && \
8607 func_fatal_error "cannot build library object \`$output' from non-libtool objects"
8608
8609 libobj=$output
8610 func_lo2o "$libobj"
8611 obj=$func_lo2o_result
8612 ;;
8613 *)
8614 libobj=
8615 obj="$output"
8616 ;;
8617 esac
8618
8619 # Delete the old objects.
8620 $opt_dry_run || $RM $obj $libobj
8621
8622 # Objects from convenience libraries. This assumes
8623 # single-version convenience libraries. Whenever we create
8624 # different ones for PIC/non-PIC, this we'll have to duplicate
8625 # the extraction.
8626 reload_conv_objs=
8627 gentop=
8628 # reload_cmds runs $LD directly, so let us get rid of
8629 # -Wl from whole_archive_flag_spec and hope we can get by with
8630 # turning comma into space..
8631 wl=
8632
8633 if test -n "$convenience"; then
8634 if test -n "$whole_archive_flag_spec"; then
8635 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
8636 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
8637 else
8638 gentop="$output_objdir/${obj}x"
8639 func_append generated " $gentop"
8640
8641 func_extract_archives $gentop $convenience
8642 reload_conv_objs="$reload_objs $func_extract_archives_result"
8643 fi
8644 fi
8645
8646 # If we're not building shared, we need to use non_pic_objs
8647 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
8648
8649 # Create the old-style object.
8650 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
8651
8652 output="$obj"
8653 func_execute_cmds "$reload_cmds" 'exit $?'
8654
8655 # Exit if we aren't doing a library object file.
8656 if test -z "$libobj"; then
8657 if test -n "$gentop"; then
8658 func_show_eval '${RM}r "$gentop"'
8659 fi
8660
8661 exit $EXIT_SUCCESS
8662 fi
8663
8664 if test "$build_libtool_libs" != yes; then
8665 if test -n "$gentop"; then
8666 func_show_eval '${RM}r "$gentop"'
8667 fi
8668
8669 # Create an invalid libtool object if no PIC, so that we don't
8670 # accidentally link it into a program.
8671 # $show "echo timestamp > $libobj"
8672 # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
8673 exit $EXIT_SUCCESS
8674 fi
8675
8676 if test -n "$pic_flag" || test "$pic_mode" != default; then
8677 # Only do commands if we really have different PIC objects.
8678 reload_objs="$libobjs $reload_conv_objs"
8679 output="$libobj"
8680 func_execute_cmds "$reload_cmds" 'exit $?'
8681 fi
8682
8683 if test -n "$gentop"; then
8684 func_show_eval '${RM}r "$gentop"'
8685 fi
8686
8687 exit $EXIT_SUCCESS
8688 ;;
8689
8690 prog)
8691 case $host in
8692 *cygwin*) func_stripname '' '.exe' "$output"
8693 output=$func_stripname_result.exe;;
8694 esac
8695 test -n "$vinfo" && \
8696 func_warning "\`-version-info' is ignored for programs"
8697
8698 test -n "$release" && \
8699 func_warning "\`-release' is ignored for programs"
8700
8701 test "$preload" = yes \
8702 && test "$dlopen_support" = unknown \
8703 && test "$dlopen_self" = unknown \
8704 && test "$dlopen_self_static" = unknown && \
8705 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
8706
8707 case $host in
8708 *-*-rhapsody* | *-*-darwin1.[012])
8709 # On Rhapsody replace the C library is the System framework
8710 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
8711 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
8712 ;;
8713 esac
8714
8715 case $host in
8716 *-*-darwin*)
8717 # Don't allow lazy linking, it breaks C++ global constructors
8718 # But is supposedly fixed on 10.4 or later (yay!).
8719 if test "$tagname" = CXX ; then
8720 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8721 10.[0123])
8722 func_append compile_command " ${wl}-bind_at_load"
8723 func_append finalize_command " ${wl}-bind_at_load"
8724 ;;
8725 esac
8726 fi
8727 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8728 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8729 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8730 ;;
8731 esac
8732
8733
8734 # move library search paths that coincide with paths to not yet
8735 # installed libraries to the beginning of the library search list
8736 new_libs=
8737 for path in $notinst_path; do
8738 case " $new_libs " in
8739 *" -L$path/$objdir "*) ;;
8740 *)
8741 case " $compile_deplibs " in
8742 *" -L$path/$objdir "*)
8743 func_append new_libs " -L$path/$objdir" ;;
8744 esac
8745 ;;
8746 esac
8747 done
8748 for deplib in $compile_deplibs; do
8749 case $deplib in
8750 -L*)
8751 case " $new_libs " in
8752 *" $deplib "*) ;;
8753 *) func_append new_libs " $deplib" ;;
8754 esac
8755 ;;
8756 *) func_append new_libs " $deplib" ;;
8757 esac
8758 done
8759 compile_deplibs="$new_libs"
8760
8761
8762 func_append compile_command " $compile_deplibs"
8763 func_append finalize_command " $finalize_deplibs"
8764
8765 if test -n "$rpath$xrpath"; then
8766 # If the user specified any rpath flags, then add them.
8767 for libdir in $rpath $xrpath; do
8768 # This is the magic to use -rpath.
8769 case "$finalize_rpath " in
8770 *" $libdir "*) ;;
8771 *) func_append finalize_rpath " $libdir" ;;
8772 esac
8773 done
8774 fi
8775
8776 # Now hardcode the library paths
8777 rpath=
8778 hardcode_libdirs=
8779 for libdir in $compile_rpath $finalize_rpath; do
8780 if test -n "$hardcode_libdir_flag_spec"; then
8781 if test -n "$hardcode_libdir_separator"; then
8782 if test -z "$hardcode_libdirs"; then
8783 hardcode_libdirs="$libdir"
8784 else
8785 # Just accumulate the unique libdirs.
8786 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8787 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8788 ;;
8789 *)
8790 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8791 ;;
8792 esac
8793 fi
8794 else
8795 eval flag=\"$hardcode_libdir_flag_spec\"
8796 func_append rpath " $flag"
8797 fi
8798 elif test -n "$runpath_var"; then
8799 case "$perm_rpath " in
8800 *" $libdir "*) ;;
8801 *) func_append perm_rpath " $libdir" ;;
8802 esac
8803 fi
8804 case $host in
8805 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
8806 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8807 case :$dllsearchpath: in
8808 *":$libdir:"*) ;;
8809 ::) dllsearchpath=$libdir;;
8810 *) func_append dllsearchpath ":$libdir";;
8811 esac
8812 case :$dllsearchpath: in
8813 *":$testbindir:"*) ;;
8814 ::) dllsearchpath=$testbindir;;
8815 *) func_append dllsearchpath ":$testbindir";;
8816 esac
8817 ;;
8818 esac
8819 done
8820 # Substitute the hardcoded libdirs into the rpath.
8821 if test -n "$hardcode_libdir_separator" &&
8822 test -n "$hardcode_libdirs"; then
8823 libdir="$hardcode_libdirs"
8824 eval rpath=\" $hardcode_libdir_flag_spec\"
8825 fi
8826 compile_rpath="$rpath"
8827
8828 rpath=
8829 hardcode_libdirs=
8830 for libdir in $finalize_rpath; do
8831 if test -n "$hardcode_libdir_flag_spec"; then
8832 if test -n "$hardcode_libdir_separator"; then
8833 if test -z "$hardcode_libdirs"; then
8834 hardcode_libdirs="$libdir"
8835 else
8836 # Just accumulate the unique libdirs.
8837 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8838 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8839 ;;
8840 *)
8841 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8842 ;;
8843 esac
8844 fi
8845 else
8846 eval flag=\"$hardcode_libdir_flag_spec\"
8847 func_append rpath " $flag"
8848 fi
8849 elif test -n "$runpath_var"; then
8850 case "$finalize_perm_rpath " in
8851 *" $libdir "*) ;;
8852 *) func_append finalize_perm_rpath " $libdir" ;;
8853 esac
8854 fi
8855 done
8856 # Substitute the hardcoded libdirs into the rpath.
8857 if test -n "$hardcode_libdir_separator" &&
8858 test -n "$hardcode_libdirs"; then
8859 libdir="$hardcode_libdirs"
8860 eval rpath=\" $hardcode_libdir_flag_spec\"
8861 fi
8862 finalize_rpath="$rpath"
8863
8864 if test -n "$libobjs" && test "$build_old_libs" = yes; then
8865 # Transform all the library objects into standard objects.
8866 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8867 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8868 fi
8869
8870 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8871
8872 # template prelinking step
8873 if test -n "$prelink_cmds"; then
8874 func_execute_cmds "$prelink_cmds" 'exit $?'
8875 fi
8876
8877 wrappers_required=yes
8878 case $host in
8879 *cegcc* | *mingw32ce*)
8880 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8881 wrappers_required=no
8882 ;;
8883 *cygwin* | *mingw* )
8884 if test "$build_libtool_libs" != yes; then
8885 wrappers_required=no
8886 fi
8887 ;;
8888 *)
8889 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8890 wrappers_required=no
8891 fi
8892 ;;
8893 esac
8894 if test "$wrappers_required" = no; then
8895 # Replace the output file specification.
8896 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8897 link_command="$compile_command$compile_rpath"
8898
8899 # We have no uninstalled library dependencies, so finalize right now.
8900 exit_status=0
8901 func_show_eval "$link_command" 'exit_status=$?'
8902
8903 if test -n "$postlink_cmds"; then
8904 func_to_tool_file "$output"
8905 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8906 func_execute_cmds "$postlink_cmds" 'exit $?'
8907 fi
8908
8909 # Delete the generated files.
8910 if test -f "$output_objdir/${outputname}S.${objext}"; then
8911 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8912 fi
8913
8914 exit $exit_status
8915 fi
8916
8917 if test -n "$compile_shlibpath$finalize_shlibpath"; then
8918 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8919 fi
8920 if test -n "$finalize_shlibpath"; then
8921 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8922 fi
8923
8924 compile_var=
8925 finalize_var=
8926 if test -n "$runpath_var"; then
8927 if test -n "$perm_rpath"; then
8928 # We should set the runpath_var.
8929 rpath=
8930 for dir in $perm_rpath; do
8931 func_append rpath "$dir:"
8932 done
8933 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8934 fi
8935 if test -n "$finalize_perm_rpath"; then
8936 # We should set the runpath_var.
8937 rpath=
8938 for dir in $finalize_perm_rpath; do
8939 func_append rpath "$dir:"
8940 done
8941 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8942 fi
8943 fi
8944
8945 if test "$no_install" = yes; then
8946 # We don't need to create a wrapper script.
8947 link_command="$compile_var$compile_command$compile_rpath"
8948 # Replace the output file specification.
8949 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8950 # Delete the old output file.
8951 $opt_dry_run || $RM $output
8952 # Link the executable and exit
8953 func_show_eval "$link_command" 'exit $?'
8954
8955 if test -n "$postlink_cmds"; then
8956 func_to_tool_file "$output"
8957 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8958 func_execute_cmds "$postlink_cmds" 'exit $?'
8959 fi
8960
8961 exit $EXIT_SUCCESS
8962 fi
8963
8964 if test "$hardcode_action" = relink; then
8965 # Fast installation is not supported
8966 link_command="$compile_var$compile_command$compile_rpath"
8967 relink_command="$finalize_var$finalize_command$finalize_rpath"
8968
8969 func_warning "this platform does not like uninstalled shared libraries"
8970 func_warning "\`$output' will be relinked during installation"
8971 else
8972 if test "$fast_install" != no; then
8973 link_command="$finalize_var$compile_command$finalize_rpath"
8974 if test "$fast_install" = yes; then
8975 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
8976 else
8977 # fast_install is set to needless
8978 relink_command=
8979 fi
8980 else
8981 link_command="$compile_var$compile_command$compile_rpath"
8982 relink_command="$finalize_var$finalize_command$finalize_rpath"
8983 fi
8984 fi
8985
8986 # Replace the output file specification.
8987 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8988
8989 # Delete the old output files.
8990 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8991
8992 func_show_eval "$link_command" 'exit $?'
8993
8994 if test -n "$postlink_cmds"; then
8995 func_to_tool_file "$output_objdir/$outputname"
8996 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'`
8997 func_execute_cmds "$postlink_cmds" 'exit $?'
8998 fi
8999
9000 # Now create the wrapper script.
9001 func_verbose "creating $output"
9002
9003 # Quote the relink command for shipping.
9004 if test -n "$relink_command"; then
9005 # Preserve any variables that may affect compiler behavior
9006 for var in $variables_saved_for_relink; do
9007 if eval test -z \"\${$var+set}\"; then
9008 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
9009 elif eval var_value=\$$var; test -z "$var_value"; then
9010 relink_command="$var=; export $var; $relink_command"
9011 else
9012 func_quote_for_eval "$var_value"
9013 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9014 fi
9015 done
9016 relink_command="(cd `pwd`; $relink_command)"
9017 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
9018 fi
9019
9020 # Only actually do things if not in dry run mode.
9021 $opt_dry_run || {
9022 # win32 will think the script is a binary if it has
9023 # a .exe suffix, so we strip it off here.
9024 case $output in
9025 *.exe) func_stripname '' '.exe' "$output"
9026 output=$func_stripname_result ;;
9027 esac
9028 # test for cygwin because mv fails w/o .exe extensions
9029 case $host in
9030 *cygwin*)
9031 exeext=.exe
9032 func_stripname '' '.exe' "$outputname"
9033 outputname=$func_stripname_result ;;
9034 *) exeext= ;;
9035 esac
9036 case $host in
9037 *cygwin* | *mingw* )
9038 func_dirname_and_basename "$output" "" "."
9039 output_name=$func_basename_result
9040 output_path=$func_dirname_result
9041 cwrappersource="$output_path/$objdir/lt-$output_name.c"
9042 cwrapper="$output_path/$output_name.exe"
9043 $RM $cwrappersource $cwrapper
9044 trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
9045
9046 func_emit_cwrapperexe_src > $cwrappersource
9047
9048 # The wrapper executable is built using the $host compiler,
9049 # because it contains $host paths and files. If cross-
9050 # compiling, it, like the target executable, must be
9051 # executed on the $host or under an emulation environment.
9052 $opt_dry_run || {
9053 $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
9054 $STRIP $cwrapper
9055 }
9056
9057 # Now, create the wrapper script for func_source use:
9058 func_ltwrapper_scriptname $cwrapper
9059 $RM $func_ltwrapper_scriptname_result
9060 trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
9061 $opt_dry_run || {
9062 # note: this script will not be executed, so do not chmod.
9063 if test "x$build" = "x$host" ; then
9064 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
9065 else
9066 func_emit_wrapper no > $func_ltwrapper_scriptname_result
9067 fi
9068 }
9069 ;;
9070 * )
9071 $RM $output
9072 trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
9073
9074 func_emit_wrapper no > $output
9075 chmod +x $output
9076 ;;
9077 esac
9078 }
9079 exit $EXIT_SUCCESS
9080 ;;
9081 esac
9082
9083 # See if we need to build an old-fashioned archive.
9084 for oldlib in $oldlibs; do
9085
9086 if test "$build_libtool_libs" = convenience; then
9087 oldobjs="$libobjs_save $symfileobj"
9088 addlibs="$convenience"
9089 build_libtool_libs=no
9090 else
9091 if test "$build_libtool_libs" = module; then
9092 oldobjs="$libobjs_save"
9093 build_libtool_libs=no
9094 else
9095 oldobjs="$old_deplibs $non_pic_objects"
9096 if test "$preload" = yes && test -f "$symfileobj"; then
9097 func_append oldobjs " $symfileobj"
9098 fi
9099 fi
9100 addlibs="$old_convenience"
9101 fi
9102
9103 if test -n "$addlibs"; then
9104 gentop="$output_objdir/${outputname}x"
9105 func_append generated " $gentop"
9106
9107 func_extract_archives $gentop $addlibs
9108 func_append oldobjs " $func_extract_archives_result"
9109 fi
9110
9111 # Do each command in the archive commands.
9112 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
9113 cmds=$old_archive_from_new_cmds
9114 else
9115
9116 # Add any objects from preloaded convenience libraries
9117 if test -n "$dlprefiles"; then
9118 gentop="$output_objdir/${outputname}x"
9119 func_append generated " $gentop"
9120
9121 func_extract_archives $gentop $dlprefiles
9122 func_append oldobjs " $func_extract_archives_result"
9123 fi
9124
9125 # POSIX demands no paths to be encoded in archives. We have
9126 # to avoid creating archives with duplicate basenames if we
9127 # might have to extract them afterwards, e.g., when creating a
9128 # static archive out of a convenience library, or when linking
9129 # the entirety of a libtool archive into another (currently
9130 # not supported by libtool).
9131 if (for obj in $oldobjs
9132 do
9133 func_basename "$obj"
9134 $ECHO "$func_basename_result"
9135 done | sort | sort -uc >/dev/null 2>&1); then
9136 :
9137 else
9138 echo "copying selected object files to avoid basename conflicts..."
9139 gentop="$output_objdir/${outputname}x"
9140 func_append generated " $gentop"
9141 func_mkdir_p "$gentop"
9142 save_oldobjs=$oldobjs
9143 oldobjs=
9144 counter=1
9145 for obj in $save_oldobjs
9146 do
9147 func_basename "$obj"
9148 objbase="$func_basename_result"
9149 case " $oldobjs " in
9150 " ") oldobjs=$obj ;;
9151 *[\ /]"$objbase "*)
9152 while :; do
9153 # Make sure we don't pick an alternate name that also
9154 # overlaps.
9155 newobj=lt$counter-$objbase
9156 func_arith $counter + 1
9157 counter=$func_arith_result
9158 case " $oldobjs " in
9159 *[\ /]"$newobj "*) ;;
9160 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
9161 esac
9162 done
9163 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
9164 func_append oldobjs " $gentop/$newobj"
9165 ;;
9166 *) func_append oldobjs " $obj" ;;
9167 esac
9168 done
9169 fi
9170 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
9171 tool_oldlib=$func_to_tool_file_result
9172 eval cmds=\"$old_archive_cmds\"
9173
9174 func_len " $cmds"
9175 len=$func_len_result
9176 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
9177 cmds=$old_archive_cmds
9178 elif test -n "$archiver_list_spec"; then
9179 func_verbose "using command file archive linking..."
9180 for obj in $oldobjs
9181 do
9182 func_to_tool_file "$obj"
9183 $ECHO "$func_to_tool_file_result"
9184 done > $output_objdir/$libname.libcmd
9185 func_to_tool_file "$output_objdir/$libname.libcmd"
9186 oldobjs=" $archiver_list_spec$func_to_tool_file_result"
9187 cmds=$old_archive_cmds
9188 else
9189 # the command line is too long to link in one step, link in parts
9190 func_verbose "using piecewise archive linking..."
9191 save_RANLIB=$RANLIB
9192 RANLIB=:
9193 objlist=
9194 concat_cmds=
9195 save_oldobjs=$oldobjs
9196 oldobjs=
9197 # Is there a better way of finding the last object in the list?
9198 for obj in $save_oldobjs
9199 do
9200 last_oldobj=$obj
9201 done
9202 eval test_cmds=\"$old_archive_cmds\"
9203 func_len " $test_cmds"
9204 len0=$func_len_result
9205 len=$len0
9206 for obj in $save_oldobjs
9207 do
9208 func_len " $obj"
9209 func_arith $len + $func_len_result
9210 len=$func_arith_result
9211 func_append objlist " $obj"
9212 if test "$len" -lt "$max_cmd_len"; then
9213 :
9214 else
9215 # the above command should be used before it gets too long
9216 oldobjs=$objlist
9217 if test "$obj" = "$last_oldobj" ; then
9218 RANLIB=$save_RANLIB
9219 fi
9220 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
9221 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
9222 objlist=
9223 len=$len0
9224 fi
9225 done
9226 RANLIB=$save_RANLIB
9227 oldobjs=$objlist
9228 if test "X$oldobjs" = "X" ; then
9229 eval cmds=\"\$concat_cmds\"
9230 else
9231 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
9232 fi
9233 fi
9234 fi
9235 func_execute_cmds "$cmds" 'exit $?'
9236 done
9237
9238 test -n "$generated" && \
9239 func_show_eval "${RM}r$generated"
9240
9241 # Now create the libtool archive.
9242 case $output in
9243 *.la)
9244 old_library=
9245 test "$build_old_libs" = yes && old_library="$libname.$libext"
9246 func_verbose "creating $output"
9247
9248 # Preserve any variables that may affect compiler behavior
9249 for var in $variables_saved_for_relink; do
9250 if eval test -z \"\${$var+set}\"; then
9251 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
9252 elif eval var_value=\$$var; test -z "$var_value"; then
9253 relink_command="$var=; export $var; $relink_command"
9254 else
9255 func_quote_for_eval "$var_value"
9256 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9257 fi
9258 done
9259 # Quote the link command for shipping.
9260 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
9261 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
9262 if test "$hardcode_automatic" = yes ; then
9263 relink_command=
9264 fi
9265
9266 # Only create the output if not a dry run.
9267 $opt_dry_run || {
9268 for installed in no yes; do
9269 if test "$installed" = yes; then
9270 if test -z "$install_libdir"; then
9271 break
9272 fi
9273 output="$output_objdir/$outputname"i
9274 # Replace all uninstalled libtool libraries with the installed ones
9275 newdependency_libs=
9276 for deplib in $dependency_libs; do
9277 case $deplib in
9278 *.la)
9279 func_basename "$deplib"
9280 name="$func_basename_result"
9281 func_resolve_sysroot "$deplib"
9282 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
9283 test -z "$libdir" && \
9284 func_fatal_error "\`$deplib' is not a valid libtool archive"
9285 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
9286 ;;
9287 -L*)
9288 func_stripname -L '' "$deplib"
9289 func_replace_sysroot "$func_stripname_result"
9290 func_append newdependency_libs " -L$func_replace_sysroot_result"
9291 ;;
9292 -R*)
9293 func_stripname -R '' "$deplib"
9294 func_replace_sysroot "$func_stripname_result"
9295 func_append newdependency_libs " -R$func_replace_sysroot_result"
9296 ;;
9297 *) func_append newdependency_libs " $deplib" ;;
9298 esac
9299 done
9300 dependency_libs="$newdependency_libs"
9301 newdlfiles=
9302
9303 for lib in $dlfiles; do
9304 case $lib in
9305 *.la)
9306 func_basename "$lib"
9307 name="$func_basename_result"
9308 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9309 test -z "$libdir" && \
9310 func_fatal_error "\`$lib' is not a valid libtool archive"
9311 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
9312 ;;
9313 *) func_append newdlfiles " $lib" ;;
9314 esac
9315 done
9316 dlfiles="$newdlfiles"
9317 newdlprefiles=
9318 for lib in $dlprefiles; do
9319 case $lib in
9320 *.la)
9321 # Only pass preopened files to the pseudo-archive (for
9322 # eventual linking with the app. that links it) if we
9323 # didn't already link the preopened objects directly into
9324 # the library:
9325 func_basename "$lib"
9326 name="$func_basename_result"
9327 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9328 test -z "$libdir" && \
9329 func_fatal_error "\`$lib' is not a valid libtool archive"
9330 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
9331 ;;
9332 esac
9333 done
9334 dlprefiles="$newdlprefiles"
9335 else
9336 newdlfiles=
9337 for lib in $dlfiles; do
9338 case $lib in
9339 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9340 *) abs=`pwd`"/$lib" ;;
9341 esac
9342 func_append newdlfiles " $abs"
9343 done
9344 dlfiles="$newdlfiles"
9345 newdlprefiles=
9346 for lib in $dlprefiles; do
9347 case $lib in
9348 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9349 *) abs=`pwd`"/$lib" ;;
9350 esac
9351 func_append newdlprefiles " $abs"
9352 done
9353 dlprefiles="$newdlprefiles"
9354 fi
9355 $RM $output
9356 # place dlname in correct position for cygwin
9357 # In fact, it would be nice if we could use this code for all target
9358 # systems that can't hard-code library paths into their executables
9359 # and that have no shared library path variable independent of PATH,
9360 # but it turns out we can't easily determine that from inspecting
9361 # libtool variables, so we have to hard-code the OSs to which it
9362 # applies here; at the moment, that means platforms that use the PE
9363 # object format with DLL files. See the long comment at the top of
9364 # tests/bindir.at for full details.
9365 tdlname=$dlname
9366 case $host,$output,$installed,$module,$dlname in
9367 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
9368 # If a -bindir argument was supplied, place the dll there.
9369 if test "x$bindir" != x ;
9370 then
9371 func_relative_path "$install_libdir" "$bindir"
9372 tdlname=$func_relative_path_result$dlname
9373 else
9374 # Otherwise fall back on heuristic.
9375 tdlname=../bin/$dlname
9376 fi
9377 ;;
9378 esac
9379 $ECHO > $output "\
9380 # $outputname - a libtool library file
9381 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
9382 #
9383 # Please DO NOT delete this file!
9384 # It is necessary for linking the library.
9385
9386 # The name that we can dlopen(3).
9387 dlname='$tdlname'
9388
9389 # Names of this library.
9390 library_names='$library_names'
9391
9392 # The name of the static archive.
9393 old_library='$old_library'
9394
9395 # Linker flags that can not go in dependency_libs.
9396 inherited_linker_flags='$new_inherited_linker_flags'
9397
9398 # Libraries that this one depends upon.
9399 dependency_libs='$dependency_libs'
9400
9401 # Names of additional weak libraries provided by this library
9402 weak_library_names='$weak_libs'
9403
9404 # Version information for $libname.
9405 current=$current
9406 age=$age
9407 revision=$revision
9408
9409 # Is this an already installed library?
9410 installed=$installed
9411
9412 # Should we warn about portability when linking against -modules?
9413 shouldnotlink=$module
9414
9415 # Files to dlopen/dlpreopen
9416 dlopen='$dlfiles'
9417 dlpreopen='$dlprefiles'
9418
9419 # Directory that this library needs to be installed in:
9420 libdir='$install_libdir'"
9421 if test "$installed" = no && test "$need_relink" = yes; then
9422 $ECHO >> $output "\
9423 relink_command=\"$relink_command\""
9424 fi
9425 done
9426 }
9427
9428 # Do a symbolic link so that the libtool archive can be found in
9429 # LD_LIBRARY_PATH before the program is installed.
9430 func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
9431 ;;
9432 esac
9433 exit $EXIT_SUCCESS
9434 }
9435
9436 { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
9437 func_mode_link ${1+"$@"}
9438
9439
9440 # func_mode_uninstall arg...
9441 func_mode_uninstall ()
9442 {
9443 $opt_debug
9444 RM="$nonopt"
9445 files=
9446 rmforce=
9447 exit_status=0
9448
9449 # This variable tells wrapper scripts just to set variables rather
9450 # than running their programs.
9451 libtool_install_magic="$magic"
9452
9453 for arg
9454 do
9455 case $arg in
9456 -f) func_append RM " $arg"; rmforce=yes ;;
9457 -*) func_append RM " $arg" ;;
9458 *) func_append files " $arg" ;;
9459 esac
9460 done
9461
9462 test -z "$RM" && \
9463 func_fatal_help "you must specify an RM program"
9464
9465 rmdirs=
9466
9467 for file in $files; do
9468 func_dirname "$file" "" "."
9469 dir="$func_dirname_result"
9470 if test "X$dir" = X.; then
9471 odir="$objdir"
9472 else
9473 odir="$dir/$objdir"
9474 fi
9475 func_basename "$file"
9476 name="$func_basename_result"
9477 test "$opt_mode" = uninstall && odir="$dir"
9478
9479 # Remember odir for removal later, being careful to avoid duplicates
9480 if test "$opt_mode" = clean; then
9481 case " $rmdirs " in
9482 *" $odir "*) ;;
9483 *) func_append rmdirs " $odir" ;;
9484 esac
9485 fi
9486
9487 # Don't error if the file doesn't exist and rm -f was used.
9488 if { test -L "$file"; } >/dev/null 2>&1 ||
9489 { test -h "$file"; } >/dev/null 2>&1 ||
9490 test -f "$file"; then
9491 :
9492 elif test -d "$file"; then
9493 exit_status=1
9494 continue
9495 elif test "$rmforce" = yes; then
9496 continue
9497 fi
9498
9499 rmfiles="$file"
9500
9501 case $name in
9502 *.la)
9503 # Possibly a libtool archive, so verify it.
9504 if func_lalib_p "$file"; then
9505 func_source $dir/$name
9506
9507 # Delete the libtool libraries and symlinks.
9508 for n in $library_names; do
9509 func_append rmfiles " $odir/$n"
9510 done
9511 test -n "$old_library" && func_append rmfiles " $odir/$old_library"
9512
9513 case "$opt_mode" in
9514 clean)
9515 case " $library_names " in
9516 *" $dlname "*) ;;
9517 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
9518 esac
9519 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
9520 ;;
9521 uninstall)
9522 if test -n "$library_names"; then
9523 # Do each command in the postuninstall commands.
9524 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9525 fi
9526
9527 if test -n "$old_library"; then
9528 # Do each command in the old_postuninstall commands.
9529 func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9530 fi
9531 # FIXME: should reinstall the best remaining shared library.
9532 ;;
9533 esac
9534 fi
9535 ;;
9536
9537 *.lo)
9538 # Possibly a libtool object, so verify it.
9539 if func_lalib_p "$file"; then
9540
9541 # Read the .lo file
9542 func_source $dir/$name
9543
9544 # Add PIC object to the list of files to remove.
9545 if test -n "$pic_object" &&
9546 test "$pic_object" != none; then
9547 func_append rmfiles " $dir/$pic_object"
9548 fi
9549
9550 # Add non-PIC object to the list of files to remove.
9551 if test -n "$non_pic_object" &&
9552 test "$non_pic_object" != none; then
9553 func_append rmfiles " $dir/$non_pic_object"
9554 fi
9555 fi
9556 ;;
9557
9558 *)
9559 if test "$opt_mode" = clean ; then
9560 noexename=$name
9561 case $file in
9562 *.exe)
9563 func_stripname '' '.exe' "$file"
9564 file=$func_stripname_result
9565 func_stripname '' '.exe' "$name"
9566 noexename=$func_stripname_result
9567 # $file with .exe has already been added to rmfiles,
9568 # add $file without .exe
9569 func_append rmfiles " $file"
9570 ;;
9571 esac
9572 # Do a test to see if this is a libtool program.
9573 if func_ltwrapper_p "$file"; then
9574 if func_ltwrapper_executable_p "$file"; then
9575 func_ltwrapper_scriptname "$file"
9576 relink_command=
9577 func_source $func_ltwrapper_scriptname_result
9578 func_append rmfiles " $func_ltwrapper_scriptname_result"
9579 else
9580 relink_command=
9581 func_source $dir/$noexename
9582 fi
9583
9584 # note $name still contains .exe if it was in $file originally
9585 # as does the version of $file that was added into $rmfiles
9586 func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
9587 if test "$fast_install" = yes && test -n "$relink_command"; then
9588 func_append rmfiles " $odir/lt-$name"
9589 fi
9590 if test "X$noexename" != "X$name" ; then
9591 func_append rmfiles " $odir/lt-${noexename}.c"
9592 fi
9593 fi
9594 fi
9595 ;;
9596 esac
9597 func_show_eval "$RM $rmfiles" 'exit_status=1'
9598 done
9599
9600 # Try to remove the ${objdir}s in the directories where we deleted files
9601 for dir in $rmdirs; do
9602 if test -d "$dir"; then
9603 func_show_eval "rmdir $dir >/dev/null 2>&1"
9604 fi
9605 done
9606
9607 exit $exit_status
9608 }
9609
9610 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
9611 func_mode_uninstall ${1+"$@"}
9612
9613 test -z "$opt_mode" && {
9614 help="$generic_help"
9615 func_fatal_help "you must specify a MODE"
9616 }
9617
9618 test -z "$exec_cmd" && \
9619 func_fatal_help "invalid operation mode \`$opt_mode'"
9620
9621 if test -n "$exec_cmd"; then
9622 eval exec "$exec_cmd"
9623 exit $EXIT_FAILURE
9624 fi
9625
9626 exit $exit_status
9627
9628
9629 # The TAGs below are defined such that we never get into a situation
9630 # in which we disable both kinds of libraries. Given conflicting
9631 # choices, we go for a static library, that is the most portable,
9632 # since we can't tell whether shared libraries were disabled because
9633 # the user asked for that or because the platform doesn't support
9634 # them. This is particularly important on AIX, because we don't
9635 # support having both static and shared libraries enabled at the same
9636 # time on that platform, so we default to a shared-only configuration.
9637 # If a disable-shared tag is given, we'll fallback to a static-only
9638 # configuration. But we'll never go from static-only to shared-only.
9639
9640 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
9641 build_libtool_libs=no
9642 build_old_libs=yes
9643 # ### END LIBTOOL TAG CONFIG: disable-shared
9644
9645 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
9646 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
9647 # ### END LIBTOOL TAG CONFIG: disable-static
9648
9649 # Local Variables:
9650 # mode:shell-script
9651 # sh-indentation:2
9652 # End:
9653 # vi:sw=2
9654
0 #! /bin/sh
1 # Common stub for a few missing GNU programs while installing.
2
3 scriptversion=2012-01-06.18; # UTC
4
5 # Copyright (C) 1996-2012 Free Software Foundation, Inc.
6 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 if test $# -eq 0; then
27 echo 1>&2 "Try '$0 --help' for more information"
28 exit 1
29 fi
30
31 run=:
32 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
33 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
34
35 # In the cases where this matters, 'missing' is being run in the
36 # srcdir already.
37 if test -f configure.ac; then
38 configure_ac=configure.ac
39 else
40 configure_ac=configure.in
41 fi
42
43 msg="missing on your system"
44
45 case $1 in
46 --run)
47 # Try to run requested program, and just exit if it succeeds.
48 run=
49 shift
50 "$@" && exit 0
51 # Exit code 63 means version mismatch. This often happens
52 # when the user try to use an ancient version of a tool on
53 # a file that requires a minimum version. In this case we
54 # we should proceed has if the program had been absent, or
55 # if --run hadn't been passed.
56 if test $? = 63; then
57 run=:
58 msg="probably too old"
59 fi
60 ;;
61
62 -h|--h|--he|--hel|--help)
63 echo "\
64 $0 [OPTION]... PROGRAM [ARGUMENT]...
65
66 Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
67 error status if there is no known handling for PROGRAM.
68
69 Options:
70 -h, --help display this help and exit
71 -v, --version output version information and exit
72 --run try to run the given command, and emulate it if it fails
73
74 Supported PROGRAM values:
75 aclocal touch file 'aclocal.m4'
76 autoconf touch file 'configure'
77 autoheader touch file 'config.h.in'
78 autom4te touch the output file, or create a stub one
79 automake touch all 'Makefile.in' files
80 bison create 'y.tab.[ch]', if possible, from existing .[ch]
81 flex create 'lex.yy.c', if possible, from existing .c
82 help2man touch the output file
83 lex create 'lex.yy.c', if possible, from existing .c
84 makeinfo touch the output file
85 yacc create 'y.tab.[ch]', if possible, from existing .[ch]
86
87 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
88 'g' are ignored when checking the name.
89
90 Send bug reports to <bug-automake@gnu.org>."
91 exit $?
92 ;;
93
94 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
95 echo "missing $scriptversion (GNU Automake)"
96 exit $?
97 ;;
98
99 -*)
100 echo 1>&2 "$0: Unknown '$1' option"
101 echo 1>&2 "Try '$0 --help' for more information"
102 exit 1
103 ;;
104
105 esac
106
107 # normalize program name to check for.
108 program=`echo "$1" | sed '
109 s/^gnu-//; t
110 s/^gnu//; t
111 s/^g//; t'`
112
113 # Now exit if we have it, but it failed. Also exit now if we
114 # don't have it and --version was passed (most likely to detect
115 # the program). This is about non-GNU programs, so use $1 not
116 # $program.
117 case $1 in
118 lex*|yacc*)
119 # Not GNU programs, they don't have --version.
120 ;;
121
122 *)
123 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
124 # We have it, but it failed.
125 exit 1
126 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
127 # Could not run --version or --help. This is probably someone
128 # running '$TOOL --version' or '$TOOL --help' to check whether
129 # $TOOL exists and not knowing $TOOL uses missing.
130 exit 1
131 fi
132 ;;
133 esac
134
135 # If it does not exist, or fails to run (possibly an outdated version),
136 # try to emulate it.
137 case $program in
138 aclocal*)
139 echo 1>&2 "\
140 WARNING: '$1' is $msg. You should only need it if
141 you modified 'acinclude.m4' or '${configure_ac}'. You might want
142 to install the Automake and Perl packages. Grab them from
143 any GNU archive site."
144 touch aclocal.m4
145 ;;
146
147 autoconf*)
148 echo 1>&2 "\
149 WARNING: '$1' is $msg. You should only need it if
150 you modified '${configure_ac}'. You might want to install the
151 Autoconf and GNU m4 packages. Grab them from any GNU
152 archive site."
153 touch configure
154 ;;
155
156 autoheader*)
157 echo 1>&2 "\
158 WARNING: '$1' is $msg. You should only need it if
159 you modified 'acconfig.h' or '${configure_ac}'. You might want
160 to install the Autoconf and GNU m4 packages. Grab them
161 from any GNU archive site."
162 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
163 test -z "$files" && files="config.h"
164 touch_files=
165 for f in $files; do
166 case $f in
167 *:*) touch_files="$touch_files "`echo "$f" |
168 sed -e 's/^[^:]*://' -e 's/:.*//'`;;
169 *) touch_files="$touch_files $f.in";;
170 esac
171 done
172 touch $touch_files
173 ;;
174
175 automake*)
176 echo 1>&2 "\
177 WARNING: '$1' is $msg. You should only need it if
178 you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
179 You might want to install the Automake and Perl packages.
180 Grab them from any GNU archive site."
181 find . -type f -name Makefile.am -print |
182 sed 's/\.am$/.in/' |
183 while read f; do touch "$f"; done
184 ;;
185
186 autom4te*)
187 echo 1>&2 "\
188 WARNING: '$1' is needed, but is $msg.
189 You might have modified some files without having the
190 proper tools for further handling them.
191 You can get '$1' as part of Autoconf from any GNU
192 archive site."
193
194 file=`echo "$*" | sed -n "$sed_output"`
195 test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
196 if test -f "$file"; then
197 touch $file
198 else
199 test -z "$file" || exec >$file
200 echo "#! /bin/sh"
201 echo "# Created by GNU Automake missing as a replacement of"
202 echo "# $ $@"
203 echo "exit 0"
204 chmod +x $file
205 exit 1
206 fi
207 ;;
208
209 bison*|yacc*)
210 echo 1>&2 "\
211 WARNING: '$1' $msg. You should only need it if
212 you modified a '.y' file. You may need the Bison package
213 in order for those modifications to take effect. You can get
214 Bison from any GNU archive site."
215 rm -f y.tab.c y.tab.h
216 if test $# -ne 1; then
217 eval LASTARG=\${$#}
218 case $LASTARG in
219 *.y)
220 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
221 if test -f "$SRCFILE"; then
222 cp "$SRCFILE" y.tab.c
223 fi
224 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
225 if test -f "$SRCFILE"; then
226 cp "$SRCFILE" y.tab.h
227 fi
228 ;;
229 esac
230 fi
231 if test ! -f y.tab.h; then
232 echo >y.tab.h
233 fi
234 if test ! -f y.tab.c; then
235 echo 'main() { return 0; }' >y.tab.c
236 fi
237 ;;
238
239 lex*|flex*)
240 echo 1>&2 "\
241 WARNING: '$1' is $msg. You should only need it if
242 you modified a '.l' file. You may need the Flex package
243 in order for those modifications to take effect. You can get
244 Flex from any GNU archive site."
245 rm -f lex.yy.c
246 if test $# -ne 1; then
247 eval LASTARG=\${$#}
248 case $LASTARG in
249 *.l)
250 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
251 if test -f "$SRCFILE"; then
252 cp "$SRCFILE" lex.yy.c
253 fi
254 ;;
255 esac
256 fi
257 if test ! -f lex.yy.c; then
258 echo 'main() { return 0; }' >lex.yy.c
259 fi
260 ;;
261
262 help2man*)
263 echo 1>&2 "\
264 WARNING: '$1' is $msg. You should only need it if
265 you modified a dependency of a manual page. You may need the
266 Help2man package in order for those modifications to take
267 effect. You can get Help2man from any GNU archive site."
268
269 file=`echo "$*" | sed -n "$sed_output"`
270 test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
271 if test -f "$file"; then
272 touch $file
273 else
274 test -z "$file" || exec >$file
275 echo ".ab help2man is required to generate this page"
276 exit $?
277 fi
278 ;;
279
280 makeinfo*)
281 echo 1>&2 "\
282 WARNING: '$1' is $msg. You should only need it if
283 you modified a '.texi' or '.texinfo' file, or any other file
284 indirectly affecting the aspect of the manual. The spurious
285 call might also be the consequence of using a buggy 'make' (AIX,
286 DU, IRIX). You might want to install the Texinfo package or
287 the GNU make package. Grab either from any GNU archive site."
288 # The file to touch is that specified with -o ...
289 file=`echo "$*" | sed -n "$sed_output"`
290 test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
291 if test -z "$file"; then
292 # ... or it is the one specified with @setfilename ...
293 infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
294 file=`sed -n '
295 /^@setfilename/{
296 s/.* \([^ ]*\) *$/\1/
297 p
298 q
299 }' $infile`
300 # ... or it is derived from the source name (dir/f.texi becomes f.info)
301 test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
302 fi
303 # If the file does not exist, the user really needs makeinfo;
304 # let's fail without touching anything.
305 test -f $file || exit 1
306 touch $file
307 ;;
308
309 *)
310 echo 1>&2 "\
311 WARNING: '$1' is needed, and is $msg.
312 You might have modified some files without having the
313 proper tools for further handling them. Check the 'README' file,
314 it often tells you about the needed prerequisites for installing
315 this package. You may also peek at any GNU archive site, in case
316 some other package would contain this missing '$1' program."
317 exit 1
318 ;;
319 esac
320
321 exit 0
322
323 # Local variables:
324 # eval: (add-hook 'write-file-hooks 'time-stamp)
325 # time-stamp-start: "scriptversion="
326 # time-stamp-format: "%:y-%02m-%02d.%02H"
327 # time-stamp-time-zone: "UTC"
328 # time-stamp-end: "; # UTC"
329 # End:
0 eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}'
1 & eval 'exec perl -wST "$0" $argv:q'
2 if 0;
3 # Detect instances of "if (p) free (p);".
4 # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
5
6 my $VERSION = '2011-04-20 13:43'; # UTC
7 # The definition above must lie within the first 8 lines in order
8 # for the Emacs time-stamp write hook (at end) to update it.
9 # If you change this file with Emacs, please let the write hook
10 # do its job. Otherwise, update this string manually.
11
12 # Copyright (C) 2008-2011 Free Software Foundation, Inc.
13
14 # This program is free software: you can redistribute it and/or modify
15 # it under the terms of the GNU General Public License as published by
16 # the Free Software Foundation, either version 3 of the License, or
17 # (at your option) any later version.
18
19 # This program is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 # GNU General Public License for more details.
23
24 # You should have received a copy of the GNU General Public License
25 # along with this program. If not, see <http://www.gnu.org/licenses/>.
26
27 # Written by Jim Meyering
28
29 use strict;
30 use warnings;
31 use Getopt::Long;
32
33 (my $ME = $0) =~ s|.*/||;
34
35 # use File::Coda; # http://meyering.net/code/Coda/
36 END {
37 defined fileno STDOUT or return;
38 close STDOUT and return;
39 warn "$ME: failed to close standard output: $!\n";
40 $? ||= 1;
41 }
42
43 sub usage ($)
44 {
45 my ($exit_code) = @_;
46 my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
47 if ($exit_code != 0)
48 {
49 print $STREAM "Try `$ME --help' for more information.\n";
50 }
51 else
52 {
53 print $STREAM <<EOF;
54 Usage: $ME [OPTIONS] FILE...
55
56 Detect any instance in FILE of a useless "if" test before a free call, e.g.,
57 "if (p) free (p);". Any such test may be safely removed without affecting
58 the semantics of the C code in FILE. Use --name=FOO --name=BAR to also
59 detect free-like functions named FOO and BAR.
60
61 OPTIONS:
62
63 --list print only the name of each matching FILE (\\0-terminated)
64 --name=N add name N to the list of \`free\'-like functions to detect;
65 may be repeated
66
67 --help display this help and exit
68 --version output version information and exit
69
70 Exit status:
71
72 0 one or more matches
73 1 no match
74 2 an error
75
76 EXAMPLE:
77
78 For example, this command prints all removable "if" tests before "free"
79 and "kfree" calls in the linux kernel sources:
80
81 git ls-files -z |xargs -0 $ME --name=kfree
82
83 EOF
84 }
85 exit $exit_code;
86 }
87
88 sub is_NULL ($)
89 {
90 my ($expr) = @_;
91 return ($expr eq 'NULL' || $expr eq '0');
92 }
93
94 {
95 sub EXIT_MATCH {0}
96 sub EXIT_NO_MATCH {1}
97 sub EXIT_ERROR {2}
98 my $err = EXIT_NO_MATCH;
99
100 my $list;
101 my @name = qw(free);
102 GetOptions
103 (
104 help => sub { usage 0 },
105 version => sub { print "$ME version $VERSION\n"; exit },
106 list => \$list,
107 'name=s@' => \@name,
108 ) or usage 1;
109
110 # Make sure we have the right number of non-option arguments.
111 # Always tell the user why we fail.
112 @ARGV < 1
113 and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR;
114
115 my $or = join '|', @name;
116 my $regexp = qr/(?:$or)/;
117
118 # Set the input record separator.
119 # Note: this makes it impractical to print line numbers.
120 $/ = '"';
121
122 my $found_match = 0;
123 FILE:
124 foreach my $file (@ARGV)
125 {
126 open FH, '<', $file
127 or (warn "$ME: can't open `$file' for reading: $!\n"),
128 $err = EXIT_ERROR, next;
129 while (defined (my $line = <FH>))
130 {
131 while ($line =~
132 /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\)
133 # 1 2 3
134 (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;|
135 \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg)
136 {
137 my $all = $1;
138 my ($lhs, $rhs) = ($2, $3);
139 my ($free_opnd, $braced_free_opnd) = ($4, $5);
140 my $non_NULL;
141 if (!defined $rhs) { $non_NULL = $lhs }
142 elsif (is_NULL $rhs) { $non_NULL = $lhs }
143 elsif (is_NULL $lhs) { $non_NULL = $rhs }
144 else { next }
145
146 # Compare the non-NULL part of the "if" expression and the
147 # free'd expression, without regard to white space.
148 $non_NULL =~ tr/ \t//d;
149 my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd;
150 $e2 =~ tr/ \t//d;
151 if ($non_NULL eq $e2)
152 {
153 $found_match = 1;
154 $list
155 and (print "$file\0"), next FILE;
156 print "$file: $all\n";
157 }
158 }
159 }
160 }
161 continue
162 {
163 close FH;
164 }
165
166 $found_match && $err == EXIT_NO_MATCH
167 and $err = EXIT_MATCH;
168
169 exit $err;
170 }
171
172 my $foo = <<'EOF';
173 # The above is to *find* them.
174 # This adjusts them, removing the unnecessary "if (p)" part.
175
176 # FIXME: do something like this as an option (doesn't do braces):
177 free=xfree
178 git grep -l -z "$free *(" \
179 | xargs -0 useless-if-before-free -l --name="$free" \
180 | xargs -0 perl -0x3b -pi -e \
181 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s'
182
183 # Use the following to remove redundant uses of kfree inside braces.
184 # Note that -0777 puts perl in slurp-whole-file mode;
185 # but we have plenty of memory, these days...
186 free=kfree
187 git grep -l -z "$free *(" \
188 | xargs -0 useless-if-before-free -l --name="$free" \
189 | xargs -0 perl -0777 -pi -e \
190 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms'
191
192 Be careful that the result of the above transformation is valid.
193 If the matched string is followed by "else", then obviously, it won't be.
194
195 When modifying files, refuse to process anything other than a regular file.
196 EOF
197
198 ## Local Variables:
199 ## mode: perl
200 ## indent-tabs-mode: nil
201 ## eval: (add-hook 'write-file-hooks 'time-stamp)
202 ## time-stamp-start: "my $VERSION = '"
203 ## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
204 ## time-stamp-time-zone: "UTC"
205 ## time-stamp-end: "'; # UTC"
206 ## End:
0 #!/bin/sh
1 # List version-controlled file names.
2
3 # Print a version string.
4 scriptversion=2011-05-16.22; # UTC
5
6 # Copyright (C) 2006-2011 Free Software Foundation, Inc.
7
8 # This program is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 3 of the License, or
11 # (at your option) any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21
22 # List the specified version-controlled files.
23 # With no argument, list them all. With a single DIRECTORY argument,
24 # list the version-controlled files in that directory.
25
26 # If there's an argument, it must be a single, "."-relative directory name.
27 # cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
28
29 postprocess=
30 case $1 in
31 --help) cat <<EOF
32 Usage: $0 [-C SRCDIR] [DIR...]
33
34 Output a list of version-controlled files in DIR (default .), relative to
35 SRCDIR (default .). SRCDIR must be the top directory of a checkout.
36
37 Options:
38 --help print this help, then exit
39 --version print version number, then exit
40 -C SRCDIR change directory to SRCDIR before generating list
41
42 Report bugs and patches to <bug-gnulib@gnu.org>.
43 EOF
44 exit ;;
45
46 --version)
47 year=`echo "$scriptversion" | sed 's/[^0-9].*//'`
48 cat <<EOF
49 vc-list-files $scriptversion
50 Copyright (C) $year Free Software Foundation, Inc,
51 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
52 This is free software: you are free to change and redistribute it.
53 There is NO WARRANTY, to the extent permitted by law.
54 EOF
55 exit ;;
56
57 -C)
58 test "$2" = . || postprocess="| sed 's|^|$2/|'"
59 cd "$2" || exit 1
60 shift; shift ;;
61 esac
62
63 test $# = 0 && set .
64
65 for dir
66 do
67 if test -d .git; then
68 test "x$dir" = x. \
69 && dir= sed_esc= \
70 || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; }
71 # Ignore git symlinks - either they point into the tree, in which case
72 # we don't need to visit the target twice, or they point somewhere
73 # else (often into a submodule), in which case the content does not
74 # belong to this package.
75 eval exec git ls-tree -r 'HEAD:"$dir"' \
76 \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess
77 elif test -d .hg; then
78 eval exec hg locate '"$dir/*"' $postprocess
79 elif test -d .bzr; then
80 test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
81 eval exec bzr ls -R --versioned '"$dir"' $postprocess
82 elif test -d CVS; then
83 test "$postprocess" = '' && postprocess="| sed 's|^\./||'"
84 if test -x build-aux/cvsu; then
85 eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess
86 elif (cvsu --help) >/dev/null 2>&1; then
87 eval cvsu --find --types=AFGM '"$dir"' $postprocess
88 else
89 eval awk -F/ \''{ \
90 if (!$1 && $3 !~ /^-/) { \
91 f=FILENAME; \
92 if (f ~ /CVS\/Entries$/) \
93 f = substr(f, 1, length(f)-11); \
94 print f $2; \
95 }}'\'' \
96 `find "$dir" -name Entries -print` /dev/null' $postprocess
97 fi
98 elif test -d .svn; then
99 eval exec svn list -R '"$dir"' $postprocess
100 else
101 echo "$0: Failed to determine type of version control used in `pwd`" 1>&2
102 exit 1
103 fi
104 done
105
106 # Local variables:
107 # eval: (add-hook 'write-file-hooks 'time-stamp)
108 # time-stamp-start: "scriptversion="
109 # time-stamp-format: "%:y-%02m-%02d.%02H"
110 # time-stamp-time-zone: "UTC"
111 # time-stamp-end: "; # UTC"
112 # End:
0 # Customize Makefile.maint. -*- makefile -*-
1 # Copyright (C) 2008-2011 Red Hat, Inc.
2 # Copyright (C) 2003-2008 Free Software Foundation, Inc.
3
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17 # Tests not to run as part of "make distcheck".
18 local-checks-to-skip = \
19 changelog-check \
20 check-AUTHORS \
21 makefile-check \
22 makefile_path_separator_check \
23 patch-check \
24 sc_GPL_version \
25 sc_always_defined_macros \
26 sc_cast_of_alloca_return_value \
27 sc_cross_check_PATH_usage_in_tests \
28 sc_dd_max_sym_length \
29 sc_error_exit_success \
30 sc_file_system \
31 sc_immutable_NEWS \
32 sc_makefile_path_separator_check \
33 sc_obsolete_symbols \
34 sc_prohibit_always_true_header_tests \
35 sc_prohibit_S_IS_definition \
36 sc_prohibit_atoi_atof \
37 sc_prohibit_hash_without_use \
38 sc_prohibit_jm_in_m4 \
39 sc_prohibit_quote_without_use \
40 sc_prohibit_quotearg_without_use \
41 sc_prohibit_stat_st_blocks \
42 sc_root_tests \
43 sc_space_tab \
44 sc_sun_os_names \
45 sc_system_h_headers \
46 sc_texinfo_acronym \
47 sc_tight_scope \
48 sc_two_space_separator_in_usage \
49 sc_error_message_uppercase \
50 sc_program_name \
51 sc_require_test_exit_idiom \
52 sc_makefile_check \
53 sc_useless_cpp_parens
54
55 # Files that should never cause syntax check failures.
56 VC_LIST_ALWAYS_EXCLUDE_REGEX = \
57 (^HACKING|\.po|maint.mk)$$
58
59 # Functions like free() that are no-ops on NULL arguments.
60 useless_free_options = \
61 --name=g_free \
62 --name=xmlBufferFree \
63 --name=xmlFree \
64 --name=xmlFreeDoc \
65 --name=xmlXPathFreeContext \
66 --name=xmlFreeParserContext \
67 --name=xmlXPathFreeObject
68
69 # Ensure that no C source file, docs, or rng schema uses TABs for
70 # indentation. Also match *.h.in files, to get libvirt.h.in. Exclude
71 # files in gnulib, since they're imported.
72 space_indent_files=(\.(rng|s?[ch](\.in)?|html.in|py)|(daemon|tools)/.*\.in)
73 sc_TAB_in_indentation:
74 @prohibit='^ * ' \
75 in_vc_files='$(space_indent_files)$$' \
76 halt='indent with space, not TAB, in C, sh, html, py, and RNG schemas' \
77 $(_sc_search_regexp)
78
79 # G_GNUC_UNUSED should only be applied in implementations, not
80 # header declarations
81 sc_avoid_attribute_unused_in_header:
82 @prohibit='^[^#]*G_GNUC_UNUSED([^:]|$$)' \
83 in_vc_files='\.h$$' \
84 halt='use G_GNUC_UNUSED in .c rather than .h files' \
85 $(_sc_search_regexp)
86
87 # Enforce recommended preprocessor indentation style.
88 sc_preprocessor_indentation:
89 @if cppi --version >/dev/null 2>&1; then \
90 $(VC_LIST_EXCEPT) | grep '\.[ch]$$' | xargs cppi -a -c \
91 || { echo '$(ME): incorrect preprocessor indentation' 1>&2; \
92 exit 1; }; \
93 else \
94 echo '$(ME): skipping test $@: cppi not installed' 1>&2; \
95 fi
96
97 sc_copyright_format:
98 @require='Copyright .*Red 'Hat', Inc\.' \
99 containing='Copyright .*Red 'Hat \
100 halt='Red Hat copyright is missing Inc.' \
101 $(_sc_search_regexp)
102 @prohibit='Copyright [^(].*Red 'Hat \
103 halt='consistently use (C) in Red Hat copyright' \
104 $(_sc_search_regexp)
105 @prohibit='\<Red''Hat\>' \
106 halt='spell Red Hat as two words' \
107 $(_sc_search_regexp)
108
109 # We don't use this feature of maint.mk.
110 prev_version_file = /dev/null
111
112 # Give credit where due:
113 # Ensure that each commit author email address (possibly mapped via
114 # git log's .mailmap) appears in our AUTHORS file.
115 sc_check_author_list:
116 @fail=0; \
117 for i in $$(git log --pretty=format:%aE%n|sort -u|grep -v '^$$'); do \
118 sanitized=$$(echo "$$i"|LC_ALL=C sed 's/\([^a-zA-Z0-9_@-]\)/\\\1/g'); \
119 grep -iq "<$$sanitized>" $(srcdir)/AUTHORS \
120 || { printf '%s\n' "$$i" >&2; fail=1; }; \
121 done; \
122 test $$fail = 1 \
123 && echo '$(ME): committer(s) not listed in AUTHORS' >&2; \
124 test $$fail = 0
125
126
127 exclude_file_name_regexp--sc_preprocessor_indentation = ^*/*.[ch]
128 exclude_file_name_regexp--sc_prohibit_strcmp = ^*/*.[ch]
129 exclude_file_name_regexp--sc_require_config_h = ^plugin/|src/gbinding\.c|src/windows-cmdline-wrapper.c
130 exclude_file_name_regexp--sc_require_config_h_first = ^plugin/|src/gbinding\.c|src/windows-cmdline-wrapper.c
131
132 exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = ^icons/
133 exclude_file_name_regexp--sc_trailing_blank = ^icons/
134
135 exclude_file_name_regexp--sc_bindtextdomain = src/windows-cmdline-wrapper.c
136 exclude_file_name_regexp--sc_prohibit_magic_number_exit = src/windows-cmdline-wrapper.c
+0
-143
compile less more
0 #! /bin/sh
1 # Wrapper for compilers which do not understand `-c -o'.
2
3 scriptversion=2009-10-06.20; # UTC
4
5 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
6 # Foundation, Inc.
7 # Written by Tom Tromey <tromey@cygnus.com>.
8 #
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2, or (at your option)
12 # any later version.
13 #
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
26
27 # This file is maintained in Automake, please report
28 # bugs to <bug-automake@gnu.org> or send patches to
29 # <automake-patches@gnu.org>.
30
31 case $1 in
32 '')
33 echo "$0: No command. Try \`$0 --help' for more information." 1>&2
34 exit 1;
35 ;;
36 -h | --h*)
37 cat <<\EOF
38 Usage: compile [--help] [--version] PROGRAM [ARGS]
39
40 Wrapper for compilers which do not understand `-c -o'.
41 Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
42 arguments, and rename the output as expected.
43
44 If you are trying to build a whole package this is not the
45 right script to run: please start by reading the file `INSTALL'.
46
47 Report bugs to <bug-automake@gnu.org>.
48 EOF
49 exit $?
50 ;;
51 -v | --v*)
52 echo "compile $scriptversion"
53 exit $?
54 ;;
55 esac
56
57 ofile=
58 cfile=
59 eat=
60
61 for arg
62 do
63 if test -n "$eat"; then
64 eat=
65 else
66 case $1 in
67 -o)
68 # configure might choose to run compile as `compile cc -o foo foo.c'.
69 # So we strip `-o arg' only if arg is an object.
70 eat=1
71 case $2 in
72 *.o | *.obj)
73 ofile=$2
74 ;;
75 *)
76 set x "$@" -o "$2"
77 shift
78 ;;
79 esac
80 ;;
81 *.c)
82 cfile=$1
83 set x "$@" "$1"
84 shift
85 ;;
86 *)
87 set x "$@" "$1"
88 shift
89 ;;
90 esac
91 fi
92 shift
93 done
94
95 if test -z "$ofile" || test -z "$cfile"; then
96 # If no `-o' option was seen then we might have been invoked from a
97 # pattern rule where we don't need one. That is ok -- this is a
98 # normal compilation that the losing compiler can handle. If no
99 # `.c' file was seen then we are probably linking. That is also
100 # ok.
101 exec "$@"
102 fi
103
104 # Name of file we expect compiler to create.
105 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
106
107 # Create the lock directory.
108 # Note: use `[/\\:.-]' here to ensure that we don't use the same name
109 # that we are using for the .o file. Also, base the name on the expected
110 # object file name, since that is what matters with a parallel build.
111 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
112 while true; do
113 if mkdir "$lockdir" >/dev/null 2>&1; then
114 break
115 fi
116 sleep 1
117 done
118 # FIXME: race condition here if user kills between mkdir and trap.
119 trap "rmdir '$lockdir'; exit 1" 1 2 15
120
121 # Run the compile.
122 "$@"
123 ret=$?
124
125 if test -f "$cofile"; then
126 test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
127 elif test -f "${cofile}bj"; then
128 test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
129 fi
130
131 rmdir "$lockdir"
132 exit $ret
133
134 # Local Variables:
135 # mode: shell-script
136 # sh-indentation: 2
137 # eval: (add-hook 'write-file-hooks 'time-stamp)
138 # time-stamp-start: "scriptversion="
139 # time-stamp-format: "%:y-%02m-%02d.%02H"
140 # time-stamp-time-zone: "UTC"
141 # time-stamp-end: "; # UTC"
142 # End:
+0
-1501
config.guess less more
0 #! /bin/sh
1 # Attempt to guess a canonical system name.
2 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
4 # Free Software Foundation, Inc.
5
6 timestamp='2009-11-20'
7
8 # This file is free software; you can redistribute it and/or modify it
9 # under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful, but
14 # WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
21 # 02110-1301, USA.
22 #
23 # As a special exception to the GNU General Public License, if you
24 # distribute this file as part of a program that contains a
25 # configuration script generated by Autoconf, you may include it under
26 # the same distribution terms that you use for the rest of that program.
27
28
29 # Originally written by Per Bothner. Please send patches (context
30 # diff format) to <config-patches@gnu.org> and include a ChangeLog
31 # entry.
32 #
33 # This script attempts to guess a canonical system name similar to
34 # config.sub. If it succeeds, it prints the system name on stdout, and
35 # exits with 0. Otherwise, it exits with 1.
36 #
37 # You can get the latest version of this script from:
38 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
39
40 me=`echo "$0" | sed -e 's,.*/,,'`
41
42 usage="\
43 Usage: $0 [OPTION]
44
45 Output the configuration name of the system \`$me' is run on.
46
47 Operation modes:
48 -h, --help print this help, then exit
49 -t, --time-stamp print date of last modification, then exit
50 -v, --version print version number, then exit
51
52 Report bugs and patches to <config-patches@gnu.org>."
53
54 version="\
55 GNU config.guess ($timestamp)
56
57 Originally written by Per Bothner.
58 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
59 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
60
61 This is free software; see the source for copying conditions. There is NO
62 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
63
64 help="
65 Try \`$me --help' for more information."
66
67 # Parse command line
68 while test $# -gt 0 ; do
69 case $1 in
70 --time-stamp | --time* | -t )
71 echo "$timestamp" ; exit ;;
72 --version | -v )
73 echo "$version" ; exit ;;
74 --help | --h* | -h )
75 echo "$usage"; exit ;;
76 -- ) # Stop option processing
77 shift; break ;;
78 - ) # Use stdin as input.
79 break ;;
80 -* )
81 echo "$me: invalid option $1$help" >&2
82 exit 1 ;;
83 * )
84 break ;;
85 esac
86 done
87
88 if test $# != 0; then
89 echo "$me: too many arguments$help" >&2
90 exit 1
91 fi
92
93 trap 'exit 1' 1 2 15
94
95 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
96 # compiler to aid in system detection is discouraged as it requires
97 # temporary files to be created and, as you can see below, it is a
98 # headache to deal with in a portable fashion.
99
100 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
101 # use `HOST_CC' if defined, but it is deprecated.
102
103 # Portable tmp directory creation inspired by the Autoconf team.
104
105 set_cc_for_build='
106 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
107 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
108 : ${TMPDIR=/tmp} ;
109 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
110 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
111 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
112 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
113 dummy=$tmp/dummy ;
114 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
115 case $CC_FOR_BUILD,$HOST_CC,$CC in
116 ,,) echo "int x;" > $dummy.c ;
117 for c in cc gcc c89 c99 ; do
118 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
119 CC_FOR_BUILD="$c"; break ;
120 fi ;
121 done ;
122 if test x"$CC_FOR_BUILD" = x ; then
123 CC_FOR_BUILD=no_compiler_found ;
124 fi
125 ;;
126 ,,*) CC_FOR_BUILD=$CC ;;
127 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
128 esac ; set_cc_for_build= ;'
129
130 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
131 # (ghazi@noc.rutgers.edu 1994-08-24)
132 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
133 PATH=$PATH:/.attbin ; export PATH
134 fi
135
136 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
137 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
138 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
139 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
140
141 # Note: order is significant - the case branches are not exclusive.
142
143 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
144 *:NetBSD:*:*)
145 # NetBSD (nbsd) targets should (where applicable) match one or
146 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
147 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
148 # switched to ELF, *-*-netbsd* would select the old
149 # object file format. This provides both forward
150 # compatibility and a consistent mechanism for selecting the
151 # object file format.
152 #
153 # Note: NetBSD doesn't particularly care about the vendor
154 # portion of the name. We always set it to "unknown".
155 sysctl="sysctl -n hw.machine_arch"
156 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
157 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
158 case "${UNAME_MACHINE_ARCH}" in
159 armeb) machine=armeb-unknown ;;
160 arm*) machine=arm-unknown ;;
161 sh3el) machine=shl-unknown ;;
162 sh3eb) machine=sh-unknown ;;
163 sh5el) machine=sh5le-unknown ;;
164 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
165 esac
166 # The Operating System including object format, if it has switched
167 # to ELF recently, or will in the future.
168 case "${UNAME_MACHINE_ARCH}" in
169 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
170 eval $set_cc_for_build
171 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
172 | grep -q __ELF__
173 then
174 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
175 # Return netbsd for either. FIX?
176 os=netbsd
177 else
178 os=netbsdelf
179 fi
180 ;;
181 *)
182 os=netbsd
183 ;;
184 esac
185 # The OS release
186 # Debian GNU/NetBSD machines have a different userland, and
187 # thus, need a distinct triplet. However, they do not need
188 # kernel version information, so it can be replaced with a
189 # suitable tag, in the style of linux-gnu.
190 case "${UNAME_VERSION}" in
191 Debian*)
192 release='-gnu'
193 ;;
194 *)
195 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
196 ;;
197 esac
198 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
199 # contains redundant information, the shorter form:
200 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
201 echo "${machine}-${os}${release}"
202 exit ;;
203 *:OpenBSD:*:*)
204 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
205 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
206 exit ;;
207 *:ekkoBSD:*:*)
208 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
209 exit ;;
210 *:SolidBSD:*:*)
211 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
212 exit ;;
213 macppc:MirBSD:*:*)
214 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
215 exit ;;
216 *:MirBSD:*:*)
217 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
218 exit ;;
219 alpha:OSF1:*:*)
220 case $UNAME_RELEASE in
221 *4.0)
222 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
223 ;;
224 *5.*)
225 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
226 ;;
227 esac
228 # According to Compaq, /usr/sbin/psrinfo has been available on
229 # OSF/1 and Tru64 systems produced since 1995. I hope that
230 # covers most systems running today. This code pipes the CPU
231 # types through head -n 1, so we only detect the type of CPU 0.
232 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
233 case "$ALPHA_CPU_TYPE" in
234 "EV4 (21064)")
235 UNAME_MACHINE="alpha" ;;
236 "EV4.5 (21064)")
237 UNAME_MACHINE="alpha" ;;
238 "LCA4 (21066/21068)")
239 UNAME_MACHINE="alpha" ;;
240 "EV5 (21164)")
241 UNAME_MACHINE="alphaev5" ;;
242 "EV5.6 (21164A)")
243 UNAME_MACHINE="alphaev56" ;;
244 "EV5.6 (21164PC)")
245 UNAME_MACHINE="alphapca56" ;;
246 "EV5.7 (21164PC)")
247 UNAME_MACHINE="alphapca57" ;;
248 "EV6 (21264)")
249 UNAME_MACHINE="alphaev6" ;;
250 "EV6.7 (21264A)")
251 UNAME_MACHINE="alphaev67" ;;
252 "EV6.8CB (21264C)")
253 UNAME_MACHINE="alphaev68" ;;
254 "EV6.8AL (21264B)")
255 UNAME_MACHINE="alphaev68" ;;
256 "EV6.8CX (21264D)")
257 UNAME_MACHINE="alphaev68" ;;
258 "EV6.9A (21264/EV69A)")
259 UNAME_MACHINE="alphaev69" ;;
260 "EV7 (21364)")
261 UNAME_MACHINE="alphaev7" ;;
262 "EV7.9 (21364A)")
263 UNAME_MACHINE="alphaev79" ;;
264 esac
265 # A Pn.n version is a patched version.
266 # A Vn.n version is a released version.
267 # A Tn.n version is a released field test version.
268 # A Xn.n version is an unreleased experimental baselevel.
269 # 1.2 uses "1.2" for uname -r.
270 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
271 exit ;;
272 Alpha\ *:Windows_NT*:*)
273 # How do we know it's Interix rather than the generic POSIX subsystem?
274 # Should we change UNAME_MACHINE based on the output of uname instead
275 # of the specific Alpha model?
276 echo alpha-pc-interix
277 exit ;;
278 21064:Windows_NT:50:3)
279 echo alpha-dec-winnt3.5
280 exit ;;
281 Amiga*:UNIX_System_V:4.0:*)
282 echo m68k-unknown-sysv4
283 exit ;;
284 *:[Aa]miga[Oo][Ss]:*:*)
285 echo ${UNAME_MACHINE}-unknown-amigaos
286 exit ;;
287 *:[Mm]orph[Oo][Ss]:*:*)
288 echo ${UNAME_MACHINE}-unknown-morphos
289 exit ;;
290 *:OS/390:*:*)
291 echo i370-ibm-openedition
292 exit ;;
293 *:z/VM:*:*)
294 echo s390-ibm-zvmoe
295 exit ;;
296 *:OS400:*:*)
297 echo powerpc-ibm-os400
298 exit ;;
299 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
300 echo arm-acorn-riscix${UNAME_RELEASE}
301 exit ;;
302 arm:riscos:*:*|arm:RISCOS:*:*)
303 echo arm-unknown-riscos
304 exit ;;
305 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
306 echo hppa1.1-hitachi-hiuxmpp
307 exit ;;
308 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
309 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
310 if test "`(/bin/universe) 2>/dev/null`" = att ; then
311 echo pyramid-pyramid-sysv3
312 else
313 echo pyramid-pyramid-bsd
314 fi
315 exit ;;
316 NILE*:*:*:dcosx)
317 echo pyramid-pyramid-svr4
318 exit ;;
319 DRS?6000:unix:4.0:6*)
320 echo sparc-icl-nx6
321 exit ;;
322 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
323 case `/usr/bin/uname -p` in
324 sparc) echo sparc-icl-nx7; exit ;;
325 esac ;;
326 s390x:SunOS:*:*)
327 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
328 exit ;;
329 sun4H:SunOS:5.*:*)
330 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
331 exit ;;
332 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
333 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
334 exit ;;
335 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
336 echo i386-pc-auroraux${UNAME_RELEASE}
337 exit ;;
338 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
339 eval $set_cc_for_build
340 SUN_ARCH="i386"
341 # If there is a compiler, see if it is configured for 64-bit objects.
342 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
343 # This test works for both compilers.
344 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
345 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
346 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
347 grep IS_64BIT_ARCH >/dev/null
348 then
349 SUN_ARCH="x86_64"
350 fi
351 fi
352 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
353 exit ;;
354 sun4*:SunOS:6*:*)
355 # According to config.sub, this is the proper way to canonicalize
356 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
357 # it's likely to be more like Solaris than SunOS4.
358 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
359 exit ;;
360 sun4*:SunOS:*:*)
361 case "`/usr/bin/arch -k`" in
362 Series*|S4*)
363 UNAME_RELEASE=`uname -v`
364 ;;
365 esac
366 # Japanese Language versions have a version number like `4.1.3-JL'.
367 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
368 exit ;;
369 sun3*:SunOS:*:*)
370 echo m68k-sun-sunos${UNAME_RELEASE}
371 exit ;;
372 sun*:*:4.2BSD:*)
373 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
374 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
375 case "`/bin/arch`" in
376 sun3)
377 echo m68k-sun-sunos${UNAME_RELEASE}
378 ;;
379 sun4)
380 echo sparc-sun-sunos${UNAME_RELEASE}
381 ;;
382 esac
383 exit ;;
384 aushp:SunOS:*:*)
385 echo sparc-auspex-sunos${UNAME_RELEASE}
386 exit ;;
387 # The situation for MiNT is a little confusing. The machine name
388 # can be virtually everything (everything which is not
389 # "atarist" or "atariste" at least should have a processor
390 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
391 # to the lowercase version "mint" (or "freemint"). Finally
392 # the system name "TOS" denotes a system which is actually not
393 # MiNT. But MiNT is downward compatible to TOS, so this should
394 # be no problem.
395 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
396 echo m68k-atari-mint${UNAME_RELEASE}
397 exit ;;
398 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
399 echo m68k-atari-mint${UNAME_RELEASE}
400 exit ;;
401 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
402 echo m68k-atari-mint${UNAME_RELEASE}
403 exit ;;
404 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
405 echo m68k-milan-mint${UNAME_RELEASE}
406 exit ;;
407 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
408 echo m68k-hades-mint${UNAME_RELEASE}
409 exit ;;
410 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
411 echo m68k-unknown-mint${UNAME_RELEASE}
412 exit ;;
413 m68k:machten:*:*)
414 echo m68k-apple-machten${UNAME_RELEASE}
415 exit ;;
416 powerpc:machten:*:*)
417 echo powerpc-apple-machten${UNAME_RELEASE}
418 exit ;;
419 RISC*:Mach:*:*)
420 echo mips-dec-mach_bsd4.3
421 exit ;;
422 RISC*:ULTRIX:*:*)
423 echo mips-dec-ultrix${UNAME_RELEASE}
424 exit ;;
425 VAX*:ULTRIX*:*:*)
426 echo vax-dec-ultrix${UNAME_RELEASE}
427 exit ;;
428 2020:CLIX:*:* | 2430:CLIX:*:*)
429 echo clipper-intergraph-clix${UNAME_RELEASE}
430 exit ;;
431 mips:*:*:UMIPS | mips:*:*:RISCos)
432 eval $set_cc_for_build
433 sed 's/^ //' << EOF >$dummy.c
434 #ifdef __cplusplus
435 #include <stdio.h> /* for printf() prototype */
436 int main (int argc, char *argv[]) {
437 #else
438 int main (argc, argv) int argc; char *argv[]; {
439 #endif
440 #if defined (host_mips) && defined (MIPSEB)
441 #if defined (SYSTYPE_SYSV)
442 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
443 #endif
444 #if defined (SYSTYPE_SVR4)
445 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
446 #endif
447 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
448 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
449 #endif
450 #endif
451 exit (-1);
452 }
453 EOF
454 $CC_FOR_BUILD -o $dummy $dummy.c &&
455 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
456 SYSTEM_NAME=`$dummy $dummyarg` &&
457 { echo "$SYSTEM_NAME"; exit; }
458 echo mips-mips-riscos${UNAME_RELEASE}
459 exit ;;
460 Motorola:PowerMAX_OS:*:*)
461 echo powerpc-motorola-powermax
462 exit ;;
463 Motorola:*:4.3:PL8-*)
464 echo powerpc-harris-powermax
465 exit ;;
466 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
467 echo powerpc-harris-powermax
468 exit ;;
469 Night_Hawk:Power_UNIX:*:*)
470 echo powerpc-harris-powerunix
471 exit ;;
472 m88k:CX/UX:7*:*)
473 echo m88k-harris-cxux7
474 exit ;;
475 m88k:*:4*:R4*)
476 echo m88k-motorola-sysv4
477 exit ;;
478 m88k:*:3*:R3*)
479 echo m88k-motorola-sysv3
480 exit ;;
481 AViiON:dgux:*:*)
482 # DG/UX returns AViiON for all architectures
483 UNAME_PROCESSOR=`/usr/bin/uname -p`
484 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
485 then
486 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
487 [ ${TARGET_BINARY_INTERFACE}x = x ]
488 then
489 echo m88k-dg-dgux${UNAME_RELEASE}
490 else
491 echo m88k-dg-dguxbcs${UNAME_RELEASE}
492 fi
493 else
494 echo i586-dg-dgux${UNAME_RELEASE}
495 fi
496 exit ;;
497 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
498 echo m88k-dolphin-sysv3
499 exit ;;
500 M88*:*:R3*:*)
501 # Delta 88k system running SVR3
502 echo m88k-motorola-sysv3
503 exit ;;
504 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
505 echo m88k-tektronix-sysv3
506 exit ;;
507 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
508 echo m68k-tektronix-bsd
509 exit ;;
510 *:IRIX*:*:*)
511 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
512 exit ;;
513 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
514 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
515 exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
516 i*86:AIX:*:*)
517 echo i386-ibm-aix
518 exit ;;
519 ia64:AIX:*:*)
520 if [ -x /usr/bin/oslevel ] ; then
521 IBM_REV=`/usr/bin/oslevel`
522 else
523 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
524 fi
525 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
526 exit ;;
527 *:AIX:2:3)
528 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
529 eval $set_cc_for_build
530 sed 's/^ //' << EOF >$dummy.c
531 #include <sys/systemcfg.h>
532
533 main()
534 {
535 if (!__power_pc())
536 exit(1);
537 puts("powerpc-ibm-aix3.2.5");
538 exit(0);
539 }
540 EOF
541 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
542 then
543 echo "$SYSTEM_NAME"
544 else
545 echo rs6000-ibm-aix3.2.5
546 fi
547 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
548 echo rs6000-ibm-aix3.2.4
549 else
550 echo rs6000-ibm-aix3.2
551 fi
552 exit ;;
553 *:AIX:*:[456])
554 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
555 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
556 IBM_ARCH=rs6000
557 else
558 IBM_ARCH=powerpc
559 fi
560 if [ -x /usr/bin/oslevel ] ; then
561 IBM_REV=`/usr/bin/oslevel`
562 else
563 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
564 fi
565 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
566 exit ;;
567 *:AIX:*:*)
568 echo rs6000-ibm-aix
569 exit ;;
570 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
571 echo romp-ibm-bsd4.4
572 exit ;;
573 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
574 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
575 exit ;; # report: romp-ibm BSD 4.3
576 *:BOSX:*:*)
577 echo rs6000-bull-bosx
578 exit ;;
579 DPX/2?00:B.O.S.:*:*)
580 echo m68k-bull-sysv3
581 exit ;;
582 9000/[34]??:4.3bsd:1.*:*)
583 echo m68k-hp-bsd
584 exit ;;
585 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
586 echo m68k-hp-bsd4.4
587 exit ;;
588 9000/[34678]??:HP-UX:*:*)
589 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
590 case "${UNAME_MACHINE}" in
591 9000/31? ) HP_ARCH=m68000 ;;
592 9000/[34]?? ) HP_ARCH=m68k ;;
593 9000/[678][0-9][0-9])
594 if [ -x /usr/bin/getconf ]; then
595 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
596 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
597 case "${sc_cpu_version}" in
598 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
599 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
600 532) # CPU_PA_RISC2_0
601 case "${sc_kernel_bits}" in
602 32) HP_ARCH="hppa2.0n" ;;
603 64) HP_ARCH="hppa2.0w" ;;
604 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
605 esac ;;
606 esac
607 fi
608 if [ "${HP_ARCH}" = "" ]; then
609 eval $set_cc_for_build
610 sed 's/^ //' << EOF >$dummy.c
611
612 #define _HPUX_SOURCE
613 #include <stdlib.h>
614 #include <unistd.h>
615
616 int main ()
617 {
618 #if defined(_SC_KERNEL_BITS)
619 long bits = sysconf(_SC_KERNEL_BITS);
620 #endif
621 long cpu = sysconf (_SC_CPU_VERSION);
622
623 switch (cpu)
624 {
625 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
626 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
627 case CPU_PA_RISC2_0:
628 #if defined(_SC_KERNEL_BITS)
629 switch (bits)
630 {
631 case 64: puts ("hppa2.0w"); break;
632 case 32: puts ("hppa2.0n"); break;
633 default: puts ("hppa2.0"); break;
634 } break;
635 #else /* !defined(_SC_KERNEL_BITS) */
636 puts ("hppa2.0"); break;
637 #endif
638 default: puts ("hppa1.0"); break;
639 }
640 exit (0);
641 }
642 EOF
643 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
644 test -z "$HP_ARCH" && HP_ARCH=hppa
645 fi ;;
646 esac
647 if [ ${HP_ARCH} = "hppa2.0w" ]
648 then
649 eval $set_cc_for_build
650
651 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
652 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
653 # generating 64-bit code. GNU and HP use different nomenclature:
654 #
655 # $ CC_FOR_BUILD=cc ./config.guess
656 # => hppa2.0w-hp-hpux11.23
657 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
658 # => hppa64-hp-hpux11.23
659
660 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
661 grep -q __LP64__
662 then
663 HP_ARCH="hppa2.0w"
664 else
665 HP_ARCH="hppa64"
666 fi
667 fi
668 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
669 exit ;;
670 ia64:HP-UX:*:*)
671 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
672 echo ia64-hp-hpux${HPUX_REV}
673 exit ;;
674 3050*:HI-UX:*:*)
675 eval $set_cc_for_build
676 sed 's/^ //' << EOF >$dummy.c
677 #include <unistd.h>
678 int
679 main ()
680 {
681 long cpu = sysconf (_SC_CPU_VERSION);
682 /* The order matters, because CPU_IS_HP_MC68K erroneously returns
683 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
684 results, however. */
685 if (CPU_IS_PA_RISC (cpu))
686 {
687 switch (cpu)
688 {
689 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
690 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
691 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
692 default: puts ("hppa-hitachi-hiuxwe2"); break;
693 }
694 }
695 else if (CPU_IS_HP_MC68K (cpu))
696 puts ("m68k-hitachi-hiuxwe2");
697 else puts ("unknown-hitachi-hiuxwe2");
698 exit (0);
699 }
700 EOF
701 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
702 { echo "$SYSTEM_NAME"; exit; }
703 echo unknown-hitachi-hiuxwe2
704 exit ;;
705 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
706 echo hppa1.1-hp-bsd
707 exit ;;
708 9000/8??:4.3bsd:*:*)
709 echo hppa1.0-hp-bsd
710 exit ;;
711 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
712 echo hppa1.0-hp-mpeix
713 exit ;;
714 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
715 echo hppa1.1-hp-osf
716 exit ;;
717 hp8??:OSF1:*:*)
718 echo hppa1.0-hp-osf
719 exit ;;
720 i*86:OSF1:*:*)
721 if [ -x /usr/sbin/sysversion ] ; then
722 echo ${UNAME_MACHINE}-unknown-osf1mk
723 else
724 echo ${UNAME_MACHINE}-unknown-osf1
725 fi
726 exit ;;
727 parisc*:Lites*:*:*)
728 echo hppa1.1-hp-lites
729 exit ;;
730 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
731 echo c1-convex-bsd
732 exit ;;
733 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
734 if getsysinfo -f scalar_acc
735 then echo c32-convex-bsd
736 else echo c2-convex-bsd
737 fi
738 exit ;;
739 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
740 echo c34-convex-bsd
741 exit ;;
742 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
743 echo c38-convex-bsd
744 exit ;;
745 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
746 echo c4-convex-bsd
747 exit ;;
748 CRAY*Y-MP:*:*:*)
749 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
750 exit ;;
751 CRAY*[A-Z]90:*:*:*)
752 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
753 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
754 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
755 -e 's/\.[^.]*$/.X/'
756 exit ;;
757 CRAY*TS:*:*:*)
758 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
759 exit ;;
760 CRAY*T3E:*:*:*)
761 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
762 exit ;;
763 CRAY*SV1:*:*:*)
764 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
765 exit ;;
766 *:UNICOS/mp:*:*)
767 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
768 exit ;;
769 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
770 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
771 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
772 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
773 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
774 exit ;;
775 5000:UNIX_System_V:4.*:*)
776 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
777 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
778 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
779 exit ;;
780 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
781 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
782 exit ;;
783 sparc*:BSD/OS:*:*)
784 echo sparc-unknown-bsdi${UNAME_RELEASE}
785 exit ;;
786 *:BSD/OS:*:*)
787 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
788 exit ;;
789 *:FreeBSD:*:*)
790 case ${UNAME_MACHINE} in
791 pc98)
792 echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
793 amd64)
794 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
795 *)
796 echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
797 esac
798 exit ;;
799 i*:CYGWIN*:*)
800 echo ${UNAME_MACHINE}-pc-cygwin
801 exit ;;
802 *:MINGW*:*)
803 echo ${UNAME_MACHINE}-pc-mingw32
804 exit ;;
805 i*:windows32*:*)
806 # uname -m includes "-pc" on this system.
807 echo ${UNAME_MACHINE}-mingw32
808 exit ;;
809 i*:PW*:*)
810 echo ${UNAME_MACHINE}-pc-pw32
811 exit ;;
812 *:Interix*:*)
813 case ${UNAME_MACHINE} in
814 x86)
815 echo i586-pc-interix${UNAME_RELEASE}
816 exit ;;
817 authenticamd | genuineintel | EM64T)
818 echo x86_64-unknown-interix${UNAME_RELEASE}
819 exit ;;
820 IA64)
821 echo ia64-unknown-interix${UNAME_RELEASE}
822 exit ;;
823 esac ;;
824 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
825 echo i${UNAME_MACHINE}-pc-mks
826 exit ;;
827 8664:Windows_NT:*)
828 echo x86_64-pc-mks
829 exit ;;
830 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
831 # How do we know it's Interix rather than the generic POSIX subsystem?
832 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
833 # UNAME_MACHINE based on the output of uname instead of i386?
834 echo i586-pc-interix
835 exit ;;
836 i*:UWIN*:*)
837 echo ${UNAME_MACHINE}-pc-uwin
838 exit ;;
839 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
840 echo x86_64-unknown-cygwin
841 exit ;;
842 p*:CYGWIN*:*)
843 echo powerpcle-unknown-cygwin
844 exit ;;
845 prep*:SunOS:5.*:*)
846 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
847 exit ;;
848 *:GNU:*:*)
849 # the GNU system
850 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
851 exit ;;
852 *:GNU/*:*:*)
853 # other systems with GNU libc and userland
854 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
855 exit ;;
856 i*86:Minix:*:*)
857 echo ${UNAME_MACHINE}-pc-minix
858 exit ;;
859 alpha:Linux:*:*)
860 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
861 EV5) UNAME_MACHINE=alphaev5 ;;
862 EV56) UNAME_MACHINE=alphaev56 ;;
863 PCA56) UNAME_MACHINE=alphapca56 ;;
864 PCA57) UNAME_MACHINE=alphapca56 ;;
865 EV6) UNAME_MACHINE=alphaev6 ;;
866 EV67) UNAME_MACHINE=alphaev67 ;;
867 EV68*) UNAME_MACHINE=alphaev68 ;;
868 esac
869 objdump --private-headers /bin/sh | grep -q ld.so.1
870 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
871 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
872 exit ;;
873 arm*:Linux:*:*)
874 eval $set_cc_for_build
875 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
876 | grep -q __ARM_EABI__
877 then
878 echo ${UNAME_MACHINE}-unknown-linux-gnu
879 else
880 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
881 fi
882 exit ;;
883 avr32*:Linux:*:*)
884 echo ${UNAME_MACHINE}-unknown-linux-gnu
885 exit ;;
886 cris:Linux:*:*)
887 echo cris-axis-linux-gnu
888 exit ;;
889 crisv32:Linux:*:*)
890 echo crisv32-axis-linux-gnu
891 exit ;;
892 frv:Linux:*:*)
893 echo frv-unknown-linux-gnu
894 exit ;;
895 i*86:Linux:*:*)
896 LIBC=gnu
897 eval $set_cc_for_build
898 sed 's/^ //' << EOF >$dummy.c
899 #ifdef __dietlibc__
900 LIBC=dietlibc
901 #endif
902 EOF
903 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
904 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
905 exit ;;
906 ia64:Linux:*:*)
907 echo ${UNAME_MACHINE}-unknown-linux-gnu
908 exit ;;
909 m32r*:Linux:*:*)
910 echo ${UNAME_MACHINE}-unknown-linux-gnu
911 exit ;;
912 m68*:Linux:*:*)
913 echo ${UNAME_MACHINE}-unknown-linux-gnu
914 exit ;;
915 mips:Linux:*:* | mips64:Linux:*:*)
916 eval $set_cc_for_build
917 sed 's/^ //' << EOF >$dummy.c
918 #undef CPU
919 #undef ${UNAME_MACHINE}
920 #undef ${UNAME_MACHINE}el
921 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
922 CPU=${UNAME_MACHINE}el
923 #else
924 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
925 CPU=${UNAME_MACHINE}
926 #else
927 CPU=
928 #endif
929 #endif
930 EOF
931 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
932 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
933 ;;
934 or32:Linux:*:*)
935 echo or32-unknown-linux-gnu
936 exit ;;
937 padre:Linux:*:*)
938 echo sparc-unknown-linux-gnu
939 exit ;;
940 parisc64:Linux:*:* | hppa64:Linux:*:*)
941 echo hppa64-unknown-linux-gnu
942 exit ;;
943 parisc:Linux:*:* | hppa:Linux:*:*)
944 # Look for CPU level
945 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
946 PA7*) echo hppa1.1-unknown-linux-gnu ;;
947 PA8*) echo hppa2.0-unknown-linux-gnu ;;
948 *) echo hppa-unknown-linux-gnu ;;
949 esac
950 exit ;;
951 ppc64:Linux:*:*)
952 echo powerpc64-unknown-linux-gnu
953 exit ;;
954 ppc:Linux:*:*)
955 echo powerpc-unknown-linux-gnu
956 exit ;;
957 s390:Linux:*:* | s390x:Linux:*:*)
958 echo ${UNAME_MACHINE}-ibm-linux
959 exit ;;
960 sh64*:Linux:*:*)
961 echo ${UNAME_MACHINE}-unknown-linux-gnu
962 exit ;;
963 sh*:Linux:*:*)
964 echo ${UNAME_MACHINE}-unknown-linux-gnu
965 exit ;;
966 sparc:Linux:*:* | sparc64:Linux:*:*)
967 echo ${UNAME_MACHINE}-unknown-linux-gnu
968 exit ;;
969 vax:Linux:*:*)
970 echo ${UNAME_MACHINE}-dec-linux-gnu
971 exit ;;
972 x86_64:Linux:*:*)
973 echo x86_64-unknown-linux-gnu
974 exit ;;
975 xtensa*:Linux:*:*)
976 echo ${UNAME_MACHINE}-unknown-linux-gnu
977 exit ;;
978 i*86:DYNIX/ptx:4*:*)
979 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
980 # earlier versions are messed up and put the nodename in both
981 # sysname and nodename.
982 echo i386-sequent-sysv4
983 exit ;;
984 i*86:UNIX_SV:4.2MP:2.*)
985 # Unixware is an offshoot of SVR4, but it has its own version
986 # number series starting with 2...
987 # I am not positive that other SVR4 systems won't match this,
988 # I just have to hope. -- rms.
989 # Use sysv4.2uw... so that sysv4* matches it.
990 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
991 exit ;;
992 i*86:OS/2:*:*)
993 # If we were able to find `uname', then EMX Unix compatibility
994 # is probably installed.
995 echo ${UNAME_MACHINE}-pc-os2-emx
996 exit ;;
997 i*86:XTS-300:*:STOP)
998 echo ${UNAME_MACHINE}-unknown-stop
999 exit ;;
1000 i*86:atheos:*:*)
1001 echo ${UNAME_MACHINE}-unknown-atheos
1002 exit ;;
1003 i*86:syllable:*:*)
1004 echo ${UNAME_MACHINE}-pc-syllable
1005 exit ;;
1006 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1007 echo i386-unknown-lynxos${UNAME_RELEASE}
1008 exit ;;
1009 i*86:*DOS:*:*)
1010 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1011 exit ;;
1012 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1013 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1014 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1015 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1016 else
1017 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1018 fi
1019 exit ;;
1020 i*86:*:5:[678]*)
1021 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1022 case `/bin/uname -X | grep "^Machine"` in
1023 *486*) UNAME_MACHINE=i486 ;;
1024 *Pentium) UNAME_MACHINE=i586 ;;
1025 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1026 esac
1027 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1028 exit ;;
1029 i*86:*:3.2:*)
1030 if test -f /usr/options/cb.name; then
1031 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1032 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1033 elif /bin/uname -X 2>/dev/null >/dev/null ; then
1034 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1035 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1036 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1037 && UNAME_MACHINE=i586
1038 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1039 && UNAME_MACHINE=i686
1040 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1041 && UNAME_MACHINE=i686
1042 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1043 else
1044 echo ${UNAME_MACHINE}-pc-sysv32
1045 fi
1046 exit ;;
1047 pc:*:*:*)
1048 # Left here for compatibility:
1049 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1050 # the processor, so we play safe by assuming i586.
1051 # Note: whatever this is, it MUST be the same as what config.sub
1052 # prints for the "djgpp" host, or else GDB configury will decide that
1053 # this is a cross-build.
1054 echo i586-pc-msdosdjgpp
1055 exit ;;
1056 Intel:Mach:3*:*)
1057 echo i386-pc-mach3
1058 exit ;;
1059 paragon:*:*:*)
1060 echo i860-intel-osf1
1061 exit ;;
1062 i860:*:4.*:*) # i860-SVR4
1063 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1064 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1065 else # Add other i860-SVR4 vendors below as they are discovered.
1066 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1067 fi
1068 exit ;;
1069 mini*:CTIX:SYS*5:*)
1070 # "miniframe"
1071 echo m68010-convergent-sysv
1072 exit ;;
1073 mc68k:UNIX:SYSTEM5:3.51m)
1074 echo m68k-convergent-sysv
1075 exit ;;
1076 M680?0:D-NIX:5.3:*)
1077 echo m68k-diab-dnix
1078 exit ;;
1079 M68*:*:R3V[5678]*:*)
1080 test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1081 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)
1082 OS_REL=''
1083 test -r /etc/.relid \
1084 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1085 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1086 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1087 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1088 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1089 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1090 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1091 && { echo i486-ncr-sysv4; exit; } ;;
1092 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1093 OS_REL='.3'
1094 test -r /etc/.relid \
1095 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1096 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1097 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1098 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1099 && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1100 /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1101 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1102 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1103 echo m68k-unknown-lynxos${UNAME_RELEASE}
1104 exit ;;
1105 mc68030:UNIX_System_V:4.*:*)
1106 echo m68k-atari-sysv4
1107 exit ;;
1108 TSUNAMI:LynxOS:2.*:*)
1109 echo sparc-unknown-lynxos${UNAME_RELEASE}
1110 exit ;;
1111 rs6000:LynxOS:2.*:*)
1112 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1113 exit ;;
1114 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1115 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1116 exit ;;
1117 SM[BE]S:UNIX_SV:*:*)
1118 echo mips-dde-sysv${UNAME_RELEASE}
1119 exit ;;
1120 RM*:ReliantUNIX-*:*:*)
1121 echo mips-sni-sysv4
1122 exit ;;
1123 RM*:SINIX-*:*:*)
1124 echo mips-sni-sysv4
1125 exit ;;
1126 *:SINIX-*:*:*)
1127 if uname -p 2>/dev/null >/dev/null ; then
1128 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1129 echo ${UNAME_MACHINE}-sni-sysv4
1130 else
1131 echo ns32k-sni-sysv
1132 fi
1133 exit ;;
1134 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1135 # says <Richard.M.Bartel@ccMail.Census.GOV>
1136 echo i586-unisys-sysv4
1137 exit ;;
1138 *:UNIX_System_V:4*:FTX*)
1139 # From Gerald Hewes <hewes@openmarket.com>.
1140 # How about differentiating between stratus architectures? -djm
1141 echo hppa1.1-stratus-sysv4
1142 exit ;;
1143 *:*:*:FTX*)
1144 # From seanf@swdc.stratus.com.
1145 echo i860-stratus-sysv4
1146 exit ;;
1147 i*86:VOS:*:*)
1148 # From Paul.Green@stratus.com.
1149 echo ${UNAME_MACHINE}-stratus-vos
1150 exit ;;
1151 *:VOS:*:*)
1152 # From Paul.Green@stratus.com.
1153 echo hppa1.1-stratus-vos
1154 exit ;;
1155 mc68*:A/UX:*:*)
1156 echo m68k-apple-aux${UNAME_RELEASE}
1157 exit ;;
1158 news*:NEWS-OS:6*:*)
1159 echo mips-sony-newsos6
1160 exit ;;
1161 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1162 if [ -d /usr/nec ]; then
1163 echo mips-nec-sysv${UNAME_RELEASE}
1164 else
1165 echo mips-unknown-sysv${UNAME_RELEASE}
1166 fi
1167 exit ;;
1168 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1169 echo powerpc-be-beos
1170 exit ;;
1171 BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1172 echo powerpc-apple-beos
1173 exit ;;
1174 BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1175 echo i586-pc-beos
1176 exit ;;
1177 BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1178 echo i586-pc-haiku
1179 exit ;;
1180 SX-4:SUPER-UX:*:*)
1181 echo sx4-nec-superux${UNAME_RELEASE}
1182 exit ;;
1183 SX-5:SUPER-UX:*:*)
1184 echo sx5-nec-superux${UNAME_RELEASE}
1185 exit ;;
1186 SX-6:SUPER-UX:*:*)
1187 echo sx6-nec-superux${UNAME_RELEASE}
1188 exit ;;
1189 SX-7:SUPER-UX:*:*)
1190 echo sx7-nec-superux${UNAME_RELEASE}
1191 exit ;;
1192 SX-8:SUPER-UX:*:*)
1193 echo sx8-nec-superux${UNAME_RELEASE}
1194 exit ;;
1195 SX-8R:SUPER-UX:*:*)
1196 echo sx8r-nec-superux${UNAME_RELEASE}
1197 exit ;;
1198 Power*:Rhapsody:*:*)
1199 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1200 exit ;;
1201 *:Rhapsody:*:*)
1202 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1203 exit ;;
1204 *:Darwin:*:*)
1205 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1206 case $UNAME_PROCESSOR in
1207 i386)
1208 eval $set_cc_for_build
1209 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1210 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1211 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1212 grep IS_64BIT_ARCH >/dev/null
1213 then
1214 UNAME_PROCESSOR="x86_64"
1215 fi
1216 fi ;;
1217 unknown) UNAME_PROCESSOR=powerpc ;;
1218 esac
1219 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1220 exit ;;
1221 *:procnto*:*:* | *:QNX:[0123456789]*:*)
1222 UNAME_PROCESSOR=`uname -p`
1223 if test "$UNAME_PROCESSOR" = "x86"; then
1224 UNAME_PROCESSOR=i386
1225 UNAME_MACHINE=pc
1226 fi
1227 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1228 exit ;;
1229 *:QNX:*:4*)
1230 echo i386-pc-qnx
1231 exit ;;
1232 NSE-?:NONSTOP_KERNEL:*:*)
1233 echo nse-tandem-nsk${UNAME_RELEASE}
1234 exit ;;
1235 NSR-?:NONSTOP_KERNEL:*:*)
1236 echo nsr-tandem-nsk${UNAME_RELEASE}
1237 exit ;;
1238 *:NonStop-UX:*:*)
1239 echo mips-compaq-nonstopux
1240 exit ;;
1241 BS2000:POSIX*:*:*)
1242 echo bs2000-siemens-sysv
1243 exit ;;
1244 DS/*:UNIX_System_V:*:*)
1245 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1246 exit ;;
1247 *:Plan9:*:*)
1248 # "uname -m" is not consistent, so use $cputype instead. 386
1249 # is converted to i386 for consistency with other x86
1250 # operating systems.
1251 if test "$cputype" = "386"; then
1252 UNAME_MACHINE=i386
1253 else
1254 UNAME_MACHINE="$cputype"
1255 fi
1256 echo ${UNAME_MACHINE}-unknown-plan9
1257 exit ;;
1258 *:TOPS-10:*:*)
1259 echo pdp10-unknown-tops10
1260 exit ;;
1261 *:TENEX:*:*)
1262 echo pdp10-unknown-tenex
1263 exit ;;
1264 KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1265 echo pdp10-dec-tops20
1266 exit ;;
1267 XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1268 echo pdp10-xkl-tops20
1269 exit ;;
1270 *:TOPS-20:*:*)
1271 echo pdp10-unknown-tops20
1272 exit ;;
1273 *:ITS:*:*)
1274 echo pdp10-unknown-its
1275 exit ;;
1276 SEI:*:*:SEIUX)
1277 echo mips-sei-seiux${UNAME_RELEASE}
1278 exit ;;
1279 *:DragonFly:*:*)
1280 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1281 exit ;;
1282 *:*VMS:*:*)
1283 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1284 case "${UNAME_MACHINE}" in
1285 A*) echo alpha-dec-vms ; exit ;;
1286 I*) echo ia64-dec-vms ; exit ;;
1287 V*) echo vax-dec-vms ; exit ;;
1288 esac ;;
1289 *:XENIX:*:SysV)
1290 echo i386-pc-xenix
1291 exit ;;
1292 i*86:skyos:*:*)
1293 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1294 exit ;;
1295 i*86:rdos:*:*)
1296 echo ${UNAME_MACHINE}-pc-rdos
1297 exit ;;
1298 i*86:AROS:*:*)
1299 echo ${UNAME_MACHINE}-pc-aros
1300 exit ;;
1301 esac
1302
1303 #echo '(No uname command or uname output not recognized.)' 1>&2
1304 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1305
1306 eval $set_cc_for_build
1307 cat >$dummy.c <<EOF
1308 #ifdef _SEQUENT_
1309 # include <sys/types.h>
1310 # include <sys/utsname.h>
1311 #endif
1312 main ()
1313 {
1314 #if defined (sony)
1315 #if defined (MIPSEB)
1316 /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1317 I don't know.... */
1318 printf ("mips-sony-bsd\n"); exit (0);
1319 #else
1320 #include <sys/param.h>
1321 printf ("m68k-sony-newsos%s\n",
1322 #ifdef NEWSOS4
1323 "4"
1324 #else
1325 ""
1326 #endif
1327 ); exit (0);
1328 #endif
1329 #endif
1330
1331 #if defined (__arm) && defined (__acorn) && defined (__unix)
1332 printf ("arm-acorn-riscix\n"); exit (0);
1333 #endif
1334
1335 #if defined (hp300) && !defined (hpux)
1336 printf ("m68k-hp-bsd\n"); exit (0);
1337 #endif
1338
1339 #if defined (NeXT)
1340 #if !defined (__ARCHITECTURE__)
1341 #define __ARCHITECTURE__ "m68k"
1342 #endif
1343 int version;
1344 version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1345 if (version < 4)
1346 printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1347 else
1348 printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1349 exit (0);
1350 #endif
1351
1352 #if defined (MULTIMAX) || defined (n16)
1353 #if defined (UMAXV)
1354 printf ("ns32k-encore-sysv\n"); exit (0);
1355 #else
1356 #if defined (CMU)
1357 printf ("ns32k-encore-mach\n"); exit (0);
1358 #else
1359 printf ("ns32k-encore-bsd\n"); exit (0);
1360 #endif
1361 #endif
1362 #endif
1363
1364 #if defined (__386BSD__)
1365 printf ("i386-pc-bsd\n"); exit (0);
1366 #endif
1367
1368 #if defined (sequent)
1369 #if defined (i386)
1370 printf ("i386-sequent-dynix\n"); exit (0);
1371 #endif
1372 #if defined (ns32000)
1373 printf ("ns32k-sequent-dynix\n"); exit (0);
1374 #endif
1375 #endif
1376
1377 #if defined (_SEQUENT_)
1378 struct utsname un;
1379
1380 uname(&un);
1381
1382 if (strncmp(un.version, "V2", 2) == 0) {
1383 printf ("i386-sequent-ptx2\n"); exit (0);
1384 }
1385 if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1386 printf ("i386-sequent-ptx1\n"); exit (0);
1387 }
1388 printf ("i386-sequent-ptx\n"); exit (0);
1389
1390 #endif
1391
1392 #if defined (vax)
1393 # if !defined (ultrix)
1394 # include <sys/param.h>
1395 # if defined (BSD)
1396 # if BSD == 43
1397 printf ("vax-dec-bsd4.3\n"); exit (0);
1398 # else
1399 # if BSD == 199006
1400 printf ("vax-dec-bsd4.3reno\n"); exit (0);
1401 # else
1402 printf ("vax-dec-bsd\n"); exit (0);
1403 # endif
1404 # endif
1405 # else
1406 printf ("vax-dec-bsd\n"); exit (0);
1407 # endif
1408 # else
1409 printf ("vax-dec-ultrix\n"); exit (0);
1410 # endif
1411 #endif
1412
1413 #if defined (alliant) && defined (i860)
1414 printf ("i860-alliant-bsd\n"); exit (0);
1415 #endif
1416
1417 exit (1);
1418 }
1419 EOF
1420
1421 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1422 { echo "$SYSTEM_NAME"; exit; }
1423
1424 # Apollos put the system type in the environment.
1425
1426 test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1427
1428 # Convex versions that predate uname can use getsysinfo(1)
1429
1430 if [ -x /usr/convex/getsysinfo ]
1431 then
1432 case `getsysinfo -f cpu_type` in
1433 c1*)
1434 echo c1-convex-bsd
1435 exit ;;
1436 c2*)
1437 if getsysinfo -f scalar_acc
1438 then echo c32-convex-bsd
1439 else echo c2-convex-bsd
1440 fi
1441 exit ;;
1442 c34*)
1443 echo c34-convex-bsd
1444 exit ;;
1445 c38*)
1446 echo c38-convex-bsd
1447 exit ;;
1448 c4*)
1449 echo c4-convex-bsd
1450 exit ;;
1451 esac
1452 fi
1453
1454 cat >&2 <<EOF
1455 $0: unable to guess system type
1456
1457 This script, last modified $timestamp, has failed to recognize
1458 the operating system you are using. It is advised that you
1459 download the most up to date version of the config scripts from
1460
1461 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1462 and
1463 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1464
1465 If the version you run ($0) is already up to date, please
1466 send the following data and any information you think might be
1467 pertinent to <config-patches@gnu.org> in order to provide the needed
1468 information to handle your system.
1469
1470 config.guess timestamp = $timestamp
1471
1472 uname -m = `(uname -m) 2>/dev/null || echo unknown`
1473 uname -r = `(uname -r) 2>/dev/null || echo unknown`
1474 uname -s = `(uname -s) 2>/dev/null || echo unknown`
1475 uname -v = `(uname -v) 2>/dev/null || echo unknown`
1476
1477 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1478 /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1479
1480 hostinfo = `(hostinfo) 2>/dev/null`
1481 /bin/universe = `(/bin/universe) 2>/dev/null`
1482 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1483 /bin/arch = `(/bin/arch) 2>/dev/null`
1484 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1485 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1486
1487 UNAME_MACHINE = ${UNAME_MACHINE}
1488 UNAME_RELEASE = ${UNAME_RELEASE}
1489 UNAME_SYSTEM = ${UNAME_SYSTEM}
1490 UNAME_VERSION = ${UNAME_VERSION}
1491 EOF
1492
1493 exit 1
1494
1495 # Local variables:
1496 # eval: (add-hook 'write-file-hooks 'time-stamp)
1497 # time-stamp-start: "timestamp='"
1498 # time-stamp-format: "%:y-%02m-%02d"
1499 # time-stamp-end: "'"
1500 # End:
00 /* config.h.in. Generated from configure.ac by autoheader. */
1
2 /* always defined to indicate that i18n is enabled */
3 #undef ENABLE_NLS
4
5 /* Enable compile-time and run-time bounds-checking, and some warnings. */
6 #if defined __OPTIMIZE__ && __OPTIMIZE__
7 # define _FORTIFY_SOURCE 2
8 #endif
9
110
211 /* GETTEXT package name */
312 #undef GETTEXT_PACKAGE
13
14 /* Define to 1 if you have the `bind_textdomain_codeset' function. */
15 #undef HAVE_BIND_TEXTDOMAIN_CODESET
16
17 /* Define to 1 if you have the `dcgettext' function. */
18 #undef HAVE_DCGETTEXT
419
520 /* Define to 1 if you have the <dlfcn.h> header file. */
621 #undef HAVE_DLFCN_H
823 /* Define to 1 if you have the `fork' function. */
924 #undef HAVE_FORK
1025
26 /* Define if the GNU gettext() function is already present or preinstalled. */
27 #undef HAVE_GETTEXT
28
29 /* Have gtk-vnc? */
30 #undef HAVE_GTK_VNC
31
1132 /* Define to 1 if you have the <inttypes.h> header file. */
1233 #undef HAVE_INTTYPES_H
34
35 /* Define if your <locale.h> file defines LC_MESSAGES. */
36 #undef HAVE_LC_MESSAGES
37
38 /* Have libvirt? */
39 #undef HAVE_LIBVIRT
40
41 /* Define to 1 if you have the <locale.h> header file. */
42 #undef HAVE_LOCALE_H
1343
1444 /* Define to 1 if you have the <memory.h> header file. */
1545 #undef HAVE_MEMORY_H
+0
-1705
config.sub less more
0 #! /bin/sh
1 # Configuration validation subroutine script.
2 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
4 # Free Software Foundation, Inc.
5
6 timestamp='2009-11-20'
7
8 # This file is (in principle) common to ALL GNU software.
9 # The presence of a machine in this file suggests that SOME GNU software
10 # can handle that machine. It does not imply ALL GNU software can.
11 #
12 # This file is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 2 of the License, or
15 # (at your option) any later version.
16 #
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
25 # 02110-1301, USA.
26 #
27 # As a special exception to the GNU General Public License, if you
28 # distribute this file as part of a program that contains a
29 # configuration script generated by Autoconf, you may include it under
30 # the same distribution terms that you use for the rest of that program.
31
32
33 # Please send patches to <config-patches@gnu.org>. Submit a context
34 # diff and a properly formatted GNU ChangeLog entry.
35 #
36 # Configuration subroutine to validate and canonicalize a configuration type.
37 # Supply the specified configuration type as an argument.
38 # If it is invalid, we print an error message on stderr and exit with code 1.
39 # Otherwise, we print the canonical config type on stdout and succeed.
40
41 # You can get the latest version of this script from:
42 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
43
44 # This file is supposed to be the same for all GNU packages
45 # and recognize all the CPU types, system types and aliases
46 # that are meaningful with *any* GNU software.
47 # Each package is responsible for reporting which valid configurations
48 # it does not support. The user should be able to distinguish
49 # a failure to support a valid configuration from a meaningless
50 # configuration.
51
52 # The goal of this file is to map all the various variations of a given
53 # machine specification into a single specification in the form:
54 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
55 # or in some cases, the newer four-part form:
56 # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
57 # It is wrong to echo any other type of specification.
58
59 me=`echo "$0" | sed -e 's,.*/,,'`
60
61 usage="\
62 Usage: $0 [OPTION] CPU-MFR-OPSYS
63 $0 [OPTION] ALIAS
64
65 Canonicalize a configuration name.
66
67 Operation modes:
68 -h, --help print this help, then exit
69 -t, --time-stamp print date of last modification, then exit
70 -v, --version print version number, then exit
71
72 Report bugs and patches to <config-patches@gnu.org>."
73
74 version="\
75 GNU config.sub ($timestamp)
76
77 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
78 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
79
80 This is free software; see the source for copying conditions. There is NO
81 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
82
83 help="
84 Try \`$me --help' for more information."
85
86 # Parse command line
87 while test $# -gt 0 ; do
88 case $1 in
89 --time-stamp | --time* | -t )
90 echo "$timestamp" ; exit ;;
91 --version | -v )
92 echo "$version" ; exit ;;
93 --help | --h* | -h )
94 echo "$usage"; exit ;;
95 -- ) # Stop option processing
96 shift; break ;;
97 - ) # Use stdin as input.
98 break ;;
99 -* )
100 echo "$me: invalid option $1$help"
101 exit 1 ;;
102
103 *local*)
104 # First pass through any local machine types.
105 echo $1
106 exit ;;
107
108 * )
109 break ;;
110 esac
111 done
112
113 case $# in
114 0) echo "$me: missing argument$help" >&2
115 exit 1;;
116 1) ;;
117 *) echo "$me: too many arguments$help" >&2
118 exit 1;;
119 esac
120
121 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
122 # Here we must recognize all the valid KERNEL-OS combinations.
123 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
124 case $maybe_os in
125 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
126 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
127 kopensolaris*-gnu* | \
128 storm-chaos* | os2-emx* | rtmk-nova*)
129 os=-$maybe_os
130 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
131 ;;
132 *)
133 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
134 if [ $basic_machine != $1 ]
135 then os=`echo $1 | sed 's/.*-/-/'`
136 else os=; fi
137 ;;
138 esac
139
140 ### Let's recognize common machines as not being operating systems so
141 ### that things like config.sub decstation-3100 work. We also
142 ### recognize some manufacturers as not being operating systems, so we
143 ### can provide default operating systems below.
144 case $os in
145 -sun*os*)
146 # Prevent following clause from handling this invalid input.
147 ;;
148 -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
149 -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
150 -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
151 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
152 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
153 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
154 -apple | -axis | -knuth | -cray | -microblaze)
155 os=
156 basic_machine=$1
157 ;;
158 -bluegene*)
159 os=-cnk
160 ;;
161 -sim | -cisco | -oki | -wec | -winbond)
162 os=
163 basic_machine=$1
164 ;;
165 -scout)
166 ;;
167 -wrs)
168 os=-vxworks
169 basic_machine=$1
170 ;;
171 -chorusos*)
172 os=-chorusos
173 basic_machine=$1
174 ;;
175 -chorusrdb)
176 os=-chorusrdb
177 basic_machine=$1
178 ;;
179 -hiux*)
180 os=-hiuxwe2
181 ;;
182 -sco6)
183 os=-sco5v6
184 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
185 ;;
186 -sco5)
187 os=-sco3.2v5
188 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
189 ;;
190 -sco4)
191 os=-sco3.2v4
192 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
193 ;;
194 -sco3.2.[4-9]*)
195 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
196 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
197 ;;
198 -sco3.2v[4-9]*)
199 # Don't forget version if it is 3.2v4 or newer.
200 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
201 ;;
202 -sco5v6*)
203 # Don't forget version if it is 3.2v4 or newer.
204 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
205 ;;
206 -sco*)
207 os=-sco3.2v2
208 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
209 ;;
210 -udk*)
211 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
212 ;;
213 -isc)
214 os=-isc2.2
215 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
216 ;;
217 -clix*)
218 basic_machine=clipper-intergraph
219 ;;
220 -isc*)
221 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
222 ;;
223 -lynx*)
224 os=-lynxos
225 ;;
226 -ptx*)
227 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
228 ;;
229 -windowsnt*)
230 os=`echo $os | sed -e 's/windowsnt/winnt/'`
231 ;;
232 -psos*)
233 os=-psos
234 ;;
235 -mint | -mint[0-9]*)
236 basic_machine=m68k-atari
237 os=-mint
238 ;;
239 esac
240
241 # Decode aliases for certain CPU-COMPANY combinations.
242 case $basic_machine in
243 # Recognize the basic CPU types without company name.
244 # Some are omitted here because they have special meanings below.
245 1750a | 580 \
246 | a29k \
247 | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
248 | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
249 | am33_2.0 \
250 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
251 | bfin \
252 | c4x | clipper \
253 | d10v | d30v | dlx | dsp16xx \
254 | fido | fr30 | frv \
255 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
256 | i370 | i860 | i960 | ia64 \
257 | ip2k | iq2000 \
258 | lm32 \
259 | m32c | m32r | m32rle | m68000 | m68k | m88k \
260 | maxq | mb | microblaze | mcore | mep | metag \
261 | mips | mipsbe | mipseb | mipsel | mipsle \
262 | mips16 \
263 | mips64 | mips64el \
264 | mips64octeon | mips64octeonel \
265 | mips64orion | mips64orionel \
266 | mips64r5900 | mips64r5900el \
267 | mips64vr | mips64vrel \
268 | mips64vr4100 | mips64vr4100el \
269 | mips64vr4300 | mips64vr4300el \
270 | mips64vr5000 | mips64vr5000el \
271 | mips64vr5900 | mips64vr5900el \
272 | mipsisa32 | mipsisa32el \
273 | mipsisa32r2 | mipsisa32r2el \
274 | mipsisa64 | mipsisa64el \
275 | mipsisa64r2 | mipsisa64r2el \
276 | mipsisa64sb1 | mipsisa64sb1el \
277 | mipsisa64sr71k | mipsisa64sr71kel \
278 | mipstx39 | mipstx39el \
279 | mn10200 | mn10300 \
280 | moxie \
281 | mt \
282 | msp430 \
283 | nios | nios2 \
284 | ns16k | ns32k \
285 | or32 \
286 | pdp10 | pdp11 | pj | pjl \
287 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
288 | pyramid \
289 | rx \
290 | score \
291 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
292 | sh64 | sh64le \
293 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
294 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
295 | spu | strongarm \
296 | tahoe | thumb | tic4x | tic80 | tron \
297 | ubicom32 \
298 | v850 | v850e \
299 | we32k \
300 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
301 | z8k | z80)
302 basic_machine=$basic_machine-unknown
303 ;;
304 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
305 # Motorola 68HC11/12.
306 basic_machine=$basic_machine-unknown
307 os=-none
308 ;;
309 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
310 ;;
311 ms1)
312 basic_machine=mt-unknown
313 ;;
314
315 # We use `pc' rather than `unknown'
316 # because (1) that's what they normally are, and
317 # (2) the word "unknown" tends to confuse beginning users.
318 i*86 | x86_64)
319 basic_machine=$basic_machine-pc
320 ;;
321 # Object if more than one company name word.
322 *-*-*)
323 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
324 exit 1
325 ;;
326 # Recognize the basic CPU types with company name.
327 580-* \
328 | a29k-* \
329 | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
330 | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
331 | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
332 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
333 | avr-* | avr32-* \
334 | bfin-* | bs2000-* \
335 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
336 | clipper-* | craynv-* | cydra-* \
337 | d10v-* | d30v-* | dlx-* \
338 | elxsi-* \
339 | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
340 | h8300-* | h8500-* \
341 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
342 | i*86-* | i860-* | i960-* | ia64-* \
343 | ip2k-* | iq2000-* \
344 | lm32-* \
345 | m32c-* | m32r-* | m32rle-* \
346 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
347 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
348 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
349 | mips16-* \
350 | mips64-* | mips64el-* \
351 | mips64octeon-* | mips64octeonel-* \
352 | mips64orion-* | mips64orionel-* \
353 | mips64r5900-* | mips64r5900el-* \
354 | mips64vr-* | mips64vrel-* \
355 | mips64vr4100-* | mips64vr4100el-* \
356 | mips64vr4300-* | mips64vr4300el-* \
357 | mips64vr5000-* | mips64vr5000el-* \
358 | mips64vr5900-* | mips64vr5900el-* \
359 | mipsisa32-* | mipsisa32el-* \
360 | mipsisa32r2-* | mipsisa32r2el-* \
361 | mipsisa64-* | mipsisa64el-* \
362 | mipsisa64r2-* | mipsisa64r2el-* \
363 | mipsisa64sb1-* | mipsisa64sb1el-* \
364 | mipsisa64sr71k-* | mipsisa64sr71kel-* \
365 | mipstx39-* | mipstx39el-* \
366 | mmix-* \
367 | mt-* \
368 | msp430-* \
369 | nios-* | nios2-* \
370 | none-* | np1-* | ns16k-* | ns32k-* \
371 | orion-* \
372 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
373 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
374 | pyramid-* \
375 | romp-* | rs6000-* | rx-* \
376 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
377 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
378 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
379 | sparclite-* \
380 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
381 | tahoe-* | thumb-* \
382 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
383 | tron-* \
384 | ubicom32-* \
385 | v850-* | v850e-* | vax-* \
386 | we32k-* \
387 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
388 | xstormy16-* | xtensa*-* \
389 | ymp-* \
390 | z8k-* | z80-*)
391 ;;
392 # Recognize the basic CPU types without company name, with glob match.
393 xtensa*)
394 basic_machine=$basic_machine-unknown
395 ;;
396 # Recognize the various machine names and aliases which stand
397 # for a CPU type and a company and sometimes even an OS.
398 386bsd)
399 basic_machine=i386-unknown
400 os=-bsd
401 ;;
402 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
403 basic_machine=m68000-att
404 ;;
405 3b*)
406 basic_machine=we32k-att
407 ;;
408 a29khif)
409 basic_machine=a29k-amd
410 os=-udi
411 ;;
412 abacus)
413 basic_machine=abacus-unknown
414 ;;
415 adobe68k)
416 basic_machine=m68010-adobe
417 os=-scout
418 ;;
419 alliant | fx80)
420 basic_machine=fx80-alliant
421 ;;
422 altos | altos3068)
423 basic_machine=m68k-altos
424 ;;
425 am29k)
426 basic_machine=a29k-none
427 os=-bsd
428 ;;
429 amd64)
430 basic_machine=x86_64-pc
431 ;;
432 amd64-*)
433 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
434 ;;
435 amdahl)
436 basic_machine=580-amdahl
437 os=-sysv
438 ;;
439 amiga | amiga-*)
440 basic_machine=m68k-unknown
441 ;;
442 amigaos | amigados)
443 basic_machine=m68k-unknown
444 os=-amigaos
445 ;;
446 amigaunix | amix)
447 basic_machine=m68k-unknown
448 os=-sysv4
449 ;;
450 apollo68)
451 basic_machine=m68k-apollo
452 os=-sysv
453 ;;
454 apollo68bsd)
455 basic_machine=m68k-apollo
456 os=-bsd
457 ;;
458 aros)
459 basic_machine=i386-pc
460 os=-aros
461 ;;
462 aux)
463 basic_machine=m68k-apple
464 os=-aux
465 ;;
466 balance)
467 basic_machine=ns32k-sequent
468 os=-dynix
469 ;;
470 blackfin)
471 basic_machine=bfin-unknown
472 os=-linux
473 ;;
474 blackfin-*)
475 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
476 os=-linux
477 ;;
478 bluegene*)
479 basic_machine=powerpc-ibm
480 os=-cnk
481 ;;
482 c90)
483 basic_machine=c90-cray
484 os=-unicos
485 ;;
486 cegcc)
487 basic_machine=arm-unknown
488 os=-cegcc
489 ;;
490 convex-c1)
491 basic_machine=c1-convex
492 os=-bsd
493 ;;
494 convex-c2)
495 basic_machine=c2-convex
496 os=-bsd
497 ;;
498 convex-c32)
499 basic_machine=c32-convex
500 os=-bsd
501 ;;
502 convex-c34)
503 basic_machine=c34-convex
504 os=-bsd
505 ;;
506 convex-c38)
507 basic_machine=c38-convex
508 os=-bsd
509 ;;
510 cray | j90)
511 basic_machine=j90-cray
512 os=-unicos
513 ;;
514 craynv)
515 basic_machine=craynv-cray
516 os=-unicosmp
517 ;;
518 cr16)
519 basic_machine=cr16-unknown
520 os=-elf
521 ;;
522 crds | unos)
523 basic_machine=m68k-crds
524 ;;
525 crisv32 | crisv32-* | etraxfs*)
526 basic_machine=crisv32-axis
527 ;;
528 cris | cris-* | etrax*)
529 basic_machine=cris-axis
530 ;;
531 crx)
532 basic_machine=crx-unknown
533 os=-elf
534 ;;
535 da30 | da30-*)
536 basic_machine=m68k-da30
537 ;;
538 decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
539 basic_machine=mips-dec
540 ;;
541 decsystem10* | dec10*)
542 basic_machine=pdp10-dec
543 os=-tops10
544 ;;
545 decsystem20* | dec20*)
546 basic_machine=pdp10-dec
547 os=-tops20
548 ;;
549 delta | 3300 | motorola-3300 | motorola-delta \
550 | 3300-motorola | delta-motorola)
551 basic_machine=m68k-motorola
552 ;;
553 delta88)
554 basic_machine=m88k-motorola
555 os=-sysv3
556 ;;
557 dicos)
558 basic_machine=i686-pc
559 os=-dicos
560 ;;
561 djgpp)
562 basic_machine=i586-pc
563 os=-msdosdjgpp
564 ;;
565 dpx20 | dpx20-*)
566 basic_machine=rs6000-bull
567 os=-bosx
568 ;;
569 dpx2* | dpx2*-bull)
570 basic_machine=m68k-bull
571 os=-sysv3
572 ;;
573 ebmon29k)
574 basic_machine=a29k-amd
575 os=-ebmon
576 ;;
577 elxsi)
578 basic_machine=elxsi-elxsi
579 os=-bsd
580 ;;
581 encore | umax | mmax)
582 basic_machine=ns32k-encore
583 ;;
584 es1800 | OSE68k | ose68k | ose | OSE)
585 basic_machine=m68k-ericsson
586 os=-ose
587 ;;
588 fx2800)
589 basic_machine=i860-alliant
590 ;;
591 genix)
592 basic_machine=ns32k-ns
593 ;;
594 gmicro)
595 basic_machine=tron-gmicro
596 os=-sysv
597 ;;
598 go32)
599 basic_machine=i386-pc
600 os=-go32
601 ;;
602 h3050r* | hiux*)
603 basic_machine=hppa1.1-hitachi
604 os=-hiuxwe2
605 ;;
606 h8300hms)
607 basic_machine=h8300-hitachi
608 os=-hms
609 ;;
610 h8300xray)
611 basic_machine=h8300-hitachi
612 os=-xray
613 ;;
614 h8500hms)
615 basic_machine=h8500-hitachi
616 os=-hms
617 ;;
618 harris)
619 basic_machine=m88k-harris
620 os=-sysv3
621 ;;
622 hp300-*)
623 basic_machine=m68k-hp
624 ;;
625 hp300bsd)
626 basic_machine=m68k-hp
627 os=-bsd
628 ;;
629 hp300hpux)
630 basic_machine=m68k-hp
631 os=-hpux
632 ;;
633 hp3k9[0-9][0-9] | hp9[0-9][0-9])
634 basic_machine=hppa1.0-hp
635 ;;
636 hp9k2[0-9][0-9] | hp9k31[0-9])
637 basic_machine=m68000-hp
638 ;;
639 hp9k3[2-9][0-9])
640 basic_machine=m68k-hp
641 ;;
642 hp9k6[0-9][0-9] | hp6[0-9][0-9])
643 basic_machine=hppa1.0-hp
644 ;;
645 hp9k7[0-79][0-9] | hp7[0-79][0-9])
646 basic_machine=hppa1.1-hp
647 ;;
648 hp9k78[0-9] | hp78[0-9])
649 # FIXME: really hppa2.0-hp
650 basic_machine=hppa1.1-hp
651 ;;
652 hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
653 # FIXME: really hppa2.0-hp
654 basic_machine=hppa1.1-hp
655 ;;
656 hp9k8[0-9][13679] | hp8[0-9][13679])
657 basic_machine=hppa1.1-hp
658 ;;
659 hp9k8[0-9][0-9] | hp8[0-9][0-9])
660 basic_machine=hppa1.0-hp
661 ;;
662 hppa-next)
663 os=-nextstep3
664 ;;
665 hppaosf)
666 basic_machine=hppa1.1-hp
667 os=-osf
668 ;;
669 hppro)
670 basic_machine=hppa1.1-hp
671 os=-proelf
672 ;;
673 i370-ibm* | ibm*)
674 basic_machine=i370-ibm
675 ;;
676 # I'm not sure what "Sysv32" means. Should this be sysv3.2?
677 i*86v32)
678 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
679 os=-sysv32
680 ;;
681 i*86v4*)
682 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
683 os=-sysv4
684 ;;
685 i*86v)
686 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
687 os=-sysv
688 ;;
689 i*86sol2)
690 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
691 os=-solaris2
692 ;;
693 i386mach)
694 basic_machine=i386-mach
695 os=-mach
696 ;;
697 i386-vsta | vsta)
698 basic_machine=i386-unknown
699 os=-vsta
700 ;;
701 iris | iris4d)
702 basic_machine=mips-sgi
703 case $os in
704 -irix*)
705 ;;
706 *)
707 os=-irix4
708 ;;
709 esac
710 ;;
711 isi68 | isi)
712 basic_machine=m68k-isi
713 os=-sysv
714 ;;
715 m68knommu)
716 basic_machine=m68k-unknown
717 os=-linux
718 ;;
719 m68knommu-*)
720 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
721 os=-linux
722 ;;
723 m88k-omron*)
724 basic_machine=m88k-omron
725 ;;
726 magnum | m3230)
727 basic_machine=mips-mips
728 os=-sysv
729 ;;
730 merlin)
731 basic_machine=ns32k-utek
732 os=-sysv
733 ;;
734 microblaze)
735 basic_machine=microblaze-xilinx
736 ;;
737 mingw32)
738 basic_machine=i386-pc
739 os=-mingw32
740 ;;
741 mingw32ce)
742 basic_machine=arm-unknown
743 os=-mingw32ce
744 ;;
745 miniframe)
746 basic_machine=m68000-convergent
747 ;;
748 *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
749 basic_machine=m68k-atari
750 os=-mint
751 ;;
752 mips3*-*)
753 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
754 ;;
755 mips3*)
756 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
757 ;;
758 monitor)
759 basic_machine=m68k-rom68k
760 os=-coff
761 ;;
762 morphos)
763 basic_machine=powerpc-unknown
764 os=-morphos
765 ;;
766 msdos)
767 basic_machine=i386-pc
768 os=-msdos
769 ;;
770 ms1-*)
771 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
772 ;;
773 mvs)
774 basic_machine=i370-ibm
775 os=-mvs
776 ;;
777 ncr3000)
778 basic_machine=i486-ncr
779 os=-sysv4
780 ;;
781 netbsd386)
782 basic_machine=i386-unknown
783 os=-netbsd
784 ;;
785 netwinder)
786 basic_machine=armv4l-rebel
787 os=-linux
788 ;;
789 news | news700 | news800 | news900)
790 basic_machine=m68k-sony
791 os=-newsos
792 ;;
793 news1000)
794 basic_machine=m68030-sony
795 os=-newsos
796 ;;
797 news-3600 | risc-news)
798 basic_machine=mips-sony
799 os=-newsos
800 ;;
801 necv70)
802 basic_machine=v70-nec
803 os=-sysv
804 ;;
805 next | m*-next )
806 basic_machine=m68k-next
807 case $os in
808 -nextstep* )
809 ;;
810 -ns2*)
811 os=-nextstep2
812 ;;
813 *)
814 os=-nextstep3
815 ;;
816 esac
817 ;;
818 nh3000)
819 basic_machine=m68k-harris
820 os=-cxux
821 ;;
822 nh[45]000)
823 basic_machine=m88k-harris
824 os=-cxux
825 ;;
826 nindy960)
827 basic_machine=i960-intel
828 os=-nindy
829 ;;
830 mon960)
831 basic_machine=i960-intel
832 os=-mon960
833 ;;
834 nonstopux)
835 basic_machine=mips-compaq
836 os=-nonstopux
837 ;;
838 np1)
839 basic_machine=np1-gould
840 ;;
841 nsr-tandem)
842 basic_machine=nsr-tandem
843 ;;
844 op50n-* | op60c-*)
845 basic_machine=hppa1.1-oki
846 os=-proelf
847 ;;
848 openrisc | openrisc-*)
849 basic_machine=or32-unknown
850 ;;
851 os400)
852 basic_machine=powerpc-ibm
853 os=-os400
854 ;;
855 OSE68000 | ose68000)
856 basic_machine=m68000-ericsson
857 os=-ose
858 ;;
859 os68k)
860 basic_machine=m68k-none
861 os=-os68k
862 ;;
863 pa-hitachi)
864 basic_machine=hppa1.1-hitachi
865 os=-hiuxwe2
866 ;;
867 paragon)
868 basic_machine=i860-intel
869 os=-osf
870 ;;
871 parisc)
872 basic_machine=hppa-unknown
873 os=-linux
874 ;;
875 parisc-*)
876 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
877 os=-linux
878 ;;
879 pbd)
880 basic_machine=sparc-tti
881 ;;
882 pbb)
883 basic_machine=m68k-tti
884 ;;
885 pc532 | pc532-*)
886 basic_machine=ns32k-pc532
887 ;;
888 pc98)
889 basic_machine=i386-pc
890 ;;
891 pc98-*)
892 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
893 ;;
894 pentium | p5 | k5 | k6 | nexgen | viac3)
895 basic_machine=i586-pc
896 ;;
897 pentiumpro | p6 | 6x86 | athlon | athlon_*)
898 basic_machine=i686-pc
899 ;;
900 pentiumii | pentium2 | pentiumiii | pentium3)
901 basic_machine=i686-pc
902 ;;
903 pentium4)
904 basic_machine=i786-pc
905 ;;
906 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
907 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
908 ;;
909 pentiumpro-* | p6-* | 6x86-* | athlon-*)
910 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
911 ;;
912 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
913 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
914 ;;
915 pentium4-*)
916 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
917 ;;
918 pn)
919 basic_machine=pn-gould
920 ;;
921 power) basic_machine=power-ibm
922 ;;
923 ppc) basic_machine=powerpc-unknown
924 ;;
925 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
926 ;;
927 ppcle | powerpclittle | ppc-le | powerpc-little)
928 basic_machine=powerpcle-unknown
929 ;;
930 ppcle-* | powerpclittle-*)
931 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
932 ;;
933 ppc64) basic_machine=powerpc64-unknown
934 ;;
935 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
936 ;;
937 ppc64le | powerpc64little | ppc64-le | powerpc64-little)
938 basic_machine=powerpc64le-unknown
939 ;;
940 ppc64le-* | powerpc64little-*)
941 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
942 ;;
943 ps2)
944 basic_machine=i386-ibm
945 ;;
946 pw32)
947 basic_machine=i586-unknown
948 os=-pw32
949 ;;
950 rdos)
951 basic_machine=i386-pc
952 os=-rdos
953 ;;
954 rom68k)
955 basic_machine=m68k-rom68k
956 os=-coff
957 ;;
958 rm[46]00)
959 basic_machine=mips-siemens
960 ;;
961 rtpc | rtpc-*)
962 basic_machine=romp-ibm
963 ;;
964 s390 | s390-*)
965 basic_machine=s390-ibm
966 ;;
967 s390x | s390x-*)
968 basic_machine=s390x-ibm
969 ;;
970 sa29200)
971 basic_machine=a29k-amd
972 os=-udi
973 ;;
974 sb1)
975 basic_machine=mipsisa64sb1-unknown
976 ;;
977 sb1el)
978 basic_machine=mipsisa64sb1el-unknown
979 ;;
980 sde)
981 basic_machine=mipsisa32-sde
982 os=-elf
983 ;;
984 sei)
985 basic_machine=mips-sei
986 os=-seiux
987 ;;
988 sequent)
989 basic_machine=i386-sequent
990 ;;
991 sh)
992 basic_machine=sh-hitachi
993 os=-hms
994 ;;
995 sh5el)
996 basic_machine=sh5le-unknown
997 ;;
998 sh64)
999 basic_machine=sh64-unknown
1000 ;;
1001 sparclite-wrs | simso-wrs)
1002 basic_machine=sparclite-wrs
1003 os=-vxworks
1004 ;;
1005 sps7)
1006 basic_machine=m68k-bull
1007 os=-sysv2
1008 ;;
1009 spur)
1010 basic_machine=spur-unknown
1011 ;;
1012 st2000)
1013 basic_machine=m68k-tandem
1014 ;;
1015 stratus)
1016 basic_machine=i860-stratus
1017 os=-sysv4
1018 ;;
1019 sun2)
1020 basic_machine=m68000-sun
1021 ;;
1022 sun2os3)
1023 basic_machine=m68000-sun
1024 os=-sunos3
1025 ;;
1026 sun2os4)
1027 basic_machine=m68000-sun
1028 os=-sunos4
1029 ;;
1030 sun3os3)
1031 basic_machine=m68k-sun
1032 os=-sunos3
1033 ;;
1034 sun3os4)
1035 basic_machine=m68k-sun
1036 os=-sunos4
1037 ;;
1038 sun4os3)
1039 basic_machine=sparc-sun
1040 os=-sunos3
1041 ;;
1042 sun4os4)
1043 basic_machine=sparc-sun
1044 os=-sunos4
1045 ;;
1046 sun4sol2)
1047 basic_machine=sparc-sun
1048 os=-solaris2
1049 ;;
1050 sun3 | sun3-*)
1051 basic_machine=m68k-sun
1052 ;;
1053 sun4)
1054 basic_machine=sparc-sun
1055 ;;
1056 sun386 | sun386i | roadrunner)
1057 basic_machine=i386-sun
1058 ;;
1059 sv1)
1060 basic_machine=sv1-cray
1061 os=-unicos
1062 ;;
1063 symmetry)
1064 basic_machine=i386-sequent
1065 os=-dynix
1066 ;;
1067 t3e)
1068 basic_machine=alphaev5-cray
1069 os=-unicos
1070 ;;
1071 t90)
1072 basic_machine=t90-cray
1073 os=-unicos
1074 ;;
1075 tic54x | c54x*)
1076 basic_machine=tic54x-unknown
1077 os=-coff
1078 ;;
1079 tic55x | c55x*)
1080 basic_machine=tic55x-unknown
1081 os=-coff
1082 ;;
1083 tic6x | c6x*)
1084 basic_machine=tic6x-unknown
1085 os=-coff
1086 ;;
1087 tile*)
1088 basic_machine=tile-unknown
1089 os=-linux-gnu
1090 ;;
1091 tx39)
1092 basic_machine=mipstx39-unknown
1093 ;;
1094 tx39el)
1095 basic_machine=mipstx39el-unknown
1096 ;;
1097 toad1)
1098 basic_machine=pdp10-xkl
1099 os=-tops20
1100 ;;
1101 tower | tower-32)
1102 basic_machine=m68k-ncr
1103 ;;
1104 tpf)
1105 basic_machine=s390x-ibm
1106 os=-tpf
1107 ;;
1108 udi29k)
1109 basic_machine=a29k-amd
1110 os=-udi
1111 ;;
1112 ultra3)
1113 basic_machine=a29k-nyu
1114 os=-sym1
1115 ;;
1116 v810 | necv810)
1117 basic_machine=v810-nec
1118 os=-none
1119 ;;
1120 vaxv)
1121 basic_machine=vax-dec
1122 os=-sysv
1123 ;;
1124 vms)
1125 basic_machine=vax-dec
1126 os=-vms
1127 ;;
1128 vpp*|vx|vx-*)
1129 basic_machine=f301-fujitsu
1130 ;;
1131 vxworks960)
1132 basic_machine=i960-wrs
1133 os=-vxworks
1134 ;;
1135 vxworks68)
1136 basic_machine=m68k-wrs
1137 os=-vxworks
1138 ;;
1139 vxworks29k)
1140 basic_machine=a29k-wrs
1141 os=-vxworks
1142 ;;
1143 w65*)
1144 basic_machine=w65-wdc
1145 os=-none
1146 ;;
1147 w89k-*)
1148 basic_machine=hppa1.1-winbond
1149 os=-proelf
1150 ;;
1151 xbox)
1152 basic_machine=i686-pc
1153 os=-mingw32
1154 ;;
1155 xps | xps100)
1156 basic_machine=xps100-honeywell
1157 ;;
1158 ymp)
1159 basic_machine=ymp-cray
1160 os=-unicos
1161 ;;
1162 z8k-*-coff)
1163 basic_machine=z8k-unknown
1164 os=-sim
1165 ;;
1166 z80-*-coff)
1167 basic_machine=z80-unknown
1168 os=-sim
1169 ;;
1170 none)
1171 basic_machine=none-none
1172 os=-none
1173 ;;
1174
1175 # Here we handle the default manufacturer of certain CPU types. It is in
1176 # some cases the only manufacturer, in others, it is the most popular.
1177 w89k)
1178 basic_machine=hppa1.1-winbond
1179 ;;
1180 op50n)
1181 basic_machine=hppa1.1-oki
1182 ;;
1183 op60c)
1184 basic_machine=hppa1.1-oki
1185 ;;
1186 romp)
1187 basic_machine=romp-ibm
1188 ;;
1189 mmix)
1190 basic_machine=mmix-knuth
1191 ;;
1192 rs6000)
1193 basic_machine=rs6000-ibm
1194 ;;
1195 vax)
1196 basic_machine=vax-dec
1197 ;;
1198 pdp10)
1199 # there are many clones, so DEC is not a safe bet
1200 basic_machine=pdp10-unknown
1201 ;;
1202 pdp11)
1203 basic_machine=pdp11-dec
1204 ;;
1205 we32k)
1206 basic_machine=we32k-att
1207 ;;
1208 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1209 basic_machine=sh-unknown
1210 ;;
1211 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1212 basic_machine=sparc-sun
1213 ;;
1214 cydra)
1215 basic_machine=cydra-cydrome
1216 ;;
1217 orion)
1218 basic_machine=orion-highlevel
1219 ;;
1220 orion105)
1221 basic_machine=clipper-highlevel
1222 ;;
1223 mac | mpw | mac-mpw)
1224 basic_machine=m68k-apple
1225 ;;
1226 pmac | pmac-mpw)
1227 basic_machine=powerpc-apple
1228 ;;
1229 *-unknown)
1230 # Make sure to match an already-canonicalized machine name.
1231 ;;
1232 *)
1233 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1234 exit 1
1235 ;;
1236 esac
1237
1238 # Here we canonicalize certain aliases for manufacturers.
1239 case $basic_machine in
1240 *-digital*)
1241 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1242 ;;
1243 *-commodore*)
1244 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1245 ;;
1246 *)
1247 ;;
1248 esac
1249
1250 # Decode manufacturer-specific aliases for certain operating systems.
1251
1252 if [ x"$os" != x"" ]
1253 then
1254 case $os in
1255 # First match some system type aliases
1256 # that might get confused with valid system types.
1257 # -solaris* is a basic system type, with this one exception.
1258 -auroraux)
1259 os=-auroraux
1260 ;;
1261 -solaris1 | -solaris1.*)
1262 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1263 ;;
1264 -solaris)
1265 os=-solaris2
1266 ;;
1267 -svr4*)
1268 os=-sysv4
1269 ;;
1270 -unixware*)
1271 os=-sysv4.2uw
1272 ;;
1273 -gnu/linux*)
1274 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1275 ;;
1276 # First accept the basic system types.
1277 # The portable systems comes first.
1278 # Each alternative MUST END IN A *, to match a version number.
1279 # -sysv* is not here because it comes later, after sysvr4.
1280 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1281 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1282 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1283 | -sym* | -kopensolaris* \
1284 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1285 | -aos* | -aros* \
1286 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1287 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1288 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1289 | -openbsd* | -solidbsd* \
1290 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1291 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1292 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1293 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1294 | -chorusos* | -chorusrdb* | -cegcc* \
1295 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1296 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1297 | -uxpv* | -beos* | -mpeix* | -udk* \
1298 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1299 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1300 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1301 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1302 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1303 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1304 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1305 # Remember, each alternative MUST END IN *, to match a version number.
1306 ;;
1307 -qnx*)
1308 case $basic_machine in
1309 x86-* | i*86-*)
1310 ;;
1311 *)
1312 os=-nto$os
1313 ;;
1314 esac
1315 ;;
1316 -nto-qnx*)
1317 ;;
1318 -nto*)
1319 os=`echo $os | sed -e 's|nto|nto-qnx|'`
1320 ;;
1321 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1322 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1323 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1324 ;;
1325 -mac*)
1326 os=`echo $os | sed -e 's|mac|macos|'`
1327 ;;
1328 -linux-dietlibc)
1329 os=-linux-dietlibc
1330 ;;
1331 -linux*)
1332 os=`echo $os | sed -e 's|linux|linux-gnu|'`
1333 ;;
1334 -sunos5*)
1335 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1336 ;;
1337 -sunos6*)
1338 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1339 ;;
1340 -opened*)
1341 os=-openedition
1342 ;;
1343 -os400*)
1344 os=-os400
1345 ;;
1346 -wince*)
1347 os=-wince
1348 ;;
1349 -osfrose*)
1350 os=-osfrose
1351 ;;
1352 -osf*)
1353 os=-osf
1354 ;;
1355 -utek*)
1356 os=-bsd
1357 ;;
1358 -dynix*)
1359 os=-bsd
1360 ;;
1361 -acis*)
1362 os=-aos
1363 ;;
1364 -atheos*)
1365 os=-atheos
1366 ;;
1367 -syllable*)
1368 os=-syllable
1369 ;;
1370 -386bsd)
1371 os=-bsd
1372 ;;
1373 -ctix* | -uts*)
1374 os=-sysv
1375 ;;
1376 -nova*)
1377 os=-rtmk-nova
1378 ;;
1379 -ns2 )
1380 os=-nextstep2
1381 ;;
1382 -nsk*)
1383 os=-nsk
1384 ;;
1385 # Preserve the version number of sinix5.
1386 -sinix5.*)
1387 os=`echo $os | sed -e 's|sinix|sysv|'`
1388 ;;
1389 -sinix*)
1390 os=-sysv4
1391 ;;
1392 -tpf*)
1393 os=-tpf
1394 ;;
1395 -triton*)
1396 os=-sysv3
1397 ;;
1398 -oss*)
1399 os=-sysv3
1400 ;;
1401 -svr4)
1402 os=-sysv4
1403 ;;
1404 -svr3)
1405 os=-sysv3
1406 ;;
1407 -sysvr4)
1408 os=-sysv4
1409 ;;
1410 # This must come after -sysvr4.
1411 -sysv*)
1412 ;;
1413 -ose*)
1414 os=-ose
1415 ;;
1416 -es1800*)
1417 os=-ose
1418 ;;
1419 -xenix)
1420 os=-xenix
1421 ;;
1422 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1423 os=-mint
1424 ;;
1425 -aros*)
1426 os=-aros
1427 ;;
1428 -kaos*)
1429 os=-kaos
1430 ;;
1431 -zvmoe)
1432 os=-zvmoe
1433 ;;
1434 -dicos*)
1435 os=-dicos
1436 ;;
1437 -none)
1438 ;;
1439 *)
1440 # Get rid of the `-' at the beginning of $os.
1441 os=`echo $os | sed 's/[^-]*-//'`
1442 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1443 exit 1
1444 ;;
1445 esac
1446 else
1447
1448 # Here we handle the default operating systems that come with various machines.
1449 # The value should be what the vendor currently ships out the door with their
1450 # machine or put another way, the most popular os provided with the machine.
1451
1452 # Note that if you're going to try to match "-MANUFACTURER" here (say,
1453 # "-sun"), then you have to tell the case statement up towards the top
1454 # that MANUFACTURER isn't an operating system. Otherwise, code above
1455 # will signal an error saying that MANUFACTURER isn't an operating
1456 # system, and we'll never get to this point.
1457
1458 case $basic_machine in
1459 score-*)
1460 os=-elf
1461 ;;
1462 spu-*)
1463 os=-elf
1464 ;;
1465 *-acorn)
1466 os=-riscix1.2
1467 ;;
1468 arm*-rebel)
1469 os=-linux
1470 ;;
1471 arm*-semi)
1472 os=-aout
1473 ;;
1474 c4x-* | tic4x-*)
1475 os=-coff
1476 ;;
1477 # This must come before the *-dec entry.
1478 pdp10-*)
1479 os=-tops20
1480 ;;
1481 pdp11-*)
1482 os=-none
1483 ;;
1484 *-dec | vax-*)
1485 os=-ultrix4.2
1486 ;;
1487 m68*-apollo)
1488 os=-domain
1489 ;;
1490 i386-sun)
1491 os=-sunos4.0.2
1492 ;;
1493 m68000-sun)
1494 os=-sunos3
1495 # This also exists in the configure program, but was not the
1496 # default.
1497 # os=-sunos4
1498 ;;
1499 m68*-cisco)
1500 os=-aout
1501 ;;
1502 mep-*)
1503 os=-elf
1504 ;;
1505 mips*-cisco)
1506 os=-elf
1507 ;;
1508 mips*-*)
1509 os=-elf
1510 ;;
1511 or32-*)
1512 os=-coff
1513 ;;
1514 *-tti) # must be before sparc entry or we get the wrong os.
1515 os=-sysv3
1516 ;;
1517 sparc-* | *-sun)
1518 os=-sunos4.1.1
1519 ;;
1520 *-be)
1521 os=-beos
1522 ;;
1523 *-haiku)
1524 os=-haiku
1525 ;;
1526 *-ibm)
1527 os=-aix
1528 ;;
1529 *-knuth)
1530 os=-mmixware
1531 ;;
1532 *-wec)
1533 os=-proelf
1534 ;;
1535 *-winbond)
1536 os=-proelf
1537 ;;
1538 *-oki)
1539 os=-proelf
1540 ;;
1541 *-hp)
1542 os=-hpux
1543 ;;
1544 *-hitachi)
1545 os=-hiux
1546 ;;
1547 i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1548 os=-sysv
1549 ;;
1550 *-cbm)
1551 os=-amigaos
1552 ;;
1553 *-dg)
1554 os=-dgux
1555 ;;
1556 *-dolphin)
1557 os=-sysv3
1558 ;;
1559 m68k-ccur)
1560 os=-rtu
1561 ;;
1562 m88k-omron*)
1563 os=-luna
1564 ;;
1565 *-next )
1566 os=-nextstep
1567 ;;
1568 *-sequent)
1569 os=-ptx
1570 ;;
1571 *-crds)
1572 os=-unos
1573 ;;
1574 *-ns)
1575 os=-genix
1576 ;;
1577 i370-*)
1578 os=-mvs
1579 ;;
1580 *-next)
1581 os=-nextstep3
1582 ;;
1583 *-gould)
1584 os=-sysv
1585 ;;
1586 *-highlevel)
1587 os=-bsd
1588 ;;
1589 *-encore)
1590 os=-bsd
1591 ;;
1592 *-sgi)
1593 os=-irix
1594 ;;
1595 *-siemens)
1596 os=-sysv4
1597 ;;
1598 *-masscomp)
1599 os=-rtu
1600 ;;
1601 f30[01]-fujitsu | f700-fujitsu)
1602 os=-uxpv
1603 ;;
1604 *-rom68k)
1605 os=-coff
1606 ;;
1607 *-*bug)
1608 os=-coff
1609 ;;
1610 *-apple)
1611 os=-macos
1612 ;;
1613 *-atari*)
1614 os=-mint
1615 ;;
1616 *)
1617 os=-none
1618 ;;
1619 esac
1620 fi
1621
1622 # Here we handle the case where we know the os, and the CPU type, but not the
1623 # manufacturer. We pick the logical manufacturer.
1624 vendor=unknown
1625 case $basic_machine in
1626 *-unknown)
1627 case $os in
1628 -riscix*)
1629 vendor=acorn
1630 ;;
1631 -sunos*)
1632 vendor=sun
1633 ;;
1634 -cnk*|-aix*)
1635 vendor=ibm
1636 ;;
1637 -beos*)
1638 vendor=be
1639 ;;
1640 -hpux*)
1641 vendor=hp
1642 ;;
1643 -mpeix*)
1644 vendor=hp
1645 ;;
1646 -hiux*)
1647 vendor=hitachi
1648 ;;
1649 -unos*)
1650 vendor=crds
1651 ;;
1652 -dgux*)
1653 vendor=dg
1654 ;;
1655 -luna*)
1656 vendor=omron
1657 ;;
1658 -genix*)
1659 vendor=ns
1660 ;;
1661 -mvs* | -opened*)
1662 vendor=ibm
1663 ;;
1664 -os400*)
1665 vendor=ibm
1666 ;;
1667 -ptx*)
1668 vendor=sequent
1669 ;;
1670 -tpf*)
1671 vendor=ibm
1672 ;;
1673 -vxsim* | -vxworks* | -windiss*)
1674 vendor=wrs
1675 ;;
1676 -aux*)
1677 vendor=apple
1678 ;;
1679 -hms*)
1680 vendor=hitachi
1681 ;;
1682 -mpw* | -macos*)
1683 vendor=apple
1684 ;;
1685 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1686 vendor=atari
1687 ;;
1688 -vos*)
1689 vendor=stratus
1690 ;;
1691 esac
1692 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1693 ;;
1694 esac
1695
1696 echo $basic_machine$os
1697 exit
1698
1699 # Local variables:
1700 # eval: (add-hook 'write-file-hooks 'time-stamp)
1701 # time-stamp-start: "timestamp='"
1702 # time-stamp-format: "%:y-%02m-%02d"
1703 # time-stamp-end: "'"
1704 # End:
+1630
-250
configure less more
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.68 for virt-viewer 0.4.1.
2 # Generated by GNU Autoconf 2.68 for virt-viewer 0.5.4.
33 #
44 #
55 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
566566 # Identity of this package.
567567 PACKAGE_NAME='virt-viewer'
568568 PACKAGE_TARNAME='virt-viewer'
569 PACKAGE_VERSION='0.4.1'
570 PACKAGE_STRING='virt-viewer 0.4.1'
569 PACKAGE_VERSION='0.5.4'
570 PACKAGE_STRING='virt-viewer 0.5.4'
571571 PACKAGE_BUGREPORT=''
572572 PACKAGE_URL=''
573573
623623 NSPR_CFLAGS
624624 HAVE_SPICE_GTK_FALSE
625625 HAVE_SPICE_GTK_TRUE
626 SPICE_PROTOCOL_LIBS
627 SPICE_PROTOCOL_CFLAGS
628 SPICE_CONTROLLER_LIBS
629 SPICE_CONTROLLER_CFLAGS
626630 SPICE_GTK_LIBS
627631 SPICE_GTK_CFLAGS
632 HAVE_GTK_VNC_FALSE
633 HAVE_GTK_VNC_TRUE
628634 GTK_VNC_LIBS
629635 GTK_VNC_CFLAGS
630636 GTK_LIBS
636642 GTK_VNC_API_VERSION
637643 GTK_REQUIRED
638644 GTK_API_VERSION
645 HAVE_LIBVIRT_FALSE
646 HAVE_LIBVIRT_TRUE
639647 LIBVIRT_LIBS
640648 LIBVIRT_CFLAGS
641649 LIBXML2_LIBS
642650 LIBXML2_CFLAGS
643651 GLIB2_LIBS
644652 GLIB2_CFLAGS
653 GLIB_MKENUMS
645654 PKG_CONFIG_LIBDIR
646655 PKG_CONFIG_PATH
647656 PKG_CONFIG
648 DATADIRNAME
649657 ALL_LINGUAS
650658 INTLTOOL_PERL
651 GMSGFMT
652 MSGFMT
653659 MSGMERGE
654 XGETTEXT
655660 INTLTOOL_POLICY_RULE
656661 INTLTOOL_SERVICE_RULE
657662 INTLTOOL_THEME_RULE
671676 INTLTOOL_KEYS_RULE
672677 INTLTOOL_DIRECTORY_RULE
673678 INTLTOOL_DESKTOP_RULE
679 intltool__v_merge_options_0
680 intltool__v_merge_options_
681 INTLTOOL_V_MERGE_OPTIONS
682 INTLTOOL__v_MERGE_0
683 INTLTOOL__v_MERGE_
684 INTLTOOL_V_MERGE
674685 INTLTOOL_EXTRACT
675686 INTLTOOL_MERGE
676687 INTLTOOL_UPDATE
688 MKINSTALLDIRS
689 POSUB
690 POFILES
691 PO_IN_DATADIR_FALSE
692 PO_IN_DATADIR_TRUE
693 INTLLIBS
694 INSTOBJEXT
695 GMOFILES
696 DATADIRNAME
697 CATOBJEXT
698 CATALOGS
699 XGETTEXT
700 GMSGFMT
701 MSGFMT_OPTS
702 MSGFMT
677703 USE_NLS
678704 GETTEXT_PACKAGE
679705 WARN_CFLAGS
706 WINDRES
707 ICOTOOL
680708 CPP
681709 OTOOL64
682710 OTOOL
702730 am__fastdepCC_FALSE
703731 am__fastdepCC_TRUE
704732 CCDEPMODE
733 am__nodep
705734 AMDEPBACKSLASH
706735 AMDEP_FALSE
707736 AMDEP_TRUE
715744 LDFLAGS
716745 CFLAGS
717746 CC
747 OS_WIN32_FALSE
748 OS_WIN32_TRUE
718749 AM_BACKSLASH
719750 AM_DEFAULT_VERBOSITY
751 AM_DEFAULT_V
752 AM_V
720753 host_os
721754 host_vendor
722755 host_cpu
801834 enable_compile_warnings
802835 enable_iso_c
803836 enable_nls
837 with_libvirt
804838 with_gtk
839 with_gtk_vnc
805840 with_spice_gtk
806841 enable_plugin
807842 '
829864 GTK_VNC_LIBS
830865 SPICE_GTK_CFLAGS
831866 SPICE_GTK_LIBS
867 SPICE_CONTROLLER_CFLAGS
868 SPICE_CONTROLLER_LIBS
869 SPICE_PROTOCOL_CFLAGS
870 SPICE_PROTOCOL_LIBS
832871 NSPR_CFLAGS
833872 NSPR_LIBS
834873 FIREFOX_PLUGIN_CFLAGS
13771416 # Omit some internal or obsolete options to make the list less imposing.
13781417 # This message is too long to be a string in the A/UX 3.1 sh.
13791418 cat <<_ACEOF
1380 \`configure' configures virt-viewer 0.4.1 to adapt to many kinds of systems.
1419 \`configure' configures virt-viewer 0.5.4 to adapt to many kinds of systems.
13811420
13821421 Usage: $0 [OPTION]... [VAR=VALUE]...
13831422
14471486
14481487 if test -n "$ac_init_help"; then
14491488 case $ac_init_help in
1450 short | recursive ) echo "Configuration of virt-viewer 0.4.1:";;
1489 short | recursive ) echo "Configuration of virt-viewer 0.5.4:";;
14511490 esac
14521491 cat <<\_ACEOF
14531492
14551494 --disable-option-checking ignore unrecognized --enable/--with options
14561495 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
14571496 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
1458 --enable-silent-rules less verbose build output (undo: `make V=1')
1459 --disable-silent-rules verbose build output (undo: `make V=0')
1460 --disable-dependency-tracking speeds up one-time build
1461 --enable-dependency-tracking do not reject slow dependency extractors
1497 --enable-silent-rules less verbose build output (undo: "make V=1")
1498 --disable-silent-rules verbose build output (undo: "make V=0")
1499 --enable-dependency-tracking
1500 do not reject slow dependency extractors
1501 --disable-dependency-tracking
1502 speeds up one-time build
14621503 --enable-shared[=PKGS] build shared libraries [default=yes]
14631504 --enable-static[=PKGS] build static libraries [default=yes]
14641505 --enable-fast-install[=PKGS]
14731514 Optional Packages:
14741515 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
14751516 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
1476 --with-pic try to use only PIC/non-PIC objects [default=use
1517 --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
14771518 both]
14781519 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
14791520 --with-sysroot=DIR Search for dependent libraries within DIR
14801521 (or the compiler's sysroot if not specified).
1522 --without-libvirt Ignore presence of libvirt and disable it
14811523 --with-gtk=2.0|3.0 which gtk+ version to compile against (default: 2.0)
1524 --without-gtk-vnc Ignore presence of gtk-vnc and disable it
14821525 --without-spice-gtk Ignore presence of spice-gtk and disable it
14831526
14841527 Some influential environment variables:
15161559 C compiler flags for SPICE_GTK, overriding pkg-config
15171560 SPICE_GTK_LIBS
15181561 linker flags for SPICE_GTK, overriding pkg-config
1562 SPICE_CONTROLLER_CFLAGS
1563 C compiler flags for SPICE_CONTROLLER, overriding pkg-config
1564 SPICE_CONTROLLER_LIBS
1565 linker flags for SPICE_CONTROLLER, overriding pkg-config
1566 SPICE_PROTOCOL_CFLAGS
1567 C compiler flags for SPICE_PROTOCOL, overriding pkg-config
1568 SPICE_PROTOCOL_LIBS
1569 linker flags for SPICE_PROTOCOL, overriding pkg-config
15191570 NSPR_CFLAGS C compiler flags for NSPR, overriding pkg-config
15201571 NSPR_LIBS linker flags for NSPR, overriding pkg-config
15211572 FIREFOX_PLUGIN_CFLAGS
15931644 test -n "$ac_init_help" && exit $ac_status
15941645 if $ac_init_version; then
15951646 cat <<\_ACEOF
1596 virt-viewer configure 0.4.1
1647 virt-viewer configure 0.5.4
15971648 generated by GNU Autoconf 2.68
15981649
15991650 Copyright (C) 2010 Free Software Foundation, Inc.
19582009 This file contains any messages produced by compilers while
19592010 running configure, to aid debugging if configure makes a mistake.
19602011
1961 It was created by virt-viewer $as_me 0.4.1, which was
2012 It was created by virt-viewer $as_me 0.5.4, which was
19622013 generated by GNU Autoconf 2.68. Invocation command line was
19632014
19642015 $ $0 $@
23072358
23082359
23092360
2310 ac_config_headers="$ac_config_headers config.h"
2311
2312 am__api_version='1.11'
23132361
23142362 ac_aux_dir=
2315 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2363 for ac_dir in build-aux "$srcdir"/build-aux; do
23162364 if test -f "$ac_dir/install-sh"; then
23172365 ac_aux_dir=$ac_dir
23182366 ac_install_sh="$ac_aux_dir/install-sh -c"
23282376 fi
23292377 done
23302378 if test -z "$ac_aux_dir"; then
2331 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2379 as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
23322380 fi
23332381
23342382 # These three variables are undocumented and unsupported,
23392387 ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
23402388 ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
23412389
2390
2391 ac_config_headers="$ac_config_headers config.h"
2392
2393 am__api_version='1.12'
23422394
23432395 # Find a good install program. We prefer a C program (faster),
23442396 # so one script is as good as another. But avoid the broken or
24352487
24362488 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
24372489 $as_echo_n "checking whether build environment is sane... " >&6; }
2438 # Just in case
2439 sleep 1
2440 echo timestamp > conftest.file
24412490 # Reject unsafe characters in $srcdir or the absolute working directory
24422491 # name. Accept space and tab only in the latter.
24432492 am_lf='
24482497 esac
24492498 case $srcdir in
24502499 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2451 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
2500 as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
24522501 esac
24532502
2454 # Do `set' in a subshell so we don't clobber the current shell's
2503 # Do 'set' in a subshell so we don't clobber the current shell's
24552504 # arguments. Must try -L first in case configure is actually a
24562505 # symlink; some systems play weird games with the mod time of symlinks
24572506 # (eg FreeBSD returns the mod time of the symlink's containing
24582507 # directory).
24592508 if (
2460 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
2461 if test "$*" = "X"; then
2462 # -L didn't work.
2463 set X `ls -t "$srcdir/configure" conftest.file`
2464 fi
2465 rm -f conftest.file
2466 if test "$*" != "X $srcdir/configure conftest.file" \
2467 && test "$*" != "X conftest.file $srcdir/configure"; then
2468
2469 # If neither matched, then we have a broken ls. This can happen
2470 # if, for instance, CONFIG_SHELL is bash and it inherits a
2471 # broken ls alias from the environment. This has actually
2472 # happened. Such a system could not be considered "sane".
2473 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
2474 alias in your environment" "$LINENO" 5
2475 fi
2476
2509 am_has_slept=no
2510 for am_try in 1 2; do
2511 echo "timestamp, slept: $am_has_slept" > conftest.file
2512 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
2513 if test "$*" = "X"; then
2514 # -L didn't work.
2515 set X `ls -t "$srcdir/configure" conftest.file`
2516 fi
2517 if test "$*" != "X $srcdir/configure conftest.file" \
2518 && test "$*" != "X conftest.file $srcdir/configure"; then
2519
2520 # If neither matched, then we have a broken ls. This can happen
2521 # if, for instance, CONFIG_SHELL is bash and it inherits a
2522 # broken ls alias from the environment. This has actually
2523 # happened. Such a system could not be considered "sane".
2524 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
2525 alias in your environment" "$LINENO" 5
2526 fi
2527 if test "$2" = conftest.file || test $am_try -eq 2; then
2528 break
2529 fi
2530 # Just in case.
2531 sleep 1
2532 am_has_slept=yes
2533 done
24772534 test "$2" = conftest.file
24782535 )
24792536 then
24852542 fi
24862543 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
24872544 $as_echo "yes" >&6; }
2545 # If we didn't sleep, we still need to ensure time stamps of config.status and
2546 # generated files are strictly newer.
2547 am_sleep_pid=
2548 if grep 'slept: no' conftest.file >/dev/null 2>&1; then
2549 ( sleep 1 ) &
2550 am_sleep_pid=$!
2551 fi
2552
2553 rm -f conftest.file
2554
24882555 test "$program_prefix" != NONE &&
24892556 program_transform_name="s&^&$program_prefix&;$program_transform_name"
24902557 # Use a double $ so make ignores it.
25112578 am_missing_run="$MISSING --run "
25122579 else
25132580 am_missing_run=
2514 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
2515 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
2581 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
2582 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
25162583 fi
25172584
25182585 if test x"${install_sh}" != xset; then
25242591 esac
25252592 fi
25262593
2527 # Installed binaries are usually stripped using `strip' when the user
2528 # run `make install-strip'. However `strip' might not be the right
2594 # Installed binaries are usually stripped using 'strip' when the user
2595 # run "make install-strip". However 'strip' might not be the right
25292596 # tool to use in cross-compilation environments, therefore Automake
2530 # will honor the `STRIP' environment variable to overrule this program.
2597 # will honor the 'STRIP' environment variable to overrule this program.
25312598 if test "$cross_compiling" != no; then
25322599 if test -n "$ac_tool_prefix"; then
25332600 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
26662733 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
26672734 $as_echo "$MKDIR_P" >&6; }
26682735
2669 mkdir_p="$MKDIR_P"
2670 case $mkdir_p in
2671 [\\/$]* | ?:[\\/]*) ;;
2672 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
2673 esac
2674
26752736 for ac_prog in gawk mawk nawk awk
26762737 do
26772738 # Extract the first word of "$ac_prog", so it can be a program name with args.
27762837
27772838 # Define the identity of the package.
27782839 PACKAGE='virt-viewer'
2779 VERSION='0.4.1'
2840 VERSION='0.5.4'
27802841
27812842
27822843 cat >>confdefs.h <<_ACEOF
28042865
28052866 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
28062867
2868 # For better backward compatibility. To be removed once Automake 1.9.x
2869 # dies out for good. For more background, see:
2870 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
2871 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
2872 mkdir_p='$(MKDIR_P)'
2873
28072874 # We need awk for the "check" target. The system "awk" is bad on
28082875 # some platforms.
2809 # Always define AMTAR for backward compatibility.
2810
2811 AMTAR=${AMTAR-"${am_missing_run}tar"}
2812
2813 am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
2876 # Always define AMTAR for backward compatibility. Yes, it's still used
2877 # in the wild :-( We should find a proper way to deprecate it ...
2878 AMTAR='$${TAR-tar}'
2879
2880 am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
28142881
28152882
28162883
28952962 enableval=$enable_silent_rules;
28962963 fi
28972964
2898 case $enable_silent_rules in
2899 yes) AM_DEFAULT_VERBOSITY=0;;
2900 no) AM_DEFAULT_VERBOSITY=1;;
2901 *) AM_DEFAULT_VERBOSITY=0;;
2965 case $enable_silent_rules in # (((
2966 yes) AM_DEFAULT_VERBOSITY=0;;
2967 no) AM_DEFAULT_VERBOSITY=1;;
2968 *) AM_DEFAULT_VERBOSITY=0;;
29022969 esac
2970 am_make=${MAKE-make}
2971 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
2972 $as_echo_n "checking whether $am_make supports nested variables... " >&6; }
2973 if ${am_cv_make_support_nested_variables+:} false; then :
2974 $as_echo_n "(cached) " >&6
2975 else
2976 if $as_echo 'TRUE=$(BAR$(V))
2977 BAR0=false
2978 BAR1=true
2979 V=1
2980 am__doit:
2981 @$(TRUE)
2982 .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
2983 am_cv_make_support_nested_variables=yes
2984 else
2985 am_cv_make_support_nested_variables=no
2986 fi
2987 fi
2988 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
2989 $as_echo "$am_cv_make_support_nested_variables" >&6; }
2990 if test $am_cv_make_support_nested_variables = yes; then
2991 AM_V='$(V)'
2992 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
2993 else
2994 AM_V=$AM_DEFAULT_VERBOSITY
2995 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
2996 fi
29032997 AM_BACKSLASH='\'
29042998
29052999
2906 GLIB2_REQUIRED=2.12.0
3000 GLIB2_REQUIRED=2.22.0
29073001 LIBXML2_REQUIRED="2.6.0"
2908 LIBVIRT_REQUIRED="0.6.0"
2909 GTK2_REQUIRED="2.12.0"
3002 LIBVIRT_REQUIRED="0.9.7"
3003 GTK2_REQUIRED="2.18.0"
29103004 GTK3_REQUIRED="3.0"
2911 GTK_VNC_REQUIRED="0.3.8"
2912 SPICE_GTK_REQUIRED="0.6"
3005 GTK_VNC1_REQUIRED="0.3.8"
3006 GTK_VNC2_REQUIRED="0.4.0"
3007 SPICE_GTK_REQUIRED="0.12.101"
3008 SPICE_PROTOCOL_REQUIRED="0.10.1"
3009
3010 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native Win32" >&5
3011 $as_echo_n "checking for native Win32... " >&6; }
3012 case "$host_os" in
3013 *mingw*|*cygwin*)
3014 os_win32=yes
3015 ;;
3016 *)
3017 os_win32=no
3018 ;;
3019 esac
3020 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $os_win32" >&5
3021 $as_echo "$os_win32" >&6; }
3022 if test "$os_win32" = "yes"; then
3023 OS_WIN32_TRUE=
3024 OS_WIN32_FALSE='#'
3025 else
3026 OS_WIN32_TRUE='#'
3027 OS_WIN32_FALSE=
3028 fi
3029
29133030
29143031 ac_ext=c
29153032 ac_cpp='$CPP $CPPFLAGS'
37193836 _am_result=none
37203837 # First try GNU make style include.
37213838 echo "include confinc" > confmf
3722 # Ignore all kinds of additional output from `make'.
3839 # Ignore all kinds of additional output from 'make'.
37233840 case `$am_make -s -f confmf 2> /dev/null` in #(
37243841 *the\ am__doit\ target*)
37253842 am__include=include
37523869 if test "x$enable_dependency_tracking" != xno; then
37533870 am_depcomp="$ac_aux_dir/depcomp"
37543871 AMDEPBACKSLASH='\'
3872 am__nodep='_no'
37553873 fi
37563874 if test "x$enable_dependency_tracking" != xno; then
37573875 AMDEP_TRUE=
37743892 # We make a subdir and do the tests there. Otherwise we can end up
37753893 # making bogus files that we don't know about and never remove. For
37763894 # instance it was reported that on HP-UX the gcc test will end up
3777 # making a dummy file named `D' -- because `-MD' means `put the output
3778 # in D'.
3895 # making a dummy file named 'D' -- because '-MD' means "put the output
3896 # in D".
3897 rm -rf conftest.dir
37793898 mkdir conftest.dir
37803899 # Copy depcomp to subdir because otherwise we won't find it if we're
37813900 # using a relative directory.
38093928 : > sub/conftest.c
38103929 for i in 1 2 3 4 5 6; do
38113930 echo '#include "conftst'$i'.h"' >> sub/conftest.c
3812 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
3813 # Solaris 8's {/usr,}/bin/sh.
3814 touch sub/conftst$i.h
3931 # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
3932 # Solaris 10 /bin/sh.
3933 echo '/* dummy */' > sub/conftst$i.h
38153934 done
38163935 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
38173936
3818 # We check with `-c' and `-o' for the sake of the "dashmstdout"
3937 # We check with '-c' and '-o' for the sake of the "dashmstdout"
38193938 # mode. It turns out that the SunPro C++ compiler does not properly
3820 # handle `-M -o', and we need to detect this. Also, some Intel
3821 # versions had trouble with output in subdirs
3939 # handle '-M -o', and we need to detect this. Also, some Intel
3940 # versions had trouble with output in subdirs.
38223941 am__obj=sub/conftest.${OBJEXT-o}
38233942 am__minus_obj="-o $am__obj"
38243943 case $depmode in
38273946 test "$am__universal" = false || continue
38283947 ;;
38293948 nosideeffect)
3830 # after this tag, mechanisms are not by side-effect, so they'll
3831 # only be used when explicitly requested
3949 # After this tag, mechanisms are not by side-effect, so they'll
3950 # only be used when explicitly requested.
38323951 if test "x$enable_dependency_tracking" = xyes; then
38333952 continue
38343953 else
38353954 break
38363955 fi
38373956 ;;
3838 msvisualcpp | msvcmsys)
3839 # This compiler won't grok `-c -o', but also, the minuso test has
3957 msvc7 | msvc7msys | msvisualcpp | msvcmsys)
3958 # This compiler won't grok '-c -o', but also, the minuso test has
38403959 # not run yet. These depmodes are late enough in the game, and
38413960 # so weak that their functioning should not be impacted.
38423961 am__obj=conftest.${OBJEXT-o}
40244143
40254144
40264145
4027 macro_version='2.4'
4028 macro_revision='1.3293'
4146 macro_version='2.4.2'
4147 macro_revision='1.3337'
40294148
40304149
40314150
47994918 lt_cv_sys_max_cmd_len=196608
48004919 ;;
48014920
4921 os2*)
4922 # The test takes a long time on OS/2.
4923 lt_cv_sys_max_cmd_len=8192
4924 ;;
4925
48024926 osf*)
48034927 # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
48044928 # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
48384962 # If test is not a shell built-in, we'll probably end up computing a
48394963 # maximum length that is only half of the actual maximum length, but
48404964 # we can't tell.
4841 while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
4965 while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
48424966 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
48434967 test $i != 17 # 1/2 MB should be enough
48444968 do
52675391 lt_cv_deplibs_check_method=pass_all
52685392 ;;
52695393
5270 # This must be Linux ELF.
5394 # This must be glibc/ELF.
52715395 linux* | k*bsd*-gnu | kopensolaris*-gnu)
52725396 lt_cv_deplibs_check_method=pass_all
52735397 ;;
59086032 if test -n "$RANLIB"; then
59096033 case $host_os in
59106034 openbsd*)
5911 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
6035 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
59126036 ;;
59136037 *)
5914 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
6038 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
59156039 ;;
59166040 esac
5917 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
6041 old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
59186042 fi
59196043
59206044 case $host_os in
60616185 # which start with @ or ?.
60626186 lt_cv_sys_global_symbol_pipe="$AWK '"\
60636187 " {last_section=section; section=\$ 3};"\
6188 " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
60646189 " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
60656190 " \$ 0!~/External *\|/{next};"\
60666191 " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
64496574 CFLAGS="$SAVE_CFLAGS"
64506575 fi
64516576 ;;
6452 sparc*-*solaris*)
6577 *-*solaris*)
64536578 # Find out which ABI we are using.
64546579 echo 'int i;' > conftest.$ac_ext
64556580 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
64606585 case `/usr/bin/file conftest.o` in
64616586 *64-bit*)
64626587 case $lt_cv_prog_gnu_ld in
6463 yes*) LD="${LD-ld} -m elf64_sparc" ;;
6588 yes*)
6589 case $host in
6590 i?86-*-solaris*)
6591 LD="${LD-ld} -m elf_x86_64"
6592 ;;
6593 sparc*-*-solaris*)
6594 LD="${LD-ld} -m elf64_sparc"
6595 ;;
6596 esac
6597 # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
6598 if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
6599 LD="${LD-ld}_sol2"
6600 fi
6601 ;;
64646602 *)
64656603 if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
64666604 LD="${LD-ld} -64"
71007238 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
71017239 -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
71027240 _lt_result=$?
7103 if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
7241 # If there is a non-empty error log, and "single_module"
7242 # appears in it, assume the flag caused a linker warning
7243 if test -s conftest.err && $GREP single_module conftest.err; then
7244 cat conftest.err >&5
7245 # Otherwise, if the output was created with a 0 exit code from
7246 # the compiler, it worked.
7247 elif test -f libconftest.dylib && test $_lt_result -eq 0; then
71047248 lt_cv_apple_cc_single_mod=yes
71057249 else
71067250 cat conftest.err >&5
71117255 fi
71127256 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
71137257 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
7258
71147259 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
71157260 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
71167261 if ${lt_cv_ld_exported_symbols_list+:} false; then :
71437288 fi
71447289 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
71457290 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
7291
71467292 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
71477293 $as_echo_n "checking for -force_load linker flag... " >&6; }
71487294 if ${lt_cv_ld_force_load+:} false; then :
71647310 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
71657311 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
71667312 _lt_result=$?
7167 if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
7313 if test -s conftest.err && $GREP force_load conftest.err; then
7314 cat conftest.err >&5
7315 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
71687316 lt_cv_ld_force_load=yes
71697317 else
71707318 cat conftest.err >&5
75697717
75707718 # Check whether --with-pic was given.
75717719 if test "${with_pic+set}" = set; then :
7572 withval=$with_pic; pic_mode="$withval"
7720 withval=$with_pic; lt_p=${PACKAGE-default}
7721 case $withval in
7722 yes|no) pic_mode=$withval ;;
7723 *)
7724 pic_mode=default
7725 # Look at the argument we got. We use all the common list separators.
7726 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
7727 for lt_pkg in $withval; do
7728 IFS="$lt_save_ifs"
7729 if test "X$lt_pkg" = "X$lt_p"; then
7730 pic_mode=yes
7731 fi
7732 done
7733 IFS="$lt_save_ifs"
7734 ;;
7735 esac
75737736 else
75747737 pic_mode=default
75757738 fi
76217784
76227785 # Always use our own libtool.
76237786 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
7787
7788
7789
7790
76247791
76257792
76267793
81068273 case $cc_basename in
81078274 nvcc*) # Cuda Compiler Driver 2.2
81088275 lt_prog_compiler_wl='-Xlinker '
8109 lt_prog_compiler_pic='-Xcompiler -fPIC'
8276 if test -n "$lt_prog_compiler_pic"; then
8277 lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
8278 fi
81108279 ;;
81118280 esac
81128281 else
81978366 ;;
81988367 *)
81998368 case `$CC -V 2>&1 | sed 5q` in
8200 *Sun\ F* | *Sun*Fortran*)
8369 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
82018370 # Sun Fortran 8.3 passes all unrecognized flags to the linker
82028371 lt_prog_compiler_pic='-KPIC'
82038372 lt_prog_compiler_static='-Bstatic'
82048373 lt_prog_compiler_wl=''
8374 ;;
8375 *Sun\ F* | *Sun*Fortran*)
8376 lt_prog_compiler_pic='-KPIC'
8377 lt_prog_compiler_static='-Bstatic'
8378 lt_prog_compiler_wl='-Qoption ld '
82058379 ;;
82068380 *Sun\ C*)
82078381 # Sun C 5.9
82088382 lt_prog_compiler_pic='-KPIC'
82098383 lt_prog_compiler_static='-Bstatic'
82108384 lt_prog_compiler_wl='-Wl,'
8385 ;;
8386 *Intel*\ [CF]*Compiler*)
8387 lt_prog_compiler_wl='-Wl,'
8388 lt_prog_compiler_pic='-fPIC'
8389 lt_prog_compiler_static='-static'
8390 ;;
8391 *Portland\ Group*)
8392 lt_prog_compiler_wl='-Wl,'
8393 lt_prog_compiler_pic='-fpic'
8394 lt_prog_compiler_static='-Bstatic'
82118395 ;;
82128396 esac
82138397 ;;
85708754 hardcode_direct=no
85718755 hardcode_direct_absolute=no
85728756 hardcode_libdir_flag_spec=
8573 hardcode_libdir_flag_spec_ld=
85748757 hardcode_libdir_separator=
85758758 hardcode_minus_L=no
85768759 hardcode_shlibpath_var=unsupported
88209003 xlf* | bgf* | bgxlf* | mpixlf*)
88219004 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
88229005 whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
8823 hardcode_libdir_flag_spec=
8824 hardcode_libdir_flag_spec_ld='-rpath $libdir'
9006 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
88259007 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
88269008 if test "x$supports_anon_versioning" = xyes; then
88279009 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
92009382 # The linker will not automatically build a static lib if we build a DLL.
92019383 # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
92029384 enable_shared_with_static_runtimes=yes
9385 exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
92039386 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
92049387 # Don't use ranlib
92059388 old_postinstall_cmds='chmod 644 $oldlib'
92459428 hardcode_shlibpath_var=unsupported
92469429 if test "$lt_cv_ld_force_load" = "yes"; then
92479430 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\"`'
9431
92489432 else
92499433 whole_archive_flag_spec=''
92509434 fi
92739457 hardcode_shlibpath_var=no
92749458 ;;
92759459
9276 freebsd1*)
9277 ld_shlibs=no
9278 ;;
9279
92809460 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
92819461 # support. Future versions do this automatically, but an explicit c++rt0.o
92829462 # does not break anything, and helps significantly (at the cost of a little
92899469 ;;
92909470
92919471 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
9292 freebsd2*)
9472 freebsd2.*)
92939473 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
92949474 hardcode_direct=yes
92959475 hardcode_minus_L=yes
93289508 fi
93299509 if test "$with_gnu_ld" = no; then
93309510 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
9331 hardcode_libdir_flag_spec_ld='+b $libdir'
93329511 hardcode_libdir_separator=:
93339512 hardcode_direct=yes
93349513 hardcode_direct_absolute=yes
98009979 fi
98019980 ;;
98029981 esac
9803
9804
9805
9806
9807
98089982
98099983
98109984
1004610220
1004710221 case $host_os in
1004810222 aix3*)
10049 version_type=linux
10223 version_type=linux # correct to gnu/linux during the next big refactor
1005010224 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
1005110225 shlibpath_var=LIBPATH
1005210226
1005510229 ;;
1005610230
1005710231 aix[4-9]*)
10058 version_type=linux
10232 version_type=linux # correct to gnu/linux during the next big refactor
1005910233 need_lib_prefix=no
1006010234 need_version=no
1006110235 hardcode_into_libs=yes
1012010294 ;;
1012110295
1012210296 bsdi[45]*)
10123 version_type=linux
10297 version_type=linux # correct to gnu/linux during the next big refactor
1012410298 need_version=no
1012510299 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1012610300 soname_spec='${libname}${release}${shared_ext}$major'
1025910433 ;;
1026010434
1026110435 dgux*)
10262 version_type=linux
10436 version_type=linux # correct to gnu/linux during the next big refactor
1026310437 need_lib_prefix=no
1026410438 need_version=no
1026510439 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
1026610440 soname_spec='${libname}${release}${shared_ext}$major'
1026710441 shlibpath_var=LD_LIBRARY_PATH
10268 ;;
10269
10270 freebsd1*)
10271 dynamic_linker=no
1027210442 ;;
1027310443
1027410444 freebsd* | dragonfly*)
1027810448 objformat=`/usr/bin/objformat`
1027910449 else
1028010450 case $host_os in
10281 freebsd[123]*) objformat=aout ;;
10451 freebsd[23].*) objformat=aout ;;
1028210452 *) objformat=elf ;;
1028310453 esac
1028410454 fi
1029610466 esac
1029710467 shlibpath_var=LD_LIBRARY_PATH
1029810468 case $host_os in
10299 freebsd2*)
10469 freebsd2.*)
1030010470 shlibpath_overrides_runpath=yes
1030110471 ;;
1030210472 freebsd3.[01]* | freebsdelf3.[01]*)
1031610486 ;;
1031710487
1031810488 gnu*)
10319 version_type=linux
10489 version_type=linux # correct to gnu/linux during the next big refactor
1032010490 need_lib_prefix=no
1032110491 need_version=no
1032210492 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1032310493 soname_spec='${libname}${release}${shared_ext}$major'
1032410494 shlibpath_var=LD_LIBRARY_PATH
10495 shlibpath_overrides_runpath=no
1032510496 hardcode_into_libs=yes
1032610497 ;;
1032710498
1032810499 haiku*)
10329 version_type=linux
10500 version_type=linux # correct to gnu/linux during the next big refactor
1033010501 need_lib_prefix=no
1033110502 need_version=no
1033210503 dynamic_linker="$host_os runtime_loader"
1038710558 ;;
1038810559
1038910560 interix[3-9]*)
10390 version_type=linux
10561 version_type=linux # correct to gnu/linux during the next big refactor
1039110562 need_lib_prefix=no
1039210563 need_version=no
1039310564 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
1040310574 nonstopux*) version_type=nonstopux ;;
1040410575 *)
1040510576 if test "$lt_cv_prog_gnu_ld" = yes; then
10406 version_type=linux
10577 version_type=linux # correct to gnu/linux during the next big refactor
1040710578 else
1040810579 version_type=irix
1040910580 fi ;;
1044010611 dynamic_linker=no
1044110612 ;;
1044210613
10443 # This must be Linux ELF.
10614 # This must be glibc/ELF.
1044410615 linux* | k*bsd*-gnu | kopensolaris*-gnu)
10445 version_type=linux
10616 version_type=linux # correct to gnu/linux during the next big refactor
1044610617 need_lib_prefix=no
1044710618 need_version=no
1044810619 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1052810699 ;;
1052910700
1053010701 newsos6)
10531 version_type=linux
10702 version_type=linux # correct to gnu/linux during the next big refactor
1053210703 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1053310704 shlibpath_var=LD_LIBRARY_PATH
1053410705 shlibpath_overrides_runpath=yes
1059710768 ;;
1059810769
1059910770 solaris*)
10600 version_type=linux
10771 version_type=linux # correct to gnu/linux during the next big refactor
1060110772 need_lib_prefix=no
1060210773 need_version=no
1060310774 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1062210793 ;;
1062310794
1062410795 sysv4 | sysv4.3*)
10625 version_type=linux
10796 version_type=linux # correct to gnu/linux during the next big refactor
1062610797 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1062710798 soname_spec='${libname}${release}${shared_ext}$major'
1062810799 shlibpath_var=LD_LIBRARY_PATH
1064610817
1064710818 sysv4*MP*)
1064810819 if test -d /usr/nec ;then
10649 version_type=linux
10820 version_type=linux # correct to gnu/linux during the next big refactor
1065010821 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
1065110822 soname_spec='$libname${shared_ext}.$major'
1065210823 shlibpath_var=LD_LIBRARY_PATH
1067710848
1067810849 tpf*)
1067910850 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
10680 version_type=linux
10851 version_type=linux # correct to gnu/linux during the next big refactor
1068110852 need_lib_prefix=no
1068210853 need_version=no
1068310854 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1068710858 ;;
1068810859
1068910860 uts4*)
10690 version_type=linux
10861 version_type=linux # correct to gnu/linux during the next big refactor
1069110862 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1069210863 soname_spec='${libname}${release}${shared_ext}$major'
1069310864 shlibpath_var=LD_LIBRARY_PATH
1146911640
1147011641
1147111642
11643
11644
1147211645 ac_config_commands="$ac_config_commands libtool"
1147311646
1147411647
1147811651
1147911652
1148011653
11654 for ac_prog in icotool
11655 do
11656 # Extract the first word of "$ac_prog", so it can be a program name with args.
11657 set dummy $ac_prog; ac_word=$2
11658 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11659 $as_echo_n "checking for $ac_word... " >&6; }
11660 if ${ac_cv_prog_ICOTOOL+:} false; then :
11661 $as_echo_n "(cached) " >&6
11662 else
11663 if test -n "$ICOTOOL"; then
11664 ac_cv_prog_ICOTOOL="$ICOTOOL" # Let the user override the test.
11665 else
11666 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11667 for as_dir in $PATH
11668 do
11669 IFS=$as_save_IFS
11670 test -z "$as_dir" && as_dir=.
11671 for ac_exec_ext in '' $ac_executable_extensions; do
11672 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
11673 ac_cv_prog_ICOTOOL="$ac_prog"
11674 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11675 break 2
11676 fi
11677 done
11678 done
11679 IFS=$as_save_IFS
11680
11681 fi
11682 fi
11683 ICOTOOL=$ac_cv_prog_ICOTOOL
11684 if test -n "$ICOTOOL"; then
11685 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ICOTOOL" >&5
11686 $as_echo "$ICOTOOL" >&6; }
11687 else
11688 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11689 $as_echo "no" >&6; }
11690 fi
11691
11692
11693 test -n "$ICOTOOL" && break
11694 done
11695 test -n "$ICOTOOL" || ICOTOOL="icotool"
11696
11697
11698 if test "x$os_win32" = "xyes"; then :
11699
11700 if test -n "$ac_tool_prefix"; then
11701 # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
11702 set dummy ${ac_tool_prefix}windres; ac_word=$2
11703 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11704 $as_echo_n "checking for $ac_word... " >&6; }
11705 if ${ac_cv_prog_WINDRES+:} false; then :
11706 $as_echo_n "(cached) " >&6
11707 else
11708 if test -n "$WINDRES"; then
11709 ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test.
11710 else
11711 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11712 for as_dir in $PATH
11713 do
11714 IFS=$as_save_IFS
11715 test -z "$as_dir" && as_dir=.
11716 for ac_exec_ext in '' $ac_executable_extensions; do
11717 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
11718 ac_cv_prog_WINDRES="${ac_tool_prefix}windres"
11719 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11720 break 2
11721 fi
11722 done
11723 done
11724 IFS=$as_save_IFS
11725
11726 fi
11727 fi
11728 WINDRES=$ac_cv_prog_WINDRES
11729 if test -n "$WINDRES"; then
11730 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
11731 $as_echo "$WINDRES" >&6; }
11732 else
11733 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11734 $as_echo "no" >&6; }
11735 fi
11736
11737
11738 fi
11739 if test -z "$ac_cv_prog_WINDRES"; then
11740 ac_ct_WINDRES=$WINDRES
11741 # Extract the first word of "windres", so it can be a program name with args.
11742 set dummy windres; ac_word=$2
11743 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
11744 $as_echo_n "checking for $ac_word... " >&6; }
11745 if ${ac_cv_prog_ac_ct_WINDRES+:} false; then :
11746 $as_echo_n "(cached) " >&6
11747 else
11748 if test -n "$ac_ct_WINDRES"; then
11749 ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test.
11750 else
11751 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11752 for as_dir in $PATH
11753 do
11754 IFS=$as_save_IFS
11755 test -z "$as_dir" && as_dir=.
11756 for ac_exec_ext in '' $ac_executable_extensions; do
11757 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
11758 ac_cv_prog_ac_ct_WINDRES="windres"
11759 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
11760 break 2
11761 fi
11762 done
11763 done
11764 IFS=$as_save_IFS
11765
11766 fi
11767 fi
11768 ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES
11769 if test -n "$ac_ct_WINDRES"; then
11770 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5
11771 $as_echo "$ac_ct_WINDRES" >&6; }
11772 else
11773 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11774 $as_echo "no" >&6; }
11775 fi
11776
11777 if test "x$ac_ct_WINDRES" = x; then
11778 WINDRES=""
11779 else
11780 case $cross_compiling:$ac_tool_warned in
11781 yes:)
11782 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
11783 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
11784 ac_tool_warned=yes ;;
11785 esac
11786 WINDRES=$ac_ct_WINDRES
11787 fi
11788 else
11789 WINDRES="$ac_cv_prog_WINDRES"
11790 fi
11791
11792
11793 if test -z "$WINDRES" ; then
11794 as_fn_error $? "\"windres is required to compile virt-viewer on this platform\"" "$LINENO" 5
11795 fi
11796
11797 fi
11798
1148111799
1148211800
1148311801
1148411802 $as_echo "#define _GNU_SOURCE /**/" >>confdefs.h
11803
11804
11805 # Autoconf 2.61a.99 and earlier don't support linking a file only
11806 # in VPATH builds. But since GNUmakefile is for maintainer use
11807 # only, it does not matter if we skip the link with older autoconf.
11808 # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
11809 # builds, so use a shell variable to bypass this.
11810 GNUmakefile=GNUmakefile
11811 ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"
1148511812
1148611813
1148711814
1149611823
1149711824 warnCFLAGS=
1149811825
11499 try_compiler_flags="-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables"
11826 try_compiler_flags="-fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables"
1150011827
1150111828 case "$enable_compile_warnings" in
1150211829 no)
1152111848 ;;
1152211849 esac
1152311850
11851
11852
1152411853 compiler_flags=
1152511854 for option in $try_compiler_flags; do
1152611855 SAVE_CFLAGS="$CFLAGS"
1159511924
1159611925
1159711926
11927 for ac_header in locale.h
11928 do :
11929 ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
11930 if test "x$ac_cv_header_locale_h" = xyes; then :
11931 cat >>confdefs.h <<_ACEOF
11932 #define HAVE_LOCALE_H 1
11933 _ACEOF
11934
11935 fi
11936
11937 done
11938
11939 if test $ac_cv_header_locale_h = yes; then
11940 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
11941 $as_echo_n "checking for LC_MESSAGES... " >&6; }
11942 if ${am_cv_val_LC_MESSAGES+:} false; then :
11943 $as_echo_n "(cached) " >&6
11944 else
11945 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11946 /* end confdefs.h. */
11947 #include <locale.h>
11948 int
11949 main ()
11950 {
11951 return LC_MESSAGES
11952 ;
11953 return 0;
11954 }
11955 _ACEOF
11956 if ac_fn_c_try_link "$LINENO"; then :
11957 am_cv_val_LC_MESSAGES=yes
11958 else
11959 am_cv_val_LC_MESSAGES=no
11960 fi
11961 rm -f core conftest.err conftest.$ac_objext \
11962 conftest$ac_exeext conftest.$ac_ext
11963 fi
11964 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5
11965 $as_echo "$am_cv_val_LC_MESSAGES" >&6; }
11966 if test $am_cv_val_LC_MESSAGES = yes; then
11967
11968 $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
11969
11970 fi
11971 fi
11972 USE_NLS=yes
11973
11974
11975 gt_cv_have_gettext=no
11976
11977 CATOBJEXT=NONE
11978 XGETTEXT=:
11979 INTLLIBS=
11980
11981 ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
11982 if test "x$ac_cv_header_libintl_h" = xyes; then :
11983 gt_cv_func_dgettext_libintl="no"
11984 libintl_extra_libs=""
11985
11986 #
11987 # First check in libc
11988 #
11989 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5
11990 $as_echo_n "checking for ngettext in libc... " >&6; }
11991 if ${gt_cv_func_ngettext_libc+:} false; then :
11992 $as_echo_n "(cached) " >&6
11993 else
11994 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11995 /* end confdefs.h. */
11996
11997 #include <libintl.h>
11998
11999 int
12000 main ()
12001 {
12002 return !ngettext ("","", 1)
12003 ;
12004 return 0;
12005 }
12006 _ACEOF
12007 if ac_fn_c_try_link "$LINENO"; then :
12008 gt_cv_func_ngettext_libc=yes
12009 else
12010 gt_cv_func_ngettext_libc=no
12011 fi
12012 rm -f core conftest.err conftest.$ac_objext \
12013 conftest$ac_exeext conftest.$ac_ext
12014
12015 fi
12016 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5
12017 $as_echo "$gt_cv_func_ngettext_libc" >&6; }
12018
12019 if test "$gt_cv_func_ngettext_libc" = "yes" ; then
12020 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5
12021 $as_echo_n "checking for dgettext in libc... " >&6; }
12022 if ${gt_cv_func_dgettext_libc+:} false; then :
12023 $as_echo_n "(cached) " >&6
12024 else
12025 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12026 /* end confdefs.h. */
12027
12028 #include <libintl.h>
12029
12030 int
12031 main ()
12032 {
12033 return !dgettext ("","")
12034 ;
12035 return 0;
12036 }
12037 _ACEOF
12038 if ac_fn_c_try_link "$LINENO"; then :
12039 gt_cv_func_dgettext_libc=yes
12040 else
12041 gt_cv_func_dgettext_libc=no
12042 fi
12043 rm -f core conftest.err conftest.$ac_objext \
12044 conftest$ac_exeext conftest.$ac_ext
12045
12046 fi
12047 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5
12048 $as_echo "$gt_cv_func_dgettext_libc" >&6; }
12049 fi
12050
12051 if test "$gt_cv_func_ngettext_libc" = "yes" ; then
12052 for ac_func in bind_textdomain_codeset
12053 do :
12054 ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
12055 if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
12056 cat >>confdefs.h <<_ACEOF
12057 #define HAVE_BIND_TEXTDOMAIN_CODESET 1
12058 _ACEOF
12059
12060 fi
12061 done
12062
12063 fi
12064
12065 #
12066 # If we don't have everything we want, check in libintl
12067 #
12068 if test "$gt_cv_func_dgettext_libc" != "yes" \
12069 || test "$gt_cv_func_ngettext_libc" != "yes" \
12070 || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
12071
12072 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
12073 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
12074 if ${ac_cv_lib_intl_bindtextdomain+:} false; then :
12075 $as_echo_n "(cached) " >&6
12076 else
12077 ac_check_lib_save_LIBS=$LIBS
12078 LIBS="-lintl $LIBS"
12079 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12080 /* end confdefs.h. */
12081
12082 /* Override any GCC internal prototype to avoid an error.
12083 Use char because int might match the return type of a GCC
12084 builtin and then its argument prototype would still apply. */
12085 #ifdef __cplusplus
12086 extern "C"
12087 #endif
12088 char bindtextdomain ();
12089 int
12090 main ()
12091 {
12092 return bindtextdomain ();
12093 ;
12094 return 0;
12095 }
12096 _ACEOF
12097 if ac_fn_c_try_link "$LINENO"; then :
12098 ac_cv_lib_intl_bindtextdomain=yes
12099 else
12100 ac_cv_lib_intl_bindtextdomain=no
12101 fi
12102 rm -f core conftest.err conftest.$ac_objext \
12103 conftest$ac_exeext conftest.$ac_ext
12104 LIBS=$ac_check_lib_save_LIBS
12105 fi
12106 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
12107 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
12108 if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then :
12109 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
12110 $as_echo_n "checking for ngettext in -lintl... " >&6; }
12111 if ${ac_cv_lib_intl_ngettext+:} false; then :
12112 $as_echo_n "(cached) " >&6
12113 else
12114 ac_check_lib_save_LIBS=$LIBS
12115 LIBS="-lintl $LIBS"
12116 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12117 /* end confdefs.h. */
12118
12119 /* Override any GCC internal prototype to avoid an error.
12120 Use char because int might match the return type of a GCC
12121 builtin and then its argument prototype would still apply. */
12122 #ifdef __cplusplus
12123 extern "C"
12124 #endif
12125 char ngettext ();
12126 int
12127 main ()
12128 {
12129 return ngettext ();
12130 ;
12131 return 0;
12132 }
12133 _ACEOF
12134 if ac_fn_c_try_link "$LINENO"; then :
12135 ac_cv_lib_intl_ngettext=yes
12136 else
12137 ac_cv_lib_intl_ngettext=no
12138 fi
12139 rm -f core conftest.err conftest.$ac_objext \
12140 conftest$ac_exeext conftest.$ac_ext
12141 LIBS=$ac_check_lib_save_LIBS
12142 fi
12143 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
12144 $as_echo "$ac_cv_lib_intl_ngettext" >&6; }
12145 if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
12146 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
12147 $as_echo_n "checking for dgettext in -lintl... " >&6; }
12148 if ${ac_cv_lib_intl_dgettext+:} false; then :
12149 $as_echo_n "(cached) " >&6
12150 else
12151 ac_check_lib_save_LIBS=$LIBS
12152 LIBS="-lintl $LIBS"
12153 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12154 /* end confdefs.h. */
12155
12156 /* Override any GCC internal prototype to avoid an error.
12157 Use char because int might match the return type of a GCC
12158 builtin and then its argument prototype would still apply. */
12159 #ifdef __cplusplus
12160 extern "C"
12161 #endif
12162 char dgettext ();
12163 int
12164 main ()
12165 {
12166 return dgettext ();
12167 ;
12168 return 0;
12169 }
12170 _ACEOF
12171 if ac_fn_c_try_link "$LINENO"; then :
12172 ac_cv_lib_intl_dgettext=yes
12173 else
12174 ac_cv_lib_intl_dgettext=no
12175 fi
12176 rm -f core conftest.err conftest.$ac_objext \
12177 conftest$ac_exeext conftest.$ac_ext
12178 LIBS=$ac_check_lib_save_LIBS
12179 fi
12180 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
12181 $as_echo "$ac_cv_lib_intl_dgettext" >&6; }
12182 if test "x$ac_cv_lib_intl_dgettext" = xyes; then :
12183 gt_cv_func_dgettext_libintl=yes
12184 fi
12185
12186 fi
12187
12188 fi
12189
12190
12191 if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
12192 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5
12193 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
12194 { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
12195 $as_echo "" >&6; }
12196 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
12197 $as_echo_n "checking for ngettext in -lintl... " >&6; }
12198 if ${ac_cv_lib_intl_ngettext+:} false; then :
12199 $as_echo_n "(cached) " >&6
12200 else
12201 ac_check_lib_save_LIBS=$LIBS
12202 LIBS="-lintl -liconv $LIBS"
12203 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12204 /* end confdefs.h. */
12205
12206 /* Override any GCC internal prototype to avoid an error.
12207 Use char because int might match the return type of a GCC
12208 builtin and then its argument prototype would still apply. */
12209 #ifdef __cplusplus
12210 extern "C"
12211 #endif
12212 char ngettext ();
12213 int
12214 main ()
12215 {
12216 return ngettext ();
12217 ;
12218 return 0;
12219 }
12220 _ACEOF
12221 if ac_fn_c_try_link "$LINENO"; then :
12222 ac_cv_lib_intl_ngettext=yes
12223 else
12224 ac_cv_lib_intl_ngettext=no
12225 fi
12226 rm -f core conftest.err conftest.$ac_objext \
12227 conftest$ac_exeext conftest.$ac_ext
12228 LIBS=$ac_check_lib_save_LIBS
12229 fi
12230 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
12231 $as_echo "$ac_cv_lib_intl_ngettext" >&6; }
12232 if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
12233 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5
12234 $as_echo_n "checking for dcgettext in -lintl... " >&6; }
12235 if ${ac_cv_lib_intl_dcgettext+:} false; then :
12236 $as_echo_n "(cached) " >&6
12237 else
12238 ac_check_lib_save_LIBS=$LIBS
12239 LIBS="-lintl -liconv $LIBS"
12240 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12241 /* end confdefs.h. */
12242
12243 /* Override any GCC internal prototype to avoid an error.
12244 Use char because int might match the return type of a GCC
12245 builtin and then its argument prototype would still apply. */
12246 #ifdef __cplusplus
12247 extern "C"
12248 #endif
12249 char dcgettext ();
12250 int
12251 main ()
12252 {
12253 return dcgettext ();
12254 ;
12255 return 0;
12256 }
12257 _ACEOF
12258 if ac_fn_c_try_link "$LINENO"; then :
12259 ac_cv_lib_intl_dcgettext=yes
12260 else
12261 ac_cv_lib_intl_dcgettext=no
12262 fi
12263 rm -f core conftest.err conftest.$ac_objext \
12264 conftest$ac_exeext conftest.$ac_ext
12265 LIBS=$ac_check_lib_save_LIBS
12266 fi
12267 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5
12268 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
12269 if test "x$ac_cv_lib_intl_dcgettext" = xyes; then :
12270 gt_cv_func_dgettext_libintl=yes
12271 libintl_extra_libs=-liconv
12272 else
12273 :
12274 fi
12275
12276 else
12277 :
12278 fi
12279
12280 fi
12281
12282 #
12283 # If we found libintl, then check in it for bind_textdomain_codeset();
12284 # we'll prefer libc if neither have bind_textdomain_codeset(),
12285 # and both have dgettext and ngettext
12286 #
12287 if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
12288 glib_save_LIBS="$LIBS"
12289 LIBS="$LIBS -lintl $libintl_extra_libs"
12290 unset ac_cv_func_bind_textdomain_codeset
12291 for ac_func in bind_textdomain_codeset
12292 do :
12293 ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
12294 if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
12295 cat >>confdefs.h <<_ACEOF
12296 #define HAVE_BIND_TEXTDOMAIN_CODESET 1
12297 _ACEOF
12298
12299 fi
12300 done
12301
12302 LIBS="$glib_save_LIBS"
12303
12304 if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
12305 gt_cv_func_dgettext_libc=no
12306 else
12307 if test "$gt_cv_func_dgettext_libc" = "yes" \
12308 && test "$gt_cv_func_ngettext_libc" = "yes"; then
12309 gt_cv_func_dgettext_libintl=no
12310 fi
12311 fi
12312 fi
12313 fi
12314
12315 if test "$gt_cv_func_dgettext_libc" = "yes" \
12316 || test "$gt_cv_func_dgettext_libintl" = "yes"; then
12317 gt_cv_have_gettext=yes
12318 fi
12319
12320 if test "$gt_cv_func_dgettext_libintl" = "yes"; then
12321 INTLLIBS="-lintl $libintl_extra_libs"
12322 fi
12323
12324 if test "$gt_cv_have_gettext" = "yes"; then
12325
12326 $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
12327
12328 # Extract the first word of "msgfmt", so it can be a program name with args.
12329 set dummy msgfmt; ac_word=$2
12330 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12331 $as_echo_n "checking for $ac_word... " >&6; }
12332 if ${ac_cv_path_MSGFMT+:} false; then :
12333 $as_echo_n "(cached) " >&6
12334 else
12335 case "$MSGFMT" in
12336 /*)
12337 ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
12338 ;;
12339 *)
12340 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
12341 for ac_dir in $PATH; do
12342 test -z "$ac_dir" && ac_dir=.
12343 if test -f $ac_dir/$ac_word; then
12344 if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
12345 ac_cv_path_MSGFMT="$ac_dir/$ac_word"
12346 break
12347 fi
12348 fi
12349 done
12350 IFS="$ac_save_ifs"
12351 test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
12352 ;;
12353 esac
12354 fi
12355 MSGFMT="$ac_cv_path_MSGFMT"
12356 if test "$MSGFMT" != "no"; then
12357 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
12358 $as_echo "$MSGFMT" >&6; }
12359 else
12360 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12361 $as_echo "no" >&6; }
12362 fi
12363 if test "$MSGFMT" != "no"; then
12364 glib_save_LIBS="$LIBS"
12365 LIBS="$LIBS $INTLLIBS"
12366 for ac_func in dcgettext
12367 do :
12368 ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext"
12369 if test "x$ac_cv_func_dcgettext" = xyes; then :
12370 cat >>confdefs.h <<_ACEOF
12371 #define HAVE_DCGETTEXT 1
12372 _ACEOF
12373
12374 fi
12375 done
12376
12377 MSGFMT_OPTS=
12378 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5
12379 $as_echo_n "checking if msgfmt accepts -c... " >&6; }
12380 cat >conftest.foo <<_ACEOF
12381
12382 msgid ""
12383 msgstr ""
12384 "Content-Type: text/plain; charset=UTF-8\n"
12385 "Project-Id-Version: test 1.0\n"
12386 "PO-Revision-Date: 2007-02-15 12:01+0100\n"
12387 "Last-Translator: test <foo@bar.xx>\n"
12388 "Language-Team: C <LL@li.org>\n"
12389 "MIME-Version: 1.0\n"
12390 "Content-Transfer-Encoding: 8bit\n"
12391
12392 _ACEOF
12393 if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5
12394 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5
12395 ac_status=$?
12396 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12397 test $ac_status = 0; }; then
12398 MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12399 $as_echo "yes" >&6; }
12400 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12401 $as_echo "no" >&6; }
12402 echo "$as_me: failed input was:" >&5
12403 sed 's/^/| /' conftest.foo >&5
12404 fi
12405
12406 # Extract the first word of "gmsgfmt", so it can be a program name with args.
12407 set dummy gmsgfmt; ac_word=$2
12408 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12409 $as_echo_n "checking for $ac_word... " >&6; }
12410 if ${ac_cv_path_GMSGFMT+:} false; then :
12411 $as_echo_n "(cached) " >&6
12412 else
12413 case $GMSGFMT in
12414 [\\/]* | ?:[\\/]*)
12415 ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
12416 ;;
12417 *)
12418 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
12419 for as_dir in $PATH
12420 do
12421 IFS=$as_save_IFS
12422 test -z "$as_dir" && as_dir=.
12423 for ac_exec_ext in '' $ac_executable_extensions; do
12424 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
12425 ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
12426 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
12427 break 2
12428 fi
12429 done
12430 done
12431 IFS=$as_save_IFS
12432
12433 test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
12434 ;;
12435 esac
12436 fi
12437 GMSGFMT=$ac_cv_path_GMSGFMT
12438 if test -n "$GMSGFMT"; then
12439 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
12440 $as_echo "$GMSGFMT" >&6; }
12441 else
12442 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12443 $as_echo "no" >&6; }
12444 fi
12445
12446
12447 # Extract the first word of "xgettext", so it can be a program name with args.
12448 set dummy xgettext; ac_word=$2
12449 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
12450 $as_echo_n "checking for $ac_word... " >&6; }
12451 if ${ac_cv_path_XGETTEXT+:} false; then :
12452 $as_echo_n "(cached) " >&6
12453 else
12454 case "$XGETTEXT" in
12455 /*)
12456 ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
12457 ;;
12458 *)
12459 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
12460 for ac_dir in $PATH; do
12461 test -z "$ac_dir" && ac_dir=.
12462 if test -f $ac_dir/$ac_word; then
12463 if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
12464 ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
12465 break
12466 fi
12467 fi
12468 done
12469 IFS="$ac_save_ifs"
12470 test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
12471 ;;
12472 esac
12473 fi
12474 XGETTEXT="$ac_cv_path_XGETTEXT"
12475 if test "$XGETTEXT" != ":"; then
12476 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
12477 $as_echo "$XGETTEXT" >&6; }
12478 else
12479 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12480 $as_echo "no" >&6; }
12481 fi
12482
12483 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12484 /* end confdefs.h. */
12485
12486 int
12487 main ()
12488 {
12489 extern int _nl_msg_cat_cntr;
12490 return _nl_msg_cat_cntr
12491 ;
12492 return 0;
12493 }
12494 _ACEOF
12495 if ac_fn_c_try_link "$LINENO"; then :
12496 CATOBJEXT=.gmo
12497 DATADIRNAME=share
12498 else
12499 case $host in
12500 *-*-solaris*)
12501 ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
12502 if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
12503 CATOBJEXT=.gmo
12504 DATADIRNAME=share
12505 else
12506 CATOBJEXT=.mo
12507 DATADIRNAME=lib
12508 fi
12509
12510 ;;
12511 *-*-openbsd*)
12512 CATOBJEXT=.mo
12513 DATADIRNAME=share
12514 ;;
12515 *)
12516 CATOBJEXT=.mo
12517 DATADIRNAME=lib
12518 ;;
12519 esac
12520 fi
12521 rm -f core conftest.err conftest.$ac_objext \
12522 conftest$ac_exeext conftest.$ac_ext
12523 LIBS="$glib_save_LIBS"
12524 INSTOBJEXT=.mo
12525 else
12526 gt_cv_have_gettext=no
12527 fi
12528 fi
12529
12530 fi
12531
12532
12533
12534 if test "$gt_cv_have_gettext" = "yes" ; then
12535
12536 $as_echo "#define ENABLE_NLS 1" >>confdefs.h
12537
12538 fi
12539
12540 if test "$XGETTEXT" != ":"; then
12541 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
12542 : ;
12543 else
12544 { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
12545 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
12546 XGETTEXT=":"
12547 fi
12548 fi
12549
12550 # We need to process the po/ directory.
12551 POSUB=po
12552
12553 ac_config_commands="$ac_config_commands default-1"
12554
12555
12556 for lang in $ALL_LINGUAS; do
12557 GMOFILES="$GMOFILES $lang.gmo"
12558 POFILES="$POFILES $lang.po"
12559 done
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573 if test "$gt_cv_have_gettext" = "yes"; then
12574 if test "x$ALL_LINGUAS" = "x"; then
12575 LINGUAS=
12576 else
12577 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
12578 $as_echo_n "checking for catalogs to be installed... " >&6; }
12579 NEW_LINGUAS=
12580 for presentlang in $ALL_LINGUAS; do
12581 useit=no
12582 if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
12583 desiredlanguages="$LINGUAS"
12584 else
12585 desiredlanguages="$ALL_LINGUAS"
12586 fi
12587 for desiredlang in $desiredlanguages; do
12588 # Use the presentlang catalog if desiredlang is
12589 # a. equal to presentlang, or
12590 # b. a variant of presentlang (because in this case,
12591 # presentlang can be used as a fallback for messages
12592 # which are not translated in the desiredlang catalog).
12593 case "$desiredlang" in
12594 "$presentlang"*) useit=yes;;
12595 esac
12596 done
12597 if test $useit = yes; then
12598 NEW_LINGUAS="$NEW_LINGUAS $presentlang"
12599 fi
12600 done
12601 LINGUAS=$NEW_LINGUAS
12602 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
12603 $as_echo "$LINGUAS" >&6; }
12604 fi
12605
12606 if test -n "$LINGUAS"; then
12607 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
12608 fi
12609 fi
12610
12611 MKINSTALLDIRS=
12612 if test -n "$ac_aux_dir"; then
12613 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
12614 fi
12615 if test -z "$MKINSTALLDIRS"; then
12616 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
12617 fi
12618
12619
12620 test -d po || mkdir po
12621 if test "x$srcdir" != "x."; then
12622 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
12623 posrcprefix="$srcdir/"
12624 else
12625 posrcprefix="../$srcdir/"
12626 fi
12627 else
12628 posrcprefix="../"
12629 fi
12630 rm -f po/POTFILES
12631 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
12632 < $srcdir/po/POTFILES.in > po/POTFILES
12633
12634
1159812635 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
1159912636 $as_echo_n "checking whether NLS is requested... " >&6; }
1160012637 # Check whether --enable-nls was given.
1161812655 ;;
1161912656 esac
1162012657
12658 INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
12659 INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
12660 INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
1162112661 if test -n "0.35.0"; then
1162212662 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5
1162312663 $as_echo_n "checking for intltool >= 0.35.0... " >&6; }
11624
11625 INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
11626 INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
11627 INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
11628
1162912664 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5
1163012665 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; }
1163112666 test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
1175612791 as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5
1175712792 fi
1175812793
11759 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 $< $@'
11760 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 $< $@'
11761 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 $< $@'
11762 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 $< $@'
11763 INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@'
11764 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 $< $@'
11765 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 $< $@'
11766 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 $< $@'
11767 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 $< $@'
11768 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 $< $@'
11769 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 $< $@'
11770 INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@'
11771 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 $< $@'
11772 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 $< $@'
11773 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 $< $@'
11774 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 $< $@'
11775 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 $< $@'
11776 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 $< $@'
11777 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 $< $@'
12794 if test -z "$AM_DEFAULT_VERBOSITY"; then
12795 AM_DEFAULT_VERBOSITY=1
12796 fi
12797
12798
12799 INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
12800 INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
12801 INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;'
12802
12803
12804
12805
12806 INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
12807 intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
12808 intltool__v_merge_options_0='-q'
12809
12810
12811
12812
12813 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 $< $@'
12814 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 $< $@'
12815 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 $< $@'
12816 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 $< $@'
12817 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 $< $@'
12818 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 $< $@'
12819 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 $< $@'
12820 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 $< $@'
12821 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 $< $@'
12822 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 $< $@'
12823 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 $< $@'
12824 if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
12825 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 $< $@'
12826 else
12827 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'
12828 fi
12829 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 $< $@'
12830 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 $< $@'
12831 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 $< $@'
12832 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 $< $@'
12833 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 $< $@'
12834 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 $< $@'
12835 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 $< $@'
1177812836
1177912837
1178012838
1209313151 if test $? -ne 0; then
1209413152 as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5
1209513153 else
12096 IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
13154 IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
1209713155 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5
1209813156 $as_echo "$IT_PERL_VERSION" >&6; }
1209913157 fi
1214713205 rm -f core conftest.err conftest.$ac_objext \
1214813206 conftest$ac_exeext conftest.$ac_ext
1214913207 fi
12150
1215113208
1215213209
1215313210
1227313330 PKG_CONFIG=""
1227413331 fi
1227513332 fi
13333 GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
13334
13335
1227613336
1227713337 pkg_failed=no
1227813338 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB2" >&5
1228213342 pkg_cv_GLIB2_CFLAGS="$GLIB2_CFLAGS"
1228313343 elif test -n "$PKG_CONFIG"; then
1228413344 if test -n "$PKG_CONFIG" && \
12285 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0 >= \$GLIB2_REQUIRED\""; } >&5
12286 ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED") 2>&5
13345 { { $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
13346 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0") 2>&5
1228713347 ac_status=$?
1228813348 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1228913349 test $ac_status = 0; }; then
12290 pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>/dev/null`
13350 pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>/dev/null`
1229113351 else
1229213352 pkg_failed=yes
1229313353 fi
1229813358 pkg_cv_GLIB2_LIBS="$GLIB2_LIBS"
1229913359 elif test -n "$PKG_CONFIG"; then
1230013360 if test -n "$PKG_CONFIG" && \
12301 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0 >= \$GLIB2_REQUIRED\""; } >&5
12302 ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED") 2>&5
13361 { { $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
13362 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0") 2>&5
1230313363 ac_status=$?
1230413364 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1230513365 test $ac_status = 0; }; then
12306 pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>/dev/null`
13366 pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>/dev/null`
1230713367 else
1230813368 pkg_failed=yes
1230913369 fi
1232313383 _pkg_short_errors_supported=no
1232413384 fi
1232513385 if test $_pkg_short_errors_supported = yes; then
12326 GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>&1`
13386 GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>&1`
1232713387 else
12328 GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gmodule-export-2.0 >= $GLIB2_REQUIRED" 2>&1`
13388 GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0" 2>&1`
1232913389 fi
1233013390 # Put the nasty error message in config.log where it belongs
1233113391 echo "$GLIB2_PKG_ERRORS" >&5
1233213392
12333 as_fn_error $? "Package requirements (gmodule-export-2.0 >= $GLIB2_REQUIRED) were not met:
13393 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0) were not met:
1233413394
1233513395 $GLIB2_PKG_ERRORS
1233613396
1245613516
1245713517 fi
1245813518
13519
13520 # Check whether --with-libvirt was given.
13521 if test "${with_libvirt+set}" = set; then :
13522 withval=$with_libvirt;
13523 fi
13524
13525
13526 if test "x$with_libvirt" != "xno"; then :
13527
1245913528 pkg_failed=no
1246013529 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBVIRT" >&5
1246113530 $as_echo_n "checking for LIBVIRT... " >&6; }
1246413533 pkg_cv_LIBVIRT_CFLAGS="$LIBVIRT_CFLAGS"
1246513534 elif test -n "$PKG_CONFIG"; then
1246613535 if test -n "$PKG_CONFIG" && \
12467 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt >= \$LIBVIRT_REQUIRED\""; } >&5
12468 ($PKG_CONFIG --exists --print-errors "libvirt >= $LIBVIRT_REQUIRED") 2>&5
13536 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt\""; } >&5
13537 ($PKG_CONFIG --exists --print-errors "libvirt") 2>&5
1246913538 ac_status=$?
1247013539 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1247113540 test $ac_status = 0; }; then
12472 pkg_cv_LIBVIRT_CFLAGS=`$PKG_CONFIG --cflags "libvirt >= $LIBVIRT_REQUIRED" 2>/dev/null`
13541 pkg_cv_LIBVIRT_CFLAGS=`$PKG_CONFIG --cflags "libvirt" 2>/dev/null`
1247313542 else
1247413543 pkg_failed=yes
1247513544 fi
1248013549 pkg_cv_LIBVIRT_LIBS="$LIBVIRT_LIBS"
1248113550 elif test -n "$PKG_CONFIG"; then
1248213551 if test -n "$PKG_CONFIG" && \
12483 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt >= \$LIBVIRT_REQUIRED\""; } >&5
12484 ($PKG_CONFIG --exists --print-errors "libvirt >= $LIBVIRT_REQUIRED") 2>&5
13552 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libvirt\""; } >&5
13553 ($PKG_CONFIG --exists --print-errors "libvirt") 2>&5
1248513554 ac_status=$?
1248613555 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1248713556 test $ac_status = 0; }; then
12488 pkg_cv_LIBVIRT_LIBS=`$PKG_CONFIG --libs "libvirt >= $LIBVIRT_REQUIRED" 2>/dev/null`
13557 pkg_cv_LIBVIRT_LIBS=`$PKG_CONFIG --libs "libvirt" 2>/dev/null`
1248913558 else
1249013559 pkg_failed=yes
1249113560 fi
1250513574 _pkg_short_errors_supported=no
1250613575 fi
1250713576 if test $_pkg_short_errors_supported = yes; then
12508 LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libvirt >= $LIBVIRT_REQUIRED" 2>&1`
13577 LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libvirt" 2>&1`
1250913578 else
12510 LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libvirt >= $LIBVIRT_REQUIRED" 2>&1`
13579 LIBVIRT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libvirt" 2>&1`
1251113580 fi
1251213581 # Put the nasty error message in config.log where it belongs
1251313582 echo "$LIBVIRT_PKG_ERRORS" >&5
1251413583
12515 as_fn_error $? "Package requirements (libvirt >= $LIBVIRT_REQUIRED) were not met:
12516
12517 $LIBVIRT_PKG_ERRORS
12518
12519 Consider adjusting the PKG_CONFIG_PATH environment variable if you
12520 installed software in a non-standard prefix.
12521
12522 Alternatively, you may set the environment variables LIBVIRT_CFLAGS
12523 and LIBVIRT_LIBS to avoid the need to call pkg-config.
12524 See the pkg-config man page for more details." "$LINENO" 5
12525
13584 have_libvirt=no
1252613585 elif test $pkg_failed = untried; then
1252713586 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
1252813587 $as_echo "no" >&6; }
12529 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12530 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12531 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12532 is in your PATH or set the PKG_CONFIG environment variable to the full
12533 path to pkg-config.
12534
12535 Alternatively, you may set the environment variables LIBVIRT_CFLAGS
12536 and LIBVIRT_LIBS to avoid the need to call pkg-config.
12537 See the pkg-config man page for more details.
12538
12539 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12540 See \`config.log' for more details" "$LINENO" 5; }
12541
13588 have_libvirt=no
1254213589 else
1254313590 LIBVIRT_CFLAGS=$pkg_cv_LIBVIRT_CFLAGS
1254413591 LIBVIRT_LIBS=$pkg_cv_LIBVIRT_LIBS
1254513592 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1254613593 $as_echo "yes" >&6; }
12547
12548 fi
13594 have_libvirt=yes
13595 fi
13596 else
13597 have_libvirt=no
13598 fi
13599
13600 if test "x$have_libvirt" = "xyes"; then :
13601
13602 $as_echo "#define HAVE_LIBVIRT 1" >>confdefs.h
13603
13604 else
13605 if test "x$with_libvirt" = "xyes"; then :
13606 as_fn_error $? "libvirt requested but not found" "$LINENO" 5
13607
13608 fi
13609
13610 fi
13611 if test "x$have_libvirt" = "xyes"; then
13612 HAVE_LIBVIRT_TRUE=
13613 HAVE_LIBVIRT_FALSE='#'
13614 else
13615 HAVE_LIBVIRT_TRUE='#'
13616 HAVE_LIBVIRT_FALSE=
13617 fi
13618
1254913619
1255013620 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gtk+ version to compile against" >&5
1255113621 $as_echo_n "checking which gtk+ version to compile against... " >&6; }
1256613636 case "$with_gtk" in
1256713637 2.0) GTK_API_VERSION=2.0
1256813638 GTK_REQUIRED=$GTK2_REQUIRED
13639 GTK_VNC_REQUIRED=$GTK_VNC1_REQUIRED
1256913640 GTK_VNC_API_VERSION=1.0
1257013641 SPICE_GTK_API_VERSION=2.0
1257113642 ;;
1257213643 3.0) GTK_API_VERSION=3.0
1257313644 GTK_REQUIRED=$GTK3_REQUIRED
13645 GTK_VNC_REQUIRED=$GTK_VNC2_REQUIRED
1257413646 GTK_VNC_API_VERSION=2.0
1257513647 SPICE_GTK_API_VERSION=3.0
1257613648 ;;
1268913761 fi
1269013762
1269113763
13764 # Check whether --with-gtk-vnc was given.
13765 if test "${with_gtk_vnc+set}" = set; then :
13766 withval=$with_gtk_vnc;
13767 fi
13768
13769
13770 if test "x$with_gtk_vnc" != "xno"; then :
13771
1269213772 pkg_failed=no
1269313773 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_VNC" >&5
1269413774 $as_echo_n "checking for GTK_VNC... " >&6; }
1274513825 # Put the nasty error message in config.log where it belongs
1274613826 echo "$GTK_VNC_PKG_ERRORS" >&5
1274713827
12748 as_fn_error $? "Package requirements (gtk-vnc-$GTK_VNC_API_VERSION >= $GTK_VNC_REQUIRED) were not met:
12749
12750 $GTK_VNC_PKG_ERRORS
12751
12752 Consider adjusting the PKG_CONFIG_PATH environment variable if you
12753 installed software in a non-standard prefix.
12754
12755 Alternatively, you may set the environment variables GTK_VNC_CFLAGS
12756 and GTK_VNC_LIBS to avoid the need to call pkg-config.
12757 See the pkg-config man page for more details." "$LINENO" 5
12758
13828 have_gtk_vnc=no
1275913829 elif test $pkg_failed = untried; then
1276013830 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
1276113831 $as_echo "no" >&6; }
12762 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12763 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12764 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12765 is in your PATH or set the PKG_CONFIG environment variable to the full
12766 path to pkg-config.
12767
12768 Alternatively, you may set the environment variables GTK_VNC_CFLAGS
12769 and GTK_VNC_LIBS to avoid the need to call pkg-config.
12770 See the pkg-config man page for more details.
12771
12772 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12773 See \`config.log' for more details" "$LINENO" 5; }
12774
13832 have_gtk_vnc=no
1277513833 else
1277613834 GTK_VNC_CFLAGS=$pkg_cv_GTK_VNC_CFLAGS
1277713835 GTK_VNC_LIBS=$pkg_cv_GTK_VNC_LIBS
1277813836 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1277913837 $as_echo "yes" >&6; }
12780
12781 fi
13838 have_gtk_vnc=yes
13839 fi
13840 else
13841 have_gtk_vnc=no
13842 fi
13843
13844 if test "x$have_gtk_vnc" = "xyes"; then :
13845
13846 $as_echo "#define HAVE_GTK_VNC 1" >>confdefs.h
13847
13848 else
13849 if test "x$with_gtk_vnc" = "xyes"; then :
13850 as_fn_error $? "gtk-vnc requested but not found" "$LINENO" 5
13851
13852 fi
13853
13854 fi
13855 if test "x$have_gtk_vnc" = "xyes"; then
13856 HAVE_GTK_VNC_TRUE=
13857 HAVE_GTK_VNC_FALSE='#'
13858 else
13859 HAVE_GTK_VNC_TRUE='#'
13860 HAVE_GTK_VNC_FALSE=
13861 fi
13862
1278213863
1278313864
1278413865 # Check whether --with-spice-gtk was given.
1286313944
1286413945 if test "x$have_spice_gtk" = "xyes"; then :
1286513946
13947 pkg_failed=no
13948 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPICE_CONTROLLER" >&5
13949 $as_echo_n "checking for SPICE_CONTROLLER... " >&6; }
13950
13951 if test -n "$SPICE_CONTROLLER_CFLAGS"; then
13952 pkg_cv_SPICE_CONTROLLER_CFLAGS="$SPICE_CONTROLLER_CFLAGS"
13953 elif test -n "$PKG_CONFIG"; then
13954 if test -n "$PKG_CONFIG" && \
13955 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-controller\""; } >&5
13956 ($PKG_CONFIG --exists --print-errors "spice-controller") 2>&5
13957 ac_status=$?
13958 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13959 test $ac_status = 0; }; then
13960 pkg_cv_SPICE_CONTROLLER_CFLAGS=`$PKG_CONFIG --cflags "spice-controller" 2>/dev/null`
13961 else
13962 pkg_failed=yes
13963 fi
13964 else
13965 pkg_failed=untried
13966 fi
13967 if test -n "$SPICE_CONTROLLER_LIBS"; then
13968 pkg_cv_SPICE_CONTROLLER_LIBS="$SPICE_CONTROLLER_LIBS"
13969 elif test -n "$PKG_CONFIG"; then
13970 if test -n "$PKG_CONFIG" && \
13971 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-controller\""; } >&5
13972 ($PKG_CONFIG --exists --print-errors "spice-controller") 2>&5
13973 ac_status=$?
13974 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13975 test $ac_status = 0; }; then
13976 pkg_cv_SPICE_CONTROLLER_LIBS=`$PKG_CONFIG --libs "spice-controller" 2>/dev/null`
13977 else
13978 pkg_failed=yes
13979 fi
13980 else
13981 pkg_failed=untried
13982 fi
13983
13984
13985
13986 if test $pkg_failed = yes; then
13987 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13988 $as_echo "no" >&6; }
13989
13990 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13991 _pkg_short_errors_supported=yes
13992 else
13993 _pkg_short_errors_supported=no
13994 fi
13995 if test $_pkg_short_errors_supported = yes; then
13996 SPICE_CONTROLLER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "spice-controller" 2>&1`
13997 else
13998 SPICE_CONTROLLER_PKG_ERRORS=`$PKG_CONFIG --print-errors "spice-controller" 2>&1`
13999 fi
14000 # Put the nasty error message in config.log where it belongs
14001 echo "$SPICE_CONTROLLER_PKG_ERRORS" >&5
14002
14003 as_fn_error $? "Package requirements (spice-controller) were not met:
14004
14005 $SPICE_CONTROLLER_PKG_ERRORS
14006
14007 Consider adjusting the PKG_CONFIG_PATH environment variable if you
14008 installed software in a non-standard prefix.
14009
14010 Alternatively, you may set the environment variables SPICE_CONTROLLER_CFLAGS
14011 and SPICE_CONTROLLER_LIBS to avoid the need to call pkg-config.
14012 See the pkg-config man page for more details." "$LINENO" 5
14013
14014 elif test $pkg_failed = untried; then
14015 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14016 $as_echo "no" >&6; }
14017 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14018 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14019 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
14020 is in your PATH or set the PKG_CONFIG environment variable to the full
14021 path to pkg-config.
14022
14023 Alternatively, you may set the environment variables SPICE_CONTROLLER_CFLAGS
14024 and SPICE_CONTROLLER_LIBS to avoid the need to call pkg-config.
14025 See the pkg-config man page for more details.
14026
14027 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
14028 See \`config.log' for more details" "$LINENO" 5; }
14029
14030 else
14031 SPICE_CONTROLLER_CFLAGS=$pkg_cv_SPICE_CONTROLLER_CFLAGS
14032 SPICE_CONTROLLER_LIBS=$pkg_cv_SPICE_CONTROLLER_LIBS
14033 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14034 $as_echo "yes" >&6; }
14035
14036 fi
14037
14038 pkg_failed=no
14039 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPICE_PROTOCOL" >&5
14040 $as_echo_n "checking for SPICE_PROTOCOL... " >&6; }
14041
14042 if test -n "$SPICE_PROTOCOL_CFLAGS"; then
14043 pkg_cv_SPICE_PROTOCOL_CFLAGS="$SPICE_PROTOCOL_CFLAGS"
14044 elif test -n "$PKG_CONFIG"; then
14045 if test -n "$PKG_CONFIG" && \
14046 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-protocol >= \$SPICE_PROTOCOL_REQUIRED\""; } >&5
14047 ($PKG_CONFIG --exists --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED") 2>&5
14048 ac_status=$?
14049 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
14050 test $ac_status = 0; }; then
14051 pkg_cv_SPICE_PROTOCOL_CFLAGS=`$PKG_CONFIG --cflags "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>/dev/null`
14052 else
14053 pkg_failed=yes
14054 fi
14055 else
14056 pkg_failed=untried
14057 fi
14058 if test -n "$SPICE_PROTOCOL_LIBS"; then
14059 pkg_cv_SPICE_PROTOCOL_LIBS="$SPICE_PROTOCOL_LIBS"
14060 elif test -n "$PKG_CONFIG"; then
14061 if test -n "$PKG_CONFIG" && \
14062 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spice-protocol >= \$SPICE_PROTOCOL_REQUIRED\""; } >&5
14063 ($PKG_CONFIG --exists --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED") 2>&5
14064 ac_status=$?
14065 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
14066 test $ac_status = 0; }; then
14067 pkg_cv_SPICE_PROTOCOL_LIBS=`$PKG_CONFIG --libs "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>/dev/null`
14068 else
14069 pkg_failed=yes
14070 fi
14071 else
14072 pkg_failed=untried
14073 fi
14074
14075
14076
14077 if test $pkg_failed = yes; then
14078 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14079 $as_echo "no" >&6; }
14080
14081 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
14082 _pkg_short_errors_supported=yes
14083 else
14084 _pkg_short_errors_supported=no
14085 fi
14086 if test $_pkg_short_errors_supported = yes; then
14087 SPICE_PROTOCOL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>&1`
14088 else
14089 SPICE_PROTOCOL_PKG_ERRORS=`$PKG_CONFIG --print-errors "spice-protocol >= $SPICE_PROTOCOL_REQUIRED" 2>&1`
14090 fi
14091 # Put the nasty error message in config.log where it belongs
14092 echo "$SPICE_PROTOCOL_PKG_ERRORS" >&5
14093
14094 as_fn_error $? "Package requirements (spice-protocol >= $SPICE_PROTOCOL_REQUIRED) were not met:
14095
14096 $SPICE_PROTOCOL_PKG_ERRORS
14097
14098 Consider adjusting the PKG_CONFIG_PATH environment variable if you
14099 installed software in a non-standard prefix.
14100
14101 Alternatively, you may set the environment variables SPICE_PROTOCOL_CFLAGS
14102 and SPICE_PROTOCOL_LIBS to avoid the need to call pkg-config.
14103 See the pkg-config man page for more details." "$LINENO" 5
14104
14105 elif test $pkg_failed = untried; then
14106 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14107 $as_echo "no" >&6; }
14108 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14109 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14110 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
14111 is in your PATH or set the PKG_CONFIG environment variable to the full
14112 path to pkg-config.
14113
14114 Alternatively, you may set the environment variables SPICE_PROTOCOL_CFLAGS
14115 and SPICE_PROTOCOL_LIBS to avoid the need to call pkg-config.
14116 See the pkg-config man page for more details.
14117
14118 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
14119 See \`config.log' for more details" "$LINENO" 5; }
14120
14121 else
14122 SPICE_PROTOCOL_CFLAGS=$pkg_cv_SPICE_PROTOCOL_CFLAGS
14123 SPICE_PROTOCOL_LIBS=$pkg_cv_SPICE_PROTOCOL_LIBS
14124 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14125 $as_echo "yes" >&6; }
14126
14127 fi
14128
1286614129 $as_echo "#define HAVE_SPICE_GTK 1" >>confdefs.h
1286714130
1286814131 else
1327814541 fi
1327914542
1328014543
13281 ac_config_files="$ac_config_files Makefile src/Makefile man/Makefile po/Makefile.in plugin/Makefile virt-viewer.spec mingw32-virt-viewer.spec"
14544 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"
1328214545
1328314546 cat >confcache <<\_ACEOF
1328414547 # This file is a shell script that caches the results of configure
1338914652 LTLIBOBJS=$ac_ltlibobjs
1339014653
1339114654
14655 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
14656 $as_echo_n "checking that generated files are newer than configure... " >&6; }
14657 if test -n "$am_sleep_pid"; then
14658 # Hide warnings about reused PIDs.
14659 wait $am_sleep_pid 2>/dev/null
14660 fi
14661 { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
14662 $as_echo "done" >&6; }
1339214663 if test -n "$EXEEXT"; then
1339314664 am__EXEEXT_TRUE=
1339414665 am__EXEEXT_FALSE='#'
1339714668 am__EXEEXT_FALSE=
1339814669 fi
1339914670
14671 if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then
14672 as_fn_error $? "conditional \"OS_WIN32\" was never defined.
14673 Usually this means the macro was only invoked conditionally." "$LINENO" 5
14674 fi
1340014675 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
1340114676 as_fn_error $? "conditional \"AMDEP\" was never defined.
1340214677 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1340914684 ac_config_commands="$ac_config_commands po/stamp-it"
1341014685
1341114686
14687 if test -z "${HAVE_LIBVIRT_TRUE}" && test -z "${HAVE_LIBVIRT_FALSE}"; then
14688 as_fn_error $? "conditional \"HAVE_LIBVIRT\" was never defined.
14689 Usually this means the macro was only invoked conditionally." "$LINENO" 5
14690 fi
1341214691 if test -z "${HAVE_GTK_2_TRUE}" && test -z "${HAVE_GTK_2_FALSE}"; then
1341314692 as_fn_error $? "conditional \"HAVE_GTK_2\" was never defined.
1341414693 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1341514694 fi
1341614695 if test -z "${HAVE_GTK_3_TRUE}" && test -z "${HAVE_GTK_3_FALSE}"; then
1341714696 as_fn_error $? "conditional \"HAVE_GTK_3\" was never defined.
14697 Usually this means the macro was only invoked conditionally." "$LINENO" 5
14698 fi
14699 if test -z "${HAVE_GTK_VNC_TRUE}" && test -z "${HAVE_GTK_VNC_FALSE}"; then
14700 as_fn_error $? "conditional \"HAVE_GTK_VNC\" was never defined.
1341814701 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1341914702 fi
1342014703 if test -z "${HAVE_SPICE_GTK_TRUE}" && test -z "${HAVE_SPICE_GTK_FALSE}"; then
1383415117 # report actual input values of CONFIG_FILES etc. instead of their
1383515118 # values after options handling.
1383615119 ac_log="
13837 This file was extended by virt-viewer $as_me 0.4.1, which was
15120 This file was extended by virt-viewer $as_me 0.5.4, which was
1383815121 generated by GNU Autoconf 2.68. Invocation command line was
1383915122
1384015123 CONFIG_FILES = $CONFIG_FILES
1386115144 # Files that config.status was made for.
1386215145 config_files="$ac_config_files"
1386315146 config_headers="$ac_config_headers"
15147 config_links="$ac_config_links"
1386415148 config_commands="$ac_config_commands"
1386515149
1386615150 _ACEOF
1389115175 Configuration headers:
1389215176 $config_headers
1389315177
15178 Configuration links:
15179 $config_links
15180
1389415181 Configuration commands:
1389515182 $config_commands
1389615183
1390015187 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1390115188 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1390215189 ac_cs_version="\\
13903 virt-viewer config.status 0.4.1
15190 virt-viewer config.status 0.5.4
1390415191 configured by $0, generated by GNU Autoconf 2.68,
1390515192 with options \\"\$ac_cs_config\\"
1390615193
1403715324 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
1403815325 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
1403915326 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
15327 PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
1404015328 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
1404115329 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
1404215330 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
1411915407 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
1412015408 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
1412115409 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
14122 hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
1412315410 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
1412415411 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
1412515412 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
1417515462 # Quote evaled strings.
1417615463 for var in SHELL \
1417715464 ECHO \
15465 PATH_SEPARATOR \
1417815466 SED \
1417915467 GREP \
1418015468 EGREP \
1422515513 allow_undefined_flag \
1422615514 no_undefined_flag \
1422715515 hardcode_libdir_flag_spec \
14228 hardcode_libdir_flag_spec_ld \
1422915516 hardcode_libdir_separator \
1423015517 exclude_expsyms \
1423115518 include_expsyms \
1429715584
1429815585
1429915586
15587 GNUmakefile=$GNUmakefile
15588
1430015589
1430115590 _ACEOF
1430215591
1430915598 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
1431015599 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
1431115600 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
15601 "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;;
15602 "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
1431215603 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
15604 "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
15605 "data/virt-viewer.nsis") CONFIG_FILES="$CONFIG_FILES data/virt-viewer.nsis" ;;
15606 "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;;
15607 "icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES icons/16x16/Makefile" ;;
15608 "icons/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES icons/22x22/Makefile" ;;
15609 "icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES icons/24x24/Makefile" ;;
15610 "icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES icons/32x32/Makefile" ;;
15611 "icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/48x48/Makefile" ;;
15612 "icons/256x256/Makefile") CONFIG_FILES="$CONFIG_FILES icons/256x256/Makefile" ;;
15613 "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
15614 "mingw-virt-viewer.spec") CONFIG_FILES="$CONFIG_FILES mingw-virt-viewer.spec" ;;
15615 "plugin/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/Makefile" ;;
15616 "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
1431315617 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
14314 "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
14315 "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
14316 "plugin/Makefile") CONFIG_FILES="$CONFIG_FILES plugin/Makefile" ;;
15618 "src/virt-viewer.rc") CONFIG_FILES="$CONFIG_FILES src/virt-viewer.rc" ;;
1431715619 "virt-viewer.spec") CONFIG_FILES="$CONFIG_FILES virt-viewer.spec" ;;
14318 "mingw32-virt-viewer.spec") CONFIG_FILES="$CONFIG_FILES mingw32-virt-viewer.spec" ;;
1431915620 "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
1432015621
1432115622 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
1433015631 if $ac_need_defaults; then
1433115632 test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
1433215633 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
15634 test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
1433315635 test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
1433415636 fi
1433515637
1462715929 fi # test -n "$CONFIG_HEADERS"
1462815930
1462915931
14630 eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
15932 eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS"
1463115933 shift
1463215934 for ac_tag
1463315935 do
1490416206 }
1490516207 s/.*/./; q'`/stamp-h$_am_stamp_count
1490616208 ;;
14907
16209 :L)
16210 #
16211 # CONFIG_LINK
16212 #
16213
16214 if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
16215 :
16216 else
16217 # Prefer the file from the source tree if names are identical.
16218 if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
16219 ac_source=$srcdir/$ac_source
16220 fi
16221
16222 { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
16223 $as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
16224
16225 if test ! -r "$ac_source"; then
16226 as_fn_error $? "$ac_source: file not found" "$LINENO" 5
16227 fi
16228 rm -f "$ac_file"
16229
16230 # Try a relative symlink, then a hard link, then a copy.
16231 case $ac_source in
16232 [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
16233 *) ac_rel_source=$ac_top_build_prefix$ac_source ;;
16234 esac
16235 ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
16236 ln "$ac_source" "$ac_file" 2>/dev/null ||
16237 cp -p "$ac_source" "$ac_file" ||
16238 as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
16239 fi
16240 ;;
1490816241 :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
1490916242 $as_echo "$as_me: executing $ac_file commands" >&6;}
1491016243 ;;
1492616259 # Strip MF so we end up with the name of the file.
1492716260 mf=`echo "$mf" | sed -e 's/:.*$//'`
1492816261 # Check whether this is an Automake generated Makefile or not.
14929 # We used to match only the files named `Makefile.in', but
16262 # We used to match only the files named 'Makefile.in', but
1493016263 # some people rename them; so instead we look at the file content.
1493116264 # Grep'ing the first line is not enough: some people post-process
1493216265 # each Makefile.in and add a new line on top of each file to say so.
1496016293 continue
1496116294 fi
1496216295 # Extract the definition of DEPDIR, am__include, and am__quote
14963 # from the Makefile without running `make'.
16296 # from the Makefile without running 'make'.
1496416297 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
1496516298 test -z "$DEPDIR" && continue
1496616299 am__include=`sed -n 's/^am__include = //p' < "$mf"`
1496716300 test -z "am__include" && continue
1496816301 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
14969 # When using ansi2knr, U may be empty or an underscore; expand it
14970 U=`sed -n 's/^U = //p' < "$mf"`
1497116302 # Find all dependency output files, they are included files with
1497216303 # $(DEPDIR) in their names. We invoke sed twice because it is the
1497316304 # simplest approach to changing $(DEPDIR) to its actual value in the
1497416305 # expansion.
1497516306 for file in `sed -n "
1497616307 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
14977 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
16308 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
1497816309 # Make sure the directory exists.
1497916310 test -f "$dirpart/$file" && continue
1498016311 fdir=`$as_dirname -- "$file" ||
1502816359 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
1502916360 #
1503016361 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
15031 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
15032 # Inc.
16362 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
16363 # Foundation, Inc.
1503316364 # Written by Gordon Matzigkeit, 1996
1503416365 #
1503516366 # This file is part of GNU Libtool.
1508316414 # An echo program that protects backslashes.
1508416415 ECHO=$lt_ECHO
1508516416
16417 # The PATH separator for the build system.
16418 PATH_SEPARATOR=$lt_PATH_SEPARATOR
16419
1508616420 # The host system.
1508716421 host_alias=$host_alias
1508816422 host=$host
1538316717 # Flag to hardcode \$libdir into a binary during linking.
1538416718 # This must work even if \$libdir does not exist
1538516719 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
15386
15387 # If ld is used when linking, flag to hardcode \$libdir into a binary
15388 # during linking. This must work even if \$libdir does not exist.
15389 hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
1539016720
1539116721 # Whether we need a single "-rpath" flag with a separated argument.
1539216722 hardcode_libdir_separator=$lt_hardcode_libdir_separator
1563816968 chmod +x "$ofile"
1563916969
1564016970 ;;
16971 "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
16972 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
16973 esac ;;
1564116974 "po/stamp-it":C)
1564216975 if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then
1564316976 as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5
1569617029 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
1569717030 fi
1569817031
17032
17033 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17034 $as_echo "$as_me: " >&6;}
17035 { $as_echo "$as_me:${as_lineno-$LINENO}: Configuration summary" >&5
17036 $as_echo "$as_me: Configuration summary" >&6;}
17037 { $as_echo "$as_me:${as_lineno-$LINENO}: =====================" >&5
17038 $as_echo "$as_me: =====================" >&6;}
17039 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17040 $as_echo "$as_me: " >&6;}
17041 { $as_echo "$as_me:${as_lineno-$LINENO}: Features:" >&5
17042 $as_echo "$as_me: Features:" >&6;}
17043 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17044 $as_echo "$as_me: " >&6;}
17045 { $as_echo "$as_me:${as_lineno-$LINENO}: Plugin: $enable_plugin" >&5
17046 $as_echo "$as_me: Plugin: $enable_plugin" >&6;}
17047 { $as_echo "$as_me:${as_lineno-$LINENO}: Gtk: $with_gtk" >&5
17048 $as_echo "$as_me: Gtk: $with_gtk" >&6;}
17049 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17050 $as_echo "$as_me: " >&6;}
17051 { $as_echo "$as_me:${as_lineno-$LINENO}: Libraries:" >&5
17052 $as_echo "$as_me: Libraries:" >&6;}
17053 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17054 $as_echo "$as_me: " >&6;}
17055 { $as_echo "$as_me:${as_lineno-$LINENO}: GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS" >&5
17056 $as_echo "$as_me: GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS" >&6;}
17057 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17058 $as_echo "$as_me: " >&6;}
17059 { $as_echo "$as_me:${as_lineno-$LINENO}: GTK: $GTK_CFLAGS $GTK_LIBS" >&5
17060 $as_echo "$as_me: GTK: $GTK_CFLAGS $GTK_LIBS" >&6;}
17061 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17062 $as_echo "$as_me: " >&6;}
17063 { $as_echo "$as_me:${as_lineno-$LINENO}: GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS" >&5
17064 $as_echo "$as_me: GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS" >&6;}
17065 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17066 $as_echo "$as_me: " >&6;}
17067 { $as_echo "$as_me:${as_lineno-$LINENO}: SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS" >&5
17068 $as_echo "$as_me: SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS" >&6;}
17069 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17070 $as_echo "$as_me: " >&6;}
17071 { $as_echo "$as_me:${as_lineno-$LINENO}: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&5
17072 $as_echo "$as_me: LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS" >&6;}
17073 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17074 $as_echo "$as_me: " >&6;}
17075 { $as_echo "$as_me:${as_lineno-$LINENO}: LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS" >&5
17076 $as_echo "$as_me: LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS" >&6;}
17077 { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
17078 $as_echo "$as_me: " >&6;}
00
1 AC_INIT(virt-viewer, 0.4.1)
1 AC_INIT(virt-viewer, 0.5.4)
22 AC_CONFIG_SRCDIR(src/virt-viewer-main.c)
3 AC_CONFIG_MACRO_DIR([m4])
4 AC_CONFIG_AUX_DIR([build-aux])
35 AM_CONFIG_HEADER(config.h)
46 dnl Make automake keep quiet about wildcards & other GNUmake-isms
57 AM_INIT_AUTOMAKE([-Wno-portability])
911 m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
1012 AM_SILENT_RULES([yes])
1113
12 GLIB2_REQUIRED=2.12.0
14 GLIB2_REQUIRED=2.22.0
1315 LIBXML2_REQUIRED="2.6.0"
14 LIBVIRT_REQUIRED="0.6.0"
15 GTK2_REQUIRED="2.12.0"
16 LIBVIRT_REQUIRED="0.9.7"
17 GTK2_REQUIRED="2.18.0"
1618 GTK3_REQUIRED="3.0"
17 GTK_VNC_REQUIRED="0.3.8"
18 SPICE_GTK_REQUIRED="0.6"
19 GTK_VNC1_REQUIRED="0.3.8"
20 GTK_VNC2_REQUIRED="0.4.0"
21 SPICE_GTK_REQUIRED="0.12.101"
22 SPICE_PROTOCOL_REQUIRED="0.10.1"
23
24 AC_MSG_CHECKING([for native Win32])
25 case "$host_os" in
26 *mingw*|*cygwin*)
27 os_win32=yes
28 ;;
29 *)
30 os_win32=no
31 ;;
32 esac
33 AC_MSG_RESULT([$os_win32])
34 AM_CONDITIONAL([OS_WIN32],[test "$os_win32" = "yes"])
1935
2036 AC_PROG_CC
2137 AM_PROG_CC_C_O
2238 AC_PROG_LIBTOOL
2339
40 AC_CHECK_PROGS(ICOTOOL, [icotool], [icotool])
41
42 AS_IF([test "x$os_win32" = "xyes"], [
43 AC_CHECK_TOOL(WINDRES, [windres])
44
45 if test -z "$WINDRES" ; then
46 AC_MSG_ERROR("windres is required to compile virt-viewer on this platform")
47 fi
48 ])
49
2450 AC_CONFIG_LIBOBJ_DIR([src])
2551
2652 AC_DEFINE([_GNU_SOURCE], [], [Enable GNU extensions])
53
54 # Autoconf 2.61a.99 and earlier don't support linking a file only
55 # in VPATH builds. But since GNUmakefile is for maintainer use
56 # only, it does not matter if we skip the link with older autoconf.
57 # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH
58 # builds, so use a shell variable to bypass this.
59 GNUmakefile=GNUmakefile
60 m4_if(m4_version_compare([2.61a.100],
61 m4_defn([m4_PACKAGE_VERSION])), [1], [],
62 [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [],
63 [GNUmakefile=$GNUmakefile])])
2764
2865 VIRT_VIEWER_COMPILE_WARNINGS(maximum)
2966
3067 GETTEXT_PACKAGE=virt-viewer
3168 AC_SUBST(GETTEXT_PACKAGE)
32 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name])
33
69 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],"$GETTEXT_PACKAGE", [GETTEXT package name])
70
71 AM_GLIB_GNU_GETTEXT
3472 IT_PROG_INTLTOOL([0.35.0])
3573
36
37 PKG_CHECK_MODULES(GLIB2, gmodule-export-2.0 >= $GLIB2_REQUIRED)
74 PKG_PROG_PKG_CONFIG
75 GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
76 AC_SUBST(GLIB_MKENUMS)
77
78 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQUIRED gthread-2.0 gmodule-export-2.0)
3879 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED)
39 PKG_CHECK_MODULES(LIBVIRT, libvirt >= $LIBVIRT_REQUIRED)
80
81 AC_ARG_WITH([libvirt],
82 AS_HELP_STRING([--without-libvirt], [Ignore presence of libvirt and disable it]))
83
84 AS_IF([test "x$with_libvirt" != "xno"],
85 [PKG_CHECK_MODULES(LIBVIRT,
86 [libvirt],
87 [have_libvirt=yes], [have_libvirt=no])],
88 [have_libvirt=no])
89
90 AS_IF([test "x$have_libvirt" = "xyes"],
91 [AC_DEFINE([HAVE_LIBVIRT], 1, [Have libvirt?])],
92 [AS_IF([test "x$with_libvirt" = "xyes"],
93 [AC_MSG_ERROR([libvirt requested but not found])
94 ])
95 ])
96 AM_CONDITIONAL([HAVE_LIBVIRT], [test "x$have_libvirt" = "xyes"])
4097
4198 AC_MSG_CHECKING([which gtk+ version to compile against])
4299 AC_ARG_WITH([gtk],
51108 case "$with_gtk" in
52109 2.0) GTK_API_VERSION=2.0
53110 GTK_REQUIRED=$GTK2_REQUIRED
111 GTK_VNC_REQUIRED=$GTK_VNC1_REQUIRED
54112 GTK_VNC_API_VERSION=1.0
55113 SPICE_GTK_API_VERSION=2.0
56114 ;;
57115 3.0) GTK_API_VERSION=3.0
58116 GTK_REQUIRED=$GTK3_REQUIRED
117 GTK_VNC_REQUIRED=$GTK_VNC2_REQUIRED
59118 GTK_VNC_API_VERSION=2.0
60119 SPICE_GTK_API_VERSION=3.0
61120 ;;
69128
70129 PKG_CHECK_MODULES(GTK, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED)
71130
72 PKG_CHECK_MODULES(GTK_VNC, gtk-vnc-$GTK_VNC_API_VERSION >= $GTK_VNC_REQUIRED)
131 AC_ARG_WITH([gtk-vnc],
132 AS_HELP_STRING([--without-gtk-vnc], [Ignore presence of gtk-vnc and disable it]))
133
134 AS_IF([test "x$with_gtk_vnc" != "xno"],
135 [PKG_CHECK_MODULES(GTK_VNC,
136 gtk-vnc-$GTK_VNC_API_VERSION >= $GTK_VNC_REQUIRED,
137 [have_gtk_vnc=yes], [have_gtk_vnc=no])],
138 [have_gtk_vnc=no])
139
140 AS_IF([test "x$have_gtk_vnc" = "xyes"],
141 [AC_DEFINE([HAVE_GTK_VNC], 1, [Have gtk-vnc?])],
142 [AS_IF([test "x$with_gtk_vnc" = "xyes"],
143 [AC_MSG_ERROR([gtk-vnc requested but not found])
144 ])
145 ])
146 AM_CONDITIONAL([HAVE_GTK_VNC], [test "x$have_gtk_vnc" = "xyes"])
73147
74148 AC_ARG_WITH([spice-gtk],
75149 AS_HELP_STRING([--without-spice-gtk], [Ignore presence of spice-gtk and disable it]))
76150
77151 AS_IF([test "x$with_spice_gtk" != "xno"],
78152 [PKG_CHECK_MODULES(SPICE_GTK,
79 spice-client-gtk-$SPICE_GTK_API_VERSION >= $SPICE_GTK_REQUIRED,
153 [spice-client-gtk-$SPICE_GTK_API_VERSION >= $SPICE_GTK_REQUIRED],
80154 [have_spice_gtk=yes], [have_spice_gtk=no])],
81155 [have_spice_gtk=no])
82156
83157 AS_IF([test "x$have_spice_gtk" = "xyes"],
158 [PKG_CHECK_MODULES(SPICE_CONTROLLER, [spice-controller])]
159 [PKG_CHECK_MODULES(SPICE_PROTOCOL, [spice-protocol >= $SPICE_PROTOCOL_REQUIRED])]
84160 [AC_DEFINE([HAVE_SPICE_GTK], 1, [Have spice-gtk?])],
85161 [AS_IF([test "x$with_spice_gtk" = "xyes"],
86162 [AC_MSG_ERROR([spice-gtk requested but not found])
115191 fi
116192 AM_CONDITIONAL(ENABLE_PLUGIN, [test "x$enable_plugin" = "xyes"])
117193
118 AC_OUTPUT(Makefile
119 src/Makefile
120 man/Makefile
121 po/Makefile.in
122 plugin/Makefile
123 virt-viewer.spec
124 mingw32-virt-viewer.spec)
194 AC_OUTPUT([
195 Makefile
196 data/Makefile
197 data/virt-viewer.nsis
198 icons/Makefile
199 icons/16x16/Makefile
200 icons/22x22/Makefile
201 icons/24x24/Makefile
202 icons/32x32/Makefile
203 icons/48x48/Makefile
204 icons/256x256/Makefile
205 man/Makefile
206 mingw-virt-viewer.spec
207 plugin/Makefile
208 po/Makefile.in
209 src/Makefile
210 src/virt-viewer.rc
211 virt-viewer.spec
212 ])
213
214 AC_MSG_NOTICE([])
215 AC_MSG_NOTICE([Configuration summary])
216 AC_MSG_NOTICE([=====================])
217 AC_MSG_NOTICE([])
218 AC_MSG_NOTICE([ Features:])
219 AC_MSG_NOTICE([])
220 AC_MSG_NOTICE([ Plugin: $enable_plugin])
221 AC_MSG_NOTICE([ Gtk: $with_gtk])
222 AC_MSG_NOTICE([])
223 AC_MSG_NOTICE([ Libraries:])
224 AC_MSG_NOTICE([])
225 AC_MSG_NOTICE([ GLIB2: $GLIB2_CFLAGS $GLIB2_LIBS])
226 AC_MSG_NOTICE([])
227 AC_MSG_NOTICE([ GTK: $GTK_CFLAGS $GTK_LIBS])
228 AC_MSG_NOTICE([])
229 AC_MSG_NOTICE([ GTK_VNC: $GTK_VNC_CFLAGS $GTK_VNC_LIBS])
230 AC_MSG_NOTICE([])
231 AC_MSG_NOTICE([ SPICE_GTK: $SPICE_GTK_CFLAGS $SPICE_GTK_LIBS])
232 AC_MSG_NOTICE([])
233 AC_MSG_NOTICE([ LIBXML2: $LIBXML2_CFLAGS $LIBXML2_LIBS])
234 AC_MSG_NOTICE([])
235 AC_MSG_NOTICE([ LIBVIRT: $LIBVIRT_CFLAGS $LIBVIRT_LIBS])
236 AC_MSG_NOTICE([])
0 NULL=
1
2 EXTRA_DIST = \
3 spice-xpi-client-remote-viewer \
4 virt-viewer.nsis.in \
5 $(NULL)
6
7 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15 VPATH = @srcdir@
16 am__make_dryrun = \
17 { \
18 am__dry=no; \
19 case $$MAKEFLAGS in \
20 *\\[\ \ ]*) \
21 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
22 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
23 *) \
24 for am__flg in $$MAKEFLAGS; do \
25 case $$am__flg in \
26 *=*|--*) ;; \
27 *n*) am__dry=yes; break;; \
28 esac; \
29 done;; \
30 esac; \
31 test $$am__dry = yes; \
32 }
33 pkgdatadir = $(datadir)/@PACKAGE@
34 pkgincludedir = $(includedir)/@PACKAGE@
35 pkglibdir = $(libdir)/@PACKAGE@
36 pkglibexecdir = $(libexecdir)/@PACKAGE@
37 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
38 install_sh_DATA = $(install_sh) -c -m 644
39 install_sh_PROGRAM = $(install_sh) -c
40 install_sh_SCRIPT = $(install_sh) -c
41 INSTALL_HEADER = $(INSTALL_DATA)
42 transform = $(program_transform_name)
43 NORMAL_INSTALL = :
44 PRE_INSTALL = :
45 POST_INSTALL = :
46 NORMAL_UNINSTALL = :
47 PRE_UNINSTALL = :
48 POST_UNINSTALL = :
49 build_triplet = @build@
50 host_triplet = @host@
51 subdir = data
52 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
53 $(srcdir)/virt-viewer.nsis.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES = virt-viewer.nsis
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
86 ACLOCAL = @ACLOCAL@
87 ALL_LINGUAS = @ALL_LINGUAS@
88 AMTAR = @AMTAR@
89 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
90 AR = @AR@
91 AUTOCONF = @AUTOCONF@
92 AUTOHEADER = @AUTOHEADER@
93 AUTOMAKE = @AUTOMAKE@
94 AWK = @AWK@
95 CATALOGS = @CATALOGS@
96 CATOBJEXT = @CATOBJEXT@
97 CC = @CC@
98 CCDEPMODE = @CCDEPMODE@
99 CFLAGS = @CFLAGS@
100 CPP = @CPP@
101 CPPFLAGS = @CPPFLAGS@
102 CYGPATH_W = @CYGPATH_W@
103 DATADIRNAME = @DATADIRNAME@
104 DEFS = @DEFS@
105 DEPDIR = @DEPDIR@
106 DLLTOOL = @DLLTOOL@
107 DSYMUTIL = @DSYMUTIL@
108 DUMPBIN = @DUMPBIN@
109 ECHO_C = @ECHO_C@
110 ECHO_N = @ECHO_N@
111 ECHO_T = @ECHO_T@
112 EGREP = @EGREP@
113 EXEEXT = @EXEEXT@
114 FGREP = @FGREP@
115 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
116 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
117 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
118 GLIB2_CFLAGS = @GLIB2_CFLAGS@
119 GLIB2_LIBS = @GLIB2_LIBS@
120 GLIB_MKENUMS = @GLIB_MKENUMS@
121 GMOFILES = @GMOFILES@
122 GMSGFMT = @GMSGFMT@
123 GREP = @GREP@
124 GTK_API_VERSION = @GTK_API_VERSION@
125 GTK_CFLAGS = @GTK_CFLAGS@
126 GTK_LIBS = @GTK_LIBS@
127 GTK_REQUIRED = @GTK_REQUIRED@
128 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
129 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
130 GTK_VNC_LIBS = @GTK_VNC_LIBS@
131 ICOTOOL = @ICOTOOL@
132 INSTALL = @INSTALL@
133 INSTALL_DATA = @INSTALL_DATA@
134 INSTALL_PROGRAM = @INSTALL_PROGRAM@
135 INSTALL_SCRIPT = @INSTALL_SCRIPT@
136 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
137 INSTOBJEXT = @INSTOBJEXT@
138 INTLLIBS = @INTLLIBS@
139 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
140 INTLTOOL_MERGE = @INTLTOOL_MERGE@
141 INTLTOOL_PERL = @INTLTOOL_PERL@
142 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
143 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
144 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
145 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
146 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
147 LD = @LD@
148 LDFLAGS = @LDFLAGS@
149 LIBOBJS = @LIBOBJS@
150 LIBS = @LIBS@
151 LIBTOOL = @LIBTOOL@
152 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
153 LIBVIRT_LIBS = @LIBVIRT_LIBS@
154 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
155 LIBXML2_LIBS = @LIBXML2_LIBS@
156 LIPO = @LIPO@
157 LN_S = @LN_S@
158 LTLIBOBJS = @LTLIBOBJS@
159 MAKEINFO = @MAKEINFO@
160 MANIFEST_TOOL = @MANIFEST_TOOL@
161 MKDIR_P = @MKDIR_P@
162 MKINSTALLDIRS = @MKINSTALLDIRS@
163 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
164 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
165 MSGFMT = @MSGFMT@
166 MSGFMT_OPTS = @MSGFMT_OPTS@
167 MSGMERGE = @MSGMERGE@
168 NM = @NM@
169 NMEDIT = @NMEDIT@
170 NSPR_CFLAGS = @NSPR_CFLAGS@
171 NSPR_LIBS = @NSPR_LIBS@
172 OBJDUMP = @OBJDUMP@
173 OBJEXT = @OBJEXT@
174 OTOOL = @OTOOL@
175 OTOOL64 = @OTOOL64@
176 PACKAGE = @PACKAGE@
177 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
178 PACKAGE_NAME = @PACKAGE_NAME@
179 PACKAGE_STRING = @PACKAGE_STRING@
180 PACKAGE_TARNAME = @PACKAGE_TARNAME@
181 PACKAGE_URL = @PACKAGE_URL@
182 PACKAGE_VERSION = @PACKAGE_VERSION@
183 PATH_SEPARATOR = @PATH_SEPARATOR@
184 PKG_CONFIG = @PKG_CONFIG@
185 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
186 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
187 POFILES = @POFILES@
188 POSUB = @POSUB@
189 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
190 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
191 RANLIB = @RANLIB@
192 SED = @SED@
193 SET_MAKE = @SET_MAKE@
194 SHELL = @SHELL@
195 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
196 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
197 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
198 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
199 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
200 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
201 STRIP = @STRIP@
202 USE_NLS = @USE_NLS@
203 VERSION = @VERSION@
204 WARN_CFLAGS = @WARN_CFLAGS@
205 WINDRES = @WINDRES@
206 XGETTEXT = @XGETTEXT@
207 abs_builddir = @abs_builddir@
208 abs_srcdir = @abs_srcdir@
209 abs_top_builddir = @abs_top_builddir@
210 abs_top_srcdir = @abs_top_srcdir@
211 ac_ct_AR = @ac_ct_AR@
212 ac_ct_CC = @ac_ct_CC@
213 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
214 am__include = @am__include@
215 am__leading_dot = @am__leading_dot@
216 am__quote = @am__quote@
217 am__tar = @am__tar@
218 am__untar = @am__untar@
219 bindir = @bindir@
220 build = @build@
221 build_alias = @build_alias@
222 build_cpu = @build_cpu@
223 build_os = @build_os@
224 build_vendor = @build_vendor@
225 builddir = @builddir@
226 datadir = @datadir@
227 datarootdir = @datarootdir@
228 docdir = @docdir@
229 dvidir = @dvidir@
230 exec_prefix = @exec_prefix@
231 host = @host@
232 host_alias = @host_alias@
233 host_cpu = @host_cpu@
234 host_os = @host_os@
235 host_vendor = @host_vendor@
236 htmldir = @htmldir@
237 includedir = @includedir@
238 infodir = @infodir@
239 install_sh = @install_sh@
240 intltool__v_merge_options_ = @intltool__v_merge_options_@
241 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
242 libdir = @libdir@
243 libexecdir = @libexecdir@
244 localedir = @localedir@
245 localstatedir = @localstatedir@
246 mandir = @mandir@
247 mkdir_p = @mkdir_p@
248 oldincludedir = @oldincludedir@
249 pdfdir = @pdfdir@
250 prefix = @prefix@
251 program_transform_name = @program_transform_name@
252 psdir = @psdir@
253 sbindir = @sbindir@
254 sharedstatedir = @sharedstatedir@
255 srcdir = @srcdir@
256 sysconfdir = @sysconfdir@
257 target_alias = @target_alias@
258 top_build_prefix = @top_build_prefix@
259 top_builddir = @top_builddir@
260 top_srcdir = @top_srcdir@
261 NULL =
262 EXTRA_DIST = \
263 spice-xpi-client-remote-viewer \
264 virt-viewer.nsis.in \
265 $(NULL)
266
267 all: all-am
268
269 .SUFFIXES:
270 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
271 @for dep in $?; do \
272 case '$(am__configure_deps)' in \
273 *$$dep*) \
274 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
275 && { if test -f $@; then exit 0; else break; fi; }; \
276 exit 1;; \
277 esac; \
278 done; \
279 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
280 $(am__cd) $(top_srcdir) && \
281 $(AUTOMAKE) --gnu data/Makefile
282 .PRECIOUS: Makefile
283 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
284 @case '$?' in \
285 *config.status*) \
286 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
287 *) \
288 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
289 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
290 esac;
291
292 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
293 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
294
295 $(top_srcdir)/configure: $(am__configure_deps)
296 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
297 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
298 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
299 $(am__aclocal_m4_deps):
300 virt-viewer.nsis: $(top_builddir)/config.status $(srcdir)/virt-viewer.nsis.in
301 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
302
303 mostlyclean-libtool:
304 -rm -f *.lo
305
306 clean-libtool:
307 -rm -rf .libs _libs
308 tags: TAGS
309 TAGS:
310
311 ctags: CTAGS
312 CTAGS:
313
314 cscope cscopelist:
315
316
317 distdir: $(DISTFILES)
318 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
319 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
320 list='$(DISTFILES)'; \
321 dist_files=`for file in $$list; do echo $$file; done | \
322 sed -e "s|^$$srcdirstrip/||;t" \
323 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
324 case $$dist_files in \
325 */*) $(MKDIR_P) `echo "$$dist_files" | \
326 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
327 sort -u` ;; \
328 esac; \
329 for file in $$dist_files; do \
330 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
331 if test -d $$d/$$file; then \
332 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
333 if test -d "$(distdir)/$$file"; then \
334 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
335 fi; \
336 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
337 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
338 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
339 fi; \
340 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
341 else \
342 test -f "$(distdir)/$$file" \
343 || cp -p $$d/$$file "$(distdir)/$$file" \
344 || exit 1; \
345 fi; \
346 done
347 check-am: all-am
348 check: check-am
349 all-am: Makefile
350 installdirs:
351 install: install-am
352 install-exec: install-exec-am
353 install-data: install-data-am
354 uninstall: uninstall-am
355
356 install-am: all-am
357 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
358
359 installcheck: installcheck-am
360 install-strip:
361 if test -z '$(STRIP)'; then \
362 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
363 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
364 install; \
365 else \
366 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
367 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
368 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
369 fi
370 mostlyclean-generic:
371
372 clean-generic:
373
374 distclean-generic:
375 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
376 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
377
378 maintainer-clean-generic:
379 @echo "This command is intended for maintainers to use"
380 @echo "it deletes files that may require special tools to rebuild."
381 clean: clean-am
382
383 clean-am: clean-generic clean-libtool mostlyclean-am
384
385 distclean: distclean-am
386 -rm -f Makefile
387 distclean-am: clean-am distclean-generic
388
389 dvi: dvi-am
390
391 dvi-am:
392
393 html: html-am
394
395 html-am:
396
397 info: info-am
398
399 info-am:
400
401 install-data-am:
402
403 install-dvi: install-dvi-am
404
405 install-dvi-am:
406
407 install-exec-am:
408
409 install-html: install-html-am
410
411 install-html-am:
412
413 install-info: install-info-am
414
415 install-info-am:
416
417 install-man:
418
419 install-pdf: install-pdf-am
420
421 install-pdf-am:
422
423 install-ps: install-ps-am
424
425 install-ps-am:
426
427 installcheck-am:
428
429 maintainer-clean: maintainer-clean-am
430 -rm -f Makefile
431 maintainer-clean-am: distclean-am maintainer-clean-generic
432
433 mostlyclean: mostlyclean-am
434
435 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
436
437 pdf: pdf-am
438
439 pdf-am:
440
441 ps: ps-am
442
443 ps-am:
444
445 uninstall-am:
446
447 .MAKE: install-am install-strip
448
449 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
450 distclean distclean-generic distclean-libtool distdir dvi \
451 dvi-am html html-am info info-am install install-am \
452 install-data install-data-am install-dvi install-dvi-am \
453 install-exec install-exec-am install-html install-html-am \
454 install-info install-info-am install-man install-pdf \
455 install-pdf-am install-ps install-ps-am install-strip \
456 installcheck installcheck-am installdirs maintainer-clean \
457 maintainer-clean-generic mostlyclean mostlyclean-generic \
458 mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
459
460
461 -include $(top_srcdir)/git.mk
462
463 # Tell versions [3.59,3.63) of GNU make to not export all variables.
464 # Otherwise a system limit (for SysV at least) may be exceeded.
465 .NOEXPORT:
0 #!/bin/sh
1
2 logger -t spice "starting remote-viewer --spice-controller $@..."
3 env | logger -t spice
4 exec remote-viewer --spice-controller "$@" 2>&1 | logger -t spice
5 logger -t spice "remote-viewer execution failed"
0 #!Nsis Installer Command Script
1 # @configure_input@
2 # To build an installer from the script you would normally do:
3 #
4 # makensis virt-viewer.nsis
5 #
6 # which will generate the output file 'virt-viewer-@VERSION@.exe' which is a Windows
7 # installer containing your program.
8
9 Name "VirtViewer @VERSION@"
10 OutFile "virt-viewer-@VERSION@.exe"
11 InstallDir "$LOCALAPPDATA\virt-viewer"
12 InstallDirRegKey HKCU "Software\virt-viewer" ""
13
14 RequestExecutionLevel user
15 SetCompressor bzip2
16 ShowInstDetails hide
17 ShowUninstDetails hide
18 XPStyle on
19
20 Page directory
21 Page instfiles
22
23 !define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\virt-viewer"
24 !define REG_IEPOLICY "Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{96190E9D-6FBB-64DB-9095-29F6FDE0B897}"
25
26 Function RegisterApplication
27 ;Register uninstaller into Add/Remove panel (for local user only)
28 WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayName" "VirtViewer @VERSION@"
29 WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayIcon" "$\"$INSTDIR\bin\virt-viewer.exe$\""
30 WriteRegStr HKCU "${REG_UNINSTALL}" "Publisher" "virt-manager.org"
31 WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayVersion" "@VERSION@"
32 WriteRegDWord HKCU "${REG_UNINSTALL}" "EstimatedSize" 32000 ;KB
33 WriteRegStr HKCU "${REG_UNINSTALL}" "HelpLink" "http://www.virt-manager.org"
34 WriteRegStr HKCU "${REG_UNINSTALL}" "URLInfoAbout" "http://www.virt-manager.org"
35 WriteRegStr HKCU "${REG_UNINSTALL}" "InstallLocation" "$\"$INSTDIR$\""
36 WriteRegStr HKCU "${REG_UNINSTALL}" "InstallSource" "$\"$EXEDIR$\""
37 WriteRegDWord HKCU "${REG_UNINSTALL}" "NoModify" 1
38 WriteRegDWord HKCU "${REG_UNINSTALL}" "NoRepair" 1
39 WriteRegStr HKCU "${REG_UNINSTALL}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\""
40 WriteRegStr HKCU "${REG_UNINSTALL}" "Comments" "Uninstalls VirtViewer."
41
42 WriteRegStr HKCU "${REG_IEPOLICY}" "AppPath" "$INSTDIR\bin"
43 WriteRegStr HKCU "${REG_IEPOLICY}" "AppName" "remote-viewer.exe"
44 WriteRegDWord HKCU "${REG_IEPOLICY}" "Policy" 3
45 FunctionEnd
46
47 Section "VirtViewer"
48 SectionIn RO
49 WriteRegStr HKCU "Software\virt-viewer" "" $INSTDIR
50
51 SetOutPath "$INSTDIR\bin"
52 File "@prefix@/bin/gst-discoverer-0.10.exe"
53 File "@prefix@/bin/gst-feedback.exe"
54 File "@prefix@/bin/gst-inspect-0.10.exe"
55 File "@prefix@/bin/gst-inspect.exe"
56 File "@prefix@/bin/gst-launch-0.10.exe"
57 File "@prefix@/bin/gst-launch.exe"
58 File "@prefix@/bin/gst-typefind-0.10.exe"
59 File "@prefix@/bin/gst-typefind.exe"
60 File "@prefix@/bin/gst-xmlinspect-0.10.exe"
61 File "@prefix@/bin/gst-xmlinspect.exe"
62 File "@prefix@/bin/gst-xmllaunch-0.10.exe"
63 File "@prefix@/bin/gst-xmllaunch.exe"
64 File "@prefix@/bin/libatk-1.0-0.dll"
65 File "@prefix@/bin/libcairo-2.dll"
66 File "@prefix@/bin/libcelt051-0.dll"
67 File "@prefix@/bin/libcrypto-10.dll"
68 File "@prefix@/bin/libffi-6.dll"
69 File "@prefix@/bin/libfontconfig-1.dll"
70 File "@prefix@/bin/libfreetype-6.dll"
71 File "@prefix@/bin/libgdk-win32-2.0-0.dll"
72 File "@prefix@/bin/libgdk-win32-2.0-0.dll"
73 File "@prefix@/bin/libgdk_pixbuf-2.0-0.dll"
74 File "@prefix@/bin/libgdk_pixbuf-2.0-0.dll"
75 File "@prefix@/bin/libgio-2.0-0.dll"
76 File "@prefix@/bin/libglib-2.0-0.dll"
77 File "@prefix@/bin/libgmodule-2.0-0.dll"
78 File "@prefix@/bin/libgobject-2.0-0.dll"
79 File "@prefix@/bin/libgstapp-0.10-0.dll"
80 File "@prefix@/bin/libgstaudio-0.10-0.dll"
81 File "@prefix@/bin/libgstbase-0.10-0.dll"
82 File "@prefix@/bin/libgstcontroller-0.10-0.dll"
83 File "@prefix@/bin/libgstfft-0.10-0.dll"
84 File "@prefix@/bin/libgstinterfaces-0.10-0.dll"
85 File "@prefix@/bin/libgstpbutils-0.10-0.dll"
86 File "@prefix@/bin/libgstreamer-0.10-0.dll"
87 File "@prefix@/bin/libgstvideo-0.10-0.dll"
88 File "@prefix@/bin/libgthread-2.0-0.dll"
89 File "@prefix@/bin/libgtk-win32-2.0-0.dll"
90 File "@prefix@/bin/iconv.dll"
91 File "@prefix@/bin/libintl-8.dll"
92 File "@prefix@/bin/libjpeg-62.dll"
93 File "@prefix@/bin/liborc-0.4-0.dll"
94 File "@prefix@/bin/liborc-test-0.4-0.dll"
95 File "@prefix@/bin/libpango-1.0-0.dll"
96 File "@prefix@/bin/libpangocairo-1.0-0.dll"
97 File "@prefix@/bin/libpangoft2-1.0-0.dll"
98 File "@prefix@/bin/libpangowin32-1.0-0.dll"
99 File "@prefix@/bin/libpixman-1-0.dll"
100 File "@prefix@/bin/libpng15-15.dll"
101 File "@prefix@/bin/libspice-client-glib-2.0-1.dll"
102 File "@prefix@/bin/libspice-client-gtk-2.0-1.dll"
103 File "@prefix@/bin/libspice-controller-0.dll"
104 File "@prefix@/bin/libssl-10.dll"
105 File "@prefix@/bin/libtasn1-3.dll"
106 File "@prefix@/bin/libxml2-2.dll"
107 File "@prefix@/bin/libp11-kit-0.dll"
108 File "@prefix@/bin/libssh2-1.dll"
109 File "@prefix@/bin/libcurl-4.dll"
110 File "@prefix@/bin/libportablexdr-0.dll"
111 File "@prefix@/bin/libidn-11.dll"
112 File "@prefix@/bin/libssp-0.dll"
113 File "@prefix@/bin/libvirt-0.dll"
114 File "@prefix@/bin/libvirt-qemu-0.dll"
115 File "@prefix@/bin/virsh.exe"
116 File "@prefix@/bin/virt-pki-validate"
117 File "@prefix@/bin/virt-xml-validate"
118
119 #gtkvnc
120 File "@prefix@/bin/libgnutls-26.dll"
121 File "@prefix@/bin/libgpg-error-0.dll"
122 File "@prefix@/bin/libgcrypt-11.dll"
123 File "@prefix@/bin/libgvnc-1.0-0.dll"
124 File "@prefix@/bin/libgtk-vnc-1.0-0.dll"
125
126 File "@prefix@/bin/pango-querymodules.exe"
127 File /oname=remote-viewer.com "${DESTDIR}@prefix@/bin/windows-cmdline-wrapper.exe"
128 File "${DESTDIR}@prefix@/bin/remote-viewer.exe"
129 File "${DESTDIR}@prefix@/bin/virt-viewer.exe"
130 File "@prefix@/bin/zlib1.dll"
131
132 SetOutPath "$INSTDIR\etc"
133 File /r "@prefix@/etc/fonts"
134 File /r "@prefix@/etc/gtk-2.0"
135 File /r "@prefix@/etc/libvirt"
136 CreateDirectory "$INSTDIR\etc\pango"
137
138 CreateDirectory "$INSTDIR\etc\gtk-2.0"
139
140 SetOutPath "$INSTDIR\lib"
141 File /r "@prefix@/lib/gdk-pixbuf-2.0"
142 File /r "@prefix@/lib/gtk-2.0"
143 File /r "@prefix@/lib/pango"
144
145 SetOutPath "$INSTDIR\lib\gstreamer-0.10"
146 File "@prefix@/lib/gstreamer-0.10/libgstapp.dll"
147 File "@prefix@/lib/gstreamer-0.10/libgstaudioconvert.dll"
148 File "@prefix@/lib/gstreamer-0.10/libgstaudiorate.dll"
149 File "@prefix@/lib/gstreamer-0.10/libgstaudioresample.dll"
150 File "@prefix@/lib/gstreamer-0.10/libgstaudiotestsrc.dll"
151 File "@prefix@/lib/gstreamer-0.10/libgstautodetect.dll"
152 File "@prefix@/lib/gstreamer-0.10/libgstcoreelements.dll"
153 File "@prefix@/lib/gstreamer-0.10/libgstdirectsoundsink.dll"
154 File "@prefix@/lib/gstreamer-0.10/libgstdirectsoundsrc.dll"
155
156 SetOutPath "$INSTDIR\share"
157 File /r "@prefix@/share/libvirt"
158
159 # fixme for all languages
160 SetOutPath "$INSTDIR\share\locale\fr"
161 File "@prefix@/share/locale/fr/LC_MESSAGES/libvirt.*"
162 File "${DESTDIR}@prefix@/share/locale/fr/LC_MESSAGES/virt-viewer.*"
163
164 SetOutPath "$INSTDIR\share\virt-viewer\ui"
165 File "${DESTDIR}@prefix@/share/virt-viewer/ui/*.xml"
166
167 SetOutPath "$INSTDIR\share\themes\MS-Windows\gtk-2.0"
168 File "@prefix@/share/themes/MS-Windows/gtk-2.0/gtkrc"
169
170 SetOutPath "$INSTDIR\etc\gtk-2.0"
171 FileOpen $0 gtkrc w
172 FileWrite $0 "gtk-theme-name = $\"MS-Windows$\" $\n"
173 FileWrite $0 "gtk-icon-theme-name = $\"hicolor$\" $\n"
174 FileClose $0
175
176 SetOutPath "$INSTDIR\share\icons\hicolor"
177 File "/usr/share/icons/hicolor/index.theme"
178
179 SetOutPath "$INSTDIR\share\icons\hicolor\16x16\apps"
180 File "${DESTDIR}@prefix@/share/icons/hicolor/16x16/apps/virt-viewer.png"
181 File "/usr/share/icons/gnome/16x16/apps/preferences-desktop-keyboard-shortcuts.png"
182 SetOutPath "$INSTDIR\share\icons\hicolor\32x32\apps"
183 File "${DESTDIR}@prefix@/share/icons/hicolor/32x32/apps/virt-viewer.png"
184 SetOutPath "$INSTDIR\share\icons\hicolor\48x48\apps"
185 File "${DESTDIR}@prefix@/share/icons/hicolor/48x48/apps/virt-viewer.png"
186
187 ReadEnvStr $0 COMSPEC
188 SetOutPath "$INSTDIR"
189 nsExec::ExecToLog '$0 /C bin\pango-querymodules.exe > etc\pango\pango.modules'
190
191 # make virt-viewer the default spice-x client
192 WriteRegStr HKCU "Software\spice-space.org\spicex" "client" "$INSTDIR\bin\remote-viewer.exe --spice-controller"
193
194 SectionEnd
195
196 Section "Start Menu Shortcuts"
197 CreateDirectory "$SMPROGRAMS\VirtViewer"
198 CreateShortCut "$SMPROGRAMS\VirtViewer\Remote Viewer.lnk" "$INSTDIR\bin\remote-viewer.exe" "" "$INSTDIR\bin\remote-viewer.exe" 0
199 CreateShortCut "$SMPROGRAMS\VirtViewer\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
200 SectionEnd
201
202 Section "Uninstall"
203 Delete /rebootok "$SMPROGRAMS\VirtViewer\Uninstall.lnk"
204 Delete /rebootok "$SMPROGRAMS\VirtViewer\Remote Viewer.lnk"
205 RMDir "$SMPROGRAMS\VirtViewer"
206
207 DeleteRegKey HKCU "Software\spice-space.org\spicex\client"
208 DeleteRegKey /ifempty HKCU "Software\spice-space.org\spicex"
209 DeleteRegKey /ifempty HKCU "Software\spice-space.org"
210 DeleteRegKey HKCU "Software\virt-viewer"
211 DeleteRegKey HKCU "${REG_UNINSTALL}"
212 DeleteRegKey HKCU "${REG_IEPOLICY}"
213
214 RMDir /r "$INSTDIR\lib\pango"
215
216 RMDir /r "$INSTDIR\lib\gtk-2.0"
217
218 RMDir /r "$INSTDIR\share\icons\hicolor"
219
220 Delete /rebootok "$INSTDIR\share\virt-viewer\ui\*.xml"
221 Delete /rebootok "$INSTDIR\share\themes\MS-Windows\gtk-2.0\gtkrc"
222
223 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstdirectsoundsrc.dll"
224 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstdirectsoundsink.dll"
225 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstcoreelements.dll"
226 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstautodetect.dll"
227 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudiotestsrc.dll"
228 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudioresample.dll"
229 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudiorate.dll"
230 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstaudioconvert.dll"
231 Delete /rebootok "$INSTDIR\lib\gstreamer-0.10\libgstapp.dll"
232 RMDir "$INSTDIR\lib\gstreamer-0.10"
233
234 RMDir /r "$INSTDIR\lib\gdk-pixbuf-2.0"
235
236 RMDir /r "$INSTDIR\etc\pango"
237
238 RMDir /r "$INSTDIR\etc\gtk-2.0"
239
240 RMDir /r "$INSTDIR\etc\fonts"
241
242 Delete /rebootok "$INSTDIR\bin\remote-viewer.com"
243 Delete /rebootok "$INSTDIR\bin\remote-viewer.exe"
244 Delete /rebootok "$INSTDIR\bin\pango-querymodules.exe"
245 Delete /rebootok "$INSTDIR\bin\libpangoft2-1.0-0.dll"
246 Delete /rebootok "$INSTDIR\bin\libgdk_pixbuf-2.0-0.dll"
247 Delete /rebootok "$INSTDIR\bin\libgdk-win32-2.0-0.dll"
248 Delete /rebootok "$INSTDIR\bin\gst-xmllaunch.exe"
249 Delete /rebootok "$INSTDIR\bin\gst-xmllaunch-0.10.exe"
250 Delete /rebootok "$INSTDIR\bin\gst-xmlinspect.exe"
251 Delete /rebootok "$INSTDIR\bin\gst-xmlinspect-0.10.exe"
252 Delete /rebootok "$INSTDIR\bin\gst-typefind.exe"
253 Delete /rebootok "$INSTDIR\bin\gst-typefind-0.10.exe"
254 Delete /rebootok "$INSTDIR\bin\gst-launch.exe"
255 Delete /rebootok "$INSTDIR\bin\gst-launch-0.10.exe"
256 Delete /rebootok "$INSTDIR\bin\gst-inspect.exe"
257 Delete /rebootok "$INSTDIR\bin\gst-inspect-0.10.exe"
258 Delete /rebootok "$INSTDIR\bin\gst-feedback.exe"
259 Delete /rebootok "$INSTDIR\bin\gst-discoverer-0.10.exe"
260 RMDir "$INSTDIR\bin"
261
262 Delete /rebootok "$INSTDIR\bin\libffi-6.dll"
263 Delete /rebootok "$INSTDIR\bin\zlib1.dll"
264 Delete /rebootok "$INSTDIR\bin\libp11-kit-0.dll"
265 Delete /rebootok "$INSTDIR\bin\libxml2-2.dll"
266 Delete /rebootok "$INSTDIR\bin\libtasn1-3.dll"
267 Delete /rebootok "$INSTDIR\bin\libssl-10.dll"
268 Delete /rebootok "$INSTDIR\bin\libspice-client-gtk-2.0-1.dll"
269 Delete /rebootok "$INSTDIR\bin\libspice-client-glib-2.0-1.dll"
270 Delete /rebootok "$INSTDIR\bin\libspice-controller-0.dll"
271 Delete /rebootok "$INSTDIR\bin\libpng15-15.dll"
272 Delete /rebootok "$INSTDIR\bin\libpixman-1-0.dll"
273 Delete /rebootok "$INSTDIR\bin\libpangowin32-1.0-0.dll"
274 Delete /rebootok "$INSTDIR\bin\libpangocairo-1.0-0.dll"
275 Delete /rebootok "$INSTDIR\bin\libpango-1.0-0.dll"
276 Delete /rebootok "$INSTDIR\bin\liborc-test-0.4-0.dll"
277 Delete /rebootok "$INSTDIR\bin\liborc-0.4-0.dll"
278 Delete /rebootok "$INSTDIR\bin\libjpeg-62.dll"
279 Delete /rebootok "$INSTDIR\bin\libintl-8.dll"
280 Delete /rebootok "$INSTDIR\bin\iconv.dll"
281 Delete /rebootok "$INSTDIR\bin\libgtk-win32-2.0-0.dll"
282 Delete /rebootok "$INSTDIR\bin\libgthread-2.0-0.dll"
283 Delete /rebootok "$INSTDIR\bin\libgstvideo-0.10-0.dll"
284 Delete /rebootok "$INSTDIR\bin\libgstreamer-0.10-0.dll"
285 Delete /rebootok "$INSTDIR\bin\libgstpbutils-0.10-0.dll"
286 Delete /rebootok "$INSTDIR\bin\libgstinterfaces-0.10-0.dll"
287 Delete /rebootok "$INSTDIR\bin\libgstfft-0.10-0.dll"
288 Delete /rebootok "$INSTDIR\bin\libgstcontroller-0.10-0.dll"
289 Delete /rebootok "$INSTDIR\bin\libgstbase-0.10-0.dll"
290 Delete /rebootok "$INSTDIR\bin\libgstaudio-0.10-0.dll"
291 Delete /rebootok "$INSTDIR\bin\libgstapp-0.10-0.dll"
292 Delete /rebootok "$INSTDIR\bin\libgobject-2.0-0.dll"
293 Delete /rebootok "$INSTDIR\bin\libgmodule-2.0-0.dll"
294 Delete /rebootok "$INSTDIR\bin\libglib-2.0-0.dll"
295 Delete /rebootok "$INSTDIR\bin\libgio-2.0-0.dll"
296 Delete /rebootok "$INSTDIR\bin\libgdk_pixbuf-2.0-0.dll"
297 Delete /rebootok "$INSTDIR\bin\libgdk-win32-2.0-0.dll"
298 Delete /rebootok "$INSTDIR\bin\libfreetype-6.dll"
299 Delete /rebootok "$INSTDIR\bin\libfontconfig-1.dll"
300 Delete /rebootok "$INSTDIR\bin\libcrypto-10.dll"
301 Delete /rebootok "$INSTDIR\bin\libcelt051-0.dll"
302 Delete /rebootok "$INSTDIR\bin\libcairo-2.dll"
303 Delete /rebootok "$INSTDIR\bin\libatk-1.0-0.dll"
304 RMDir "$INSTDIR\bin"
305 RMDir "$INSTDIR"
306 SectionEnd
307
308 Section -post
309 WriteUninstaller "$INSTDIR\Uninstall.exe"
310 Call RegisterApplication
311 SectionEnd
0 virt-viewer (0.5.4-1) unstable; urgency=low
1
2 * [e3fbded] Imported Upstream version 0.5.4
3 * [43b4d1e] Remove LDFLAGS override
4
5 -- Laurent Léonard <laurent@open-minds.org> Mon, 17 Sep 2012 23:09:48 +0200
6
7 virt-viewer (0.5.3-1) unstable; urgency=low
8
9 * [7ef218a] Imported Upstream version 0.5.3
10
11 -- Laurent Léonard <laurent@open-minds.org> Mon, 28 May 2012 19:47:27 +0200
12
13 virt-viewer (0.5.2-1) unstable; urgency=low
14
15 * [e7ae231] Imported Upstream version 0.5.2
16 * [26e78cf] Bump Standards-Version to 3.9.3
17
18 -- Laurent Léonard <laurent@open-minds.org> Sun, 22 Apr 2012 00:33:01 +0200
19
20 virt-viewer (0.5.1-1) unstable; urgency=low
21
22 * [78f733f] Imported Upstream version 0.5.1
23
24 -- Laurent Léonard <laurent@open-minds.org> Fri, 17 Feb 2012 18:10:34 +0100
25
26 virt-viewer (0.5.0-1) unstable; urgency=low
27
28 * [e2a8e17] Imported Upstream version 0.5.0
29
30 -- Laurent Léonard <laurent@open-minds.org> Thu, 16 Feb 2012 10:46:00 +0100
31
32 virt-viewer (0.4.2-1) unstable; urgency=low
33
34 * [032178c] Imported Upstream version 0.4.2
35 * [c290303] Drop patches
36 - 0001-Really-fix-using-alternate-ssh-ports.patch - applied upstream
37 - 0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch - applied
38 upstream
39
40 -- Laurent Léonard <laurent@open-minds.org> Thu, 10 Nov 2011 09:01:35 +0100
41
042 virt-viewer (0.4.1-4) experimental; urgency=low
143
244 * [0029b1c] Enable spice support
1818 libffi-dev,
1919 libtool,
2020 intltool
21 Standards-Version: 3.9.2
21 Standards-Version: 3.9.3
2222 Vcs-Git: git://git.debian.org/git/pkg-libvirt/virt-viewer.git
2323 Vcs-Browser: http://git.debian.org/?p=pkg-libvirt/virt-viewer.git;a=summary
2424 Homepage: http://virt-manager.et.redhat.com/
+0
-68
debian/patches/0001-Really-fix-using-alternate-ssh-ports.patch less more
0 From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
1 Date: Fri, 12 Aug 2011 19:05:11 +0200
2 Subject: Really fix using alternate ssh ports
3
4 Many,many thanks to Luca Capello for debugging this.
5
6 Closes: #637548
7 ---
8 src/virt-viewer-app.c | 18 ++++++++++++++----
9 1 files changed, 14 insertions(+), 4 deletions(-)
10
11 diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
12 index 918e788..6d3d9be 100644
13 --- a/src/virt-viewer-app.c
14 +++ b/src/virt-viewer-app.c
15 @@ -319,7 +319,7 @@ virt_viewer_app_open_tunnel_ssh(const char *sshhost,
16 int n = 0;
17
18 cmd[n++] = "ssh";
19 - if (!sshport) {
20 + if (sshport) {
21 cmd[n++] = "-p";
22 sprintf(portstr, "%d", sshport);
23 cmd[n++] = portstr;
24 @@ -635,6 +635,8 @@ virt_viewer_app_activate(VirtViewerApp *self)
25 if (priv->transport &&
26 g_strcasecmp(priv->transport, "ssh") == 0 &&
27 !priv->direct) {
28 + gchar *p = NULL;
29 +
30 if (priv->gport) {
31 virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n",
32 priv->ghost, priv->gport);
33 @@ -642,14 +644,22 @@ virt_viewer_app_activate(VirtViewerApp *self)
34 virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n",
35 priv->unixsock);
36 }
37 - virt_viewer_app_trace(self, "Setting up SSH tunnel via %s@%s:%d\n",
38 - priv->user, priv->host, priv->port ? priv->port : 22);
39 + if (priv->port)
40 + p = g_strdup_printf(":%d", priv->port);
41 +
42 + virt_viewer_app_trace(self, "Setting up SSH tunnel via %s%s%s%s\n",
43 + priv->user ? priv->user : "",
44 + priv->user ? "@" : "",
45 + priv->host, p ? p : "");
46 + g_free(p);
47
48 if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port,
49 priv->user, priv->ghost,
50 priv->gport, priv->unixsock)) < 0)
51 return -1;
52 } else if (priv->unixsock) {
53 +
54 +
55 virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s",
56 priv->unixsock);
57 if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0)
58 @@ -1311,7 +1321,7 @@ virt_viewer_app_set_connect_info(VirtViewerApp *self,
59 priv->transport = g_strdup(transport);
60 priv->unixsock = g_strdup(unixsock);
61 priv->user = g_strdup(user);
62 - priv->port = 0;
63 + priv->port = port;
64
65 virt_viewer_app_update_pretty_address(self);
66 }
67 --
+0
-96
debian/patches/0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch less more
0 From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
1 Date: Tue, 16 Aug 2011 08:36:13 -0700
2 Subject: ff callbacks must be invoked from a clean stack
3
4 If 'ff' callbacks are invoked directly from the remove
5 callback they will likely deadlock in libvirt. They must
6 be invoked from a clean stack, so switch to using a
7 glib idle callback.
8 ---
9 src/virt-viewer-events.c | 47 ++++++++++++++++++++++++++++++++++++++-------
10 1 files changed, 39 insertions(+), 8 deletions(-)
11
12 diff --git a/src/virt-viewer-events.c b/src/virt-viewer-events.c
13 index 108f97d..87df739 100644
14 --- a/src/virt-viewer-events.c
15 +++ b/src/virt-viewer-events.c
16 @@ -160,6 +160,23 @@ virt_viewer_events_update_handle(int watch,
17 }
18 }
19
20 +
21 +static gboolean
22 +virt_viewer_events_cleanup_handle(gpointer user_data)
23 +{
24 + struct virt_viewer_events_handle *data = user_data;
25 +
26 + DEBUG_LOG("Cleanup of handle %p", data);
27 + g_return_val_if_fail(data != NULL, FALSE);
28 +
29 + if (data->ff)
30 + (data->ff)(data->opaque);
31 +
32 + free(data);
33 + return FALSE;
34 +}
35 +
36 +
37 static int
38 virt_viewer_events_remove_handle(int watch)
39 {
40 @@ -172,13 +189,14 @@ virt_viewer_events_remove_handle(int watch)
41
42 DEBUG_LOG("Remove handle %d %d", watch, data->fd);
43
44 + if (!data->source)
45 + return -1;
46 +
47 g_source_remove(data->source);
48 data->source = 0;
49 data->events = 0;
50 - if (data->ff)
51 - (data->ff)(data->opaque);
52 - free(data);
53
54 + g_idle_add(virt_viewer_events_cleanup_handle, data);
55 return 0;
56 }
57
58 @@ -279,6 +297,23 @@ virt_viewer_events_update_timeout(int timer,
59 }
60 }
61
62 +
63 +static gboolean
64 +virt_viewer_events_cleanup_timeout(gpointer user_data)
65 +{
66 + struct virt_viewer_events_timeout *data = user_data;
67 +
68 + DEBUG_LOG("Cleanup of timeout %p", data);
69 + g_return_val_if_fail(data != NULL, FALSE);
70 +
71 + if (data->ff)
72 + (data->ff)(data->opaque);
73 +
74 + free(data);
75 + return FALSE;
76 +}
77 +
78 +
79 static int
80 virt_viewer_events_remove_timeout(int timer)
81 {
82 @@ -297,11 +332,7 @@ virt_viewer_events_remove_timeout(int timer)
83 g_source_remove(data->source);
84 data->source = 0;
85
86 - if (data->ff)
87 - (data->ff)(data->opaque);
88 -
89 - free(data);
90 -
91 + g_idle_add(virt_viewer_events_cleanup_timeout, data);
92 return 0;
93 }
94
95 --
+0
-2
debian/patches/series less more
0 0001-Really-fix-using-alternate-ssh-ports.patch
1 0002-ff-callbacks-must-be-invoked-from-a-clean-stack.patch
00 #!/usr/bin/make -f
11
2 DEB_CONFIGURE_SCRIPT_ENV += LDFLAGS=-Wl,--as-needed
32 DEB_CONFIGURE_EXTRA_FLAGS := --with-gtk=3.0 --with-spice-gtk
43
54 include /usr/share/cdbs/1/rules/debhelper.mk
+0
-630
depcomp less more
0 #! /bin/sh
1 # depcomp - compile a program generating dependencies as side-effects
2
3 scriptversion=2009-04-28.21; # UTC
4
5 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
6 # Software Foundation, Inc.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27
28 case $1 in
29 '')
30 echo "$0: No command. Try \`$0 --help' for more information." 1>&2
31 exit 1;
32 ;;
33 -h | --h*)
34 cat <<\EOF
35 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
36
37 Run PROGRAMS ARGS to compile a file, generating dependencies
38 as side-effects.
39
40 Environment variables:
41 depmode Dependency tracking mode.
42 source Source file read by `PROGRAMS ARGS'.
43 object Object file output by `PROGRAMS ARGS'.
44 DEPDIR directory where to store dependencies.
45 depfile Dependency file to output.
46 tmpdepfile Temporary file to use when outputing dependencies.
47 libtool Whether libtool is used (yes/no).
48
49 Report bugs to <bug-automake@gnu.org>.
50 EOF
51 exit $?
52 ;;
53 -v | --v*)
54 echo "depcomp $scriptversion"
55 exit $?
56 ;;
57 esac
58
59 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
60 echo "depcomp: Variables source, object and depmode must be set" 1>&2
61 exit 1
62 fi
63
64 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
65 depfile=${depfile-`echo "$object" |
66 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
67 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
68
69 rm -f "$tmpdepfile"
70
71 # Some modes work just like other modes, but use different flags. We
72 # parameterize here, but still list the modes in the big case below,
73 # to make depend.m4 easier to write. Note that we *cannot* use a case
74 # here, because this file can only contain one case statement.
75 if test "$depmode" = hp; then
76 # HP compiler uses -M and no extra arg.
77 gccflag=-M
78 depmode=gcc
79 fi
80
81 if test "$depmode" = dashXmstdout; then
82 # This is just like dashmstdout with a different argument.
83 dashmflag=-xM
84 depmode=dashmstdout
85 fi
86
87 cygpath_u="cygpath -u -f -"
88 if test "$depmode" = msvcmsys; then
89 # This is just like msvisualcpp but w/o cygpath translation.
90 # Just convert the backslash-escaped backslashes to single forward
91 # slashes to satisfy depend.m4
92 cygpath_u="sed s,\\\\\\\\,/,g"
93 depmode=msvisualcpp
94 fi
95
96 case "$depmode" in
97 gcc3)
98 ## gcc 3 implements dependency tracking that does exactly what
99 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
100 ## it if -MD -MP comes after the -MF stuff. Hmm.
101 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
102 ## the command line argument order; so add the flags where they
103 ## appear in depend2.am. Note that the slowdown incurred here
104 ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
105 for arg
106 do
107 case $arg in
108 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
109 *) set fnord "$@" "$arg" ;;
110 esac
111 shift # fnord
112 shift # $arg
113 done
114 "$@"
115 stat=$?
116 if test $stat -eq 0; then :
117 else
118 rm -f "$tmpdepfile"
119 exit $stat
120 fi
121 mv "$tmpdepfile" "$depfile"
122 ;;
123
124 gcc)
125 ## There are various ways to get dependency output from gcc. Here's
126 ## why we pick this rather obscure method:
127 ## - Don't want to use -MD because we'd like the dependencies to end
128 ## up in a subdir. Having to rename by hand is ugly.
129 ## (We might end up doing this anyway to support other compilers.)
130 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
131 ## -MM, not -M (despite what the docs say).
132 ## - Using -M directly means running the compiler twice (even worse
133 ## than renaming).
134 if test -z "$gccflag"; then
135 gccflag=-MD,
136 fi
137 "$@" -Wp,"$gccflag$tmpdepfile"
138 stat=$?
139 if test $stat -eq 0; then :
140 else
141 rm -f "$tmpdepfile"
142 exit $stat
143 fi
144 rm -f "$depfile"
145 echo "$object : \\" > "$depfile"
146 alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
147 ## The second -e expression handles DOS-style file names with drive letters.
148 sed -e 's/^[^:]*: / /' \
149 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
150 ## This next piece of magic avoids the `deleted header file' problem.
151 ## The problem is that when a header file which appears in a .P file
152 ## is deleted, the dependency causes make to die (because there is
153 ## typically no way to rebuild the header). We avoid this by adding
154 ## dummy dependencies for each header file. Too bad gcc doesn't do
155 ## this for us directly.
156 tr ' ' '
157 ' < "$tmpdepfile" |
158 ## Some versions of gcc put a space before the `:'. On the theory
159 ## that the space means something, we add a space to the output as
160 ## well.
161 ## Some versions of the HPUX 10.20 sed can't process this invocation
162 ## correctly. Breaking it into two sed invocations is a workaround.
163 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
164 rm -f "$tmpdepfile"
165 ;;
166
167 hp)
168 # This case exists only to let depend.m4 do its work. It works by
169 # looking at the text of this script. This case will never be run,
170 # since it is checked for above.
171 exit 1
172 ;;
173
174 sgi)
175 if test "$libtool" = yes; then
176 "$@" "-Wp,-MDupdate,$tmpdepfile"
177 else
178 "$@" -MDupdate "$tmpdepfile"
179 fi
180 stat=$?
181 if test $stat -eq 0; then :
182 else
183 rm -f "$tmpdepfile"
184 exit $stat
185 fi
186 rm -f "$depfile"
187
188 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
189 echo "$object : \\" > "$depfile"
190
191 # Clip off the initial element (the dependent). Don't try to be
192 # clever and replace this with sed code, as IRIX sed won't handle
193 # lines with more than a fixed number of characters (4096 in
194 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
195 # the IRIX cc adds comments like `#:fec' to the end of the
196 # dependency line.
197 tr ' ' '
198 ' < "$tmpdepfile" \
199 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
200 tr '
201 ' ' ' >> "$depfile"
202 echo >> "$depfile"
203
204 # The second pass generates a dummy entry for each header file.
205 tr ' ' '
206 ' < "$tmpdepfile" \
207 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
208 >> "$depfile"
209 else
210 # The sourcefile does not contain any dependencies, so just
211 # store a dummy comment line, to avoid errors with the Makefile
212 # "include basename.Plo" scheme.
213 echo "#dummy" > "$depfile"
214 fi
215 rm -f "$tmpdepfile"
216 ;;
217
218 aix)
219 # The C for AIX Compiler uses -M and outputs the dependencies
220 # in a .u file. In older versions, this file always lives in the
221 # current directory. Also, the AIX compiler puts `$object:' at the
222 # start of each line; $object doesn't have directory information.
223 # Version 6 uses the directory in both cases.
224 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
225 test "x$dir" = "x$object" && dir=
226 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
227 if test "$libtool" = yes; then
228 tmpdepfile1=$dir$base.u
229 tmpdepfile2=$base.u
230 tmpdepfile3=$dir.libs/$base.u
231 "$@" -Wc,-M
232 else
233 tmpdepfile1=$dir$base.u
234 tmpdepfile2=$dir$base.u
235 tmpdepfile3=$dir$base.u
236 "$@" -M
237 fi
238 stat=$?
239
240 if test $stat -eq 0; then :
241 else
242 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
243 exit $stat
244 fi
245
246 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
247 do
248 test -f "$tmpdepfile" && break
249 done
250 if test -f "$tmpdepfile"; then
251 # Each line is of the form `foo.o: dependent.h'.
252 # Do two passes, one to just change these to
253 # `$object: dependent.h' and one to simply `dependent.h:'.
254 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
255 # That's a tab and a space in the [].
256 sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
257 else
258 # The sourcefile does not contain any dependencies, so just
259 # store a dummy comment line, to avoid errors with the Makefile
260 # "include basename.Plo" scheme.
261 echo "#dummy" > "$depfile"
262 fi
263 rm -f "$tmpdepfile"
264 ;;
265
266 icc)
267 # Intel's C compiler understands `-MD -MF file'. However on
268 # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
269 # ICC 7.0 will fill foo.d with something like
270 # foo.o: sub/foo.c
271 # foo.o: sub/foo.h
272 # which is wrong. We want:
273 # sub/foo.o: sub/foo.c
274 # sub/foo.o: sub/foo.h
275 # sub/foo.c:
276 # sub/foo.h:
277 # ICC 7.1 will output
278 # foo.o: sub/foo.c sub/foo.h
279 # and will wrap long lines using \ :
280 # foo.o: sub/foo.c ... \
281 # sub/foo.h ... \
282 # ...
283
284 "$@" -MD -MF "$tmpdepfile"
285 stat=$?
286 if test $stat -eq 0; then :
287 else
288 rm -f "$tmpdepfile"
289 exit $stat
290 fi
291 rm -f "$depfile"
292 # Each line is of the form `foo.o: dependent.h',
293 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
294 # Do two passes, one to just change these to
295 # `$object: dependent.h' and one to simply `dependent.h:'.
296 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
297 # Some versions of the HPUX 10.20 sed can't process this invocation
298 # correctly. Breaking it into two sed invocations is a workaround.
299 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
300 sed -e 's/$/ :/' >> "$depfile"
301 rm -f "$tmpdepfile"
302 ;;
303
304 hp2)
305 # The "hp" stanza above does not work with aCC (C++) and HP's ia64
306 # compilers, which have integrated preprocessors. The correct option
307 # to use with these is +Maked; it writes dependencies to a file named
308 # 'foo.d', which lands next to the object file, wherever that
309 # happens to be.
310 # Much of this is similar to the tru64 case; see comments there.
311 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
312 test "x$dir" = "x$object" && dir=
313 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
314 if test "$libtool" = yes; then
315 tmpdepfile1=$dir$base.d
316 tmpdepfile2=$dir.libs/$base.d
317 "$@" -Wc,+Maked
318 else
319 tmpdepfile1=$dir$base.d
320 tmpdepfile2=$dir$base.d
321 "$@" +Maked
322 fi
323 stat=$?
324 if test $stat -eq 0; then :
325 else
326 rm -f "$tmpdepfile1" "$tmpdepfile2"
327 exit $stat
328 fi
329
330 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
331 do
332 test -f "$tmpdepfile" && break
333 done
334 if test -f "$tmpdepfile"; then
335 sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
336 # Add `dependent.h:' lines.
337 sed -ne '2,${
338 s/^ *//
339 s/ \\*$//
340 s/$/:/
341 p
342 }' "$tmpdepfile" >> "$depfile"
343 else
344 echo "#dummy" > "$depfile"
345 fi
346 rm -f "$tmpdepfile" "$tmpdepfile2"
347 ;;
348
349 tru64)
350 # The Tru64 compiler uses -MD to generate dependencies as a side
351 # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
352 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
353 # dependencies in `foo.d' instead, so we check for that too.
354 # Subdirectories are respected.
355 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
356 test "x$dir" = "x$object" && dir=
357 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
358
359 if test "$libtool" = yes; then
360 # With Tru64 cc, shared objects can also be used to make a
361 # static library. This mechanism is used in libtool 1.4 series to
362 # handle both shared and static libraries in a single compilation.
363 # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
364 #
365 # With libtool 1.5 this exception was removed, and libtool now
366 # generates 2 separate objects for the 2 libraries. These two
367 # compilations output dependencies in $dir.libs/$base.o.d and
368 # in $dir$base.o.d. We have to check for both files, because
369 # one of the two compilations can be disabled. We should prefer
370 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
371 # automatically cleaned when .libs/ is deleted, while ignoring
372 # the former would cause a distcleancheck panic.
373 tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
374 tmpdepfile2=$dir$base.o.d # libtool 1.5
375 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
376 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
377 "$@" -Wc,-MD
378 else
379 tmpdepfile1=$dir$base.o.d
380 tmpdepfile2=$dir$base.d
381 tmpdepfile3=$dir$base.d
382 tmpdepfile4=$dir$base.d
383 "$@" -MD
384 fi
385
386 stat=$?
387 if test $stat -eq 0; then :
388 else
389 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
390 exit $stat
391 fi
392
393 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
394 do
395 test -f "$tmpdepfile" && break
396 done
397 if test -f "$tmpdepfile"; then
398 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
399 # That's a tab and a space in the [].
400 sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
401 else
402 echo "#dummy" > "$depfile"
403 fi
404 rm -f "$tmpdepfile"
405 ;;
406
407 #nosideeffect)
408 # This comment above is used by automake to tell side-effect
409 # dependency tracking mechanisms from slower ones.
410
411 dashmstdout)
412 # Important note: in order to support this mode, a compiler *must*
413 # always write the preprocessed file to stdout, regardless of -o.
414 "$@" || exit $?
415
416 # Remove the call to Libtool.
417 if test "$libtool" = yes; then
418 while test "X$1" != 'X--mode=compile'; do
419 shift
420 done
421 shift
422 fi
423
424 # Remove `-o $object'.
425 IFS=" "
426 for arg
427 do
428 case $arg in
429 -o)
430 shift
431 ;;
432 $object)
433 shift
434 ;;
435 *)
436 set fnord "$@" "$arg"
437 shift # fnord
438 shift # $arg
439 ;;
440 esac
441 done
442
443 test -z "$dashmflag" && dashmflag=-M
444 # Require at least two characters before searching for `:'
445 # in the target name. This is to cope with DOS-style filenames:
446 # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
447 "$@" $dashmflag |
448 sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
449 rm -f "$depfile"
450 cat < "$tmpdepfile" > "$depfile"
451 tr ' ' '
452 ' < "$tmpdepfile" | \
453 ## Some versions of the HPUX 10.20 sed can't process this invocation
454 ## correctly. Breaking it into two sed invocations is a workaround.
455 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
456 rm -f "$tmpdepfile"
457 ;;
458
459 dashXmstdout)
460 # This case only exists to satisfy depend.m4. It is never actually
461 # run, as this mode is specially recognized in the preamble.
462 exit 1
463 ;;
464
465 makedepend)
466 "$@" || exit $?
467 # Remove any Libtool call
468 if test "$libtool" = yes; then
469 while test "X$1" != 'X--mode=compile'; do
470 shift
471 done
472 shift
473 fi
474 # X makedepend
475 shift
476 cleared=no eat=no
477 for arg
478 do
479 case $cleared in
480 no)
481 set ""; shift
482 cleared=yes ;;
483 esac
484 if test $eat = yes; then
485 eat=no
486 continue
487 fi
488 case "$arg" in
489 -D*|-I*)
490 set fnord "$@" "$arg"; shift ;;
491 # Strip any option that makedepend may not understand. Remove
492 # the object too, otherwise makedepend will parse it as a source file.
493 -arch)
494 eat=yes ;;
495 -*|$object)
496 ;;
497 *)
498 set fnord "$@" "$arg"; shift ;;
499 esac
500 done
501 obj_suffix=`echo "$object" | sed 's/^.*\././'`
502 touch "$tmpdepfile"
503 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
504 rm -f "$depfile"
505 cat < "$tmpdepfile" > "$depfile"
506 sed '1,2d' "$tmpdepfile" | tr ' ' '
507 ' | \
508 ## Some versions of the HPUX 10.20 sed can't process this invocation
509 ## correctly. Breaking it into two sed invocations is a workaround.
510 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
511 rm -f "$tmpdepfile" "$tmpdepfile".bak
512 ;;
513
514 cpp)
515 # Important note: in order to support this mode, a compiler *must*
516 # always write the preprocessed file to stdout.
517 "$@" || exit $?
518
519 # Remove the call to Libtool.
520 if test "$libtool" = yes; then
521 while test "X$1" != 'X--mode=compile'; do
522 shift
523 done
524 shift
525 fi
526
527 # Remove `-o $object'.
528 IFS=" "
529 for arg
530 do
531 case $arg in
532 -o)
533 shift
534 ;;
535 $object)
536 shift
537 ;;
538 *)
539 set fnord "$@" "$arg"
540 shift # fnord
541 shift # $arg
542 ;;
543 esac
544 done
545
546 "$@" -E |
547 sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
548 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
549 sed '$ s: \\$::' > "$tmpdepfile"
550 rm -f "$depfile"
551 echo "$object : \\" > "$depfile"
552 cat < "$tmpdepfile" >> "$depfile"
553 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
554 rm -f "$tmpdepfile"
555 ;;
556
557 msvisualcpp)
558 # Important note: in order to support this mode, a compiler *must*
559 # always write the preprocessed file to stdout.
560 "$@" || exit $?
561
562 # Remove the call to Libtool.
563 if test "$libtool" = yes; then
564 while test "X$1" != 'X--mode=compile'; do
565 shift
566 done
567 shift
568 fi
569
570 IFS=" "
571 for arg
572 do
573 case "$arg" in
574 -o)
575 shift
576 ;;
577 $object)
578 shift
579 ;;
580 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
581 set fnord "$@"
582 shift
583 shift
584 ;;
585 *)
586 set fnord "$@" "$arg"
587 shift
588 shift
589 ;;
590 esac
591 done
592 "$@" -E 2>/dev/null |
593 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
594 rm -f "$depfile"
595 echo "$object : \\" > "$depfile"
596 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
597 echo " " >> "$depfile"
598 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
599 rm -f "$tmpdepfile"
600 ;;
601
602 msvcmsys)
603 # This case exists only to let depend.m4 do its work. It works by
604 # looking at the text of this script. This case will never be run,
605 # since it is checked for above.
606 exit 1
607 ;;
608
609 none)
610 exec "$@"
611 ;;
612
613 *)
614 echo "Unknown depmode $depmode" 1>&2
615 exit 1
616 ;;
617 esac
618
619 exit 0
620
621 # Local Variables:
622 # mode: shell-script
623 # sh-indentation: 2
624 # eval: (add-hook 'write-file-hooks 'time-stamp)
625 # time-stamp-start: "scriptversion="
626 # time-stamp-format: "%:y-%02m-%02d.%02H"
627 # time-stamp-time-zone: "UTC"
628 # time-stamp-end: "; # UTC"
629 # End:
0 size = $(notdir $(PWD))
1 icondir = $(datadir)/icons/hicolor/$(size)/apps/
2 icon_DATA = $(PACKAGE).png
3
4 EXTRA_DIST = $(icon_DATA)
5
6 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons/16x16
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
86 am__vpath_adj = case $$p in \
87 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
88 *) f=$$p;; \
89 esac;
90 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
91 am__install_max = 40
92 am__nobase_strip_setup = \
93 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
94 am__nobase_strip = \
95 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
96 am__nobase_list = $(am__nobase_strip_setup); \
97 for p in $$list; do echo "$$p $$p"; done | \
98 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
99 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
100 if (++n[$$2] == $(am__install_max)) \
101 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
102 END { for (dir in files) print dir, files[dir] }'
103 am__base_list = \
104 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
105 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
106 am__uninstall_files_from_dir = { \
107 test -z "$$files" \
108 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
109 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
110 $(am__cd) "$$dir" && rm -f $$files; }; \
111 }
112 am__installdirs = "$(DESTDIR)$(icondir)"
113 DATA = $(icon_DATA)
114 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
115 ACLOCAL = @ACLOCAL@
116 ALL_LINGUAS = @ALL_LINGUAS@
117 AMTAR = @AMTAR@
118 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
119 AR = @AR@
120 AUTOCONF = @AUTOCONF@
121 AUTOHEADER = @AUTOHEADER@
122 AUTOMAKE = @AUTOMAKE@
123 AWK = @AWK@
124 CATALOGS = @CATALOGS@
125 CATOBJEXT = @CATOBJEXT@
126 CC = @CC@
127 CCDEPMODE = @CCDEPMODE@
128 CFLAGS = @CFLAGS@
129 CPP = @CPP@
130 CPPFLAGS = @CPPFLAGS@
131 CYGPATH_W = @CYGPATH_W@
132 DATADIRNAME = @DATADIRNAME@
133 DEFS = @DEFS@
134 DEPDIR = @DEPDIR@
135 DLLTOOL = @DLLTOOL@
136 DSYMUTIL = @DSYMUTIL@
137 DUMPBIN = @DUMPBIN@
138 ECHO_C = @ECHO_C@
139 ECHO_N = @ECHO_N@
140 ECHO_T = @ECHO_T@
141 EGREP = @EGREP@
142 EXEEXT = @EXEEXT@
143 FGREP = @FGREP@
144 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
145 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
146 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
147 GLIB2_CFLAGS = @GLIB2_CFLAGS@
148 GLIB2_LIBS = @GLIB2_LIBS@
149 GLIB_MKENUMS = @GLIB_MKENUMS@
150 GMOFILES = @GMOFILES@
151 GMSGFMT = @GMSGFMT@
152 GREP = @GREP@
153 GTK_API_VERSION = @GTK_API_VERSION@
154 GTK_CFLAGS = @GTK_CFLAGS@
155 GTK_LIBS = @GTK_LIBS@
156 GTK_REQUIRED = @GTK_REQUIRED@
157 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
158 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
159 GTK_VNC_LIBS = @GTK_VNC_LIBS@
160 ICOTOOL = @ICOTOOL@
161 INSTALL = @INSTALL@
162 INSTALL_DATA = @INSTALL_DATA@
163 INSTALL_PROGRAM = @INSTALL_PROGRAM@
164 INSTALL_SCRIPT = @INSTALL_SCRIPT@
165 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
166 INSTOBJEXT = @INSTOBJEXT@
167 INTLLIBS = @INTLLIBS@
168 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
169 INTLTOOL_MERGE = @INTLTOOL_MERGE@
170 INTLTOOL_PERL = @INTLTOOL_PERL@
171 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
172 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
173 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
174 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
175 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
176 LD = @LD@
177 LDFLAGS = @LDFLAGS@
178 LIBOBJS = @LIBOBJS@
179 LIBS = @LIBS@
180 LIBTOOL = @LIBTOOL@
181 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
182 LIBVIRT_LIBS = @LIBVIRT_LIBS@
183 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
184 LIBXML2_LIBS = @LIBXML2_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MKDIR_P = @MKDIR_P@
191 MKINSTALLDIRS = @MKINSTALLDIRS@
192 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
193 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
194 MSGFMT = @MSGFMT@
195 MSGFMT_OPTS = @MSGFMT_OPTS@
196 MSGMERGE = @MSGMERGE@
197 NM = @NM@
198 NMEDIT = @NMEDIT@
199 NSPR_CFLAGS = @NSPR_CFLAGS@
200 NSPR_LIBS = @NSPR_LIBS@
201 OBJDUMP = @OBJDUMP@
202 OBJEXT = @OBJEXT@
203 OTOOL = @OTOOL@
204 OTOOL64 = @OTOOL64@
205 PACKAGE = @PACKAGE@
206 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
207 PACKAGE_NAME = @PACKAGE_NAME@
208 PACKAGE_STRING = @PACKAGE_STRING@
209 PACKAGE_TARNAME = @PACKAGE_TARNAME@
210 PACKAGE_URL = @PACKAGE_URL@
211 PACKAGE_VERSION = @PACKAGE_VERSION@
212 PATH_SEPARATOR = @PATH_SEPARATOR@
213 PKG_CONFIG = @PKG_CONFIG@
214 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216 POFILES = @POFILES@
217 POSUB = @POSUB@
218 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
219 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
220 RANLIB = @RANLIB@
221 SED = @SED@
222 SET_MAKE = @SET_MAKE@
223 SHELL = @SHELL@
224 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
225 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
226 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
227 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
228 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
229 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
230 STRIP = @STRIP@
231 USE_NLS = @USE_NLS@
232 VERSION = @VERSION@
233 WARN_CFLAGS = @WARN_CFLAGS@
234 WINDRES = @WINDRES@
235 XGETTEXT = @XGETTEXT@
236 abs_builddir = @abs_builddir@
237 abs_srcdir = @abs_srcdir@
238 abs_top_builddir = @abs_top_builddir@
239 abs_top_srcdir = @abs_top_srcdir@
240 ac_ct_AR = @ac_ct_AR@
241 ac_ct_CC = @ac_ct_CC@
242 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243 am__include = @am__include@
244 am__leading_dot = @am__leading_dot@
245 am__quote = @am__quote@
246 am__tar = @am__tar@
247 am__untar = @am__untar@
248 bindir = @bindir@
249 build = @build@
250 build_alias = @build_alias@
251 build_cpu = @build_cpu@
252 build_os = @build_os@
253 build_vendor = @build_vendor@
254 builddir = @builddir@
255 datadir = @datadir@
256 datarootdir = @datarootdir@
257 docdir = @docdir@
258 dvidir = @dvidir@
259 exec_prefix = @exec_prefix@
260 host = @host@
261 host_alias = @host_alias@
262 host_cpu = @host_cpu@
263 host_os = @host_os@
264 host_vendor = @host_vendor@
265 htmldir = @htmldir@
266 includedir = @includedir@
267 infodir = @infodir@
268 install_sh = @install_sh@
269 intltool__v_merge_options_ = @intltool__v_merge_options_@
270 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
271 libdir = @libdir@
272 libexecdir = @libexecdir@
273 localedir = @localedir@
274 localstatedir = @localstatedir@
275 mandir = @mandir@
276 mkdir_p = @mkdir_p@
277 oldincludedir = @oldincludedir@
278 pdfdir = @pdfdir@
279 prefix = @prefix@
280 program_transform_name = @program_transform_name@
281 psdir = @psdir@
282 sbindir = @sbindir@
283 sharedstatedir = @sharedstatedir@
284 srcdir = @srcdir@
285 sysconfdir = @sysconfdir@
286 target_alias = @target_alias@
287 top_build_prefix = @top_build_prefix@
288 top_builddir = @top_builddir@
289 top_srcdir = @top_srcdir@
290 size = $(notdir $(PWD))
291 icondir = $(datadir)/icons/hicolor/$(size)/apps/
292 icon_DATA = $(PACKAGE).png
293 EXTRA_DIST = $(icon_DATA)
294 all: all-am
295
296 .SUFFIXES:
297 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
298 @for dep in $?; do \
299 case '$(am__configure_deps)' in \
300 *$$dep*) \
301 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
302 && { if test -f $@; then exit 0; else break; fi; }; \
303 exit 1;; \
304 esac; \
305 done; \
306 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/16x16/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu icons/16x16/Makefile
309 .PRECIOUS: Makefile
310 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
311 @case '$?' in \
312 *config.status*) \
313 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
314 *) \
315 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
316 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
317 esac;
318
319 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321
322 $(top_srcdir)/configure: $(am__configure_deps)
323 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
324 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
325 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
326 $(am__aclocal_m4_deps):
327
328 mostlyclean-libtool:
329 -rm -f *.lo
330
331 clean-libtool:
332 -rm -rf .libs _libs
333 install-iconDATA: $(icon_DATA)
334 @$(NORMAL_INSTALL)
335 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
336 if test -n "$$list"; then \
337 echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
338 $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
339 fi; \
340 for p in $$list; do \
341 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
342 echo "$$d$$p"; \
343 done | $(am__base_list) | \
344 while read files; do \
345 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
346 $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
347 done
348
349 uninstall-iconDATA:
350 @$(NORMAL_UNINSTALL)
351 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
352 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
353 dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
354 tags: TAGS
355 TAGS:
356
357 ctags: CTAGS
358 CTAGS:
359
360 cscope cscopelist:
361
362
363 distdir: $(DISTFILES)
364 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
365 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
366 list='$(DISTFILES)'; \
367 dist_files=`for file in $$list; do echo $$file; done | \
368 sed -e "s|^$$srcdirstrip/||;t" \
369 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
370 case $$dist_files in \
371 */*) $(MKDIR_P) `echo "$$dist_files" | \
372 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
373 sort -u` ;; \
374 esac; \
375 for file in $$dist_files; do \
376 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
377 if test -d $$d/$$file; then \
378 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
379 if test -d "$(distdir)/$$file"; then \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
383 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
384 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
385 fi; \
386 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
387 else \
388 test -f "$(distdir)/$$file" \
389 || cp -p $$d/$$file "$(distdir)/$$file" \
390 || exit 1; \
391 fi; \
392 done
393 check-am: all-am
394 check: check-am
395 all-am: Makefile $(DATA)
396 installdirs:
397 for dir in "$(DESTDIR)$(icondir)"; do \
398 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
399 done
400 install: install-am
401 install-exec: install-exec-am
402 install-data: install-data-am
403 uninstall: uninstall-am
404
405 install-am: all-am
406 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
407
408 installcheck: installcheck-am
409 install-strip:
410 if test -z '$(STRIP)'; then \
411 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
412 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
413 install; \
414 else \
415 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
416 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
417 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
418 fi
419 mostlyclean-generic:
420
421 clean-generic:
422
423 distclean-generic:
424 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
425 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
426
427 maintainer-clean-generic:
428 @echo "This command is intended for maintainers to use"
429 @echo "it deletes files that may require special tools to rebuild."
430 clean: clean-am
431
432 clean-am: clean-generic clean-libtool mostlyclean-am
433
434 distclean: distclean-am
435 -rm -f Makefile
436 distclean-am: clean-am distclean-generic
437
438 dvi: dvi-am
439
440 dvi-am:
441
442 html: html-am
443
444 html-am:
445
446 info: info-am
447
448 info-am:
449
450 install-data-am: install-iconDATA
451
452 install-dvi: install-dvi-am
453
454 install-dvi-am:
455
456 install-exec-am:
457
458 install-html: install-html-am
459
460 install-html-am:
461
462 install-info: install-info-am
463
464 install-info-am:
465
466 install-man:
467
468 install-pdf: install-pdf-am
469
470 install-pdf-am:
471
472 install-ps: install-ps-am
473
474 install-ps-am:
475
476 installcheck-am:
477
478 maintainer-clean: maintainer-clean-am
479 -rm -f Makefile
480 maintainer-clean-am: distclean-am maintainer-clean-generic
481
482 mostlyclean: mostlyclean-am
483
484 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
485
486 pdf: pdf-am
487
488 pdf-am:
489
490 ps: ps-am
491
492 ps-am:
493
494 uninstall-am: uninstall-iconDATA
495
496 .MAKE: install-am install-strip
497
498 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
499 distclean distclean-generic distclean-libtool distdir dvi \
500 dvi-am html html-am info info-am install install-am \
501 install-data install-data-am install-dvi install-dvi-am \
502 install-exec install-exec-am install-html install-html-am \
503 install-iconDATA install-info install-info-am install-man \
504 install-pdf install-pdf-am install-ps install-ps-am \
505 install-strip installcheck installcheck-am installdirs \
506 maintainer-clean maintainer-clean-generic mostlyclean \
507 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
508 uninstall uninstall-am uninstall-iconDATA
509
510
511 -include $(top_srcdir)/git.mk
512
513 # Tell versions [3.59,3.63) of GNU make to not export all variables.
514 # Otherwise a system limit (for SysV at least) may be exceeded.
515 .NOEXPORT:
0 size = $(notdir $(PWD))
1 icondir = $(datadir)/icons/hicolor/$(size)/apps/
2 icon_DATA = $(PACKAGE).png
3
4 EXTRA_DIST = $(icon_DATA)
5
6 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons/22x22
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
86 am__vpath_adj = case $$p in \
87 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
88 *) f=$$p;; \
89 esac;
90 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
91 am__install_max = 40
92 am__nobase_strip_setup = \
93 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
94 am__nobase_strip = \
95 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
96 am__nobase_list = $(am__nobase_strip_setup); \
97 for p in $$list; do echo "$$p $$p"; done | \
98 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
99 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
100 if (++n[$$2] == $(am__install_max)) \
101 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
102 END { for (dir in files) print dir, files[dir] }'
103 am__base_list = \
104 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
105 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
106 am__uninstall_files_from_dir = { \
107 test -z "$$files" \
108 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
109 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
110 $(am__cd) "$$dir" && rm -f $$files; }; \
111 }
112 am__installdirs = "$(DESTDIR)$(icondir)"
113 DATA = $(icon_DATA)
114 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
115 ACLOCAL = @ACLOCAL@
116 ALL_LINGUAS = @ALL_LINGUAS@
117 AMTAR = @AMTAR@
118 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
119 AR = @AR@
120 AUTOCONF = @AUTOCONF@
121 AUTOHEADER = @AUTOHEADER@
122 AUTOMAKE = @AUTOMAKE@
123 AWK = @AWK@
124 CATALOGS = @CATALOGS@
125 CATOBJEXT = @CATOBJEXT@
126 CC = @CC@
127 CCDEPMODE = @CCDEPMODE@
128 CFLAGS = @CFLAGS@
129 CPP = @CPP@
130 CPPFLAGS = @CPPFLAGS@
131 CYGPATH_W = @CYGPATH_W@
132 DATADIRNAME = @DATADIRNAME@
133 DEFS = @DEFS@
134 DEPDIR = @DEPDIR@
135 DLLTOOL = @DLLTOOL@
136 DSYMUTIL = @DSYMUTIL@
137 DUMPBIN = @DUMPBIN@
138 ECHO_C = @ECHO_C@
139 ECHO_N = @ECHO_N@
140 ECHO_T = @ECHO_T@
141 EGREP = @EGREP@
142 EXEEXT = @EXEEXT@
143 FGREP = @FGREP@
144 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
145 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
146 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
147 GLIB2_CFLAGS = @GLIB2_CFLAGS@
148 GLIB2_LIBS = @GLIB2_LIBS@
149 GLIB_MKENUMS = @GLIB_MKENUMS@
150 GMOFILES = @GMOFILES@
151 GMSGFMT = @GMSGFMT@
152 GREP = @GREP@
153 GTK_API_VERSION = @GTK_API_VERSION@
154 GTK_CFLAGS = @GTK_CFLAGS@
155 GTK_LIBS = @GTK_LIBS@
156 GTK_REQUIRED = @GTK_REQUIRED@
157 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
158 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
159 GTK_VNC_LIBS = @GTK_VNC_LIBS@
160 ICOTOOL = @ICOTOOL@
161 INSTALL = @INSTALL@
162 INSTALL_DATA = @INSTALL_DATA@
163 INSTALL_PROGRAM = @INSTALL_PROGRAM@
164 INSTALL_SCRIPT = @INSTALL_SCRIPT@
165 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
166 INSTOBJEXT = @INSTOBJEXT@
167 INTLLIBS = @INTLLIBS@
168 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
169 INTLTOOL_MERGE = @INTLTOOL_MERGE@
170 INTLTOOL_PERL = @INTLTOOL_PERL@
171 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
172 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
173 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
174 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
175 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
176 LD = @LD@
177 LDFLAGS = @LDFLAGS@
178 LIBOBJS = @LIBOBJS@
179 LIBS = @LIBS@
180 LIBTOOL = @LIBTOOL@
181 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
182 LIBVIRT_LIBS = @LIBVIRT_LIBS@
183 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
184 LIBXML2_LIBS = @LIBXML2_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MKDIR_P = @MKDIR_P@
191 MKINSTALLDIRS = @MKINSTALLDIRS@
192 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
193 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
194 MSGFMT = @MSGFMT@
195 MSGFMT_OPTS = @MSGFMT_OPTS@
196 MSGMERGE = @MSGMERGE@
197 NM = @NM@
198 NMEDIT = @NMEDIT@
199 NSPR_CFLAGS = @NSPR_CFLAGS@
200 NSPR_LIBS = @NSPR_LIBS@
201 OBJDUMP = @OBJDUMP@
202 OBJEXT = @OBJEXT@
203 OTOOL = @OTOOL@
204 OTOOL64 = @OTOOL64@
205 PACKAGE = @PACKAGE@
206 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
207 PACKAGE_NAME = @PACKAGE_NAME@
208 PACKAGE_STRING = @PACKAGE_STRING@
209 PACKAGE_TARNAME = @PACKAGE_TARNAME@
210 PACKAGE_URL = @PACKAGE_URL@
211 PACKAGE_VERSION = @PACKAGE_VERSION@
212 PATH_SEPARATOR = @PATH_SEPARATOR@
213 PKG_CONFIG = @PKG_CONFIG@
214 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216 POFILES = @POFILES@
217 POSUB = @POSUB@
218 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
219 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
220 RANLIB = @RANLIB@
221 SED = @SED@
222 SET_MAKE = @SET_MAKE@
223 SHELL = @SHELL@
224 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
225 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
226 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
227 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
228 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
229 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
230 STRIP = @STRIP@
231 USE_NLS = @USE_NLS@
232 VERSION = @VERSION@
233 WARN_CFLAGS = @WARN_CFLAGS@
234 WINDRES = @WINDRES@
235 XGETTEXT = @XGETTEXT@
236 abs_builddir = @abs_builddir@
237 abs_srcdir = @abs_srcdir@
238 abs_top_builddir = @abs_top_builddir@
239 abs_top_srcdir = @abs_top_srcdir@
240 ac_ct_AR = @ac_ct_AR@
241 ac_ct_CC = @ac_ct_CC@
242 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243 am__include = @am__include@
244 am__leading_dot = @am__leading_dot@
245 am__quote = @am__quote@
246 am__tar = @am__tar@
247 am__untar = @am__untar@
248 bindir = @bindir@
249 build = @build@
250 build_alias = @build_alias@
251 build_cpu = @build_cpu@
252 build_os = @build_os@
253 build_vendor = @build_vendor@
254 builddir = @builddir@
255 datadir = @datadir@
256 datarootdir = @datarootdir@
257 docdir = @docdir@
258 dvidir = @dvidir@
259 exec_prefix = @exec_prefix@
260 host = @host@
261 host_alias = @host_alias@
262 host_cpu = @host_cpu@
263 host_os = @host_os@
264 host_vendor = @host_vendor@
265 htmldir = @htmldir@
266 includedir = @includedir@
267 infodir = @infodir@
268 install_sh = @install_sh@
269 intltool__v_merge_options_ = @intltool__v_merge_options_@
270 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
271 libdir = @libdir@
272 libexecdir = @libexecdir@
273 localedir = @localedir@
274 localstatedir = @localstatedir@
275 mandir = @mandir@
276 mkdir_p = @mkdir_p@
277 oldincludedir = @oldincludedir@
278 pdfdir = @pdfdir@
279 prefix = @prefix@
280 program_transform_name = @program_transform_name@
281 psdir = @psdir@
282 sbindir = @sbindir@
283 sharedstatedir = @sharedstatedir@
284 srcdir = @srcdir@
285 sysconfdir = @sysconfdir@
286 target_alias = @target_alias@
287 top_build_prefix = @top_build_prefix@
288 top_builddir = @top_builddir@
289 top_srcdir = @top_srcdir@
290 size = $(notdir $(PWD))
291 icondir = $(datadir)/icons/hicolor/$(size)/apps/
292 icon_DATA = $(PACKAGE).png
293 EXTRA_DIST = $(icon_DATA)
294 all: all-am
295
296 .SUFFIXES:
297 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
298 @for dep in $?; do \
299 case '$(am__configure_deps)' in \
300 *$$dep*) \
301 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
302 && { if test -f $@; then exit 0; else break; fi; }; \
303 exit 1;; \
304 esac; \
305 done; \
306 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/22x22/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu icons/22x22/Makefile
309 .PRECIOUS: Makefile
310 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
311 @case '$?' in \
312 *config.status*) \
313 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
314 *) \
315 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
316 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
317 esac;
318
319 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321
322 $(top_srcdir)/configure: $(am__configure_deps)
323 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
324 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
325 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
326 $(am__aclocal_m4_deps):
327
328 mostlyclean-libtool:
329 -rm -f *.lo
330
331 clean-libtool:
332 -rm -rf .libs _libs
333 install-iconDATA: $(icon_DATA)
334 @$(NORMAL_INSTALL)
335 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
336 if test -n "$$list"; then \
337 echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
338 $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
339 fi; \
340 for p in $$list; do \
341 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
342 echo "$$d$$p"; \
343 done | $(am__base_list) | \
344 while read files; do \
345 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
346 $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
347 done
348
349 uninstall-iconDATA:
350 @$(NORMAL_UNINSTALL)
351 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
352 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
353 dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
354 tags: TAGS
355 TAGS:
356
357 ctags: CTAGS
358 CTAGS:
359
360 cscope cscopelist:
361
362
363 distdir: $(DISTFILES)
364 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
365 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
366 list='$(DISTFILES)'; \
367 dist_files=`for file in $$list; do echo $$file; done | \
368 sed -e "s|^$$srcdirstrip/||;t" \
369 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
370 case $$dist_files in \
371 */*) $(MKDIR_P) `echo "$$dist_files" | \
372 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
373 sort -u` ;; \
374 esac; \
375 for file in $$dist_files; do \
376 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
377 if test -d $$d/$$file; then \
378 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
379 if test -d "$(distdir)/$$file"; then \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
383 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
384 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
385 fi; \
386 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
387 else \
388 test -f "$(distdir)/$$file" \
389 || cp -p $$d/$$file "$(distdir)/$$file" \
390 || exit 1; \
391 fi; \
392 done
393 check-am: all-am
394 check: check-am
395 all-am: Makefile $(DATA)
396 installdirs:
397 for dir in "$(DESTDIR)$(icondir)"; do \
398 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
399 done
400 install: install-am
401 install-exec: install-exec-am
402 install-data: install-data-am
403 uninstall: uninstall-am
404
405 install-am: all-am
406 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
407
408 installcheck: installcheck-am
409 install-strip:
410 if test -z '$(STRIP)'; then \
411 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
412 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
413 install; \
414 else \
415 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
416 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
417 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
418 fi
419 mostlyclean-generic:
420
421 clean-generic:
422
423 distclean-generic:
424 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
425 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
426
427 maintainer-clean-generic:
428 @echo "This command is intended for maintainers to use"
429 @echo "it deletes files that may require special tools to rebuild."
430 clean: clean-am
431
432 clean-am: clean-generic clean-libtool mostlyclean-am
433
434 distclean: distclean-am
435 -rm -f Makefile
436 distclean-am: clean-am distclean-generic
437
438 dvi: dvi-am
439
440 dvi-am:
441
442 html: html-am
443
444 html-am:
445
446 info: info-am
447
448 info-am:
449
450 install-data-am: install-iconDATA
451
452 install-dvi: install-dvi-am
453
454 install-dvi-am:
455
456 install-exec-am:
457
458 install-html: install-html-am
459
460 install-html-am:
461
462 install-info: install-info-am
463
464 install-info-am:
465
466 install-man:
467
468 install-pdf: install-pdf-am
469
470 install-pdf-am:
471
472 install-ps: install-ps-am
473
474 install-ps-am:
475
476 installcheck-am:
477
478 maintainer-clean: maintainer-clean-am
479 -rm -f Makefile
480 maintainer-clean-am: distclean-am maintainer-clean-generic
481
482 mostlyclean: mostlyclean-am
483
484 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
485
486 pdf: pdf-am
487
488 pdf-am:
489
490 ps: ps-am
491
492 ps-am:
493
494 uninstall-am: uninstall-iconDATA
495
496 .MAKE: install-am install-strip
497
498 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
499 distclean distclean-generic distclean-libtool distdir dvi \
500 dvi-am html html-am info info-am install install-am \
501 install-data install-data-am install-dvi install-dvi-am \
502 install-exec install-exec-am install-html install-html-am \
503 install-iconDATA install-info install-info-am install-man \
504 install-pdf install-pdf-am install-ps install-ps-am \
505 install-strip installcheck installcheck-am installdirs \
506 maintainer-clean maintainer-clean-generic mostlyclean \
507 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
508 uninstall uninstall-am uninstall-iconDATA
509
510
511 -include $(top_srcdir)/git.mk
512
513 # Tell versions [3.59,3.63) of GNU make to not export all variables.
514 # Otherwise a system limit (for SysV at least) may be exceeded.
515 .NOEXPORT:
0 size = $(notdir $(PWD))
1 icondir = $(datadir)/icons/hicolor/$(size)/apps/
2 icon_DATA = $(PACKAGE).png
3
4 EXTRA_DIST = $(icon_DATA)
5
6 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons/24x24
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
86 am__vpath_adj = case $$p in \
87 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
88 *) f=$$p;; \
89 esac;
90 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
91 am__install_max = 40
92 am__nobase_strip_setup = \
93 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
94 am__nobase_strip = \
95 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
96 am__nobase_list = $(am__nobase_strip_setup); \
97 for p in $$list; do echo "$$p $$p"; done | \
98 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
99 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
100 if (++n[$$2] == $(am__install_max)) \
101 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
102 END { for (dir in files) print dir, files[dir] }'
103 am__base_list = \
104 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
105 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
106 am__uninstall_files_from_dir = { \
107 test -z "$$files" \
108 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
109 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
110 $(am__cd) "$$dir" && rm -f $$files; }; \
111 }
112 am__installdirs = "$(DESTDIR)$(icondir)"
113 DATA = $(icon_DATA)
114 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
115 ACLOCAL = @ACLOCAL@
116 ALL_LINGUAS = @ALL_LINGUAS@
117 AMTAR = @AMTAR@
118 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
119 AR = @AR@
120 AUTOCONF = @AUTOCONF@
121 AUTOHEADER = @AUTOHEADER@
122 AUTOMAKE = @AUTOMAKE@
123 AWK = @AWK@
124 CATALOGS = @CATALOGS@
125 CATOBJEXT = @CATOBJEXT@
126 CC = @CC@
127 CCDEPMODE = @CCDEPMODE@
128 CFLAGS = @CFLAGS@
129 CPP = @CPP@
130 CPPFLAGS = @CPPFLAGS@
131 CYGPATH_W = @CYGPATH_W@
132 DATADIRNAME = @DATADIRNAME@
133 DEFS = @DEFS@
134 DEPDIR = @DEPDIR@
135 DLLTOOL = @DLLTOOL@
136 DSYMUTIL = @DSYMUTIL@
137 DUMPBIN = @DUMPBIN@
138 ECHO_C = @ECHO_C@
139 ECHO_N = @ECHO_N@
140 ECHO_T = @ECHO_T@
141 EGREP = @EGREP@
142 EXEEXT = @EXEEXT@
143 FGREP = @FGREP@
144 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
145 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
146 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
147 GLIB2_CFLAGS = @GLIB2_CFLAGS@
148 GLIB2_LIBS = @GLIB2_LIBS@
149 GLIB_MKENUMS = @GLIB_MKENUMS@
150 GMOFILES = @GMOFILES@
151 GMSGFMT = @GMSGFMT@
152 GREP = @GREP@
153 GTK_API_VERSION = @GTK_API_VERSION@
154 GTK_CFLAGS = @GTK_CFLAGS@
155 GTK_LIBS = @GTK_LIBS@
156 GTK_REQUIRED = @GTK_REQUIRED@
157 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
158 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
159 GTK_VNC_LIBS = @GTK_VNC_LIBS@
160 ICOTOOL = @ICOTOOL@
161 INSTALL = @INSTALL@
162 INSTALL_DATA = @INSTALL_DATA@
163 INSTALL_PROGRAM = @INSTALL_PROGRAM@
164 INSTALL_SCRIPT = @INSTALL_SCRIPT@
165 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
166 INSTOBJEXT = @INSTOBJEXT@
167 INTLLIBS = @INTLLIBS@
168 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
169 INTLTOOL_MERGE = @INTLTOOL_MERGE@
170 INTLTOOL_PERL = @INTLTOOL_PERL@
171 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
172 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
173 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
174 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
175 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
176 LD = @LD@
177 LDFLAGS = @LDFLAGS@
178 LIBOBJS = @LIBOBJS@
179 LIBS = @LIBS@
180 LIBTOOL = @LIBTOOL@
181 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
182 LIBVIRT_LIBS = @LIBVIRT_LIBS@
183 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
184 LIBXML2_LIBS = @LIBXML2_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MKDIR_P = @MKDIR_P@
191 MKINSTALLDIRS = @MKINSTALLDIRS@
192 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
193 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
194 MSGFMT = @MSGFMT@
195 MSGFMT_OPTS = @MSGFMT_OPTS@
196 MSGMERGE = @MSGMERGE@
197 NM = @NM@
198 NMEDIT = @NMEDIT@
199 NSPR_CFLAGS = @NSPR_CFLAGS@
200 NSPR_LIBS = @NSPR_LIBS@
201 OBJDUMP = @OBJDUMP@
202 OBJEXT = @OBJEXT@
203 OTOOL = @OTOOL@
204 OTOOL64 = @OTOOL64@
205 PACKAGE = @PACKAGE@
206 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
207 PACKAGE_NAME = @PACKAGE_NAME@
208 PACKAGE_STRING = @PACKAGE_STRING@
209 PACKAGE_TARNAME = @PACKAGE_TARNAME@
210 PACKAGE_URL = @PACKAGE_URL@
211 PACKAGE_VERSION = @PACKAGE_VERSION@
212 PATH_SEPARATOR = @PATH_SEPARATOR@
213 PKG_CONFIG = @PKG_CONFIG@
214 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216 POFILES = @POFILES@
217 POSUB = @POSUB@
218 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
219 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
220 RANLIB = @RANLIB@
221 SED = @SED@
222 SET_MAKE = @SET_MAKE@
223 SHELL = @SHELL@
224 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
225 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
226 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
227 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
228 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
229 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
230 STRIP = @STRIP@
231 USE_NLS = @USE_NLS@
232 VERSION = @VERSION@
233 WARN_CFLAGS = @WARN_CFLAGS@
234 WINDRES = @WINDRES@
235 XGETTEXT = @XGETTEXT@
236 abs_builddir = @abs_builddir@
237 abs_srcdir = @abs_srcdir@
238 abs_top_builddir = @abs_top_builddir@
239 abs_top_srcdir = @abs_top_srcdir@
240 ac_ct_AR = @ac_ct_AR@
241 ac_ct_CC = @ac_ct_CC@
242 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243 am__include = @am__include@
244 am__leading_dot = @am__leading_dot@
245 am__quote = @am__quote@
246 am__tar = @am__tar@
247 am__untar = @am__untar@
248 bindir = @bindir@
249 build = @build@
250 build_alias = @build_alias@
251 build_cpu = @build_cpu@
252 build_os = @build_os@
253 build_vendor = @build_vendor@
254 builddir = @builddir@
255 datadir = @datadir@
256 datarootdir = @datarootdir@
257 docdir = @docdir@
258 dvidir = @dvidir@
259 exec_prefix = @exec_prefix@
260 host = @host@
261 host_alias = @host_alias@
262 host_cpu = @host_cpu@
263 host_os = @host_os@
264 host_vendor = @host_vendor@
265 htmldir = @htmldir@
266 includedir = @includedir@
267 infodir = @infodir@
268 install_sh = @install_sh@
269 intltool__v_merge_options_ = @intltool__v_merge_options_@
270 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
271 libdir = @libdir@
272 libexecdir = @libexecdir@
273 localedir = @localedir@
274 localstatedir = @localstatedir@
275 mandir = @mandir@
276 mkdir_p = @mkdir_p@
277 oldincludedir = @oldincludedir@
278 pdfdir = @pdfdir@
279 prefix = @prefix@
280 program_transform_name = @program_transform_name@
281 psdir = @psdir@
282 sbindir = @sbindir@
283 sharedstatedir = @sharedstatedir@
284 srcdir = @srcdir@
285 sysconfdir = @sysconfdir@
286 target_alias = @target_alias@
287 top_build_prefix = @top_build_prefix@
288 top_builddir = @top_builddir@
289 top_srcdir = @top_srcdir@
290 size = $(notdir $(PWD))
291 icondir = $(datadir)/icons/hicolor/$(size)/apps/
292 icon_DATA = $(PACKAGE).png
293 EXTRA_DIST = $(icon_DATA)
294 all: all-am
295
296 .SUFFIXES:
297 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
298 @for dep in $?; do \
299 case '$(am__configure_deps)' in \
300 *$$dep*) \
301 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
302 && { if test -f $@; then exit 0; else break; fi; }; \
303 exit 1;; \
304 esac; \
305 done; \
306 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/24x24/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu icons/24x24/Makefile
309 .PRECIOUS: Makefile
310 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
311 @case '$?' in \
312 *config.status*) \
313 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
314 *) \
315 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
316 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
317 esac;
318
319 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321
322 $(top_srcdir)/configure: $(am__configure_deps)
323 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
324 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
325 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
326 $(am__aclocal_m4_deps):
327
328 mostlyclean-libtool:
329 -rm -f *.lo
330
331 clean-libtool:
332 -rm -rf .libs _libs
333 install-iconDATA: $(icon_DATA)
334 @$(NORMAL_INSTALL)
335 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
336 if test -n "$$list"; then \
337 echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
338 $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
339 fi; \
340 for p in $$list; do \
341 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
342 echo "$$d$$p"; \
343 done | $(am__base_list) | \
344 while read files; do \
345 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
346 $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
347 done
348
349 uninstall-iconDATA:
350 @$(NORMAL_UNINSTALL)
351 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
352 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
353 dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
354 tags: TAGS
355 TAGS:
356
357 ctags: CTAGS
358 CTAGS:
359
360 cscope cscopelist:
361
362
363 distdir: $(DISTFILES)
364 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
365 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
366 list='$(DISTFILES)'; \
367 dist_files=`for file in $$list; do echo $$file; done | \
368 sed -e "s|^$$srcdirstrip/||;t" \
369 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
370 case $$dist_files in \
371 */*) $(MKDIR_P) `echo "$$dist_files" | \
372 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
373 sort -u` ;; \
374 esac; \
375 for file in $$dist_files; do \
376 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
377 if test -d $$d/$$file; then \
378 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
379 if test -d "$(distdir)/$$file"; then \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
383 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
384 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
385 fi; \
386 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
387 else \
388 test -f "$(distdir)/$$file" \
389 || cp -p $$d/$$file "$(distdir)/$$file" \
390 || exit 1; \
391 fi; \
392 done
393 check-am: all-am
394 check: check-am
395 all-am: Makefile $(DATA)
396 installdirs:
397 for dir in "$(DESTDIR)$(icondir)"; do \
398 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
399 done
400 install: install-am
401 install-exec: install-exec-am
402 install-data: install-data-am
403 uninstall: uninstall-am
404
405 install-am: all-am
406 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
407
408 installcheck: installcheck-am
409 install-strip:
410 if test -z '$(STRIP)'; then \
411 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
412 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
413 install; \
414 else \
415 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
416 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
417 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
418 fi
419 mostlyclean-generic:
420
421 clean-generic:
422
423 distclean-generic:
424 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
425 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
426
427 maintainer-clean-generic:
428 @echo "This command is intended for maintainers to use"
429 @echo "it deletes files that may require special tools to rebuild."
430 clean: clean-am
431
432 clean-am: clean-generic clean-libtool mostlyclean-am
433
434 distclean: distclean-am
435 -rm -f Makefile
436 distclean-am: clean-am distclean-generic
437
438 dvi: dvi-am
439
440 dvi-am:
441
442 html: html-am
443
444 html-am:
445
446 info: info-am
447
448 info-am:
449
450 install-data-am: install-iconDATA
451
452 install-dvi: install-dvi-am
453
454 install-dvi-am:
455
456 install-exec-am:
457
458 install-html: install-html-am
459
460 install-html-am:
461
462 install-info: install-info-am
463
464 install-info-am:
465
466 install-man:
467
468 install-pdf: install-pdf-am
469
470 install-pdf-am:
471
472 install-ps: install-ps-am
473
474 install-ps-am:
475
476 installcheck-am:
477
478 maintainer-clean: maintainer-clean-am
479 -rm -f Makefile
480 maintainer-clean-am: distclean-am maintainer-clean-generic
481
482 mostlyclean: mostlyclean-am
483
484 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
485
486 pdf: pdf-am
487
488 pdf-am:
489
490 ps: ps-am
491
492 ps-am:
493
494 uninstall-am: uninstall-iconDATA
495
496 .MAKE: install-am install-strip
497
498 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
499 distclean distclean-generic distclean-libtool distdir dvi \
500 dvi-am html html-am info info-am install install-am \
501 install-data install-data-am install-dvi install-dvi-am \
502 install-exec install-exec-am install-html install-html-am \
503 install-iconDATA install-info install-info-am install-man \
504 install-pdf install-pdf-am install-ps install-ps-am \
505 install-strip installcheck installcheck-am installdirs \
506 maintainer-clean maintainer-clean-generic mostlyclean \
507 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
508 uninstall uninstall-am uninstall-iconDATA
509
510
511 -include $(top_srcdir)/git.mk
512
513 # Tell versions [3.59,3.63) of GNU make to not export all variables.
514 # Otherwise a system limit (for SysV at least) may be exceeded.
515 .NOEXPORT:
0 size = $(notdir $(PWD))
1 icondir = $(datadir)/icons/hicolor/$(size)/apps/
2 icon_DATA = $(PACKAGE).png
3
4 EXTRA_DIST = $(icon_DATA)
5
6 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons/256x256
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
86 am__vpath_adj = case $$p in \
87 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
88 *) f=$$p;; \
89 esac;
90 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
91 am__install_max = 40
92 am__nobase_strip_setup = \
93 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
94 am__nobase_strip = \
95 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
96 am__nobase_list = $(am__nobase_strip_setup); \
97 for p in $$list; do echo "$$p $$p"; done | \
98 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
99 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
100 if (++n[$$2] == $(am__install_max)) \
101 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
102 END { for (dir in files) print dir, files[dir] }'
103 am__base_list = \
104 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
105 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
106 am__uninstall_files_from_dir = { \
107 test -z "$$files" \
108 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
109 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
110 $(am__cd) "$$dir" && rm -f $$files; }; \
111 }
112 am__installdirs = "$(DESTDIR)$(icondir)"
113 DATA = $(icon_DATA)
114 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
115 ACLOCAL = @ACLOCAL@
116 ALL_LINGUAS = @ALL_LINGUAS@
117 AMTAR = @AMTAR@
118 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
119 AR = @AR@
120 AUTOCONF = @AUTOCONF@
121 AUTOHEADER = @AUTOHEADER@
122 AUTOMAKE = @AUTOMAKE@
123 AWK = @AWK@
124 CATALOGS = @CATALOGS@
125 CATOBJEXT = @CATOBJEXT@
126 CC = @CC@
127 CCDEPMODE = @CCDEPMODE@
128 CFLAGS = @CFLAGS@
129 CPP = @CPP@
130 CPPFLAGS = @CPPFLAGS@
131 CYGPATH_W = @CYGPATH_W@
132 DATADIRNAME = @DATADIRNAME@
133 DEFS = @DEFS@
134 DEPDIR = @DEPDIR@
135 DLLTOOL = @DLLTOOL@
136 DSYMUTIL = @DSYMUTIL@
137 DUMPBIN = @DUMPBIN@
138 ECHO_C = @ECHO_C@
139 ECHO_N = @ECHO_N@
140 ECHO_T = @ECHO_T@
141 EGREP = @EGREP@
142 EXEEXT = @EXEEXT@
143 FGREP = @FGREP@
144 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
145 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
146 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
147 GLIB2_CFLAGS = @GLIB2_CFLAGS@
148 GLIB2_LIBS = @GLIB2_LIBS@
149 GLIB_MKENUMS = @GLIB_MKENUMS@
150 GMOFILES = @GMOFILES@
151 GMSGFMT = @GMSGFMT@
152 GREP = @GREP@
153 GTK_API_VERSION = @GTK_API_VERSION@
154 GTK_CFLAGS = @GTK_CFLAGS@
155 GTK_LIBS = @GTK_LIBS@
156 GTK_REQUIRED = @GTK_REQUIRED@
157 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
158 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
159 GTK_VNC_LIBS = @GTK_VNC_LIBS@
160 ICOTOOL = @ICOTOOL@
161 INSTALL = @INSTALL@
162 INSTALL_DATA = @INSTALL_DATA@
163 INSTALL_PROGRAM = @INSTALL_PROGRAM@
164 INSTALL_SCRIPT = @INSTALL_SCRIPT@
165 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
166 INSTOBJEXT = @INSTOBJEXT@
167 INTLLIBS = @INTLLIBS@
168 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
169 INTLTOOL_MERGE = @INTLTOOL_MERGE@
170 INTLTOOL_PERL = @INTLTOOL_PERL@
171 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
172 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
173 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
174 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
175 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
176 LD = @LD@
177 LDFLAGS = @LDFLAGS@
178 LIBOBJS = @LIBOBJS@
179 LIBS = @LIBS@
180 LIBTOOL = @LIBTOOL@
181 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
182 LIBVIRT_LIBS = @LIBVIRT_LIBS@
183 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
184 LIBXML2_LIBS = @LIBXML2_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MKDIR_P = @MKDIR_P@
191 MKINSTALLDIRS = @MKINSTALLDIRS@
192 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
193 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
194 MSGFMT = @MSGFMT@
195 MSGFMT_OPTS = @MSGFMT_OPTS@
196 MSGMERGE = @MSGMERGE@
197 NM = @NM@
198 NMEDIT = @NMEDIT@
199 NSPR_CFLAGS = @NSPR_CFLAGS@
200 NSPR_LIBS = @NSPR_LIBS@
201 OBJDUMP = @OBJDUMP@
202 OBJEXT = @OBJEXT@
203 OTOOL = @OTOOL@
204 OTOOL64 = @OTOOL64@
205 PACKAGE = @PACKAGE@
206 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
207 PACKAGE_NAME = @PACKAGE_NAME@
208 PACKAGE_STRING = @PACKAGE_STRING@
209 PACKAGE_TARNAME = @PACKAGE_TARNAME@
210 PACKAGE_URL = @PACKAGE_URL@
211 PACKAGE_VERSION = @PACKAGE_VERSION@
212 PATH_SEPARATOR = @PATH_SEPARATOR@
213 PKG_CONFIG = @PKG_CONFIG@
214 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216 POFILES = @POFILES@
217 POSUB = @POSUB@
218 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
219 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
220 RANLIB = @RANLIB@
221 SED = @SED@
222 SET_MAKE = @SET_MAKE@
223 SHELL = @SHELL@
224 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
225 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
226 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
227 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
228 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
229 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
230 STRIP = @STRIP@
231 USE_NLS = @USE_NLS@
232 VERSION = @VERSION@
233 WARN_CFLAGS = @WARN_CFLAGS@
234 WINDRES = @WINDRES@
235 XGETTEXT = @XGETTEXT@
236 abs_builddir = @abs_builddir@
237 abs_srcdir = @abs_srcdir@
238 abs_top_builddir = @abs_top_builddir@
239 abs_top_srcdir = @abs_top_srcdir@
240 ac_ct_AR = @ac_ct_AR@
241 ac_ct_CC = @ac_ct_CC@
242 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243 am__include = @am__include@
244 am__leading_dot = @am__leading_dot@
245 am__quote = @am__quote@
246 am__tar = @am__tar@
247 am__untar = @am__untar@
248 bindir = @bindir@
249 build = @build@
250 build_alias = @build_alias@
251 build_cpu = @build_cpu@
252 build_os = @build_os@
253 build_vendor = @build_vendor@
254 builddir = @builddir@
255 datadir = @datadir@
256 datarootdir = @datarootdir@
257 docdir = @docdir@
258 dvidir = @dvidir@
259 exec_prefix = @exec_prefix@
260 host = @host@
261 host_alias = @host_alias@
262 host_cpu = @host_cpu@
263 host_os = @host_os@
264 host_vendor = @host_vendor@
265 htmldir = @htmldir@
266 includedir = @includedir@
267 infodir = @infodir@
268 install_sh = @install_sh@
269 intltool__v_merge_options_ = @intltool__v_merge_options_@
270 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
271 libdir = @libdir@
272 libexecdir = @libexecdir@
273 localedir = @localedir@
274 localstatedir = @localstatedir@
275 mandir = @mandir@
276 mkdir_p = @mkdir_p@
277 oldincludedir = @oldincludedir@
278 pdfdir = @pdfdir@
279 prefix = @prefix@
280 program_transform_name = @program_transform_name@
281 psdir = @psdir@
282 sbindir = @sbindir@
283 sharedstatedir = @sharedstatedir@
284 srcdir = @srcdir@
285 sysconfdir = @sysconfdir@
286 target_alias = @target_alias@
287 top_build_prefix = @top_build_prefix@
288 top_builddir = @top_builddir@
289 top_srcdir = @top_srcdir@
290 size = $(notdir $(PWD))
291 icondir = $(datadir)/icons/hicolor/$(size)/apps/
292 icon_DATA = $(PACKAGE).png
293 EXTRA_DIST = $(icon_DATA)
294 all: all-am
295
296 .SUFFIXES:
297 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
298 @for dep in $?; do \
299 case '$(am__configure_deps)' in \
300 *$$dep*) \
301 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
302 && { if test -f $@; then exit 0; else break; fi; }; \
303 exit 1;; \
304 esac; \
305 done; \
306 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/256x256/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu icons/256x256/Makefile
309 .PRECIOUS: Makefile
310 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
311 @case '$?' in \
312 *config.status*) \
313 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
314 *) \
315 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
316 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
317 esac;
318
319 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321
322 $(top_srcdir)/configure: $(am__configure_deps)
323 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
324 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
325 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
326 $(am__aclocal_m4_deps):
327
328 mostlyclean-libtool:
329 -rm -f *.lo
330
331 clean-libtool:
332 -rm -rf .libs _libs
333 install-iconDATA: $(icon_DATA)
334 @$(NORMAL_INSTALL)
335 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
336 if test -n "$$list"; then \
337 echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
338 $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
339 fi; \
340 for p in $$list; do \
341 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
342 echo "$$d$$p"; \
343 done | $(am__base_list) | \
344 while read files; do \
345 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
346 $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
347 done
348
349 uninstall-iconDATA:
350 @$(NORMAL_UNINSTALL)
351 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
352 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
353 dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
354 tags: TAGS
355 TAGS:
356
357 ctags: CTAGS
358 CTAGS:
359
360 cscope cscopelist:
361
362
363 distdir: $(DISTFILES)
364 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
365 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
366 list='$(DISTFILES)'; \
367 dist_files=`for file in $$list; do echo $$file; done | \
368 sed -e "s|^$$srcdirstrip/||;t" \
369 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
370 case $$dist_files in \
371 */*) $(MKDIR_P) `echo "$$dist_files" | \
372 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
373 sort -u` ;; \
374 esac; \
375 for file in $$dist_files; do \
376 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
377 if test -d $$d/$$file; then \
378 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
379 if test -d "$(distdir)/$$file"; then \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
383 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
384 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
385 fi; \
386 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
387 else \
388 test -f "$(distdir)/$$file" \
389 || cp -p $$d/$$file "$(distdir)/$$file" \
390 || exit 1; \
391 fi; \
392 done
393 check-am: all-am
394 check: check-am
395 all-am: Makefile $(DATA)
396 installdirs:
397 for dir in "$(DESTDIR)$(icondir)"; do \
398 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
399 done
400 install: install-am
401 install-exec: install-exec-am
402 install-data: install-data-am
403 uninstall: uninstall-am
404
405 install-am: all-am
406 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
407
408 installcheck: installcheck-am
409 install-strip:
410 if test -z '$(STRIP)'; then \
411 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
412 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
413 install; \
414 else \
415 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
416 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
417 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
418 fi
419 mostlyclean-generic:
420
421 clean-generic:
422
423 distclean-generic:
424 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
425 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
426
427 maintainer-clean-generic:
428 @echo "This command is intended for maintainers to use"
429 @echo "it deletes files that may require special tools to rebuild."
430 clean: clean-am
431
432 clean-am: clean-generic clean-libtool mostlyclean-am
433
434 distclean: distclean-am
435 -rm -f Makefile
436 distclean-am: clean-am distclean-generic
437
438 dvi: dvi-am
439
440 dvi-am:
441
442 html: html-am
443
444 html-am:
445
446 info: info-am
447
448 info-am:
449
450 install-data-am: install-iconDATA
451
452 install-dvi: install-dvi-am
453
454 install-dvi-am:
455
456 install-exec-am:
457
458 install-html: install-html-am
459
460 install-html-am:
461
462 install-info: install-info-am
463
464 install-info-am:
465
466 install-man:
467
468 install-pdf: install-pdf-am
469
470 install-pdf-am:
471
472 install-ps: install-ps-am
473
474 install-ps-am:
475
476 installcheck-am:
477
478 maintainer-clean: maintainer-clean-am
479 -rm -f Makefile
480 maintainer-clean-am: distclean-am maintainer-clean-generic
481
482 mostlyclean: mostlyclean-am
483
484 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
485
486 pdf: pdf-am
487
488 pdf-am:
489
490 ps: ps-am
491
492 ps-am:
493
494 uninstall-am: uninstall-iconDATA
495
496 .MAKE: install-am install-strip
497
498 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
499 distclean distclean-generic distclean-libtool distdir dvi \
500 dvi-am html html-am info info-am install install-am \
501 install-data install-data-am install-dvi install-dvi-am \
502 install-exec install-exec-am install-html install-html-am \
503 install-iconDATA install-info install-info-am install-man \
504 install-pdf install-pdf-am install-ps install-ps-am \
505 install-strip installcheck installcheck-am installdirs \
506 maintainer-clean maintainer-clean-generic mostlyclean \
507 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
508 uninstall uninstall-am uninstall-iconDATA
509
510
511 -include $(top_srcdir)/git.mk
512
513 # Tell versions [3.59,3.63) of GNU make to not export all variables.
514 # Otherwise a system limit (for SysV at least) may be exceeded.
515 .NOEXPORT:
0 size = $(notdir $(PWD))
1 icondir = $(datadir)/icons/hicolor/$(size)/apps/
2 icon_DATA = $(PACKAGE).png
3
4 EXTRA_DIST = $(icon_DATA)
5
6 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons/32x32
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
86 am__vpath_adj = case $$p in \
87 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
88 *) f=$$p;; \
89 esac;
90 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
91 am__install_max = 40
92 am__nobase_strip_setup = \
93 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
94 am__nobase_strip = \
95 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
96 am__nobase_list = $(am__nobase_strip_setup); \
97 for p in $$list; do echo "$$p $$p"; done | \
98 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
99 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
100 if (++n[$$2] == $(am__install_max)) \
101 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
102 END { for (dir in files) print dir, files[dir] }'
103 am__base_list = \
104 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
105 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
106 am__uninstall_files_from_dir = { \
107 test -z "$$files" \
108 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
109 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
110 $(am__cd) "$$dir" && rm -f $$files; }; \
111 }
112 am__installdirs = "$(DESTDIR)$(icondir)"
113 DATA = $(icon_DATA)
114 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
115 ACLOCAL = @ACLOCAL@
116 ALL_LINGUAS = @ALL_LINGUAS@
117 AMTAR = @AMTAR@
118 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
119 AR = @AR@
120 AUTOCONF = @AUTOCONF@
121 AUTOHEADER = @AUTOHEADER@
122 AUTOMAKE = @AUTOMAKE@
123 AWK = @AWK@
124 CATALOGS = @CATALOGS@
125 CATOBJEXT = @CATOBJEXT@
126 CC = @CC@
127 CCDEPMODE = @CCDEPMODE@
128 CFLAGS = @CFLAGS@
129 CPP = @CPP@
130 CPPFLAGS = @CPPFLAGS@
131 CYGPATH_W = @CYGPATH_W@
132 DATADIRNAME = @DATADIRNAME@
133 DEFS = @DEFS@
134 DEPDIR = @DEPDIR@
135 DLLTOOL = @DLLTOOL@
136 DSYMUTIL = @DSYMUTIL@
137 DUMPBIN = @DUMPBIN@
138 ECHO_C = @ECHO_C@
139 ECHO_N = @ECHO_N@
140 ECHO_T = @ECHO_T@
141 EGREP = @EGREP@
142 EXEEXT = @EXEEXT@
143 FGREP = @FGREP@
144 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
145 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
146 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
147 GLIB2_CFLAGS = @GLIB2_CFLAGS@
148 GLIB2_LIBS = @GLIB2_LIBS@
149 GLIB_MKENUMS = @GLIB_MKENUMS@
150 GMOFILES = @GMOFILES@
151 GMSGFMT = @GMSGFMT@
152 GREP = @GREP@
153 GTK_API_VERSION = @GTK_API_VERSION@
154 GTK_CFLAGS = @GTK_CFLAGS@
155 GTK_LIBS = @GTK_LIBS@
156 GTK_REQUIRED = @GTK_REQUIRED@
157 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
158 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
159 GTK_VNC_LIBS = @GTK_VNC_LIBS@
160 ICOTOOL = @ICOTOOL@
161 INSTALL = @INSTALL@
162 INSTALL_DATA = @INSTALL_DATA@
163 INSTALL_PROGRAM = @INSTALL_PROGRAM@
164 INSTALL_SCRIPT = @INSTALL_SCRIPT@
165 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
166 INSTOBJEXT = @INSTOBJEXT@
167 INTLLIBS = @INTLLIBS@
168 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
169 INTLTOOL_MERGE = @INTLTOOL_MERGE@
170 INTLTOOL_PERL = @INTLTOOL_PERL@
171 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
172 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
173 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
174 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
175 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
176 LD = @LD@
177 LDFLAGS = @LDFLAGS@
178 LIBOBJS = @LIBOBJS@
179 LIBS = @LIBS@
180 LIBTOOL = @LIBTOOL@
181 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
182 LIBVIRT_LIBS = @LIBVIRT_LIBS@
183 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
184 LIBXML2_LIBS = @LIBXML2_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MKDIR_P = @MKDIR_P@
191 MKINSTALLDIRS = @MKINSTALLDIRS@
192 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
193 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
194 MSGFMT = @MSGFMT@
195 MSGFMT_OPTS = @MSGFMT_OPTS@
196 MSGMERGE = @MSGMERGE@
197 NM = @NM@
198 NMEDIT = @NMEDIT@
199 NSPR_CFLAGS = @NSPR_CFLAGS@
200 NSPR_LIBS = @NSPR_LIBS@
201 OBJDUMP = @OBJDUMP@
202 OBJEXT = @OBJEXT@
203 OTOOL = @OTOOL@
204 OTOOL64 = @OTOOL64@
205 PACKAGE = @PACKAGE@
206 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
207 PACKAGE_NAME = @PACKAGE_NAME@
208 PACKAGE_STRING = @PACKAGE_STRING@
209 PACKAGE_TARNAME = @PACKAGE_TARNAME@
210 PACKAGE_URL = @PACKAGE_URL@
211 PACKAGE_VERSION = @PACKAGE_VERSION@
212 PATH_SEPARATOR = @PATH_SEPARATOR@
213 PKG_CONFIG = @PKG_CONFIG@
214 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216 POFILES = @POFILES@
217 POSUB = @POSUB@
218 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
219 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
220 RANLIB = @RANLIB@
221 SED = @SED@
222 SET_MAKE = @SET_MAKE@
223 SHELL = @SHELL@
224 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
225 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
226 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
227 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
228 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
229 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
230 STRIP = @STRIP@
231 USE_NLS = @USE_NLS@
232 VERSION = @VERSION@
233 WARN_CFLAGS = @WARN_CFLAGS@
234 WINDRES = @WINDRES@
235 XGETTEXT = @XGETTEXT@
236 abs_builddir = @abs_builddir@
237 abs_srcdir = @abs_srcdir@
238 abs_top_builddir = @abs_top_builddir@
239 abs_top_srcdir = @abs_top_srcdir@
240 ac_ct_AR = @ac_ct_AR@
241 ac_ct_CC = @ac_ct_CC@
242 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243 am__include = @am__include@
244 am__leading_dot = @am__leading_dot@
245 am__quote = @am__quote@
246 am__tar = @am__tar@
247 am__untar = @am__untar@
248 bindir = @bindir@
249 build = @build@
250 build_alias = @build_alias@
251 build_cpu = @build_cpu@
252 build_os = @build_os@
253 build_vendor = @build_vendor@
254 builddir = @builddir@
255 datadir = @datadir@
256 datarootdir = @datarootdir@
257 docdir = @docdir@
258 dvidir = @dvidir@
259 exec_prefix = @exec_prefix@
260 host = @host@
261 host_alias = @host_alias@
262 host_cpu = @host_cpu@
263 host_os = @host_os@
264 host_vendor = @host_vendor@
265 htmldir = @htmldir@
266 includedir = @includedir@
267 infodir = @infodir@
268 install_sh = @install_sh@
269 intltool__v_merge_options_ = @intltool__v_merge_options_@
270 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
271 libdir = @libdir@
272 libexecdir = @libexecdir@
273 localedir = @localedir@
274 localstatedir = @localstatedir@
275 mandir = @mandir@
276 mkdir_p = @mkdir_p@
277 oldincludedir = @oldincludedir@
278 pdfdir = @pdfdir@
279 prefix = @prefix@
280 program_transform_name = @program_transform_name@
281 psdir = @psdir@
282 sbindir = @sbindir@
283 sharedstatedir = @sharedstatedir@
284 srcdir = @srcdir@
285 sysconfdir = @sysconfdir@
286 target_alias = @target_alias@
287 top_build_prefix = @top_build_prefix@
288 top_builddir = @top_builddir@
289 top_srcdir = @top_srcdir@
290 size = $(notdir $(PWD))
291 icondir = $(datadir)/icons/hicolor/$(size)/apps/
292 icon_DATA = $(PACKAGE).png
293 EXTRA_DIST = $(icon_DATA)
294 all: all-am
295
296 .SUFFIXES:
297 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
298 @for dep in $?; do \
299 case '$(am__configure_deps)' in \
300 *$$dep*) \
301 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
302 && { if test -f $@; then exit 0; else break; fi; }; \
303 exit 1;; \
304 esac; \
305 done; \
306 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/32x32/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu icons/32x32/Makefile
309 .PRECIOUS: Makefile
310 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
311 @case '$?' in \
312 *config.status*) \
313 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
314 *) \
315 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
316 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
317 esac;
318
319 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321
322 $(top_srcdir)/configure: $(am__configure_deps)
323 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
324 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
325 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
326 $(am__aclocal_m4_deps):
327
328 mostlyclean-libtool:
329 -rm -f *.lo
330
331 clean-libtool:
332 -rm -rf .libs _libs
333 install-iconDATA: $(icon_DATA)
334 @$(NORMAL_INSTALL)
335 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
336 if test -n "$$list"; then \
337 echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
338 $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
339 fi; \
340 for p in $$list; do \
341 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
342 echo "$$d$$p"; \
343 done | $(am__base_list) | \
344 while read files; do \
345 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
346 $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
347 done
348
349 uninstall-iconDATA:
350 @$(NORMAL_UNINSTALL)
351 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
352 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
353 dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
354 tags: TAGS
355 TAGS:
356
357 ctags: CTAGS
358 CTAGS:
359
360 cscope cscopelist:
361
362
363 distdir: $(DISTFILES)
364 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
365 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
366 list='$(DISTFILES)'; \
367 dist_files=`for file in $$list; do echo $$file; done | \
368 sed -e "s|^$$srcdirstrip/||;t" \
369 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
370 case $$dist_files in \
371 */*) $(MKDIR_P) `echo "$$dist_files" | \
372 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
373 sort -u` ;; \
374 esac; \
375 for file in $$dist_files; do \
376 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
377 if test -d $$d/$$file; then \
378 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
379 if test -d "$(distdir)/$$file"; then \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
383 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
384 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
385 fi; \
386 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
387 else \
388 test -f "$(distdir)/$$file" \
389 || cp -p $$d/$$file "$(distdir)/$$file" \
390 || exit 1; \
391 fi; \
392 done
393 check-am: all-am
394 check: check-am
395 all-am: Makefile $(DATA)
396 installdirs:
397 for dir in "$(DESTDIR)$(icondir)"; do \
398 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
399 done
400 install: install-am
401 install-exec: install-exec-am
402 install-data: install-data-am
403 uninstall: uninstall-am
404
405 install-am: all-am
406 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
407
408 installcheck: installcheck-am
409 install-strip:
410 if test -z '$(STRIP)'; then \
411 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
412 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
413 install; \
414 else \
415 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
416 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
417 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
418 fi
419 mostlyclean-generic:
420
421 clean-generic:
422
423 distclean-generic:
424 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
425 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
426
427 maintainer-clean-generic:
428 @echo "This command is intended for maintainers to use"
429 @echo "it deletes files that may require special tools to rebuild."
430 clean: clean-am
431
432 clean-am: clean-generic clean-libtool mostlyclean-am
433
434 distclean: distclean-am
435 -rm -f Makefile
436 distclean-am: clean-am distclean-generic
437
438 dvi: dvi-am
439
440 dvi-am:
441
442 html: html-am
443
444 html-am:
445
446 info: info-am
447
448 info-am:
449
450 install-data-am: install-iconDATA
451
452 install-dvi: install-dvi-am
453
454 install-dvi-am:
455
456 install-exec-am:
457
458 install-html: install-html-am
459
460 install-html-am:
461
462 install-info: install-info-am
463
464 install-info-am:
465
466 install-man:
467
468 install-pdf: install-pdf-am
469
470 install-pdf-am:
471
472 install-ps: install-ps-am
473
474 install-ps-am:
475
476 installcheck-am:
477
478 maintainer-clean: maintainer-clean-am
479 -rm -f Makefile
480 maintainer-clean-am: distclean-am maintainer-clean-generic
481
482 mostlyclean: mostlyclean-am
483
484 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
485
486 pdf: pdf-am
487
488 pdf-am:
489
490 ps: ps-am
491
492 ps-am:
493
494 uninstall-am: uninstall-iconDATA
495
496 .MAKE: install-am install-strip
497
498 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
499 distclean distclean-generic distclean-libtool distdir dvi \
500 dvi-am html html-am info info-am install install-am \
501 install-data install-data-am install-dvi install-dvi-am \
502 install-exec install-exec-am install-html install-html-am \
503 install-iconDATA install-info install-info-am install-man \
504 install-pdf install-pdf-am install-ps install-ps-am \
505 install-strip installcheck installcheck-am installdirs \
506 maintainer-clean maintainer-clean-generic mostlyclean \
507 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
508 uninstall uninstall-am uninstall-iconDATA
509
510
511 -include $(top_srcdir)/git.mk
512
513 # Tell versions [3.59,3.63) of GNU make to not export all variables.
514 # Otherwise a system limit (for SysV at least) may be exceeded.
515 .NOEXPORT:
0 size = $(notdir $(PWD))
1 icondir = $(datadir)/icons/hicolor/$(size)/apps/
2 icon_DATA = $(PACKAGE).png
3
4 EXTRA_DIST = $(icon_DATA)
5
6 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons/48x48
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 am__can_run_installinfo = \
81 case $$AM_UPDATE_INFO_DIR in \
82 n|no|NO) false;; \
83 *) (install-info --version) >/dev/null 2>&1;; \
84 esac
85 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
86 am__vpath_adj = case $$p in \
87 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
88 *) f=$$p;; \
89 esac;
90 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
91 am__install_max = 40
92 am__nobase_strip_setup = \
93 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
94 am__nobase_strip = \
95 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
96 am__nobase_list = $(am__nobase_strip_setup); \
97 for p in $$list; do echo "$$p $$p"; done | \
98 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
99 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
100 if (++n[$$2] == $(am__install_max)) \
101 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
102 END { for (dir in files) print dir, files[dir] }'
103 am__base_list = \
104 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
105 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
106 am__uninstall_files_from_dir = { \
107 test -z "$$files" \
108 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
109 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
110 $(am__cd) "$$dir" && rm -f $$files; }; \
111 }
112 am__installdirs = "$(DESTDIR)$(icondir)"
113 DATA = $(icon_DATA)
114 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
115 ACLOCAL = @ACLOCAL@
116 ALL_LINGUAS = @ALL_LINGUAS@
117 AMTAR = @AMTAR@
118 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
119 AR = @AR@
120 AUTOCONF = @AUTOCONF@
121 AUTOHEADER = @AUTOHEADER@
122 AUTOMAKE = @AUTOMAKE@
123 AWK = @AWK@
124 CATALOGS = @CATALOGS@
125 CATOBJEXT = @CATOBJEXT@
126 CC = @CC@
127 CCDEPMODE = @CCDEPMODE@
128 CFLAGS = @CFLAGS@
129 CPP = @CPP@
130 CPPFLAGS = @CPPFLAGS@
131 CYGPATH_W = @CYGPATH_W@
132 DATADIRNAME = @DATADIRNAME@
133 DEFS = @DEFS@
134 DEPDIR = @DEPDIR@
135 DLLTOOL = @DLLTOOL@
136 DSYMUTIL = @DSYMUTIL@
137 DUMPBIN = @DUMPBIN@
138 ECHO_C = @ECHO_C@
139 ECHO_N = @ECHO_N@
140 ECHO_T = @ECHO_T@
141 EGREP = @EGREP@
142 EXEEXT = @EXEEXT@
143 FGREP = @FGREP@
144 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
145 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
146 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
147 GLIB2_CFLAGS = @GLIB2_CFLAGS@
148 GLIB2_LIBS = @GLIB2_LIBS@
149 GLIB_MKENUMS = @GLIB_MKENUMS@
150 GMOFILES = @GMOFILES@
151 GMSGFMT = @GMSGFMT@
152 GREP = @GREP@
153 GTK_API_VERSION = @GTK_API_VERSION@
154 GTK_CFLAGS = @GTK_CFLAGS@
155 GTK_LIBS = @GTK_LIBS@
156 GTK_REQUIRED = @GTK_REQUIRED@
157 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
158 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
159 GTK_VNC_LIBS = @GTK_VNC_LIBS@
160 ICOTOOL = @ICOTOOL@
161 INSTALL = @INSTALL@
162 INSTALL_DATA = @INSTALL_DATA@
163 INSTALL_PROGRAM = @INSTALL_PROGRAM@
164 INSTALL_SCRIPT = @INSTALL_SCRIPT@
165 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
166 INSTOBJEXT = @INSTOBJEXT@
167 INTLLIBS = @INTLLIBS@
168 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
169 INTLTOOL_MERGE = @INTLTOOL_MERGE@
170 INTLTOOL_PERL = @INTLTOOL_PERL@
171 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
172 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
173 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
174 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
175 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
176 LD = @LD@
177 LDFLAGS = @LDFLAGS@
178 LIBOBJS = @LIBOBJS@
179 LIBS = @LIBS@
180 LIBTOOL = @LIBTOOL@
181 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
182 LIBVIRT_LIBS = @LIBVIRT_LIBS@
183 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
184 LIBXML2_LIBS = @LIBXML2_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MKDIR_P = @MKDIR_P@
191 MKINSTALLDIRS = @MKINSTALLDIRS@
192 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
193 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
194 MSGFMT = @MSGFMT@
195 MSGFMT_OPTS = @MSGFMT_OPTS@
196 MSGMERGE = @MSGMERGE@
197 NM = @NM@
198 NMEDIT = @NMEDIT@
199 NSPR_CFLAGS = @NSPR_CFLAGS@
200 NSPR_LIBS = @NSPR_LIBS@
201 OBJDUMP = @OBJDUMP@
202 OBJEXT = @OBJEXT@
203 OTOOL = @OTOOL@
204 OTOOL64 = @OTOOL64@
205 PACKAGE = @PACKAGE@
206 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
207 PACKAGE_NAME = @PACKAGE_NAME@
208 PACKAGE_STRING = @PACKAGE_STRING@
209 PACKAGE_TARNAME = @PACKAGE_TARNAME@
210 PACKAGE_URL = @PACKAGE_URL@
211 PACKAGE_VERSION = @PACKAGE_VERSION@
212 PATH_SEPARATOR = @PATH_SEPARATOR@
213 PKG_CONFIG = @PKG_CONFIG@
214 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
216 POFILES = @POFILES@
217 POSUB = @POSUB@
218 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
219 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
220 RANLIB = @RANLIB@
221 SED = @SED@
222 SET_MAKE = @SET_MAKE@
223 SHELL = @SHELL@
224 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
225 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
226 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
227 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
228 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
229 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
230 STRIP = @STRIP@
231 USE_NLS = @USE_NLS@
232 VERSION = @VERSION@
233 WARN_CFLAGS = @WARN_CFLAGS@
234 WINDRES = @WINDRES@
235 XGETTEXT = @XGETTEXT@
236 abs_builddir = @abs_builddir@
237 abs_srcdir = @abs_srcdir@
238 abs_top_builddir = @abs_top_builddir@
239 abs_top_srcdir = @abs_top_srcdir@
240 ac_ct_AR = @ac_ct_AR@
241 ac_ct_CC = @ac_ct_CC@
242 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243 am__include = @am__include@
244 am__leading_dot = @am__leading_dot@
245 am__quote = @am__quote@
246 am__tar = @am__tar@
247 am__untar = @am__untar@
248 bindir = @bindir@
249 build = @build@
250 build_alias = @build_alias@
251 build_cpu = @build_cpu@
252 build_os = @build_os@
253 build_vendor = @build_vendor@
254 builddir = @builddir@
255 datadir = @datadir@
256 datarootdir = @datarootdir@
257 docdir = @docdir@
258 dvidir = @dvidir@
259 exec_prefix = @exec_prefix@
260 host = @host@
261 host_alias = @host_alias@
262 host_cpu = @host_cpu@
263 host_os = @host_os@
264 host_vendor = @host_vendor@
265 htmldir = @htmldir@
266 includedir = @includedir@
267 infodir = @infodir@
268 install_sh = @install_sh@
269 intltool__v_merge_options_ = @intltool__v_merge_options_@
270 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
271 libdir = @libdir@
272 libexecdir = @libexecdir@
273 localedir = @localedir@
274 localstatedir = @localstatedir@
275 mandir = @mandir@
276 mkdir_p = @mkdir_p@
277 oldincludedir = @oldincludedir@
278 pdfdir = @pdfdir@
279 prefix = @prefix@
280 program_transform_name = @program_transform_name@
281 psdir = @psdir@
282 sbindir = @sbindir@
283 sharedstatedir = @sharedstatedir@
284 srcdir = @srcdir@
285 sysconfdir = @sysconfdir@
286 target_alias = @target_alias@
287 top_build_prefix = @top_build_prefix@
288 top_builddir = @top_builddir@
289 top_srcdir = @top_srcdir@
290 size = $(notdir $(PWD))
291 icondir = $(datadir)/icons/hicolor/$(size)/apps/
292 icon_DATA = $(PACKAGE).png
293 EXTRA_DIST = $(icon_DATA)
294 all: all-am
295
296 .SUFFIXES:
297 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
298 @for dep in $?; do \
299 case '$(am__configure_deps)' in \
300 *$$dep*) \
301 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
302 && { if test -f $@; then exit 0; else break; fi; }; \
303 exit 1;; \
304 esac; \
305 done; \
306 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/48x48/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu icons/48x48/Makefile
309 .PRECIOUS: Makefile
310 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
311 @case '$?' in \
312 *config.status*) \
313 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
314 *) \
315 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
316 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
317 esac;
318
319 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321
322 $(top_srcdir)/configure: $(am__configure_deps)
323 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
324 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
325 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
326 $(am__aclocal_m4_deps):
327
328 mostlyclean-libtool:
329 -rm -f *.lo
330
331 clean-libtool:
332 -rm -rf .libs _libs
333 install-iconDATA: $(icon_DATA)
334 @$(NORMAL_INSTALL)
335 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
336 if test -n "$$list"; then \
337 echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \
338 $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \
339 fi; \
340 for p in $$list; do \
341 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
342 echo "$$d$$p"; \
343 done | $(am__base_list) | \
344 while read files; do \
345 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
346 $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
347 done
348
349 uninstall-iconDATA:
350 @$(NORMAL_UNINSTALL)
351 @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
352 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
353 dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir)
354 tags: TAGS
355 TAGS:
356
357 ctags: CTAGS
358 CTAGS:
359
360 cscope cscopelist:
361
362
363 distdir: $(DISTFILES)
364 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
365 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
366 list='$(DISTFILES)'; \
367 dist_files=`for file in $$list; do echo $$file; done | \
368 sed -e "s|^$$srcdirstrip/||;t" \
369 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
370 case $$dist_files in \
371 */*) $(MKDIR_P) `echo "$$dist_files" | \
372 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
373 sort -u` ;; \
374 esac; \
375 for file in $$dist_files; do \
376 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
377 if test -d $$d/$$file; then \
378 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
379 if test -d "$(distdir)/$$file"; then \
380 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
381 fi; \
382 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
383 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
384 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
385 fi; \
386 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
387 else \
388 test -f "$(distdir)/$$file" \
389 || cp -p $$d/$$file "$(distdir)/$$file" \
390 || exit 1; \
391 fi; \
392 done
393 check-am: all-am
394 check: check-am
395 all-am: Makefile $(DATA)
396 installdirs:
397 for dir in "$(DESTDIR)$(icondir)"; do \
398 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
399 done
400 install: install-am
401 install-exec: install-exec-am
402 install-data: install-data-am
403 uninstall: uninstall-am
404
405 install-am: all-am
406 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
407
408 installcheck: installcheck-am
409 install-strip:
410 if test -z '$(STRIP)'; then \
411 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
412 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
413 install; \
414 else \
415 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
416 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
417 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
418 fi
419 mostlyclean-generic:
420
421 clean-generic:
422
423 distclean-generic:
424 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
425 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
426
427 maintainer-clean-generic:
428 @echo "This command is intended for maintainers to use"
429 @echo "it deletes files that may require special tools to rebuild."
430 clean: clean-am
431
432 clean-am: clean-generic clean-libtool mostlyclean-am
433
434 distclean: distclean-am
435 -rm -f Makefile
436 distclean-am: clean-am distclean-generic
437
438 dvi: dvi-am
439
440 dvi-am:
441
442 html: html-am
443
444 html-am:
445
446 info: info-am
447
448 info-am:
449
450 install-data-am: install-iconDATA
451
452 install-dvi: install-dvi-am
453
454 install-dvi-am:
455
456 install-exec-am:
457
458 install-html: install-html-am
459
460 install-html-am:
461
462 install-info: install-info-am
463
464 install-info-am:
465
466 install-man:
467
468 install-pdf: install-pdf-am
469
470 install-pdf-am:
471
472 install-ps: install-ps-am
473
474 install-ps-am:
475
476 installcheck-am:
477
478 maintainer-clean: maintainer-clean-am
479 -rm -f Makefile
480 maintainer-clean-am: distclean-am maintainer-clean-generic
481
482 mostlyclean: mostlyclean-am
483
484 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
485
486 pdf: pdf-am
487
488 pdf-am:
489
490 ps: ps-am
491
492 ps-am:
493
494 uninstall-am: uninstall-iconDATA
495
496 .MAKE: install-am install-strip
497
498 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
499 distclean distclean-generic distclean-libtool distdir dvi \
500 dvi-am html html-am info info-am install install-am \
501 install-data install-data-am install-dvi install-dvi-am \
502 install-exec install-exec-am install-html install-html-am \
503 install-iconDATA install-info install-info-am install-man \
504 install-pdf install-pdf-am install-ps install-ps-am \
505 install-strip installcheck installcheck-am installdirs \
506 maintainer-clean maintainer-clean-generic mostlyclean \
507 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
508 uninstall uninstall-am uninstall-iconDATA
509
510
511 -include $(top_srcdir)/git.mk
512
513 # Tell versions [3.59,3.63) of GNU make to not export all variables.
514 # Otherwise a system limit (for SysV at least) may be exceeded.
515 .NOEXPORT:
0 SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256
1
2 if OS_WIN32
3 noinst_DATA = virt-viewer.ico
4 CLEANFILES = $(noinst_DATA)
5 endif
6
7 # http://stackoverflow.com/questions/3236115/which-icon-sizes-should-my-windows-applications-icon-include
8 ico_sizes = 16 32 48 256
9 %.ico: $(foreach s,$(ico_sizes),$(s)x$(s)/%.png)
10 $(AM_V_GEN)$(ICOTOOL) -c -o $@ $^
11
12 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
34 pkgdatadir = $(datadir)/@PACKAGE@
35 pkgincludedir = $(includedir)/@PACKAGE@
36 pkglibdir = $(libdir)/@PACKAGE@
37 pkglibexecdir = $(libexecdir)/@PACKAGE@
38 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
39 install_sh_DATA = $(install_sh) -c -m 644
40 install_sh_PROGRAM = $(install_sh) -c
41 install_sh_SCRIPT = $(install_sh) -c
42 INSTALL_HEADER = $(INSTALL_DATA)
43 transform = $(program_transform_name)
44 NORMAL_INSTALL = :
45 PRE_INSTALL = :
46 POST_INSTALL = :
47 NORMAL_UNINSTALL = :
48 PRE_UNINSTALL = :
49 POST_UNINSTALL = :
50 build_triplet = @build@
51 host_triplet = @host@
52 subdir = icons
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
54 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
56 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
57 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
58 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
59 $(top_srcdir)/configure.ac
60 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
61 $(ACLOCAL_M4)
62 mkinstalldirs = $(install_sh) -d
63 CONFIG_HEADER = $(top_builddir)/config.h
64 CONFIG_CLEAN_FILES =
65 CONFIG_CLEAN_VPATH_FILES =
66 AM_V_P = $(am__v_P_@AM_V@)
67 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
68 am__v_P_0 = false
69 am__v_P_1 = :
70 AM_V_GEN = $(am__v_GEN_@AM_V@)
71 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
72 am__v_GEN_0 = @echo " GEN " $@;
73 am__v_GEN_1 =
74 AM_V_at = $(am__v_at_@AM_V@)
75 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
76 am__v_at_0 = @
77 am__v_at_1 =
78 SOURCES =
79 DIST_SOURCES =
80 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
81 html-recursive info-recursive install-data-recursive \
82 install-dvi-recursive install-exec-recursive \
83 install-html-recursive install-info-recursive \
84 install-pdf-recursive install-ps-recursive install-recursive \
85 installcheck-recursive installdirs-recursive pdf-recursive \
86 ps-recursive uninstall-recursive
87 am__can_run_installinfo = \
88 case $$AM_UPDATE_INFO_DIR in \
89 n|no|NO) false;; \
90 *) (install-info --version) >/dev/null 2>&1;; \
91 esac
92 DATA = $(noinst_DATA)
93 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
94 distclean-recursive maintainer-clean-recursive
95 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
96 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
97 distdir
98 ETAGS = etags
99 CTAGS = ctags
100 DIST_SUBDIRS = $(SUBDIRS)
101 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
102 am__relativize = \
103 dir0=`pwd`; \
104 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
105 sed_rest='s,^[^/]*/*,,'; \
106 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
107 sed_butlast='s,/*[^/]*$$,,'; \
108 while test -n "$$dir1"; do \
109 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
110 if test "$$first" != "."; then \
111 if test "$$first" = ".."; then \
112 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
113 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
114 else \
115 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
116 if test "$$first2" = "$$first"; then \
117 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
118 else \
119 dir2="../$$dir2"; \
120 fi; \
121 dir0="$$dir0"/"$$first"; \
122 fi; \
123 fi; \
124 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
125 done; \
126 reldir="$$dir2"
127 ACLOCAL = @ACLOCAL@
128 ALL_LINGUAS = @ALL_LINGUAS@
129 AMTAR = @AMTAR@
130 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
131 AR = @AR@
132 AUTOCONF = @AUTOCONF@
133 AUTOHEADER = @AUTOHEADER@
134 AUTOMAKE = @AUTOMAKE@
135 AWK = @AWK@
136 CATALOGS = @CATALOGS@
137 CATOBJEXT = @CATOBJEXT@
138 CC = @CC@
139 CCDEPMODE = @CCDEPMODE@
140 CFLAGS = @CFLAGS@
141 CPP = @CPP@
142 CPPFLAGS = @CPPFLAGS@
143 CYGPATH_W = @CYGPATH_W@
144 DATADIRNAME = @DATADIRNAME@
145 DEFS = @DEFS@
146 DEPDIR = @DEPDIR@
147 DLLTOOL = @DLLTOOL@
148 DSYMUTIL = @DSYMUTIL@
149 DUMPBIN = @DUMPBIN@
150 ECHO_C = @ECHO_C@
151 ECHO_N = @ECHO_N@
152 ECHO_T = @ECHO_T@
153 EGREP = @EGREP@
154 EXEEXT = @EXEEXT@
155 FGREP = @FGREP@
156 FIREFOX_PLUGIN_CFLAGS = @FIREFOX_PLUGIN_CFLAGS@
157 FIREFOX_PLUGIN_LIBS = @FIREFOX_PLUGIN_LIBS@
158 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
159 GLIB2_CFLAGS = @GLIB2_CFLAGS@
160 GLIB2_LIBS = @GLIB2_LIBS@
161 GLIB_MKENUMS = @GLIB_MKENUMS@
162 GMOFILES = @GMOFILES@
163 GMSGFMT = @GMSGFMT@
164 GREP = @GREP@
165 GTK_API_VERSION = @GTK_API_VERSION@
166 GTK_CFLAGS = @GTK_CFLAGS@
167 GTK_LIBS = @GTK_LIBS@
168 GTK_REQUIRED = @GTK_REQUIRED@
169 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
170 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
171 GTK_VNC_LIBS = @GTK_VNC_LIBS@
172 ICOTOOL = @ICOTOOL@
173 INSTALL = @INSTALL@
174 INSTALL_DATA = @INSTALL_DATA@
175 INSTALL_PROGRAM = @INSTALL_PROGRAM@
176 INSTALL_SCRIPT = @INSTALL_SCRIPT@
177 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
178 INSTOBJEXT = @INSTOBJEXT@
179 INTLLIBS = @INTLLIBS@
180 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
181 INTLTOOL_MERGE = @INTLTOOL_MERGE@
182 INTLTOOL_PERL = @INTLTOOL_PERL@
183 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
184 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
185 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
186 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
187 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
188 LD = @LD@
189 LDFLAGS = @LDFLAGS@
190 LIBOBJS = @LIBOBJS@
191 LIBS = @LIBS@
192 LIBTOOL = @LIBTOOL@
193 LIBVIRT_CFLAGS = @LIBVIRT_CFLAGS@
194 LIBVIRT_LIBS = @LIBVIRT_LIBS@
195 LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
196 LIBXML2_LIBS = @LIBXML2_LIBS@
197 LIPO = @LIPO@
198 LN_S = @LN_S@
199 LTLIBOBJS = @LTLIBOBJS@
200 MAKEINFO = @MAKEINFO@
201 MANIFEST_TOOL = @MANIFEST_TOOL@
202 MKDIR_P = @MKDIR_P@
203 MKINSTALLDIRS = @MKINSTALLDIRS@
204 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
205 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
206 MSGFMT = @MSGFMT@
207 MSGFMT_OPTS = @MSGFMT_OPTS@
208 MSGMERGE = @MSGMERGE@
209 NM = @NM@
210 NMEDIT = @NMEDIT@
211 NSPR_CFLAGS = @NSPR_CFLAGS@
212 NSPR_LIBS = @NSPR_LIBS@
213 OBJDUMP = @OBJDUMP@
214 OBJEXT = @OBJEXT@
215 OTOOL = @OTOOL@
216 OTOOL64 = @OTOOL64@
217 PACKAGE = @PACKAGE@
218 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
219 PACKAGE_NAME = @PACKAGE_NAME@
220 PACKAGE_STRING = @PACKAGE_STRING@
221 PACKAGE_TARNAME = @PACKAGE_TARNAME@
222 PACKAGE_URL = @PACKAGE_URL@
223 PACKAGE_VERSION = @PACKAGE_VERSION@
224 PATH_SEPARATOR = @PATH_SEPARATOR@
225 PKG_CONFIG = @PKG_CONFIG@
226 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
227 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
228 POFILES = @POFILES@
229 POSUB = @POSUB@
230 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
231 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
232 RANLIB = @RANLIB@
233 SED = @SED@
234 SET_MAKE = @SET_MAKE@
235 SHELL = @SHELL@
236 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
237 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
238 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
239 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
240 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
241 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
242 STRIP = @STRIP@
243 USE_NLS = @USE_NLS@
244 VERSION = @VERSION@
245 WARN_CFLAGS = @WARN_CFLAGS@
246 WINDRES = @WINDRES@
247 XGETTEXT = @XGETTEXT@
248 abs_builddir = @abs_builddir@
249 abs_srcdir = @abs_srcdir@
250 abs_top_builddir = @abs_top_builddir@
251 abs_top_srcdir = @abs_top_srcdir@
252 ac_ct_AR = @ac_ct_AR@
253 ac_ct_CC = @ac_ct_CC@
254 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
255 am__include = @am__include@
256 am__leading_dot = @am__leading_dot@
257 am__quote = @am__quote@
258 am__tar = @am__tar@
259 am__untar = @am__untar@
260 bindir = @bindir@
261 build = @build@
262 build_alias = @build_alias@
263 build_cpu = @build_cpu@
264 build_os = @build_os@
265 build_vendor = @build_vendor@
266 builddir = @builddir@
267 datadir = @datadir@
268 datarootdir = @datarootdir@
269 docdir = @docdir@
270 dvidir = @dvidir@
271 exec_prefix = @exec_prefix@
272 host = @host@
273 host_alias = @host_alias@
274 host_cpu = @host_cpu@
275 host_os = @host_os@
276 host_vendor = @host_vendor@
277 htmldir = @htmldir@
278 includedir = @includedir@
279 infodir = @infodir@
280 install_sh = @install_sh@
281 intltool__v_merge_options_ = @intltool__v_merge_options_@
282 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
283 libdir = @libdir@
284 libexecdir = @libexecdir@
285 localedir = @localedir@
286 localstatedir = @localstatedir@
287 mandir = @mandir@
288 mkdir_p = @mkdir_p@
289 oldincludedir = @oldincludedir@
290 pdfdir = @pdfdir@
291 prefix = @prefix@
292 program_transform_name = @program_transform_name@
293 psdir = @psdir@
294 sbindir = @sbindir@
295 sharedstatedir = @sharedstatedir@
296 srcdir = @srcdir@
297 sysconfdir = @sysconfdir@
298 target_alias = @target_alias@
299 top_build_prefix = @top_build_prefix@
300 top_builddir = @top_builddir@
301 top_srcdir = @top_srcdir@
302 SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256
303 @OS_WIN32_TRUE@noinst_DATA = virt-viewer.ico
304 @OS_WIN32_TRUE@CLEANFILES = $(noinst_DATA)
305
306 # http://stackoverflow.com/questions/3236115/which-icon-sizes-should-my-windows-applications-icon-include
307 ico_sizes = 16 32 48 256
308 all: all-recursive
309
310 .SUFFIXES:
311 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
312 @for dep in $?; do \
313 case '$(am__configure_deps)' in \
314 *$$dep*) \
315 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
316 && { if test -f $@; then exit 0; else break; fi; }; \
317 exit 1;; \
318 esac; \
319 done; \
320 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu icons/Makefile'; \
321 $(am__cd) $(top_srcdir) && \
322 $(AUTOMAKE) --gnu icons/Makefile
323 .PRECIOUS: Makefile
324 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
325 @case '$?' in \
326 *config.status*) \
327 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
328 *) \
329 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
330 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
331 esac;
332
333 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
334 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
335
336 $(top_srcdir)/configure: $(am__configure_deps)
337 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
338 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
339 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
340 $(am__aclocal_m4_deps):
341
342 mostlyclean-libtool:
343 -rm -f *.lo
344
345 clean-libtool:
346 -rm -rf .libs _libs
347
348 # This directory's subdirectories are mostly independent; you can cd
349 # into them and run 'make' without going through this Makefile.
350 # To change the values of 'make' variables: instead of editing Makefiles,
351 # (1) if the variable is set in 'config.status', edit 'config.status'
352 # (which will cause the Makefiles to be regenerated when you run 'make');
353 # (2) otherwise, pass the desired values on the 'make' command line.
354 $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
355 @fail= failcom='exit 1'; \
356 for f in x $$MAKEFLAGS; do \
357 case $$f in \
358 *=* | --[!k]*);; \
359 *k*) failcom='fail=yes';; \
360 esac; \
361 done; \
362 dot_seen=no; \
363 target=`echo $@ | sed s/-recursive//`; \
364 case "$@" in \
365 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
366 *) list='$(SUBDIRS)' ;; \
367 esac; \
368 for subdir in $$list; do \
369 echo "Making $$target in $$subdir"; \
370 if test "$$subdir" = "."; then \
371 dot_seen=yes; \
372 local_target="$$target-am"; \
373 else \
374 local_target="$$target"; \
375 fi; \
376 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
377 || eval $$failcom; \
378 done; \
379 if test "$$dot_seen" = "no"; then \
380 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
381 fi; test -z "$$fail"
382 tags-recursive:
383 list='$(SUBDIRS)'; for subdir in $$list; do \
384 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
385 done
386 ctags-recursive:
387 list='$(SUBDIRS)'; for subdir in $$list; do \
388 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
389 done
390 cscopelist-recursive:
391 list='$(SUBDIRS)'; for subdir in $$list; do \
392 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
393 done
394
395 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
396 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
397 unique=`for i in $$list; do \
398 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
399 done | \
400 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
401 END { if (nonempty) { for (i in files) print i; }; }'`; \
402 mkid -fID $$unique
403 tags: TAGS
404
405 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
406 $(TAGS_FILES) $(LISP)
407 set x; \
408 here=`pwd`; \
409 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
410 include_option=--etags-include; \
411 empty_fix=.; \
412 else \
413 include_option=--include; \
414 empty_fix=; \
415 fi; \
416 list='$(SUBDIRS)'; for subdir in $$list; do \
417 if test "$$subdir" = .; then :; else \
418 test ! -f $$subdir/TAGS || \
419 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
420 fi; \
421 done; \
422 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
423 unique=`for i in $$list; do \
424 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
425 done | \
426 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
427 END { if (nonempty) { for (i in files) print i; }; }'`; \
428 shift; \
429 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
430 test -n "$$unique" || unique=$$empty_fix; \
431 if test $$# -gt 0; then \
432 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
433 "$$@" $$unique; \
434 else \
435 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
436 $$unique; \
437 fi; \
438 fi
439 ctags: CTAGS
440 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
441 $(TAGS_FILES) $(LISP)
442 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
443 unique=`for i in $$list; do \
444 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
445 done | \
446 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
447 END { if (nonempty) { for (i in files) print i; }; }'`; \
448 test -z "$(CTAGS_ARGS)$$unique" \
449 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
450 $$unique
451
452 GTAGS:
453 here=`$(am__cd) $(top_builddir) && pwd` \
454 && $(am__cd) $(top_srcdir) \
455 && gtags -i $(GTAGS_ARGS) "$$here"
456
457 cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
458 list='$(SOURCES) $(HEADERS) $(LISP)'; \
459 case "$(srcdir)" in \
460 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
461 *) sdir=$(subdir)/$(srcdir) ;; \
462 esac; \
463 for i in $$list; do \
464 if test -f "$$i"; then \
465 echo "$(subdir)/$$i"; \
466 else \
467 echo "$$sdir/$$i"; \
468 fi; \
469 done >> $(top_builddir)/cscope.files
470
471 distclean-tags:
472 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
473
474 distdir: $(DISTFILES)
475 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
476 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
477 list='$(DISTFILES)'; \
478 dist_files=`for file in $$list; do echo $$file; done | \
479 sed -e "s|^$$srcdirstrip/||;t" \
480 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
481 case $$dist_files in \
482 */*) $(MKDIR_P) `echo "$$dist_files" | \
483 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
484 sort -u` ;; \
485 esac; \
486 for file in $$dist_files; do \
487 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
488 if test -d $$d/$$file; then \
489 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
490 if test -d "$(distdir)/$$file"; then \
491 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
492 fi; \
493 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
494 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
495 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
496 fi; \
497 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
498 else \
499 test -f "$(distdir)/$$file" \
500 || cp -p $$d/$$file "$(distdir)/$$file" \
501 || exit 1; \
502 fi; \
503 done
504 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
505 if test "$$subdir" = .; then :; else \
506 $(am__make_dryrun) \
507 || test -d "$(distdir)/$$subdir" \
508 || $(MKDIR_P) "$(distdir)/$$subdir" \
509 || exit 1; \
510 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
511 $(am__relativize); \
512 new_distdir=$$reldir; \
513 dir1=$$subdir; dir2="$(top_distdir)"; \
514 $(am__relativize); \
515 new_top_distdir=$$reldir; \
516 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
517 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
518 ($(am__cd) $$subdir && \
519 $(MAKE) $(AM_MAKEFLAGS) \
520 top_distdir="$$new_top_distdir" \
521 distdir="$$new_distdir" \
522 am__remove_distdir=: \
523 am__skip_length_check=: \
524 am__skip_mode_fix=: \
525 distdir) \
526 || exit 1; \
527 fi; \
528 done
529 check-am: all-am
530 check: check-recursive
531 all-am: Makefile $(DATA)
532 installdirs: installdirs-recursive
533 installdirs-am:
534 install: install-recursive
535 install-exec: install-exec-recursive
536 install-data: install-data-recursive
537 uninstall: uninstall-recursive
538
539 install-am: all-am
540 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
541
542 installcheck: installcheck-recursive
543 install-strip:
544 if test -z '$(STRIP)'; then \
545 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
546 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
547 install; \
548 else \
549 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
550 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
551 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
552 fi
553 mostlyclean-generic:
554
555 clean-generic:
556 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
557
558 distclean-generic:
559 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
560 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
561
562 maintainer-clean-generic:
563 @echo "This command is intended for maintainers to use"
564 @echo "it deletes files that may require special tools to rebuild."
565 clean: clean-recursive
566
567 clean-am: clean-generic clean-libtool mostlyclean-am
568
569 distclean: distclean-recursive
570 -rm -f Makefile
571 distclean-am: clean-am distclean-generic distclean-tags
572
573 dvi: dvi-recursive
574
575 dvi-am:
576
577 html: html-recursive
578
579 html-am:
580
581 info: info-recursive
582
583 info-am:
584
585 install-data-am:
586
587 install-dvi: install-dvi-recursive
588
589 install-dvi-am:
590
591 install-exec-am:
592
593 install-html: install-html-recursive
594
595 install-html-am:
596
597 install-info: install-info-recursive
598
599 install-info-am:
600
601 install-man:
602
603 install-pdf: install-pdf-recursive
604
605 install-pdf-am:
606
607 install-ps: install-ps-recursive
608
609 install-ps-am:
610
611 installcheck-am:
612
613 maintainer-clean: maintainer-clean-recursive
614 -rm -f Makefile
615 maintainer-clean-am: distclean-am maintainer-clean-generic
616
617 mostlyclean: mostlyclean-recursive
618
619 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
620
621 pdf: pdf-recursive
622
623 pdf-am:
624
625 ps: ps-recursive
626
627 ps-am:
628
629 uninstall-am:
630
631 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
632 cscopelist-recursive ctags-recursive install-am install-strip \
633 tags-recursive
634
635 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
636 all all-am check check-am clean clean-generic clean-libtool \
637 cscopelist cscopelist-recursive ctags ctags-recursive \
638 distclean distclean-generic distclean-libtool distclean-tags \
639 distdir dvi dvi-am html html-am info info-am install \
640 install-am install-data install-data-am install-dvi \
641 install-dvi-am install-exec install-exec-am install-html \
642 install-html-am install-info install-info-am install-man \
643 install-pdf install-pdf-am install-ps install-ps-am \
644 install-strip installcheck installcheck-am installdirs \
645 installdirs-am maintainer-clean maintainer-clean-generic \
646 mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
647 ps ps-am tags tags-recursive uninstall uninstall-am
648
649 %.ico: $(foreach s,$(ico_sizes),$(s)x$(s)/%.png)
650 $(AM_V_GEN)$(ICOTOOL) -c -o $@ $^
651
652 -include $(top_srcdir)/git.mk
653
654 # Tell versions [3.59,3.63) of GNU make to not export all variables.
655 # Otherwise a system limit (for SysV at least) may be exceeded.
656 .NOEXPORT:
+0
-520
install-sh less more
0 #!/bin/sh
1 # install - install a program, script, or datafile
2
3 scriptversion=2009-04-28.21; # UTC
4
5 # This originates from X11R5 (mit/util/scripts/install.sh), which was
6 # later released in X11R6 (xc/config/util/install.sh) with the
7 # following copyright and license.
8 #
9 # Copyright (C) 1994 X Consortium
10 #
11 # Permission is hereby granted, free of charge, to any person obtaining a copy
12 # of this software and associated documentation files (the "Software"), to
13 # deal in the Software without restriction, including without limitation the
14 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
15 # sell copies of the Software, and to permit persons to whom the Software is
16 # furnished to do so, subject to the following conditions:
17 #
18 # The above copyright notice and this permission notice shall be included in
19 # all copies or substantial portions of the Software.
20 #
21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
25 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
26 # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 #
28 # Except as contained in this notice, the name of the X Consortium shall not
29 # be used in advertising or otherwise to promote the sale, use or other deal-
30 # ings in this Software without prior written authorization from the X Consor-
31 # tium.
32 #
33 #
34 # FSF changes to this file are in the public domain.
35 #
36 # Calling this script install-sh is preferred over install.sh, to prevent
37 # `make' implicit rules from creating a file called install from it
38 # when there is no Makefile.
39 #
40 # This script is compatible with the BSD install script, but was written
41 # from scratch.
42
43 nl='
44 '
45 IFS=" "" $nl"
46
47 # set DOITPROG to echo to test this script
48
49 # Don't use :- since 4.3BSD and earlier shells don't like it.
50 doit=${DOITPROG-}
51 if test -z "$doit"; then
52 doit_exec=exec
53 else
54 doit_exec=$doit
55 fi
56
57 # Put in absolute file names if you don't have them in your path;
58 # or use environment vars.
59
60 chgrpprog=${CHGRPPROG-chgrp}
61 chmodprog=${CHMODPROG-chmod}
62 chownprog=${CHOWNPROG-chown}
63 cmpprog=${CMPPROG-cmp}
64 cpprog=${CPPROG-cp}
65 mkdirprog=${MKDIRPROG-mkdir}
66 mvprog=${MVPROG-mv}
67 rmprog=${RMPROG-rm}
68 stripprog=${STRIPPROG-strip}
69
70 posix_glob='?'
71 initialize_posix_glob='
72 test "$posix_glob" != "?" || {
73 if (set -f) 2>/dev/null; then
74 posix_glob=
75 else
76 posix_glob=:
77 fi
78 }
79 '
80
81 posix_mkdir=
82
83 # Desired mode of installed file.
84 mode=0755
85
86 chgrpcmd=
87 chmodcmd=$chmodprog
88 chowncmd=
89 mvcmd=$mvprog
90 rmcmd="$rmprog -f"
91 stripcmd=
92
93 src=
94 dst=
95 dir_arg=
96 dst_arg=
97
98 copy_on_change=false
99 no_target_directory=
100
101 usage="\
102 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
103 or: $0 [OPTION]... SRCFILES... DIRECTORY
104 or: $0 [OPTION]... -t DIRECTORY SRCFILES...
105 or: $0 [OPTION]... -d DIRECTORIES...
106
107 In the 1st form, copy SRCFILE to DSTFILE.
108 In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
109 In the 4th, create DIRECTORIES.
110
111 Options:
112 --help display this help and exit.
113 --version display version info and exit.
114
115 -c (ignored)
116 -C install only if different (preserve the last data modification time)
117 -d create directories instead of installing files.
118 -g GROUP $chgrpprog installed files to GROUP.
119 -m MODE $chmodprog installed files to MODE.
120 -o USER $chownprog installed files to USER.
121 -s $stripprog installed files.
122 -t DIRECTORY install into DIRECTORY.
123 -T report an error if DSTFILE is a directory.
124
125 Environment variables override the default commands:
126 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
127 RMPROG STRIPPROG
128 "
129
130 while test $# -ne 0; do
131 case $1 in
132 -c) ;;
133
134 -C) copy_on_change=true;;
135
136 -d) dir_arg=true;;
137
138 -g) chgrpcmd="$chgrpprog $2"
139 shift;;
140
141 --help) echo "$usage"; exit $?;;
142
143 -m) mode=$2
144 case $mode in
145 *' '* | *' '* | *'
146 '* | *'*'* | *'?'* | *'['*)
147 echo "$0: invalid mode: $mode" >&2
148 exit 1;;
149 esac
150 shift;;
151
152 -o) chowncmd="$chownprog $2"
153 shift;;
154
155 -s) stripcmd=$stripprog;;
156
157 -t) dst_arg=$2
158 shift;;
159
160 -T) no_target_directory=true;;
161
162 --version) echo "$0 $scriptversion"; exit $?;;
163
164 --) shift
165 break;;
166
167 -*) echo "$0: invalid option: $1" >&2
168 exit 1;;
169
170 *) break;;
171 esac
172 shift
173 done
174
175 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
176 # When -d is used, all remaining arguments are directories to create.
177 # When -t is used, the destination is already specified.
178 # Otherwise, the last argument is the destination. Remove it from $@.
179 for arg
180 do
181 if test -n "$dst_arg"; then
182 # $@ is not empty: it contains at least $arg.
183 set fnord "$@" "$dst_arg"
184 shift # fnord
185 fi
186 shift # arg
187 dst_arg=$arg
188 done
189 fi
190
191 if test $# -eq 0; then
192 if test -z "$dir_arg"; then
193 echo "$0: no input file specified." >&2
194 exit 1
195 fi
196 # It's OK to call `install-sh -d' without argument.
197 # This can happen when creating conditional directories.
198 exit 0
199 fi
200
201 if test -z "$dir_arg"; then
202 trap '(exit $?); exit' 1 2 13 15
203
204 # Set umask so as not to create temps with too-generous modes.
205 # However, 'strip' requires both read and write access to temps.
206 case $mode in
207 # Optimize common cases.
208 *644) cp_umask=133;;
209 *755) cp_umask=22;;
210
211 *[0-7])
212 if test -z "$stripcmd"; then
213 u_plus_rw=
214 else
215 u_plus_rw='% 200'
216 fi
217 cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
218 *)
219 if test -z "$stripcmd"; then
220 u_plus_rw=
221 else
222 u_plus_rw=,u+rw
223 fi
224 cp_umask=$mode$u_plus_rw;;
225 esac
226 fi
227
228 for src
229 do
230 # Protect names starting with `-'.
231 case $src in
232 -*) src=./$src;;
233 esac
234
235 if test -n "$dir_arg"; then
236 dst=$src
237 dstdir=$dst
238 test -d "$dstdir"
239 dstdir_status=$?
240 else
241
242 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
243 # might cause directories to be created, which would be especially bad
244 # if $src (and thus $dsttmp) contains '*'.
245 if test ! -f "$src" && test ! -d "$src"; then
246 echo "$0: $src does not exist." >&2
247 exit 1
248 fi
249
250 if test -z "$dst_arg"; then
251 echo "$0: no destination specified." >&2
252 exit 1
253 fi
254
255 dst=$dst_arg
256 # Protect names starting with `-'.
257 case $dst in
258 -*) dst=./$dst;;
259 esac
260
261 # If destination is a directory, append the input filename; won't work
262 # if double slashes aren't ignored.
263 if test -d "$dst"; then
264 if test -n "$no_target_directory"; then
265 echo "$0: $dst_arg: Is a directory" >&2
266 exit 1
267 fi
268 dstdir=$dst
269 dst=$dstdir/`basename "$src"`
270 dstdir_status=0
271 else
272 # Prefer dirname, but fall back on a substitute if dirname fails.
273 dstdir=`
274 (dirname "$dst") 2>/dev/null ||
275 expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
276 X"$dst" : 'X\(//\)[^/]' \| \
277 X"$dst" : 'X\(//\)$' \| \
278 X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
279 echo X"$dst" |
280 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
281 s//\1/
282 q
283 }
284 /^X\(\/\/\)[^/].*/{
285 s//\1/
286 q
287 }
288 /^X\(\/\/\)$/{
289 s//\1/
290 q
291 }
292 /^X\(\/\).*/{
293 s//\1/
294 q
295 }
296 s/.*/./; q'
297 `
298
299 test -d "$dstdir"
300 dstdir_status=$?
301 fi
302 fi
303
304 obsolete_mkdir_used=false
305
306 if test $dstdir_status != 0; then
307 case $posix_mkdir in
308 '')
309 # Create intermediate dirs using mode 755 as modified by the umask.
310 # This is like FreeBSD 'install' as of 1997-10-28.
311 umask=`umask`
312 case $stripcmd.$umask in
313 # Optimize common cases.
314 *[2367][2367]) mkdir_umask=$umask;;
315 .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
316
317 *[0-7])
318 mkdir_umask=`expr $umask + 22 \
319 - $umask % 100 % 40 + $umask % 20 \
320 - $umask % 10 % 4 + $umask % 2
321 `;;
322 *) mkdir_umask=$umask,go-w;;
323 esac
324
325 # With -d, create the new directory with the user-specified mode.
326 # Otherwise, rely on $mkdir_umask.
327 if test -n "$dir_arg"; then
328 mkdir_mode=-m$mode
329 else
330 mkdir_mode=
331 fi
332
333 posix_mkdir=false
334 case $umask in
335 *[123567][0-7][0-7])
336 # POSIX mkdir -p sets u+wx bits regardless of umask, which
337 # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
338 ;;
339 *)
340 tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
341 trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
342
343 if (umask $mkdir_umask &&
344 exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
345 then
346 if test -z "$dir_arg" || {
347 # Check for POSIX incompatibilities with -m.
348 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
349 # other-writeable bit of parent directory when it shouldn't.
350 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
351 ls_ld_tmpdir=`ls -ld "$tmpdir"`
352 case $ls_ld_tmpdir in
353 d????-?r-*) different_mode=700;;
354 d????-?--*) different_mode=755;;
355 *) false;;
356 esac &&
357 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
358 ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
359 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
360 }
361 }
362 then posix_mkdir=:
363 fi
364 rmdir "$tmpdir/d" "$tmpdir"
365 else
366 # Remove any dirs left behind by ancient mkdir implementations.
367 rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
368 fi
369 trap '' 0;;
370 esac;;
371 esac
372
373 if
374 $posix_mkdir && (
375 umask $mkdir_umask &&
376 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
377 )
378 then :
379 else
380
381 # The umask is ridiculous, or mkdir does not conform to POSIX,
382 # or it failed possibly due to a race condition. Create the
383 # directory the slow way, step by step, checking for races as we go.
384
385 case $dstdir in
386 /*) prefix='/';;
387 -*) prefix='./';;
388 *) prefix='';;
389 esac
390
391 eval "$initialize_posix_glob"
392
393 oIFS=$IFS
394 IFS=/
395 $posix_glob set -f
396 set fnord $dstdir
397 shift
398 $posix_glob set +f
399 IFS=$oIFS
400
401 prefixes=
402
403 for d
404 do
405 test -z "$d" && continue
406
407 prefix=$prefix$d
408 if test -d "$prefix"; then
409 prefixes=
410 else
411 if $posix_mkdir; then
412 (umask=$mkdir_umask &&
413 $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
414 # Don't fail if two instances are running concurrently.
415 test -d "$prefix" || exit 1
416 else
417 case $prefix in
418 *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
419 *) qprefix=$prefix;;
420 esac
421 prefixes="$prefixes '$qprefix'"
422 fi
423 fi
424 prefix=$prefix/
425 done
426
427 if test -n "$prefixes"; then
428 # Don't fail if two instances are running concurrently.
429 (umask $mkdir_umask &&
430 eval "\$doit_exec \$mkdirprog $prefixes") ||
431 test -d "$dstdir" || exit 1
432 obsolete_mkdir_used=true
433 fi
434 fi
435 fi
436
437 if test -n "$dir_arg"; then
438 { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
439 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
440 { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
441 test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
442 else
443
444 # Make a couple of temp file names in the proper directory.
445 dsttmp=$dstdir/_inst.$$_
446 rmtmp=$dstdir/_rm.$$_
447
448 # Trap to clean up those temp files at exit.
449 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
450
451 # Copy the file name to the temp name.
452 (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
453
454 # and set any options; do chmod last to preserve setuid bits.
455 #
456 # If any of these fail, we abort the whole thing. If we want to
457 # ignore errors from any of these, just make sure not to ignore
458 # errors from the above "$doit $cpprog $src $dsttmp" command.
459 #
460 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
461 { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
462 { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
463 { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
464
465 # If -C, don't bother to copy if it wouldn't change the file.
466 if $copy_on_change &&
467 old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
468 new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
469
470 eval "$initialize_posix_glob" &&
471 $posix_glob set -f &&
472 set X $old && old=:$2:$4:$5:$6 &&
473 set X $new && new=:$2:$4:$5:$6 &&
474 $posix_glob set +f &&
475
476 test "$old" = "$new" &&
477 $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
478 then
479 rm -f "$dsttmp"
480 else
481 # Rename the file to the real destination.
482 $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
483
484 # The rename failed, perhaps because mv can't rename something else
485 # to itself, or perhaps because mv is so ancient that it does not
486 # support -f.
487 {
488 # Now remove or move aside any old file at destination location.
489 # We try this two ways since rm can't unlink itself on some
490 # systems and the destination file might be busy for other
491 # reasons. In this case, the final cleanup might fail but the new
492 # file should still install successfully.
493 {
494 test ! -f "$dst" ||
495 $doit $rmcmd -f "$dst" 2>/dev/null ||
496 { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
497 { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
498 } ||
499 { echo "$0: cannot unlink or rename $dst" >&2
500 (exit 1); exit 1
501 }
502 } &&
503
504 # Now rename the file to the real destination.
505 $doit $mvcmd "$dsttmp" "$dst"
506 }
507 fi || exit 1
508
509 trap '' 0
510 fi
511 done
512
513 # Local variables:
514 # eval: (add-hook 'write-file-hooks 'time-stamp)
515 # time-stamp-start: "scriptversion="
516 # time-stamp-format: "%:y-%02m-%02d.%02H"
517 # time-stamp-time-zone: "UTC"
518 # time-stamp-end: "; # UTC"
519 # End:
+0
-9636
ltmain.sh less more
0
1 # libtool (GNU libtool) 2.4
2 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
3
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5 # 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
6 # This is free software; see the source for copying conditions. There is NO
7 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8
9 # GNU Libtool is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # As a special exception to the GNU General Public License,
15 # if you distribute this file as part of a program or library that
16 # is built using GNU Libtool, you may include this file under the
17 # same distribution terms that you use for the rest of that program.
18 #
19 # GNU Libtool is distributed in the hope that it will be useful, but
20 # WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 # General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with GNU Libtool; see the file COPYING. If not, a copy
26 # can be downloaded from http://www.gnu.org/licenses/gpl.html,
27 # or obtained by writing to the Free Software Foundation, Inc.,
28 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
29
30 # Usage: $progname [OPTION]... [MODE-ARG]...
31 #
32 # Provide generalized library-building support services.
33 #
34 # --config show all configuration variables
35 # --debug enable verbose shell tracing
36 # -n, --dry-run display commands without modifying any files
37 # --features display basic configuration information and exit
38 # --mode=MODE use operation mode MODE
39 # --preserve-dup-deps don't remove duplicate dependency libraries
40 # --quiet, --silent don't print informational messages
41 # --no-quiet, --no-silent
42 # print informational messages (default)
43 # --tag=TAG use configuration variables from tag TAG
44 # -v, --verbose print more informational messages than default
45 # --no-verbose don't print the extra informational messages
46 # --version print version information
47 # -h, --help, --help-all print short, long, or detailed help message
48 #
49 # MODE must be one of the following:
50 #
51 # clean remove files from the build directory
52 # compile compile a source file into a libtool object
53 # execute automatically set library path, then run a program
54 # finish complete the installation of libtool libraries
55 # install install libraries or executables
56 # link create a library or an executable
57 # uninstall remove libraries from an installed directory
58 #
59 # MODE-ARGS vary depending on the MODE. When passed as first option,
60 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
61 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
62 #
63 # When reporting a bug, please describe a test case to reproduce it and
64 # include the following information:
65 #
66 # host-triplet: $host
67 # shell: $SHELL
68 # compiler: $LTCC
69 # compiler flags: $LTCFLAGS
70 # linker: $LD (gnu? $with_gnu_ld)
71 # $progname: (GNU libtool) 2.4
72 # automake: $automake_version
73 # autoconf: $autoconf_version
74 #
75 # Report bugs to <bug-libtool@gnu.org>.
76 # GNU libtool home page: <http://www.gnu.org/software/libtool/>.
77 # General help using GNU software: <http://www.gnu.org/gethelp/>.
78
79 PROGRAM=libtool
80 PACKAGE=libtool
81 VERSION=2.4
82 TIMESTAMP=""
83 package_revision=1.3293
84
85 # Be Bourne compatible
86 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
87 emulate sh
88 NULLCMD=:
89 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
90 # is contrary to our usage. Disable this feature.
91 alias -g '${1+"$@"}'='"$@"'
92 setopt NO_GLOB_SUBST
93 else
94 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
95 fi
96 BIN_SH=xpg4; export BIN_SH # for Tru64
97 DUALCASE=1; export DUALCASE # for MKS sh
98
99 # A function that is used when there is no print builtin or printf.
100 func_fallback_echo ()
101 {
102 eval 'cat <<_LTECHO_EOF
103 $1
104 _LTECHO_EOF'
105 }
106
107 # NLS nuisances: We save the old values to restore during execute mode.
108 lt_user_locale=
109 lt_safe_locale=
110 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
111 do
112 eval "if test \"\${$lt_var+set}\" = set; then
113 save_$lt_var=\$$lt_var
114 $lt_var=C
115 export $lt_var
116 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
117 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
118 fi"
119 done
120 LC_ALL=C
121 LANGUAGE=C
122 export LANGUAGE LC_ALL
123
124 $lt_unset CDPATH
125
126
127 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
128 # is ksh but when the shell is invoked as "sh" and the current value of
129 # the _XPG environment variable is not equal to 1 (one), the special
130 # positional parameter $0, within a function call, is the name of the
131 # function.
132 progpath="$0"
133
134
135
136 : ${CP="cp -f"}
137 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
138 : ${EGREP="/bin/grep -E"}
139 : ${FGREP="/bin/grep -F"}
140 : ${GREP="/bin/grep"}
141 : ${LN_S="ln -s"}
142 : ${MAKE="make"}
143 : ${MKDIR="mkdir"}
144 : ${MV="mv -f"}
145 : ${RM="rm -f"}
146 : ${SED="/bin/sed"}
147 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
148 : ${Xsed="$SED -e 1s/^X//"}
149
150 # Global variables:
151 EXIT_SUCCESS=0
152 EXIT_FAILURE=1
153 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
154 EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
155
156 exit_status=$EXIT_SUCCESS
157
158 # Make sure IFS has a sensible default
159 lt_nl='
160 '
161 IFS=" $lt_nl"
162
163 dirname="s,/[^/]*$,,"
164 basename="s,^.*/,,"
165
166 # func_dirname file append nondir_replacement
167 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
168 # otherwise set result to NONDIR_REPLACEMENT.
169 func_dirname ()
170 {
171 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
172 if test "X$func_dirname_result" = "X${1}"; then
173 func_dirname_result="${3}"
174 else
175 func_dirname_result="$func_dirname_result${2}"
176 fi
177 } # func_dirname may be replaced by extended shell implementation
178
179
180 # func_basename file
181 func_basename ()
182 {
183 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
184 } # func_basename may be replaced by extended shell implementation
185
186
187 # func_dirname_and_basename file append nondir_replacement
188 # perform func_basename and func_dirname in a single function
189 # call:
190 # dirname: Compute the dirname of FILE. If nonempty,
191 # add APPEND to the result, otherwise set result
192 # to NONDIR_REPLACEMENT.
193 # value returned in "$func_dirname_result"
194 # basename: Compute filename of FILE.
195 # value retuned in "$func_basename_result"
196 # Implementation must be kept synchronized with func_dirname
197 # and func_basename. For efficiency, we do not delegate to
198 # those functions but instead duplicate the functionality here.
199 func_dirname_and_basename ()
200 {
201 # Extract subdirectory from the argument.
202 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
203 if test "X$func_dirname_result" = "X${1}"; then
204 func_dirname_result="${3}"
205 else
206 func_dirname_result="$func_dirname_result${2}"
207 fi
208 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
209 } # func_dirname_and_basename may be replaced by extended shell implementation
210
211
212 # func_stripname prefix suffix name
213 # strip PREFIX and SUFFIX off of NAME.
214 # PREFIX and SUFFIX must not contain globbing or regex special
215 # characters, hashes, percent signs, but SUFFIX may contain a leading
216 # dot (in which case that matches only a dot).
217 # func_strip_suffix prefix name
218 func_stripname ()
219 {
220 case ${2} in
221 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
222 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
223 esac
224 } # func_stripname may be replaced by extended shell implementation
225
226
227 # These SED scripts presuppose an absolute path with a trailing slash.
228 pathcar='s,^/\([^/]*\).*$,\1,'
229 pathcdr='s,^/[^/]*,,'
230 removedotparts=':dotsl
231 s@/\./@/@g
232 t dotsl
233 s,/\.$,/,'
234 collapseslashes='s@/\{1,\}@/@g'
235 finalslash='s,/*$,/,'
236
237 # func_normal_abspath PATH
238 # Remove doubled-up and trailing slashes, "." path components,
239 # and cancel out any ".." path components in PATH after making
240 # it an absolute path.
241 # value returned in "$func_normal_abspath_result"
242 func_normal_abspath ()
243 {
244 # Start from root dir and reassemble the path.
245 func_normal_abspath_result=
246 func_normal_abspath_tpath=$1
247 func_normal_abspath_altnamespace=
248 case $func_normal_abspath_tpath in
249 "")
250 # Empty path, that just means $cwd.
251 func_stripname '' '/' "`pwd`"
252 func_normal_abspath_result=$func_stripname_result
253 return
254 ;;
255 # The next three entries are used to spot a run of precisely
256 # two leading slashes without using negated character classes;
257 # we take advantage of case's first-match behaviour.
258 ///*)
259 # Unusual form of absolute path, do nothing.
260 ;;
261 //*)
262 # Not necessarily an ordinary path; POSIX reserves leading '//'
263 # and for example Cygwin uses it to access remote file shares
264 # over CIFS/SMB, so we conserve a leading double slash if found.
265 func_normal_abspath_altnamespace=/
266 ;;
267 /*)
268 # Absolute path, do nothing.
269 ;;
270 *)
271 # Relative path, prepend $cwd.
272 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
273 ;;
274 esac
275 # Cancel out all the simple stuff to save iterations. We also want
276 # the path to end with a slash for ease of parsing, so make sure
277 # there is one (and only one) here.
278 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
279 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
280 while :; do
281 # Processed it all yet?
282 if test "$func_normal_abspath_tpath" = / ; then
283 # If we ascended to the root using ".." the result may be empty now.
284 if test -z "$func_normal_abspath_result" ; then
285 func_normal_abspath_result=/
286 fi
287 break
288 fi
289 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
290 -e "$pathcar"`
291 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
292 -e "$pathcdr"`
293 # Figure out what to do with it
294 case $func_normal_abspath_tcomponent in
295 "")
296 # Trailing empty path component, ignore it.
297 ;;
298 ..)
299 # Parent dir; strip last assembled component from result.
300 func_dirname "$func_normal_abspath_result"
301 func_normal_abspath_result=$func_dirname_result
302 ;;
303 *)
304 # Actual path component, append it.
305 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
306 ;;
307 esac
308 done
309 # Restore leading double-slash if one was found on entry.
310 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
311 }
312
313 # func_relative_path SRCDIR DSTDIR
314 # generates a relative path from SRCDIR to DSTDIR, with a trailing
315 # slash if non-empty, suitable for immediately appending a filename
316 # without needing to append a separator.
317 # value returned in "$func_relative_path_result"
318 func_relative_path ()
319 {
320 func_relative_path_result=
321 func_normal_abspath "$1"
322 func_relative_path_tlibdir=$func_normal_abspath_result
323 func_normal_abspath "$2"
324 func_relative_path_tbindir=$func_normal_abspath_result
325
326 # Ascend the tree starting from libdir
327 while :; do
328 # check if we have found a prefix of bindir
329 case $func_relative_path_tbindir in
330 $func_relative_path_tlibdir)
331 # found an exact match
332 func_relative_path_tcancelled=
333 break
334 ;;
335 $func_relative_path_tlibdir*)
336 # found a matching prefix
337 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
338 func_relative_path_tcancelled=$func_stripname_result
339 if test -z "$func_relative_path_result"; then
340 func_relative_path_result=.
341 fi
342 break
343 ;;
344 *)
345 func_dirname $func_relative_path_tlibdir
346 func_relative_path_tlibdir=${func_dirname_result}
347 if test "x$func_relative_path_tlibdir" = x ; then
348 # Have to descend all the way to the root!
349 func_relative_path_result=../$func_relative_path_result
350 func_relative_path_tcancelled=$func_relative_path_tbindir
351 break
352 fi
353 func_relative_path_result=../$func_relative_path_result
354 ;;
355 esac
356 done
357
358 # Now calculate path; take care to avoid doubling-up slashes.
359 func_stripname '' '/' "$func_relative_path_result"
360 func_relative_path_result=$func_stripname_result
361 func_stripname '/' '/' "$func_relative_path_tcancelled"
362 if test "x$func_stripname_result" != x ; then
363 func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
364 fi
365
366 # Normalisation. If bindir is libdir, return empty string,
367 # else relative path ending with a slash; either way, target
368 # file name can be directly appended.
369 if test ! -z "$func_relative_path_result"; then
370 func_stripname './' '' "$func_relative_path_result/"
371 func_relative_path_result=$func_stripname_result
372 fi
373 }
374
375 # The name of this program:
376 func_dirname_and_basename "$progpath"
377 progname=$func_basename_result
378
379 # Make sure we have an absolute path for reexecution:
380 case $progpath in
381 [\\/]*|[A-Za-z]:\\*) ;;
382 *[\\/]*)
383 progdir=$func_dirname_result
384 progdir=`cd "$progdir" && pwd`
385 progpath="$progdir/$progname"
386 ;;
387 *)
388 save_IFS="$IFS"
389 IFS=:
390 for progdir in $PATH; do
391 IFS="$save_IFS"
392 test -x "$progdir/$progname" && break
393 done
394 IFS="$save_IFS"
395 test -n "$progdir" || progdir=`pwd`
396 progpath="$progdir/$progname"
397 ;;
398 esac
399
400 # Sed substitution that helps us do robust quoting. It backslashifies
401 # metacharacters that are still active within double-quoted strings.
402 Xsed="${SED}"' -e 1s/^X//'
403 sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
404
405 # Same as above, but do not quote variable references.
406 double_quote_subst='s/\(["`\\]\)/\\\1/g'
407
408 # Sed substitution that turns a string into a regex matching for the
409 # string literally.
410 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
411
412 # Sed substitution that converts a w32 file name or path
413 # which contains forward slashes, into one that contains
414 # (escaped) backslashes. A very naive implementation.
415 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
416
417 # Re-`\' parameter expansions in output of double_quote_subst that were
418 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
419 # in input to double_quote_subst, that '$' was protected from expansion.
420 # Since each input `\' is now two `\'s, look for any number of runs of
421 # four `\'s followed by two `\'s and then a '$'. `\' that '$'.
422 bs='\\'
423 bs2='\\\\'
424 bs4='\\\\\\\\'
425 dollar='\$'
426 sed_double_backslash="\
427 s/$bs4/&\\
428 /g
429 s/^$bs2$dollar/$bs&/
430 s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
431 s/\n//g"
432
433 # Standard options:
434 opt_dry_run=false
435 opt_help=false
436 opt_quiet=false
437 opt_verbose=false
438 opt_warning=:
439
440 # func_echo arg...
441 # Echo program name prefixed message, along with the current mode
442 # name if it has been set yet.
443 func_echo ()
444 {
445 $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
446 }
447
448 # func_verbose arg...
449 # Echo program name prefixed message in verbose mode only.
450 func_verbose ()
451 {
452 $opt_verbose && func_echo ${1+"$@"}
453
454 # A bug in bash halts the script if the last line of a function
455 # fails when set -e is in force, so we need another command to
456 # work around that:
457 :
458 }
459
460 # func_echo_all arg...
461 # Invoke $ECHO with all args, space-separated.
462 func_echo_all ()
463 {
464 $ECHO "$*"
465 }
466
467 # func_error arg...
468 # Echo program name prefixed message to standard error.
469 func_error ()
470 {
471 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
472 }
473
474 # func_warning arg...
475 # Echo program name prefixed warning message to standard error.
476 func_warning ()
477 {
478 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
479
480 # bash bug again:
481 :
482 }
483
484 # func_fatal_error arg...
485 # Echo program name prefixed message to standard error, and exit.
486 func_fatal_error ()
487 {
488 func_error ${1+"$@"}
489 exit $EXIT_FAILURE
490 }
491
492 # func_fatal_help arg...
493 # Echo program name prefixed message to standard error, followed by
494 # a help hint, and exit.
495 func_fatal_help ()
496 {
497 func_error ${1+"$@"}
498 func_fatal_error "$help"
499 }
500 help="Try \`$progname --help' for more information." ## default
501
502
503 # func_grep expression filename
504 # Check whether EXPRESSION matches any line of FILENAME, without output.
505 func_grep ()
506 {
507 $GREP "$1" "$2" >/dev/null 2>&1
508 }
509
510
511 # func_mkdir_p directory-path
512 # Make sure the entire path to DIRECTORY-PATH is available.
513 func_mkdir_p ()
514 {
515 my_directory_path="$1"
516 my_dir_list=
517
518 if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
519
520 # Protect directory names starting with `-'
521 case $my_directory_path in
522 -*) my_directory_path="./$my_directory_path" ;;
523 esac
524
525 # While some portion of DIR does not yet exist...
526 while test ! -d "$my_directory_path"; do
527 # ...make a list in topmost first order. Use a colon delimited
528 # list incase some portion of path contains whitespace.
529 my_dir_list="$my_directory_path:$my_dir_list"
530
531 # If the last portion added has no slash in it, the list is done
532 case $my_directory_path in */*) ;; *) break ;; esac
533
534 # ...otherwise throw away the child directory and loop
535 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
536 done
537 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
538
539 save_mkdir_p_IFS="$IFS"; IFS=':'
540 for my_dir in $my_dir_list; do
541 IFS="$save_mkdir_p_IFS"
542 # mkdir can fail with a `File exist' error if two processes
543 # try to create one of the directories concurrently. Don't
544 # stop in that case!
545 $MKDIR "$my_dir" 2>/dev/null || :
546 done
547 IFS="$save_mkdir_p_IFS"
548
549 # Bail out if we (or some other process) failed to create a directory.
550 test -d "$my_directory_path" || \
551 func_fatal_error "Failed to create \`$1'"
552 fi
553 }
554
555
556 # func_mktempdir [string]
557 # Make a temporary directory that won't clash with other running
558 # libtool processes, and avoids race conditions if possible. If
559 # given, STRING is the basename for that directory.
560 func_mktempdir ()
561 {
562 my_template="${TMPDIR-/tmp}/${1-$progname}"
563
564 if test "$opt_dry_run" = ":"; then
565 # Return a directory name, but don't create it in dry-run mode
566 my_tmpdir="${my_template}-$$"
567 else
568
569 # If mktemp works, use that first and foremost
570 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
571
572 if test ! -d "$my_tmpdir"; then
573 # Failing that, at least try and use $RANDOM to avoid a race
574 my_tmpdir="${my_template}-${RANDOM-0}$$"
575
576 save_mktempdir_umask=`umask`
577 umask 0077
578 $MKDIR "$my_tmpdir"
579 umask $save_mktempdir_umask
580 fi
581
582 # If we're not in dry-run mode, bomb out on failure
583 test -d "$my_tmpdir" || \
584 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
585 fi
586
587 $ECHO "$my_tmpdir"
588 }
589
590
591 # func_quote_for_eval arg
592 # Aesthetically quote ARG to be evaled later.
593 # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
594 # is double-quoted, suitable for a subsequent eval, whereas
595 # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
596 # which are still active within double quotes backslashified.
597 func_quote_for_eval ()
598 {
599 case $1 in
600 *[\\\`\"\$]*)
601 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
602 *)
603 func_quote_for_eval_unquoted_result="$1" ;;
604 esac
605
606 case $func_quote_for_eval_unquoted_result in
607 # Double-quote args containing shell metacharacters to delay
608 # word splitting, command substitution and and variable
609 # expansion for a subsequent eval.
610 # Many Bourne shells cannot handle close brackets correctly
611 # in scan sets, so we specify it separately.
612 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
613 func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
614 ;;
615 *)
616 func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
617 esac
618 }
619
620
621 # func_quote_for_expand arg
622 # Aesthetically quote ARG to be evaled later; same as above,
623 # but do not quote variable references.
624 func_quote_for_expand ()
625 {
626 case $1 in
627 *[\\\`\"]*)
628 my_arg=`$ECHO "$1" | $SED \
629 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
630 *)
631 my_arg="$1" ;;
632 esac
633
634 case $my_arg in
635 # Double-quote args containing shell metacharacters to delay
636 # word splitting and command substitution for a subsequent eval.
637 # Many Bourne shells cannot handle close brackets correctly
638 # in scan sets, so we specify it separately.
639 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
640 my_arg="\"$my_arg\""
641 ;;
642 esac
643
644 func_quote_for_expand_result="$my_arg"
645 }
646
647
648 # func_show_eval cmd [fail_exp]
649 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
650 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
651 # is given, then evaluate it.
652 func_show_eval ()
653 {
654 my_cmd="$1"
655 my_fail_exp="${2-:}"
656
657 ${opt_silent-false} || {
658 func_quote_for_expand "$my_cmd"
659 eval "func_echo $func_quote_for_expand_result"
660 }
661
662 if ${opt_dry_run-false}; then :; else
663 eval "$my_cmd"
664 my_status=$?
665 if test "$my_status" -eq 0; then :; else
666 eval "(exit $my_status); $my_fail_exp"
667 fi
668 fi
669 }
670
671
672 # func_show_eval_locale cmd [fail_exp]
673 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
674 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
675 # is given, then evaluate it. Use the saved locale for evaluation.
676 func_show_eval_locale ()
677 {
678 my_cmd="$1"
679 my_fail_exp="${2-:}"
680
681 ${opt_silent-false} || {
682 func_quote_for_expand "$my_cmd"
683 eval "func_echo $func_quote_for_expand_result"
684 }
685
686 if ${opt_dry_run-false}; then :; else
687 eval "$lt_user_locale
688 $my_cmd"
689 my_status=$?
690 eval "$lt_safe_locale"
691 if test "$my_status" -eq 0; then :; else
692 eval "(exit $my_status); $my_fail_exp"
693 fi
694 fi
695 }
696
697 # func_tr_sh
698 # Turn $1 into a string suitable for a shell variable name.
699 # Result is stored in $func_tr_sh_result. All characters
700 # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
701 # if $1 begins with a digit, a '_' is prepended as well.
702 func_tr_sh ()
703 {
704 case $1 in
705 [0-9]* | *[!a-zA-Z0-9_]*)
706 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
707 ;;
708 * )
709 func_tr_sh_result=$1
710 ;;
711 esac
712 }
713
714
715 # func_version
716 # Echo version message to standard output and exit.
717 func_version ()
718 {
719 $opt_debug
720
721 $SED -n '/(C)/!b go
722 :more
723 /\./!{
724 N
725 s/\n# / /
726 b more
727 }
728 :go
729 /^# '$PROGRAM' (GNU /,/# warranty; / {
730 s/^# //
731 s/^# *$//
732 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
733 p
734 }' < "$progpath"
735 exit $?
736 }
737
738 # func_usage
739 # Echo short help message to standard output and exit.
740 func_usage ()
741 {
742 $opt_debug
743
744 $SED -n '/^# Usage:/,/^# *.*--help/ {
745 s/^# //
746 s/^# *$//
747 s/\$progname/'$progname'/
748 p
749 }' < "$progpath"
750 echo
751 $ECHO "run \`$progname --help | more' for full usage"
752 exit $?
753 }
754
755 # func_help [NOEXIT]
756 # Echo long help message to standard output and exit,
757 # unless 'noexit' is passed as argument.
758 func_help ()
759 {
760 $opt_debug
761
762 $SED -n '/^# Usage:/,/# Report bugs to/ {
763 :print
764 s/^# //
765 s/^# *$//
766 s*\$progname*'$progname'*
767 s*\$host*'"$host"'*
768 s*\$SHELL*'"$SHELL"'*
769 s*\$LTCC*'"$LTCC"'*
770 s*\$LTCFLAGS*'"$LTCFLAGS"'*
771 s*\$LD*'"$LD"'*
772 s/\$with_gnu_ld/'"$with_gnu_ld"'/
773 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
774 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
775 p
776 d
777 }
778 /^# .* home page:/b print
779 /^# General help using/b print
780 ' < "$progpath"
781 ret=$?
782 if test -z "$1"; then
783 exit $ret
784 fi
785 }
786
787 # func_missing_arg argname
788 # Echo program name prefixed message to standard error and set global
789 # exit_cmd.
790 func_missing_arg ()
791 {
792 $opt_debug
793
794 func_error "missing argument for $1."
795 exit_cmd=exit
796 }
797
798
799 # func_split_short_opt shortopt
800 # Set func_split_short_opt_name and func_split_short_opt_arg shell
801 # variables after splitting SHORTOPT after the 2nd character.
802 func_split_short_opt ()
803 {
804 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
805 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
806
807 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
808 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
809 } # func_split_short_opt may be replaced by extended shell implementation
810
811
812 # func_split_long_opt longopt
813 # Set func_split_long_opt_name and func_split_long_opt_arg shell
814 # variables after splitting LONGOPT at the `=' sign.
815 func_split_long_opt ()
816 {
817 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
818 my_sed_long_arg='1s/^--[^=]*=//'
819
820 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
821 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
822 } # func_split_long_opt may be replaced by extended shell implementation
823
824 exit_cmd=:
825
826
827
828
829
830 magic="%%%MAGIC variable%%%"
831 magic_exe="%%%MAGIC EXE variable%%%"
832
833 # Global variables.
834 nonopt=
835 preserve_args=
836 lo2o="s/\\.lo\$/.${objext}/"
837 o2lo="s/\\.${objext}\$/.lo/"
838 extracted_archives=
839 extracted_serial=0
840
841 # If this variable is set in any of the actions, the command in it
842 # will be execed at the end. This prevents here-documents from being
843 # left over by shells.
844 exec_cmd=
845
846 # func_append var value
847 # Append VALUE to the end of shell variable VAR.
848 func_append ()
849 {
850 eval "${1}=\$${1}\${2}"
851 } # func_append may be replaced by extended shell implementation
852
853 # func_append_quoted var value
854 # Quote VALUE and append to the end of shell variable VAR, separated
855 # by a space.
856 func_append_quoted ()
857 {
858 func_quote_for_eval "${2}"
859 eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
860 } # func_append_quoted may be replaced by extended shell implementation
861
862
863 # func_arith arithmetic-term...
864 func_arith ()
865 {
866 func_arith_result=`expr "${@}"`
867 } # func_arith may be replaced by extended shell implementation
868
869
870 # func_len string
871 # STRING may not start with a hyphen.
872 func_len ()
873 {
874 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
875 } # func_len may be replaced by extended shell implementation
876
877
878 # func_lo2o object
879 func_lo2o ()
880 {
881 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
882 } # func_lo2o may be replaced by extended shell implementation
883
884
885 # func_xform libobj-or-source
886 func_xform ()
887 {
888 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
889 } # func_xform may be replaced by extended shell implementation
890
891
892 # func_fatal_configuration arg...
893 # Echo program name prefixed message to standard error, followed by
894 # a configuration failure hint, and exit.
895 func_fatal_configuration ()
896 {
897 func_error ${1+"$@"}
898 func_error "See the $PACKAGE documentation for more information."
899 func_fatal_error "Fatal configuration error."
900 }
901
902
903 # func_config
904 # Display the configuration for all the tags in this script.
905 func_config ()
906 {
907 re_begincf='^# ### BEGIN LIBTOOL'
908 re_endcf='^# ### END LIBTOOL'
909
910 # Default configuration.
911 $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
912
913 # Now print the configurations for the tags.
914 for tagname in $taglist; do
915 $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
916 done
917
918 exit $?
919 }
920
921 # func_features
922 # Display the features supported by this script.
923 func_features ()
924 {
925 echo "host: $host"
926 if test "$build_libtool_libs" = yes; then
927 echo "enable shared libraries"
928 else
929 echo "disable shared libraries"
930 fi
931 if test "$build_old_libs" = yes; then
932 echo "enable static libraries"
933 else
934 echo "disable static libraries"
935 fi
936
937 exit $?
938 }
939
940 # func_enable_tag tagname
941 # Verify that TAGNAME is valid, and either flag an error and exit, or
942 # enable the TAGNAME tag. We also add TAGNAME to the global $taglist
943 # variable here.
944 func_enable_tag ()
945 {
946 # Global variable:
947 tagname="$1"
948
949 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
950 re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
951 sed_extractcf="/$re_begincf/,/$re_endcf/p"
952
953 # Validate tagname.
954 case $tagname in
955 *[!-_A-Za-z0-9,/]*)
956 func_fatal_error "invalid tag name: $tagname"
957 ;;
958 esac
959
960 # Don't test for the "default" C tag, as we know it's
961 # there but not specially marked.
962 case $tagname in
963 CC) ;;
964 *)
965 if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
966 taglist="$taglist $tagname"
967
968 # Evaluate the configuration. Be careful to quote the path
969 # and the sed script, to avoid splitting on whitespace, but
970 # also don't use non-portable quotes within backquotes within
971 # quotes we have to do it in 2 steps:
972 extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
973 eval "$extractedcf"
974 else
975 func_error "ignoring unknown tag $tagname"
976 fi
977 ;;
978 esac
979 }
980
981 # func_check_version_match
982 # Ensure that we are using m4 macros, and libtool script from the same
983 # release of libtool.
984 func_check_version_match ()
985 {
986 if test "$package_revision" != "$macro_revision"; then
987 if test "$VERSION" != "$macro_version"; then
988 if test -z "$macro_version"; then
989 cat >&2 <<_LT_EOF
990 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
991 $progname: definition of this LT_INIT comes from an older release.
992 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
993 $progname: and run autoconf again.
994 _LT_EOF
995 else
996 cat >&2 <<_LT_EOF
997 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
998 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
999 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
1000 $progname: and run autoconf again.
1001 _LT_EOF
1002 fi
1003 else
1004 cat >&2 <<_LT_EOF
1005 $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1006 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
1007 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
1008 $progname: of $PACKAGE $VERSION and run autoconf again.
1009 _LT_EOF
1010 fi
1011
1012 exit $EXIT_MISMATCH
1013 fi
1014 }
1015
1016
1017 # Shorthand for --mode=foo, only valid as the first argument
1018 case $1 in
1019 clean|clea|cle|cl)
1020 shift; set dummy --mode clean ${1+"$@"}; shift
1021 ;;
1022 compile|compil|compi|comp|com|co|c)
1023 shift; set dummy --mode compile ${1+"$@"}; shift
1024 ;;
1025 execute|execut|execu|exec|exe|ex|e)
1026 shift; set dummy --mode execute ${1+"$@"}; shift
1027 ;;
1028 finish|finis|fini|fin|fi|f)
1029 shift; set dummy --mode finish ${1+"$@"}; shift
1030 ;;
1031 install|instal|insta|inst|ins|in|i)
1032 shift; set dummy --mode install ${1+"$@"}; shift
1033 ;;
1034 link|lin|li|l)
1035 shift; set dummy --mode link ${1+"$@"}; shift
1036 ;;
1037 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1038 shift; set dummy --mode uninstall ${1+"$@"}; shift
1039 ;;
1040 esac
1041
1042
1043
1044 # Option defaults:
1045 opt_debug=:
1046 opt_dry_run=false
1047 opt_config=false
1048 opt_preserve_dup_deps=false
1049 opt_features=false
1050 opt_finish=false
1051 opt_help=false
1052 opt_help_all=false
1053 opt_silent=:
1054 opt_verbose=:
1055 opt_silent=false
1056 opt_verbose=false
1057
1058
1059 # Parse options once, thoroughly. This comes as soon as possible in the
1060 # script to make things like `--version' happen as quickly as we can.
1061 {
1062 # this just eases exit handling
1063 while test $# -gt 0; do
1064 opt="$1"
1065 shift
1066 case $opt in
1067 --debug|-x) opt_debug='set -x'
1068 func_echo "enabling shell trace mode"
1069 $opt_debug
1070 ;;
1071 --dry-run|--dryrun|-n)
1072 opt_dry_run=:
1073 ;;
1074 --config)
1075 opt_config=:
1076 func_config
1077 ;;
1078 --dlopen|-dlopen)
1079 optarg="$1"
1080 opt_dlopen="${opt_dlopen+$opt_dlopen
1081 }$optarg"
1082 shift
1083 ;;
1084 --preserve-dup-deps)
1085 opt_preserve_dup_deps=:
1086 ;;
1087 --features)
1088 opt_features=:
1089 func_features
1090 ;;
1091 --finish)
1092 opt_finish=:
1093 set dummy --mode finish ${1+"$@"}; shift
1094 ;;
1095 --help)
1096 opt_help=:
1097 ;;
1098 --help-all)
1099 opt_help_all=:
1100 opt_help=': help-all'
1101 ;;
1102 --mode)
1103 test $# = 0 && func_missing_arg $opt && break
1104 optarg="$1"
1105 opt_mode="$optarg"
1106 case $optarg in
1107 # Valid mode arguments:
1108 clean|compile|execute|finish|install|link|relink|uninstall) ;;
1109
1110 # Catch anything else as an error
1111 *) func_error "invalid argument for $opt"
1112 exit_cmd=exit
1113 break
1114 ;;
1115 esac
1116 shift
1117 ;;
1118 --no-silent|--no-quiet)
1119 opt_silent=false
1120 func_append preserve_args " $opt"
1121 ;;
1122 --no-verbose)
1123 opt_verbose=false
1124 func_append preserve_args " $opt"
1125 ;;
1126 --silent|--quiet)
1127 opt_silent=:
1128 func_append preserve_args " $opt"
1129 opt_verbose=false
1130 ;;
1131 --verbose|-v)
1132 opt_verbose=:
1133 func_append preserve_args " $opt"
1134 opt_silent=false
1135 ;;
1136 --tag)
1137 test $# = 0 && func_missing_arg $opt && break
1138 optarg="$1"
1139 opt_tag="$optarg"
1140 func_append preserve_args " $opt $optarg"
1141 func_enable_tag "$optarg"
1142 shift
1143 ;;
1144
1145 -\?|-h) func_usage ;;
1146 --help) func_help ;;
1147 --version) func_version ;;
1148
1149 # Separate optargs to long options:
1150 --*=*)
1151 func_split_long_opt "$opt"
1152 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
1153 shift
1154 ;;
1155
1156 # Separate non-argument short options:
1157 -\?*|-h*|-n*|-v*)
1158 func_split_short_opt "$opt"
1159 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
1160 shift
1161 ;;
1162
1163 --) break ;;
1164 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1165 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
1166 esac
1167 done
1168
1169 # Validate options:
1170
1171 # save first non-option argument
1172 if test "$#" -gt 0; then
1173 nonopt="$opt"
1174 shift
1175 fi
1176
1177 # preserve --debug
1178 test "$opt_debug" = : || func_append preserve_args " --debug"
1179
1180 case $host in
1181 *cygwin* | *mingw* | *pw32* | *cegcc*)
1182 # don't eliminate duplications in $postdeps and $predeps
1183 opt_duplicate_compiler_generated_deps=:
1184 ;;
1185 *)
1186 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
1187 ;;
1188 esac
1189
1190 $opt_help || {
1191 # Sanity checks first:
1192 func_check_version_match
1193
1194 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1195 func_fatal_configuration "not configured to build any kind of library"
1196 fi
1197
1198 # Darwin sucks
1199 eval std_shrext=\"$shrext_cmds\"
1200
1201 # Only execute mode is allowed to have -dlopen flags.
1202 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
1203 func_error "unrecognized option \`-dlopen'"
1204 $ECHO "$help" 1>&2
1205 exit $EXIT_FAILURE
1206 fi
1207
1208 # Change the help message to a mode-specific one.
1209 generic_help="$help"
1210 help="Try \`$progname --help --mode=$opt_mode' for more information."
1211 }
1212
1213
1214 # Bail if the options were screwed
1215 $exit_cmd $EXIT_FAILURE
1216 }
1217
1218
1219
1220
1221 ## ----------- ##
1222 ## Main. ##
1223 ## ----------- ##
1224
1225 # func_lalib_p file
1226 # True iff FILE is a libtool `.la' library or `.lo' object file.
1227 # This function is only a basic sanity check; it will hardly flush out
1228 # determined imposters.
1229 func_lalib_p ()
1230 {
1231 test -f "$1" &&
1232 $SED -e 4q "$1" 2>/dev/null \
1233 | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
1234 }
1235
1236 # func_lalib_unsafe_p file
1237 # True iff FILE is a libtool `.la' library or `.lo' object file.
1238 # This function implements the same check as func_lalib_p without
1239 # resorting to external programs. To this end, it redirects stdin and
1240 # closes it afterwards, without saving the original file descriptor.
1241 # As a safety measure, use it only where a negative result would be
1242 # fatal anyway. Works if `file' does not exist.
1243 func_lalib_unsafe_p ()
1244 {
1245 lalib_p=no
1246 if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
1247 for lalib_p_l in 1 2 3 4
1248 do
1249 read lalib_p_line
1250 case "$lalib_p_line" in
1251 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
1252 esac
1253 done
1254 exec 0<&5 5<&-
1255 fi
1256 test "$lalib_p" = yes
1257 }
1258
1259 # func_ltwrapper_script_p file
1260 # True iff FILE is a libtool wrapper script
1261 # This function is only a basic sanity check; it will hardly flush out
1262 # determined imposters.
1263 func_ltwrapper_script_p ()
1264 {
1265 func_lalib_p "$1"
1266 }
1267
1268 # func_ltwrapper_executable_p file
1269 # True iff FILE is a libtool wrapper executable
1270 # This function is only a basic sanity check; it will hardly flush out
1271 # determined imposters.
1272 func_ltwrapper_executable_p ()
1273 {
1274 func_ltwrapper_exec_suffix=
1275 case $1 in
1276 *.exe) ;;
1277 *) func_ltwrapper_exec_suffix=.exe ;;
1278 esac
1279 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
1280 }
1281
1282 # func_ltwrapper_scriptname file
1283 # Assumes file is an ltwrapper_executable
1284 # uses $file to determine the appropriate filename for a
1285 # temporary ltwrapper_script.
1286 func_ltwrapper_scriptname ()
1287 {
1288 func_dirname_and_basename "$1" "" "."
1289 func_stripname '' '.exe' "$func_basename_result"
1290 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
1291 }
1292
1293 # func_ltwrapper_p file
1294 # True iff FILE is a libtool wrapper script or wrapper executable
1295 # This function is only a basic sanity check; it will hardly flush out
1296 # determined imposters.
1297 func_ltwrapper_p ()
1298 {
1299 func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
1300 }
1301
1302
1303 # func_execute_cmds commands fail_cmd
1304 # Execute tilde-delimited COMMANDS.
1305 # If FAIL_CMD is given, eval that upon failure.
1306 # FAIL_CMD may read-access the current command in variable CMD!
1307 func_execute_cmds ()
1308 {
1309 $opt_debug
1310 save_ifs=$IFS; IFS='~'
1311 for cmd in $1; do
1312 IFS=$save_ifs
1313 eval cmd=\"$cmd\"
1314 func_show_eval "$cmd" "${2-:}"
1315 done
1316 IFS=$save_ifs
1317 }
1318
1319
1320 # func_source file
1321 # Source FILE, adding directory component if necessary.
1322 # Note that it is not necessary on cygwin/mingw to append a dot to
1323 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
1324 # behavior happens only for exec(3), not for open(2)! Also, sourcing
1325 # `FILE.' does not work on cygwin managed mounts.
1326 func_source ()
1327 {
1328 $opt_debug
1329 case $1 in
1330 */* | *\\*) . "$1" ;;
1331 *) . "./$1" ;;
1332 esac
1333 }
1334
1335
1336 # func_resolve_sysroot PATH
1337 # Replace a leading = in PATH with a sysroot. Store the result into
1338 # func_resolve_sysroot_result
1339 func_resolve_sysroot ()
1340 {
1341 func_resolve_sysroot_result=$1
1342 case $func_resolve_sysroot_result in
1343 =*)
1344 func_stripname '=' '' "$func_resolve_sysroot_result"
1345 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
1346 ;;
1347 esac
1348 }
1349
1350 # func_replace_sysroot PATH
1351 # If PATH begins with the sysroot, replace it with = and
1352 # store the result into func_replace_sysroot_result.
1353 func_replace_sysroot ()
1354 {
1355 case "$lt_sysroot:$1" in
1356 ?*:"$lt_sysroot"*)
1357 func_stripname "$lt_sysroot" '' "$1"
1358 func_replace_sysroot_result="=$func_stripname_result"
1359 ;;
1360 *)
1361 # Including no sysroot.
1362 func_replace_sysroot_result=$1
1363 ;;
1364 esac
1365 }
1366
1367 # func_infer_tag arg
1368 # Infer tagged configuration to use if any are available and
1369 # if one wasn't chosen via the "--tag" command line option.
1370 # Only attempt this if the compiler in the base compile
1371 # command doesn't match the default compiler.
1372 # arg is usually of the form 'gcc ...'
1373 func_infer_tag ()
1374 {
1375 $opt_debug
1376 if test -n "$available_tags" && test -z "$tagname"; then
1377 CC_quoted=
1378 for arg in $CC; do
1379 func_append_quoted CC_quoted "$arg"
1380 done
1381 CC_expanded=`func_echo_all $CC`
1382 CC_quoted_expanded=`func_echo_all $CC_quoted`
1383 case $@ in
1384 # Blanks in the command may have been stripped by the calling shell,
1385 # but not from the CC environment variable when configure was run.
1386 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1387 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1388 # Blanks at the start of $base_compile will cause this to fail
1389 # if we don't check for them as well.
1390 *)
1391 for z in $available_tags; do
1392 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
1393 # Evaluate the configuration.
1394 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1395 CC_quoted=
1396 for arg in $CC; do
1397 # Double-quote args containing other shell metacharacters.
1398 func_append_quoted CC_quoted "$arg"
1399 done
1400 CC_expanded=`func_echo_all $CC`
1401 CC_quoted_expanded=`func_echo_all $CC_quoted`
1402 case "$@ " in
1403 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1404 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1405 # The compiler in the base compile command matches
1406 # the one in the tagged configuration.
1407 # Assume this is the tagged configuration we want.
1408 tagname=$z
1409 break
1410 ;;
1411 esac
1412 fi
1413 done
1414 # If $tagname still isn't set, then no tagged configuration
1415 # was found and let the user know that the "--tag" command
1416 # line option must be used.
1417 if test -z "$tagname"; then
1418 func_echo "unable to infer tagged configuration"
1419 func_fatal_error "specify a tag with \`--tag'"
1420 # else
1421 # func_verbose "using $tagname tagged configuration"
1422 fi
1423 ;;
1424 esac
1425 fi
1426 }
1427
1428
1429
1430 # func_write_libtool_object output_name pic_name nonpic_name
1431 # Create a libtool object file (analogous to a ".la" file),
1432 # but don't create it if we're doing a dry run.
1433 func_write_libtool_object ()
1434 {
1435 write_libobj=${1}
1436 if test "$build_libtool_libs" = yes; then
1437 write_lobj=\'${2}\'
1438 else
1439 write_lobj=none
1440 fi
1441
1442 if test "$build_old_libs" = yes; then
1443 write_oldobj=\'${3}\'
1444 else
1445 write_oldobj=none
1446 fi
1447
1448 $opt_dry_run || {
1449 cat >${write_libobj}T <<EOF
1450 # $write_libobj - a libtool object file
1451 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1452 #
1453 # Please DO NOT delete this file!
1454 # It is necessary for linking the library.
1455
1456 # Name of the PIC object.
1457 pic_object=$write_lobj
1458
1459 # Name of the non-PIC object
1460 non_pic_object=$write_oldobj
1461
1462 EOF
1463 $MV "${write_libobj}T" "${write_libobj}"
1464 }
1465 }
1466
1467
1468 ##################################################
1469 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
1470 ##################################################
1471
1472 # func_convert_core_file_wine_to_w32 ARG
1473 # Helper function used by file name conversion functions when $build is *nix,
1474 # and $host is mingw, cygwin, or some other w32 environment. Relies on a
1475 # correctly configured wine environment available, with the winepath program
1476 # in $build's $PATH.
1477 #
1478 # ARG is the $build file name to be converted to w32 format.
1479 # Result is available in $func_convert_core_file_wine_to_w32_result, and will
1480 # be empty on error (or when ARG is empty)
1481 func_convert_core_file_wine_to_w32 ()
1482 {
1483 $opt_debug
1484 func_convert_core_file_wine_to_w32_result="$1"
1485 if test -n "$1"; then
1486 # Unfortunately, winepath does not exit with a non-zero error code, so we
1487 # are forced to check the contents of stdout. On the other hand, if the
1488 # command is not found, the shell will set an exit code of 127 and print
1489 # *an error message* to stdout. So we must check for both error code of
1490 # zero AND non-empty stdout, which explains the odd construction:
1491 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
1492 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
1493 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
1494 $SED -e "$lt_sed_naive_backslashify"`
1495 else
1496 func_convert_core_file_wine_to_w32_result=
1497 fi
1498 fi
1499 }
1500 # end: func_convert_core_file_wine_to_w32
1501
1502
1503 # func_convert_core_path_wine_to_w32 ARG
1504 # Helper function used by path conversion functions when $build is *nix, and
1505 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
1506 # configured wine environment available, with the winepath program in $build's
1507 # $PATH. Assumes ARG has no leading or trailing path separator characters.
1508 #
1509 # ARG is path to be converted from $build format to win32.
1510 # Result is available in $func_convert_core_path_wine_to_w32_result.
1511 # Unconvertible file (directory) names in ARG are skipped; if no directory names
1512 # are convertible, then the result may be empty.
1513 func_convert_core_path_wine_to_w32 ()
1514 {
1515 $opt_debug
1516 # unfortunately, winepath doesn't convert paths, only file names
1517 func_convert_core_path_wine_to_w32_result=""
1518 if test -n "$1"; then
1519 oldIFS=$IFS
1520 IFS=:
1521 for func_convert_core_path_wine_to_w32_f in $1; do
1522 IFS=$oldIFS
1523 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
1524 if test -n "$func_convert_core_file_wine_to_w32_result" ; then
1525 if test -z "$func_convert_core_path_wine_to_w32_result"; then
1526 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
1527 else
1528 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
1529 fi
1530 fi
1531 done
1532 IFS=$oldIFS
1533 fi
1534 }
1535 # end: func_convert_core_path_wine_to_w32
1536
1537
1538 # func_cygpath ARGS...
1539 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
1540 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
1541 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
1542 # (2), returns the Cygwin file name or path in func_cygpath_result (input
1543 # file name or path is assumed to be in w32 format, as previously converted
1544 # from $build's *nix or MSYS format). In case (3), returns the w32 file name
1545 # or path in func_cygpath_result (input file name or path is assumed to be in
1546 # Cygwin format). Returns an empty string on error.
1547 #
1548 # ARGS are passed to cygpath, with the last one being the file name or path to
1549 # be converted.
1550 #
1551 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
1552 # environment variable; do not put it in $PATH.
1553 func_cygpath ()
1554 {
1555 $opt_debug
1556 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
1557 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
1558 if test "$?" -ne 0; then
1559 # on failure, ensure result is empty
1560 func_cygpath_result=
1561 fi
1562 else
1563 func_cygpath_result=
1564 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
1565 fi
1566 }
1567 #end: func_cygpath
1568
1569
1570 # func_convert_core_msys_to_w32 ARG
1571 # Convert file name or path ARG from MSYS format to w32 format. Return
1572 # result in func_convert_core_msys_to_w32_result.
1573 func_convert_core_msys_to_w32 ()
1574 {
1575 $opt_debug
1576 # awkward: cmd appends spaces to result
1577 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
1578 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
1579 }
1580 #end: func_convert_core_msys_to_w32
1581
1582
1583 # func_convert_file_check ARG1 ARG2
1584 # Verify that ARG1 (a file name in $build format) was converted to $host
1585 # format in ARG2. Otherwise, emit an error message, but continue (resetting
1586 # func_to_host_file_result to ARG1).
1587 func_convert_file_check ()
1588 {
1589 $opt_debug
1590 if test -z "$2" && test -n "$1" ; then
1591 func_error "Could not determine host file name corresponding to"
1592 func_error " \`$1'"
1593 func_error "Continuing, but uninstalled executables may not work."
1594 # Fallback:
1595 func_to_host_file_result="$1"
1596 fi
1597 }
1598 # end func_convert_file_check
1599
1600
1601 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
1602 # Verify that FROM_PATH (a path in $build format) was converted to $host
1603 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting
1604 # func_to_host_file_result to a simplistic fallback value (see below).
1605 func_convert_path_check ()
1606 {
1607 $opt_debug
1608 if test -z "$4" && test -n "$3"; then
1609 func_error "Could not determine the host path corresponding to"
1610 func_error " \`$3'"
1611 func_error "Continuing, but uninstalled executables may not work."
1612 # Fallback. This is a deliberately simplistic "conversion" and
1613 # should not be "improved". See libtool.info.
1614 if test "x$1" != "x$2"; then
1615 lt_replace_pathsep_chars="s|$1|$2|g"
1616 func_to_host_path_result=`echo "$3" |
1617 $SED -e "$lt_replace_pathsep_chars"`
1618 else
1619 func_to_host_path_result="$3"
1620 fi
1621 fi
1622 }
1623 # end func_convert_path_check
1624
1625
1626 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
1627 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
1628 # and appending REPL if ORIG matches BACKPAT.
1629 func_convert_path_front_back_pathsep ()
1630 {
1631 $opt_debug
1632 case $4 in
1633 $1 ) func_to_host_path_result="$3$func_to_host_path_result"
1634 ;;
1635 esac
1636 case $4 in
1637 $2 ) func_append func_to_host_path_result "$3"
1638 ;;
1639 esac
1640 }
1641 # end func_convert_path_front_back_pathsep
1642
1643
1644 ##################################################
1645 # $build to $host FILE NAME CONVERSION FUNCTIONS #
1646 ##################################################
1647 # invoked via `$to_host_file_cmd ARG'
1648 #
1649 # In each case, ARG is the path to be converted from $build to $host format.
1650 # Result will be available in $func_to_host_file_result.
1651
1652
1653 # func_to_host_file ARG
1654 # Converts the file name ARG from $build format to $host format. Return result
1655 # in func_to_host_file_result.
1656 func_to_host_file ()
1657 {
1658 $opt_debug
1659 $to_host_file_cmd "$1"
1660 }
1661 # end func_to_host_file
1662
1663
1664 # func_to_tool_file ARG LAZY
1665 # converts the file name ARG from $build format to toolchain format. Return
1666 # result in func_to_tool_file_result. If the conversion in use is listed
1667 # in (the comma separated) LAZY, no conversion takes place.
1668 func_to_tool_file ()
1669 {
1670 $opt_debug
1671 case ,$2, in
1672 *,"$to_tool_file_cmd",*)
1673 func_to_tool_file_result=$1
1674 ;;
1675 *)
1676 $to_tool_file_cmd "$1"
1677 func_to_tool_file_result=$func_to_host_file_result
1678 ;;
1679 esac
1680 }
1681 # end func_to_tool_file
1682
1683
1684 # func_convert_file_noop ARG
1685 # Copy ARG to func_to_host_file_result.
1686 func_convert_file_noop ()
1687 {
1688 func_to_host_file_result="$1"
1689 }
1690 # end func_convert_file_noop
1691
1692
1693 # func_convert_file_msys_to_w32 ARG
1694 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
1695 # conversion to w32 is not available inside the cwrapper. Returns result in
1696 # func_to_host_file_result.
1697 func_convert_file_msys_to_w32 ()
1698 {
1699 $opt_debug
1700 func_to_host_file_result="$1"
1701 if test -n "$1"; then
1702 func_convert_core_msys_to_w32 "$1"
1703 func_to_host_file_result="$func_convert_core_msys_to_w32_result"
1704 fi
1705 func_convert_file_check "$1" "$func_to_host_file_result"
1706 }
1707 # end func_convert_file_msys_to_w32
1708
1709
1710 # func_convert_file_cygwin_to_w32 ARG
1711 # Convert file name ARG from Cygwin to w32 format. Returns result in
1712 # func_to_host_file_result.
1713 func_convert_file_cygwin_to_w32 ()
1714 {
1715 $opt_debug
1716 func_to_host_file_result="$1"
1717 if test -n "$1"; then
1718 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
1719 # LT_CYGPATH in this case.
1720 func_to_host_file_result=`cygpath -m "$1"`
1721 fi
1722 func_convert_file_check "$1" "$func_to_host_file_result"
1723 }
1724 # end func_convert_file_cygwin_to_w32
1725
1726
1727 # func_convert_file_nix_to_w32 ARG
1728 # Convert file name ARG from *nix to w32 format. Requires a wine environment
1729 # and a working winepath. Returns result in func_to_host_file_result.
1730 func_convert_file_nix_to_w32 ()
1731 {
1732 $opt_debug
1733 func_to_host_file_result="$1"
1734 if test -n "$1"; then
1735 func_convert_core_file_wine_to_w32 "$1"
1736 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
1737 fi
1738 func_convert_file_check "$1" "$func_to_host_file_result"
1739 }
1740 # end func_convert_file_nix_to_w32
1741
1742
1743 # func_convert_file_msys_to_cygwin ARG
1744 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1745 # Returns result in func_to_host_file_result.
1746 func_convert_file_msys_to_cygwin ()
1747 {
1748 $opt_debug
1749 func_to_host_file_result="$1"
1750 if test -n "$1"; then
1751 func_convert_core_msys_to_w32 "$1"
1752 func_cygpath -u "$func_convert_core_msys_to_w32_result"
1753 func_to_host_file_result="$func_cygpath_result"
1754 fi
1755 func_convert_file_check "$1" "$func_to_host_file_result"
1756 }
1757 # end func_convert_file_msys_to_cygwin
1758
1759
1760 # func_convert_file_nix_to_cygwin ARG
1761 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
1762 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result
1763 # in func_to_host_file_result.
1764 func_convert_file_nix_to_cygwin ()
1765 {
1766 $opt_debug
1767 func_to_host_file_result="$1"
1768 if test -n "$1"; then
1769 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
1770 func_convert_core_file_wine_to_w32 "$1"
1771 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
1772 func_to_host_file_result="$func_cygpath_result"
1773 fi
1774 func_convert_file_check "$1" "$func_to_host_file_result"
1775 }
1776 # end func_convert_file_nix_to_cygwin
1777
1778
1779 #############################################
1780 # $build to $host PATH CONVERSION FUNCTIONS #
1781 #############################################
1782 # invoked via `$to_host_path_cmd ARG'
1783 #
1784 # In each case, ARG is the path to be converted from $build to $host format.
1785 # The result will be available in $func_to_host_path_result.
1786 #
1787 # Path separators are also converted from $build format to $host format. If
1788 # ARG begins or ends with a path separator character, it is preserved (but
1789 # converted to $host format) on output.
1790 #
1791 # All path conversion functions are named using the following convention:
1792 # file name conversion function : func_convert_file_X_to_Y ()
1793 # path conversion function : func_convert_path_X_to_Y ()
1794 # where, for any given $build/$host combination the 'X_to_Y' value is the
1795 # same. If conversion functions are added for new $build/$host combinations,
1796 # the two new functions must follow this pattern, or func_init_to_host_path_cmd
1797 # will break.
1798
1799
1800 # func_init_to_host_path_cmd
1801 # Ensures that function "pointer" variable $to_host_path_cmd is set to the
1802 # appropriate value, based on the value of $to_host_file_cmd.
1803 to_host_path_cmd=
1804 func_init_to_host_path_cmd ()
1805 {
1806 $opt_debug
1807 if test -z "$to_host_path_cmd"; then
1808 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
1809 to_host_path_cmd="func_convert_path_${func_stripname_result}"
1810 fi
1811 }
1812
1813
1814 # func_to_host_path ARG
1815 # Converts the path ARG from $build format to $host format. Return result
1816 # in func_to_host_path_result.
1817 func_to_host_path ()
1818 {
1819 $opt_debug
1820 func_init_to_host_path_cmd
1821 $to_host_path_cmd "$1"
1822 }
1823 # end func_to_host_path
1824
1825
1826 # func_convert_path_noop ARG
1827 # Copy ARG to func_to_host_path_result.
1828 func_convert_path_noop ()
1829 {
1830 func_to_host_path_result="$1"
1831 }
1832 # end func_convert_path_noop
1833
1834
1835 # func_convert_path_msys_to_w32 ARG
1836 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
1837 # conversion to w32 is not available inside the cwrapper. Returns result in
1838 # func_to_host_path_result.
1839 func_convert_path_msys_to_w32 ()
1840 {
1841 $opt_debug
1842 func_to_host_path_result="$1"
1843 if test -n "$1"; then
1844 # Remove leading and trailing path separator characters from ARG. MSYS
1845 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
1846 # and winepath ignores them completely.
1847 func_stripname : : "$1"
1848 func_to_host_path_tmp1=$func_stripname_result
1849 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1850 func_to_host_path_result="$func_convert_core_msys_to_w32_result"
1851 func_convert_path_check : ";" \
1852 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1853 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1854 fi
1855 }
1856 # end func_convert_path_msys_to_w32
1857
1858
1859 # func_convert_path_cygwin_to_w32 ARG
1860 # Convert path ARG from Cygwin to w32 format. Returns result in
1861 # func_to_host_file_result.
1862 func_convert_path_cygwin_to_w32 ()
1863 {
1864 $opt_debug
1865 func_to_host_path_result="$1"
1866 if test -n "$1"; then
1867 # See func_convert_path_msys_to_w32:
1868 func_stripname : : "$1"
1869 func_to_host_path_tmp1=$func_stripname_result
1870 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
1871 func_convert_path_check : ";" \
1872 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1873 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1874 fi
1875 }
1876 # end func_convert_path_cygwin_to_w32
1877
1878
1879 # func_convert_path_nix_to_w32 ARG
1880 # Convert path ARG from *nix to w32 format. Requires a wine environment and
1881 # a working winepath. Returns result in func_to_host_file_result.
1882 func_convert_path_nix_to_w32 ()
1883 {
1884 $opt_debug
1885 func_to_host_path_result="$1"
1886 if test -n "$1"; then
1887 # See func_convert_path_msys_to_w32:
1888 func_stripname : : "$1"
1889 func_to_host_path_tmp1=$func_stripname_result
1890 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1891 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
1892 func_convert_path_check : ";" \
1893 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1894 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1895 fi
1896 }
1897 # end func_convert_path_nix_to_w32
1898
1899
1900 # func_convert_path_msys_to_cygwin ARG
1901 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1902 # Returns result in func_to_host_file_result.
1903 func_convert_path_msys_to_cygwin ()
1904 {
1905 $opt_debug
1906 func_to_host_path_result="$1"
1907 if test -n "$1"; then
1908 # See func_convert_path_msys_to_w32:
1909 func_stripname : : "$1"
1910 func_to_host_path_tmp1=$func_stripname_result
1911 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1912 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
1913 func_to_host_path_result="$func_cygpath_result"
1914 func_convert_path_check : : \
1915 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1916 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1917 fi
1918 }
1919 # end func_convert_path_msys_to_cygwin
1920
1921
1922 # func_convert_path_nix_to_cygwin ARG
1923 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
1924 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in
1925 # func_to_host_file_result.
1926 func_convert_path_nix_to_cygwin ()
1927 {
1928 $opt_debug
1929 func_to_host_path_result="$1"
1930 if test -n "$1"; then
1931 # Remove leading and trailing path separator characters from
1932 # ARG. msys behavior is inconsistent here, cygpath turns them
1933 # into '.;' and ';.', and winepath ignores them completely.
1934 func_stripname : : "$1"
1935 func_to_host_path_tmp1=$func_stripname_result
1936 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1937 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
1938 func_to_host_path_result="$func_cygpath_result"
1939 func_convert_path_check : : \
1940 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1941 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1942 fi
1943 }
1944 # end func_convert_path_nix_to_cygwin
1945
1946
1947 # func_mode_compile arg...
1948 func_mode_compile ()
1949 {
1950 $opt_debug
1951 # Get the compilation command and the source file.
1952 base_compile=
1953 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
1954 suppress_opt=yes
1955 suppress_output=
1956 arg_mode=normal
1957 libobj=
1958 later=
1959 pie_flag=
1960
1961 for arg
1962 do
1963 case $arg_mode in
1964 arg )
1965 # do not "continue". Instead, add this to base_compile
1966 lastarg="$arg"
1967 arg_mode=normal
1968 ;;
1969
1970 target )
1971 libobj="$arg"
1972 arg_mode=normal
1973 continue
1974 ;;
1975
1976 normal )
1977 # Accept any command-line options.
1978 case $arg in
1979 -o)
1980 test -n "$libobj" && \
1981 func_fatal_error "you cannot specify \`-o' more than once"
1982 arg_mode=target
1983 continue
1984 ;;
1985
1986 -pie | -fpie | -fPIE)
1987 func_append pie_flag " $arg"
1988 continue
1989 ;;
1990
1991 -shared | -static | -prefer-pic | -prefer-non-pic)
1992 func_append later " $arg"
1993 continue
1994 ;;
1995
1996 -no-suppress)
1997 suppress_opt=no
1998 continue
1999 ;;
2000
2001 -Xcompiler)
2002 arg_mode=arg # the next one goes into the "base_compile" arg list
2003 continue # The current "srcfile" will either be retained or
2004 ;; # replaced later. I would guess that would be a bug.
2005
2006 -Wc,*)
2007 func_stripname '-Wc,' '' "$arg"
2008 args=$func_stripname_result
2009 lastarg=
2010 save_ifs="$IFS"; IFS=','
2011 for arg in $args; do
2012 IFS="$save_ifs"
2013 func_append_quoted lastarg "$arg"
2014 done
2015 IFS="$save_ifs"
2016 func_stripname ' ' '' "$lastarg"
2017 lastarg=$func_stripname_result
2018
2019 # Add the arguments to base_compile.
2020 func_append base_compile " $lastarg"
2021 continue
2022 ;;
2023
2024 *)
2025 # Accept the current argument as the source file.
2026 # The previous "srcfile" becomes the current argument.
2027 #
2028 lastarg="$srcfile"
2029 srcfile="$arg"
2030 ;;
2031 esac # case $arg
2032 ;;
2033 esac # case $arg_mode
2034
2035 # Aesthetically quote the previous argument.
2036 func_append_quoted base_compile "$lastarg"
2037 done # for arg
2038
2039 case $arg_mode in
2040 arg)
2041 func_fatal_error "you must specify an argument for -Xcompile"
2042 ;;
2043 target)
2044 func_fatal_error "you must specify a target with \`-o'"
2045 ;;
2046 *)
2047 # Get the name of the library object.
2048 test -z "$libobj" && {
2049 func_basename "$srcfile"
2050 libobj="$func_basename_result"
2051 }
2052 ;;
2053 esac
2054
2055 # Recognize several different file suffixes.
2056 # If the user specifies -o file.o, it is replaced with file.lo
2057 case $libobj in
2058 *.[cCFSifmso] | \
2059 *.ada | *.adb | *.ads | *.asm | \
2060 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
2061 *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
2062 func_xform "$libobj"
2063 libobj=$func_xform_result
2064 ;;
2065 esac
2066
2067 case $libobj in
2068 *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
2069 *)
2070 func_fatal_error "cannot determine name of library object from \`$libobj'"
2071 ;;
2072 esac
2073
2074 func_infer_tag $base_compile
2075
2076 for arg in $later; do
2077 case $arg in
2078 -shared)
2079 test "$build_libtool_libs" != yes && \
2080 func_fatal_configuration "can not build a shared library"
2081 build_old_libs=no
2082 continue
2083 ;;
2084
2085 -static)
2086 build_libtool_libs=no
2087 build_old_libs=yes
2088 continue
2089 ;;
2090
2091 -prefer-pic)
2092 pic_mode=yes
2093 continue
2094 ;;
2095
2096 -prefer-non-pic)
2097 pic_mode=no
2098 continue
2099 ;;
2100 esac
2101 done
2102
2103 func_quote_for_eval "$libobj"
2104 test "X$libobj" != "X$func_quote_for_eval_result" \
2105 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
2106 && func_warning "libobj name \`$libobj' may not contain shell special characters."
2107 func_dirname_and_basename "$obj" "/" ""
2108 objname="$func_basename_result"
2109 xdir="$func_dirname_result"
2110 lobj=${xdir}$objdir/$objname
2111
2112 test -z "$base_compile" && \
2113 func_fatal_help "you must specify a compilation command"
2114
2115 # Delete any leftover library objects.
2116 if test "$build_old_libs" = yes; then
2117 removelist="$obj $lobj $libobj ${libobj}T"
2118 else
2119 removelist="$lobj $libobj ${libobj}T"
2120 fi
2121
2122 # On Cygwin there's no "real" PIC flag so we must build both object types
2123 case $host_os in
2124 cygwin* | mingw* | pw32* | os2* | cegcc*)
2125 pic_mode=default
2126 ;;
2127 esac
2128 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
2129 # non-PIC code in shared libraries is not supported
2130 pic_mode=default
2131 fi
2132
2133 # Calculate the filename of the output object if compiler does
2134 # not support -o with -c
2135 if test "$compiler_c_o" = no; then
2136 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
2137 lockfile="$output_obj.lock"
2138 else
2139 output_obj=
2140 need_locks=no
2141 lockfile=
2142 fi
2143
2144 # Lock this critical section if it is needed
2145 # We use this script file to make the link, it avoids creating a new file
2146 if test "$need_locks" = yes; then
2147 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
2148 func_echo "Waiting for $lockfile to be removed"
2149 sleep 2
2150 done
2151 elif test "$need_locks" = warn; then
2152 if test -f "$lockfile"; then
2153 $ECHO "\
2154 *** ERROR, $lockfile exists and contains:
2155 `cat $lockfile 2>/dev/null`
2156
2157 This indicates that another process is trying to use the same
2158 temporary object file, and libtool could not work around it because
2159 your compiler does not support \`-c' and \`-o' together. If you
2160 repeat this compilation, it may succeed, by chance, but you had better
2161 avoid parallel builds (make -j) in this platform, or get a better
2162 compiler."
2163
2164 $opt_dry_run || $RM $removelist
2165 exit $EXIT_FAILURE
2166 fi
2167 func_append removelist " $output_obj"
2168 $ECHO "$srcfile" > "$lockfile"
2169 fi
2170
2171 $opt_dry_run || $RM $removelist
2172 func_append removelist " $lockfile"
2173 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
2174
2175 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
2176 srcfile=$func_to_tool_file_result
2177 func_quote_for_eval "$srcfile"
2178 qsrcfile=$func_quote_for_eval_result
2179
2180 # Only build a PIC object if we are building libtool libraries.
2181 if test "$build_libtool_libs" = yes; then
2182 # Without this assignment, base_compile gets emptied.
2183 fbsd_hideous_sh_bug=$base_compile
2184
2185 if test "$pic_mode" != no; then
2186 command="$base_compile $qsrcfile $pic_flag"
2187 else
2188 # Don't build PIC code
2189 command="$base_compile $qsrcfile"
2190 fi
2191
2192 func_mkdir_p "$xdir$objdir"
2193
2194 if test -z "$output_obj"; then
2195 # Place PIC objects in $objdir
2196 func_append command " -o $lobj"
2197 fi
2198
2199 func_show_eval_locale "$command" \
2200 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
2201
2202 if test "$need_locks" = warn &&
2203 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2204 $ECHO "\
2205 *** ERROR, $lockfile contains:
2206 `cat $lockfile 2>/dev/null`
2207
2208 but it should contain:
2209 $srcfile
2210
2211 This indicates that another process is trying to use the same
2212 temporary object file, and libtool could not work around it because
2213 your compiler does not support \`-c' and \`-o' together. If you
2214 repeat this compilation, it may succeed, by chance, but you had better
2215 avoid parallel builds (make -j) in this platform, or get a better
2216 compiler."
2217
2218 $opt_dry_run || $RM $removelist
2219 exit $EXIT_FAILURE
2220 fi
2221
2222 # Just move the object if needed, then go on to compile the next one
2223 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
2224 func_show_eval '$MV "$output_obj" "$lobj"' \
2225 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
2226 fi
2227
2228 # Allow error messages only from the first compilation.
2229 if test "$suppress_opt" = yes; then
2230 suppress_output=' >/dev/null 2>&1'
2231 fi
2232 fi
2233
2234 # Only build a position-dependent object if we build old libraries.
2235 if test "$build_old_libs" = yes; then
2236 if test "$pic_mode" != yes; then
2237 # Don't build PIC code
2238 command="$base_compile $qsrcfile$pie_flag"
2239 else
2240 command="$base_compile $qsrcfile $pic_flag"
2241 fi
2242 if test "$compiler_c_o" = yes; then
2243 func_append command " -o $obj"
2244 fi
2245
2246 # Suppress compiler output if we already did a PIC compilation.
2247 func_append command "$suppress_output"
2248 func_show_eval_locale "$command" \
2249 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
2250
2251 if test "$need_locks" = warn &&
2252 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2253 $ECHO "\
2254 *** ERROR, $lockfile contains:
2255 `cat $lockfile 2>/dev/null`
2256
2257 but it should contain:
2258 $srcfile
2259
2260 This indicates that another process is trying to use the same
2261 temporary object file, and libtool could not work around it because
2262 your compiler does not support \`-c' and \`-o' together. If you
2263 repeat this compilation, it may succeed, by chance, but you had better
2264 avoid parallel builds (make -j) in this platform, or get a better
2265 compiler."
2266
2267 $opt_dry_run || $RM $removelist
2268 exit $EXIT_FAILURE
2269 fi
2270
2271 # Just move the object if needed
2272 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
2273 func_show_eval '$MV "$output_obj" "$obj"' \
2274 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
2275 fi
2276 fi
2277
2278 $opt_dry_run || {
2279 func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
2280
2281 # Unlock the critical section if it was locked
2282 if test "$need_locks" != no; then
2283 removelist=$lockfile
2284 $RM "$lockfile"
2285 fi
2286 }
2287
2288 exit $EXIT_SUCCESS
2289 }
2290
2291 $opt_help || {
2292 test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
2293 }
2294
2295 func_mode_help ()
2296 {
2297 # We need to display help for each of the modes.
2298 case $opt_mode in
2299 "")
2300 # Generic help is extracted from the usage comments
2301 # at the start of this file.
2302 func_help
2303 ;;
2304
2305 clean)
2306 $ECHO \
2307 "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
2308
2309 Remove files from the build directory.
2310
2311 RM is the name of the program to use to delete files associated with each FILE
2312 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2313 to RM.
2314
2315 If FILE is a libtool library, object or program, all the files associated
2316 with it are deleted. Otherwise, only FILE itself is deleted using RM."
2317 ;;
2318
2319 compile)
2320 $ECHO \
2321 "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
2322
2323 Compile a source file into a libtool library object.
2324
2325 This mode accepts the following additional options:
2326
2327 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
2328 -no-suppress do not suppress compiler output for multiple passes
2329 -prefer-pic try to build PIC objects only
2330 -prefer-non-pic try to build non-PIC objects only
2331 -shared do not build a \`.o' file suitable for static linking
2332 -static only build a \`.o' file suitable for static linking
2333 -Wc,FLAG pass FLAG directly to the compiler
2334
2335 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2336 from the given SOURCEFILE.
2337
2338 The output file name is determined by removing the directory component from
2339 SOURCEFILE, then substituting the C source code suffix \`.c' with the
2340 library object suffix, \`.lo'."
2341 ;;
2342
2343 execute)
2344 $ECHO \
2345 "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
2346
2347 Automatically set library path, then run a program.
2348
2349 This mode accepts the following additional options:
2350
2351 -dlopen FILE add the directory containing FILE to the library path
2352
2353 This mode sets the library path environment variable according to \`-dlopen'
2354 flags.
2355
2356 If any of the ARGS are libtool executable wrappers, then they are translated
2357 into their corresponding uninstalled binary, and any of their required library
2358 directories are added to the library path.
2359
2360 Then, COMMAND is executed, with ARGS as arguments."
2361 ;;
2362
2363 finish)
2364 $ECHO \
2365 "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
2366
2367 Complete the installation of libtool libraries.
2368
2369 Each LIBDIR is a directory that contains libtool libraries.
2370
2371 The commands that this mode executes may require superuser privileges. Use
2372 the \`--dry-run' option if you just want to see what would be executed."
2373 ;;
2374
2375 install)
2376 $ECHO \
2377 "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
2378
2379 Install executables or libraries.
2380
2381 INSTALL-COMMAND is the installation command. The first component should be
2382 either the \`install' or \`cp' program.
2383
2384 The following components of INSTALL-COMMAND are treated specially:
2385
2386 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
2387
2388 The rest of the components are interpreted as arguments to that command (only
2389 BSD-compatible install options are recognized)."
2390 ;;
2391
2392 link)
2393 $ECHO \
2394 "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
2395
2396 Link object files or libraries together to form another library, or to
2397 create an executable program.
2398
2399 LINK-COMMAND is a command using the C compiler that you would use to create
2400 a program from several object files.
2401
2402 The following components of LINK-COMMAND are treated specially:
2403
2404 -all-static do not do any dynamic linking at all
2405 -avoid-version do not add a version suffix if possible
2406 -bindir BINDIR specify path to binaries directory (for systems where
2407 libraries must be found in the PATH setting at runtime)
2408 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
2409 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
2410 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2411 -export-symbols SYMFILE
2412 try to export only the symbols listed in SYMFILE
2413 -export-symbols-regex REGEX
2414 try to export only the symbols matching REGEX
2415 -LLIBDIR search LIBDIR for required installed libraries
2416 -lNAME OUTPUT-FILE requires the installed library libNAME
2417 -module build a library that can dlopened
2418 -no-fast-install disable the fast-install mode
2419 -no-install link a not-installable executable
2420 -no-undefined declare that a library does not refer to external symbols
2421 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
2422 -objectlist FILE Use a list of object files found in FILE to specify objects
2423 -precious-files-regex REGEX
2424 don't remove output files matching REGEX
2425 -release RELEASE specify package release information
2426 -rpath LIBDIR the created library will eventually be installed in LIBDIR
2427 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
2428 -shared only do dynamic linking of libtool libraries
2429 -shrext SUFFIX override the standard shared library file extension
2430 -static do not do any dynamic linking of uninstalled libtool libraries
2431 -static-libtool-libs
2432 do not do any dynamic linking of libtool libraries
2433 -version-info CURRENT[:REVISION[:AGE]]
2434 specify library version info [each variable defaults to 0]
2435 -weak LIBNAME declare that the target provides the LIBNAME interface
2436 -Wc,FLAG
2437 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
2438 -Wl,FLAG
2439 -Xlinker FLAG pass linker-specific FLAG directly to the linker
2440 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
2441
2442 All other options (arguments beginning with \`-') are ignored.
2443
2444 Every other argument is treated as a filename. Files ending in \`.la' are
2445 treated as uninstalled libtool libraries, other files are standard or library
2446 object files.
2447
2448 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
2449 only library objects (\`.lo' files) may be specified, and \`-rpath' is
2450 required, except when creating a convenience library.
2451
2452 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2453 using \`ar' and \`ranlib', or on Windows using \`lib'.
2454
2455 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2456 is created, otherwise an executable program is created."
2457 ;;
2458
2459 uninstall)
2460 $ECHO \
2461 "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2462
2463 Remove libraries from an installation directory.
2464
2465 RM is the name of the program to use to delete files associated with each FILE
2466 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2467 to RM.
2468
2469 If FILE is a libtool library, all the files associated with it are deleted.
2470 Otherwise, only FILE itself is deleted using RM."
2471 ;;
2472
2473 *)
2474 func_fatal_help "invalid operation mode \`$opt_mode'"
2475 ;;
2476 esac
2477
2478 echo
2479 $ECHO "Try \`$progname --help' for more information about other modes."
2480 }
2481
2482 # Now that we've collected a possible --mode arg, show help if necessary
2483 if $opt_help; then
2484 if test "$opt_help" = :; then
2485 func_mode_help
2486 else
2487 {
2488 func_help noexit
2489 for opt_mode in compile link execute install finish uninstall clean; do
2490 func_mode_help
2491 done
2492 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
2493 {
2494 func_help noexit
2495 for opt_mode in compile link execute install finish uninstall clean; do
2496 echo
2497 func_mode_help
2498 done
2499 } |
2500 sed '1d
2501 /^When reporting/,/^Report/{
2502 H
2503 d
2504 }
2505 $x
2506 /information about other modes/d
2507 /more detailed .*MODE/d
2508 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
2509 fi
2510 exit $?
2511 fi
2512
2513
2514 # func_mode_execute arg...
2515 func_mode_execute ()
2516 {
2517 $opt_debug
2518 # The first argument is the command name.
2519 cmd="$nonopt"
2520 test -z "$cmd" && \
2521 func_fatal_help "you must specify a COMMAND"
2522
2523 # Handle -dlopen flags immediately.
2524 for file in $opt_dlopen; do
2525 test -f "$file" \
2526 || func_fatal_help "\`$file' is not a file"
2527
2528 dir=
2529 case $file in
2530 *.la)
2531 func_resolve_sysroot "$file"
2532 file=$func_resolve_sysroot_result
2533
2534 # Check to see that this really is a libtool archive.
2535 func_lalib_unsafe_p "$file" \
2536 || func_fatal_help "\`$lib' is not a valid libtool archive"
2537
2538 # Read the libtool library.
2539 dlname=
2540 library_names=
2541 func_source "$file"
2542
2543 # Skip this library if it cannot be dlopened.
2544 if test -z "$dlname"; then
2545 # Warn if it was a shared library.
2546 test -n "$library_names" && \
2547 func_warning "\`$file' was not linked with \`-export-dynamic'"
2548 continue
2549 fi
2550
2551 func_dirname "$file" "" "."
2552 dir="$func_dirname_result"
2553
2554 if test -f "$dir/$objdir/$dlname"; then
2555 func_append dir "/$objdir"
2556 else
2557 if test ! -f "$dir/$dlname"; then
2558 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
2559 fi
2560 fi
2561 ;;
2562
2563 *.lo)
2564 # Just add the directory containing the .lo file.
2565 func_dirname "$file" "" "."
2566 dir="$func_dirname_result"
2567 ;;
2568
2569 *)
2570 func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
2571 continue
2572 ;;
2573 esac
2574
2575 # Get the absolute pathname.
2576 absdir=`cd "$dir" && pwd`
2577 test -n "$absdir" && dir="$absdir"
2578
2579 # Now add the directory to shlibpath_var.
2580 if eval "test -z \"\$$shlibpath_var\""; then
2581 eval "$shlibpath_var=\"\$dir\""
2582 else
2583 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2584 fi
2585 done
2586
2587 # This variable tells wrapper scripts just to set shlibpath_var
2588 # rather than running their programs.
2589 libtool_execute_magic="$magic"
2590
2591 # Check if any of the arguments is a wrapper script.
2592 args=
2593 for file
2594 do
2595 case $file in
2596 -* | *.la | *.lo ) ;;
2597 *)
2598 # Do a test to see if this is really a libtool program.
2599 if func_ltwrapper_script_p "$file"; then
2600 func_source "$file"
2601 # Transform arg to wrapped name.
2602 file="$progdir/$program"
2603 elif func_ltwrapper_executable_p "$file"; then
2604 func_ltwrapper_scriptname "$file"
2605 func_source "$func_ltwrapper_scriptname_result"
2606 # Transform arg to wrapped name.
2607 file="$progdir/$program"
2608 fi
2609 ;;
2610 esac
2611 # Quote arguments (to preserve shell metacharacters).
2612 func_append_quoted args "$file"
2613 done
2614
2615 if test "X$opt_dry_run" = Xfalse; then
2616 if test -n "$shlibpath_var"; then
2617 # Export the shlibpath_var.
2618 eval "export $shlibpath_var"
2619 fi
2620
2621 # Restore saved environment variables
2622 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
2623 do
2624 eval "if test \"\${save_$lt_var+set}\" = set; then
2625 $lt_var=\$save_$lt_var; export $lt_var
2626 else
2627 $lt_unset $lt_var
2628 fi"
2629 done
2630
2631 # Now prepare to actually exec the command.
2632 exec_cmd="\$cmd$args"
2633 else
2634 # Display what would be done.
2635 if test -n "$shlibpath_var"; then
2636 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
2637 echo "export $shlibpath_var"
2638 fi
2639 $ECHO "$cmd$args"
2640 exit $EXIT_SUCCESS
2641 fi
2642 }
2643
2644 test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
2645
2646
2647 # func_mode_finish arg...
2648 func_mode_finish ()
2649 {
2650 $opt_debug
2651 libs=
2652 libdirs=
2653 admincmds=
2654
2655 for opt in "$nonopt" ${1+"$@"}
2656 do
2657 if test -d "$opt"; then
2658 func_append libdirs " $opt"
2659
2660 elif test -f "$opt"; then
2661 if func_lalib_unsafe_p "$opt"; then
2662 func_append libs " $opt"
2663 else
2664 func_warning "\`$opt' is not a valid libtool archive"
2665 fi
2666
2667 else
2668 func_fatal_error "invalid argument \`$opt'"
2669 fi
2670 done
2671
2672 if test -n "$libs"; then
2673 if test -n "$lt_sysroot"; then
2674 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
2675 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
2676 else
2677 sysroot_cmd=
2678 fi
2679
2680 # Remove sysroot references
2681 if $opt_dry_run; then
2682 for lib in $libs; do
2683 echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
2684 done
2685 else
2686 tmpdir=`func_mktempdir`
2687 for lib in $libs; do
2688 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
2689 > $tmpdir/tmp-la
2690 mv -f $tmpdir/tmp-la $lib
2691 done
2692 ${RM}r "$tmpdir"
2693 fi
2694 fi
2695
2696 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2697 for libdir in $libdirs; do
2698 if test -n "$finish_cmds"; then
2699 # Do each command in the finish commands.
2700 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
2701 '"$cmd"'"'
2702 fi
2703 if test -n "$finish_eval"; then
2704 # Do the single finish_eval.
2705 eval cmds=\"$finish_eval\"
2706 $opt_dry_run || eval "$cmds" || func_append admincmds "
2707 $cmds"
2708 fi
2709 done
2710 fi
2711
2712 # Exit here if they wanted silent mode.
2713 $opt_silent && exit $EXIT_SUCCESS
2714
2715 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2716 echo "----------------------------------------------------------------------"
2717 echo "Libraries have been installed in:"
2718 for libdir in $libdirs; do
2719 $ECHO " $libdir"
2720 done
2721 echo
2722 echo "If you ever happen to want to link against installed libraries"
2723 echo "in a given directory, LIBDIR, you must either use libtool, and"
2724 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2725 echo "flag during linking and do at least one of the following:"
2726 if test -n "$shlibpath_var"; then
2727 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2728 echo " during execution"
2729 fi
2730 if test -n "$runpath_var"; then
2731 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2732 echo " during linking"
2733 fi
2734 if test -n "$hardcode_libdir_flag_spec"; then
2735 libdir=LIBDIR
2736 eval flag=\"$hardcode_libdir_flag_spec\"
2737
2738 $ECHO " - use the \`$flag' linker flag"
2739 fi
2740 if test -n "$admincmds"; then
2741 $ECHO " - have your system administrator run these commands:$admincmds"
2742 fi
2743 if test -f /etc/ld.so.conf; then
2744 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2745 fi
2746 echo
2747
2748 echo "See any operating system documentation about shared libraries for"
2749 case $host in
2750 solaris2.[6789]|solaris2.1[0-9])
2751 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2752 echo "pages."
2753 ;;
2754 *)
2755 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2756 ;;
2757 esac
2758 echo "----------------------------------------------------------------------"
2759 fi
2760 exit $EXIT_SUCCESS
2761 }
2762
2763 test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
2764
2765
2766 # func_mode_install arg...
2767 func_mode_install ()
2768 {
2769 $opt_debug
2770 # There may be an optional sh(1) argument at the beginning of
2771 # install_prog (especially on Windows NT).
2772 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
2773 # Allow the use of GNU shtool's install command.
2774 case $nonopt in *shtool*) :;; *) false;; esac; then
2775 # Aesthetically quote it.
2776 func_quote_for_eval "$nonopt"
2777 install_prog="$func_quote_for_eval_result "
2778 arg=$1
2779 shift
2780 else
2781 install_prog=
2782 arg=$nonopt
2783 fi
2784
2785 # The real first argument should be the name of the installation program.
2786 # Aesthetically quote it.
2787 func_quote_for_eval "$arg"
2788 func_append install_prog "$func_quote_for_eval_result"
2789 install_shared_prog=$install_prog
2790 case " $install_prog " in
2791 *[\\\ /]cp\ *) install_cp=: ;;
2792 *) install_cp=false ;;
2793 esac
2794
2795 # We need to accept at least all the BSD install flags.
2796 dest=
2797 files=
2798 opts=
2799 prev=
2800 install_type=
2801 isdir=no
2802 stripme=
2803 no_mode=:
2804 for arg
2805 do
2806 arg2=
2807 if test -n "$dest"; then
2808 func_append files " $dest"
2809 dest=$arg
2810 continue
2811 fi
2812
2813 case $arg in
2814 -d) isdir=yes ;;
2815 -f)
2816 if $install_cp; then :; else
2817 prev=$arg
2818 fi
2819 ;;
2820 -g | -m | -o)
2821 prev=$arg
2822 ;;
2823 -s)
2824 stripme=" -s"
2825 continue
2826 ;;
2827 -*)
2828 ;;
2829 *)
2830 # If the previous option needed an argument, then skip it.
2831 if test -n "$prev"; then
2832 if test "x$prev" = x-m && test -n "$install_override_mode"; then
2833 arg2=$install_override_mode
2834 no_mode=false
2835 fi
2836 prev=
2837 else
2838 dest=$arg
2839 continue
2840 fi
2841 ;;
2842 esac
2843
2844 # Aesthetically quote the argument.
2845 func_quote_for_eval "$arg"
2846 func_append install_prog " $func_quote_for_eval_result"
2847 if test -n "$arg2"; then
2848 func_quote_for_eval "$arg2"
2849 fi
2850 func_append install_shared_prog " $func_quote_for_eval_result"
2851 done
2852
2853 test -z "$install_prog" && \
2854 func_fatal_help "you must specify an install program"
2855
2856 test -n "$prev" && \
2857 func_fatal_help "the \`$prev' option requires an argument"
2858
2859 if test -n "$install_override_mode" && $no_mode; then
2860 if $install_cp; then :; else
2861 func_quote_for_eval "$install_override_mode"
2862 func_append install_shared_prog " -m $func_quote_for_eval_result"
2863 fi
2864 fi
2865
2866 if test -z "$files"; then
2867 if test -z "$dest"; then
2868 func_fatal_help "no file or destination specified"
2869 else
2870 func_fatal_help "you must specify a destination"
2871 fi
2872 fi
2873
2874 # Strip any trailing slash from the destination.
2875 func_stripname '' '/' "$dest"
2876 dest=$func_stripname_result
2877
2878 # Check to see that the destination is a directory.
2879 test -d "$dest" && isdir=yes
2880 if test "$isdir" = yes; then
2881 destdir="$dest"
2882 destname=
2883 else
2884 func_dirname_and_basename "$dest" "" "."
2885 destdir="$func_dirname_result"
2886 destname="$func_basename_result"
2887
2888 # Not a directory, so check to see that there is only one file specified.
2889 set dummy $files; shift
2890 test "$#" -gt 1 && \
2891 func_fatal_help "\`$dest' is not a directory"
2892 fi
2893 case $destdir in
2894 [\\/]* | [A-Za-z]:[\\/]*) ;;
2895 *)
2896 for file in $files; do
2897 case $file in
2898 *.lo) ;;
2899 *)
2900 func_fatal_help "\`$destdir' must be an absolute directory name"
2901 ;;
2902 esac
2903 done
2904 ;;
2905 esac
2906
2907 # This variable tells wrapper scripts just to set variables rather
2908 # than running their programs.
2909 libtool_install_magic="$magic"
2910
2911 staticlibs=
2912 future_libdirs=
2913 current_libdirs=
2914 for file in $files; do
2915
2916 # Do each installation.
2917 case $file in
2918 *.$libext)
2919 # Do the static libraries later.
2920 func_append staticlibs " $file"
2921 ;;
2922
2923 *.la)
2924 func_resolve_sysroot "$file"
2925 file=$func_resolve_sysroot_result
2926
2927 # Check to see that this really is a libtool archive.
2928 func_lalib_unsafe_p "$file" \
2929 || func_fatal_help "\`$file' is not a valid libtool archive"
2930
2931 library_names=
2932 old_library=
2933 relink_command=
2934 func_source "$file"
2935
2936 # Add the libdir to current_libdirs if it is the destination.
2937 if test "X$destdir" = "X$libdir"; then
2938 case "$current_libdirs " in
2939 *" $libdir "*) ;;
2940 *) func_append current_libdirs " $libdir" ;;
2941 esac
2942 else
2943 # Note the libdir as a future libdir.
2944 case "$future_libdirs " in
2945 *" $libdir "*) ;;
2946 *) func_append future_libdirs " $libdir" ;;
2947 esac
2948 fi
2949
2950 func_dirname "$file" "/" ""
2951 dir="$func_dirname_result"
2952 func_append dir "$objdir"
2953
2954 if test -n "$relink_command"; then
2955 # Determine the prefix the user has applied to our future dir.
2956 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2957
2958 # Don't allow the user to place us outside of our expected
2959 # location b/c this prevents finding dependent libraries that
2960 # are installed to the same prefix.
2961 # At present, this check doesn't affect windows .dll's that
2962 # are installed into $libdir/../bin (currently, that works fine)
2963 # but it's something to keep an eye on.
2964 test "$inst_prefix_dir" = "$destdir" && \
2965 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
2966
2967 if test -n "$inst_prefix_dir"; then
2968 # Stick the inst_prefix_dir data into the link command.
2969 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2970 else
2971 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2972 fi
2973
2974 func_warning "relinking \`$file'"
2975 func_show_eval "$relink_command" \
2976 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2977 fi
2978
2979 # See the names of the shared library.
2980 set dummy $library_names; shift
2981 if test -n "$1"; then
2982 realname="$1"
2983 shift
2984
2985 srcname="$realname"
2986 test -n "$relink_command" && srcname="$realname"T
2987
2988 # Install the shared library and build the symlinks.
2989 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2990 'exit $?'
2991 tstripme="$stripme"
2992 case $host_os in
2993 cygwin* | mingw* | pw32* | cegcc*)
2994 case $realname in
2995 *.dll.a)
2996 tstripme=""
2997 ;;
2998 esac
2999 ;;
3000 esac
3001 if test -n "$tstripme" && test -n "$striplib"; then
3002 func_show_eval "$striplib $destdir/$realname" 'exit $?'
3003 fi
3004
3005 if test "$#" -gt 0; then
3006 # Delete the old symlinks, and create new ones.
3007 # Try `ln -sf' first, because the `ln' binary might depend on
3008 # the symlink we replace! Solaris /bin/ln does not understand -f,
3009 # so we also need to try rm && ln -s.
3010 for linkname
3011 do
3012 test "$linkname" != "$realname" \
3013 && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
3014 done
3015 fi
3016
3017 # Do each command in the postinstall commands.
3018 lib="$destdir/$realname"
3019 func_execute_cmds "$postinstall_cmds" 'exit $?'
3020 fi
3021
3022 # Install the pseudo-library for information purposes.
3023 func_basename "$file"
3024 name="$func_basename_result"
3025 instname="$dir/$name"i
3026 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
3027
3028 # Maybe install the static library, too.
3029 test -n "$old_library" && func_append staticlibs " $dir/$old_library"
3030 ;;
3031
3032 *.lo)
3033 # Install (i.e. copy) a libtool object.
3034
3035 # Figure out destination file name, if it wasn't already specified.
3036 if test -n "$destname"; then
3037 destfile="$destdir/$destname"
3038 else
3039 func_basename "$file"
3040 destfile="$func_basename_result"
3041 destfile="$destdir/$destfile"
3042 fi
3043
3044 # Deduce the name of the destination old-style object file.
3045 case $destfile in
3046 *.lo)
3047 func_lo2o "$destfile"
3048 staticdest=$func_lo2o_result
3049 ;;
3050 *.$objext)
3051 staticdest="$destfile"
3052 destfile=
3053 ;;
3054 *)
3055 func_fatal_help "cannot copy a libtool object to \`$destfile'"
3056 ;;
3057 esac
3058
3059 # Install the libtool object if requested.
3060 test -n "$destfile" && \
3061 func_show_eval "$install_prog $file $destfile" 'exit $?'
3062
3063 # Install the old object if enabled.
3064 if test "$build_old_libs" = yes; then
3065 # Deduce the name of the old-style object file.
3066 func_lo2o "$file"
3067 staticobj=$func_lo2o_result
3068 func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
3069 fi
3070 exit $EXIT_SUCCESS
3071 ;;
3072
3073 *)
3074 # Figure out destination file name, if it wasn't already specified.
3075 if test -n "$destname"; then
3076 destfile="$destdir/$destname"
3077 else
3078 func_basename "$file"
3079 destfile="$func_basename_result"
3080 destfile="$destdir/$destfile"
3081 fi
3082
3083 # If the file is missing, and there is a .exe on the end, strip it
3084 # because it is most likely a libtool script we actually want to
3085 # install
3086 stripped_ext=""
3087 case $file in
3088 *.exe)
3089 if test ! -f "$file"; then
3090 func_stripname '' '.exe' "$file"
3091 file=$func_stripname_result
3092 stripped_ext=".exe"
3093 fi
3094 ;;
3095 esac
3096
3097 # Do a test to see if this is really a libtool program.
3098 case $host in
3099 *cygwin* | *mingw*)
3100 if func_ltwrapper_executable_p "$file"; then
3101 func_ltwrapper_scriptname "$file"
3102 wrapper=$func_ltwrapper_scriptname_result
3103 else
3104 func_stripname '' '.exe' "$file"
3105 wrapper=$func_stripname_result
3106 fi
3107 ;;
3108 *)
3109 wrapper=$file
3110 ;;
3111 esac
3112 if func_ltwrapper_script_p "$wrapper"; then
3113 notinst_deplibs=
3114 relink_command=
3115
3116 func_source "$wrapper"
3117
3118 # Check the variables that should have been set.
3119 test -z "$generated_by_libtool_version" && \
3120 func_fatal_error "invalid libtool wrapper script \`$wrapper'"
3121
3122 finalize=yes
3123 for lib in $notinst_deplibs; do
3124 # Check to see that each library is installed.
3125 libdir=
3126 if test -f "$lib"; then
3127 func_source "$lib"
3128 fi
3129 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
3130 if test -n "$libdir" && test ! -f "$libfile"; then
3131 func_warning "\`$lib' has not been installed in \`$libdir'"
3132 finalize=no
3133 fi
3134 done
3135
3136 relink_command=
3137 func_source "$wrapper"
3138
3139 outputname=
3140 if test "$fast_install" = no && test -n "$relink_command"; then
3141 $opt_dry_run || {
3142 if test "$finalize" = yes; then
3143 tmpdir=`func_mktempdir`
3144 func_basename "$file$stripped_ext"
3145 file="$func_basename_result"
3146 outputname="$tmpdir/$file"
3147 # Replace the output file specification.
3148 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
3149
3150 $opt_silent || {
3151 func_quote_for_expand "$relink_command"
3152 eval "func_echo $func_quote_for_expand_result"
3153 }
3154 if eval "$relink_command"; then :
3155 else
3156 func_error "error: relink \`$file' with the above command before installing it"
3157 $opt_dry_run || ${RM}r "$tmpdir"
3158 continue
3159 fi
3160 file="$outputname"
3161 else
3162 func_warning "cannot relink \`$file'"
3163 fi
3164 }
3165 else
3166 # Install the binary that we compiled earlier.
3167 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
3168 fi
3169 fi
3170
3171 # remove .exe since cygwin /usr/bin/install will append another
3172 # one anyway
3173 case $install_prog,$host in
3174 */usr/bin/install*,*cygwin*)
3175 case $file:$destfile in
3176 *.exe:*.exe)
3177 # this is ok
3178 ;;
3179 *.exe:*)
3180 destfile=$destfile.exe
3181 ;;
3182 *:*.exe)
3183 func_stripname '' '.exe' "$destfile"
3184 destfile=$func_stripname_result
3185 ;;
3186 esac
3187 ;;
3188 esac
3189 func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
3190 $opt_dry_run || if test -n "$outputname"; then
3191 ${RM}r "$tmpdir"
3192 fi
3193 ;;
3194 esac
3195 done
3196
3197 for file in $staticlibs; do
3198 func_basename "$file"
3199 name="$func_basename_result"
3200
3201 # Set up the ranlib parameters.
3202 oldlib="$destdir/$name"
3203
3204 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
3205
3206 if test -n "$stripme" && test -n "$old_striplib"; then
3207 func_show_eval "$old_striplib $oldlib" 'exit $?'
3208 fi
3209
3210 # Do each command in the postinstall commands.
3211 func_execute_cmds "$old_postinstall_cmds" 'exit $?'
3212 done
3213
3214 test -n "$future_libdirs" && \
3215 func_warning "remember to run \`$progname --finish$future_libdirs'"
3216
3217 if test -n "$current_libdirs"; then
3218 # Maybe just do a dry run.
3219 $opt_dry_run && current_libdirs=" -n$current_libdirs"
3220 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
3221 else
3222 exit $EXIT_SUCCESS
3223 fi
3224 }
3225
3226 test "$opt_mode" = install && func_mode_install ${1+"$@"}
3227
3228
3229 # func_generate_dlsyms outputname originator pic_p
3230 # Extract symbols from dlprefiles and create ${outputname}S.o with
3231 # a dlpreopen symbol table.
3232 func_generate_dlsyms ()
3233 {
3234 $opt_debug
3235 my_outputname="$1"
3236 my_originator="$2"
3237 my_pic_p="${3-no}"
3238 my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
3239 my_dlsyms=
3240
3241 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3242 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3243 my_dlsyms="${my_outputname}S.c"
3244 else
3245 func_error "not configured to extract global symbols from dlpreopened files"
3246 fi
3247 fi
3248
3249 if test -n "$my_dlsyms"; then
3250 case $my_dlsyms in
3251 "") ;;
3252 *.c)
3253 # Discover the nlist of each of the dlfiles.
3254 nlist="$output_objdir/${my_outputname}.nm"
3255
3256 func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
3257
3258 # Parse the name list into a source file.
3259 func_verbose "creating $output_objdir/$my_dlsyms"
3260
3261 $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
3262 /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
3263 /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
3264
3265 #ifdef __cplusplus
3266 extern \"C\" {
3267 #endif
3268
3269 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
3270 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
3271 #endif
3272
3273 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3274 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3275 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3276 relocations are performed -- see ld's documentation on pseudo-relocs. */
3277 # define LT_DLSYM_CONST
3278 #elif defined(__osf__)
3279 /* This system does not cope well with relocations in const data. */
3280 # define LT_DLSYM_CONST
3281 #else
3282 # define LT_DLSYM_CONST const
3283 #endif
3284
3285 /* External symbol declarations for the compiler. */\
3286 "
3287
3288 if test "$dlself" = yes; then
3289 func_verbose "generating symbol list for \`$output'"
3290
3291 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
3292
3293 # Add our own program objects to the symbol list.
3294 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
3295 for progfile in $progfiles; do
3296 func_to_tool_file "$progfile" func_convert_file_msys_to_w32
3297 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
3298 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
3299 done
3300
3301 if test -n "$exclude_expsyms"; then
3302 $opt_dry_run || {
3303 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3304 eval '$MV "$nlist"T "$nlist"'
3305 }
3306 fi
3307
3308 if test -n "$export_symbols_regex"; then
3309 $opt_dry_run || {
3310 eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3311 eval '$MV "$nlist"T "$nlist"'
3312 }
3313 fi
3314
3315 # Prepare the list of exported symbols
3316 if test -z "$export_symbols"; then
3317 export_symbols="$output_objdir/$outputname.exp"
3318 $opt_dry_run || {
3319 $RM $export_symbols
3320 eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3321 case $host in
3322 *cygwin* | *mingw* | *cegcc* )
3323 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3324 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
3325 ;;
3326 esac
3327 }
3328 else
3329 $opt_dry_run || {
3330 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
3331 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
3332 eval '$MV "$nlist"T "$nlist"'
3333 case $host in
3334 *cygwin* | *mingw* | *cegcc* )
3335 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3336 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
3337 ;;
3338 esac
3339 }
3340 fi
3341 fi
3342
3343 for dlprefile in $dlprefiles; do
3344 func_verbose "extracting global C symbols from \`$dlprefile'"
3345 func_basename "$dlprefile"
3346 name="$func_basename_result"
3347 case $host in
3348 *cygwin* | *mingw* | *cegcc* )
3349 # if an import library, we need to obtain dlname
3350 if func_win32_import_lib_p "$dlprefile"; then
3351 func_tr_sh "$dlprefile"
3352 eval "curr_lafile=\$libfile_$func_tr_sh_result"
3353 dlprefile_dlbasename=""
3354 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
3355 # Use subshell, to avoid clobbering current variable values
3356 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
3357 if test -n "$dlprefile_dlname" ; then
3358 func_basename "$dlprefile_dlname"
3359 dlprefile_dlbasename="$func_basename_result"
3360 else
3361 # no lafile. user explicitly requested -dlpreopen <import library>.
3362 $sharedlib_from_linklib_cmd "$dlprefile"
3363 dlprefile_dlbasename=$sharedlib_from_linklib_result
3364 fi
3365 fi
3366 $opt_dry_run || {
3367 if test -n "$dlprefile_dlbasename" ; then
3368 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
3369 else
3370 func_warning "Could not compute DLL name from $name"
3371 eval '$ECHO ": $name " >> "$nlist"'
3372 fi
3373 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3374 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
3375 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
3376 }
3377 else # not an import lib
3378 $opt_dry_run || {
3379 eval '$ECHO ": $name " >> "$nlist"'
3380 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3381 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3382 }
3383 fi
3384 ;;
3385 *)
3386 $opt_dry_run || {
3387 eval '$ECHO ": $name " >> "$nlist"'
3388 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3389 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3390 }
3391 ;;
3392 esac
3393 done
3394
3395 $opt_dry_run || {
3396 # Make sure we have at least an empty file.
3397 test -f "$nlist" || : > "$nlist"
3398
3399 if test -n "$exclude_expsyms"; then
3400 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3401 $MV "$nlist"T "$nlist"
3402 fi
3403
3404 # Try sorting and uniquifying the output.
3405 if $GREP -v "^: " < "$nlist" |
3406 if sort -k 3 </dev/null >/dev/null 2>&1; then
3407 sort -k 3
3408 else
3409 sort +2
3410 fi |
3411 uniq > "$nlist"S; then
3412 :
3413 else
3414 $GREP -v "^: " < "$nlist" > "$nlist"S
3415 fi
3416
3417 if test -f "$nlist"S; then
3418 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
3419 else
3420 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
3421 fi
3422
3423 echo >> "$output_objdir/$my_dlsyms" "\
3424
3425 /* The mapping between symbol names and symbols. */
3426 typedef struct {
3427 const char *name;
3428 void *address;
3429 } lt_dlsymlist;
3430 extern LT_DLSYM_CONST lt_dlsymlist
3431 lt_${my_prefix}_LTX_preloaded_symbols[];
3432 LT_DLSYM_CONST lt_dlsymlist
3433 lt_${my_prefix}_LTX_preloaded_symbols[] =
3434 {\
3435 { \"$my_originator\", (void *) 0 },"
3436
3437 case $need_lib_prefix in
3438 no)
3439 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
3440 ;;
3441 *)
3442 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
3443 ;;
3444 esac
3445 echo >> "$output_objdir/$my_dlsyms" "\
3446 {0, (void *) 0}
3447 };
3448
3449 /* This works around a problem in FreeBSD linker */
3450 #ifdef FREEBSD_WORKAROUND
3451 static const void *lt_preloaded_setup() {
3452 return lt_${my_prefix}_LTX_preloaded_symbols;
3453 }
3454 #endif
3455
3456 #ifdef __cplusplus
3457 }
3458 #endif\
3459 "
3460 } # !$opt_dry_run
3461
3462 pic_flag_for_symtable=
3463 case "$compile_command " in
3464 *" -static "*) ;;
3465 *)
3466 case $host in
3467 # compiling the symbol table file with pic_flag works around
3468 # a FreeBSD bug that causes programs to crash when -lm is
3469 # linked before any other PIC object. But we must not use
3470 # pic_flag when linking with -static. The problem exists in
3471 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3472 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3473 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
3474 *-*-hpux*)
3475 pic_flag_for_symtable=" $pic_flag" ;;
3476 *)
3477 if test "X$my_pic_p" != Xno; then
3478 pic_flag_for_symtable=" $pic_flag"
3479 fi
3480 ;;
3481 esac
3482 ;;
3483 esac
3484 symtab_cflags=
3485 for arg in $LTCFLAGS; do
3486 case $arg in
3487 -pie | -fpie | -fPIE) ;;
3488 *) func_append symtab_cflags " $arg" ;;
3489 esac
3490 done
3491
3492 # Now compile the dynamic symbol file.
3493 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
3494
3495 # Clean up the generated files.
3496 func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
3497
3498 # Transform the symbol file into the correct name.
3499 symfileobj="$output_objdir/${my_outputname}S.$objext"
3500 case $host in
3501 *cygwin* | *mingw* | *cegcc* )
3502 if test -f "$output_objdir/$my_outputname.def"; then
3503 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3504 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3505 else
3506 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3507 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3508 fi
3509 ;;
3510 *)
3511 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3512 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3513 ;;
3514 esac
3515 ;;
3516 *)
3517 func_fatal_error "unknown suffix for \`$my_dlsyms'"
3518 ;;
3519 esac
3520 else
3521 # We keep going just in case the user didn't refer to
3522 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3523 # really was required.
3524
3525 # Nullify the symbol file.
3526 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
3527 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
3528 fi
3529 }
3530
3531 # func_win32_libid arg
3532 # return the library type of file 'arg'
3533 #
3534 # Need a lot of goo to handle *both* DLLs and import libs
3535 # Has to be a shell function in order to 'eat' the argument
3536 # that is supplied when $file_magic_command is called.
3537 # Despite the name, also deal with 64 bit binaries.
3538 func_win32_libid ()
3539 {
3540 $opt_debug
3541 win32_libid_type="unknown"
3542 win32_fileres=`file -L $1 2>/dev/null`
3543 case $win32_fileres in
3544 *ar\ archive\ import\ library*) # definitely import
3545 win32_libid_type="x86 archive import"
3546 ;;
3547 *ar\ archive*) # could be an import, or static
3548 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
3549 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
3550 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
3551 func_to_tool_file "$1" func_convert_file_msys_to_w32
3552 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
3553 $SED -n -e '
3554 1,100{
3555 / I /{
3556 s,.*,import,
3557 p
3558 q
3559 }
3560 }'`
3561 case $win32_nmres in
3562 import*) win32_libid_type="x86 archive import";;
3563 *) win32_libid_type="x86 archive static";;
3564 esac
3565 fi
3566 ;;
3567 *DLL*)
3568 win32_libid_type="x86 DLL"
3569 ;;
3570 *executable*) # but shell scripts are "executable" too...
3571 case $win32_fileres in
3572 *MS\ Windows\ PE\ Intel*)
3573 win32_libid_type="x86 DLL"
3574 ;;
3575 esac
3576 ;;
3577 esac
3578 $ECHO "$win32_libid_type"
3579 }
3580
3581 # func_cygming_dll_for_implib ARG
3582 #
3583 # Platform-specific function to extract the
3584 # name of the DLL associated with the specified
3585 # import library ARG.
3586 # Invoked by eval'ing the libtool variable
3587 # $sharedlib_from_linklib_cmd
3588 # Result is available in the variable
3589 # $sharedlib_from_linklib_result
3590 func_cygming_dll_for_implib ()
3591 {
3592 $opt_debug
3593 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
3594 }
3595
3596 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
3597 #
3598 # The is the core of a fallback implementation of a
3599 # platform-specific function to extract the name of the
3600 # DLL associated with the specified import library LIBNAME.
3601 #
3602 # SECTION_NAME is either .idata$6 or .idata$7, depending
3603 # on the platform and compiler that created the implib.
3604 #
3605 # Echos the name of the DLL associated with the
3606 # specified import library.
3607 func_cygming_dll_for_implib_fallback_core ()
3608 {
3609 $opt_debug
3610 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
3611 $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
3612 $SED '/^Contents of section '"$match_literal"':/{
3613 # Place marker at beginning of archive member dllname section
3614 s/.*/====MARK====/
3615 p
3616 d
3617 }
3618 # These lines can sometimes be longer than 43 characters, but
3619 # are always uninteresting
3620 /:[ ]*file format pe[i]\{,1\}-/d
3621 /^In archive [^:]*:/d
3622 # Ensure marker is printed
3623 /^====MARK====/p
3624 # Remove all lines with less than 43 characters
3625 /^.\{43\}/!d
3626 # From remaining lines, remove first 43 characters
3627 s/^.\{43\}//' |
3628 $SED -n '
3629 # Join marker and all lines until next marker into a single line
3630 /^====MARK====/ b para
3631 H
3632 $ b para
3633 b
3634 :para
3635 x
3636 s/\n//g
3637 # Remove the marker
3638 s/^====MARK====//
3639 # Remove trailing dots and whitespace
3640 s/[\. \t]*$//
3641 # Print
3642 /./p' |
3643 # we now have a list, one entry per line, of the stringified
3644 # contents of the appropriate section of all members of the
3645 # archive which possess that section. Heuristic: eliminate
3646 # all those which have a first or second character that is
3647 # a '.' (that is, objdump's representation of an unprintable
3648 # character.) This should work for all archives with less than
3649 # 0x302f exports -- but will fail for DLLs whose name actually
3650 # begins with a literal '.' or a single character followed by
3651 # a '.'.
3652 #
3653 # Of those that remain, print the first one.
3654 $SED -e '/^\./d;/^.\./d;q'
3655 }
3656
3657 # func_cygming_gnu_implib_p ARG
3658 # This predicate returns with zero status (TRUE) if
3659 # ARG is a GNU/binutils-style import library. Returns
3660 # with nonzero status (FALSE) otherwise.
3661 func_cygming_gnu_implib_p ()
3662 {
3663 $opt_debug
3664 func_to_tool_file "$1" func_convert_file_msys_to_w32
3665 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)$'`
3666 test -n "$func_cygming_gnu_implib_tmp"
3667 }
3668
3669 # func_cygming_ms_implib_p ARG
3670 # This predicate returns with zero status (TRUE) if
3671 # ARG is an MS-style import library. Returns
3672 # with nonzero status (FALSE) otherwise.
3673 func_cygming_ms_implib_p ()
3674 {
3675 $opt_debug
3676 func_to_tool_file "$1" func_convert_file_msys_to_w32
3677 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
3678 test -n "$func_cygming_ms_implib_tmp"
3679 }
3680
3681 # func_cygming_dll_for_implib_fallback ARG
3682 # Platform-specific function to extract the
3683 # name of the DLL associated with the specified
3684 # import library ARG.
3685 #
3686 # This fallback implementation is for use when $DLLTOOL
3687 # does not support the --identify-strict option.
3688 # Invoked by eval'ing the libtool variable
3689 # $sharedlib_from_linklib_cmd
3690 # Result is available in the variable
3691 # $sharedlib_from_linklib_result
3692 func_cygming_dll_for_implib_fallback ()
3693 {
3694 $opt_debug
3695 if func_cygming_gnu_implib_p "$1" ; then
3696 # binutils import library
3697 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
3698 elif func_cygming_ms_implib_p "$1" ; then
3699 # ms-generated import library
3700 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
3701 else
3702 # unknown
3703 sharedlib_from_linklib_result=""
3704 fi
3705 }
3706
3707
3708 # func_extract_an_archive dir oldlib
3709 func_extract_an_archive ()
3710 {
3711 $opt_debug
3712 f_ex_an_ar_dir="$1"; shift
3713 f_ex_an_ar_oldlib="$1"
3714 if test "$lock_old_archive_extraction" = yes; then
3715 lockfile=$f_ex_an_ar_oldlib.lock
3716 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
3717 func_echo "Waiting for $lockfile to be removed"
3718 sleep 2
3719 done
3720 fi
3721 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
3722 'stat=$?; rm -f "$lockfile"; exit $stat'
3723 if test "$lock_old_archive_extraction" = yes; then
3724 $opt_dry_run || rm -f "$lockfile"
3725 fi
3726 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3727 :
3728 else
3729 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
3730 fi
3731 }
3732
3733
3734 # func_extract_archives gentop oldlib ...
3735 func_extract_archives ()
3736 {
3737 $opt_debug
3738 my_gentop="$1"; shift
3739 my_oldlibs=${1+"$@"}
3740 my_oldobjs=""
3741 my_xlib=""
3742 my_xabs=""
3743 my_xdir=""
3744
3745 for my_xlib in $my_oldlibs; do
3746 # Extract the objects.
3747 case $my_xlib in
3748 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3749 *) my_xabs=`pwd`"/$my_xlib" ;;
3750 esac
3751 func_basename "$my_xlib"
3752 my_xlib="$func_basename_result"
3753 my_xlib_u=$my_xlib
3754 while :; do
3755 case " $extracted_archives " in
3756 *" $my_xlib_u "*)
3757 func_arith $extracted_serial + 1
3758 extracted_serial=$func_arith_result
3759 my_xlib_u=lt$extracted_serial-$my_xlib ;;
3760 *) break ;;
3761 esac
3762 done
3763 extracted_archives="$extracted_archives $my_xlib_u"
3764 my_xdir="$my_gentop/$my_xlib_u"
3765
3766 func_mkdir_p "$my_xdir"
3767
3768 case $host in
3769 *-darwin*)
3770 func_verbose "Extracting $my_xabs"
3771 # Do not bother doing anything if just a dry run
3772 $opt_dry_run || {
3773 darwin_orig_dir=`pwd`
3774 cd $my_xdir || exit $?
3775 darwin_archive=$my_xabs
3776 darwin_curdir=`pwd`
3777 darwin_base_archive=`basename "$darwin_archive"`
3778 darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
3779 if test -n "$darwin_arches"; then
3780 darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
3781 darwin_arch=
3782 func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
3783 for darwin_arch in $darwin_arches ; do
3784 func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3785 $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3786 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3787 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3788 cd "$darwin_curdir"
3789 $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3790 done # $darwin_arches
3791 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
3792 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
3793 darwin_file=
3794 darwin_files=
3795 for darwin_file in $darwin_filelist; do
3796 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
3797 $LIPO -create -output "$darwin_file" $darwin_files
3798 done # $darwin_filelist
3799 $RM -rf unfat-$$
3800 cd "$darwin_orig_dir"
3801 else
3802 cd $darwin_orig_dir
3803 func_extract_an_archive "$my_xdir" "$my_xabs"
3804 fi # $darwin_arches
3805 } # !$opt_dry_run
3806 ;;
3807 *)
3808 func_extract_an_archive "$my_xdir" "$my_xabs"
3809 ;;
3810 esac
3811 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
3812 done
3813
3814 func_extract_archives_result="$my_oldobjs"
3815 }
3816
3817
3818 # func_emit_wrapper [arg=no]
3819 #
3820 # Emit a libtool wrapper script on stdout.
3821 # Don't directly open a file because we may want to
3822 # incorporate the script contents within a cygwin/mingw
3823 # wrapper executable. Must ONLY be called from within
3824 # func_mode_link because it depends on a number of variables
3825 # set therein.
3826 #
3827 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
3828 # variable will take. If 'yes', then the emitted script
3829 # will assume that the directory in which it is stored is
3830 # the $objdir directory. This is a cygwin/mingw-specific
3831 # behavior.
3832 func_emit_wrapper ()
3833 {
3834 func_emit_wrapper_arg1=${1-no}
3835
3836 $ECHO "\
3837 #! $SHELL
3838
3839 # $output - temporary wrapper script for $objdir/$outputname
3840 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3841 #
3842 # The $output program cannot be directly executed until all the libtool
3843 # libraries that it depends on are installed.
3844 #
3845 # This wrapper script should never be moved out of the build directory.
3846 # If it is, it will not operate correctly.
3847
3848 # Sed substitution that helps us do robust quoting. It backslashifies
3849 # metacharacters that are still active within double-quoted strings.
3850 sed_quote_subst='$sed_quote_subst'
3851
3852 # Be Bourne compatible
3853 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
3854 emulate sh
3855 NULLCMD=:
3856 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
3857 # is contrary to our usage. Disable this feature.
3858 alias -g '\${1+\"\$@\"}'='\"\$@\"'
3859 setopt NO_GLOB_SUBST
3860 else
3861 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
3862 fi
3863 BIN_SH=xpg4; export BIN_SH # for Tru64
3864 DUALCASE=1; export DUALCASE # for MKS sh
3865
3866 # The HP-UX ksh and POSIX shell print the target directory to stdout
3867 # if CDPATH is set.
3868 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3869
3870 relink_command=\"$relink_command\"
3871
3872 # This environment variable determines our operation mode.
3873 if test \"\$libtool_install_magic\" = \"$magic\"; then
3874 # install mode needs the following variables:
3875 generated_by_libtool_version='$macro_version'
3876 notinst_deplibs='$notinst_deplibs'
3877 else
3878 # When we are sourced in execute mode, \$file and \$ECHO are already set.
3879 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3880 file=\"\$0\""
3881
3882 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
3883 $ECHO "\
3884
3885 # A function that is used when there is no print builtin or printf.
3886 func_fallback_echo ()
3887 {
3888 eval 'cat <<_LTECHO_EOF
3889 \$1
3890 _LTECHO_EOF'
3891 }
3892 ECHO=\"$qECHO\"
3893 fi
3894
3895 # Very basic option parsing. These options are (a) specific to
3896 # the libtool wrapper, (b) are identical between the wrapper
3897 # /script/ and the wrapper /executable/ which is used only on
3898 # windows platforms, and (c) all begin with the string "--lt-"
3899 # (application programs are unlikely to have options which match
3900 # this pattern).
3901 #
3902 # There are only two supported options: --lt-debug and
3903 # --lt-dump-script. There is, deliberately, no --lt-help.
3904 #
3905 # The first argument to this parsing function should be the
3906 # script's $0 value, followed by "$@".
3907 lt_option_debug=
3908 func_parse_lt_options ()
3909 {
3910 lt_script_arg0=\$0
3911 shift
3912 for lt_opt
3913 do
3914 case \"\$lt_opt\" in
3915 --lt-debug) lt_option_debug=1 ;;
3916 --lt-dump-script)
3917 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3918 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3919 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3920 cat \"\$lt_dump_D/\$lt_dump_F\"
3921 exit 0
3922 ;;
3923 --lt-*)
3924 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3925 exit 1
3926 ;;
3927 esac
3928 done
3929
3930 # Print the debug banner immediately:
3931 if test -n \"\$lt_option_debug\"; then
3932 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3933 fi
3934 }
3935
3936 # Used when --lt-debug. Prints its arguments to stdout
3937 # (redirection is the responsibility of the caller)
3938 func_lt_dump_args ()
3939 {
3940 lt_dump_args_N=1;
3941 for lt_arg
3942 do
3943 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3944 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3945 done
3946 }
3947
3948 # Core function for launching the target application
3949 func_exec_program_core ()
3950 {
3951 "
3952 case $host in
3953 # Backslashes separate directories on plain windows
3954 *-*-mingw | *-*-os2* | *-cegcc*)
3955 $ECHO "\
3956 if test -n \"\$lt_option_debug\"; then
3957 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3958 func_lt_dump_args \${1+\"\$@\"} 1>&2
3959 fi
3960 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3961 "
3962 ;;
3963
3964 *)
3965 $ECHO "\
3966 if test -n \"\$lt_option_debug\"; then
3967 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3968 func_lt_dump_args \${1+\"\$@\"} 1>&2
3969 fi
3970 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3971 "
3972 ;;
3973 esac
3974 $ECHO "\
3975 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3976 exit 1
3977 }
3978
3979 # A function to encapsulate launching the target application
3980 # Strips options in the --lt-* namespace from \$@ and
3981 # launches target application with the remaining arguments.
3982 func_exec_program ()
3983 {
3984 for lt_wr_arg
3985 do
3986 case \$lt_wr_arg in
3987 --lt-*) ;;
3988 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3989 esac
3990 shift
3991 done
3992 func_exec_program_core \${1+\"\$@\"}
3993 }
3994
3995 # Parse options
3996 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
3997
3998 # Find the directory that this script lives in.
3999 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
4000 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4001
4002 # Follow symbolic links until we get to the real thisdir.
4003 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
4004 while test -n \"\$file\"; do
4005 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
4006
4007 # If there was a directory component, then change thisdir.
4008 if test \"x\$destdir\" != \"x\$file\"; then
4009 case \"\$destdir\" in
4010 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4011 *) thisdir=\"\$thisdir/\$destdir\" ;;
4012 esac
4013 fi
4014
4015 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
4016 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
4017 done
4018
4019 # Usually 'no', except on cygwin/mingw when embedded into
4020 # the cwrapper.
4021 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
4022 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
4023 # special case for '.'
4024 if test \"\$thisdir\" = \".\"; then
4025 thisdir=\`pwd\`
4026 fi
4027 # remove .libs from thisdir
4028 case \"\$thisdir\" in
4029 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
4030 $objdir ) thisdir=. ;;
4031 esac
4032 fi
4033
4034 # Try to get the absolute directory name.
4035 absdir=\`cd \"\$thisdir\" && pwd\`
4036 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4037 "
4038
4039 if test "$fast_install" = yes; then
4040 $ECHO "\
4041 program=lt-'$outputname'$exeext
4042 progdir=\"\$thisdir/$objdir\"
4043
4044 if test ! -f \"\$progdir/\$program\" ||
4045 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4046 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4047
4048 file=\"\$\$-\$program\"
4049
4050 if test ! -d \"\$progdir\"; then
4051 $MKDIR \"\$progdir\"
4052 else
4053 $RM \"\$progdir/\$file\"
4054 fi"
4055
4056 $ECHO "\
4057
4058 # relink executable if necessary
4059 if test -n \"\$relink_command\"; then
4060 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4061 else
4062 $ECHO \"\$relink_command_output\" >&2
4063 $RM \"\$progdir/\$file\"
4064 exit 1
4065 fi
4066 fi
4067
4068 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4069 { $RM \"\$progdir/\$program\";
4070 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4071 $RM \"\$progdir/\$file\"
4072 fi"
4073 else
4074 $ECHO "\
4075 program='$outputname'
4076 progdir=\"\$thisdir/$objdir\"
4077 "
4078 fi
4079
4080 $ECHO "\
4081
4082 if test -f \"\$progdir/\$program\"; then"
4083
4084 # fixup the dll searchpath if we need to.
4085 #
4086 # Fix the DLL searchpath if we need to. Do this before prepending
4087 # to shlibpath, because on Windows, both are PATH and uninstalled
4088 # libraries must come first.
4089 if test -n "$dllsearchpath"; then
4090 $ECHO "\
4091 # Add the dll search path components to the executable PATH
4092 PATH=$dllsearchpath:\$PATH
4093 "
4094 fi
4095
4096 # Export our shlibpath_var if we have one.
4097 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4098 $ECHO "\
4099 # Add our own library path to $shlibpath_var
4100 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4101
4102 # Some systems cannot cope with colon-terminated $shlibpath_var
4103 # The second colon is a workaround for a bug in BeOS R4 sed
4104 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
4105
4106 export $shlibpath_var
4107 "
4108 fi
4109
4110 $ECHO "\
4111 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4112 # Run the actual program with our arguments.
4113 func_exec_program \${1+\"\$@\"}
4114 fi
4115 else
4116 # The program doesn't exist.
4117 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
4118 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
4119 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
4120 exit 1
4121 fi
4122 fi\
4123 "
4124 }
4125
4126
4127 # func_emit_cwrapperexe_src
4128 # emit the source code for a wrapper executable on stdout
4129 # Must ONLY be called from within func_mode_link because
4130 # it depends on a number of variable set therein.
4131 func_emit_cwrapperexe_src ()
4132 {
4133 cat <<EOF
4134
4135 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4136 Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
4137
4138 The $output program cannot be directly executed until all the libtool
4139 libraries that it depends on are installed.
4140
4141 This wrapper executable should never be moved out of the build directory.
4142 If it is, it will not operate correctly.
4143 */
4144 EOF
4145 cat <<"EOF"
4146 #ifdef _MSC_VER
4147 # define _CRT_SECURE_NO_DEPRECATE 1
4148 #endif
4149 #include <stdio.h>
4150 #include <stdlib.h>
4151 #ifdef _MSC_VER
4152 # include <direct.h>
4153 # include <process.h>
4154 # include <io.h>
4155 #else
4156 # include <unistd.h>
4157 # include <stdint.h>
4158 # ifdef __CYGWIN__
4159 # include <io.h>
4160 # endif
4161 #endif
4162 #include <malloc.h>
4163 #include <stdarg.h>
4164 #include <assert.h>
4165 #include <string.h>
4166 #include <ctype.h>
4167 #include <errno.h>
4168 #include <fcntl.h>
4169 #include <sys/stat.h>
4170
4171 /* declarations of non-ANSI functions */
4172 #if defined(__MINGW32__)
4173 # ifdef __STRICT_ANSI__
4174 int _putenv (const char *);
4175 # endif
4176 #elif defined(__CYGWIN__)
4177 # ifdef __STRICT_ANSI__
4178 char *realpath (const char *, char *);
4179 int putenv (char *);
4180 int setenv (const char *, const char *, int);
4181 # endif
4182 /* #elif defined (other platforms) ... */
4183 #endif
4184
4185 /* portability defines, excluding path handling macros */
4186 #if defined(_MSC_VER)
4187 # define setmode _setmode
4188 # define stat _stat
4189 # define chmod _chmod
4190 # define getcwd _getcwd
4191 # define putenv _putenv
4192 # define S_IXUSR _S_IEXEC
4193 # ifndef _INTPTR_T_DEFINED
4194 # define _INTPTR_T_DEFINED
4195 # define intptr_t int
4196 # endif
4197 #elif defined(__MINGW32__)
4198 # define setmode _setmode
4199 # define stat _stat
4200 # define chmod _chmod
4201 # define getcwd _getcwd
4202 # define putenv _putenv
4203 #elif defined(__CYGWIN__)
4204 # define HAVE_SETENV
4205 # define FOPEN_WB "wb"
4206 /* #elif defined (other platforms) ... */
4207 #endif
4208
4209 #if defined(PATH_MAX)
4210 # define LT_PATHMAX PATH_MAX
4211 #elif defined(MAXPATHLEN)
4212 # define LT_PATHMAX MAXPATHLEN
4213 #else
4214 # define LT_PATHMAX 1024
4215 #endif
4216
4217 #ifndef S_IXOTH
4218 # define S_IXOTH 0
4219 #endif
4220 #ifndef S_IXGRP
4221 # define S_IXGRP 0
4222 #endif
4223
4224 /* path handling portability macros */
4225 #ifndef DIR_SEPARATOR
4226 # define DIR_SEPARATOR '/'
4227 # define PATH_SEPARATOR ':'
4228 #endif
4229
4230 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4231 defined (__OS2__)
4232 # define HAVE_DOS_BASED_FILE_SYSTEM
4233 # define FOPEN_WB "wb"
4234 # ifndef DIR_SEPARATOR_2
4235 # define DIR_SEPARATOR_2 '\\'
4236 # endif
4237 # ifndef PATH_SEPARATOR_2
4238 # define PATH_SEPARATOR_2 ';'
4239 # endif
4240 #endif
4241
4242 #ifndef DIR_SEPARATOR_2
4243 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4244 #else /* DIR_SEPARATOR_2 */
4245 # define IS_DIR_SEPARATOR(ch) \
4246 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4247 #endif /* DIR_SEPARATOR_2 */
4248
4249 #ifndef PATH_SEPARATOR_2
4250 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4251 #else /* PATH_SEPARATOR_2 */
4252 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4253 #endif /* PATH_SEPARATOR_2 */
4254
4255 #ifndef FOPEN_WB
4256 # define FOPEN_WB "w"
4257 #endif
4258 #ifndef _O_BINARY
4259 # define _O_BINARY 0
4260 #endif
4261
4262 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4263 #define XFREE(stale) do { \
4264 if (stale) { free ((void *) stale); stale = 0; } \
4265 } while (0)
4266
4267 #if defined(LT_DEBUGWRAPPER)
4268 static int lt_debug = 1;
4269 #else
4270 static int lt_debug = 0;
4271 #endif
4272
4273 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
4274
4275 void *xmalloc (size_t num);
4276 char *xstrdup (const char *string);
4277 const char *base_name (const char *name);
4278 char *find_executable (const char *wrapper);
4279 char *chase_symlinks (const char *pathspec);
4280 int make_executable (const char *path);
4281 int check_executable (const char *path);
4282 char *strendzap (char *str, const char *pat);
4283 void lt_debugprintf (const char *file, int line, const char *fmt, ...);
4284 void lt_fatal (const char *file, int line, const char *message, ...);
4285 static const char *nonnull (const char *s);
4286 static const char *nonempty (const char *s);
4287 void lt_setenv (const char *name, const char *value);
4288 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
4289 void lt_update_exe_path (const char *name, const char *value);
4290 void lt_update_lib_path (const char *name, const char *value);
4291 char **prepare_spawn (char **argv);
4292 void lt_dump_script (FILE *f);
4293 EOF
4294
4295 cat <<EOF
4296 volatile const char * MAGIC_EXE = "$magic_exe";
4297 const char * LIB_PATH_VARNAME = "$shlibpath_var";
4298 EOF
4299
4300 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4301 func_to_host_path "$temp_rpath"
4302 cat <<EOF
4303 const char * LIB_PATH_VALUE = "$func_to_host_path_result";
4304 EOF
4305 else
4306 cat <<"EOF"
4307 const char * LIB_PATH_VALUE = "";
4308 EOF
4309 fi
4310
4311 if test -n "$dllsearchpath"; then
4312 func_to_host_path "$dllsearchpath:"
4313 cat <<EOF
4314 const char * EXE_PATH_VARNAME = "PATH";
4315 const char * EXE_PATH_VALUE = "$func_to_host_path_result";
4316 EOF
4317 else
4318 cat <<"EOF"
4319 const char * EXE_PATH_VARNAME = "";
4320 const char * EXE_PATH_VALUE = "";
4321 EOF
4322 fi
4323
4324 if test "$fast_install" = yes; then
4325 cat <<EOF
4326 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
4327 EOF
4328 else
4329 cat <<EOF
4330 const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
4331 EOF
4332 fi
4333
4334
4335 cat <<"EOF"
4336
4337 #define LTWRAPPER_OPTION_PREFIX "--lt-"
4338
4339 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
4340 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
4341 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
4342
4343 int
4344 main (int argc, char *argv[])
4345 {
4346 char **newargz;
4347 int newargc;
4348 char *tmp_pathspec;
4349 char *actual_cwrapper_path;
4350 char *actual_cwrapper_name;
4351 char *target_name;
4352 char *lt_argv_zero;
4353 intptr_t rval = 127;
4354
4355 int i;
4356
4357 program_name = (char *) xstrdup (base_name (argv[0]));
4358 newargz = XMALLOC (char *, argc + 1);
4359
4360 /* very simple arg parsing; don't want to rely on getopt
4361 * also, copy all non cwrapper options to newargz, except
4362 * argz[0], which is handled differently
4363 */
4364 newargc=0;
4365 for (i = 1; i < argc; i++)
4366 {
4367 if (strcmp (argv[i], dumpscript_opt) == 0)
4368 {
4369 EOF
4370 case "$host" in
4371 *mingw* | *cygwin* )
4372 # make stdout use "unix" line endings
4373 echo " setmode(1,_O_BINARY);"
4374 ;;
4375 esac
4376
4377 cat <<"EOF"
4378 lt_dump_script (stdout);
4379 return 0;
4380 }
4381 if (strcmp (argv[i], debug_opt) == 0)
4382 {
4383 lt_debug = 1;
4384 continue;
4385 }
4386 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
4387 {
4388 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
4389 namespace, but it is not one of the ones we know about and
4390 have already dealt with, above (inluding dump-script), then
4391 report an error. Otherwise, targets might begin to believe
4392 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
4393 namespace. The first time any user complains about this, we'll
4394 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
4395 or a configure.ac-settable value.
4396 */
4397 lt_fatal (__FILE__, __LINE__,
4398 "unrecognized %s option: '%s'",
4399 ltwrapper_option_prefix, argv[i]);
4400 }
4401 /* otherwise ... */
4402 newargz[++newargc] = xstrdup (argv[i]);
4403 }
4404 newargz[++newargc] = NULL;
4405
4406 EOF
4407 cat <<EOF
4408 /* The GNU banner must be the first non-error debug message */
4409 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
4410 EOF
4411 cat <<"EOF"
4412 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
4413 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
4414
4415 tmp_pathspec = find_executable (argv[0]);
4416 if (tmp_pathspec == NULL)
4417 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
4418 lt_debugprintf (__FILE__, __LINE__,
4419 "(main) found exe (before symlink chase) at: %s\n",
4420 tmp_pathspec);
4421
4422 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
4423 lt_debugprintf (__FILE__, __LINE__,
4424 "(main) found exe (after symlink chase) at: %s\n",
4425 actual_cwrapper_path);
4426 XFREE (tmp_pathspec);
4427
4428 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
4429 strendzap (actual_cwrapper_path, actual_cwrapper_name);
4430
4431 /* wrapper name transforms */
4432 strendzap (actual_cwrapper_name, ".exe");
4433 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
4434 XFREE (actual_cwrapper_name);
4435 actual_cwrapper_name = tmp_pathspec;
4436 tmp_pathspec = 0;
4437
4438 /* target_name transforms -- use actual target program name; might have lt- prefix */
4439 target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
4440 strendzap (target_name, ".exe");
4441 tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
4442 XFREE (target_name);
4443 target_name = tmp_pathspec;
4444 tmp_pathspec = 0;
4445
4446 lt_debugprintf (__FILE__, __LINE__,
4447 "(main) libtool target name: %s\n",
4448 target_name);
4449 EOF
4450
4451 cat <<EOF
4452 newargz[0] =
4453 XMALLOC (char, (strlen (actual_cwrapper_path) +
4454 strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
4455 strcpy (newargz[0], actual_cwrapper_path);
4456 strcat (newargz[0], "$objdir");
4457 strcat (newargz[0], "/");
4458 EOF
4459
4460 cat <<"EOF"
4461 /* stop here, and copy so we don't have to do this twice */
4462 tmp_pathspec = xstrdup (newargz[0]);
4463
4464 /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
4465 strcat (newargz[0], actual_cwrapper_name);
4466
4467 /* DO want the lt- prefix here if it exists, so use target_name */
4468 lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
4469 XFREE (tmp_pathspec);
4470 tmp_pathspec = NULL;
4471 EOF
4472
4473 case $host_os in
4474 mingw*)
4475 cat <<"EOF"
4476 {
4477 char* p;
4478 while ((p = strchr (newargz[0], '\\')) != NULL)
4479 {
4480 *p = '/';
4481 }
4482 while ((p = strchr (lt_argv_zero, '\\')) != NULL)
4483 {
4484 *p = '/';
4485 }
4486 }
4487 EOF
4488 ;;
4489 esac
4490
4491 cat <<"EOF"
4492 XFREE (target_name);
4493 XFREE (actual_cwrapper_path);
4494 XFREE (actual_cwrapper_name);
4495
4496 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
4497 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
4498 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
4499 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
4500 because on Windows, both *_VARNAMEs are PATH but uninstalled
4501 libraries must come first. */
4502 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
4503 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
4504
4505 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
4506 nonnull (lt_argv_zero));
4507 for (i = 0; i < newargc; i++)
4508 {
4509 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
4510 i, nonnull (newargz[i]));
4511 }
4512
4513 EOF
4514
4515 case $host_os in
4516 mingw*)
4517 cat <<"EOF"
4518 /* execv doesn't actually work on mingw as expected on unix */
4519 newargz = prepare_spawn (newargz);
4520 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
4521 if (rval == -1)
4522 {
4523 /* failed to start process */
4524 lt_debugprintf (__FILE__, __LINE__,
4525 "(main) failed to launch target \"%s\": %s\n",
4526 lt_argv_zero, nonnull (strerror (errno)));
4527 return 127;
4528 }
4529 return rval;
4530 EOF
4531 ;;
4532 *)
4533 cat <<"EOF"
4534 execv (lt_argv_zero, newargz);
4535 return rval; /* =127, but avoids unused variable warning */
4536 EOF
4537 ;;
4538 esac
4539
4540 cat <<"EOF"
4541 }
4542
4543 void *
4544 xmalloc (size_t num)
4545 {
4546 void *p = (void *) malloc (num);
4547 if (!p)
4548 lt_fatal (__FILE__, __LINE__, "memory exhausted");
4549
4550 return p;
4551 }
4552
4553 char *
4554 xstrdup (const char *string)
4555 {
4556 return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
4557 string) : NULL;
4558 }
4559
4560 const char *
4561 base_name (const char *name)
4562 {
4563 const char *base;
4564
4565 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4566 /* Skip over the disk name in MSDOS pathnames. */
4567 if (isalpha ((unsigned char) name[0]) && name[1] == ':')
4568 name += 2;
4569 #endif
4570
4571 for (base = name; *name; name++)
4572 if (IS_DIR_SEPARATOR (*name))
4573 base = name + 1;
4574 return base;
4575 }
4576
4577 int
4578 check_executable (const char *path)
4579 {
4580 struct stat st;
4581
4582 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
4583 nonempty (path));
4584 if ((!path) || (!*path))
4585 return 0;
4586
4587 if ((stat (path, &st) >= 0)
4588 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
4589 return 1;
4590 else
4591 return 0;
4592 }
4593
4594 int
4595 make_executable (const char *path)
4596 {
4597 int rval = 0;
4598 struct stat st;
4599
4600 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
4601 nonempty (path));
4602 if ((!path) || (!*path))
4603 return 0;
4604
4605 if (stat (path, &st) >= 0)
4606 {
4607 rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
4608 }
4609 return rval;
4610 }
4611
4612 /* Searches for the full path of the wrapper. Returns
4613 newly allocated full path name if found, NULL otherwise
4614 Does not chase symlinks, even on platforms that support them.
4615 */
4616 char *
4617 find_executable (const char *wrapper)
4618 {
4619 int has_slash = 0;
4620 const char *p;
4621 const char *p_next;
4622 /* static buffer for getcwd */
4623 char tmp[LT_PATHMAX + 1];
4624 int tmp_len;
4625 char *concat_name;
4626
4627 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
4628 nonempty (wrapper));
4629
4630 if ((wrapper == NULL) || (*wrapper == '\0'))
4631 return NULL;
4632
4633 /* Absolute path? */
4634 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4635 if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
4636 {
4637 concat_name = xstrdup (wrapper);
4638 if (check_executable (concat_name))
4639 return concat_name;
4640 XFREE (concat_name);
4641 }
4642 else
4643 {
4644 #endif
4645 if (IS_DIR_SEPARATOR (wrapper[0]))
4646 {
4647 concat_name = xstrdup (wrapper);
4648 if (check_executable (concat_name))
4649 return concat_name;
4650 XFREE (concat_name);
4651 }
4652 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4653 }
4654 #endif
4655
4656 for (p = wrapper; *p; p++)
4657 if (*p == '/')
4658 {
4659 has_slash = 1;
4660 break;
4661 }
4662 if (!has_slash)
4663 {
4664 /* no slashes; search PATH */
4665 const char *path = getenv ("PATH");
4666 if (path != NULL)
4667 {
4668 for (p = path; *p; p = p_next)
4669 {
4670 const char *q;
4671 size_t p_len;
4672 for (q = p; *q; q++)
4673 if (IS_PATH_SEPARATOR (*q))
4674 break;
4675 p_len = q - p;
4676 p_next = (*q == '\0' ? q : q + 1);
4677 if (p_len == 0)
4678 {
4679 /* empty path: current directory */
4680 if (getcwd (tmp, LT_PATHMAX) == NULL)
4681 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4682 nonnull (strerror (errno)));
4683 tmp_len = strlen (tmp);
4684 concat_name =
4685 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4686 memcpy (concat_name, tmp, tmp_len);
4687 concat_name[tmp_len] = '/';
4688 strcpy (concat_name + tmp_len + 1, wrapper);
4689 }
4690 else
4691 {
4692 concat_name =
4693 XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
4694 memcpy (concat_name, p, p_len);
4695 concat_name[p_len] = '/';
4696 strcpy (concat_name + p_len + 1, wrapper);
4697 }
4698 if (check_executable (concat_name))
4699 return concat_name;
4700 XFREE (concat_name);
4701 }
4702 }
4703 /* not found in PATH; assume curdir */
4704 }
4705 /* Relative path | not found in path: prepend cwd */
4706 if (getcwd (tmp, LT_PATHMAX) == NULL)
4707 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4708 nonnull (strerror (errno)));
4709 tmp_len = strlen (tmp);
4710 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4711 memcpy (concat_name, tmp, tmp_len);
4712 concat_name[tmp_len] = '/';
4713 strcpy (concat_name + tmp_len + 1, wrapper);
4714
4715 if (check_executable (concat_name))
4716 return concat_name;
4717 XFREE (concat_name);
4718 return NULL;
4719 }
4720
4721 char *
4722 chase_symlinks (const char *pathspec)
4723 {
4724 #ifndef S_ISLNK
4725 return xstrdup (pathspec);
4726 #else
4727 char buf[LT_PATHMAX];
4728 struct stat s;
4729 char *tmp_pathspec = xstrdup (pathspec);
4730 char *p;
4731 int has_symlinks = 0;
4732 while (strlen (tmp_pathspec) && !has_symlinks)
4733 {
4734 lt_debugprintf (__FILE__, __LINE__,
4735 "checking path component for symlinks: %s\n",
4736 tmp_pathspec);
4737 if (lstat (tmp_pathspec, &s) == 0)
4738 {
4739 if (S_ISLNK (s.st_mode) != 0)
4740 {
4741 has_symlinks = 1;
4742 break;
4743 }
4744
4745 /* search backwards for last DIR_SEPARATOR */
4746 p = tmp_pathspec + strlen (tmp_pathspec) - 1;
4747 while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4748 p--;
4749 if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4750 {
4751 /* no more DIR_SEPARATORS left */
4752 break;
4753 }
4754 *p = '\0';
4755 }
4756 else
4757 {
4758 lt_fatal (__FILE__, __LINE__,
4759 "error accessing file \"%s\": %s",
4760 tmp_pathspec, nonnull (strerror (errno)));
4761 }
4762 }
4763 XFREE (tmp_pathspec);
4764
4765 if (!has_symlinks)
4766 {
4767 return xstrdup (pathspec);
4768 }
4769
4770 tmp_pathspec = realpath (pathspec, buf);
4771 if (tmp_pathspec == 0)
4772 {
4773 lt_fatal (__FILE__, __LINE__,
4774 "could not follow symlinks for %s", pathspec);
4775 }
4776 return xstrdup (tmp_pathspec);
4777 #endif
4778 }
4779
4780 char *
4781 strendzap (char *str, const char *pat)
4782 {
4783 size_t len, patlen;
4784
4785 assert (str != NULL);
4786 assert (pat != NULL);
4787
4788 len = strlen (str);
4789 patlen = strlen (pat);
4790
4791 if (patlen <= len)
4792 {
4793 str += len - patlen;
4794 if (strcmp (str, pat) == 0)
4795 *str = '\0';
4796 }
4797 return str;
4798 }
4799
4800 void
4801 lt_debugprintf (const char *file, int line, const char *fmt, ...)
4802 {
4803 va_list args;
4804 if (lt_debug)
4805 {
4806 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4807 va_start (args, fmt);
4808 (void) vfprintf (stderr, fmt, args);
4809 va_end (args);
4810 }
4811 }
4812
4813 static void
4814 lt_error_core (int exit_status, const char *file,
4815 int line, const char *mode,
4816 const char *message, va_list ap)
4817 {
4818 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
4819 vfprintf (stderr, message, ap);
4820 fprintf (stderr, ".\n");
4821
4822 if (exit_status >= 0)
4823 exit (exit_status);
4824 }
4825
4826 void
4827 lt_fatal (const char *file, int line, const char *message, ...)
4828 {
4829 va_list ap;
4830 va_start (ap, message);
4831 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
4832 va_end (ap);
4833 }
4834
4835 static const char *
4836 nonnull (const char *s)
4837 {
4838 return s ? s : "(null)";
4839 }
4840
4841 static const char *
4842 nonempty (const char *s)
4843 {
4844 return (s && !*s) ? "(empty)" : nonnull (s);
4845 }
4846
4847 void
4848 lt_setenv (const char *name, const char *value)
4849 {
4850 lt_debugprintf (__FILE__, __LINE__,
4851 "(lt_setenv) setting '%s' to '%s'\n",
4852 nonnull (name), nonnull (value));
4853 {
4854 #ifdef HAVE_SETENV
4855 /* always make a copy, for consistency with !HAVE_SETENV */
4856 char *str = xstrdup (value);
4857 setenv (name, str, 1);
4858 #else
4859 int len = strlen (name) + 1 + strlen (value) + 1;
4860 char *str = XMALLOC (char, len);
4861 sprintf (str, "%s=%s", name, value);
4862 if (putenv (str) != EXIT_SUCCESS)
4863 {
4864 XFREE (str);
4865 }
4866 #endif
4867 }
4868 }
4869
4870 char *
4871 lt_extend_str (const char *orig_value, const char *add, int to_end)
4872 {
4873 char *new_value;
4874 if (orig_value && *orig_value)
4875 {
4876 int orig_value_len = strlen (orig_value);
4877 int add_len = strlen (add);
4878 new_value = XMALLOC (char, add_len + orig_value_len + 1);
4879 if (to_end)
4880 {
4881 strcpy (new_value, orig_value);
4882 strcpy (new_value + orig_value_len, add);
4883 }
4884 else
4885 {
4886 strcpy (new_value, add);
4887 strcpy (new_value + add_len, orig_value);
4888 }
4889 }
4890 else
4891 {
4892 new_value = xstrdup (add);
4893 }
4894 return new_value;
4895 }
4896
4897 void
4898 lt_update_exe_path (const char *name, const char *value)
4899 {
4900 lt_debugprintf (__FILE__, __LINE__,
4901 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4902 nonnull (name), nonnull (value));
4903
4904 if (name && *name && value && *value)
4905 {
4906 char *new_value = lt_extend_str (getenv (name), value, 0);
4907 /* some systems can't cope with a ':'-terminated path #' */
4908 int len = strlen (new_value);
4909 while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
4910 {
4911 new_value[len-1] = '\0';
4912 }
4913 lt_setenv (name, new_value);
4914 XFREE (new_value);
4915 }
4916 }
4917
4918 void
4919 lt_update_lib_path (const char *name, const char *value)
4920 {
4921 lt_debugprintf (__FILE__, __LINE__,
4922 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4923 nonnull (name), nonnull (value));
4924
4925 if (name && *name && value && *value)
4926 {
4927 char *new_value = lt_extend_str (getenv (name), value, 0);
4928 lt_setenv (name, new_value);
4929 XFREE (new_value);
4930 }
4931 }
4932
4933 EOF
4934 case $host_os in
4935 mingw*)
4936 cat <<"EOF"
4937
4938 /* Prepares an argument vector before calling spawn().
4939 Note that spawn() does not by itself call the command interpreter
4940 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4941 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4942 GetVersionEx(&v);
4943 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4944 }) ? "cmd.exe" : "command.com").
4945 Instead it simply concatenates the arguments, separated by ' ', and calls
4946 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4947 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4948 special way:
4949 - Space and tab are interpreted as delimiters. They are not treated as
4950 delimiters if they are surrounded by double quotes: "...".
4951 - Unescaped double quotes are removed from the input. Their only effect is
4952 that within double quotes, space and tab are treated like normal
4953 characters.
4954 - Backslashes not followed by double quotes are not special.
4955 - But 2*n+1 backslashes followed by a double quote become
4956 n backslashes followed by a double quote (n >= 0):
4957 \" -> "
4958 \\\" -> \"
4959 \\\\\" -> \\"
4960 */
4961 #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"
4962 #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"
4963 char **
4964 prepare_spawn (char **argv)
4965 {
4966 size_t argc;
4967 char **new_argv;
4968 size_t i;
4969
4970 /* Count number of arguments. */
4971 for (argc = 0; argv[argc] != NULL; argc++)
4972 ;
4973
4974 /* Allocate new argument vector. */
4975 new_argv = XMALLOC (char *, argc + 1);
4976
4977 /* Put quoted arguments into the new argument vector. */
4978 for (i = 0; i < argc; i++)
4979 {
4980 const char *string = argv[i];
4981
4982 if (string[0] == '\0')
4983 new_argv[i] = xstrdup ("\"\"");
4984 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4985 {
4986 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4987 size_t length;
4988 unsigned int backslashes;
4989 const char *s;
4990 char *quoted_string;
4991 char *p;
4992
4993 length = 0;
4994 backslashes = 0;
4995 if (quote_around)
4996 length++;
4997 for (s = string; *s != '\0'; s++)
4998 {
4999 char c = *s;
5000 if (c == '"')
5001 length += backslashes + 1;
5002 length++;
5003 if (c == '\\')
5004 backslashes++;
5005 else
5006 backslashes = 0;
5007 }
5008 if (quote_around)
5009 length += backslashes + 1;
5010
5011 quoted_string = XMALLOC (char, length + 1);
5012
5013 p = quoted_string;
5014 backslashes = 0;
5015 if (quote_around)
5016 *p++ = '"';
5017 for (s = string; *s != '\0'; s++)
5018 {
5019 char c = *s;
5020 if (c == '"')
5021 {
5022 unsigned int j;
5023 for (j = backslashes + 1; j > 0; j--)
5024 *p++ = '\\';
5025 }
5026 *p++ = c;
5027 if (c == '\\')
5028 backslashes++;
5029 else
5030 backslashes = 0;
5031 }
5032 if (quote_around)
5033 {
5034 unsigned int j;
5035 for (j = backslashes; j > 0; j--)
5036 *p++ = '\\';
5037 *p++ = '"';
5038 }
5039 *p = '\0';
5040
5041 new_argv[i] = quoted_string;
5042 }
5043 else
5044 new_argv[i] = (char *) string;
5045 }
5046 new_argv[argc] = NULL;
5047
5048 return new_argv;
5049 }
5050 EOF
5051 ;;
5052 esac
5053
5054 cat <<"EOF"
5055 void lt_dump_script (FILE* f)
5056 {
5057 EOF
5058 func_emit_wrapper yes |
5059 $SED -e 's/\([\\"]\)/\\\1/g' \
5060 -e 's/^/ fputs ("/' -e 's/$/\\n", f);/'
5061
5062 cat <<"EOF"
5063 }
5064 EOF
5065 }
5066 # end: func_emit_cwrapperexe_src
5067
5068 # func_win32_import_lib_p ARG
5069 # True if ARG is an import lib, as indicated by $file_magic_cmd
5070 func_win32_import_lib_p ()
5071 {
5072 $opt_debug
5073 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
5074 *import*) : ;;
5075 *) false ;;
5076 esac
5077 }
5078
5079 # func_mode_link arg...
5080 func_mode_link ()
5081 {
5082 $opt_debug
5083 case $host in
5084 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5085 # It is impossible to link a dll without this setting, and
5086 # we shouldn't force the makefile maintainer to figure out
5087 # which system we are compiling for in order to pass an extra
5088 # flag for every libtool invocation.
5089 # allow_undefined=no
5090
5091 # FIXME: Unfortunately, there are problems with the above when trying
5092 # to make a dll which has undefined symbols, in which case not
5093 # even a static library is built. For now, we need to specify
5094 # -no-undefined on the libtool link line when we can be certain
5095 # that all symbols are satisfied, otherwise we get a static library.
5096 allow_undefined=yes
5097 ;;
5098 *)
5099 allow_undefined=yes
5100 ;;
5101 esac
5102 libtool_args=$nonopt
5103 base_compile="$nonopt $@"
5104 compile_command=$nonopt
5105 finalize_command=$nonopt
5106
5107 compile_rpath=
5108 finalize_rpath=
5109 compile_shlibpath=
5110 finalize_shlibpath=
5111 convenience=
5112 old_convenience=
5113 deplibs=
5114 old_deplibs=
5115 compiler_flags=
5116 linker_flags=
5117 dllsearchpath=
5118 lib_search_path=`pwd`
5119 inst_prefix_dir=
5120 new_inherited_linker_flags=
5121
5122 avoid_version=no
5123 bindir=
5124 dlfiles=
5125 dlprefiles=
5126 dlself=no
5127 export_dynamic=no
5128 export_symbols=
5129 export_symbols_regex=
5130 generated=
5131 libobjs=
5132 ltlibs=
5133 module=no
5134 no_install=no
5135 objs=
5136 non_pic_objects=
5137 precious_files_regex=
5138 prefer_static_libs=no
5139 preload=no
5140 prev=
5141 prevarg=
5142 release=
5143 rpath=
5144 xrpath=
5145 perm_rpath=
5146 temp_rpath=
5147 thread_safe=no
5148 vinfo=
5149 vinfo_number=no
5150 weak_libs=
5151 single_module="${wl}-single_module"
5152 func_infer_tag $base_compile
5153
5154 # We need to know -static, to get the right output filenames.
5155 for arg
5156 do
5157 case $arg in
5158 -shared)
5159 test "$build_libtool_libs" != yes && \
5160 func_fatal_configuration "can not build a shared library"
5161 build_old_libs=no
5162 break
5163 ;;
5164 -all-static | -static | -static-libtool-libs)
5165 case $arg in
5166 -all-static)
5167 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
5168 func_warning "complete static linking is impossible in this configuration"
5169 fi
5170 if test -n "$link_static_flag"; then
5171 dlopen_self=$dlopen_self_static
5172 fi
5173 prefer_static_libs=yes
5174 ;;
5175 -static)
5176 if test -z "$pic_flag" && test -n "$link_static_flag"; then
5177 dlopen_self=$dlopen_self_static
5178 fi
5179 prefer_static_libs=built
5180 ;;
5181 -static-libtool-libs)
5182 if test -z "$pic_flag" && test -n "$link_static_flag"; then
5183 dlopen_self=$dlopen_self_static
5184 fi
5185 prefer_static_libs=yes
5186 ;;
5187 esac
5188 build_libtool_libs=no
5189 build_old_libs=yes
5190 break
5191 ;;
5192 esac
5193 done
5194
5195 # See if our shared archives depend on static archives.
5196 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
5197
5198 # Go through the arguments, transforming them on the way.
5199 while test "$#" -gt 0; do
5200 arg="$1"
5201 shift
5202 func_quote_for_eval "$arg"
5203 qarg=$func_quote_for_eval_unquoted_result
5204 func_append libtool_args " $func_quote_for_eval_result"
5205
5206 # If the previous option needs an argument, assign it.
5207 if test -n "$prev"; then
5208 case $prev in
5209 output)
5210 func_append compile_command " @OUTPUT@"
5211 func_append finalize_command " @OUTPUT@"
5212 ;;
5213 esac
5214
5215 case $prev in
5216 bindir)
5217 bindir="$arg"
5218 prev=
5219 continue
5220 ;;
5221 dlfiles|dlprefiles)
5222 if test "$preload" = no; then
5223 # Add the symbol object into the linking commands.
5224 func_append compile_command " @SYMFILE@"
5225 func_append finalize_command " @SYMFILE@"
5226 preload=yes
5227 fi
5228 case $arg in
5229 *.la | *.lo) ;; # We handle these cases below.
5230 force)
5231 if test "$dlself" = no; then
5232 dlself=needless
5233 export_dynamic=yes
5234 fi
5235 prev=
5236 continue
5237 ;;
5238 self)
5239 if test "$prev" = dlprefiles; then
5240 dlself=yes
5241 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
5242 dlself=yes
5243 else
5244 dlself=needless
5245 export_dynamic=yes
5246 fi
5247 prev=
5248 continue
5249 ;;
5250 *)
5251 if test "$prev" = dlfiles; then
5252 func_append dlfiles " $arg"
5253 else
5254 func_append dlprefiles " $arg"
5255 fi
5256 prev=
5257 continue
5258 ;;
5259 esac
5260 ;;
5261 expsyms)
5262 export_symbols="$arg"
5263 test -f "$arg" \
5264 || func_fatal_error "symbol file \`$arg' does not exist"
5265 prev=
5266 continue
5267 ;;
5268 expsyms_regex)
5269 export_symbols_regex="$arg"
5270 prev=
5271 continue
5272 ;;
5273 framework)
5274 case $host in
5275 *-*-darwin*)
5276 case "$deplibs " in
5277 *" $qarg.ltframework "*) ;;
5278 *) func_append deplibs " $qarg.ltframework" # this is fixed later
5279 ;;
5280 esac
5281 ;;
5282 esac
5283 prev=
5284 continue
5285 ;;
5286 inst_prefix)
5287 inst_prefix_dir="$arg"
5288 prev=
5289 continue
5290 ;;
5291 objectlist)
5292 if test -f "$arg"; then
5293 save_arg=$arg
5294 moreargs=
5295 for fil in `cat "$save_arg"`
5296 do
5297 # func_append moreargs " $fil"
5298 arg=$fil
5299 # A libtool-controlled object.
5300
5301 # Check to see that this really is a libtool object.
5302 if func_lalib_unsafe_p "$arg"; then
5303 pic_object=
5304 non_pic_object=
5305
5306 # Read the .lo file
5307 func_source "$arg"
5308
5309 if test -z "$pic_object" ||
5310 test -z "$non_pic_object" ||
5311 test "$pic_object" = none &&
5312 test "$non_pic_object" = none; then
5313 func_fatal_error "cannot find name of object for \`$arg'"
5314 fi
5315
5316 # Extract subdirectory from the argument.
5317 func_dirname "$arg" "/" ""
5318 xdir="$func_dirname_result"
5319
5320 if test "$pic_object" != none; then
5321 # Prepend the subdirectory the object is found in.
5322 pic_object="$xdir$pic_object"
5323
5324 if test "$prev" = dlfiles; then
5325 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5326 func_append dlfiles " $pic_object"
5327 prev=
5328 continue
5329 else
5330 # If libtool objects are unsupported, then we need to preload.
5331 prev=dlprefiles
5332 fi
5333 fi
5334
5335 # CHECK ME: I think I busted this. -Ossama
5336 if test "$prev" = dlprefiles; then
5337 # Preload the old-style object.
5338 func_append dlprefiles " $pic_object"
5339 prev=
5340 fi
5341
5342 # A PIC object.
5343 func_append libobjs " $pic_object"
5344 arg="$pic_object"
5345 fi
5346
5347 # Non-PIC object.
5348 if test "$non_pic_object" != none; then
5349 # Prepend the subdirectory the object is found in.
5350 non_pic_object="$xdir$non_pic_object"
5351
5352 # A standard non-PIC object
5353 func_append non_pic_objects " $non_pic_object"
5354 if test -z "$pic_object" || test "$pic_object" = none ; then
5355 arg="$non_pic_object"
5356 fi
5357 else
5358 # If the PIC object exists, use it instead.
5359 # $xdir was prepended to $pic_object above.
5360 non_pic_object="$pic_object"
5361 func_append non_pic_objects " $non_pic_object"
5362 fi
5363 else
5364 # Only an error if not doing a dry-run.
5365 if $opt_dry_run; then
5366 # Extract subdirectory from the argument.
5367 func_dirname "$arg" "/" ""
5368 xdir="$func_dirname_result"
5369
5370 func_lo2o "$arg"
5371 pic_object=$xdir$objdir/$func_lo2o_result
5372 non_pic_object=$xdir$func_lo2o_result
5373 func_append libobjs " $pic_object"
5374 func_append non_pic_objects " $non_pic_object"
5375 else
5376 func_fatal_error "\`$arg' is not a valid libtool object"
5377 fi
5378 fi
5379 done
5380 else
5381 func_fatal_error "link input file \`$arg' does not exist"
5382 fi
5383 arg=$save_arg
5384 prev=
5385 continue
5386 ;;
5387 precious_regex)
5388 precious_files_regex="$arg"
5389 prev=
5390 continue
5391 ;;
5392 release)
5393 release="-$arg"
5394 prev=
5395 continue
5396 ;;
5397 rpath | xrpath)
5398 # We need an absolute path.
5399 case $arg in
5400 [\\/]* | [A-Za-z]:[\\/]*) ;;
5401 *)
5402 func_fatal_error "only absolute run-paths are allowed"
5403 ;;
5404 esac
5405 if test "$prev" = rpath; then
5406 case "$rpath " in
5407 *" $arg "*) ;;
5408 *) func_append rpath " $arg" ;;
5409 esac
5410 else
5411 case "$xrpath " in
5412 *" $arg "*) ;;
5413 *) func_append xrpath " $arg" ;;
5414 esac
5415 fi
5416 prev=
5417 continue
5418 ;;
5419 shrext)
5420 shrext_cmds="$arg"
5421 prev=
5422 continue
5423 ;;
5424 weak)
5425 func_append weak_libs " $arg"
5426 prev=
5427 continue
5428 ;;
5429 xcclinker)
5430 func_append linker_flags " $qarg"
5431 func_append compiler_flags " $qarg"
5432 prev=
5433 func_append compile_command " $qarg"
5434 func_append finalize_command " $qarg"
5435 continue
5436 ;;
5437 xcompiler)
5438 func_append compiler_flags " $qarg"
5439 prev=
5440 func_append compile_command " $qarg"
5441 func_append finalize_command " $qarg"
5442 continue
5443 ;;
5444 xlinker)
5445 func_append linker_flags " $qarg"
5446 func_append compiler_flags " $wl$qarg"
5447 prev=
5448 func_append compile_command " $wl$qarg"
5449 func_append finalize_command " $wl$qarg"
5450 continue
5451 ;;
5452 *)
5453 eval "$prev=\"\$arg\""
5454 prev=
5455 continue
5456 ;;
5457 esac
5458 fi # test -n "$prev"
5459
5460 prevarg="$arg"
5461
5462 case $arg in
5463 -all-static)
5464 if test -n "$link_static_flag"; then
5465 # See comment for -static flag below, for more details.
5466 func_append compile_command " $link_static_flag"
5467 func_append finalize_command " $link_static_flag"
5468 fi
5469 continue
5470 ;;
5471
5472 -allow-undefined)
5473 # FIXME: remove this flag sometime in the future.
5474 func_fatal_error "\`-allow-undefined' must not be used because it is the default"
5475 ;;
5476
5477 -avoid-version)
5478 avoid_version=yes
5479 continue
5480 ;;
5481
5482 -bindir)
5483 prev=bindir
5484 continue
5485 ;;
5486
5487 -dlopen)
5488 prev=dlfiles
5489 continue
5490 ;;
5491
5492 -dlpreopen)
5493 prev=dlprefiles
5494 continue
5495 ;;
5496
5497 -export-dynamic)
5498 export_dynamic=yes
5499 continue
5500 ;;
5501
5502 -export-symbols | -export-symbols-regex)
5503 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
5504 func_fatal_error "more than one -exported-symbols argument is not allowed"
5505 fi
5506 if test "X$arg" = "X-export-symbols"; then
5507 prev=expsyms
5508 else
5509 prev=expsyms_regex
5510 fi
5511 continue
5512 ;;
5513
5514 -framework)
5515 prev=framework
5516 continue
5517 ;;
5518
5519 -inst-prefix-dir)
5520 prev=inst_prefix
5521 continue
5522 ;;
5523
5524 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
5525 # so, if we see these flags be careful not to treat them like -L
5526 -L[A-Z][A-Z]*:*)
5527 case $with_gcc/$host in
5528 no/*-*-irix* | /*-*-irix*)
5529 func_append compile_command " $arg"
5530 func_append finalize_command " $arg"
5531 ;;
5532 esac
5533 continue
5534 ;;
5535
5536 -L*)
5537 func_stripname "-L" '' "$arg"
5538 if test -z "$func_stripname_result"; then
5539 if test "$#" -gt 0; then
5540 func_fatal_error "require no space between \`-L' and \`$1'"
5541 else
5542 func_fatal_error "need path for \`-L' option"
5543 fi
5544 fi
5545 func_resolve_sysroot "$func_stripname_result"
5546 dir=$func_resolve_sysroot_result
5547 # We need an absolute path.
5548 case $dir in
5549 [\\/]* | [A-Za-z]:[\\/]*) ;;
5550 *)
5551 absdir=`cd "$dir" && pwd`
5552 test -z "$absdir" && \
5553 func_fatal_error "cannot determine absolute directory name of \`$dir'"
5554 dir="$absdir"
5555 ;;
5556 esac
5557 case "$deplibs " in
5558 *" -L$dir "* | *" $arg "*)
5559 # Will only happen for absolute or sysroot arguments
5560 ;;
5561 *)
5562 # Preserve sysroot, but never include relative directories
5563 case $dir in
5564 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5565 *) func_append deplibs " -L$dir" ;;
5566 esac
5567 func_append lib_search_path " $dir"
5568 ;;
5569 esac
5570 case $host in
5571 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5572 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
5573 case :$dllsearchpath: in
5574 *":$dir:"*) ;;
5575 ::) dllsearchpath=$dir;;
5576 *) func_append dllsearchpath ":$dir";;
5577 esac
5578 case :$dllsearchpath: in
5579 *":$testbindir:"*) ;;
5580 ::) dllsearchpath=$testbindir;;
5581 *) func_append dllsearchpath ":$testbindir";;
5582 esac
5583 ;;
5584 esac
5585 continue
5586 ;;
5587
5588 -l*)
5589 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
5590 case $host in
5591 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
5592 # These systems don't actually have a C or math library (as such)
5593 continue
5594 ;;
5595 *-*-os2*)
5596 # These systems don't actually have a C library (as such)
5597 test "X$arg" = "X-lc" && continue
5598 ;;
5599 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5600 # Do not include libc due to us having libc/libc_r.
5601 test "X$arg" = "X-lc" && continue
5602 ;;
5603 *-*-rhapsody* | *-*-darwin1.[012])
5604 # Rhapsody C and math libraries are in the System framework
5605 func_append deplibs " System.ltframework"
5606 continue
5607 ;;
5608 *-*-sco3.2v5* | *-*-sco5v6*)
5609 # Causes problems with __ctype
5610 test "X$arg" = "X-lc" && continue
5611 ;;
5612 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
5613 # Compiler inserts libc in the correct place for threads to work
5614 test "X$arg" = "X-lc" && continue
5615 ;;
5616 esac
5617 elif test "X$arg" = "X-lc_r"; then
5618 case $host in
5619 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5620 # Do not include libc_r directly, use -pthread flag.
5621 continue
5622 ;;
5623 esac
5624 fi
5625 func_append deplibs " $arg"
5626 continue
5627 ;;
5628
5629 -module)
5630 module=yes
5631 continue
5632 ;;
5633
5634 # Tru64 UNIX uses -model [arg] to determine the layout of C++
5635 # classes, name mangling, and exception handling.
5636 # Darwin uses the -arch flag to determine output architecture.
5637 -model|-arch|-isysroot|--sysroot)
5638 func_append compiler_flags " $arg"
5639 func_append compile_command " $arg"
5640 func_append finalize_command " $arg"
5641 prev=xcompiler
5642 continue
5643 ;;
5644
5645 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
5646 func_append compiler_flags " $arg"
5647 func_append compile_command " $arg"
5648 func_append finalize_command " $arg"
5649 case "$new_inherited_linker_flags " in
5650 *" $arg "*) ;;
5651 * ) func_append new_inherited_linker_flags " $arg" ;;
5652 esac
5653 continue
5654 ;;
5655
5656 -multi_module)
5657 single_module="${wl}-multi_module"
5658 continue
5659 ;;
5660
5661 -no-fast-install)
5662 fast_install=no
5663 continue
5664 ;;
5665
5666 -no-install)
5667 case $host in
5668 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
5669 # The PATH hackery in wrapper scripts is required on Windows
5670 # and Darwin in order for the loader to find any dlls it needs.
5671 func_warning "\`-no-install' is ignored for $host"
5672 func_warning "assuming \`-no-fast-install' instead"
5673 fast_install=no
5674 ;;
5675 *) no_install=yes ;;
5676 esac
5677 continue
5678 ;;
5679
5680 -no-undefined)
5681 allow_undefined=no
5682 continue
5683 ;;
5684
5685 -objectlist)
5686 prev=objectlist
5687 continue
5688 ;;
5689
5690 -o) prev=output ;;
5691
5692 -precious-files-regex)
5693 prev=precious_regex
5694 continue
5695 ;;
5696
5697 -release)
5698 prev=release
5699 continue
5700 ;;
5701
5702 -rpath)
5703 prev=rpath
5704 continue
5705 ;;
5706
5707 -R)
5708 prev=xrpath
5709 continue
5710 ;;
5711
5712 -R*)
5713 func_stripname '-R' '' "$arg"
5714 dir=$func_stripname_result
5715 # We need an absolute path.
5716 case $dir in
5717 [\\/]* | [A-Za-z]:[\\/]*) ;;
5718 =*)
5719 func_stripname '=' '' "$dir"
5720 dir=$lt_sysroot$func_stripname_result
5721 ;;
5722 *)
5723 func_fatal_error "only absolute run-paths are allowed"
5724 ;;
5725 esac
5726 case "$xrpath " in
5727 *" $dir "*) ;;
5728 *) func_append xrpath " $dir" ;;
5729 esac
5730 continue
5731 ;;
5732
5733 -shared)
5734 # The effects of -shared are defined in a previous loop.
5735 continue
5736 ;;
5737
5738 -shrext)
5739 prev=shrext
5740 continue
5741 ;;
5742
5743 -static | -static-libtool-libs)
5744 # The effects of -static are defined in a previous loop.
5745 # We used to do the same as -all-static on platforms that
5746 # didn't have a PIC flag, but the assumption that the effects
5747 # would be equivalent was wrong. It would break on at least
5748 # Digital Unix and AIX.
5749 continue
5750 ;;
5751
5752 -thread-safe)
5753 thread_safe=yes
5754 continue
5755 ;;
5756
5757 -version-info)
5758 prev=vinfo
5759 continue
5760 ;;
5761
5762 -version-number)
5763 prev=vinfo
5764 vinfo_number=yes
5765 continue
5766 ;;
5767
5768 -weak)
5769 prev=weak
5770 continue
5771 ;;
5772
5773 -Wc,*)
5774 func_stripname '-Wc,' '' "$arg"
5775 args=$func_stripname_result
5776 arg=
5777 save_ifs="$IFS"; IFS=','
5778 for flag in $args; do
5779 IFS="$save_ifs"
5780 func_quote_for_eval "$flag"
5781 func_append arg " $func_quote_for_eval_result"
5782 func_append compiler_flags " $func_quote_for_eval_result"
5783 done
5784 IFS="$save_ifs"
5785 func_stripname ' ' '' "$arg"
5786 arg=$func_stripname_result
5787 ;;
5788
5789 -Wl,*)
5790 func_stripname '-Wl,' '' "$arg"
5791 args=$func_stripname_result
5792 arg=
5793 save_ifs="$IFS"; IFS=','
5794 for flag in $args; do
5795 IFS="$save_ifs"
5796 func_quote_for_eval "$flag"
5797 func_append arg " $wl$func_quote_for_eval_result"
5798 func_append compiler_flags " $wl$func_quote_for_eval_result"
5799 func_append linker_flags " $func_quote_for_eval_result"
5800 done
5801 IFS="$save_ifs"
5802 func_stripname ' ' '' "$arg"
5803 arg=$func_stripname_result
5804 ;;
5805
5806 -Xcompiler)
5807 prev=xcompiler
5808 continue
5809 ;;
5810
5811 -Xlinker)
5812 prev=xlinker
5813 continue
5814 ;;
5815
5816 -XCClinker)
5817 prev=xcclinker
5818 continue
5819 ;;
5820
5821 # -msg_* for osf cc
5822 -msg_*)
5823 func_quote_for_eval "$arg"
5824 arg="$func_quote_for_eval_result"
5825 ;;
5826
5827 # Flags to be passed through unchanged, with rationale:
5828 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
5829 # -r[0-9][0-9]* specify processor for the SGI compiler
5830 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5831 # +DA*, +DD* enable 64-bit mode for the HP compiler
5832 # -q* compiler args for the IBM compiler
5833 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5834 # -F/path path to uninstalled frameworks, gcc on darwin
5835 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
5836 # @file GCC response files
5837 # -tp=* Portland pgcc target processor selection
5838 # --sysroot=* for sysroot support
5839 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
5840 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5841 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5842 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
5843 func_quote_for_eval "$arg"
5844 arg="$func_quote_for_eval_result"
5845 func_append compile_command " $arg"
5846 func_append finalize_command " $arg"
5847 func_append compiler_flags " $arg"
5848 continue
5849 ;;
5850
5851 # Some other compiler flag.
5852 -* | +*)
5853 func_quote_for_eval "$arg"
5854 arg="$func_quote_for_eval_result"
5855 ;;
5856
5857 *.$objext)
5858 # A standard object.
5859 func_append objs " $arg"
5860 ;;
5861
5862 *.lo)
5863 # A libtool-controlled object.
5864
5865 # Check to see that this really is a libtool object.
5866 if func_lalib_unsafe_p "$arg"; then
5867 pic_object=
5868 non_pic_object=
5869
5870 # Read the .lo file
5871 func_source "$arg"
5872
5873 if test -z "$pic_object" ||
5874 test -z "$non_pic_object" ||
5875 test "$pic_object" = none &&
5876 test "$non_pic_object" = none; then
5877 func_fatal_error "cannot find name of object for \`$arg'"
5878 fi
5879
5880 # Extract subdirectory from the argument.
5881 func_dirname "$arg" "/" ""
5882 xdir="$func_dirname_result"
5883
5884 if test "$pic_object" != none; then
5885 # Prepend the subdirectory the object is found in.
5886 pic_object="$xdir$pic_object"
5887
5888 if test "$prev" = dlfiles; then
5889 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5890 func_append dlfiles " $pic_object"
5891 prev=
5892 continue
5893 else
5894 # If libtool objects are unsupported, then we need to preload.
5895 prev=dlprefiles
5896 fi
5897 fi
5898
5899 # CHECK ME: I think I busted this. -Ossama
5900 if test "$prev" = dlprefiles; then
5901 # Preload the old-style object.
5902 func_append dlprefiles " $pic_object"
5903 prev=
5904 fi
5905
5906 # A PIC object.
5907 func_append libobjs " $pic_object"
5908 arg="$pic_object"
5909 fi
5910
5911 # Non-PIC object.
5912 if test "$non_pic_object" != none; then
5913 # Prepend the subdirectory the object is found in.
5914 non_pic_object="$xdir$non_pic_object"
5915
5916 # A standard non-PIC object
5917 func_append non_pic_objects " $non_pic_object"
5918 if test -z "$pic_object" || test "$pic_object" = none ; then
5919 arg="$non_pic_object"
5920 fi
5921 else
5922 # If the PIC object exists, use it instead.
5923 # $xdir was prepended to $pic_object above.
5924 non_pic_object="$pic_object"
5925 func_append non_pic_objects " $non_pic_object"
5926 fi
5927 else
5928 # Only an error if not doing a dry-run.
5929 if $opt_dry_run; then
5930 # Extract subdirectory from the argument.
5931 func_dirname "$arg" "/" ""
5932 xdir="$func_dirname_result"
5933
5934 func_lo2o "$arg"
5935 pic_object=$xdir$objdir/$func_lo2o_result
5936 non_pic_object=$xdir$func_lo2o_result
5937 func_append libobjs " $pic_object"
5938 func_append non_pic_objects " $non_pic_object"
5939 else
5940 func_fatal_error "\`$arg' is not a valid libtool object"
5941 fi
5942 fi
5943 ;;
5944
5945 *.$libext)
5946 # An archive.
5947 func_append deplibs " $arg"
5948 func_append old_deplibs " $arg"
5949 continue
5950 ;;
5951
5952 *.la)
5953 # A libtool-controlled library.
5954
5955 func_resolve_sysroot "$arg"
5956 if test "$prev" = dlfiles; then
5957 # This library was specified with -dlopen.
5958 func_append dlfiles " $func_resolve_sysroot_result"
5959 prev=
5960 elif test "$prev" = dlprefiles; then
5961 # The library was specified with -dlpreopen.
5962 func_append dlprefiles " $func_resolve_sysroot_result"
5963 prev=
5964 else
5965 func_append deplibs " $func_resolve_sysroot_result"
5966 fi
5967 continue
5968 ;;
5969
5970 # Some other compiler argument.
5971 *)
5972 # Unknown arguments in both finalize_command and compile_command need
5973 # to be aesthetically quoted because they are evaled later.
5974 func_quote_for_eval "$arg"
5975 arg="$func_quote_for_eval_result"
5976 ;;
5977 esac # arg
5978
5979 # Now actually substitute the argument into the commands.
5980 if test -n "$arg"; then
5981 func_append compile_command " $arg"
5982 func_append finalize_command " $arg"
5983 fi
5984 done # argument parsing loop
5985
5986 test -n "$prev" && \
5987 func_fatal_help "the \`$prevarg' option requires an argument"
5988
5989 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
5990 eval arg=\"$export_dynamic_flag_spec\"
5991 func_append compile_command " $arg"
5992 func_append finalize_command " $arg"
5993 fi
5994
5995 oldlibs=
5996 # calculate the name of the file, without its directory
5997 func_basename "$output"
5998 outputname="$func_basename_result"
5999 libobjs_save="$libobjs"
6000
6001 if test -n "$shlibpath_var"; then
6002 # get the directories listed in $shlibpath_var
6003 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
6004 else
6005 shlib_search_path=
6006 fi
6007 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
6008 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
6009
6010 func_dirname "$output" "/" ""
6011 output_objdir="$func_dirname_result$objdir"
6012 func_to_tool_file "$output_objdir/"
6013 tool_output_objdir=$func_to_tool_file_result
6014 # Create the object directory.
6015 func_mkdir_p "$output_objdir"
6016
6017 # Determine the type of output
6018 case $output in
6019 "")
6020 func_fatal_help "you must specify an output file"
6021 ;;
6022 *.$libext) linkmode=oldlib ;;
6023 *.lo | *.$objext) linkmode=obj ;;
6024 *.la) linkmode=lib ;;
6025 *) linkmode=prog ;; # Anything else should be a program.
6026 esac
6027
6028 specialdeplibs=
6029
6030 libs=
6031 # Find all interdependent deplibs by searching for libraries
6032 # that are linked more than once (e.g. -la -lb -la)
6033 for deplib in $deplibs; do
6034 if $opt_preserve_dup_deps ; then
6035 case "$libs " in
6036 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6037 esac
6038 fi
6039 func_append libs " $deplib"
6040 done
6041
6042 if test "$linkmode" = lib; then
6043 libs="$predeps $libs $compiler_lib_search_path $postdeps"
6044
6045 # Compute libraries that are listed more than once in $predeps
6046 # $postdeps and mark them as special (i.e., whose duplicates are
6047 # not to be eliminated).
6048 pre_post_deps=
6049 if $opt_duplicate_compiler_generated_deps; then
6050 for pre_post_dep in $predeps $postdeps; do
6051 case "$pre_post_deps " in
6052 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
6053 esac
6054 func_append pre_post_deps " $pre_post_dep"
6055 done
6056 fi
6057 pre_post_deps=
6058 fi
6059
6060 deplibs=
6061 newdependency_libs=
6062 newlib_search_path=
6063 need_relink=no # whether we're linking any uninstalled libtool libraries
6064 notinst_deplibs= # not-installed libtool libraries
6065 notinst_path= # paths that contain not-installed libtool libraries
6066
6067 case $linkmode in
6068 lib)
6069 passes="conv dlpreopen link"
6070 for file in $dlfiles $dlprefiles; do
6071 case $file in
6072 *.la) ;;
6073 *)
6074 func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
6075 ;;
6076 esac
6077 done
6078 ;;
6079 prog)
6080 compile_deplibs=
6081 finalize_deplibs=
6082 alldeplibs=no
6083 newdlfiles=
6084 newdlprefiles=
6085 passes="conv scan dlopen dlpreopen link"
6086 ;;
6087 *) passes="conv"
6088 ;;
6089 esac
6090
6091 for pass in $passes; do
6092 # The preopen pass in lib mode reverses $deplibs; put it back here
6093 # so that -L comes before libs that need it for instance...
6094 if test "$linkmode,$pass" = "lib,link"; then
6095 ## FIXME: Find the place where the list is rebuilt in the wrong
6096 ## order, and fix it there properly
6097 tmp_deplibs=
6098 for deplib in $deplibs; do
6099 tmp_deplibs="$deplib $tmp_deplibs"
6100 done
6101 deplibs="$tmp_deplibs"
6102 fi
6103
6104 if test "$linkmode,$pass" = "lib,link" ||
6105 test "$linkmode,$pass" = "prog,scan"; then
6106 libs="$deplibs"
6107 deplibs=
6108 fi
6109 if test "$linkmode" = prog; then
6110 case $pass in
6111 dlopen) libs="$dlfiles" ;;
6112 dlpreopen) libs="$dlprefiles" ;;
6113 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
6114 esac
6115 fi
6116 if test "$linkmode,$pass" = "lib,dlpreopen"; then
6117 # Collect and forward deplibs of preopened libtool libs
6118 for lib in $dlprefiles; do
6119 # Ignore non-libtool-libs
6120 dependency_libs=
6121 func_resolve_sysroot "$lib"
6122 case $lib in
6123 *.la) func_source "$func_resolve_sysroot_result" ;;
6124 esac
6125
6126 # Collect preopened libtool deplibs, except any this library
6127 # has declared as weak libs
6128 for deplib in $dependency_libs; do
6129 func_basename "$deplib"
6130 deplib_base=$func_basename_result
6131 case " $weak_libs " in
6132 *" $deplib_base "*) ;;
6133 *) func_append deplibs " $deplib" ;;
6134 esac
6135 done
6136 done
6137 libs="$dlprefiles"
6138 fi
6139 if test "$pass" = dlopen; then
6140 # Collect dlpreopened libraries
6141 save_deplibs="$deplibs"
6142 deplibs=
6143 fi
6144
6145 for deplib in $libs; do
6146 lib=
6147 found=no
6148 case $deplib in
6149 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
6150 if test "$linkmode,$pass" = "prog,link"; then
6151 compile_deplibs="$deplib $compile_deplibs"
6152 finalize_deplibs="$deplib $finalize_deplibs"
6153 else
6154 func_append compiler_flags " $deplib"
6155 if test "$linkmode" = lib ; then
6156 case "$new_inherited_linker_flags " in
6157 *" $deplib "*) ;;
6158 * ) func_append new_inherited_linker_flags " $deplib" ;;
6159 esac
6160 fi
6161 fi
6162 continue
6163 ;;
6164 -l*)
6165 if test "$linkmode" != lib && test "$linkmode" != prog; then
6166 func_warning "\`-l' is ignored for archives/objects"
6167 continue
6168 fi
6169 func_stripname '-l' '' "$deplib"
6170 name=$func_stripname_result
6171 if test "$linkmode" = lib; then
6172 searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
6173 else
6174 searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
6175 fi
6176 for searchdir in $searchdirs; do
6177 for search_ext in .la $std_shrext .so .a; do
6178 # Search the libtool library
6179 lib="$searchdir/lib${name}${search_ext}"
6180 if test -f "$lib"; then
6181 if test "$search_ext" = ".la"; then
6182 found=yes
6183 else
6184 found=no
6185 fi
6186 break 2
6187 fi
6188 done
6189 done
6190 if test "$found" != yes; then
6191 # deplib doesn't seem to be a libtool library
6192 if test "$linkmode,$pass" = "prog,link"; then
6193 compile_deplibs="$deplib $compile_deplibs"
6194 finalize_deplibs="$deplib $finalize_deplibs"
6195 else
6196 deplibs="$deplib $deplibs"
6197 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
6198 fi
6199 continue
6200 else # deplib is a libtool library
6201 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
6202 # We need to do some special things here, and not later.
6203 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6204 case " $predeps $postdeps " in
6205 *" $deplib "*)
6206 if func_lalib_p "$lib"; then
6207 library_names=
6208 old_library=
6209 func_source "$lib"
6210 for l in $old_library $library_names; do
6211 ll="$l"
6212 done
6213 if test "X$ll" = "X$old_library" ; then # only static version available
6214 found=no
6215 func_dirname "$lib" "" "."
6216 ladir="$func_dirname_result"
6217 lib=$ladir/$old_library
6218 if test "$linkmode,$pass" = "prog,link"; then
6219 compile_deplibs="$deplib $compile_deplibs"
6220 finalize_deplibs="$deplib $finalize_deplibs"
6221 else
6222 deplibs="$deplib $deplibs"
6223 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
6224 fi
6225 continue
6226 fi
6227 fi
6228 ;;
6229 *) ;;
6230 esac
6231 fi
6232 fi
6233 ;; # -l
6234 *.ltframework)
6235 if test "$linkmode,$pass" = "prog,link"; then
6236 compile_deplibs="$deplib $compile_deplibs"
6237 finalize_deplibs="$deplib $finalize_deplibs"
6238 else
6239 deplibs="$deplib $deplibs"
6240 if test "$linkmode" = lib ; then
6241 case "$new_inherited_linker_flags " in
6242 *" $deplib "*) ;;
6243 * ) func_append new_inherited_linker_flags " $deplib" ;;
6244 esac
6245 fi
6246 fi
6247 continue
6248 ;;
6249 -L*)
6250 case $linkmode in
6251 lib)
6252 deplibs="$deplib $deplibs"
6253 test "$pass" = conv && continue
6254 newdependency_libs="$deplib $newdependency_libs"
6255 func_stripname '-L' '' "$deplib"
6256 func_resolve_sysroot "$func_stripname_result"
6257 func_append newlib_search_path " $func_resolve_sysroot_result"
6258 ;;
6259 prog)
6260 if test "$pass" = conv; then
6261 deplibs="$deplib $deplibs"
6262 continue
6263 fi
6264 if test "$pass" = scan; then
6265 deplibs="$deplib $deplibs"
6266 else
6267 compile_deplibs="$deplib $compile_deplibs"
6268 finalize_deplibs="$deplib $finalize_deplibs"
6269 fi
6270 func_stripname '-L' '' "$deplib"
6271 func_resolve_sysroot "$func_stripname_result"
6272 func_append newlib_search_path " $func_resolve_sysroot_result"
6273 ;;
6274 *)
6275 func_warning "\`-L' is ignored for archives/objects"
6276 ;;
6277 esac # linkmode
6278 continue
6279 ;; # -L
6280 -R*)
6281 if test "$pass" = link; then
6282 func_stripname '-R' '' "$deplib"
6283 func_resolve_sysroot "$func_stripname_result"
6284 dir=$func_resolve_sysroot_result
6285 # Make sure the xrpath contains only unique directories.
6286 case "$xrpath " in
6287 *" $dir "*) ;;
6288 *) func_append xrpath " $dir" ;;
6289 esac
6290 fi
6291 deplibs="$deplib $deplibs"
6292 continue
6293 ;;
6294 *.la)
6295 func_resolve_sysroot "$deplib"
6296 lib=$func_resolve_sysroot_result
6297 ;;
6298 *.$libext)
6299 if test "$pass" = conv; then
6300 deplibs="$deplib $deplibs"
6301 continue
6302 fi
6303 case $linkmode in
6304 lib)
6305 # Linking convenience modules into shared libraries is allowed,
6306 # but linking other static libraries is non-portable.
6307 case " $dlpreconveniencelibs " in
6308 *" $deplib "*) ;;
6309 *)
6310 valid_a_lib=no
6311 case $deplibs_check_method in
6312 match_pattern*)
6313 set dummy $deplibs_check_method; shift
6314 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
6315 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
6316 | $EGREP "$match_pattern_regex" > /dev/null; then
6317 valid_a_lib=yes
6318 fi
6319 ;;
6320 pass_all)
6321 valid_a_lib=yes
6322 ;;
6323 esac
6324 if test "$valid_a_lib" != yes; then
6325 echo
6326 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
6327 echo "*** I have the capability to make that library automatically link in when"
6328 echo "*** you link to this library. But I can only do this if you have a"
6329 echo "*** shared version of the library, which you do not appear to have"
6330 echo "*** because the file extensions .$libext of this argument makes me believe"
6331 echo "*** that it is just a static archive that I should not use here."
6332 else
6333 echo
6334 $ECHO "*** Warning: Linking the shared library $output against the"
6335 $ECHO "*** static library $deplib is not portable!"
6336 deplibs="$deplib $deplibs"
6337 fi
6338 ;;
6339 esac
6340 continue
6341 ;;
6342 prog)
6343 if test "$pass" != link; then
6344 deplibs="$deplib $deplibs"
6345 else
6346 compile_deplibs="$deplib $compile_deplibs"
6347 finalize_deplibs="$deplib $finalize_deplibs"
6348 fi
6349 continue
6350 ;;
6351 esac # linkmode
6352 ;; # *.$libext
6353 *.lo | *.$objext)
6354 if test "$pass" = conv; then
6355 deplibs="$deplib $deplibs"
6356 elif test "$linkmode" = prog; then
6357 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
6358 # If there is no dlopen support or we're linking statically,
6359 # we need to preload.
6360 func_append newdlprefiles " $deplib"
6361 compile_deplibs="$deplib $compile_deplibs"
6362 finalize_deplibs="$deplib $finalize_deplibs"
6363 else
6364 func_append newdlfiles " $deplib"
6365 fi
6366 fi
6367 continue
6368 ;;
6369 %DEPLIBS%)
6370 alldeplibs=yes
6371 continue
6372 ;;
6373 esac # case $deplib
6374
6375 if test "$found" = yes || test -f "$lib"; then :
6376 else
6377 func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
6378 fi
6379
6380 # Check to see that this really is a libtool archive.
6381 func_lalib_unsafe_p "$lib" \
6382 || func_fatal_error "\`$lib' is not a valid libtool archive"
6383
6384 func_dirname "$lib" "" "."
6385 ladir="$func_dirname_result"
6386
6387 dlname=
6388 dlopen=
6389 dlpreopen=
6390 libdir=
6391 library_names=
6392 old_library=
6393 inherited_linker_flags=
6394 # If the library was installed with an old release of libtool,
6395 # it will not redefine variables installed, or shouldnotlink
6396 installed=yes
6397 shouldnotlink=no
6398 avoidtemprpath=
6399
6400
6401 # Read the .la file
6402 func_source "$lib"
6403
6404 # Convert "-framework foo" to "foo.ltframework"
6405 if test -n "$inherited_linker_flags"; then
6406 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
6407 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
6408 case " $new_inherited_linker_flags " in
6409 *" $tmp_inherited_linker_flag "*) ;;
6410 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
6411 esac
6412 done
6413 fi
6414 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6415 if test "$linkmode,$pass" = "lib,link" ||
6416 test "$linkmode,$pass" = "prog,scan" ||
6417 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
6418 test -n "$dlopen" && func_append dlfiles " $dlopen"
6419 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
6420 fi
6421
6422 if test "$pass" = conv; then
6423 # Only check for convenience libraries
6424 deplibs="$lib $deplibs"
6425 if test -z "$libdir"; then
6426 if test -z "$old_library"; then
6427 func_fatal_error "cannot find name of link library for \`$lib'"
6428 fi
6429 # It is a libtool convenience library, so add in its objects.
6430 func_append convenience " $ladir/$objdir/$old_library"
6431 func_append old_convenience " $ladir/$objdir/$old_library"
6432 elif test "$linkmode" != prog && test "$linkmode" != lib; then
6433 func_fatal_error "\`$lib' is not a convenience library"
6434 fi
6435 tmp_libs=
6436 for deplib in $dependency_libs; do
6437 deplibs="$deplib $deplibs"
6438 if $opt_preserve_dup_deps ; then
6439 case "$tmp_libs " in
6440 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6441 esac
6442 fi
6443 func_append tmp_libs " $deplib"
6444 done
6445 continue
6446 fi # $pass = conv
6447
6448
6449 # Get the name of the library we link against.
6450 linklib=
6451 if test -n "$old_library" &&
6452 { test "$prefer_static_libs" = yes ||
6453 test "$prefer_static_libs,$installed" = "built,no"; }; then
6454 linklib=$old_library
6455 else
6456 for l in $old_library $library_names; do
6457 linklib="$l"
6458 done
6459 fi
6460 if test -z "$linklib"; then
6461 func_fatal_error "cannot find name of link library for \`$lib'"
6462 fi
6463
6464 # This library was specified with -dlopen.
6465 if test "$pass" = dlopen; then
6466 if test -z "$libdir"; then
6467 func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
6468 fi
6469 if test -z "$dlname" ||
6470 test "$dlopen_support" != yes ||
6471 test "$build_libtool_libs" = no; then
6472 # If there is no dlname, no dlopen support or we're linking
6473 # statically, we need to preload. We also need to preload any
6474 # dependent libraries so libltdl's deplib preloader doesn't
6475 # bomb out in the load deplibs phase.
6476 func_append dlprefiles " $lib $dependency_libs"
6477 else
6478 func_append newdlfiles " $lib"
6479 fi
6480 continue
6481 fi # $pass = dlopen
6482
6483 # We need an absolute path.
6484 case $ladir in
6485 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
6486 *)
6487 abs_ladir=`cd "$ladir" && pwd`
6488 if test -z "$abs_ladir"; then
6489 func_warning "cannot determine absolute directory name of \`$ladir'"
6490 func_warning "passing it literally to the linker, although it might fail"
6491 abs_ladir="$ladir"
6492 fi
6493 ;;
6494 esac
6495 func_basename "$lib"
6496 laname="$func_basename_result"
6497
6498 # Find the relevant object directory and library name.
6499 if test "X$installed" = Xyes; then
6500 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6501 func_warning "library \`$lib' was moved."
6502 dir="$ladir"
6503 absdir="$abs_ladir"
6504 libdir="$abs_ladir"
6505 else
6506 dir="$lt_sysroot$libdir"
6507 absdir="$lt_sysroot$libdir"
6508 fi
6509 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
6510 else
6511 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6512 dir="$ladir"
6513 absdir="$abs_ladir"
6514 # Remove this search path later
6515 func_append notinst_path " $abs_ladir"
6516 else
6517 dir="$ladir/$objdir"
6518 absdir="$abs_ladir/$objdir"
6519 # Remove this search path later
6520 func_append notinst_path " $abs_ladir"
6521 fi
6522 fi # $installed = yes
6523 func_stripname 'lib' '.la' "$laname"
6524 name=$func_stripname_result
6525
6526 # This library was specified with -dlpreopen.
6527 if test "$pass" = dlpreopen; then
6528 if test -z "$libdir" && test "$linkmode" = prog; then
6529 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
6530 fi
6531 case "$host" in
6532 # special handling for platforms with PE-DLLs.
6533 *cygwin* | *mingw* | *cegcc* )
6534 # Linker will automatically link against shared library if both
6535 # static and shared are present. Therefore, ensure we extract
6536 # symbols from the import library if a shared library is present
6537 # (otherwise, the dlopen module name will be incorrect). We do
6538 # this by putting the import library name into $newdlprefiles.
6539 # We recover the dlopen module name by 'saving' the la file
6540 # name in a special purpose variable, and (later) extracting the
6541 # dlname from the la file.
6542 if test -n "$dlname"; then
6543 func_tr_sh "$dir/$linklib"
6544 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
6545 func_append newdlprefiles " $dir/$linklib"
6546 else
6547 func_append newdlprefiles " $dir/$old_library"
6548 # Keep a list of preopened convenience libraries to check
6549 # that they are being used correctly in the link pass.
6550 test -z "$libdir" && \
6551 func_append dlpreconveniencelibs " $dir/$old_library"
6552 fi
6553 ;;
6554 * )
6555 # Prefer using a static library (so that no silly _DYNAMIC symbols
6556 # are required to link).
6557 if test -n "$old_library"; then
6558 func_append newdlprefiles " $dir/$old_library"
6559 # Keep a list of preopened convenience libraries to check
6560 # that they are being used correctly in the link pass.
6561 test -z "$libdir" && \
6562 func_append dlpreconveniencelibs " $dir/$old_library"
6563 # Otherwise, use the dlname, so that lt_dlopen finds it.
6564 elif test -n "$dlname"; then
6565 func_append newdlprefiles " $dir/$dlname"
6566 else
6567 func_append newdlprefiles " $dir/$linklib"
6568 fi
6569 ;;
6570 esac
6571 fi # $pass = dlpreopen
6572
6573 if test -z "$libdir"; then
6574 # Link the convenience library
6575 if test "$linkmode" = lib; then
6576 deplibs="$dir/$old_library $deplibs"
6577 elif test "$linkmode,$pass" = "prog,link"; then
6578 compile_deplibs="$dir/$old_library $compile_deplibs"
6579 finalize_deplibs="$dir/$old_library $finalize_deplibs"
6580 else
6581 deplibs="$lib $deplibs" # used for prog,scan pass
6582 fi
6583 continue
6584 fi
6585
6586
6587 if test "$linkmode" = prog && test "$pass" != link; then
6588 func_append newlib_search_path " $ladir"
6589 deplibs="$lib $deplibs"
6590
6591 linkalldeplibs=no
6592 if test "$link_all_deplibs" != no || test -z "$library_names" ||
6593 test "$build_libtool_libs" = no; then
6594 linkalldeplibs=yes
6595 fi
6596
6597 tmp_libs=
6598 for deplib in $dependency_libs; do
6599 case $deplib in
6600 -L*) func_stripname '-L' '' "$deplib"
6601 func_resolve_sysroot "$func_stripname_result"
6602 func_append newlib_search_path " $func_resolve_sysroot_result"
6603 ;;
6604 esac
6605 # Need to link against all dependency_libs?
6606 if test "$linkalldeplibs" = yes; then
6607 deplibs="$deplib $deplibs"
6608 else
6609 # Need to hardcode shared library paths
6610 # or/and link against static libraries
6611 newdependency_libs="$deplib $newdependency_libs"
6612 fi
6613 if $opt_preserve_dup_deps ; then
6614 case "$tmp_libs " in
6615 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6616 esac
6617 fi
6618 func_append tmp_libs " $deplib"
6619 done # for deplib
6620 continue
6621 fi # $linkmode = prog...
6622
6623 if test "$linkmode,$pass" = "prog,link"; then
6624 if test -n "$library_names" &&
6625 { { test "$prefer_static_libs" = no ||
6626 test "$prefer_static_libs,$installed" = "built,yes"; } ||
6627 test -z "$old_library"; }; then
6628 # We need to hardcode the library path
6629 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
6630 # Make sure the rpath contains only unique directories.
6631 case "$temp_rpath:" in
6632 *"$absdir:"*) ;;
6633 *) func_append temp_rpath "$absdir:" ;;
6634 esac
6635 fi
6636
6637 # Hardcode the library path.
6638 # Skip directories that are in the system default run-time
6639 # search path.
6640 case " $sys_lib_dlsearch_path " in
6641 *" $absdir "*) ;;
6642 *)
6643 case "$compile_rpath " in
6644 *" $absdir "*) ;;
6645 *) func_append compile_rpath " $absdir" ;;
6646 esac
6647 ;;
6648 esac
6649 case " $sys_lib_dlsearch_path " in
6650 *" $libdir "*) ;;
6651 *)
6652 case "$finalize_rpath " in
6653 *" $libdir "*) ;;
6654 *) func_append finalize_rpath " $libdir" ;;
6655 esac
6656 ;;
6657 esac
6658 fi # $linkmode,$pass = prog,link...
6659
6660 if test "$alldeplibs" = yes &&
6661 { test "$deplibs_check_method" = pass_all ||
6662 { test "$build_libtool_libs" = yes &&
6663 test -n "$library_names"; }; }; then
6664 # We only need to search for static libraries
6665 continue
6666 fi
6667 fi
6668
6669 link_static=no # Whether the deplib will be linked statically
6670 use_static_libs=$prefer_static_libs
6671 if test "$use_static_libs" = built && test "$installed" = yes; then
6672 use_static_libs=no
6673 fi
6674 if test -n "$library_names" &&
6675 { test "$use_static_libs" = no || test -z "$old_library"; }; then
6676 case $host in
6677 *cygwin* | *mingw* | *cegcc*)
6678 # No point in relinking DLLs because paths are not encoded
6679 func_append notinst_deplibs " $lib"
6680 need_relink=no
6681 ;;
6682 *)
6683 if test "$installed" = no; then
6684 func_append notinst_deplibs " $lib"
6685 need_relink=yes
6686 fi
6687 ;;
6688 esac
6689 # This is a shared library
6690
6691 # Warn about portability, can't link against -module's on some
6692 # systems (darwin). Don't bleat about dlopened modules though!
6693 dlopenmodule=""
6694 for dlpremoduletest in $dlprefiles; do
6695 if test "X$dlpremoduletest" = "X$lib"; then
6696 dlopenmodule="$dlpremoduletest"
6697 break
6698 fi
6699 done
6700 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
6701 echo
6702 if test "$linkmode" = prog; then
6703 $ECHO "*** Warning: Linking the executable $output against the loadable module"
6704 else
6705 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
6706 fi
6707 $ECHO "*** $linklib is not portable!"
6708 fi
6709 if test "$linkmode" = lib &&
6710 test "$hardcode_into_libs" = yes; then
6711 # Hardcode the library path.
6712 # Skip directories that are in the system default run-time
6713 # search path.
6714 case " $sys_lib_dlsearch_path " in
6715 *" $absdir "*) ;;
6716 *)
6717 case "$compile_rpath " in
6718 *" $absdir "*) ;;
6719 *) func_append compile_rpath " $absdir" ;;
6720 esac
6721 ;;
6722 esac
6723 case " $sys_lib_dlsearch_path " in
6724 *" $libdir "*) ;;
6725 *)
6726 case "$finalize_rpath " in
6727 *" $libdir "*) ;;
6728 *) func_append finalize_rpath " $libdir" ;;
6729 esac
6730 ;;
6731 esac
6732 fi
6733
6734 if test -n "$old_archive_from_expsyms_cmds"; then
6735 # figure out the soname
6736 set dummy $library_names
6737 shift
6738 realname="$1"
6739 shift
6740 libname=`eval "\\$ECHO \"$libname_spec\""`
6741 # use dlname if we got it. it's perfectly good, no?
6742 if test -n "$dlname"; then
6743 soname="$dlname"
6744 elif test -n "$soname_spec"; then
6745 # bleh windows
6746 case $host in
6747 *cygwin* | mingw* | *cegcc*)
6748 func_arith $current - $age
6749 major=$func_arith_result
6750 versuffix="-$major"
6751 ;;
6752 esac
6753 eval soname=\"$soname_spec\"
6754 else
6755 soname="$realname"
6756 fi
6757
6758 # Make a new name for the extract_expsyms_cmds to use
6759 soroot="$soname"
6760 func_basename "$soroot"
6761 soname="$func_basename_result"
6762 func_stripname 'lib' '.dll' "$soname"
6763 newlib=libimp-$func_stripname_result.a
6764
6765 # If the library has no export list, then create one now
6766 if test -f "$output_objdir/$soname-def"; then :
6767 else
6768 func_verbose "extracting exported symbol list from \`$soname'"
6769 func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
6770 fi
6771
6772 # Create $newlib
6773 if test -f "$output_objdir/$newlib"; then :; else
6774 func_verbose "generating import library for \`$soname'"
6775 func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
6776 fi
6777 # make sure the library variables are pointing to the new library
6778 dir=$output_objdir
6779 linklib=$newlib
6780 fi # test -n "$old_archive_from_expsyms_cmds"
6781
6782 if test "$linkmode" = prog || test "$opt_mode" != relink; then
6783 add_shlibpath=
6784 add_dir=
6785 add=
6786 lib_linked=yes
6787 case $hardcode_action in
6788 immediate | unsupported)
6789 if test "$hardcode_direct" = no; then
6790 add="$dir/$linklib"
6791 case $host in
6792 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
6793 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
6794 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
6795 *-*-unixware7*) add_dir="-L$dir" ;;
6796 *-*-darwin* )
6797 # if the lib is a (non-dlopened) module then we can not
6798 # link against it, someone is ignoring the earlier warnings
6799 if /usr/bin/file -L $add 2> /dev/null |
6800 $GREP ": [^:]* bundle" >/dev/null ; then
6801 if test "X$dlopenmodule" != "X$lib"; then
6802 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6803 if test -z "$old_library" ; then
6804 echo
6805 echo "*** And there doesn't seem to be a static archive available"
6806 echo "*** The link will probably fail, sorry"
6807 else
6808 add="$dir/$old_library"
6809 fi
6810 elif test -n "$old_library"; then
6811 add="$dir/$old_library"
6812 fi
6813 fi
6814 esac
6815 elif test "$hardcode_minus_L" = no; then
6816 case $host in
6817 *-*-sunos*) add_shlibpath="$dir" ;;
6818 esac
6819 add_dir="-L$dir"
6820 add="-l$name"
6821 elif test "$hardcode_shlibpath_var" = no; then
6822 add_shlibpath="$dir"
6823 add="-l$name"
6824 else
6825 lib_linked=no
6826 fi
6827 ;;
6828 relink)
6829 if test "$hardcode_direct" = yes &&
6830 test "$hardcode_direct_absolute" = no; then
6831 add="$dir/$linklib"
6832 elif test "$hardcode_minus_L" = yes; then
6833 add_dir="-L$dir"
6834 # Try looking first in the location we're being installed to.
6835 if test -n "$inst_prefix_dir"; then
6836 case $libdir in
6837 [\\/]*)
6838 func_append add_dir " -L$inst_prefix_dir$libdir"
6839 ;;
6840 esac
6841 fi
6842 add="-l$name"
6843 elif test "$hardcode_shlibpath_var" = yes; then
6844 add_shlibpath="$dir"
6845 add="-l$name"
6846 else
6847 lib_linked=no
6848 fi
6849 ;;
6850 *) lib_linked=no ;;
6851 esac
6852
6853 if test "$lib_linked" != yes; then
6854 func_fatal_configuration "unsupported hardcode properties"
6855 fi
6856
6857 if test -n "$add_shlibpath"; then
6858 case :$compile_shlibpath: in
6859 *":$add_shlibpath:"*) ;;
6860 *) func_append compile_shlibpath "$add_shlibpath:" ;;
6861 esac
6862 fi
6863 if test "$linkmode" = prog; then
6864 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
6865 test -n "$add" && compile_deplibs="$add $compile_deplibs"
6866 else
6867 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6868 test -n "$add" && deplibs="$add $deplibs"
6869 if test "$hardcode_direct" != yes &&
6870 test "$hardcode_minus_L" != yes &&
6871 test "$hardcode_shlibpath_var" = yes; then
6872 case :$finalize_shlibpath: in
6873 *":$libdir:"*) ;;
6874 *) func_append finalize_shlibpath "$libdir:" ;;
6875 esac
6876 fi
6877 fi
6878 fi
6879
6880 if test "$linkmode" = prog || test "$opt_mode" = relink; then
6881 add_shlibpath=
6882 add_dir=
6883 add=
6884 # Finalize command for both is simple: just hardcode it.
6885 if test "$hardcode_direct" = yes &&
6886 test "$hardcode_direct_absolute" = no; then
6887 add="$libdir/$linklib"
6888 elif test "$hardcode_minus_L" = yes; then
6889 add_dir="-L$libdir"
6890 add="-l$name"
6891 elif test "$hardcode_shlibpath_var" = yes; then
6892 case :$finalize_shlibpath: in
6893 *":$libdir:"*) ;;
6894 *) func_append finalize_shlibpath "$libdir:" ;;
6895 esac
6896 add="-l$name"
6897 elif test "$hardcode_automatic" = yes; then
6898 if test -n "$inst_prefix_dir" &&
6899 test -f "$inst_prefix_dir$libdir/$linklib" ; then
6900 add="$inst_prefix_dir$libdir/$linklib"
6901 else
6902 add="$libdir/$linklib"
6903 fi
6904 else
6905 # We cannot seem to hardcode it, guess we'll fake it.
6906 add_dir="-L$libdir"
6907 # Try looking first in the location we're being installed to.
6908 if test -n "$inst_prefix_dir"; then
6909 case $libdir in
6910 [\\/]*)
6911 func_append add_dir " -L$inst_prefix_dir$libdir"
6912 ;;
6913 esac
6914 fi
6915 add="-l$name"
6916 fi
6917
6918 if test "$linkmode" = prog; then
6919 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
6920 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
6921 else
6922 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6923 test -n "$add" && deplibs="$add $deplibs"
6924 fi
6925 fi
6926 elif test "$linkmode" = prog; then
6927 # Here we assume that one of hardcode_direct or hardcode_minus_L
6928 # is not unsupported. This is valid on all known static and
6929 # shared platforms.
6930 if test "$hardcode_direct" != unsupported; then
6931 test -n "$old_library" && linklib="$old_library"
6932 compile_deplibs="$dir/$linklib $compile_deplibs"
6933 finalize_deplibs="$dir/$linklib $finalize_deplibs"
6934 else
6935 compile_deplibs="-l$name -L$dir $compile_deplibs"
6936 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
6937 fi
6938 elif test "$build_libtool_libs" = yes; then
6939 # Not a shared library
6940 if test "$deplibs_check_method" != pass_all; then
6941 # We're trying link a shared library against a static one
6942 # but the system doesn't support it.
6943
6944 # Just print a warning and add the library to dependency_libs so
6945 # that the program can be linked against the static library.
6946 echo
6947 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6948 echo "*** I have the capability to make that library automatically link in when"
6949 echo "*** you link to this library. But I can only do this if you have a"
6950 echo "*** shared version of the library, which you do not appear to have."
6951 if test "$module" = yes; then
6952 echo "*** But as you try to build a module library, libtool will still create "
6953 echo "*** a static module, that should work as long as the dlopening application"
6954 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
6955 if test -z "$global_symbol_pipe"; then
6956 echo
6957 echo "*** However, this would only work if libtool was able to extract symbol"
6958 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6959 echo "*** not find such a program. So, this module is probably useless."
6960 echo "*** \`nm' from GNU binutils and a full rebuild may help."
6961 fi
6962 if test "$build_old_libs" = no; then
6963 build_libtool_libs=module
6964 build_old_libs=yes
6965 else
6966 build_libtool_libs=no
6967 fi
6968 fi
6969 else
6970 deplibs="$dir/$old_library $deplibs"
6971 link_static=yes
6972 fi
6973 fi # link shared/static library?
6974
6975 if test "$linkmode" = lib; then
6976 if test -n "$dependency_libs" &&
6977 { test "$hardcode_into_libs" != yes ||
6978 test "$build_old_libs" = yes ||
6979 test "$link_static" = yes; }; then
6980 # Extract -R from dependency_libs
6981 temp_deplibs=
6982 for libdir in $dependency_libs; do
6983 case $libdir in
6984 -R*) func_stripname '-R' '' "$libdir"
6985 temp_xrpath=$func_stripname_result
6986 case " $xrpath " in
6987 *" $temp_xrpath "*) ;;
6988 *) func_append xrpath " $temp_xrpath";;
6989 esac;;
6990 *) func_append temp_deplibs " $libdir";;
6991 esac
6992 done
6993 dependency_libs="$temp_deplibs"
6994 fi
6995
6996 func_append newlib_search_path " $absdir"
6997 # Link against this library
6998 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
6999 # ... and its dependency_libs
7000 tmp_libs=
7001 for deplib in $dependency_libs; do
7002 newdependency_libs="$deplib $newdependency_libs"
7003 case $deplib in
7004 -L*) func_stripname '-L' '' "$deplib"
7005 func_resolve_sysroot "$func_stripname_result";;
7006 *) func_resolve_sysroot "$deplib" ;;
7007 esac
7008 if $opt_preserve_dup_deps ; then
7009 case "$tmp_libs " in
7010 *" $func_resolve_sysroot_result "*)
7011 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
7012 esac
7013 fi
7014 func_append tmp_libs " $func_resolve_sysroot_result"
7015 done
7016
7017 if test "$link_all_deplibs" != no; then
7018 # Add the search paths of all dependency libraries
7019 for deplib in $dependency_libs; do
7020 path=
7021 case $deplib in
7022 -L*) path="$deplib" ;;
7023 *.la)
7024 func_resolve_sysroot "$deplib"
7025 deplib=$func_resolve_sysroot_result
7026 func_dirname "$deplib" "" "."
7027 dir=$func_dirname_result
7028 # We need an absolute path.
7029 case $dir in
7030 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
7031 *)
7032 absdir=`cd "$dir" && pwd`
7033 if test -z "$absdir"; then
7034 func_warning "cannot determine absolute directory name of \`$dir'"
7035 absdir="$dir"
7036 fi
7037 ;;
7038 esac
7039 if $GREP "^installed=no" $deplib > /dev/null; then
7040 case $host in
7041 *-*-darwin*)
7042 depdepl=
7043 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
7044 if test -n "$deplibrary_names" ; then
7045 for tmp in $deplibrary_names ; do
7046 depdepl=$tmp
7047 done
7048 if test -f "$absdir/$objdir/$depdepl" ; then
7049 depdepl="$absdir/$objdir/$depdepl"
7050 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7051 if test -z "$darwin_install_name"; then
7052 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7053 fi
7054 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
7055 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
7056 path=
7057 fi
7058 fi
7059 ;;
7060 *)
7061 path="-L$absdir/$objdir"
7062 ;;
7063 esac
7064 else
7065 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
7066 test -z "$libdir" && \
7067 func_fatal_error "\`$deplib' is not a valid libtool archive"
7068 test "$absdir" != "$libdir" && \
7069 func_warning "\`$deplib' seems to be moved"
7070
7071 path="-L$absdir"
7072 fi
7073 ;;
7074 esac
7075 case " $deplibs " in
7076 *" $path "*) ;;
7077 *) deplibs="$path $deplibs" ;;
7078 esac
7079 done
7080 fi # link_all_deplibs != no
7081 fi # linkmode = lib
7082 done # for deplib in $libs
7083 if test "$pass" = link; then
7084 if test "$linkmode" = "prog"; then
7085 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
7086 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
7087 else
7088 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7089 fi
7090 fi
7091 dependency_libs="$newdependency_libs"
7092 if test "$pass" = dlpreopen; then
7093 # Link the dlpreopened libraries before other libraries
7094 for deplib in $save_deplibs; do
7095 deplibs="$deplib $deplibs"
7096 done
7097 fi
7098 if test "$pass" != dlopen; then
7099 if test "$pass" != conv; then
7100 # Make sure lib_search_path contains only unique directories.
7101 lib_search_path=
7102 for dir in $newlib_search_path; do
7103 case "$lib_search_path " in
7104 *" $dir "*) ;;
7105 *) func_append lib_search_path " $dir" ;;
7106 esac
7107 done
7108 newlib_search_path=
7109 fi
7110
7111 if test "$linkmode,$pass" != "prog,link"; then
7112 vars="deplibs"
7113 else
7114 vars="compile_deplibs finalize_deplibs"
7115 fi
7116 for var in $vars dependency_libs; do
7117 # Add libraries to $var in reverse order
7118 eval tmp_libs=\"\$$var\"
7119 new_libs=
7120 for deplib in $tmp_libs; do
7121 # FIXME: Pedantically, this is the right thing to do, so
7122 # that some nasty dependency loop isn't accidentally
7123 # broken:
7124 #new_libs="$deplib $new_libs"
7125 # Pragmatically, this seems to cause very few problems in
7126 # practice:
7127 case $deplib in
7128 -L*) new_libs="$deplib $new_libs" ;;
7129 -R*) ;;
7130 *)
7131 # And here is the reason: when a library appears more
7132 # than once as an explicit dependence of a library, or
7133 # is implicitly linked in more than once by the
7134 # compiler, it is considered special, and multiple
7135 # occurrences thereof are not removed. Compare this
7136 # with having the same library being listed as a
7137 # dependency of multiple other libraries: in this case,
7138 # we know (pedantically, we assume) the library does not
7139 # need to be listed more than once, so we keep only the
7140 # last copy. This is not always right, but it is rare
7141 # enough that we require users that really mean to play
7142 # such unportable linking tricks to link the library
7143 # using -Wl,-lname, so that libtool does not consider it
7144 # for duplicate removal.
7145 case " $specialdeplibs " in
7146 *" $deplib "*) new_libs="$deplib $new_libs" ;;
7147 *)
7148 case " $new_libs " in
7149 *" $deplib "*) ;;
7150 *) new_libs="$deplib $new_libs" ;;
7151 esac
7152 ;;
7153 esac
7154 ;;
7155 esac
7156 done
7157 tmp_libs=
7158 for deplib in $new_libs; do
7159 case $deplib in
7160 -L*)
7161 case " $tmp_libs " in
7162 *" $deplib "*) ;;
7163 *) func_append tmp_libs " $deplib" ;;
7164 esac
7165 ;;
7166 *) func_append tmp_libs " $deplib" ;;
7167 esac
7168 done
7169 eval $var=\"$tmp_libs\"
7170 done # for var
7171 fi
7172 # Last step: remove runtime libs from dependency_libs
7173 # (they stay in deplibs)
7174 tmp_libs=
7175 for i in $dependency_libs ; do
7176 case " $predeps $postdeps $compiler_lib_search_path " in
7177 *" $i "*)
7178 i=""
7179 ;;
7180 esac
7181 if test -n "$i" ; then
7182 func_append tmp_libs " $i"
7183 fi
7184 done
7185 dependency_libs=$tmp_libs
7186 done # for pass
7187 if test "$linkmode" = prog; then
7188 dlfiles="$newdlfiles"
7189 fi
7190 if test "$linkmode" = prog || test "$linkmode" = lib; then
7191 dlprefiles="$newdlprefiles"
7192 fi
7193
7194 case $linkmode in
7195 oldlib)
7196 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
7197 func_warning "\`-dlopen' is ignored for archives"
7198 fi
7199
7200 case " $deplibs" in
7201 *\ -l* | *\ -L*)
7202 func_warning "\`-l' and \`-L' are ignored for archives" ;;
7203 esac
7204
7205 test -n "$rpath" && \
7206 func_warning "\`-rpath' is ignored for archives"
7207
7208 test -n "$xrpath" && \
7209 func_warning "\`-R' is ignored for archives"
7210
7211 test -n "$vinfo" && \
7212 func_warning "\`-version-info/-version-number' is ignored for archives"
7213
7214 test -n "$release" && \
7215 func_warning "\`-release' is ignored for archives"
7216
7217 test -n "$export_symbols$export_symbols_regex" && \
7218 func_warning "\`-export-symbols' is ignored for archives"
7219
7220 # Now set the variables for building old libraries.
7221 build_libtool_libs=no
7222 oldlibs="$output"
7223 func_append objs "$old_deplibs"
7224 ;;
7225
7226 lib)
7227 # Make sure we only generate libraries of the form `libNAME.la'.
7228 case $outputname in
7229 lib*)
7230 func_stripname 'lib' '.la' "$outputname"
7231 name=$func_stripname_result
7232 eval shared_ext=\"$shrext_cmds\"
7233 eval libname=\"$libname_spec\"
7234 ;;
7235 *)
7236 test "$module" = no && \
7237 func_fatal_help "libtool library \`$output' must begin with \`lib'"
7238
7239 if test "$need_lib_prefix" != no; then
7240 # Add the "lib" prefix for modules if required
7241 func_stripname '' '.la' "$outputname"
7242 name=$func_stripname_result
7243 eval shared_ext=\"$shrext_cmds\"
7244 eval libname=\"$libname_spec\"
7245 else
7246 func_stripname '' '.la' "$outputname"
7247 libname=$func_stripname_result
7248 fi
7249 ;;
7250 esac
7251
7252 if test -n "$objs"; then
7253 if test "$deplibs_check_method" != pass_all; then
7254 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
7255 else
7256 echo
7257 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
7258 $ECHO "*** objects $objs is not portable!"
7259 func_append libobjs " $objs"
7260 fi
7261 fi
7262
7263 test "$dlself" != no && \
7264 func_warning "\`-dlopen self' is ignored for libtool libraries"
7265
7266 set dummy $rpath
7267 shift
7268 test "$#" -gt 1 && \
7269 func_warning "ignoring multiple \`-rpath's for a libtool library"
7270
7271 install_libdir="$1"
7272
7273 oldlibs=
7274 if test -z "$rpath"; then
7275 if test "$build_libtool_libs" = yes; then
7276 # Building a libtool convenience library.
7277 # Some compilers have problems with a `.al' extension so
7278 # convenience libraries should have the same extension an
7279 # archive normally would.
7280 oldlibs="$output_objdir/$libname.$libext $oldlibs"
7281 build_libtool_libs=convenience
7282 build_old_libs=yes
7283 fi
7284
7285 test -n "$vinfo" && \
7286 func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
7287
7288 test -n "$release" && \
7289 func_warning "\`-release' is ignored for convenience libraries"
7290 else
7291
7292 # Parse the version information argument.
7293 save_ifs="$IFS"; IFS=':'
7294 set dummy $vinfo 0 0 0
7295 shift
7296 IFS="$save_ifs"
7297
7298 test -n "$7" && \
7299 func_fatal_help "too many parameters to \`-version-info'"
7300
7301 # convert absolute version numbers to libtool ages
7302 # this retains compatibility with .la files and attempts
7303 # to make the code below a bit more comprehensible
7304
7305 case $vinfo_number in
7306 yes)
7307 number_major="$1"
7308 number_minor="$2"
7309 number_revision="$3"
7310 #
7311 # There are really only two kinds -- those that
7312 # use the current revision as the major version
7313 # and those that subtract age and use age as
7314 # a minor version. But, then there is irix
7315 # which has an extra 1 added just for fun
7316 #
7317 case $version_type in
7318 darwin|linux|osf|windows|none)
7319 func_arith $number_major + $number_minor
7320 current=$func_arith_result
7321 age="$number_minor"
7322 revision="$number_revision"
7323 ;;
7324 freebsd-aout|freebsd-elf|qnx|sunos)
7325 current="$number_major"
7326 revision="$number_minor"
7327 age="0"
7328 ;;
7329 irix|nonstopux)
7330 func_arith $number_major + $number_minor
7331 current=$func_arith_result
7332 age="$number_minor"
7333 revision="$number_minor"
7334 lt_irix_increment=no
7335 ;;
7336 esac
7337 ;;
7338 no)
7339 current="$1"
7340 revision="$2"
7341 age="$3"
7342 ;;
7343 esac
7344
7345 # Check that each of the things are valid numbers.
7346 case $current in
7347 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]) ;;
7348 *)
7349 func_error "CURRENT \`$current' must be a nonnegative integer"
7350 func_fatal_error "\`$vinfo' is not valid version information"
7351 ;;
7352 esac
7353
7354 case $revision in
7355 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]) ;;
7356 *)
7357 func_error "REVISION \`$revision' must be a nonnegative integer"
7358 func_fatal_error "\`$vinfo' is not valid version information"
7359 ;;
7360 esac
7361
7362 case $age in
7363 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]) ;;
7364 *)
7365 func_error "AGE \`$age' must be a nonnegative integer"
7366 func_fatal_error "\`$vinfo' is not valid version information"
7367 ;;
7368 esac
7369
7370 if test "$age" -gt "$current"; then
7371 func_error "AGE \`$age' is greater than the current interface number \`$current'"
7372 func_fatal_error "\`$vinfo' is not valid version information"
7373 fi
7374
7375 # Calculate the version variables.
7376 major=
7377 versuffix=
7378 verstring=
7379 case $version_type in
7380 none) ;;
7381
7382 darwin)
7383 # Like Linux, but with the current version available in
7384 # verstring for coding it into the library header
7385 func_arith $current - $age
7386 major=.$func_arith_result
7387 versuffix="$major.$age.$revision"
7388 # Darwin ld doesn't like 0 for these options...
7389 func_arith $current + 1
7390 minor_current=$func_arith_result
7391 xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
7392 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
7393 ;;
7394
7395 freebsd-aout)
7396 major=".$current"
7397 versuffix=".$current.$revision";
7398 ;;
7399
7400 freebsd-elf)
7401 major=".$current"
7402 versuffix=".$current"
7403 ;;
7404
7405 irix | nonstopux)
7406 if test "X$lt_irix_increment" = "Xno"; then
7407 func_arith $current - $age
7408 else
7409 func_arith $current - $age + 1
7410 fi
7411 major=$func_arith_result
7412
7413 case $version_type in
7414 nonstopux) verstring_prefix=nonstopux ;;
7415 *) verstring_prefix=sgi ;;
7416 esac
7417 verstring="$verstring_prefix$major.$revision"
7418
7419 # Add in all the interfaces that we are compatible with.
7420 loop=$revision
7421 while test "$loop" -ne 0; do
7422 func_arith $revision - $loop
7423 iface=$func_arith_result
7424 func_arith $loop - 1
7425 loop=$func_arith_result
7426 verstring="$verstring_prefix$major.$iface:$verstring"
7427 done
7428
7429 # Before this point, $major must not contain `.'.
7430 major=.$major
7431 versuffix="$major.$revision"
7432 ;;
7433
7434 linux)
7435 func_arith $current - $age
7436 major=.$func_arith_result
7437 versuffix="$major.$age.$revision"
7438 ;;
7439
7440 osf)
7441 func_arith $current - $age
7442 major=.$func_arith_result
7443 versuffix=".$current.$age.$revision"
7444 verstring="$current.$age.$revision"
7445
7446 # Add in all the interfaces that we are compatible with.
7447 loop=$age
7448 while test "$loop" -ne 0; do
7449 func_arith $current - $loop
7450 iface=$func_arith_result
7451 func_arith $loop - 1
7452 loop=$func_arith_result
7453 verstring="$verstring:${iface}.0"
7454 done
7455
7456 # Make executables depend on our current version.
7457 func_append verstring ":${current}.0"
7458 ;;
7459
7460 qnx)
7461 major=".$current"
7462 versuffix=".$current"
7463 ;;
7464
7465 sunos)
7466 major=".$current"
7467 versuffix=".$current.$revision"
7468 ;;
7469
7470 windows)
7471 # Use '-' rather than '.', since we only want one
7472 # extension on DOS 8.3 filesystems.
7473 func_arith $current - $age
7474 major=$func_arith_result
7475 versuffix="-$major"
7476 ;;
7477
7478 *)
7479 func_fatal_configuration "unknown library version type \`$version_type'"
7480 ;;
7481 esac
7482
7483 # Clear the version info if we defaulted, and they specified a release.
7484 if test -z "$vinfo" && test -n "$release"; then
7485 major=
7486 case $version_type in
7487 darwin)
7488 # we can't check for "0.0" in archive_cmds due to quoting
7489 # problems, so we reset it completely
7490 verstring=
7491 ;;
7492 *)
7493 verstring="0.0"
7494 ;;
7495 esac
7496 if test "$need_version" = no; then
7497 versuffix=
7498 else
7499 versuffix=".0.0"
7500 fi
7501 fi
7502
7503 # Remove version info from name if versioning should be avoided
7504 if test "$avoid_version" = yes && test "$need_version" = no; then
7505 major=
7506 versuffix=
7507 verstring=""
7508 fi
7509
7510 # Check to see if the archive will have undefined symbols.
7511 if test "$allow_undefined" = yes; then
7512 if test "$allow_undefined_flag" = unsupported; then
7513 func_warning "undefined symbols not allowed in $host shared libraries"
7514 build_libtool_libs=no
7515 build_old_libs=yes
7516 fi
7517 else
7518 # Don't allow undefined symbols.
7519 allow_undefined_flag="$no_undefined_flag"
7520 fi
7521
7522 fi
7523
7524 func_generate_dlsyms "$libname" "$libname" "yes"
7525 func_append libobjs " $symfileobj"
7526 test "X$libobjs" = "X " && libobjs=
7527
7528 if test "$opt_mode" != relink; then
7529 # Remove our outputs, but don't remove object files since they
7530 # may have been created when compiling PIC objects.
7531 removelist=
7532 tempremovelist=`$ECHO "$output_objdir/*"`
7533 for p in $tempremovelist; do
7534 case $p in
7535 *.$objext | *.gcno)
7536 ;;
7537 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
7538 if test "X$precious_files_regex" != "X"; then
7539 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
7540 then
7541 continue
7542 fi
7543 fi
7544 func_append removelist " $p"
7545 ;;
7546 *) ;;
7547 esac
7548 done
7549 test -n "$removelist" && \
7550 func_show_eval "${RM}r \$removelist"
7551 fi
7552
7553 # Now set the variables for building old libraries.
7554 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
7555 func_append oldlibs " $output_objdir/$libname.$libext"
7556
7557 # Transform .lo files to .o files.
7558 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
7559 fi
7560
7561 # Eliminate all temporary directories.
7562 #for path in $notinst_path; do
7563 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
7564 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
7565 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
7566 #done
7567
7568 if test -n "$xrpath"; then
7569 # If the user specified any rpath flags, then add them.
7570 temp_xrpath=
7571 for libdir in $xrpath; do
7572 func_replace_sysroot "$libdir"
7573 func_append temp_xrpath " -R$func_replace_sysroot_result"
7574 case "$finalize_rpath " in
7575 *" $libdir "*) ;;
7576 *) func_append finalize_rpath " $libdir" ;;
7577 esac
7578 done
7579 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
7580 dependency_libs="$temp_xrpath $dependency_libs"
7581 fi
7582 fi
7583
7584 # Make sure dlfiles contains only unique files that won't be dlpreopened
7585 old_dlfiles="$dlfiles"
7586 dlfiles=
7587 for lib in $old_dlfiles; do
7588 case " $dlprefiles $dlfiles " in
7589 *" $lib "*) ;;
7590 *) func_append dlfiles " $lib" ;;
7591 esac
7592 done
7593
7594 # Make sure dlprefiles contains only unique files
7595 old_dlprefiles="$dlprefiles"
7596 dlprefiles=
7597 for lib in $old_dlprefiles; do
7598 case "$dlprefiles " in
7599 *" $lib "*) ;;
7600 *) func_append dlprefiles " $lib" ;;
7601 esac
7602 done
7603
7604 if test "$build_libtool_libs" = yes; then
7605 if test -n "$rpath"; then
7606 case $host in
7607 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
7608 # these systems don't actually have a c library (as such)!
7609 ;;
7610 *-*-rhapsody* | *-*-darwin1.[012])
7611 # Rhapsody C library is in the System framework
7612 func_append deplibs " System.ltframework"
7613 ;;
7614 *-*-netbsd*)
7615 # Don't link with libc until the a.out ld.so is fixed.
7616 ;;
7617 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
7618 # Do not include libc due to us having libc/libc_r.
7619 ;;
7620 *-*-sco3.2v5* | *-*-sco5v6*)
7621 # Causes problems with __ctype
7622 ;;
7623 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
7624 # Compiler inserts libc in the correct place for threads to work
7625 ;;
7626 *)
7627 # Add libc to deplibs on all other systems if necessary.
7628 if test "$build_libtool_need_lc" = "yes"; then
7629 func_append deplibs " -lc"
7630 fi
7631 ;;
7632 esac
7633 fi
7634
7635 # Transform deplibs into only deplibs that can be linked in shared.
7636 name_save=$name
7637 libname_save=$libname
7638 release_save=$release
7639 versuffix_save=$versuffix
7640 major_save=$major
7641 # I'm not sure if I'm treating the release correctly. I think
7642 # release should show up in the -l (ie -lgmp5) so we don't want to
7643 # add it in twice. Is that correct?
7644 release=""
7645 versuffix=""
7646 major=""
7647 newdeplibs=
7648 droppeddeps=no
7649 case $deplibs_check_method in
7650 pass_all)
7651 # Don't check for shared/static. Everything works.
7652 # This might be a little naive. We might want to check
7653 # whether the library exists or not. But this is on
7654 # osf3 & osf4 and I'm not really sure... Just
7655 # implementing what was already the behavior.
7656 newdeplibs=$deplibs
7657 ;;
7658 test_compile)
7659 # This code stresses the "libraries are programs" paradigm to its
7660 # limits. Maybe even breaks it. We compile a program, linking it
7661 # against the deplibs as a proxy for the library. Then we can check
7662 # whether they linked in statically or dynamically with ldd.
7663 $opt_dry_run || $RM conftest.c
7664 cat > conftest.c <<EOF
7665 int main() { return 0; }
7666 EOF
7667 $opt_dry_run || $RM conftest
7668 if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
7669 ldd_output=`ldd conftest`
7670 for i in $deplibs; do
7671 case $i in
7672 -l*)
7673 func_stripname -l '' "$i"
7674 name=$func_stripname_result
7675 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7676 case " $predeps $postdeps " in
7677 *" $i "*)
7678 func_append newdeplibs " $i"
7679 i=""
7680 ;;
7681 esac
7682 fi
7683 if test -n "$i" ; then
7684 libname=`eval "\\$ECHO \"$libname_spec\""`
7685 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7686 set dummy $deplib_matches; shift
7687 deplib_match=$1
7688 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7689 func_append newdeplibs " $i"
7690 else
7691 droppeddeps=yes
7692 echo
7693 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7694 echo "*** I have the capability to make that library automatically link in when"
7695 echo "*** you link to this library. But I can only do this if you have a"
7696 echo "*** shared version of the library, which I believe you do not have"
7697 echo "*** because a test_compile did reveal that the linker did not use it for"
7698 echo "*** its dynamic dependency list that programs get resolved with at runtime."
7699 fi
7700 fi
7701 ;;
7702 *)
7703 func_append newdeplibs " $i"
7704 ;;
7705 esac
7706 done
7707 else
7708 # Error occurred in the first compile. Let's try to salvage
7709 # the situation: Compile a separate program for each library.
7710 for i in $deplibs; do
7711 case $i in
7712 -l*)
7713 func_stripname -l '' "$i"
7714 name=$func_stripname_result
7715 $opt_dry_run || $RM conftest
7716 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
7717 ldd_output=`ldd conftest`
7718 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7719 case " $predeps $postdeps " in
7720 *" $i "*)
7721 func_append newdeplibs " $i"
7722 i=""
7723 ;;
7724 esac
7725 fi
7726 if test -n "$i" ; then
7727 libname=`eval "\\$ECHO \"$libname_spec\""`
7728 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7729 set dummy $deplib_matches; shift
7730 deplib_match=$1
7731 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7732 func_append newdeplibs " $i"
7733 else
7734 droppeddeps=yes
7735 echo
7736 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7737 echo "*** I have the capability to make that library automatically link in when"
7738 echo "*** you link to this library. But I can only do this if you have a"
7739 echo "*** shared version of the library, which you do not appear to have"
7740 echo "*** because a test_compile did reveal that the linker did not use this one"
7741 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
7742 fi
7743 fi
7744 else
7745 droppeddeps=yes
7746 echo
7747 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
7748 echo "*** make it link in! You will probably need to install it or some"
7749 echo "*** library that it depends on before this library will be fully"
7750 echo "*** functional. Installing it before continuing would be even better."
7751 fi
7752 ;;
7753 *)
7754 func_append newdeplibs " $i"
7755 ;;
7756 esac
7757 done
7758 fi
7759 ;;
7760 file_magic*)
7761 set dummy $deplibs_check_method; shift
7762 file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7763 for a_deplib in $deplibs; do
7764 case $a_deplib in
7765 -l*)
7766 func_stripname -l '' "$a_deplib"
7767 name=$func_stripname_result
7768 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7769 case " $predeps $postdeps " in
7770 *" $a_deplib "*)
7771 func_append newdeplibs " $a_deplib"
7772 a_deplib=""
7773 ;;
7774 esac
7775 fi
7776 if test -n "$a_deplib" ; then
7777 libname=`eval "\\$ECHO \"$libname_spec\""`
7778 if test -n "$file_magic_glob"; then
7779 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
7780 else
7781 libnameglob=$libname
7782 fi
7783 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
7784 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7785 if test "$want_nocaseglob" = yes; then
7786 shopt -s nocaseglob
7787 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7788 $nocaseglob
7789 else
7790 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7791 fi
7792 for potent_lib in $potential_libs; do
7793 # Follow soft links.
7794 if ls -lLd "$potent_lib" 2>/dev/null |
7795 $GREP " -> " >/dev/null; then
7796 continue
7797 fi
7798 # The statement above tries to avoid entering an
7799 # endless loop below, in case of cyclic links.
7800 # We might still enter an endless loop, since a link
7801 # loop can be closed while we follow links,
7802 # but so what?
7803 potlib="$potent_lib"
7804 while test -h "$potlib" 2>/dev/null; do
7805 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
7806 case $potliblink in
7807 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
7808 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
7809 esac
7810 done
7811 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7812 $SED -e 10q |
7813 $EGREP "$file_magic_regex" > /dev/null; then
7814 func_append newdeplibs " $a_deplib"
7815 a_deplib=""
7816 break 2
7817 fi
7818 done
7819 done
7820 fi
7821 if test -n "$a_deplib" ; then
7822 droppeddeps=yes
7823 echo
7824 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7825 echo "*** I have the capability to make that library automatically link in when"
7826 echo "*** you link to this library. But I can only do this if you have a"
7827 echo "*** shared version of the library, which you do not appear to have"
7828 echo "*** because I did check the linker path looking for a file starting"
7829 if test -z "$potlib" ; then
7830 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7831 else
7832 $ECHO "*** with $libname and none of the candidates passed a file format test"
7833 $ECHO "*** using a file magic. Last file checked: $potlib"
7834 fi
7835 fi
7836 ;;
7837 *)
7838 # Add a -L argument.
7839 func_append newdeplibs " $a_deplib"
7840 ;;
7841 esac
7842 done # Gone through all deplibs.
7843 ;;
7844 match_pattern*)
7845 set dummy $deplibs_check_method; shift
7846 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7847 for a_deplib in $deplibs; do
7848 case $a_deplib in
7849 -l*)
7850 func_stripname -l '' "$a_deplib"
7851 name=$func_stripname_result
7852 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7853 case " $predeps $postdeps " in
7854 *" $a_deplib "*)
7855 func_append newdeplibs " $a_deplib"
7856 a_deplib=""
7857 ;;
7858 esac
7859 fi
7860 if test -n "$a_deplib" ; then
7861 libname=`eval "\\$ECHO \"$libname_spec\""`
7862 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7863 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7864 for potent_lib in $potential_libs; do
7865 potlib="$potent_lib" # see symlink-check above in file_magic test
7866 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
7867 $EGREP "$match_pattern_regex" > /dev/null; then
7868 func_append newdeplibs " $a_deplib"
7869 a_deplib=""
7870 break 2
7871 fi
7872 done
7873 done
7874 fi
7875 if test -n "$a_deplib" ; then
7876 droppeddeps=yes
7877 echo
7878 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7879 echo "*** I have the capability to make that library automatically link in when"
7880 echo "*** you link to this library. But I can only do this if you have a"
7881 echo "*** shared version of the library, which you do not appear to have"
7882 echo "*** because I did check the linker path looking for a file starting"
7883 if test -z "$potlib" ; then
7884 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7885 else
7886 $ECHO "*** with $libname and none of the candidates passed a file format test"
7887 $ECHO "*** using a regex pattern. Last file checked: $potlib"
7888 fi
7889 fi
7890 ;;
7891 *)
7892 # Add a -L argument.
7893 func_append newdeplibs " $a_deplib"
7894 ;;
7895 esac
7896 done # Gone through all deplibs.
7897 ;;
7898 none | unknown | *)
7899 newdeplibs=""
7900 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
7901 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7902 for i in $predeps $postdeps ; do
7903 # can't use Xsed below, because $i might contain '/'
7904 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
7905 done
7906 fi
7907 case $tmp_deplibs in
7908 *[!\ \ ]*)
7909 echo
7910 if test "X$deplibs_check_method" = "Xnone"; then
7911 echo "*** Warning: inter-library dependencies are not supported in this platform."
7912 else
7913 echo "*** Warning: inter-library dependencies are not known to be supported."
7914 fi
7915 echo "*** All declared inter-library dependencies are being dropped."
7916 droppeddeps=yes
7917 ;;
7918 esac
7919 ;;
7920 esac
7921 versuffix=$versuffix_save
7922 major=$major_save
7923 release=$release_save
7924 libname=$libname_save
7925 name=$name_save
7926
7927 case $host in
7928 *-*-rhapsody* | *-*-darwin1.[012])
7929 # On Rhapsody replace the C library with the System framework
7930 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
7931 ;;
7932 esac
7933
7934 if test "$droppeddeps" = yes; then
7935 if test "$module" = yes; then
7936 echo
7937 echo "*** Warning: libtool could not satisfy all declared inter-library"
7938 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7939 echo "*** a static module, that should work as long as the dlopening"
7940 echo "*** application is linked with the -dlopen flag."
7941 if test -z "$global_symbol_pipe"; then
7942 echo
7943 echo "*** However, this would only work if libtool was able to extract symbol"
7944 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7945 echo "*** not find such a program. So, this module is probably useless."
7946 echo "*** \`nm' from GNU binutils and a full rebuild may help."
7947 fi
7948 if test "$build_old_libs" = no; then
7949 oldlibs="$output_objdir/$libname.$libext"
7950 build_libtool_libs=module
7951 build_old_libs=yes
7952 else
7953 build_libtool_libs=no
7954 fi
7955 else
7956 echo "*** The inter-library dependencies that have been dropped here will be"
7957 echo "*** automatically added whenever a program is linked with this library"
7958 echo "*** or is declared to -dlopen it."
7959
7960 if test "$allow_undefined" = no; then
7961 echo
7962 echo "*** Since this library must not contain undefined symbols,"
7963 echo "*** because either the platform does not support them or"
7964 echo "*** it was explicitly requested with -no-undefined,"
7965 echo "*** libtool will only create a static version of it."
7966 if test "$build_old_libs" = no; then
7967 oldlibs="$output_objdir/$libname.$libext"
7968 build_libtool_libs=module
7969 build_old_libs=yes
7970 else
7971 build_libtool_libs=no
7972 fi
7973 fi
7974 fi
7975 fi
7976 # Done checking deplibs!
7977 deplibs=$newdeplibs
7978 fi
7979 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7980 case $host in
7981 *-*-darwin*)
7982 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7983 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7984 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7985 ;;
7986 esac
7987
7988 # move library search paths that coincide with paths to not yet
7989 # installed libraries to the beginning of the library search list
7990 new_libs=
7991 for path in $notinst_path; do
7992 case " $new_libs " in
7993 *" -L$path/$objdir "*) ;;
7994 *)
7995 case " $deplibs " in
7996 *" -L$path/$objdir "*)
7997 func_append new_libs " -L$path/$objdir" ;;
7998 esac
7999 ;;
8000 esac
8001 done
8002 for deplib in $deplibs; do
8003 case $deplib in
8004 -L*)
8005 case " $new_libs " in
8006 *" $deplib "*) ;;
8007 *) func_append new_libs " $deplib" ;;
8008 esac
8009 ;;
8010 *) func_append new_libs " $deplib" ;;
8011 esac
8012 done
8013 deplibs="$new_libs"
8014
8015 # All the library-specific variables (install_libdir is set above).
8016 library_names=
8017 old_library=
8018 dlname=
8019
8020 # Test again, we may have decided not to build it any more
8021 if test "$build_libtool_libs" = yes; then
8022 if test "$hardcode_into_libs" = yes; then
8023 # Hardcode the library paths
8024 hardcode_libdirs=
8025 dep_rpath=
8026 rpath="$finalize_rpath"
8027 test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
8028 for libdir in $rpath; do
8029 if test -n "$hardcode_libdir_flag_spec"; then
8030 if test -n "$hardcode_libdir_separator"; then
8031 func_replace_sysroot "$libdir"
8032 libdir=$func_replace_sysroot_result
8033 if test -z "$hardcode_libdirs"; then
8034 hardcode_libdirs="$libdir"
8035 else
8036 # Just accumulate the unique libdirs.
8037 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8038 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8039 ;;
8040 *)
8041 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8042 ;;
8043 esac
8044 fi
8045 else
8046 eval flag=\"$hardcode_libdir_flag_spec\"
8047 func_append dep_rpath " $flag"
8048 fi
8049 elif test -n "$runpath_var"; then
8050 case "$perm_rpath " in
8051 *" $libdir "*) ;;
8052 *) func_apped perm_rpath " $libdir" ;;
8053 esac
8054 fi
8055 done
8056 # Substitute the hardcoded libdirs into the rpath.
8057 if test -n "$hardcode_libdir_separator" &&
8058 test -n "$hardcode_libdirs"; then
8059 libdir="$hardcode_libdirs"
8060 if test -n "$hardcode_libdir_flag_spec_ld"; then
8061 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
8062 else
8063 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
8064 fi
8065 fi
8066 if test -n "$runpath_var" && test -n "$perm_rpath"; then
8067 # We should set the runpath_var.
8068 rpath=
8069 for dir in $perm_rpath; do
8070 func_append rpath "$dir:"
8071 done
8072 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
8073 fi
8074 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
8075 fi
8076
8077 shlibpath="$finalize_shlibpath"
8078 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
8079 if test -n "$shlibpath"; then
8080 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
8081 fi
8082
8083 # Get the real and link names of the library.
8084 eval shared_ext=\"$shrext_cmds\"
8085 eval library_names=\"$library_names_spec\"
8086 set dummy $library_names
8087 shift
8088 realname="$1"
8089 shift
8090
8091 if test -n "$soname_spec"; then
8092 eval soname=\"$soname_spec\"
8093 else
8094 soname="$realname"
8095 fi
8096 if test -z "$dlname"; then
8097 dlname=$soname
8098 fi
8099
8100 lib="$output_objdir/$realname"
8101 linknames=
8102 for link
8103 do
8104 func_append linknames " $link"
8105 done
8106
8107 # Use standard objects if they are pic
8108 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
8109 test "X$libobjs" = "X " && libobjs=
8110
8111 delfiles=
8112 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8113 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
8114 export_symbols="$output_objdir/$libname.uexp"
8115 func_append delfiles " $export_symbols"
8116 fi
8117
8118 orig_export_symbols=
8119 case $host_os in
8120 cygwin* | mingw* | cegcc*)
8121 if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
8122 # exporting using user supplied symfile
8123 if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
8124 # and it's NOT already a .def file. Must figure out
8125 # which of the given symbols are data symbols and tag
8126 # them as such. So, trigger use of export_symbols_cmds.
8127 # export_symbols gets reassigned inside the "prepare
8128 # the list of exported symbols" if statement, so the
8129 # include_expsyms logic still works.
8130 orig_export_symbols="$export_symbols"
8131 export_symbols=
8132 always_export_symbols=yes
8133 fi
8134 fi
8135 ;;
8136 esac
8137
8138 # Prepare the list of exported symbols
8139 if test -z "$export_symbols"; then
8140 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
8141 func_verbose "generating symbol list for \`$libname.la'"
8142 export_symbols="$output_objdir/$libname.exp"
8143 $opt_dry_run || $RM $export_symbols
8144 cmds=$export_symbols_cmds
8145 save_ifs="$IFS"; IFS='~'
8146 for cmd1 in $cmds; do
8147 IFS="$save_ifs"
8148 # Take the normal branch if the nm_file_list_spec branch
8149 # doesn't work or if tool conversion is not needed.
8150 case $nm_file_list_spec~$to_tool_file_cmd in
8151 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
8152 try_normal_branch=yes
8153 eval cmd=\"$cmd1\"
8154 func_len " $cmd"
8155 len=$func_len_result
8156 ;;
8157 *)
8158 try_normal_branch=no
8159 ;;
8160 esac
8161 if test "$try_normal_branch" = yes \
8162 && { test "$len" -lt "$max_cmd_len" \
8163 || test "$max_cmd_len" -le -1; }
8164 then
8165 func_show_eval "$cmd" 'exit $?'
8166 skipped_export=false
8167 elif test -n "$nm_file_list_spec"; then
8168 func_basename "$output"
8169 output_la=$func_basename_result
8170 save_libobjs=$libobjs
8171 save_output=$output
8172 output=${output_objdir}/${output_la}.nm
8173 func_to_tool_file "$output"
8174 libobjs=$nm_file_list_spec$func_to_tool_file_result
8175 func_append delfiles " $output"
8176 func_verbose "creating $NM input file list: $output"
8177 for obj in $save_libobjs; do
8178 func_to_tool_file "$obj"
8179 $ECHO "$func_to_tool_file_result"
8180 done > "$output"
8181 eval cmd=\"$cmd1\"
8182 func_show_eval "$cmd" 'exit $?'
8183 output=$save_output
8184 libobjs=$save_libobjs
8185 skipped_export=false
8186 else
8187 # The command line is too long to execute in one step.
8188 func_verbose "using reloadable object file for export list..."
8189 skipped_export=:
8190 # Break out early, otherwise skipped_export may be
8191 # set to false by a later but shorter cmd.
8192 break
8193 fi
8194 done
8195 IFS="$save_ifs"
8196 if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
8197 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
8198 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
8199 fi
8200 fi
8201 fi
8202
8203 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8204 tmp_export_symbols="$export_symbols"
8205 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8206 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
8207 fi
8208
8209 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
8210 # The given exports_symbols file has to be filtered, so filter it.
8211 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8212 # FIXME: $output_objdir/$libname.filter potentially contains lots of
8213 # 's' commands which not all seds can handle. GNU sed should be fine
8214 # though. Also, the filter scales superlinearly with the number of
8215 # global variables. join(1) would be nice here, but unfortunately
8216 # isn't a blessed tool.
8217 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8218 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
8219 export_symbols=$output_objdir/$libname.def
8220 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8221 fi
8222
8223 tmp_deplibs=
8224 for test_deplib in $deplibs; do
8225 case " $convenience " in
8226 *" $test_deplib "*) ;;
8227 *)
8228 func_append tmp_deplibs " $test_deplib"
8229 ;;
8230 esac
8231 done
8232 deplibs="$tmp_deplibs"
8233
8234 if test -n "$convenience"; then
8235 if test -n "$whole_archive_flag_spec" &&
8236 test "$compiler_needs_object" = yes &&
8237 test -z "$libobjs"; then
8238 # extract the archives, so we have objects to list.
8239 # TODO: could optimize this to just extract one archive.
8240 whole_archive_flag_spec=
8241 fi
8242 if test -n "$whole_archive_flag_spec"; then
8243 save_libobjs=$libobjs
8244 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8245 test "X$libobjs" = "X " && libobjs=
8246 else
8247 gentop="$output_objdir/${outputname}x"
8248 func_append generated " $gentop"
8249
8250 func_extract_archives $gentop $convenience
8251 func_append libobjs " $func_extract_archives_result"
8252 test "X$libobjs" = "X " && libobjs=
8253 fi
8254 fi
8255
8256 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
8257 eval flag=\"$thread_safe_flag_spec\"
8258 func_append linker_flags " $flag"
8259 fi
8260
8261 # Make a backup of the uninstalled library when relinking
8262 if test "$opt_mode" = relink; then
8263 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
8264 fi
8265
8266 # Do each of the archive commands.
8267 if test "$module" = yes && test -n "$module_cmds" ; then
8268 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
8269 eval test_cmds=\"$module_expsym_cmds\"
8270 cmds=$module_expsym_cmds
8271 else
8272 eval test_cmds=\"$module_cmds\"
8273 cmds=$module_cmds
8274 fi
8275 else
8276 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
8277 eval test_cmds=\"$archive_expsym_cmds\"
8278 cmds=$archive_expsym_cmds
8279 else
8280 eval test_cmds=\"$archive_cmds\"
8281 cmds=$archive_cmds
8282 fi
8283 fi
8284
8285 if test "X$skipped_export" != "X:" &&
8286 func_len " $test_cmds" &&
8287 len=$func_len_result &&
8288 test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8289 :
8290 else
8291 # The command line is too long to link in one step, link piecewise
8292 # or, if using GNU ld and skipped_export is not :, use a linker
8293 # script.
8294
8295 # Save the value of $output and $libobjs because we want to
8296 # use them later. If we have whole_archive_flag_spec, we
8297 # want to use save_libobjs as it was before
8298 # whole_archive_flag_spec was expanded, because we can't
8299 # assume the linker understands whole_archive_flag_spec.
8300 # This may have to be revisited, in case too many
8301 # convenience libraries get linked in and end up exceeding
8302 # the spec.
8303 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
8304 save_libobjs=$libobjs
8305 fi
8306 save_output=$output
8307 func_basename "$output"
8308 output_la=$func_basename_result
8309
8310 # Clear the reloadable object creation command queue and
8311 # initialize k to one.
8312 test_cmds=
8313 concat_cmds=
8314 objlist=
8315 last_robj=
8316 k=1
8317
8318 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
8319 output=${output_objdir}/${output_la}.lnkscript
8320 func_verbose "creating GNU ld script: $output"
8321 echo 'INPUT (' > $output
8322 for obj in $save_libobjs
8323 do
8324 func_to_tool_file "$obj"
8325 $ECHO "$func_to_tool_file_result" >> $output
8326 done
8327 echo ')' >> $output
8328 func_append delfiles " $output"
8329 func_to_tool_file "$output"
8330 output=$func_to_tool_file_result
8331 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
8332 output=${output_objdir}/${output_la}.lnk
8333 func_verbose "creating linker input file list: $output"
8334 : > $output
8335 set x $save_libobjs
8336 shift
8337 firstobj=
8338 if test "$compiler_needs_object" = yes; then
8339 firstobj="$1 "
8340 shift
8341 fi
8342 for obj
8343 do
8344 func_to_tool_file "$obj"
8345 $ECHO "$func_to_tool_file_result" >> $output
8346 done
8347 func_append delfiles " $output"
8348 func_to_tool_file "$output"
8349 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
8350 else
8351 if test -n "$save_libobjs"; then
8352 func_verbose "creating reloadable object files..."
8353 output=$output_objdir/$output_la-${k}.$objext
8354 eval test_cmds=\"$reload_cmds\"
8355 func_len " $test_cmds"
8356 len0=$func_len_result
8357 len=$len0
8358
8359 # Loop over the list of objects to be linked.
8360 for obj in $save_libobjs
8361 do
8362 func_len " $obj"
8363 func_arith $len + $func_len_result
8364 len=$func_arith_result
8365 if test "X$objlist" = X ||
8366 test "$len" -lt "$max_cmd_len"; then
8367 func_append objlist " $obj"
8368 else
8369 # The command $test_cmds is almost too long, add a
8370 # command to the queue.
8371 if test "$k" -eq 1 ; then
8372 # The first file doesn't have a previous command to add.
8373 reload_objs=$objlist
8374 eval concat_cmds=\"$reload_cmds\"
8375 else
8376 # All subsequent reloadable object files will link in
8377 # the last one created.
8378 reload_objs="$objlist $last_robj"
8379 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
8380 fi
8381 last_robj=$output_objdir/$output_la-${k}.$objext
8382 func_arith $k + 1
8383 k=$func_arith_result
8384 output=$output_objdir/$output_la-${k}.$objext
8385 objlist=" $obj"
8386 func_len " $last_robj"
8387 func_arith $len0 + $func_len_result
8388 len=$func_arith_result
8389 fi
8390 done
8391 # Handle the remaining objects by creating one last
8392 # reloadable object file. All subsequent reloadable object
8393 # files will link in the last one created.
8394 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8395 reload_objs="$objlist $last_robj"
8396 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
8397 if test -n "$last_robj"; then
8398 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
8399 fi
8400 func_append delfiles " $output"
8401
8402 else
8403 output=
8404 fi
8405
8406 if ${skipped_export-false}; then
8407 func_verbose "generating symbol list for \`$libname.la'"
8408 export_symbols="$output_objdir/$libname.exp"
8409 $opt_dry_run || $RM $export_symbols
8410 libobjs=$output
8411 # Append the command to create the export file.
8412 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8413 eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
8414 if test -n "$last_robj"; then
8415 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
8416 fi
8417 fi
8418
8419 test -n "$save_libobjs" &&
8420 func_verbose "creating a temporary reloadable object file: $output"
8421
8422 # Loop through the commands generated above and execute them.
8423 save_ifs="$IFS"; IFS='~'
8424 for cmd in $concat_cmds; do
8425 IFS="$save_ifs"
8426 $opt_silent || {
8427 func_quote_for_expand "$cmd"
8428 eval "func_echo $func_quote_for_expand_result"
8429 }
8430 $opt_dry_run || eval "$cmd" || {
8431 lt_exit=$?
8432
8433 # Restore the uninstalled library and exit
8434 if test "$opt_mode" = relink; then
8435 ( cd "$output_objdir" && \
8436 $RM "${realname}T" && \
8437 $MV "${realname}U" "$realname" )
8438 fi
8439
8440 exit $lt_exit
8441 }
8442 done
8443 IFS="$save_ifs"
8444
8445 if test -n "$export_symbols_regex" && ${skipped_export-false}; then
8446 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
8447 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
8448 fi
8449 fi
8450
8451 if ${skipped_export-false}; then
8452 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8453 tmp_export_symbols="$export_symbols"
8454 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8455 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
8456 fi
8457
8458 if test -n "$orig_export_symbols"; then
8459 # The given exports_symbols file has to be filtered, so filter it.
8460 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8461 # FIXME: $output_objdir/$libname.filter potentially contains lots of
8462 # 's' commands which not all seds can handle. GNU sed should be fine
8463 # though. Also, the filter scales superlinearly with the number of
8464 # global variables. join(1) would be nice here, but unfortunately
8465 # isn't a blessed tool.
8466 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8467 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
8468 export_symbols=$output_objdir/$libname.def
8469 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8470 fi
8471 fi
8472
8473 libobjs=$output
8474 # Restore the value of output.
8475 output=$save_output
8476
8477 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
8478 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8479 test "X$libobjs" = "X " && libobjs=
8480 fi
8481 # Expand the library linking commands again to reset the
8482 # value of $libobjs for piecewise linking.
8483
8484 # Do each of the archive commands.
8485 if test "$module" = yes && test -n "$module_cmds" ; then
8486 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
8487 cmds=$module_expsym_cmds
8488 else
8489 cmds=$module_cmds
8490 fi
8491 else
8492 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
8493 cmds=$archive_expsym_cmds
8494 else
8495 cmds=$archive_cmds
8496 fi
8497 fi
8498 fi
8499
8500 if test -n "$delfiles"; then
8501 # Append the command to remove temporary files to $cmds.
8502 eval cmds=\"\$cmds~\$RM $delfiles\"
8503 fi
8504
8505 # Add any objects from preloaded convenience libraries
8506 if test -n "$dlprefiles"; then
8507 gentop="$output_objdir/${outputname}x"
8508 func_append generated " $gentop"
8509
8510 func_extract_archives $gentop $dlprefiles
8511 func_append libobjs " $func_extract_archives_result"
8512 test "X$libobjs" = "X " && libobjs=
8513 fi
8514
8515 save_ifs="$IFS"; IFS='~'
8516 for cmd in $cmds; do
8517 IFS="$save_ifs"
8518 eval cmd=\"$cmd\"
8519 $opt_silent || {
8520 func_quote_for_expand "$cmd"
8521 eval "func_echo $func_quote_for_expand_result"
8522 }
8523 $opt_dry_run || eval "$cmd" || {
8524 lt_exit=$?
8525
8526 # Restore the uninstalled library and exit
8527 if test "$opt_mode" = relink; then
8528 ( cd "$output_objdir" && \
8529 $RM "${realname}T" && \
8530 $MV "${realname}U" "$realname" )
8531 fi
8532
8533 exit $lt_exit
8534 }
8535 done
8536 IFS="$save_ifs"
8537
8538 # Restore the uninstalled library and exit
8539 if test "$opt_mode" = relink; then
8540 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
8541
8542 if test -n "$convenience"; then
8543 if test -z "$whole_archive_flag_spec"; then
8544 func_show_eval '${RM}r "$gentop"'
8545 fi
8546 fi
8547
8548 exit $EXIT_SUCCESS
8549 fi
8550
8551 # Create links to the real library.
8552 for linkname in $linknames; do
8553 if test "$realname" != "$linkname"; then
8554 func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
8555 fi
8556 done
8557
8558 # If -module or -export-dynamic was specified, set the dlname.
8559 if test "$module" = yes || test "$export_dynamic" = yes; then
8560 # On all known operating systems, these are identical.
8561 dlname="$soname"
8562 fi
8563 fi
8564 ;;
8565
8566 obj)
8567 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
8568 func_warning "\`-dlopen' is ignored for objects"
8569 fi
8570
8571 case " $deplibs" in
8572 *\ -l* | *\ -L*)
8573 func_warning "\`-l' and \`-L' are ignored for objects" ;;
8574 esac
8575
8576 test -n "$rpath" && \
8577 func_warning "\`-rpath' is ignored for objects"
8578
8579 test -n "$xrpath" && \
8580 func_warning "\`-R' is ignored for objects"
8581
8582 test -n "$vinfo" && \
8583 func_warning "\`-version-info' is ignored for objects"
8584
8585 test -n "$release" && \
8586 func_warning "\`-release' is ignored for objects"
8587
8588 case $output in
8589 *.lo)
8590 test -n "$objs$old_deplibs" && \
8591 func_fatal_error "cannot build library object \`$output' from non-libtool objects"
8592
8593 libobj=$output
8594 func_lo2o "$libobj"
8595 obj=$func_lo2o_result
8596 ;;
8597 *)
8598 libobj=
8599 obj="$output"
8600 ;;
8601 esac
8602
8603 # Delete the old objects.
8604 $opt_dry_run || $RM $obj $libobj
8605
8606 # Objects from convenience libraries. This assumes
8607 # single-version convenience libraries. Whenever we create
8608 # different ones for PIC/non-PIC, this we'll have to duplicate
8609 # the extraction.
8610 reload_conv_objs=
8611 gentop=
8612 # reload_cmds runs $LD directly, so let us get rid of
8613 # -Wl from whole_archive_flag_spec and hope we can get by with
8614 # turning comma into space..
8615 wl=
8616
8617 if test -n "$convenience"; then
8618 if test -n "$whole_archive_flag_spec"; then
8619 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
8620 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
8621 else
8622 gentop="$output_objdir/${obj}x"
8623 func_append generated " $gentop"
8624
8625 func_extract_archives $gentop $convenience
8626 reload_conv_objs="$reload_objs $func_extract_archives_result"
8627 fi
8628 fi
8629
8630 # If we're not building shared, we need to use non_pic_objs
8631 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
8632
8633 # Create the old-style object.
8634 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
8635
8636 output="$obj"
8637 func_execute_cmds "$reload_cmds" 'exit $?'
8638
8639 # Exit if we aren't doing a library object file.
8640 if test -z "$libobj"; then
8641 if test -n "$gentop"; then
8642 func_show_eval '${RM}r "$gentop"'
8643 fi
8644
8645 exit $EXIT_SUCCESS
8646 fi
8647
8648 if test "$build_libtool_libs" != yes; then
8649 if test -n "$gentop"; then
8650 func_show_eval '${RM}r "$gentop"'
8651 fi
8652
8653 # Create an invalid libtool object if no PIC, so that we don't
8654 # accidentally link it into a program.
8655 # $show "echo timestamp > $libobj"
8656 # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
8657 exit $EXIT_SUCCESS
8658 fi
8659
8660 if test -n "$pic_flag" || test "$pic_mode" != default; then
8661 # Only do commands if we really have different PIC objects.
8662 reload_objs="$libobjs $reload_conv_objs"
8663 output="$libobj"
8664 func_execute_cmds "$reload_cmds" 'exit $?'
8665 fi
8666
8667 if test -n "$gentop"; then
8668 func_show_eval '${RM}r "$gentop"'
8669 fi
8670
8671 exit $EXIT_SUCCESS
8672 ;;
8673
8674 prog)
8675 case $host in
8676 *cygwin*) func_stripname '' '.exe' "$output"
8677 output=$func_stripname_result.exe;;
8678 esac
8679 test -n "$vinfo" && \
8680 func_warning "\`-version-info' is ignored for programs"
8681
8682 test -n "$release" && \
8683 func_warning "\`-release' is ignored for programs"
8684
8685 test "$preload" = yes \
8686 && test "$dlopen_support" = unknown \
8687 && test "$dlopen_self" = unknown \
8688 && test "$dlopen_self_static" = unknown && \
8689 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
8690
8691 case $host in
8692 *-*-rhapsody* | *-*-darwin1.[012])
8693 # On Rhapsody replace the C library is the System framework
8694 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
8695 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
8696 ;;
8697 esac
8698
8699 case $host in
8700 *-*-darwin*)
8701 # Don't allow lazy linking, it breaks C++ global constructors
8702 # But is supposedly fixed on 10.4 or later (yay!).
8703 if test "$tagname" = CXX ; then
8704 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8705 10.[0123])
8706 func_append compile_command " ${wl}-bind_at_load"
8707 func_append finalize_command " ${wl}-bind_at_load"
8708 ;;
8709 esac
8710 fi
8711 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8712 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8713 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8714 ;;
8715 esac
8716
8717
8718 # move library search paths that coincide with paths to not yet
8719 # installed libraries to the beginning of the library search list
8720 new_libs=
8721 for path in $notinst_path; do
8722 case " $new_libs " in
8723 *" -L$path/$objdir "*) ;;
8724 *)
8725 case " $compile_deplibs " in
8726 *" -L$path/$objdir "*)
8727 func_append new_libs " -L$path/$objdir" ;;
8728 esac
8729 ;;
8730 esac
8731 done
8732 for deplib in $compile_deplibs; do
8733 case $deplib in
8734 -L*)
8735 case " $new_libs " in
8736 *" $deplib "*) ;;
8737 *) func_append new_libs " $deplib" ;;
8738 esac
8739 ;;
8740 *) func_append new_libs " $deplib" ;;
8741 esac
8742 done
8743 compile_deplibs="$new_libs"
8744
8745
8746 func_append compile_command " $compile_deplibs"
8747 func_append finalize_command " $finalize_deplibs"
8748
8749 if test -n "$rpath$xrpath"; then
8750 # If the user specified any rpath flags, then add them.
8751 for libdir in $rpath $xrpath; do
8752 # This is the magic to use -rpath.
8753 case "$finalize_rpath " in
8754 *" $libdir "*) ;;
8755 *) func_append finalize_rpath " $libdir" ;;
8756 esac
8757 done
8758 fi
8759
8760 # Now hardcode the library paths
8761 rpath=
8762 hardcode_libdirs=
8763 for libdir in $compile_rpath $finalize_rpath; do
8764 if test -n "$hardcode_libdir_flag_spec"; then
8765 if test -n "$hardcode_libdir_separator"; then
8766 if test -z "$hardcode_libdirs"; then
8767 hardcode_libdirs="$libdir"
8768 else
8769 # Just accumulate the unique libdirs.
8770 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8771 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8772 ;;
8773 *)
8774 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8775 ;;
8776 esac
8777 fi
8778 else
8779 eval flag=\"$hardcode_libdir_flag_spec\"
8780 func_append rpath " $flag"
8781 fi
8782 elif test -n "$runpath_var"; then
8783 case "$perm_rpath " in
8784 *" $libdir "*) ;;
8785 *) func_append perm_rpath " $libdir" ;;
8786 esac
8787 fi
8788 case $host in
8789 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
8790 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8791 case :$dllsearchpath: in
8792 *":$libdir:"*) ;;
8793 ::) dllsearchpath=$libdir;;
8794 *) func_append dllsearchpath ":$libdir";;
8795 esac
8796 case :$dllsearchpath: in
8797 *":$testbindir:"*) ;;
8798 ::) dllsearchpath=$testbindir;;
8799 *) func_append dllsearchpath ":$testbindir";;
8800 esac
8801 ;;
8802 esac
8803 done
8804 # Substitute the hardcoded libdirs into the rpath.
8805 if test -n "$hardcode_libdir_separator" &&
8806 test -n "$hardcode_libdirs"; then
8807 libdir="$hardcode_libdirs"
8808 eval rpath=\" $hardcode_libdir_flag_spec\"
8809 fi
8810 compile_rpath="$rpath"
8811
8812 rpath=
8813 hardcode_libdirs=
8814 for libdir in $finalize_rpath; do
8815 if test -n "$hardcode_libdir_flag_spec"; then
8816 if test -n "$hardcode_libdir_separator"; then
8817 if test -z "$hardcode_libdirs"; then
8818 hardcode_libdirs="$libdir"
8819 else
8820 # Just accumulate the unique libdirs.
8821 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8822 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8823 ;;
8824 *)
8825 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8826 ;;
8827 esac
8828 fi
8829 else
8830 eval flag=\"$hardcode_libdir_flag_spec\"
8831 func_append rpath " $flag"
8832 fi
8833 elif test -n "$runpath_var"; then
8834 case "$finalize_perm_rpath " in
8835 *" $libdir "*) ;;
8836 *) func_append finalize_perm_rpath " $libdir" ;;
8837 esac
8838 fi
8839 done
8840 # Substitute the hardcoded libdirs into the rpath.
8841 if test -n "$hardcode_libdir_separator" &&
8842 test -n "$hardcode_libdirs"; then
8843 libdir="$hardcode_libdirs"
8844 eval rpath=\" $hardcode_libdir_flag_spec\"
8845 fi
8846 finalize_rpath="$rpath"
8847
8848 if test -n "$libobjs" && test "$build_old_libs" = yes; then
8849 # Transform all the library objects into standard objects.
8850 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8851 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8852 fi
8853
8854 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8855
8856 # template prelinking step
8857 if test -n "$prelink_cmds"; then
8858 func_execute_cmds "$prelink_cmds" 'exit $?'
8859 fi
8860
8861 wrappers_required=yes
8862 case $host in
8863 *cegcc* | *mingw32ce*)
8864 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8865 wrappers_required=no
8866 ;;
8867 *cygwin* | *mingw* )
8868 if test "$build_libtool_libs" != yes; then
8869 wrappers_required=no
8870 fi
8871 ;;
8872 *)
8873 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8874 wrappers_required=no
8875 fi
8876 ;;
8877 esac
8878 if test "$wrappers_required" = no; then
8879 # Replace the output file specification.
8880 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8881 link_command="$compile_command$compile_rpath"
8882
8883 # We have no uninstalled library dependencies, so finalize right now.
8884 exit_status=0
8885 func_show_eval "$link_command" 'exit_status=$?'
8886
8887 if test -n "$postlink_cmds"; then
8888 func_to_tool_file "$output"
8889 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8890 func_execute_cmds "$postlink_cmds" 'exit $?'
8891 fi
8892
8893 # Delete the generated files.
8894 if test -f "$output_objdir/${outputname}S.${objext}"; then
8895 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8896 fi
8897
8898 exit $exit_status
8899 fi
8900
8901 if test -n "$compile_shlibpath$finalize_shlibpath"; then
8902 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8903 fi
8904 if test -n "$finalize_shlibpath"; then
8905 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8906 fi
8907
8908 compile_var=
8909 finalize_var=
8910 if test -n "$runpath_var"; then
8911 if test -n "$perm_rpath"; then
8912 # We should set the runpath_var.
8913 rpath=
8914 for dir in $perm_rpath; do
8915 func_append rpath "$dir:"
8916 done
8917 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8918 fi
8919 if test -n "$finalize_perm_rpath"; then
8920 # We should set the runpath_var.
8921 rpath=
8922 for dir in $finalize_perm_rpath; do
8923 func_append rpath "$dir:"
8924 done
8925 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8926 fi
8927 fi
8928
8929 if test "$no_install" = yes; then
8930 # We don't need to create a wrapper script.
8931 link_command="$compile_var$compile_command$compile_rpath"
8932 # Replace the output file specification.
8933 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8934 # Delete the old output file.
8935 $opt_dry_run || $RM $output
8936 # Link the executable and exit
8937 func_show_eval "$link_command" 'exit $?'
8938
8939 if test -n "$postlink_cmds"; then
8940 func_to_tool_file "$output"
8941 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8942 func_execute_cmds "$postlink_cmds" 'exit $?'
8943 fi
8944
8945 exit $EXIT_SUCCESS
8946 fi
8947
8948 if test "$hardcode_action" = relink; then
8949 # Fast installation is not supported
8950 link_command="$compile_var$compile_command$compile_rpath"
8951 relink_command="$finalize_var$finalize_command$finalize_rpath"
8952
8953 func_warning "this platform does not like uninstalled shared libraries"
8954 func_warning "\`$output' will be relinked during installation"
8955 else
8956 if test "$fast_install" != no; then
8957 link_command="$finalize_var$compile_command$finalize_rpath"
8958 if test "$fast_install" = yes; then
8959 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
8960 else
8961 # fast_install is set to needless
8962 relink_command=
8963 fi
8964 else
8965 link_command="$compile_var$compile_command$compile_rpath"
8966 relink_command="$finalize_var$finalize_command$finalize_rpath"
8967 fi
8968 fi
8969
8970 # Replace the output file specification.
8971 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8972
8973 # Delete the old output files.
8974 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8975
8976 func_show_eval "$link_command" 'exit $?'
8977
8978 if test -n "$postlink_cmds"; then
8979 func_to_tool_file "$output_objdir/$outputname"
8980 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'`
8981 func_execute_cmds "$postlink_cmds" 'exit $?'
8982 fi
8983
8984 # Now create the wrapper script.
8985 func_verbose "creating $output"
8986
8987 # Quote the relink command for shipping.
8988 if test -n "$relink_command"; then
8989 # Preserve any variables that may affect compiler behavior
8990 for var in $variables_saved_for_relink; do
8991 if eval test -z \"\${$var+set}\"; then
8992 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
8993 elif eval var_value=\$$var; test -z "$var_value"; then
8994 relink_command="$var=; export $var; $relink_command"
8995 else
8996 func_quote_for_eval "$var_value"
8997 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8998 fi
8999 done
9000 relink_command="(cd `pwd`; $relink_command)"
9001 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
9002 fi
9003
9004 # Only actually do things if not in dry run mode.
9005 $opt_dry_run || {
9006 # win32 will think the script is a binary if it has
9007 # a .exe suffix, so we strip it off here.
9008 case $output in
9009 *.exe) func_stripname '' '.exe' "$output"
9010 output=$func_stripname_result ;;
9011 esac
9012 # test for cygwin because mv fails w/o .exe extensions
9013 case $host in
9014 *cygwin*)
9015 exeext=.exe
9016 func_stripname '' '.exe' "$outputname"
9017 outputname=$func_stripname_result ;;
9018 *) exeext= ;;
9019 esac
9020 case $host in
9021 *cygwin* | *mingw* )
9022 func_dirname_and_basename "$output" "" "."
9023 output_name=$func_basename_result
9024 output_path=$func_dirname_result
9025 cwrappersource="$output_path/$objdir/lt-$output_name.c"
9026 cwrapper="$output_path/$output_name.exe"
9027 $RM $cwrappersource $cwrapper
9028 trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
9029
9030 func_emit_cwrapperexe_src > $cwrappersource
9031
9032 # The wrapper executable is built using the $host compiler,
9033 # because it contains $host paths and files. If cross-
9034 # compiling, it, like the target executable, must be
9035 # executed on the $host or under an emulation environment.
9036 $opt_dry_run || {
9037 $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
9038 $STRIP $cwrapper
9039 }
9040
9041 # Now, create the wrapper script for func_source use:
9042 func_ltwrapper_scriptname $cwrapper
9043 $RM $func_ltwrapper_scriptname_result
9044 trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
9045 $opt_dry_run || {
9046 # note: this script will not be executed, so do not chmod.
9047 if test "x$build" = "x$host" ; then
9048 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
9049 else
9050 func_emit_wrapper no > $func_ltwrapper_scriptname_result
9051 fi
9052 }
9053 ;;
9054 * )
9055 $RM $output
9056 trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
9057
9058 func_emit_wrapper no > $output
9059 chmod +x $output
9060 ;;
9061 esac
9062 }
9063 exit $EXIT_SUCCESS
9064 ;;
9065 esac
9066
9067 # See if we need to build an old-fashioned archive.
9068 for oldlib in $oldlibs; do
9069
9070 if test "$build_libtool_libs" = convenience; then
9071 oldobjs="$libobjs_save $symfileobj"
9072 addlibs="$convenience"
9073 build_libtool_libs=no
9074 else
9075 if test "$build_libtool_libs" = module; then
9076 oldobjs="$libobjs_save"
9077 build_libtool_libs=no
9078 else
9079 oldobjs="$old_deplibs $non_pic_objects"
9080 if test "$preload" = yes && test -f "$symfileobj"; then
9081 func_append oldobjs " $symfileobj"
9082 fi
9083 fi
9084 addlibs="$old_convenience"
9085 fi
9086
9087 if test -n "$addlibs"; then
9088 gentop="$output_objdir/${outputname}x"
9089 func_append generated " $gentop"
9090
9091 func_extract_archives $gentop $addlibs
9092 func_append oldobjs " $func_extract_archives_result"
9093 fi
9094
9095 # Do each command in the archive commands.
9096 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
9097 cmds=$old_archive_from_new_cmds
9098 else
9099
9100 # Add any objects from preloaded convenience libraries
9101 if test -n "$dlprefiles"; then
9102 gentop="$output_objdir/${outputname}x"
9103 func_append generated " $gentop"
9104
9105 func_extract_archives $gentop $dlprefiles
9106 func_append oldobjs " $func_extract_archives_result"
9107 fi
9108
9109 # POSIX demands no paths to be encoded in archives. We have
9110 # to avoid creating archives with duplicate basenames if we
9111 # might have to extract them afterwards, e.g., when creating a
9112 # static archive out of a convenience library, or when linking
9113 # the entirety of a libtool archive into another (currently
9114 # not supported by libtool).
9115 if (for obj in $oldobjs
9116 do
9117 func_basename "$obj"
9118 $ECHO "$func_basename_result"
9119 done | sort | sort -uc >/dev/null 2>&1); then
9120 :
9121 else
9122 echo "copying selected object files to avoid basename conflicts..."
9123 gentop="$output_objdir/${outputname}x"
9124 func_append generated " $gentop"
9125 func_mkdir_p "$gentop"
9126 save_oldobjs=$oldobjs
9127 oldobjs=
9128 counter=1
9129 for obj in $save_oldobjs
9130 do
9131 func_basename "$obj"
9132 objbase="$func_basename_result"
9133 case " $oldobjs " in
9134 " ") oldobjs=$obj ;;
9135 *[\ /]"$objbase "*)
9136 while :; do
9137 # Make sure we don't pick an alternate name that also
9138 # overlaps.
9139 newobj=lt$counter-$objbase
9140 func_arith $counter + 1
9141 counter=$func_arith_result
9142 case " $oldobjs " in
9143 *[\ /]"$newobj "*) ;;
9144 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
9145 esac
9146 done
9147 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
9148 func_append oldobjs " $gentop/$newobj"
9149 ;;
9150 *) func_append oldobjs " $obj" ;;
9151 esac
9152 done
9153 fi
9154 eval cmds=\"$old_archive_cmds\"
9155
9156 func_len " $cmds"
9157 len=$func_len_result
9158 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
9159 cmds=$old_archive_cmds
9160 elif test -n "$archiver_list_spec"; then
9161 func_verbose "using command file archive linking..."
9162 for obj in $oldobjs
9163 do
9164 func_to_tool_file "$obj"
9165 $ECHO "$func_to_tool_file_result"
9166 done > $output_objdir/$libname.libcmd
9167 func_to_tool_file "$output_objdir/$libname.libcmd"
9168 oldobjs=" $archiver_list_spec$func_to_tool_file_result"
9169 cmds=$old_archive_cmds
9170 else
9171 # the command line is too long to link in one step, link in parts
9172 func_verbose "using piecewise archive linking..."
9173 save_RANLIB=$RANLIB
9174 RANLIB=:
9175 objlist=
9176 concat_cmds=
9177 save_oldobjs=$oldobjs
9178 oldobjs=
9179 # Is there a better way of finding the last object in the list?
9180 for obj in $save_oldobjs
9181 do
9182 last_oldobj=$obj
9183 done
9184 eval test_cmds=\"$old_archive_cmds\"
9185 func_len " $test_cmds"
9186 len0=$func_len_result
9187 len=$len0
9188 for obj in $save_oldobjs
9189 do
9190 func_len " $obj"
9191 func_arith $len + $func_len_result
9192 len=$func_arith_result
9193 func_append objlist " $obj"
9194 if test "$len" -lt "$max_cmd_len"; then
9195 :
9196 else
9197 # the above command should be used before it gets too long
9198 oldobjs=$objlist
9199 if test "$obj" = "$last_oldobj" ; then
9200 RANLIB=$save_RANLIB
9201 fi
9202 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
9203 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
9204 objlist=
9205 len=$len0
9206 fi
9207 done
9208 RANLIB=$save_RANLIB
9209 oldobjs=$objlist
9210 if test "X$oldobjs" = "X" ; then
9211 eval cmds=\"\$concat_cmds\"
9212 else
9213 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
9214 fi
9215 fi
9216 fi
9217 func_execute_cmds "$cmds" 'exit $?'
9218 done
9219
9220 test -n "$generated" && \
9221 func_show_eval "${RM}r$generated"
9222
9223 # Now create the libtool archive.
9224 case $output in
9225 *.la)
9226 old_library=
9227 test "$build_old_libs" = yes && old_library="$libname.$libext"
9228 func_verbose "creating $output"
9229
9230 # Preserve any variables that may affect compiler behavior
9231 for var in $variables_saved_for_relink; do
9232 if eval test -z \"\${$var+set}\"; then
9233 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
9234 elif eval var_value=\$$var; test -z "$var_value"; then
9235 relink_command="$var=; export $var; $relink_command"
9236 else
9237 func_quote_for_eval "$var_value"
9238 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9239 fi
9240 done
9241 # Quote the link command for shipping.
9242 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
9243 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
9244 if test "$hardcode_automatic" = yes ; then
9245 relink_command=
9246 fi
9247
9248 # Only create the output if not a dry run.
9249 $opt_dry_run || {
9250 for installed in no yes; do
9251 if test "$installed" = yes; then
9252 if test -z "$install_libdir"; then
9253 break
9254 fi
9255 output="$output_objdir/$outputname"i
9256 # Replace all uninstalled libtool libraries with the installed ones
9257 newdependency_libs=
9258 for deplib in $dependency_libs; do
9259 case $deplib in
9260 *.la)
9261 func_basename "$deplib"
9262 name="$func_basename_result"
9263 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
9264 test -z "$libdir" && \
9265 func_fatal_error "\`$deplib' is not a valid libtool archive"
9266 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
9267 ;;
9268 -L*)
9269 func_stripname -L '' "$deplib"
9270 func_replace_sysroot "$func_stripname_result"
9271 func_append newdependency_libs " -L$func_replace_sysroot_result"
9272 ;;
9273 -R*)
9274 func_stripname -R '' "$deplib"
9275 func_replace_sysroot "$func_stripname_result"
9276 func_append newdependency_libs " -R$func_replace_sysroot_result"
9277 ;;
9278 *) func_append newdependency_libs " $deplib" ;;
9279 esac
9280 done
9281 dependency_libs="$newdependency_libs"
9282 newdlfiles=
9283
9284 for lib in $dlfiles; do
9285 case $lib in
9286 *.la)
9287 func_basename "$lib"
9288 name="$func_basename_result"
9289 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9290 test -z "$libdir" && \
9291 func_fatal_error "\`$lib' is not a valid libtool archive"
9292 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
9293 ;;
9294 *) func_append newdlfiles " $lib" ;;
9295 esac
9296 done
9297 dlfiles="$newdlfiles"
9298 newdlprefiles=
9299 for lib in $dlprefiles; do
9300 case $lib in
9301 *.la)
9302 # Only pass preopened files to the pseudo-archive (for
9303 # eventual linking with the app. that links it) if we
9304 # didn't already link the preopened objects directly into
9305 # the library:
9306 func_basename "$lib"
9307 name="$func_basename_result"
9308 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9309 test -z "$libdir" && \
9310 func_fatal_error "\`$lib' is not a valid libtool archive"
9311 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
9312 ;;
9313 esac
9314 done
9315 dlprefiles="$newdlprefiles"
9316 else
9317 newdlfiles=
9318 for lib in $dlfiles; do
9319 case $lib in
9320 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9321 *) abs=`pwd`"/$lib" ;;
9322 esac
9323 func_append newdlfiles " $abs"
9324 done
9325 dlfiles="$newdlfiles"
9326 newdlprefiles=
9327 for lib in $dlprefiles; do
9328 case $lib in
9329 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9330 *) abs=`pwd`"/$lib" ;;
9331 esac
9332 func_append newdlprefiles " $abs"
9333 done
9334 dlprefiles="$newdlprefiles"
9335 fi
9336 $RM $output
9337 # place dlname in correct position for cygwin
9338 # In fact, it would be nice if we could use this code for all target
9339 # systems that can't hard-code library paths into their executables
9340 # and that have no shared library path variable independent of PATH,
9341 # but it turns out we can't easily determine that from inspecting
9342 # libtool variables, so we have to hard-code the OSs to which it
9343 # applies here; at the moment, that means platforms that use the PE
9344 # object format with DLL files. See the long comment at the top of
9345 # tests/bindir.at for full details.
9346 tdlname=$dlname
9347 case $host,$output,$installed,$module,$dlname in
9348 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
9349 # If a -bindir argument was supplied, place the dll there.
9350 if test "x$bindir" != x ;
9351 then
9352 func_relative_path "$install_libdir" "$bindir"
9353 tdlname=$func_relative_path_result$dlname
9354 else
9355 # Otherwise fall back on heuristic.
9356 tdlname=../bin/$dlname
9357 fi
9358 ;;
9359 esac
9360 $ECHO > $output "\
9361 # $outputname - a libtool library file
9362 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
9363 #
9364 # Please DO NOT delete this file!
9365 # It is necessary for linking the library.
9366
9367 # The name that we can dlopen(3).
9368 dlname='$tdlname'
9369
9370 # Names of this library.
9371 library_names='$library_names'
9372
9373 # The name of the static archive.
9374 old_library='$old_library'
9375
9376 # Linker flags that can not go in dependency_libs.
9377 inherited_linker_flags='$new_inherited_linker_flags'
9378
9379 # Libraries that this one depends upon.
9380 dependency_libs='$dependency_libs'
9381
9382 # Names of additional weak libraries provided by this library
9383 weak_library_names='$weak_libs'
9384
9385 # Version information for $libname.
9386 current=$current
9387 age=$age
9388 revision=$revision
9389
9390 # Is this an already installed library?
9391 installed=$installed
9392
9393 # Should we warn about portability when linking against -modules?
9394 shouldnotlink=$module
9395
9396 # Files to dlopen/dlpreopen
9397 dlopen='$dlfiles'
9398 dlpreopen='$dlprefiles'
9399
9400 # Directory that this library needs to be installed in:
9401 libdir='$install_libdir'"
9402 if test "$installed" = no && test "$need_relink" = yes; then
9403 $ECHO >> $output "\
9404 relink_command=\"$relink_command\""
9405 fi
9406 done
9407 }
9408
9409 # Do a symbolic link so that the libtool archive can be found in
9410 # LD_LIBRARY_PATH before the program is installed.
9411 func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
9412 ;;
9413 esac
9414 exit $EXIT_SUCCESS
9415 }
9416
9417 { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
9418 func_mode_link ${1+"$@"}
9419
9420
9421 # func_mode_uninstall arg...
9422 func_mode_uninstall ()
9423 {
9424 $opt_debug
9425 RM="$nonopt"
9426 files=
9427 rmforce=
9428 exit_status=0
9429
9430 # This variable tells wrapper scripts just to set variables rather
9431 # than running their programs.
9432 libtool_install_magic="$magic"
9433
9434 for arg
9435 do
9436 case $arg in
9437 -f) func_append RM " $arg"; rmforce=yes ;;
9438 -*) func_append RM " $arg" ;;
9439 *) func_append files " $arg" ;;
9440 esac
9441 done
9442
9443 test -z "$RM" && \
9444 func_fatal_help "you must specify an RM program"
9445
9446 rmdirs=
9447
9448 for file in $files; do
9449 func_dirname "$file" "" "."
9450 dir="$func_dirname_result"
9451 if test "X$dir" = X.; then
9452 odir="$objdir"
9453 else
9454 odir="$dir/$objdir"
9455 fi
9456 func_basename "$file"
9457 name="$func_basename_result"
9458 test "$opt_mode" = uninstall && odir="$dir"
9459
9460 # Remember odir for removal later, being careful to avoid duplicates
9461 if test "$opt_mode" = clean; then
9462 case " $rmdirs " in
9463 *" $odir "*) ;;
9464 *) func_append rmdirs " $odir" ;;
9465 esac
9466 fi
9467
9468 # Don't error if the file doesn't exist and rm -f was used.
9469 if { test -L "$file"; } >/dev/null 2>&1 ||
9470 { test -h "$file"; } >/dev/null 2>&1 ||
9471 test -f "$file"; then
9472 :
9473 elif test -d "$file"; then
9474 exit_status=1
9475 continue
9476 elif test "$rmforce" = yes; then
9477 continue
9478 fi
9479
9480 rmfiles="$file"
9481
9482 case $name in
9483 *.la)
9484 # Possibly a libtool archive, so verify it.
9485 if func_lalib_p "$file"; then
9486 func_source $dir/$name
9487
9488 # Delete the libtool libraries and symlinks.
9489 for n in $library_names; do
9490 func_append rmfiles " $odir/$n"
9491 done
9492 test -n "$old_library" && func_append rmfiles " $odir/$old_library"
9493
9494 case "$opt_mode" in
9495 clean)
9496 case " $library_names " in
9497 *" $dlname "*) ;;
9498 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
9499 esac
9500 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
9501 ;;
9502 uninstall)
9503 if test -n "$library_names"; then
9504 # Do each command in the postuninstall commands.
9505 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9506 fi
9507
9508 if test -n "$old_library"; then
9509 # Do each command in the old_postuninstall commands.
9510 func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9511 fi
9512 # FIXME: should reinstall the best remaining shared library.
9513 ;;
9514 esac
9515 fi
9516 ;;
9517
9518 *.lo)
9519 # Possibly a libtool object, so verify it.
9520 if func_lalib_p "$file"; then
9521
9522 # Read the .lo file
9523 func_source $dir/$name
9524
9525 # Add PIC object to the list of files to remove.
9526 if test -n "$pic_object" &&
9527 test "$pic_object" != none; then
9528 func_append rmfiles " $dir/$pic_object"
9529 fi
9530
9531 # Add non-PIC object to the list of files to remove.
9532 if test -n "$non_pic_object" &&
9533 test "$non_pic_object" != none; then
9534 func_append rmfiles " $dir/$non_pic_object"
9535 fi
9536 fi
9537 ;;
9538
9539 *)
9540 if test "$opt_mode" = clean ; then
9541 noexename=$name
9542 case $file in
9543 *.exe)
9544 func_stripname '' '.exe' "$file"
9545 file=$func_stripname_result
9546 func_stripname '' '.exe' "$name"
9547 noexename=$func_stripname_result
9548 # $file with .exe has already been added to rmfiles,
9549 # add $file without .exe
9550 func_append rmfiles " $file"
9551 ;;
9552 esac
9553 # Do a test to see if this is a libtool program.
9554 if func_ltwrapper_p "$file"; then
9555 if func_ltwrapper_executable_p "$file"; then
9556 func_ltwrapper_scriptname "$file"
9557 relink_command=
9558 func_source $func_ltwrapper_scriptname_result
9559 func_append rmfiles " $func_ltwrapper_scriptname_result"
9560 else
9561 relink_command=
9562 func_source $dir/$noexename
9563 fi
9564
9565 # note $name still contains .exe if it was in $file originally
9566 # as does the version of $file that was added into $rmfiles
9567 func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
9568 if test "$fast_install" = yes && test -n "$relink_command"; then
9569 func_append rmfiles " $odir/lt-$name"
9570 fi
9571 if test "X$noexename" != "X$name" ; then
9572 func_append rmfiles " $odir/lt-${noexename}.c"
9573 fi
9574 fi
9575 fi
9576 ;;
9577 esac
9578 func_show_eval "$RM $rmfiles" 'exit_status=1'
9579 done
9580
9581 # Try to remove the ${objdir}s in the directories where we deleted files
9582 for dir in $rmdirs; do
9583 if test -d "$dir"; then
9584 func_show_eval "rmdir $dir >/dev/null 2>&1"
9585 fi
9586 done
9587
9588 exit $exit_status
9589 }
9590
9591 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
9592 func_mode_uninstall ${1+"$@"}
9593
9594 test -z "$opt_mode" && {
9595 help="$generic_help"
9596 func_fatal_help "you must specify a MODE"
9597 }
9598
9599 test -z "$exec_cmd" && \
9600 func_fatal_help "invalid operation mode \`$opt_mode'"
9601
9602 if test -n "$exec_cmd"; then
9603 eval exec "$exec_cmd"
9604 exit $EXIT_FAILURE
9605 fi
9606
9607 exit $exit_status
9608
9609
9610 # The TAGs below are defined such that we never get into a situation
9611 # in which we disable both kinds of libraries. Given conflicting
9612 # choices, we go for a static library, that is the most portable,
9613 # since we can't tell whether shared libraries were disabled because
9614 # the user asked for that or because the platform doesn't support
9615 # them. This is particularly important on AIX, because we don't
9616 # support having both static and shared libraries enabled at the same
9617 # time on that platform, so we default to a shared-only configuration.
9618 # If a disable-shared tag is given, we'll fallback to a static-only
9619 # configuration. But we'll never go from static-only to shared-only.
9620
9621 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
9622 build_libtool_libs=no
9623 build_old_libs=yes
9624 # ### END LIBTOOL TAG CONFIG: disable-shared
9625
9626 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
9627 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
9628 # ### END LIBTOOL TAG CONFIG: disable-static
9629
9630 # Local Variables:
9631 # mode:shell-script
9632 # sh-indentation:2
9633 # End:
9634 # vi:sw=2
9635
0 ## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
1 ## Copyright (C) 2001 Eazel, Inc.
2 ## Author: Maciej Stachowiak <mjs@noisehavoc.org>
3 ## Kenneth Christiansen <kenneth@gnu.org>
4 ##
5 ## This program is free software; you can redistribute it and/or modify
6 ## it under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation; either version 2 of the License, or
8 ## (at your option) any later version.
9 ##
10 ## This program is distributed in the hope that it will be useful, but
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 ## General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with this program; if not, write to the Free Software
17 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 ##
19 ## As a special exception to the GNU General Public License, if you
20 ## distribute this file as part of a program that contains a
21 ## configuration script generated by Autoconf, you may include it under
22 ## the same distribution terms that you use for the rest of that program.
23
24 dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
25 # serial 42 IT_PROG_INTLTOOL
26 AC_DEFUN([IT_PROG_INTLTOOL], [
27 AC_PREREQ([2.50])dnl
28 AC_REQUIRE([AM_NLS])dnl
29
30 case "$am__api_version" in
31 1.[01234])
32 AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
33 ;;
34 *)
35 ;;
36 esac
37
38 INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
39 INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
40 INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
41 if test -n "$1"; then
42 AC_MSG_CHECKING([for intltool >= $1])
43 AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
44 test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
45 AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
46 fi
47
48 AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
49 AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
50 AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
51 if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
52 AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
53 fi
54
55 if test -z "$AM_DEFAULT_VERBOSITY"; then
56 AM_DEFAULT_VERBOSITY=1
57 fi
58 AC_SUBST([AM_DEFAULT_VERBOSITY])
59
60 INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
61 INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
62 INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;'
63 AC_SUBST(INTLTOOL_V_MERGE)
64 AC_SUBST(INTLTOOL__v_MERGE_)
65 AC_SUBST(INTLTOOL__v_MERGE_0)
66
67 INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
68 intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
69 intltool__v_merge_options_0='-q'
70 AC_SUBST(INTLTOOL_V_MERGE_OPTIONS)
71 AC_SUBST(intltool__v_merge_options_)
72 AC_SUBST(intltool__v_merge_options_0)
73
74 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 $< [$]@'
75 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 $< [$]@'
76 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 $< [$]@'
77 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 $< [$]@'
78 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 $< [$]@'
79 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 $< [$]@'
80 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 $< [$]@'
81 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 $< [$]@'
82 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 $< [$]@'
83 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 $< [$]@'
84 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 $< [$]@'
85 if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
86 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 $< [$]@'
87 else
88 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'
89 fi
90 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 $< [$]@'
91 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 $< [$]@'
92 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 $< [$]@'
93 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 $< [$]@'
94 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 $< [$]@'
95 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 $< [$]@'
96 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 $< [$]@'
97
98 _IT_SUBST(INTLTOOL_DESKTOP_RULE)
99 _IT_SUBST(INTLTOOL_DIRECTORY_RULE)
100 _IT_SUBST(INTLTOOL_KEYS_RULE)
101 _IT_SUBST(INTLTOOL_PROP_RULE)
102 _IT_SUBST(INTLTOOL_OAF_RULE)
103 _IT_SUBST(INTLTOOL_PONG_RULE)
104 _IT_SUBST(INTLTOOL_SERVER_RULE)
105 _IT_SUBST(INTLTOOL_SHEET_RULE)
106 _IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
107 _IT_SUBST(INTLTOOL_UI_RULE)
108 _IT_SUBST(INTLTOOL_XAM_RULE)
109 _IT_SUBST(INTLTOOL_KBD_RULE)
110 _IT_SUBST(INTLTOOL_XML_RULE)
111 _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
112 _IT_SUBST(INTLTOOL_CAVES_RULE)
113 _IT_SUBST(INTLTOOL_SCHEMAS_RULE)
114 _IT_SUBST(INTLTOOL_THEME_RULE)
115 _IT_SUBST(INTLTOOL_SERVICE_RULE)
116 _IT_SUBST(INTLTOOL_POLICY_RULE)
117
118 # Check the gettext tools to make sure they are GNU
119 AC_PATH_PROG(XGETTEXT, xgettext)
120 AC_PATH_PROG(MSGMERGE, msgmerge)
121 AC_PATH_PROG(MSGFMT, msgfmt)
122 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
123 if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
124 AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
125 fi
126 xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
127 mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
128 mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
129 if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
130 AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
131 fi
132
133 AC_PATH_PROG(INTLTOOL_PERL, perl)
134 if test -z "$INTLTOOL_PERL"; then
135 AC_MSG_ERROR([perl not found])
136 fi
137 AC_MSG_CHECKING([for perl >= 5.8.1])
138 $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
139 if test $? -ne 0; then
140 AC_MSG_ERROR([perl 5.8.1 is required for intltool])
141 else
142 IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
143 AC_MSG_RESULT([$IT_PERL_VERSION])
144 fi
145 if test "x$2" != "xno-xml"; then
146 AC_MSG_CHECKING([for XML::Parser])
147 if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
148 AC_MSG_RESULT([ok])
149 else
150 AC_MSG_ERROR([XML::Parser perl module is required for intltool])
151 fi
152 fi
153
154 # Substitute ALL_LINGUAS so we can use it in po/Makefile
155 AC_SUBST(ALL_LINGUAS)
156
157 # Set DATADIRNAME correctly if it is not set yet
158 # (copied from glib-gettext.m4)
159 if test -z "$DATADIRNAME"; then
160 AC_LINK_IFELSE(
161 [AC_LANG_PROGRAM([[]],
162 [[extern int _nl_msg_cat_cntr;
163 return _nl_msg_cat_cntr]])],
164 [DATADIRNAME=share],
165 [case $host in
166 *-*-solaris*)
167 dnl On Solaris, if bind_textdomain_codeset is in libc,
168 dnl GNU format message catalog is always supported,
169 dnl since both are added to the libc all together.
170 dnl Hence, we'd like to go with DATADIRNAME=share
171 dnl in this case.
172 AC_CHECK_FUNC(bind_textdomain_codeset,
173 [DATADIRNAME=share], [DATADIRNAME=lib])
174 ;;
175 *)
176 [DATADIRNAME=lib]
177 ;;
178 esac])
179 fi
180 AC_SUBST(DATADIRNAME)
181
182 IT_PO_SUBDIR([po])
183
184 ])
185
186
187 # IT_PO_SUBDIR(DIRNAME)
188 # ---------------------
189 # All po subdirs have to be declared with this macro; the subdir "po" is
190 # declared by IT_PROG_INTLTOOL.
191 #
192 AC_DEFUN([IT_PO_SUBDIR],
193 [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
194 dnl
195 dnl The following CONFIG_COMMANDS should be executed at the very end
196 dnl of config.status.
197 AC_CONFIG_COMMANDS_PRE([
198 AC_CONFIG_COMMANDS([$1/stamp-it], [
199 if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
200 AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
201 fi
202 rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
203 >"$1/stamp-it.tmp"
204 [sed '/^#/d
205 s/^[[].*] *//
206 /^[ ]*$/d
207 '"s|^| $ac_top_srcdir/|" \
208 "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
209 ]
210 [sed '/^POTFILES =/,/[^\\]$/ {
211 /^POTFILES =/!d
212 r $1/POTFILES
213 }
214 ' "$1/Makefile.in" >"$1/Makefile"]
215 rm -f "$1/Makefile.tmp"
216 mv "$1/stamp-it.tmp" "$1/stamp-it"
217 ])
218 ])dnl
219 ])
220
221 # _IT_SUBST(VARIABLE)
222 # -------------------
223 # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
224 #
225 AC_DEFUN([_IT_SUBST],
226 [
227 AC_SUBST([$1])
228 m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
229 ]
230 )
231
232 # deprecated macros
233 AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
234 # A hint is needed for aclocal from Automake <= 1.9.4:
235 # AC_DEFUN([AC_PROG_INTLTOOL], ...)
236
00 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
11 #
22 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
3 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
4 # Inc.
3 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
4 # Foundation, Inc.
55 # Written by Gordon Matzigkeit, 1996
66 #
77 # This file is free software; the Free Software Foundation gives
1010
1111 m4_define([_LT_COPYING], [dnl
1212 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
13 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
14 # Inc.
13 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
14 # Foundation, Inc.
1515 # Written by Gordon Matzigkeit, 1996
1616 #
1717 # This file is part of GNU Libtool.
145145 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
146146 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
147147
148 _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
149 dnl
148150 _LT_DECL([], [host_alias], [0], [The host system])dnl
149151 _LT_DECL([], [host], [0])dnl
150152 _LT_DECL([], [host_os], [0])dnl
636638 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
637639 configured by $[0], generated by m4_PACKAGE_STRING.
638640
639 Copyright (C) 2010 Free Software Foundation, Inc.
641 Copyright (C) 2011 Free Software Foundation, Inc.
640642 This config.lt script is free software; the Free Software Foundation
641643 gives unlimited permision to copy, distribute and modify it."
642644
800802 m4_case([$1],
801803 [C], [_LT_LANG(C)],
802804 [C++], [_LT_LANG(CXX)],
805 [Go], [_LT_LANG(GO)],
803806 [Java], [_LT_LANG(GCJ)],
804807 [Fortran 77], [_LT_LANG(F77)],
805808 [Fortran], [_LT_LANG(FC)],
819822 m4_define([_LT_LANG_]$1[_enabled], [])dnl
820823 _LT_LANG_$1_CONFIG($1)])dnl
821824 ])# _LT_LANG
825
826
827 m4_ifndef([AC_PROG_GO], [
828 ############################################################
829 # NOTE: This macro has been submitted for inclusion into #
830 # GNU Autoconf as AC_PROG_GO. When it is available in #
831 # a released version of Autoconf we should remove this #
832 # macro and use it instead. #
833 ############################################################
834 m4_defun([AC_PROG_GO],
835 [AC_LANG_PUSH(Go)dnl
836 AC_ARG_VAR([GOC], [Go compiler command])dnl
837 AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
838 _AC_ARG_VAR_LDFLAGS()dnl
839 AC_CHECK_TOOL(GOC, gccgo)
840 if test -z "$GOC"; then
841 if test -n "$ac_tool_prefix"; then
842 AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
843 fi
844 fi
845 if test -z "$GOC"; then
846 AC_CHECK_PROG(GOC, gccgo, gccgo, false)
847 fi
848 ])#m4_defun
849 ])#m4_ifndef
822850
823851
824852 # _LT_LANG_DEFAULT_CONFIG
850878 [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
851879 m4_ifdef([LT_PROG_GCJ],
852880 [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
881
882 AC_PROVIDE_IFELSE([AC_PROG_GO],
883 [LT_LANG(GO)],
884 [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
853885
854886 AC_PROVIDE_IFELSE([LT_PROG_RC],
855887 [LT_LANG(RC)],
953985 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
954986 -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
955987 _lt_result=$?
956 if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
988 # If there is a non-empty error log, and "single_module"
989 # appears in it, assume the flag caused a linker warning
990 if test -s conftest.err && $GREP single_module conftest.err; then
991 cat conftest.err >&AS_MESSAGE_LOG_FD
992 # Otherwise, if the output was created with a 0 exit code from
993 # the compiler, it worked.
994 elif test -f libconftest.dylib && test $_lt_result -eq 0; then
957995 lt_cv_apple_cc_single_mod=yes
958996 else
959997 cat conftest.err >&AS_MESSAGE_LOG_FD
961999 rm -rf libconftest.dylib*
9621000 rm -f conftest.*
9631001 fi])
1002
9641003 AC_CACHE_CHECK([for -exported_symbols_list linker flag],
9651004 [lt_cv_ld_exported_symbols_list],
9661005 [lt_cv_ld_exported_symbols_list=no
9721011 [lt_cv_ld_exported_symbols_list=no])
9731012 LDFLAGS="$save_LDFLAGS"
9741013 ])
1014
9751015 AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
9761016 [lt_cv_ld_force_load=no
9771017 cat > conftest.c << _LT_EOF
9891029 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
9901030 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
9911031 _lt_result=$?
992 if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
1032 if test -s conftest.err && $GREP force_load conftest.err; then
1033 cat conftest.err >&AS_MESSAGE_LOG_FD
1034 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
9931035 lt_cv_ld_force_load=yes
9941036 else
9951037 cat conftest.err >&AS_MESSAGE_LOG_FD
10341076 ])
10351077
10361078
1037 # _LT_DARWIN_LINKER_FEATURES
1038 # --------------------------
1079 # _LT_DARWIN_LINKER_FEATURES([TAG])
1080 # ---------------------------------
10391081 # Checks for linker and compiler features on darwin
10401082 m4_defun([_LT_DARWIN_LINKER_FEATURES],
10411083 [
10461088 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
10471089 if test "$lt_cv_ld_force_load" = "yes"; then
10481090 _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\"`'
1091 m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
1092 [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
10491093 else
10501094 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
10511095 fi
13291373 CFLAGS="$SAVE_CFLAGS"
13301374 fi
13311375 ;;
1332 sparc*-*solaris*)
1376 *-*solaris*)
13331377 # Find out which ABI we are using.
13341378 echo 'int i;' > conftest.$ac_ext
13351379 if AC_TRY_EVAL(ac_compile); then
13361380 case `/usr/bin/file conftest.o` in
13371381 *64-bit*)
13381382 case $lt_cv_prog_gnu_ld in
1339 yes*) LD="${LD-ld} -m elf64_sparc" ;;
1383 yes*)
1384 case $host in
1385 i?86-*-solaris*)
1386 LD="${LD-ld} -m elf_x86_64"
1387 ;;
1388 sparc*-*-solaris*)
1389 LD="${LD-ld} -m elf64_sparc"
1390 ;;
1391 esac
1392 # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
1393 if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
1394 LD="${LD-ld}_sol2"
1395 fi
1396 ;;
13401397 *)
13411398 if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
13421399 LD="${LD-ld} -64"
14131470 if test -n "$RANLIB"; then
14141471 case $host_os in
14151472 openbsd*)
1416 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
1473 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
14171474 ;;
14181475 *)
1419 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
1476 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
14201477 ;;
14211478 esac
1422 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
1479 old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
14231480 fi
14241481
14251482 case $host_os in
15971654 interix*)
15981655 # We know the value 262144 and hardcode it with a safety zone (like BSD)
15991656 lt_cv_sys_max_cmd_len=196608
1657 ;;
1658
1659 os2*)
1660 # The test takes a long time on OS/2.
1661 lt_cv_sys_max_cmd_len=8192
16001662 ;;
16011663
16021664 osf*)
16381700 # If test is not a shell built-in, we'll probably end up computing a
16391701 # maximum length that is only half of the actual maximum length, but
16401702 # we can't tell.
1641 while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
1703 while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
16421704 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
16431705 test $i != 17 # 1/2 MB should be enough
16441706 do
21842246
21852247 case $host_os in
21862248 aix3*)
2187 version_type=linux
2249 version_type=linux # correct to gnu/linux during the next big refactor
21882250 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
21892251 shlibpath_var=LIBPATH
21902252
21932255 ;;
21942256
21952257 aix[[4-9]]*)
2196 version_type=linux
2258 version_type=linux # correct to gnu/linux during the next big refactor
21972259 need_lib_prefix=no
21982260 need_version=no
21992261 hardcode_into_libs=yes
22582320 ;;
22592321
22602322 bsdi[[45]]*)
2261 version_type=linux
2323 version_type=linux # correct to gnu/linux during the next big refactor
22622324 need_version=no
22632325 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
22642326 soname_spec='${libname}${release}${shared_ext}$major'
23972459 ;;
23982460
23992461 dgux*)
2400 version_type=linux
2462 version_type=linux # correct to gnu/linux during the next big refactor
24012463 need_lib_prefix=no
24022464 need_version=no
24032465 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
24042466 soname_spec='${libname}${release}${shared_ext}$major'
24052467 shlibpath_var=LD_LIBRARY_PATH
2406 ;;
2407
2408 freebsd1*)
2409 dynamic_linker=no
24102468 ;;
24112469
24122470 freebsd* | dragonfly*)
24162474 objformat=`/usr/bin/objformat`
24172475 else
24182476 case $host_os in
2419 freebsd[[123]]*) objformat=aout ;;
2477 freebsd[[23]].*) objformat=aout ;;
24202478 *) objformat=elf ;;
24212479 esac
24222480 fi
24342492 esac
24352493 shlibpath_var=LD_LIBRARY_PATH
24362494 case $host_os in
2437 freebsd2*)
2495 freebsd2.*)
24382496 shlibpath_overrides_runpath=yes
24392497 ;;
24402498 freebsd3.[[01]]* | freebsdelf3.[[01]]*)
24542512 ;;
24552513
24562514 gnu*)
2457 version_type=linux
2515 version_type=linux # correct to gnu/linux during the next big refactor
24582516 need_lib_prefix=no
24592517 need_version=no
24602518 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
24612519 soname_spec='${libname}${release}${shared_ext}$major'
24622520 shlibpath_var=LD_LIBRARY_PATH
2521 shlibpath_overrides_runpath=no
24632522 hardcode_into_libs=yes
24642523 ;;
24652524
24662525 haiku*)
2467 version_type=linux
2526 version_type=linux # correct to gnu/linux during the next big refactor
24682527 need_lib_prefix=no
24692528 need_version=no
24702529 dynamic_linker="$host_os runtime_loader"
25252584 ;;
25262585
25272586 interix[[3-9]]*)
2528 version_type=linux
2587 version_type=linux # correct to gnu/linux during the next big refactor
25292588 need_lib_prefix=no
25302589 need_version=no
25312590 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
25412600 nonstopux*) version_type=nonstopux ;;
25422601 *)
25432602 if test "$lt_cv_prog_gnu_ld" = yes; then
2544 version_type=linux
2603 version_type=linux # correct to gnu/linux during the next big refactor
25452604 else
25462605 version_type=irix
25472606 fi ;;
25782637 dynamic_linker=no
25792638 ;;
25802639
2581 # This must be Linux ELF.
2640 # This must be glibc/ELF.
25822641 linux* | k*bsd*-gnu | kopensolaris*-gnu)
2583 version_type=linux
2642 version_type=linux # correct to gnu/linux during the next big refactor
25842643 need_lib_prefix=no
25852644 need_version=no
25862645 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
26472706 ;;
26482707
26492708 newsos6)
2650 version_type=linux
2709 version_type=linux # correct to gnu/linux during the next big refactor
26512710 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
26522711 shlibpath_var=LD_LIBRARY_PATH
26532712 shlibpath_overrides_runpath=yes
27162775 ;;
27172776
27182777 solaris*)
2719 version_type=linux
2778 version_type=linux # correct to gnu/linux during the next big refactor
27202779 need_lib_prefix=no
27212780 need_version=no
27222781 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
27412800 ;;
27422801
27432802 sysv4 | sysv4.3*)
2744 version_type=linux
2803 version_type=linux # correct to gnu/linux during the next big refactor
27452804 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
27462805 soname_spec='${libname}${release}${shared_ext}$major'
27472806 shlibpath_var=LD_LIBRARY_PATH
27652824
27662825 sysv4*MP*)
27672826 if test -d /usr/nec ;then
2768 version_type=linux
2827 version_type=linux # correct to gnu/linux during the next big refactor
27692828 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
27702829 soname_spec='$libname${shared_ext}.$major'
27712830 shlibpath_var=LD_LIBRARY_PATH
27962855
27972856 tpf*)
27982857 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
2799 version_type=linux
2858 version_type=linux # correct to gnu/linux during the next big refactor
28002859 need_lib_prefix=no
28012860 need_version=no
28022861 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
28062865 ;;
28072866
28082867 uts4*)
2809 version_type=linux
2868 version_type=linux # correct to gnu/linux during the next big refactor
28102869 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
28112870 soname_spec='${libname}${release}${shared_ext}$major'
28122871 shlibpath_var=LD_LIBRARY_PATH
32283287 lt_cv_deplibs_check_method=pass_all
32293288 ;;
32303289
3231 # This must be Linux ELF.
3290 # This must be glibc/ELF.
32323291 linux* | k*bsd*-gnu | kopensolaris*-gnu)
32333292 lt_cv_deplibs_check_method=pass_all
32343293 ;;
36483707 # which start with @ or ?.
36493708 lt_cv_sys_global_symbol_pipe="$AWK ['"\
36503709 " {last_section=section; section=\$ 3};"\
3710 " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
36513711 " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
36523712 " \$ 0!~/External *\|/{next};"\
36533713 " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
42324292 case $cc_basename in
42334293 nvcc*) # Cuda Compiler Driver 2.2
42344294 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
4235 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
4295 if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4296 _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
4297 fi
42364298 ;;
42374299 esac
42384300 else
43244386 ;;
43254387 *)
43264388 case `$CC -V 2>&1 | sed 5q` in
4327 *Sun\ F* | *Sun*Fortran*)
4389 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
43284390 # Sun Fortran 8.3 passes all unrecognized flags to the linker
43294391 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
43304392 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
43314393 _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
4394 ;;
4395 *Sun\ F* | *Sun*Fortran*)
4396 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4397 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4398 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
43324399 ;;
43334400 *Sun\ C*)
43344401 # Sun C 5.9
43354402 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
43364403 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
43374404 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4405 ;;
4406 *Intel*\ [[CF]]*Compiler*)
4407 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4408 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4409 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4410 ;;
4411 *Portland\ Group*)
4412 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4413 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
4414 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
43384415 ;;
43394416 esac
43404417 ;;
44954572 ;;
44964573 cygwin* | mingw* | cegcc*)
44974574 case $cc_basename in
4498 cl*) ;;
4575 cl*)
4576 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
4577 ;;
44994578 *)
45004579 _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'
45014580 _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
45204599 _LT_TAGVAR(hardcode_direct, $1)=no
45214600 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
45224601 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4523 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
45244602 _LT_TAGVAR(hardcode_libdir_separator, $1)=
45254603 _LT_TAGVAR(hardcode_minus_L, $1)=no
45264604 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
47714849 xlf* | bgf* | bgxlf* | mpixlf*)
47724850 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
47734851 _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
4774 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4775 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
4852 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
47764853 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
47774854 if test "x$supports_anon_versioning" = xyes; then
47784855 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
50675144 # The linker will not automatically build a static lib if we build a DLL.
50685145 # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
50695146 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5147 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
50705148 _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'
50715149 # Don't use ranlib
50725150 _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
51135191 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
51145192 ;;
51155193
5116 freebsd1*)
5117 _LT_TAGVAR(ld_shlibs, $1)=no
5118 ;;
5119
51205194 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
51215195 # support. Future versions do this automatically, but an explicit c++rt0.o
51225196 # does not break anything, and helps significantly (at the cost of a little
51295203 ;;
51305204
51315205 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
5132 freebsd2*)
5206 freebsd2.*)
51335207 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
51345208 _LT_TAGVAR(hardcode_direct, $1)=yes
51355209 _LT_TAGVAR(hardcode_minus_L, $1)=yes
51685242 fi
51695243 if test "$with_gnu_ld" = no; then
51705244 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
5171 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
51725245 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
51735246 _LT_TAGVAR(hardcode_direct, $1)=yes
51745247 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
56105683 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
56115684 [Flag to hardcode $libdir into a binary during linking.
56125685 This must work even if $libdir does not exist])
5613 _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
5614 [[If ld is used when linking, flag to hardcode $libdir into a binary
5615 during linking. This must work even if $libdir does not exist]])
56165686 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
56175687 [Whether we need a single "-rpath" flag with a separated argument])
56185688 _LT_TAGDECL([], [hardcode_direct], [0],
57705840 _LT_TAGVAR(hardcode_direct, $1)=no
57715841 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
57725842 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
5773 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
57745843 _LT_TAGVAR(hardcode_libdir_separator, $1)=
57755844 _LT_TAGVAR(hardcode_minus_L, $1)=no
57765845 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
61406209 esac
61416210 ;;
61426211
6143 freebsd[[12]]*)
6212 freebsd2.*)
61446213 # C++ shared libraries reported to be fairly broken before
61456214 # switch to ELF
61466215 _LT_TAGVAR(ld_shlibs, $1)=no
69016970 }
69026971 };
69036972 _LT_EOF
6973 ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
6974 package foo
6975 func foo() {
6976 }
6977 _LT_EOF
69046978 ])
69056979
69066980 _lt_libdeps_save_CFLAGS=$CFLAGS
69076981 case "$CC $CFLAGS " in #(
69086982 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
69096983 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
6984 *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
69106985 esac
69116986
69126987 dnl Parse the compiler output and extract the necessary
71037178 _LT_TAGVAR(hardcode_direct, $1)=no
71047179 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
71057180 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7106 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
71077181 _LT_TAGVAR(hardcode_libdir_separator, $1)=
71087182 _LT_TAGVAR(hardcode_minus_L, $1)=no
71097183 _LT_TAGVAR(hardcode_automatic, $1)=no
72367310 _LT_TAGVAR(hardcode_direct, $1)=no
72377311 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
72387312 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
7239 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
72407313 _LT_TAGVAR(hardcode_libdir_separator, $1)=
72417314 _LT_TAGVAR(hardcode_minus_L, $1)=no
72427315 _LT_TAGVAR(hardcode_automatic, $1)=no
74237496 ])# _LT_LANG_GCJ_CONFIG
74247497
74257498
7499 # _LT_LANG_GO_CONFIG([TAG])
7500 # --------------------------
7501 # Ensure that the configuration variables for the GNU Go compiler
7502 # are suitably defined. These variables are subsequently used by _LT_CONFIG
7503 # to write the compiler configuration to `libtool'.
7504 m4_defun([_LT_LANG_GO_CONFIG],
7505 [AC_REQUIRE([LT_PROG_GO])dnl
7506 AC_LANG_SAVE
7507
7508 # Source file extension for Go test sources.
7509 ac_ext=go
7510
7511 # Object file extension for compiled Go test sources.
7512 objext=o
7513 _LT_TAGVAR(objext, $1)=$objext
7514
7515 # Code to be used in simple compile tests
7516 lt_simple_compile_test_code="package main; func main() { }"
7517
7518 # Code to be used in simple link tests
7519 lt_simple_link_test_code='package main; func main() { }'
7520
7521 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7522 _LT_TAG_COMPILER
7523
7524 # save warnings/boilerplate of simple test code
7525 _LT_COMPILER_BOILERPLATE
7526 _LT_LINKER_BOILERPLATE
7527
7528 # Allow CC to be a program name with arguments.
7529 lt_save_CC=$CC
7530 lt_save_CFLAGS=$CFLAGS
7531 lt_save_GCC=$GCC
7532 GCC=yes
7533 CC=${GOC-"gccgo"}
7534 CFLAGS=$GOFLAGS
7535 compiler=$CC
7536 _LT_TAGVAR(compiler, $1)=$CC
7537 _LT_TAGVAR(LD, $1)="$LD"
7538 _LT_CC_BASENAME([$compiler])
7539
7540 # Go did not exist at the time GCC didn't implicitly link libc in.
7541 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7542
7543 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7544 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7545 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7546
7547 ## CAVEAT EMPTOR:
7548 ## There is no encapsulation within the following macros, do not change
7549 ## the running order or otherwise move them around unless you know exactly
7550 ## what you are doing...
7551 if test -n "$compiler"; then
7552 _LT_COMPILER_NO_RTTI($1)
7553 _LT_COMPILER_PIC($1)
7554 _LT_COMPILER_C_O($1)
7555 _LT_COMPILER_FILE_LOCKS($1)
7556 _LT_LINKER_SHLIBS($1)
7557 _LT_LINKER_HARDCODE_LIBPATH($1)
7558
7559 _LT_CONFIG($1)
7560 fi
7561
7562 AC_LANG_RESTORE
7563
7564 GCC=$lt_save_GCC
7565 CC=$lt_save_CC
7566 CFLAGS=$lt_save_CFLAGS
7567 ])# _LT_LANG_GO_CONFIG
7568
7569
74267570 # _LT_LANG_RC_CONFIG([TAG])
74277571 # -------------------------
74287572 # Ensure that the configuration variables for the Windows resource compiler
74907634 AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
74917635 dnl aclocal-1.4 backwards compatibility:
74927636 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
7637
7638
7639 # LT_PROG_GO
7640 # ----------
7641 AC_DEFUN([LT_PROG_GO],
7642 [AC_CHECK_TOOL(GOC, gccgo,)
7643 ])
74937644
74947645
74957646 # LT_PROG_RC
325325 # MODE is either `yes' or `no'. If omitted, it defaults to `both'.
326326 m4_define([_LT_WITH_PIC],
327327 [AC_ARG_WITH([pic],
328 [AS_HELP_STRING([--with-pic],
328 [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
329329 [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
330 [pic_mode="$withval"],
330 [lt_p=${PACKAGE-default}
331 case $withval in
332 yes|no) pic_mode=$withval ;;
333 *)
334 pic_mode=default
335 # Look at the argument we got. We use all the common list separators.
336 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
337 for lt_pkg in $withval; do
338 IFS="$lt_save_ifs"
339 if test "X$lt_pkg" = "X$lt_p"; then
340 pic_mode=yes
341 fi
342 done
343 IFS="$lt_save_ifs"
344 ;;
345 esac],
331346 [pic_mode=default])
332347
333348 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
88
99 # @configure_input@
1010
11 # serial 3293 ltversion.m4
11 # serial 3337 ltversion.m4
1212 # This file is part of GNU Libtool
1313
14 m4_define([LT_PACKAGE_VERSION], [2.4])
15 m4_define([LT_PACKAGE_REVISION], [1.3293])
14 m4_define([LT_PACKAGE_VERSION], [2.4.2])
15 m4_define([LT_PACKAGE_REVISION], [1.3337])
1616
1717 AC_DEFUN([LTVERSION_VERSION],
18 [macro_version='2.4'
19 macro_revision='1.3293'
18 [macro_version='2.4.2'
19 macro_revision='1.3337'
2020 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
2121 _LT_DECL(, macro_revision, 0)
2222 ])
0 # -*-Makefile-*-
1 # This Makefile fragment tries to be general-purpose enough to be
2 # used by many projects via the gnulib maintainer-makefile module.
3
4 ## Copyright (C) 2001-2011 Free Software Foundation, Inc.
5 ##
6 ## This program is free software: you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation, either version 3 of the License, or
9 ## (at your option) any later version.
10 ##
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ## GNU General Public License for more details.
15 ##
16 ## You should have received a copy of the GNU General Public License
17 ## along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19 # This is reported not to work with make-3.79.1
20 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
21 ME := maint.mk
22
23 # Diagnostic for continued use of deprecated variable.
24 # Remove in 2013
25 ifneq ($(build_aux),)
26 $(error "$(ME): \
27 set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)")
28 endif
29
30 # Do not save the original name or timestamp in the .tar.gz file.
31 # Use --rsyncable if available.
32 gzip_rsyncable := \
33 $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \
34 && printf %s --rsyncable)
35 GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
36
37 GIT = git
38 VC = $(GIT)
39
40 VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir)
41
42 # You can override this variable in cfg.mk to set your own regexp
43 # matching files to ignore.
44 VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$
45
46 # This is to preprocess robustly the output of $(VC_LIST), so that even
47 # when $(srcdir) is a pathological name like "....", the leading sed command
48 # removes only the intended prefix.
49 _dot_escaped_srcdir = $(subst .,\.,$(srcdir))
50
51 # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only
52 # when $(srcdir) is not ".".
53 ifeq ($(srcdir),.)
54 _prepend_srcdir_prefix =
55 else
56 _prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|'
57 endif
58
59 # In order to be able to consistently filter "."-relative names,
60 # (i.e., with no $(srcdir) prefix), this definition is careful to
61 # remove any $(srcdir) prefix, and to restore what it removes.
62 _sc_excl = \
63 $(if $(exclude_file_name_regexp--$@),$(exclude_file_name_regexp--$@),^$$)
64 VC_LIST_EXCEPT = \
65 $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \
66 | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \
67 else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \
68 | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \
69 $(_prepend_srcdir_prefix)
70
71 ifeq ($(origin prev_version_file), undefined)
72 prev_version_file = $(srcdir)/.prev-version
73 endif
74
75 PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null)
76 VERSION_REGEXP = $(subst .,\.,$(VERSION))
77 PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION))
78
79 ifeq ($(VC),$(GIT))
80 this-vc-tag = v$(VERSION)
81 this-vc-tag-regexp = v$(VERSION_REGEXP)
82 else
83 tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
84 tag-this-version = $(subst .,_,$(VERSION))
85 this-vc-tag = $(tag-package)-$(tag-this-version)
86 this-vc-tag-regexp = $(this-vc-tag)
87 endif
88 my_distdir = $(PACKAGE)-$(VERSION)
89
90 # Old releases are stored here.
91 release_archive_dir ?= ../release
92
93 # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right.
94 # Use alpha.gnu.org for alpha and beta releases.
95 # Use ftp.gnu.org for stable releases.
96 gnu_ftp_host-alpha = alpha.gnu.org
97 gnu_ftp_host-beta = alpha.gnu.org
98 gnu_ftp_host-stable = ftp.gnu.org
99 gnu_rel_host ?= $(gnu_ftp_host-$(RELEASE_TYPE))
100
101 ifeq ($(gnu_rel_host),ftp.gnu.org)
102 url_dir_list ?= http://ftpmirror.gnu.org/$(PACKAGE)
103 else
104 url_dir_list ?= ftp://$(gnu_rel_host)/gnu/$(PACKAGE)
105 endif
106
107 # Override this in cfg.mk if you are using a different format in your
108 # NEWS file.
109 today = $(shell date +%Y-%m-%d)
110
111 # Select which lines of NEWS are searched for $(news-check-regexp).
112 # This is a sed line number spec. The default says that we search
113 # lines 1..10 of NEWS for $(news-check-regexp).
114 # If you want to search only line 3 or only lines 20-22, use "3" or "20,22".
115 news-check-lines-spec ?= 1,10
116 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)'
117
118 # Prevent programs like 'sort' from considering distinct strings to be equal.
119 # Doing it here saves us from having to set LC_ALL elsewhere in this file.
120 export LC_ALL = C
121
122 ## --------------- ##
123 ## Sanity checks. ##
124 ## --------------- ##
125
126 _cfg_mk := $(shell test -f $(srcdir)/cfg.mk && echo '$(srcdir)/cfg.mk')
127
128 # Collect the names of rules starting with `sc_'.
129 syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
130 $(srcdir)/$(ME) $(_cfg_mk)))
131 .PHONY: $(syntax-check-rules)
132
133 ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0)
134 local-checks-available += $(syntax-check-rules)
135 else
136 local-checks-available += no-vc-detected
137 no-vc-detected:
138 @echo "No version control files detected; skipping syntax check"
139 endif
140 .PHONY: $(local-checks-available)
141
142 # Arrange to print the name of each syntax-checking rule just before running it.
143 $(syntax-check-rules): %: %.m
144 sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules))
145 .PHONY: $(sc_m_rules_)
146 $(sc_m_rules_):
147 @echo $(patsubst sc_%.m, %, $@)
148 @date +%s.%N > .sc-start-$(basename $@)
149
150 # Compute and print the elapsed time for each syntax-check rule.
151 sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules))
152 .PHONY: $(sc_z_rules_)
153 $(sc_z_rules_): %.z: %
154 @end=$$(date +%s.%N); \
155 start=$$(cat .sc-start-$*); \
156 rm -f .sc-start-$*; \
157 awk -v s=$$start -v e=$$end \
158 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null
159
160 # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper
161 # that computes and prints elapsed time.
162 local-check := \
163 $(patsubst sc_%, sc_%.z, \
164 $(filter-out $(local-checks-to-skip), $(local-checks-available)))
165
166 syntax-check: $(local-check)
167
168 # _sc_search_regexp
169 #
170 # This macro searches for a given construct in the selected files and
171 # then takes some action.
172 #
173 # Parameters (shell variables):
174 #
175 # prohibit | require
176 #
177 # Regular expression (ERE) denoting either a forbidden construct
178 # or a required construct. Those arguments are exclusive.
179 #
180 # in_vc_files | in_files
181 #
182 # grep-E-style regexp denoting the files to check. If no files
183 # are specified the default are all the files that are under
184 # version control.
185 #
186 # containing | non_containing
187 #
188 # Select the files (non) containing strings matching this regexp.
189 # If both arguments are specified then CONTAINING takes
190 # precedence.
191 #
192 # with_grep_options
193 #
194 # Extra options for grep.
195 #
196 # ignore_case
197 #
198 # Ignore case.
199 #
200 # halt
201 #
202 # Message to display before to halting execution.
203 #
204 # Finally, you may exempt files based on an ERE matching file names.
205 # For example, to exempt from the sc_space_tab check all files with the
206 # .diff suffix, set this Make variable:
207 #
208 # exclude_file_name_regexp--sc_space_tab = \.diff$
209 #
210 # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT,
211 # when filtering by name via in_files, we explicitly filter out matching
212 # names here as well.
213
214 # By default, _sc_search_regexp does not ignore case.
215 export ignore_case =
216 _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :)
217
218 define _sc_say_and_exit
219 dummy=; : so we do not need a semicolon before each use; \
220 { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; };
221 endef
222
223 # _sc_search_regexp used to be named _prohibit_regexp. However,
224 # upgrading to the new definition and leaving the old name undefined
225 # would usually convert each custom rule using $(_prohibit_regexp)
226 # (usually defined in cfg.mk) into a no-op. This definition ensures
227 # that people know right away if they're still using the old name.
228 # FIXME: remove in 2012.
229 _prohibit_regexp = \
230 $(error '*** you need to s/_prohibit_regexp/_sc_search_regexp/, and adapt')
231
232 define _sc_search_regexp
233 dummy=; : so we do not need a semicolon before each use; \
234 \
235 : Check arguments; \
236 test -n "$$prohibit" && test -n "$$require" \
237 && { msg='Cannot specify both prohibit and require' \
238 $(_sc_say_and_exit) } || :; \
239 test -z "$$prohibit" && test -z "$$require" \
240 && { msg='Should specify either prohibit or require' \
241 $(_sc_say_and_exit) } || :; \
242 test -n "$$in_vc_files" && test -n "$$in_files" \
243 && { msg='Cannot specify both in_vc_files and in_files' \
244 $(_sc_say_and_exit) } || :; \
245 test "x$$halt" != x \
246 || { msg='halt not defined' $(_sc_say_and_exit) }; \
247 \
248 : Filter by file name; \
249 if test -n "$$in_files"; then \
250 files=$$(find $(srcdir) | grep -E "$$in_files" \
251 | grep -Ev '$(exclude_file_name_regexp--$@)'); \
252 else \
253 files=$$($(VC_LIST_EXCEPT)); \
254 if test -n "$$in_vc_files"; then \
255 files=$$(echo "$$files" | grep -E "$$in_vc_files"); \
256 fi; \
257 fi; \
258 \
259 : Filter by content; \
260 test -n "$$files" && test -n "$$containing" \
261 && { files=$$(grep -l "$$containing" $$files); } || :; \
262 test -n "$$files" && test -n "$$non_containing" \
263 && { files=$$(grep -vl "$$non_containing" $$files); } || :; \
264 \
265 : Check for the construct; \
266 if test -n "$$files"; then \
267 if test -n "$$prohibit"; then \
268 grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \
269 && { msg="$$halt" $(_sc_say_and_exit) } || :; \
270 else \
271 grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \
272 | grep . \
273 && { msg="$$halt" $(_sc_say_and_exit) } || :; \
274 fi \
275 else :; \
276 fi || :;
277 endef
278
279 sc_avoid_if_before_free:
280 @$(srcdir)/$(_build-aux)/useless-if-before-free \
281 $(useless_free_options) \
282 $$($(VC_LIST_EXCEPT) | grep -v useless-if-before-free) && \
283 { echo '$(ME): found useless "if" before "free" above' 1>&2; \
284 exit 1; } || :
285
286 sc_cast_of_argument_to_free:
287 @prohibit='\<free *\( *\(' halt='don'\''t cast free argument' \
288 $(_sc_search_regexp)
289
290 sc_cast_of_x_alloc_return_value:
291 @prohibit='\*\) *x(m|c|re)alloc\>' \
292 halt='don'\''t cast x*alloc return value' \
293 $(_sc_search_regexp)
294
295 sc_cast_of_alloca_return_value:
296 @prohibit='\*\) *alloca\>' \
297 halt='don'\''t cast alloca return value' \
298 $(_sc_search_regexp)
299
300 sc_space_tab:
301 @prohibit='[ ] ' \
302 halt='found SPACE-TAB sequence; remove the SPACE' \
303 $(_sc_search_regexp)
304
305 # Don't use *scanf or the old ato* functions in `real' code.
306 # They provide no error checking mechanism.
307 # Instead, use strto* functions.
308 sc_prohibit_atoi_atof:
309 @prohibit='\<([fs]?scanf|ato([filq]|ll)) *\(' \
310 halt='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \
311 $(_sc_search_regexp)
312
313 # Use STREQ rather than comparing strcmp == 0, or != 0.
314 sc_prohibit_strcmp:
315 @grep -nE '! *str''cmp *\(|\<str''cmp *\(.+\) *[!=]=' \
316 $$($(VC_LIST_EXCEPT)) \
317 | grep -vE ':# *define STRN?EQ\(' && \
318 { echo '$(ME): replace str''cmp calls above with STREQ/STRNEQ' \
319 1>&2; exit 1; } || :
320
321 # Pass EXIT_*, not number, to usage, exit, and error (when exiting)
322 # Convert all uses automatically, via these two commands:
323 # git grep -l '\<exit *(1)' \
324 # | grep -vEf .x-sc_prohibit_magic_number_exit \
325 # | xargs --no-run-if-empty \
326 # perl -pi -e 's/(^|[^.])\b(exit ?)\(1\)/$1$2(EXIT_FAILURE)/'
327 # git grep -l '\<exit *(0)' \
328 # | grep -vEf .x-sc_prohibit_magic_number_exit \
329 # | xargs --no-run-if-empty \
330 # perl -pi -e 's/(^|[^.])\b(exit ?)\(0\)/$1$2(EXIT_SUCCESS)/'
331 sc_prohibit_magic_number_exit:
332 @prohibit='(^|[^.])\<(usage|exit) ?\([0-9]|\<error ?\([1-9][0-9]*,' \
333 halt='use EXIT_* values rather than magic number' \
334 $(_sc_search_regexp)
335
336 # Using EXIT_SUCCESS as the first argument to error is misleading,
337 # since when that parameter is 0, error does not exit. Use `0' instead.
338 sc_error_exit_success:
339 @prohibit='error *\(EXIT_SUCCESS,' \
340 in_vc_files='\.[chly]$$' \
341 halt='found error (EXIT_SUCCESS' \
342 $(_sc_search_regexp)
343
344 # `FATAL:' should be fully upper-cased in error messages
345 # `WARNING:' should be fully upper-cased, or fully lower-cased
346 sc_error_message_warn_fatal:
347 @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \
348 | grep -E '"Warning|"Fatal|"fatal' && \
349 { echo '$(ME): use FATAL, WARNING or warning' 1>&2; \
350 exit 1; } || :
351
352 # Error messages should not start with a capital letter
353 sc_error_message_uppercase:
354 @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \
355 | grep -E '"[A-Z]' \
356 | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' && \
357 { echo '$(ME): found capitalized error message' 1>&2; \
358 exit 1; } || :
359
360 # Error messages should not end with a period
361 sc_error_message_period:
362 @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \
363 | grep -E '[^."]\."' && \
364 { echo '$(ME): found error message ending in period' 1>&2; \
365 exit 1; } || :
366
367 sc_file_system:
368 @prohibit=file''system \
369 ignore_case=1 \
370 halt='found use of "file''system"; spell it "file system"' \
371 $(_sc_search_regexp)
372
373 # Don't use cpp tests of this symbol. All code assumes config.h is included.
374 sc_prohibit_have_config_h:
375 @prohibit='^# *if.*HAVE''_CONFIG_H' \
376 halt='found use of HAVE''_CONFIG_H; remove' \
377 $(_sc_search_regexp)
378
379 # Nearly all .c files must include <config.h>. However, we also permit this
380 # via inclusion of a package-specific header, if cfg.mk specified one.
381 # config_h_header must be suitable for grep -E.
382 config_h_header ?= <config\.h>
383 sc_require_config_h:
384 @require='^# *include $(config_h_header)' \
385 in_vc_files='\.c$$' \
386 halt='the above files do not include <config.h>' \
387 $(_sc_search_regexp)
388
389 # You must include <config.h> before including any other header file.
390 # This can possibly be via a package-specific header, if given by cfg.mk.
391 sc_require_config_h_first:
392 @if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \
393 fail=0; \
394 for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \
395 grep '^# *include\>' $$i | sed 1q \
396 | grep -E '^# *include $(config_h_header)' > /dev/null \
397 || { echo $$i; fail=1; }; \
398 done; \
399 test $$fail = 1 && \
400 { echo '$(ME): the above files include some other header' \
401 'before <config.h>' 1>&2; exit 1; } || :; \
402 else :; \
403 fi
404
405 sc_prohibit_HAVE_MBRTOWC:
406 @prohibit='\bHAVE_MBRTOWC\b' \
407 halt="do not use $$prohibit; it is always defined" \
408 $(_sc_search_regexp)
409
410 # To use this "command" macro, you must first define two shell variables:
411 # h: the header name, with no enclosing <> or ""
412 # re: a regular expression that matches IFF something provided by $h is used.
413 define _sc_header_without_use
414 dummy=; : so we do not need a semicolon before each use; \
415 h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`; \
416 if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \
417 files=$$(grep -l '^# *include '"$$h_esc" \
418 $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \
419 grep -LE "$$re" $$files | grep . && \
420 { echo "$(ME): the above files include $$h but don't use it" \
421 1>&2; exit 1; } || :; \
422 else :; \
423 fi
424 endef
425
426 # Prohibit the inclusion of assert.h without an actual use of assert.
427 sc_prohibit_assert_without_use:
428 @h='assert.h' re='\<assert *\(' $(_sc_header_without_use)
429
430 # Prohibit the inclusion of close-stream.h without an actual use.
431 sc_prohibit_close_stream_without_use:
432 @h='close-stream.h' re='\<close_stream *\(' $(_sc_header_without_use)
433
434 # Prohibit the inclusion of getopt.h without an actual use.
435 sc_prohibit_getopt_without_use:
436 @h='getopt.h' re='\<getopt(_long)? *\(' $(_sc_header_without_use)
437
438 # Don't include quotearg.h unless you use one of its functions.
439 sc_prohibit_quotearg_without_use:
440 @h='quotearg.h' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use)
441
442 # Don't include quote.h unless you use one of its functions.
443 sc_prohibit_quote_without_use:
444 @h='quote.h' re='\<quote(_n)? *\(' $(_sc_header_without_use)
445
446 # Don't include this header unless you use one of its functions.
447 sc_prohibit_long_options_without_use:
448 @h='long-options.h' re='\<parse_long_options *\(' \
449 $(_sc_header_without_use)
450
451 # Don't include this header unless you use one of its functions.
452 sc_prohibit_inttostr_without_use:
453 @h='inttostr.h' re='\<(off|[iu]max|uint)tostr *\(' \
454 $(_sc_header_without_use)
455
456 # Don't include this header unless you use one of its functions.
457 sc_prohibit_ignore_value_without_use:
458 @h='ignore-value.h' re='\<ignore_(value|ptr) *\(' \
459 $(_sc_header_without_use)
460
461 # Don't include this header unless you use one of its functions.
462 sc_prohibit_error_without_use:
463 @h='error.h' \
464 re='\<error(_at_line|_print_progname|_one_per_line|_message_count)? *\('\
465 $(_sc_header_without_use)
466
467 # Don't include xalloc.h unless you use one of its functions.
468 # Consider these symbols:
469 # perl -lne '/^# *define (\w+)\(/ and print $1' lib/xalloc.h|grep -v '^__';
470 # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/xalloc.h
471 # Divide into two sets on case, and filter each through this:
472 # | sort | perl -MRegexp::Assemble -le \
473 # 'print Regexp::Assemble->new(file => "/dev/stdin")->as_string'|sed 's/\?://g'
474 # Note this was produced by the above:
475 # _xa1 = \
476 #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup)
477 # But we can do better, in at least two ways:
478 # 1) take advantage of two "dup"-suffixed strings:
479 # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup)
480 # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable
481 # "char|[cmz]"
482 # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup)
483 _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup)
484 _xa2 = X([CZ]|N?M)ALLOC
485 sc_prohibit_xalloc_without_use:
486 @h='xalloc.h' \
487 re='\<($(_xa1)|$(_xa2)) *\('\
488 $(_sc_header_without_use)
489
490 # Extract function names:
491 # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h
492 _hash_re = \
493 clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning
494 _hash_fn = \<($(_hash_re)) *\(
495 _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\>
496 sc_prohibit_hash_without_use:
497 @h='hash.h' \
498 re='$(_hash_fn)|$(_hash_struct)'\
499 $(_sc_header_without_use)
500
501 sc_prohibit_cloexec_without_use:
502 @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \
503 $(_sc_header_without_use)
504
505 sc_prohibit_posixver_without_use:
506 @h='posixver.h' re='\<posix2_version *\(' $(_sc_header_without_use)
507
508 sc_prohibit_same_without_use:
509 @h='same.h' re='\<same_name *\(' $(_sc_header_without_use)
510
511 sc_prohibit_hash_pjw_without_use:
512 @h='hash-pjw.h' \
513 re='\<hash_pjw *\(' \
514 $(_sc_header_without_use)
515
516 sc_prohibit_safe_read_without_use:
517 @h='safe-read.h' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \
518 $(_sc_header_without_use)
519
520 sc_prohibit_argmatch_without_use:
521 @h='argmatch.h' \
522 re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<(invalid_arg|argmatch(_exit_fn|_(in)?valid)?) *\()' \
523 $(_sc_header_without_use)
524
525 sc_prohibit_canonicalize_without_use:
526 @h='canonicalize.h' \
527 re='CAN_(EXISTING|ALL_BUT_LAST|MISSING)|canonicalize_(mode_t|filename_mode)' \
528 $(_sc_header_without_use)
529
530 sc_prohibit_root_dev_ino_without_use:
531 @h='root-dev-ino.h' \
532 re='(\<ROOT_DEV_INO_(CHECK|WARN)\>|\<get_root_dev_ino *\()' \
533 $(_sc_header_without_use)
534
535 sc_prohibit_openat_without_use:
536 @h='openat.h' \
537 re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat)\>' \
538 $(_sc_header_without_use)
539
540 # Prohibit the inclusion of c-ctype.h without an actual use.
541 ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\
542 |isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper
543 sc_prohibit_c_ctype_without_use:
544 @h='c-ctype.h' re='\<c_($(ctype_re)) *\(' \
545 $(_sc_header_without_use)
546
547 _empty =
548 _sp = $(_empty) $(_empty)
549 # The following list was generated by running:
550 # man signal.h|col -b|perl -ne '/bsd_signal.*;/.../sigwaitinfo.*;/ and print' \
551 # | perl -lne '/^\s+(?:int|void).*?(\w+).*/ and print $1' | fmt
552 _sig_functions = \
553 bsd_signal kill killpg pthread_kill pthread_sigmask raise sigaction \
554 sigaddset sigaltstack sigdelset sigemptyset sigfillset sighold sigignore \
555 siginterrupt sigismember signal sigpause sigpending sigprocmask sigqueue \
556 sigrelse sigset sigsuspend sigtimedwait sigwait sigwaitinfo
557 _sig_function_re = $(subst $(_sp),|,$(strip $(_sig_functions)))
558 # The following were extracted from "man signal.h" manually.
559 _sig_types_and_consts = \
560 MINSIGSTKSZ SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK \
561 SA_RESETHAND SA_RESTART SA_SIGINFO SIGEV_NONE SIGEV_SIGNAL \
562 SIGEV_THREAD SIGSTKSZ SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SS_DISABLE \
563 SS_ONSTACK mcontext_t pid_t sig_atomic_t sigevent siginfo_t sigset_t \
564 sigstack sigval stack_t ucontext_t
565 # generated via this:
566 # perl -lne '/^#ifdef (SIG\w+)/ and print $1' lib/sig2str.c|sort -u|fmt -70
567 _sig_names = \
568 SIGABRT SIGALRM SIGALRM1 SIGBUS SIGCANCEL SIGCHLD SIGCLD SIGCONT \
569 SIGDANGER SIGDIL SIGEMT SIGFPE SIGFREEZE SIGGRANT SIGHUP SIGILL \
570 SIGINFO SIGINT SIGIO SIGIOT SIGKAP SIGKILL SIGKILLTHR SIGLOST SIGLWP \
571 SIGMIGRATE SIGMSG SIGPHONE SIGPIPE SIGPOLL SIGPRE SIGPROF SIGPWR \
572 SIGQUIT SIGRETRACT SIGSAK SIGSEGV SIGSOUND SIGSTKFLT SIGSTOP SIGSYS \
573 SIGTERM SIGTHAW SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGURG SIGUSR1 \
574 SIGUSR2 SIGVIRT SIGVTALRM SIGWAITING SIGWINCH SIGWIND SIGWINDOW \
575 SIGXCPU SIGXFSZ
576 _sig_syms_re = $(subst $(_sp),|,$(strip $(_sig_names) $(_sig_types_and_consts)))
577
578 # Prohibit the inclusion of signal.h without an actual use.
579 sc_prohibit_signal_without_use:
580 @h='signal.h' \
581 re='\<($(_sig_function_re)) *\(|\<($(_sig_syms_re))\>' \
582 $(_sc_header_without_use)
583
584 # Don't include stdio--.h unless you use one of its functions.
585 sc_prohibit_stdio--_without_use:
586 @h='stdio--.h' re='\<((f(re)?|p)open|tmpfile) *\(' \
587 $(_sc_header_without_use)
588
589 # Don't include stdio-safer.h unless you use one of its functions.
590 sc_prohibit_stdio-safer_without_use:
591 @h='stdio-safer.h' re='\<((f(re)?|p)open|tmpfile)_safer *\(' \
592 $(_sc_header_without_use)
593
594 # Prohibit the inclusion of strings.h without a sensible use.
595 # Using the likes of bcmp, bcopy, bzero, index or rindex is not sensible.
596 sc_prohibit_strings_without_use:
597 @h='strings.h' \
598 re='\<(strn?casecmp|ffs(ll)?)\>' \
599 $(_sc_header_without_use)
600
601 # Get the list of symbol names with this:
602 # perl -lne '/^# *define ([A-Z]\w+)\(/ and print $1' lib/intprops.h|fmt
603 _intprops_names = \
604 TYPE_IS_INTEGER TYPE_TWOS_COMPLEMENT TYPE_ONES_COMPLEMENT \
605 TYPE_SIGNED_MAGNITUDE TYPE_SIGNED TYPE_MINIMUM TYPE_MAXIMUM \
606 INT_BITS_STRLEN_BOUND INT_STRLEN_BOUND INT_BUFSIZE_BOUND \
607 INT_ADD_RANGE_OVERFLOW INT_SUBTRACT_RANGE_OVERFLOW \
608 INT_NEGATE_RANGE_OVERFLOW INT_MULTIPLY_RANGE_OVERFLOW \
609 INT_DIVIDE_RANGE_OVERFLOW INT_REMAINDER_RANGE_OVERFLOW \
610 INT_LEFT_SHIFT_RANGE_OVERFLOW INT_ADD_OVERFLOW INT_SUBTRACT_OVERFLOW \
611 INT_NEGATE_OVERFLOW INT_MULTIPLY_OVERFLOW INT_DIVIDE_OVERFLOW \
612 INT_REMAINDER_OVERFLOW INT_LEFT_SHIFT_OVERFLOW
613 _intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names)))
614 # Prohibit the inclusion of intprops.h without an actual use.
615 sc_prohibit_intprops_without_use:
616 @h='intprops.h' \
617 re='\<($(_intprops_syms_re)) *\(' \
618 $(_sc_header_without_use)
619
620 _stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t
621 # Prohibit the inclusion of stddef.h without an actual use.
622 sc_prohibit_stddef_without_use:
623 @h='stddef.h' \
624 re='\<($(_stddef_syms_re))\>' \
625 $(_sc_header_without_use)
626
627 _de1 = dirfd|(close|(fd)?open|read|rewind|seek|tell)dir(64)?(_r)?
628 _de2 = (versionsort|struct dirent|getdirentries|alphasort|scandir(at)?)(64)?
629 _de3 = MAXNAMLEN|DIR|ino_t|d_ino|d_fileno|d_namlen
630 _dirent_syms_re = $(_de1)|$(_de2)|$(_de3)
631 # Prohibit the inclusion of dirent.h without an actual use.
632 sc_prohibit_dirent_without_use:
633 @h='dirent.h' \
634 re='\<($(_dirent_syms_re))\>' \
635 $(_sc_header_without_use)
636
637 # Prohibit the inclusion of verify.h without an actual use.
638 sc_prohibit_verify_without_use:
639 @h='verify.h' \
640 re='\<(verify(true|expr)?|static_assert) *\(' \
641 $(_sc_header_without_use)
642
643 # Don't include xfreopen.h unless you use one of its functions.
644 sc_prohibit_xfreopen_without_use:
645 @h='xfreopen.h' re='\<xfreopen *\(' $(_sc_header_without_use)
646
647 sc_obsolete_symbols:
648 @prohibit='\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \
649 halt='do not use HAVE''_FCNTL_H or O'_NDELAY \
650 $(_sc_search_regexp)
651
652 # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ
653
654 # Each nonempty ChangeLog line must start with a year number, or a TAB.
655 sc_changelog:
656 @prohibit='^[^12 ]' \
657 in_vc_files='^ChangeLog$$' \
658 halt='found unexpected prefix in a ChangeLog' \
659 $(_sc_search_regexp)
660
661 # Ensure that each .c file containing a "main" function also
662 # calls set_program_name.
663 sc_program_name:
664 @require='set_program_name *\(m?argv\[0\]\);' \
665 in_vc_files='\.c$$' \
666 containing='\<main *(' \
667 halt='the above files do not call set_program_name' \
668 $(_sc_search_regexp)
669
670 # Ensure that each .c file containing a "main" function also
671 # calls bindtextdomain.
672 sc_bindtextdomain:
673 @require='bindtextdomain *\(' \
674 in_vc_files='\.c$$' \
675 containing='\<main *(' \
676 halt='the above files do not call bindtextdomain' \
677 $(_sc_search_regexp)
678
679 # Require that the final line of each test-lib.sh-using test be this one:
680 # Exit $fail
681 # Note: this test requires GNU grep's --label= option.
682 Exit_witness_file ?= tests/test-lib.sh
683 Exit_base := $(notdir $(Exit_witness_file))
684 sc_require_test_exit_idiom:
685 @if test -f $(srcdir)/$(Exit_witness_file); then \
686 die=0; \
687 for i in $$(grep -l -F 'srcdir/$(Exit_base)' \
688 $$($(VC_LIST) tests)); do \
689 tail -n1 $$i | grep '^Exit .' > /dev/null \
690 && : || { die=1; echo $$i; } \
691 done; \
692 test $$die = 1 && \
693 { echo 1>&2 '$(ME): the final line in each of the above is not:'; \
694 echo 1>&2 'Exit something'; \
695 exit 1; } || :; \
696 fi
697
698 sc_trailing_blank:
699 @prohibit='[ ]$$' \
700 halt='found trailing blank(s)' \
701 $(_sc_search_regexp)
702
703 # Match lines like the following, but where there is only one space
704 # between the options and the description:
705 # -D, --all-repeated[=delimit-method] print all duplicate lines\n
706 longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
707 sc_two_space_separator_in_usage:
708 @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
709 halt='help2man requires at least two spaces between an option and its description'\
710 $(_sc_search_regexp)
711
712 # A regexp matching function names like "error" that may be used
713 # to emit translatable messages.
714 _gl_translatable_diag_func_re ?= error
715
716 # Look for diagnostics that aren't marked for translation.
717 # This won't find any for which error's format string is on a separate line.
718 sc_unmarked_diagnostics:
719 @grep -nE \
720 '\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
721 $$($(VC_LIST_EXCEPT)) \
722 | grep -Ev '(_|ngettext ?)\(' && \
723 { echo '$(ME): found unmarked diagnostic(s)' 1>&2; \
724 exit 1; } || :
725
726 # Avoid useless parentheses like those in this example:
727 # #if defined (SYMBOL) || defined (SYM2)
728 sc_useless_cpp_parens:
729 @prohibit='^# *if .*defined *\(' \
730 halt='found useless parentheses in cpp directive' \
731 $(_sc_search_regexp)
732
733 # List headers for which HAVE_HEADER_H is always true, assuming you are
734 # using the appropriate gnulib module. CAUTION: for each "unnecessary"
735 # #if HAVE_HEADER_H that you remove, be sure that your project explicitly
736 # requires the gnulib module that guarantees the usability of that header.
737 gl_assured_headers_ = \
738 cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//g'
739
740 # Convert the list of names to upper case, and replace each space with "|".
741 az_ = abcdefghijklmnopqrstuvwxyz
742 AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ
743 gl_header_upper_case_or_ = \
744 $$($(gl_assured_headers_) \
745 | tr $(az_)/.- $(AZ_)___ \
746 | tr -s ' ' '|' \
747 )
748 sc_prohibit_always_true_header_tests:
749 @or=$(gl_header_upper_case_or_); \
750 re="HAVE_($$or)_H"; \
751 prohibit='\<'"$$re"'\>' \
752 halt=$$(printf '%s\n' \
753 'do not test the above HAVE_<header>_H symbol(s);' \
754 ' with the corresponding gnulib module, they are always true') \
755 $(_sc_search_regexp)
756
757 # ==================================================================
758 gl_other_headers_ ?= \
759 intprops.h \
760 openat.h \
761 stat-macros.h
762
763 # Perl -lne code to extract "significant" cpp-defined symbols from a
764 # gnulib header file, eliminating a few common false-positives.
765 # The exempted names below are defined only conditionally in gnulib,
766 # and hence sometimes must/may be defined in application code.
767 gl_extract_significant_defines_ = \
768 /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\
769 && $$2 !~ /(?:rpl_|_used_without_)/\
770 && $$1 !~ /^(?:NSIG|ENODATA)$$/\
771 && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\
772 and print $$1
773
774 # Create a list of regular expressions matching the names
775 # of macros that are guaranteed to be defined by parts of gnulib.
776 define def_sym_regex
777 gen_h=$(gl_generated_headers_); \
778 (cd $(gnulib_dir)/lib; \
779 for f in *.in.h $(gl_other_headers_); do \
780 test -f $$f \
781 && perl -lne '$(gl_extract_significant_defines_)' $$f; \
782 done; \
783 ) | sort -u \
784 | sed 's/^/^ *# *(define|undef) */;s/$$/\\>/'
785 endef
786
787 # Don't define macros that we already get from gnulib header files.
788 sc_prohibit_always-defined_macros:
789 @if test -d $(gnulib_dir); then \
790 case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \
791 echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \
792 esac; \
793 $(def_sym_regex) | grep -E -f - $$($(VC_LIST_EXCEPT)) \
794 && { echo '$(ME): define the above via some gnulib .h file' \
795 1>&2; exit 1; } || :; \
796 fi
797 # ==================================================================
798
799 # Prohibit checked in backup files.
800 sc_prohibit_backup_files:
801 @$(VC_LIST) | grep '~$$' && \
802 { echo '$(ME): found version controlled backup file' 1>&2; \
803 exit 1; } || :
804
805 # Require the latest GPL.
806 sc_GPL_version:
807 @prohibit='either ''version [^3]' \
808 halt='GPL vN, N!=3' \
809 $(_sc_search_regexp)
810
811 # Require the latest GFDL. Two regexp, since some .texi files end up
812 # line wrapping between 'Free Documentation License,' and 'Version'.
813 _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any)
814 sc_GFDL_version:
815 @prohibit='$(_GFDL_regexp)' \
816 halt='GFDL vN, N!=3' \
817 $(_sc_search_regexp)
818
819 # Don't use Texinfo's @acronym{}.
820 # http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html
821 texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$
822 sc_texinfo_acronym:
823 @prohibit='@acronym\{' \
824 in_vc_files='$(texinfo_suffix_re_)' \
825 halt='found use of Texinfo @acronym{}' \
826 $(_sc_search_regexp)
827
828 cvs_keywords = \
829 Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State
830
831 sc_prohibit_cvs_keyword:
832 @prohibit='\$$($(cvs_keywords))\$$' \
833 halt='do not use CVS keyword expansion' \
834 $(_sc_search_regexp)
835
836 # This Perl code is slightly obfuscated. Not only is each "$" doubled
837 # because it's in a Makefile, but the $$c's are comments; we cannot
838 # use "#" due to the way the script ends up concatenated onto one line.
839 # It would be much more concise, and would produce better output (including
840 # counts) if written as:
841 # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ...
842 # but that would be far less efficient, reading the entire contents
843 # of each file, rather than just the last two bytes of each.
844 # In addition, while the code below detects both blank lines and a missing
845 # newline at EOF, the above detects only the former.
846 #
847 # This is a perl script that is expected to be the single-quoted argument
848 # to a command-line "-le". The remaining arguments are file names.
849 # Print the name of each file that ends in exactly one newline byte.
850 # I.e., warn if there are blank lines (2 or more newlines), or if the
851 # last byte is not a newline. However, currently we don't complain
852 # about any file that contains exactly one byte.
853 # Exit nonzero if at least one such file is found, otherwise, exit 0.
854 # Warn about, but otherwise ignore open failure. Ignore seek/read failure.
855 #
856 # Use this if you want to remove trailing empty lines from selected files:
857 # perl -pi -0777 -e 's/\n\n+$/\n/' files...
858 #
859 require_exactly_one_NL_at_EOF_ = \
860 foreach my $$f (@ARGV) \
861 { \
862 open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \
863 my $$p = sysseek (F, -2, 2); \
864 my $$c = "seek failure probably means file has < 2 bytes; ignore"; \
865 my $$last_two_bytes; \
866 defined $$p and $$p = sysread F, $$last_two_bytes, 2; \
867 close F; \
868 $$c = "ignore read failure"; \
869 $$p && ($$last_two_bytes eq "\n\n" \
870 || substr ($$last_two_bytes,1) ne "\n") \
871 and (print $$f), $$fail=1; \
872 } \
873 END { exit defined $$fail }
874 sc_prohibit_empty_lines_at_EOF:
875 @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \
876 || { echo '$(ME): empty line(s) or no newline at EOF' \
877 1>&2; exit 1; } || :
878
879 # Make sure we don't use st_blocks. Use ST_NBLOCKS instead.
880 # This is a bit of a kludge, since it prevents use of the string
881 # even in comments, but for now it does the job with no false positives.
882 sc_prohibit_stat_st_blocks:
883 @prohibit='[.>]st_blocks' \
884 halt='do not use st_blocks; use ST_NBLOCKS' \
885 $(_sc_search_regexp)
886
887 # Make sure we don't define any S_IS* macros in src/*.c files.
888 # They're already defined via gnulib's sys/stat.h replacement.
889 sc_prohibit_S_IS_definition:
890 @prohibit='^ *# *define *S_IS' \
891 halt='do not define S_IS* macros; include <sys/stat.h>' \
892 $(_sc_search_regexp)
893
894 # Perl block to convert a match to FILE_NAME:LINENO:TEST,
895 # that is shared by two definitions below.
896 perl_filename_lineno_text_ = \
897 -e ' {' \
898 -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \
899 -e ' ($$v = $$&) =~ s/\n/\\n/g;' \
900 -e ' print "$$ARGV:$$n:$$v\n";' \
901 -e ' }'
902
903 prohibit_doubled_word_RE_ ?= \
904 /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims
905 prohibit_doubled_word_ = \
906 -e 'while ($(prohibit_doubled_word_RE_))' \
907 $(perl_filename_lineno_text_)
908
909 # Define this to a regular expression that matches
910 # any filename:dd:match lines you want to ignore.
911 # The default is to ignore no matches.
912 ignore_doubled_word_match_RE_ ?= ^$$
913
914 sc_prohibit_doubled_word:
915 @perl -n -0777 $(prohibit_doubled_word_) $$($(VC_LIST_EXCEPT)) \
916 | grep -vE '$(ignore_doubled_word_match_RE_)' \
917 | grep . && { echo '$(ME): doubled words' 1>&2; exit 1; } || :
918
919 # A regular expression matching undesirable combinations of words like
920 # "can not"; this matches them even when the two words appear on different
921 # lines, but not when there is an intervening delimiter like "#" or "*".
922 prohibit_undesirable_word_seq_RE_ ?= \
923 /\bcan\s+not\b/gims
924 prohibit_undesirable_word_seq_ = \
925 -e 'while ($(prohibit_undesirable_word_seq_RE_))' \
926 $(perl_filename_lineno_text_)
927 # Define this to a regular expression that matches
928 # any filename:dd:match lines you want to ignore.
929 # The default is to ignore no matches.
930 ignore_undesirable_word_sequence_RE_ ?= ^$$
931
932 sc_prohibit_undesirable_word_seq:
933 @perl -n -0777 $(prohibit_undesirable_word_seq_) \
934 $$($(VC_LIST_EXCEPT)) \
935 | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \
936 && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || :
937
938 _ptm1 = use "test C1 && test C2", not "test C1 -''a C2"
939 _ptm2 = use "test C1 || test C2", not "test C1 -''o C2"
940 # Using test's -a and -o operators is not portable.
941 # We prefer test over [, since the latter is spelled [[ in configure.ac.
942 sc_prohibit_test_minus_ao:
943 @prohibit='(\<test| \[+) .+ -[ao] ' \
944 halt='$(_ptm1); $(_ptm2)' \
945 $(_sc_search_regexp)
946
947 # Avoid a test bashism.
948 sc_prohibit_test_double_equal:
949 @prohibit='(\<test| \[+) .+ == ' \
950 containing='#! */bin/[a-z]*sh' \
951 halt='use "test x = x", not "test x =''= x"' \
952 $(_sc_search_regexp)
953
954 # Each program that uses proper_name_utf8 must link with one of the
955 # ICONV libraries. Otherwise, some ICONV library must appear in LDADD.
956 # The perl -0777 invocation below extracts the possibly-multi-line
957 # definition of LDADD from the appropriate Makefile.am and exits 0
958 # when it contains "ICONV".
959 sc_proper_name_utf8_requires_ICONV:
960 @progs=$$(grep -l 'proper_name_utf8 ''("' $$($(VC_LIST_EXCEPT)));\
961 if test "x$$progs" != x; then \
962 fail=0; \
963 for p in $$progs; do \
964 dir=$$(dirname "$$p"); \
965 perl -0777 \
966 -ne 'exit !(/^LDADD =(.+?[^\\]\n)/ms && $$1 =~ /ICONV/)' \
967 $$dir/Makefile.am && continue; \
968 base=$$(basename "$$p" .c); \
969 grep "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \
970 || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \
971 done; \
972 test $$fail = 1 && \
973 { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \
974 exit 1; } || :; \
975 fi
976
977 # Warn about "c0nst struct Foo const foo[]",
978 # but not about "char const *const foo" or "#define const const".
979 sc_redundant_const:
980 @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \
981 halt='redundant "const" in declarations' \
982 $(_sc_search_regexp)
983
984 sc_const_long_option:
985 @grep '^ *static.*struct option ' $$($(VC_LIST_EXCEPT)) \
986 | grep -Ev 'const struct option|struct option const' && { \
987 echo 1>&2 '$(ME): add "const" to the above declarations'; \
988 exit 1; } || :
989
990 NEWS_hash = \
991 $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \
992 $(srcdir)/NEWS \
993 | perl -0777 -pe \
994 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \
995 | md5sum - \
996 | sed 's/ .*//')
997
998 # Ensure that we don't accidentally insert an entry into an old NEWS block.
999 sc_immutable_NEWS:
1000 @if test -f $(srcdir)/NEWS; then \
1001 test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \
1002 { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \
1003 fi
1004
1005 # Update the hash stored above. Do this after each release and
1006 # for any corrections to old entries.
1007 update-NEWS-hash: NEWS
1008 perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \
1009 $(srcdir)/cfg.mk
1010
1011 # Ensure that we use only the standard $(VAR) notation,
1012 # not @...@ in Makefile.am, now that we can rely on automake
1013 # to emit a definition for each substituted variable.
1014 # However, there is still one case in which @VAR@ use is not just
1015 # legitimate, but actually required: when augmenting an automake-defined
1016 # variable with a prefix. For example, gettext uses this:
1017 # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
1018 # otherwise, makeinfo would put German or French (current locale)
1019 # navigation hints in the otherwise-English documentation.
1020 #
1021 # Allow the package to add exceptions via a hook in cfg.mk;
1022 # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by
1023 # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'.
1024 _makefile_at_at_check_exceptions ?=
1025 sc_makefile_at_at_check:
1026 @perl -ne '/\@[A-Z_0-9]+\@/' \
1027 -e ' && !/([A-Z_0-9]+)\s+=.*\@\1\@$$/' \
1028 -e ''$(_makefile_at_at_check_exceptions) \
1029 -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \
1030 $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \
1031 && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
1032
1033 news-check: NEWS
1034 if sed -n $(news-check-lines-spec)p $(srcdir)/NEWS \
1035 | grep -E $(news-check-regexp) >/dev/null; then \
1036 :; \
1037 else \
1038 echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \
1039 exit 1; \
1040 fi
1041
1042 sc_makefile_TAB_only_indentation:
1043 @prohibit='^ [ ]{8}' \
1044 in_vc_files='akefile|\.mk$$' \
1045 halt='found TAB-8-space indentation' \
1046 $(_sc_search_regexp)
1047
1048 sc_m4_quote_check:
1049 @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \
1050 in_vc_files='(^configure\.ac|\.m4)$$' \
1051 halt='quote the first arg to AC_DEF*' \
1052 $(_sc_search_regexp)
1053
1054 fix_po_file_diag = \
1055 'you have changed the set of files with translatable diagnostics;\n\
1056 apply the above patch\n'
1057
1058 # Verify that all source files using _() are listed in po/POTFILES.in.
1059 po_file ?= $(srcdir)/po/POTFILES.in
1060 generated_files ?= $(srcdir)/lib/*.[ch]
1061 sc_po_check:
1062 @if test -f $(po_file); then \
1063 grep -E -v '^(#|$$)' $(po_file) \
1064 | grep -v '^src/false\.c$$' \
1065 | sed 's|\[type: gettext/glade\] ||' \
1066 | sort > $@-1; \
1067 files=; \
1068 for file in $$($(VC_LIST_EXCEPT)) $(generated_files); do \
1069 test -r $$file || continue; \
1070 case $$file in \
1071 *.m4|*.mk) continue ;; \
1072 *.?|*.??) ;; \
1073 *.xml) ;; \
1074 *) continue;; \
1075 esac; \
1076 case $$file in \
1077 *.[ch]) \
1078 base=`expr " $$file" : ' \(.*\)\..'`; \
1079 { test -f $$base.l || test -f $$base.y; } && continue;; \
1080 esac; \
1081 files="$$files $$file"; \
1082 done; \
1083 grep -E -l '(\b(N?_|gettext *)\([^)"]*("|$$))|(<interface>)' $$files \
1084 | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2; \
1085 diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \
1086 || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \
1087 rm -f $@-1 $@-2; \
1088 fi
1089
1090 # Sometimes it is useful to change the PATH environment variable
1091 # in Makefiles. When doing so, it's better not to use the Unix-centric
1092 # path separator of `:', but rather the automake-provided `$(PATH_SEPARATOR)'.
1093 msg = '$(ME): Do not use `:'\'' above; use $$(PATH_SEPARATOR) instead'
1094 sc_makefile_path_separator_check:
1095 @prohibit='PATH[=].*:' \
1096 in_vc_files='akefile|\.mk$$' \
1097 halt=$(msg) \
1098 $(_sc_search_regexp)
1099
1100 # Check that `make alpha' will not fail at the end of the process,
1101 # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release)
1102 # and is read-only.
1103 writable-files:
1104 if test -d $(release_archive_dir); then \
1105 for file in $(DIST_ARCHIVES); do \
1106 for p in ./ $(release_archive_dir)/; do \
1107 test -e $$p$$file || continue; \
1108 test -w $$p$$file \
1109 || { echo ERROR: $$p$$file is not writable; fail=1; }; \
1110 done; \
1111 done; \
1112 test "$$fail" && exit 1 || : ; \
1113 else :; \
1114 fi
1115
1116 v_etc_file = $(gnulib_dir)/lib/version-etc.c
1117 sample-test = tests/sample-test
1118 texi = doc/$(PACKAGE).texi
1119 # Make sure that the copyright date in $(v_etc_file) is up to date.
1120 # Do the same for the $(sample-test) and the main doc/.texi file.
1121 sc_copyright_check:
1122 @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \
1123 in_files=$(v_etc_file) \
1124 halt='out of date copyright in $(v_etc_file); update it' \
1125 $(_sc_search_regexp)
1126 @require='# Copyright \(C\) '$$(date +%Y)' Free' \
1127 in_vc_files=$(sample-test) \
1128 halt='out of date copyright in $(sample-test); update it' \
1129 $(_sc_search_regexp)
1130 @require='Copyright @copyright\{\} .*'$$(date +%Y)' Free' \
1131 in_vc_files=$(texi) \
1132 halt='out of date copyright in $(texi); update it' \
1133 $(_sc_search_regexp)
1134
1135 # If tests/help-version exists and seems to be new enough, assume that its
1136 # use of init.sh and path_prepend_ is correct, and ensure that every other
1137 # use of init.sh is identical.
1138 # This is useful because help-version cross-checks prog --version
1139 # with $(VERSION), which verifies that its path_prepend_ invocation
1140 # sets PATH correctly. This is an inexpensive way to ensure that
1141 # the other init.sh-using tests also get it right.
1142 _hv_file ?= $(srcdir)/tests/help-version
1143 _hv_regex_weak ?= ^ *\. .*/init\.sh"
1144 # Fix syntax-highlighters "
1145 _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh"
1146 sc_cross_check_PATH_usage_in_tests:
1147 @if test -f $(_hv_file); then \
1148 grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \
1149 || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \
1150 exit 0; }; \
1151 grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \
1152 || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \
1153 exit 1; }; \
1154 good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \
1155 grep -LFx "$$good" \
1156 $$(grep -lE '$(_hv_regex_weak)' $$($(VC_LIST_EXCEPT))) \
1157 | grep . && \
1158 { echo "$(ME): the above files use path_prepend_ inconsistently" \
1159 1>&2; exit 1; } || :; \
1160 fi
1161
1162 # #if HAVE_... will evaluate to false for any non numeric string.
1163 # That would be flagged by using -Wundef, however gnulib currently
1164 # tests many undefined macros, and so we can't enable that option.
1165 # So at least preclude common boolean strings as macro values.
1166 sc_Wundef_boolean:
1167 @prohibit='^#define.*(yes|no|true|false)$$' \
1168 in_files='$(CONFIG_INCLUDE)' \
1169 halt='Use 0 or 1 for macro values' \
1170 $(_sc_search_regexp)
1171
1172 # Even if you use pathmax.h to guarantee that PATH_MAX is defined, it might
1173 # not be constant, or might overflow a stack. In general, use PATH_MAX as
1174 # a limit, not an array or alloca size.
1175 sc_prohibit_path_max_allocation:
1176 @prohibit='(\balloca *\([^)]*|\[[^]]*)PATH_MAX' \
1177 halt='Avoid stack allocations of size PATH_MAX' \
1178 $(_sc_search_regexp)
1179
1180 sc_vulnerable_makefile_CVE-2009-4029:
1181 @prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \
1182 in_files=$$(find $(srcdir) -name Makefile.in) \
1183 halt=$$(printf '%s\n' \
1184 'the above files are vulnerable; beware of running' \
1185 ' "make dist*" rules, and upgrade to fixed automake' \
1186 ' see http://bugzilla.redhat.com/542609 for details') \
1187 $(_sc_search_regexp)
1188
1189 vc-diff-check:
1190 (unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || :
1191 if test -s vc-diffs; then \
1192 cat vc-diffs; \
1193 echo "Some files are locally modified:" 1>&2; \
1194 exit 1; \
1195 else \
1196 rm vc-diffs; \
1197 fi
1198
1199 rel-files = $(DIST_ARCHIVES)
1200
1201 gnulib_dir ?= $(srcdir)/gnulib
1202 gnulib-version = $$(cd $(gnulib_dir) && git describe)
1203 bootstrap-tools ?= autoconf,automake,gnulib
1204
1205 # If it's not already specified, derive the GPG key ID from
1206 # the signed tag we've just applied to mark this release.
1207 gpg_key_ID ?= \
1208 $$(git cat-file tag v$(VERSION) > .ann-sig \
1209 && gpgv .ann-sig - < /dev/null 2>&1 \
1210 | sed -n '/.*key ID \([0-9A-F]*\)/s//\1/p'; rm -f .ann-sig)
1211
1212 translation_project_ ?= coordinator@translationproject.org
1213
1214 # Make info-gnu the default only for a stable release.
1215 ifeq ($(RELEASE_TYPE),stable)
1216 announcement_Cc_ ?= $(translation_project_), $(PACKAGE_BUGREPORT)
1217 announcement_mail_headers_ ?= \
1218 To: info-gnu@gnu.org \
1219 Cc: $(announcement_Cc_) \
1220 Mail-Followup-To: $(PACKAGE_BUGREPORT)
1221 else
1222 announcement_Cc_ ?= $(translation_project_)
1223 announcement_mail_headers_ ?= \
1224 To: $(PACKAGE_BUGREPORT) \
1225 Cc: $(announcement_Cc_)
1226 endif
1227
1228 announcement: NEWS ChangeLog $(rel-files)
1229 @$(srcdir)/$(_build-aux)/announce-gen \
1230 --mail-headers='$(announcement_mail_headers_)' \
1231 --release-type=$(RELEASE_TYPE) \
1232 --package=$(PACKAGE) \
1233 --prev=$(PREV_VERSION) \
1234 --curr=$(VERSION) \
1235 --gpg-key-id=$(gpg_key_ID) \
1236 --news=$(srcdir)/NEWS \
1237 --bootstrap-tools=$(bootstrap-tools) \
1238 --gnulib-version=$(gnulib-version) \
1239 --no-print-checksums \
1240 $(addprefix --url-dir=, $(url_dir_list))
1241
1242 ## ---------------- ##
1243 ## Updating files. ##
1244 ## ---------------- ##
1245
1246 ftp-gnu = ftp://ftp.gnu.org/gnu
1247 www-gnu = http://www.gnu.org
1248
1249 upload_dest_dir_ ?= $(PACKAGE)
1250 emit_upload_commands:
1251 @echo =====================================
1252 @echo =====================================
1253 @echo "$(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \\"
1254 @echo " --to $(gnu_rel_host):$(upload_dest_dir_) \\"
1255 @echo " $(rel-files)"
1256 @echo '# send the ~/announce-$(my_distdir) e-mail'
1257 @echo =====================================
1258 @echo =====================================
1259
1260 define emit-commit-log
1261 printf '%s\n' 'maint: post-release administrivia' '' \
1262 '* NEWS: Add header line for next release.' \
1263 '* .prev-version: Record previous version.' \
1264 '* cfg.mk (old_NEWS_hash): Auto-update.'
1265 endef
1266
1267 .PHONY: no-submodule-changes
1268 no-submodule-changes:
1269 if test -d $(srcdir)/.git; then \
1270 diff=$$(cd $(srcdir) && git submodule -q foreach \
1271 git diff-index --name-only HEAD) \
1272 || exit 1; \
1273 case $$diff in '') ;; \
1274 *) echo '$(ME): submodule files are locally modified:'; \
1275 echo "$$diff"; exit 1;; esac; \
1276 else \
1277 : ; \
1278 fi
1279
1280 submodule-checks ?= no-submodule-changes public-submodule-commit
1281
1282 # Ensure that each sub-module commit we're using is public.
1283 # Without this, it is too easy to tag and release code that
1284 # cannot be built from a fresh clone.
1285 .PHONY: public-submodule-commit
1286 public-submodule-commit:
1287 $(AM_V_GEN)if test -d $(srcdir)/.git; then \
1288 cd $(srcdir) && \
1289 git submodule --quiet foreach test '$$(git rev-parse $$sha1)' \
1290 = '$$(git merge-base origin $$sha1)' \
1291 || { echo '$(ME): found non-public submodule commit' >&2; \
1292 exit 1; }; \
1293 else \
1294 : ; \
1295 fi
1296 # This rule has a high enough utility/cost ratio that it should be a
1297 # dependent of "check" by default. However, some of us do occasionally
1298 # commit a temporary change that deliberately points to a non-public
1299 # submodule commit, and want to be able to use rules like "make check".
1300 # In that case, run e.g., "make check gl_public_submodule_commit="
1301 # to disable this test.
1302 gl_public_submodule_commit ?= public-submodule-commit
1303 check: $(gl_public_submodule_commit)
1304
1305 .PHONY: alpha beta stable
1306 ALL_RECURSIVE_TARGETS += alpha beta stable
1307 alpha beta stable: $(local-check) writable-files $(submodule-checks)
1308 test $@ = stable \
1309 && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
1310 || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
1311 || :
1312 $(MAKE) vc-diff-check
1313 $(MAKE) news-check
1314 $(MAKE) distcheck
1315 $(MAKE) dist XZ_OPT=-9ev
1316 $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
1317 $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
1318
1319 # Override this in cfg.mk if you follow different procedures.
1320 release-prep-hook ?= release-prep
1321
1322 gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?]
1323 .PHONY: release-prep
1324 release-prep:
1325 case $$RELEASE_TYPE in alpha|beta|stable) ;; \
1326 *) echo "invalid RELEASE_TYPE: $$RELEASE_TYPE" 1>&2; exit 1;; esac
1327 $(MAKE) --no-print-directory -s announcement > ~/announce-$(my_distdir)
1328 if test -d $(release_archive_dir); then \
1329 ln $(rel-files) $(release_archive_dir); \
1330 chmod a-w $(rel-files); \
1331 fi
1332 echo $(VERSION) > $(prev_version_file)
1333 $(MAKE) update-NEWS-hash
1334 perl -pi -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' NEWS
1335 $(emit-commit-log) > .ci-msg
1336 $(VC) commit -F .ci-msg -a
1337 rm .ci-msg
1338
1339 # Override this with e.g., -s $(srcdir)/some_other_name.texi
1340 # if the default $(PACKAGE)-derived name doesn't apply.
1341 gendocs_options_ ?=
1342
1343 .PHONY: web-manual
1344 web-manual:
1345 @test -z "$(manual_title)" \
1346 && { echo define manual_title in cfg.mk 1>&2; exit 1; } || :
1347 @cd '$(srcdir)/doc'; \
1348 $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \
1349 -o '$(abs_builddir)/doc/manual' \
1350 --email $(PACKAGE_BUGREPORT) $(PACKAGE) \
1351 "$(PACKAGE_NAME) - $(manual_title)"
1352 @echo " *** Upload the doc/manual directory to web-cvs."
1353
1354 # Code Coverage
1355
1356 init-coverage:
1357 $(MAKE) $(AM_MAKEFLAGS) clean
1358 lcov --directory . --zerocounters
1359
1360 COVERAGE_CCOPTS ?= "-g --coverage"
1361 COVERAGE_OUT ?= doc/coverage
1362
1363 build-coverage:
1364 $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS)
1365 $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check
1366 mkdir -p $(COVERAGE_OUT)
1367 lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \
1368 --capture
1369
1370 gen-coverage:
1371 genhtml --output-directory $(COVERAGE_OUT) \
1372 $(COVERAGE_OUT)/$(PACKAGE).info \
1373 --highlight --frames --legend \
1374 --title "$(PACKAGE_NAME)"
1375
1376 coverage: init-coverage build-coverage gen-coverage
1377
1378 # Update gettext files.
1379 PACKAGE ?= $(shell basename $(PWD))
1380 PO_DOMAIN ?= $(PACKAGE)
1381 POURL = http://translationproject.org/latest/$(PO_DOMAIN)/
1382 PODIR ?= po
1383 refresh-po:
1384 rm -f $(PODIR)/*.po && \
1385 echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \
1386 wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \
1387 echo 'en@boldquot' > $(PODIR)/LINGUAS && \
1388 echo 'en@quot' >> $(PODIR)/LINGUAS && \
1389 ls $(PODIR)/*.po | sed 's/\.po//' | sed 's,$(PODIR)/,,' | sort >> $(PODIR)/LINGUAS
1390
1391 # Running indent once is not idempotent, but running it twice is.
1392 INDENT_SOURCES ?= $(C_SOURCES)
1393 .PHONY: indent
1394 indent:
1395 indent $(INDENT_SOURCES)
1396 indent $(INDENT_SOURCES)
1397
1398 # If you want to set UPDATE_COPYRIGHT_* environment variables,
1399 # put the assignments in this variable.
1400 update-copyright-env ?=
1401
1402 # Run this rule once per year (usually early in January)
1403 # to update all FSF copyright year lists in your project.
1404 # If you have an additional project-specific rule,
1405 # add it in cfg.mk along with a line 'update-copyright: prereq'.
1406 # By default, exclude all variants of COPYING; you can also
1407 # add exemptions (such as ChangeLog..* for rotated change logs)
1408 # in the file .x-update-copyright.
1409 .PHONY: update-copyright
1410 update-copyright:
1411 grep -l -w Copyright \
1412 $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \
1413 | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@
1414
1415 # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not
1416 # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS.
1417
1418 # NOTE: to override any _gl_TS_* default value, you must
1419 # define the variable(s) using "export" in cfg.mk.
1420 _gl_TS_dir ?= src
1421
1422 ALL_RECURSIVE_TARGETS += sc_tight_scope
1423 sc_tight_scope: tight-scope.mk
1424 @fail=0; \
1425 if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \
1426 > /dev/null \
1427 && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \
1428 > /dev/null 2>&1; then \
1429 echo '$(ME): skipping $@'; \
1430 else \
1431 $(MAKE) -s -C $(_gl_TS_dir) \
1432 -f Makefile \
1433 -f $(abs_top_srcdir)/cfg.mk \
1434 -f $(abs_top_builddir)/$< \
1435 _gl_tight_scope \
1436 || fail=1; \
1437 fi; \
1438 rm -f $<; \
1439 exit $$fail
1440
1441 tight-scope.mk: $(ME)
1442 @rm -f $@ $@-t
1443 @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(ME) > $@-t
1444 @chmod a=r $@-t && mv $@-t $@
1445
1446 ifeq (a,b)
1447 # TS-start
1448
1449 # Most functions should have static scope.
1450 # Any that don't must be marked with `extern', but `main'
1451 # and `usage' are exceptions: they're always extern, but
1452 # do not need to be marked. Symbols matching `__.*' are
1453 # reserved by the compiler, so are automatically excluded below.
1454 _gl_TS_unmarked_extern_functions ?= main usage
1455 _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/
1456
1457 # If your project uses a macro like "XTERN", then put
1458 # the following in cfg.mk to override this default:
1459 # export _gl_TS_extern = extern|XTERN
1460 _gl_TS_extern ?= extern
1461
1462 # The second nm|grep checks for file-scope variables with `extern' scope.
1463 # Without gnulib's progname module, you might put program_name here.
1464 # Symbols matching `__.*' are reserved by the compiler,
1465 # so are automatically excluded below.
1466 _gl_TS_unmarked_extern_vars ?=
1467
1468 # NOTE: the _match variables are perl expressions -- not mere regular
1469 # expressions -- so that you can extend them to match other patterns
1470 # and easily extract matched variable names.
1471 # For example, if your project declares some global variables via
1472 # a macro like this: GLOBAL(type, var_name, initializer), then you
1473 # can override this definition to automatically extract those names:
1474 # export _gl_TS_var_match = \
1475 # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/
1476 _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/
1477
1478 # The names of object files in (or relative to) $(_gl_TS_dir).
1479 _gl_TS_obj_files ?= *.$(OBJEXT)
1480
1481 # Files in which to search for the one-line style extern declarations.
1482 # $(_gl_TS_dir)-relative.
1483 _gl_TS_headers ?= $(noinst_HEADERS)
1484
1485 .PHONY: _gl_tight_scope
1486 _gl_tight_scope: $(bin_PROGRAMS)
1487 t=exceptions-$$$$; \
1488 trap 's=$$?; rm -f $$t; exit $$s' 0; \
1489 for sig in 1 2 3 13 15; do \
1490 eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \
1491 done; \
1492 src=`for f in $(SOURCES); do \
1493 test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
1494 hdr=`for f in $(_gl_TS_headers); do \
1495 test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \
1496 ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \
1497 grep -h -A1 '^extern .*[^;]$$' $$src \
1498 | grep -vE '^(extern |--)' | sed 's/ .*//'; \
1499 perl -lne \
1500 '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr; \
1501 ) | sort -u > $$t; \
1502 nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \
1503 && { echo the above functions should have static scope >&2; \
1504 exit 1; } || : ; \
1505 ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \
1506 perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' $$hdr *.h \
1507 ) | sort -u > $$t; \
1508 nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p' \
1509 | sort -u | grep -Ev -f $$t \
1510 && { echo the above variables should have static scope >&2; \
1511 exit 1; } || :
1512 # TS-end
1513 endif
0 NULL =
01
1 man_MANS = virt-viewer.1
2 man_MANS = \
3 remote-viewer.1 \
4 virt-viewer.1 \
5 $(NULL)
26
3 EXTRA_DIST = virt-viewer.pod
7 EXTRA_DIST = \
8 remote-viewer.pod \
9 virt-viewer.pod \
10 $(NULL)
11
412 DISTCLEANFILES = $(man_MANS)
513
614 %.1: %.pod
715 pod2man $< > $@
16
17 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
5 # Inc.
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
65 # This Makefile.in is free software; the Free Software Foundation
76 # gives unlimited permission to copy and/or distribute it,
87 # with or without modifications, as long as this notice is preserved.
1413
1514 @SET_MAKE@
1615 VPATH = @srcdir@
16 am__make_dryrun = \
17 { \
18 am__dry=no; \
19 case $$MAKEFLAGS in \
20 *\\[\ \ ]*) \
21 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
22 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
23 *) \
24 for am__flg in $$MAKEFLAGS; do \
25 case $$am__flg in \
26 *=*|--*) ;; \
27 *n*) am__dry=yes; break;; \
28 esac; \
29 done;; \
30 esac; \
31 test $$am__dry = yes; \
32 }
1733 pkgdatadir = $(datadir)/@PACKAGE@
1834 pkgincludedir = $(includedir)/@PACKAGE@
1935 pkglibdir = $(libdir)/@PACKAGE@
3551 subdir = man
3652 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3753 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
38 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
39 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
40 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
41 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
54 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
58 $(top_srcdir)/configure.ac
4259 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4360 $(ACLOCAL_M4)
4461 mkinstalldirs = $(install_sh) -d
4562 CONFIG_HEADER = $(top_builddir)/config.h
4663 CONFIG_CLEAN_FILES =
4764 CONFIG_CLEAN_VPATH_FILES =
48 AM_V_GEN = $(am__v_GEN_$(V))
49 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
50 am__v_GEN_0 = @echo " GEN " $@;
51 AM_V_at = $(am__v_at_$(V))
52 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
65 AM_V_P = $(am__v_P_@AM_V@)
66 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
67 am__v_P_0 = false
68 am__v_P_1 = :
69 AM_V_GEN = $(am__v_GEN_@AM_V@)
70 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
71 am__v_GEN_0 = @echo " GEN " $@;
72 am__v_GEN_1 =
73 AM_V_at = $(am__v_at_@AM_V@)
74 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
5375 am__v_at_0 = @
76 am__v_at_1 =
5477 SOURCES =
5578 DIST_SOURCES =
79 am__can_run_installinfo = \
80 case $$AM_UPDATE_INFO_DIR in \
81 n|no|NO) false;; \
82 *) (install-info --version) >/dev/null 2>&1;; \
83 esac
5684 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
5785 am__vpath_adj = case $$p in \
5886 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
74102 am__base_list = \
75103 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
76104 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
105 am__uninstall_files_from_dir = { \
106 test -z "$$files" \
107 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
108 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
109 $(am__cd) "$$dir" && rm -f $$files; }; \
110 }
77111 man1dir = $(mandir)/man1
78112 am__installdirs = "$(DESTDIR)$(man1dir)"
79113 NROFF = nroff
88122 AUTOHEADER = @AUTOHEADER@
89123 AUTOMAKE = @AUTOMAKE@
90124 AWK = @AWK@
125 CATALOGS = @CATALOGS@
126 CATOBJEXT = @CATOBJEXT@
91127 CC = @CC@
92128 CCDEPMODE = @CCDEPMODE@
93129 CFLAGS = @CFLAGS@
111147 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
112148 GLIB2_CFLAGS = @GLIB2_CFLAGS@
113149 GLIB2_LIBS = @GLIB2_LIBS@
150 GLIB_MKENUMS = @GLIB_MKENUMS@
151 GMOFILES = @GMOFILES@
114152 GMSGFMT = @GMSGFMT@
115153 GREP = @GREP@
116154 GTK_API_VERSION = @GTK_API_VERSION@
120158 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
121159 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
122160 GTK_VNC_LIBS = @GTK_VNC_LIBS@
161 ICOTOOL = @ICOTOOL@
123162 INSTALL = @INSTALL@
124163 INSTALL_DATA = @INSTALL_DATA@
125164 INSTALL_PROGRAM = @INSTALL_PROGRAM@
126165 INSTALL_SCRIPT = @INSTALL_SCRIPT@
127166 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
167 INSTOBJEXT = @INSTOBJEXT@
168 INTLLIBS = @INTLLIBS@
128169 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
129170 INTLTOOL_MERGE = @INTLTOOL_MERGE@
130171 INTLTOOL_PERL = @INTLTOOL_PERL@
131172 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
173 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
174 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
175 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
176 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
132177 LD = @LD@
133178 LDFLAGS = @LDFLAGS@
134179 LIBOBJS = @LIBOBJS@
144189 MAKEINFO = @MAKEINFO@
145190 MANIFEST_TOOL = @MANIFEST_TOOL@
146191 MKDIR_P = @MKDIR_P@
192 MKINSTALLDIRS = @MKINSTALLDIRS@
147193 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
148194 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
149195 MSGFMT = @MSGFMT@
196 MSGFMT_OPTS = @MSGFMT_OPTS@
150197 MSGMERGE = @MSGMERGE@
151198 NM = @NM@
152199 NMEDIT = @NMEDIT@
167214 PKG_CONFIG = @PKG_CONFIG@
168215 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
169216 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
217 POFILES = @POFILES@
218 POSUB = @POSUB@
219 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
220 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
170221 RANLIB = @RANLIB@
171222 SED = @SED@
172223 SET_MAKE = @SET_MAKE@
173224 SHELL = @SHELL@
225 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
226 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
174227 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
175228 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
229 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
230 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
176231 STRIP = @STRIP@
177232 USE_NLS = @USE_NLS@
178233 VERSION = @VERSION@
179234 WARN_CFLAGS = @WARN_CFLAGS@
235 WINDRES = @WINDRES@
180236 XGETTEXT = @XGETTEXT@
181237 abs_builddir = @abs_builddir@
182238 abs_srcdir = @abs_srcdir@
211267 includedir = @includedir@
212268 infodir = @infodir@
213269 install_sh = @install_sh@
270 intltool__v_merge_options_ = @intltool__v_merge_options_@
271 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
214272 libdir = @libdir@
215273 libexecdir = @libexecdir@
216274 localedir = @localedir@
230288 top_build_prefix = @top_build_prefix@
231289 top_builddir = @top_builddir@
232290 top_srcdir = @top_srcdir@
233 man_MANS = virt-viewer.1
234 EXTRA_DIST = virt-viewer.pod
291 NULL =
292 man_MANS = \
293 remote-viewer.1 \
294 virt-viewer.1 \
295 $(NULL)
296
297 EXTRA_DIST = \
298 remote-viewer.pod \
299 virt-viewer.pod \
300 $(NULL)
301
235302 DISTCLEANFILES = $(man_MANS)
236303 all: all-am
237304
274341 -rm -rf .libs _libs
275342 install-man1: $(man_MANS)
276343 @$(NORMAL_INSTALL)
277 test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
278 @list=''; test -n "$(man1dir)" || exit 0; \
279 { for i in $$list; do echo "$$i"; done; \
280 l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
281 sed -n '/\.1[a-z]*$$/p'; \
344 @list1=''; \
345 list2='$(man_MANS)'; \
346 test -n "$(man1dir)" \
347 && test -n "`echo $$list1$$list2`" \
348 || exit 0; \
349 echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
350 $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
351 { for i in $$list1; do echo "$$i"; done; \
352 if test -n "$$list2"; then \
353 for i in $$list2; do echo "$$i"; done \
354 | sed -n '/\.1[a-z]*$$/p'; \
355 fi; \
282356 } | while read p; do \
283357 if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
284358 echo "$$d$$p"; echo "$$p"; \
307381 sed -n '/\.1[a-z]*$$/p'; \
308382 } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
309383 -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
310 test -z "$$files" || { \
311 echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
312 cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
384 dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
313385 tags: TAGS
314386 TAGS:
315387
316388 ctags: CTAGS
317389 CTAGS:
390
391 cscope cscopelist:
318392
319393
320394 distdir: $(DISTFILES)
324398 if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
325399 if test -n "$$list" && \
326400 grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
327 echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
401 echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
328402 grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
329403 echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
330 echo " typically \`make maintainer-clean' will remove them" >&2; \
404 echo " typically 'make maintainer-clean' will remove them" >&2; \
331405 exit 1; \
332406 else :; fi; \
333407 else :; fi
377451
378452 installcheck: installcheck-am
379453 install-strip:
380 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
381 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
382 `test -z '$(STRIP)' || \
383 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
454 if test -z '$(STRIP)'; then \
455 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
456 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
457 install; \
458 else \
459 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
460 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
461 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
462 fi
384463 mostlyclean-generic:
385464
386465 clean-generic:
479558 %.1: %.pod
480559 pod2man $< > $@
481560
561 -include $(top_srcdir)/git.mk
562
482563 # Tell versions [3.59,3.63) of GNU make to not export all variables.
483564 # Otherwise a system limit (for SysV at least) may be exceeded.
484565 .NOEXPORT:
0
1 =head1 NAME
2
3 remote-viewer - a simple remote desktop client
4
5 =head1 SYNOPSIS
6
7 B<remote-viewer> [OPTIONS] URI
8
9 =head1 DESCRIPTION
10
11 B<remote-viewer> is a simple remote display client. The supported
12 protocols are SPICE and VNC.
13
14 =head1 OPTIONS
15
16 The following options are accepted when running C<remote-viewer>:
17
18 =over 4
19
20 =item -h, --help
21
22 Display command line help summary
23
24 =item -V, --version
25
26 Display program version number
27
28 =item -v, --verbose
29
30 Display information about the connection
31
32 =item -z PCT, --zoom=PCT
33
34 Zoom level of the display window in percentage. Range 10-200.
35
36 =item -f, --full-screen
37
38 Start with the window maximised to fullscreen
39
40 =item --spice-controller
41
42 Use the SPICE controller to initialize the connection with the SPICE
43 server. This option is used by the SPICE browser addons to allow web
44 page to start a client.
45
46 =item --debug
47
48 Print debugging information
49
50 =back
51
52 =head1 EXAMPLES
53
54 To connect to SPICE server on host "makai" with port 5900
55
56 remote-viewer spice://makai:5900
57
58 To connect to VNC server on host "tsingy" with port 5900
59
60 remote-viewer vnc://tsingy:5900
61
62 =head1 BUGS
63
64 Report bugs to the mailing list C<http://www.redhat.com/mailman/listinfo/virt-tools-list>
65
66 =head1 COPYRIGHT
67
68 Copyright (C) 2012 Red Hat, Inc., and various contributors.
69 This is free software. You may redistribute copies of it under the terms of the GNU General
70 Public License C<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent
71 permitted by law.
72
73 =head1 SEE ALSO
74
75 C<virt-viewer(1)>, the project website C<http://virt-manager.org>
76
77 =cut
5656 Do not attempt to tunnel the console over SSH, even if the main connection URI
5757 used SSH.
5858
59 =item -f, --fullscreen
59 =item -a, --attach
60
61 Use libvirt to directly attach to a local display, instead of making a
62 TCP/UNIX socket connection. This avoids the need to authentication with
63 the remote display, if authentication with libvirt is already allowed.
64 This option does not work with remote displays.
65
66 =item -f, --full-screen
6067
6168 Start with the window maximised to fullscreen
6269
96103
97104 =head1 BUGS
98105
99 Report bugs to the mailing list C<http://www.redhat.com/mailman/listinfo/et-mgmt-tools>
106 Report bugs to the mailing list C<http://www.redhat.com/mailman/listinfo/virt-tools-list>
100107
101108 =head1 COPYRIGHT
102109
103 Copyright (C) 2007-2008 Red Hat, Inc, and various contributors.
110 Copyright (C) 2007-2008 Red Hat, Inc., and various contributors.
104111 This is free software. You may redistribute copies of it under the terms of the GNU General
105112 Public License C<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent
106113 permitted by law.
110117 C<virsh(1)>, C<virt-manager(1)>, the project website C<http://virt-manager.org>
111118
112119 =cut
113
0 %{?mingw_package_hedder}
1
2 Name: mingw-virt-viewer
3 Version: @VERSION@
4 Release: 1%{?dist}%{?extra_release}
5 Summary: MinGW Windows virt-viewer console application
6
7 License: GPLv2+
8 Group: Applications/Internet
9 URL: http://virt-manager.org/
10 Source0: ftp://virt-manager.org/downloads/virt-viewer/virt-viewer-%{version}.tar.gz
11
12 BuildRequires: mingw32-filesystem >= 23
13 BuildRequires: mingw64-filesystem >= 23
14 BuildRequires: mingw32-glib2 >= 2.22
15 BuildRequires: mingw64-glib2 >= 2.22
16 BuildRequires: mingw32-gtk3 >= 3.0.0
17 BuildRequires: mingw64-gtk3 >= 3.0.0
18 BuildRequires: mingw32-libvirt >= 0.9.7
19 BuildRequires: mingw64-libvirt >= 0.9.7
20 BuildRequires: mingw32-libxml2
21 BuildRequires: mingw64-libxml2
22 BuildRequires: mingw32-gtk-vnc2 >= 0.4.3
23 BuildRequires: mingw64-gtk-vnc2 >= 0.4.3
24 BuildRequires: pkgconfig
25
26 BuildArch: noarch
27
28 %package -n mingw32-virt-viewer
29 Summary: MinGW Windows virt-viewer console application
30 Group: Applications/Internet
31
32 %package -n mingw64-virt-viewer
33 Summary: MinGW Windows virt-viewer console application
34 Group: Applications/Internet
35
36 %description
37 MinGW Windows virt-viewer console application
38
39 %description -n mingw32-virt-viewer
40 MinGW Windows virt-viewer console application
41
42 %description -n mingw64-virt-viewer
43 MinGW Windows virt-viewer console application
44
45 %prep
46 %setup -q -n virt-viewer-%{version}
47
48
49 %build
50 %mingw_configure --with-gtk=3.0
51 %mingw_make %{?_smp_mflags} V=1
52
53
54 %install
55 %mingw_make_install DESTDIR=$RPM_BUILD_ROOT
56
57 %find_lang virt-viewer
58
59 # Don't need the XDG desktop files on Windows
60 find $RPM_BUILD_ROOT -name "*.desktop" -delete
61
62 %clean
63 rm -rf $RPM_BUILD_ROOT
64
65
66 %files -n mingw32-virt-viewer -f virt-viewer.lang
67 %defattr(-,root,root)
68 %{mingw32_bindir}/virt-viewer.exe
69 %{mingw32_bindir}/remote-viewer.exe
70 %{mingw32_bindir}/windows-cmdline-wrapper.exe
71
72 %dir %{mingw32_datadir}/virt-viewer/
73 %dir %{mingw32_datadir}/virt-viewer/ui/
74 %{mingw32_datadir}/virt-viewer/ui/virt-viewer.xml
75 %{mingw32_datadir}/virt-viewer/ui/virt-viewer-about.xml
76 %{mingw32_datadir}/virt-viewer/ui/virt-viewer-auth.xml
77 %{mingw32_datadir}/icons/hicolor/*/apps/*
78
79 %{mingw32_mandir}/man1/virt-viewer.1*
80 %{mingw32_mandir}/man1/remote-viewer.1*
81
82 %files -n mingw64-virt-viewer -f virt-viewer.lang
83 %defattr(-,root,root)
84 %{mingw64_bindir}/virt-viewer.exe
85 %{mingw64_bindir}/remote-viewer.exe
86 %{mingw64_bindir}/windows-cmdline-wrapper.exe
87
88 %dir %{mingw64_datadir}/virt-viewer/
89 %dir %{mingw64_datadir}/virt-viewer/ui/
90 %{mingw64_datadir}/virt-viewer/ui/virt-viewer.xml
91 %{mingw64_datadir}/virt-viewer/ui/virt-viewer-about.xml
92 %{mingw64_datadir}/virt-viewer/ui/virt-viewer-auth.xml
93 %{mingw64_datadir}/icons/hicolor/*/apps/*
94
95 %{mingw64_mandir}/man1/virt-viewer.1*
96 %{mingw64_mandir}/man1/remote-viewer.1*
97
98 %changelog
+0
-67
mingw32-virt-viewer.spec.in less more
0 %define __strip %{_mingw32_strip}
1 %define __objdump %{_mingw32_objdump}
2 %define _use_internal_dependency_generator 0
3 %define __find_requires %{_mingw32_findrequires}
4 %define __find_provides %{_mingw32_findprovides}
5
6 Name: mingw32-virt-viewer
7 Version: @VERSION@
8 Release: 1%{?dist}%{?extra_release}
9 Summary: MinGW Windows virt-viewer console application
10
11 License: LGPLv2+
12 Group: Development/Libraries
13 URL: http://virt-manager.org/
14 Source0: ftp://virt-manager.org/downloads/virt-viewer/virt-viewer-%{version}.tar.gz
15 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
16
17 BuildRequires: mingw32-filesystem >= 23
18 BuildRequires: mingw32-gtk2 >= 2.12.0
19 BuildRequires: mingw32-libvirt >= 0.6.0
20 BuildRequires: mingw32-libxml2
21 BuildRequires: mingw32-gtk-vnc >= 0.3.8
22 BuildRequires: pkgconfig
23
24 BuildArch: noarch
25
26
27 %description
28 MinGW Windows virt-viewer console application
29
30
31 %prep
32 %setup -q -n virt-viewer-%{version}
33
34
35 %build
36 %{_mingw32_configure}
37 make
38
39
40 %install
41 rm -rf $RPM_BUILD_ROOT
42
43 make DESTDIR=$RPM_BUILD_ROOT install
44
45 %find_lang virt-viewer
46
47 %clean
48 rm -rf $RPM_BUILD_ROOT
49
50
51 %files -f virt-viewer.lang
52 %defattr(-,root,root)
53 %{_mingw32_bindir}/virt-viewer.exe
54
55 %dir %{_mingw32_datadir}/virt-viewer/
56 %dir %{_mingw32_datadir}/virt-viewer/ui/
57 %{_mingw32_datadir}/virt-viewer/ui/virt-viewer.xml
58 %{_mingw32_datadir}/virt-viewer/ui/virt-viewer-about.xml
59 %{_mingw32_datadir}/virt-viewer/ui/virt-viewer-auth.xml
60
61 %{_mingw32_mandir}/man1/virt-viewer.1*
62
63 %changelog
64 * Fri Nov 28 2008 Daniel P. Berrange <berrange@redhat.com> - 0.0.4-1
65 - Initial release
66
+0
-376
missing less more
0 #! /bin/sh
1 # Common stub for a few missing GNU programs while installing.
2
3 scriptversion=2009-04-28.21; # UTC
4
5 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
6 # 2008, 2009 Free Software Foundation, Inc.
7 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
8
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2, or (at your option)
12 # any later version.
13
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
18
19 # You should have received a copy of the GNU General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program.
26
27 if test $# -eq 0; then
28 echo 1>&2 "Try \`$0 --help' for more information"
29 exit 1
30 fi
31
32 run=:
33 sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
34 sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
35
36 # In the cases where this matters, `missing' is being run in the
37 # srcdir already.
38 if test -f configure.ac; then
39 configure_ac=configure.ac
40 else
41 configure_ac=configure.in
42 fi
43
44 msg="missing on your system"
45
46 case $1 in
47 --run)
48 # Try to run requested program, and just exit if it succeeds.
49 run=
50 shift
51 "$@" && exit 0
52 # Exit code 63 means version mismatch. This often happens
53 # when the user try to use an ancient version of a tool on
54 # a file that requires a minimum version. In this case we
55 # we should proceed has if the program had been absent, or
56 # if --run hadn't been passed.
57 if test $? = 63; then
58 run=:
59 msg="probably too old"
60 fi
61 ;;
62
63 -h|--h|--he|--hel|--help)
64 echo "\
65 $0 [OPTION]... PROGRAM [ARGUMENT]...
66
67 Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
68 error status if there is no known handling for PROGRAM.
69
70 Options:
71 -h, --help display this help and exit
72 -v, --version output version information and exit
73 --run try to run the given command, and emulate it if it fails
74
75 Supported PROGRAM values:
76 aclocal touch file \`aclocal.m4'
77 autoconf touch file \`configure'
78 autoheader touch file \`config.h.in'
79 autom4te touch the output file, or create a stub one
80 automake touch all \`Makefile.in' files
81 bison create \`y.tab.[ch]', if possible, from existing .[ch]
82 flex create \`lex.yy.c', if possible, from existing .c
83 help2man touch the output file
84 lex create \`lex.yy.c', if possible, from existing .c
85 makeinfo touch the output file
86 tar try tar, gnutar, gtar, then tar without non-portable flags
87 yacc create \`y.tab.[ch]', if possible, from existing .[ch]
88
89 Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
90 \`g' are ignored when checking the name.
91
92 Send bug reports to <bug-automake@gnu.org>."
93 exit $?
94 ;;
95
96 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
97 echo "missing $scriptversion (GNU Automake)"
98 exit $?
99 ;;
100
101 -*)
102 echo 1>&2 "$0: Unknown \`$1' option"
103 echo 1>&2 "Try \`$0 --help' for more information"
104 exit 1
105 ;;
106
107 esac
108
109 # normalize program name to check for.
110 program=`echo "$1" | sed '
111 s/^gnu-//; t
112 s/^gnu//; t
113 s/^g//; t'`
114
115 # Now exit if we have it, but it failed. Also exit now if we
116 # don't have it and --version was passed (most likely to detect
117 # the program). This is about non-GNU programs, so use $1 not
118 # $program.
119 case $1 in
120 lex*|yacc*)
121 # Not GNU programs, they don't have --version.
122 ;;
123
124 tar*)
125 if test -n "$run"; then
126 echo 1>&2 "ERROR: \`tar' requires --run"
127 exit 1
128 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
129 exit 1
130 fi
131 ;;
132
133 *)
134 if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
135 # We have it, but it failed.
136 exit 1
137 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
138 # Could not run --version or --help. This is probably someone
139 # running `$TOOL --version' or `$TOOL --help' to check whether
140 # $TOOL exists and not knowing $TOOL uses missing.
141 exit 1
142 fi
143 ;;
144 esac
145
146 # If it does not exist, or fails to run (possibly an outdated version),
147 # try to emulate it.
148 case $program in
149 aclocal*)
150 echo 1>&2 "\
151 WARNING: \`$1' is $msg. You should only need it if
152 you modified \`acinclude.m4' or \`${configure_ac}'. You might want
153 to install the \`Automake' and \`Perl' packages. Grab them from
154 any GNU archive site."
155 touch aclocal.m4
156 ;;
157
158 autoconf*)
159 echo 1>&2 "\
160 WARNING: \`$1' is $msg. You should only need it if
161 you modified \`${configure_ac}'. You might want to install the
162 \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
163 archive site."
164 touch configure
165 ;;
166
167 autoheader*)
168 echo 1>&2 "\
169 WARNING: \`$1' is $msg. You should only need it if
170 you modified \`acconfig.h' or \`${configure_ac}'. You might want
171 to install the \`Autoconf' and \`GNU m4' packages. Grab them
172 from any GNU archive site."
173 files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
174 test -z "$files" && files="config.h"
175 touch_files=
176 for f in $files; do
177 case $f in
178 *:*) touch_files="$touch_files "`echo "$f" |
179 sed -e 's/^[^:]*://' -e 's/:.*//'`;;
180 *) touch_files="$touch_files $f.in";;
181 esac
182 done
183 touch $touch_files
184 ;;
185
186 automake*)
187 echo 1>&2 "\
188 WARNING: \`$1' is $msg. You should only need it if
189 you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
190 You might want to install the \`Automake' and \`Perl' packages.
191 Grab them from any GNU archive site."
192 find . -type f -name Makefile.am -print |
193 sed 's/\.am$/.in/' |
194 while read f; do touch "$f"; done
195 ;;
196
197 autom4te*)
198 echo 1>&2 "\
199 WARNING: \`$1' is needed, but is $msg.
200 You might have modified some files without having the
201 proper tools for further handling them.
202 You can get \`$1' as part of \`Autoconf' from any GNU
203 archive site."
204
205 file=`echo "$*" | sed -n "$sed_output"`
206 test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
207 if test -f "$file"; then
208 touch $file
209 else
210 test -z "$file" || exec >$file
211 echo "#! /bin/sh"
212 echo "# Created by GNU Automake missing as a replacement of"
213 echo "# $ $@"
214 echo "exit 0"
215 chmod +x $file
216 exit 1
217 fi
218 ;;
219
220 bison*|yacc*)
221 echo 1>&2 "\
222 WARNING: \`$1' $msg. You should only need it if
223 you modified a \`.y' file. You may need the \`Bison' package
224 in order for those modifications to take effect. You can get
225 \`Bison' from any GNU archive site."
226 rm -f y.tab.c y.tab.h
227 if test $# -ne 1; then
228 eval LASTARG="\${$#}"
229 case $LASTARG in
230 *.y)
231 SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
232 if test -f "$SRCFILE"; then
233 cp "$SRCFILE" y.tab.c
234 fi
235 SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
236 if test -f "$SRCFILE"; then
237 cp "$SRCFILE" y.tab.h
238 fi
239 ;;
240 esac
241 fi
242 if test ! -f y.tab.h; then
243 echo >y.tab.h
244 fi
245 if test ! -f y.tab.c; then
246 echo 'main() { return 0; }' >y.tab.c
247 fi
248 ;;
249
250 lex*|flex*)
251 echo 1>&2 "\
252 WARNING: \`$1' is $msg. You should only need it if
253 you modified a \`.l' file. You may need the \`Flex' package
254 in order for those modifications to take effect. You can get
255 \`Flex' from any GNU archive site."
256 rm -f lex.yy.c
257 if test $# -ne 1; then
258 eval LASTARG="\${$#}"
259 case $LASTARG in
260 *.l)
261 SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
262 if test -f "$SRCFILE"; then
263 cp "$SRCFILE" lex.yy.c
264 fi
265 ;;
266 esac
267 fi
268 if test ! -f lex.yy.c; then
269 echo 'main() { return 0; }' >lex.yy.c
270 fi
271 ;;
272
273 help2man*)
274 echo 1>&2 "\
275 WARNING: \`$1' is $msg. You should only need it if
276 you modified a dependency of a manual page. You may need the
277 \`Help2man' package in order for those modifications to take
278 effect. You can get \`Help2man' from any GNU archive site."
279
280 file=`echo "$*" | sed -n "$sed_output"`
281 test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
282 if test -f "$file"; then
283 touch $file
284 else
285 test -z "$file" || exec >$file
286 echo ".ab help2man is required to generate this page"
287 exit $?
288 fi
289 ;;
290
291 makeinfo*)
292 echo 1>&2 "\
293 WARNING: \`$1' is $msg. You should only need it if
294 you modified a \`.texi' or \`.texinfo' file, or any other file
295 indirectly affecting the aspect of the manual. The spurious
296 call might also be the consequence of using a buggy \`make' (AIX,
297 DU, IRIX). You might want to install the \`Texinfo' package or
298 the \`GNU make' package. Grab either from any GNU archive site."
299 # The file to touch is that specified with -o ...
300 file=`echo "$*" | sed -n "$sed_output"`
301 test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
302 if test -z "$file"; then
303 # ... or it is the one specified with @setfilename ...
304 infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
305 file=`sed -n '
306 /^@setfilename/{
307 s/.* \([^ ]*\) *$/\1/
308 p
309 q
310 }' $infile`
311 # ... or it is derived from the source name (dir/f.texi becomes f.info)
312 test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
313 fi
314 # If the file does not exist, the user really needs makeinfo;
315 # let's fail without touching anything.
316 test -f $file || exit 1
317 touch $file
318 ;;
319
320 tar*)
321 shift
322
323 # We have already tried tar in the generic part.
324 # Look for gnutar/gtar before invocation to avoid ugly error
325 # messages.
326 if (gnutar --version > /dev/null 2>&1); then
327 gnutar "$@" && exit 0
328 fi
329 if (gtar --version > /dev/null 2>&1); then
330 gtar "$@" && exit 0
331 fi
332 firstarg="$1"
333 if shift; then
334 case $firstarg in
335 *o*)
336 firstarg=`echo "$firstarg" | sed s/o//`
337 tar "$firstarg" "$@" && exit 0
338 ;;
339 esac
340 case $firstarg in
341 *h*)
342 firstarg=`echo "$firstarg" | sed s/h//`
343 tar "$firstarg" "$@" && exit 0
344 ;;
345 esac
346 fi
347
348 echo 1>&2 "\
349 WARNING: I can't seem to be able to run \`tar' with the given arguments.
350 You may want to install GNU tar or Free paxutils, or check the
351 command line arguments."
352 exit 1
353 ;;
354
355 *)
356 echo 1>&2 "\
357 WARNING: \`$1' is needed, and is $msg.
358 You might have modified some files without having the
359 proper tools for further handling them. Check the \`README' file,
360 it often tells you about the needed prerequisites for installing
361 this package. You may also peek at any GNU archive site, in case
362 some other package would contain this missing \`$1' program."
363 exit 1
364 ;;
365 esac
366
367 exit 0
368
369 # Local variables:
370 # eval: (add-hook 'write-file-hooks 'time-stamp)
371 # time-stamp-start: "scriptversion="
372 # time-stamp-format: "%:y-%02m-%02d.%02H"
373 # time-stamp-time-zone: "UTC"
374 # time-stamp-end: "; # UTC"
375 # End:
1010 virt-viewer-plugin.c virt-viewer-plugin.h \
1111 npshell.c npunix.c
1212 virt_viewer_plugin_la_LIBADD = \
13 @FIREFOX_PLUGIN_LIBS@ \
14 @GTKVNC_LIBS@ \
15 @GTK2_LIBS@ \
16 @LIBXML2_LIBS@ \
17 @LIBGLADE2_LIBS@ \
18 @LIBVIRT_LIBS@
13 $(FIREFOX_PLUGIN_LIBS) \
14 $(GTK_VNC_LIBS) \
15 $(GTK_LIBS) \
16 $(LIBXML2_LIBS) \
17 $(LIBVIRT_LIBS)
1918 virt_viewer_plugin_la_LDFLAGS = \
2019 -module -avoid-version
2120 virt_viewer_plugin_la_CFLAGS = \
2221 -DPLUGIN=1 -DENABLE_DEBUG=1 \
23 @FIREFOX_PLUGIN_CFLAGS@ \
24 @GTKVNC_CFLAGS@ \
25 @GTK2_CFLAGS@ \
26 @LIBXML2_CFLAGS@ \
27 @LIBGLADE2_CFLAGS@ \
28 @LIBVIRT_CFLAGS@ \
22 $(FIREFOX_PLUGIN_CFLAGS) \
23 $(GTK_VNC_CFLAGS) \
24 $(GTK_CFLAGS) \
25 $(LIBXML2_CFLAGS) \
26 $(LIBVIRT_CFLAGS) \
2927 -DGLADE_DIR="\"$(gladedir)\"" \
3028 -I$(top_srcdir)/src
3129
4139 CLEANFILES = virt-viewer-plugin.so
4240
4341 endif
42
43 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
5 # Inc.
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
65 # This Makefile.in is free software; the Free Software Foundation
76 # gives unlimited permission to copy and/or distribute it,
87 # with or without modifications, as long as this notice is preserved.
1514 @SET_MAKE@
1615
1716 VPATH = @srcdir@
17 am__make_dryrun = \
18 { \
19 am__dry=no; \
20 case $$MAKEFLAGS in \
21 *\\[\ \ ]*) \
22 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24 *) \
25 for am__flg in $$MAKEFLAGS; do \
26 case $$am__flg in \
27 *=*|--*) ;; \
28 *n*) am__dry=yes; break;; \
29 esac; \
30 done;; \
31 esac; \
32 test $$am__dry = yes; \
33 }
1834 pkgdatadir = $(datadir)/@PACKAGE@
1935 pkgincludedir = $(includedir)/@PACKAGE@
2036 pkglibdir = $(libdir)/@PACKAGE@
3450 build_triplet = @build@
3551 host_triplet = @host@
3652 subdir = plugin
37 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
53 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
54 $(top_srcdir)/build-aux/depcomp
3855 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
39 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
41 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
42 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
56 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
57 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
58 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
59 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
60 $(top_srcdir)/configure.ac
4361 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4462 $(ACLOCAL_M4)
4563 mkinstalldirs = $(install_sh) -d
6785 am__base_list = \
6886 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
6987 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
88 am__uninstall_files_from_dir = { \
89 test -z "$$files" \
90 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
91 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
92 $(am__cd) "$$dir" && rm -f $$files; }; \
93 }
7094 am__installdirs = "$(DESTDIR)$(plugindir)"
7195 LTLIBRARIES = $(plugin_LTLIBRARIES)
72 virt_viewer_plugin_la_DEPENDENCIES =
96 am__DEPENDENCIES_1 =
97 @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_DEPENDENCIES = \
98 @ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \
99 @ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \
100 @ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \
101 @ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1) \
102 @ENABLE_PLUGIN_TRUE@ $(am__DEPENDENCIES_1)
73103 am__virt_viewer_plugin_la_SOURCES_DIST = ../src/virt-viewer-util.c \
74104 ../src/virt-viewer-util.h ../src/virt-viewer-auth.c \
75105 ../src/virt-viewer-auth.h ../src/virt-viewer.c \
85115 @ENABLE_PLUGIN_TRUE@ virt_viewer_plugin_la-npshell.lo \
86116 @ENABLE_PLUGIN_TRUE@ virt_viewer_plugin_la-npunix.lo
87117 virt_viewer_plugin_la_OBJECTS = $(am_virt_viewer_plugin_la_OBJECTS)
88 AM_V_lt = $(am__v_lt_$(V))
89 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
118 AM_V_lt = $(am__v_lt_@AM_V@)
119 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
90120 am__v_lt_0 = --silent
121 am__v_lt_1 =
91122 virt_viewer_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
92123 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
93124 $(virt_viewer_plugin_la_CFLAGS) $(CFLAGS) \
94125 $(virt_viewer_plugin_la_LDFLAGS) $(LDFLAGS) -o $@
95126 @ENABLE_PLUGIN_TRUE@am_virt_viewer_plugin_la_rpath = -rpath \
96127 @ENABLE_PLUGIN_TRUE@ $(plugindir)
128 AM_V_P = $(am__v_P_@AM_V@)
129 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
130 am__v_P_0 = false
131 am__v_P_1 = :
132 AM_V_GEN = $(am__v_GEN_@AM_V@)
133 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
134 am__v_GEN_0 = @echo " GEN " $@;
135 am__v_GEN_1 =
136 AM_V_at = $(am__v_at_@AM_V@)
137 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
138 am__v_at_0 = @
139 am__v_at_1 =
97140 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
98 depcomp = $(SHELL) $(top_srcdir)/depcomp
141 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
99142 am__depfiles_maybe = depfiles
100143 am__mv = mv -f
101144 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
104147 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
105148 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
106149 $(AM_CFLAGS) $(CFLAGS)
107 AM_V_CC = $(am__v_CC_$(V))
108 am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
109 am__v_CC_0 = @echo " CC " $@;
110 AM_V_at = $(am__v_at_$(V))
111 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
112 am__v_at_0 = @
150 AM_V_CC = $(am__v_CC_@AM_V@)
151 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
152 am__v_CC_0 = @echo " CC " $@;
153 am__v_CC_1 =
113154 CCLD = $(CC)
114155 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
115156 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
116157 $(AM_LDFLAGS) $(LDFLAGS) -o $@
117 AM_V_CCLD = $(am__v_CCLD_$(V))
118 am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
119 am__v_CCLD_0 = @echo " CCLD " $@;
120 AM_V_GEN = $(am__v_GEN_$(V))
121 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
122 am__v_GEN_0 = @echo " GEN " $@;
158 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
159 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
160 am__v_CCLD_0 = @echo " CCLD " $@;
161 am__v_CCLD_1 =
123162 SOURCES = $(virt_viewer_plugin_la_SOURCES)
124163 DIST_SOURCES = $(am__virt_viewer_plugin_la_SOURCES_DIST)
164 am__can_run_installinfo = \
165 case $$AM_UPDATE_INFO_DIR in \
166 n|no|NO) false;; \
167 *) (install-info --version) >/dev/null 2>&1;; \
168 esac
125169 ETAGS = etags
126170 CTAGS = ctags
127171 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
134178 AUTOHEADER = @AUTOHEADER@
135179 AUTOMAKE = @AUTOMAKE@
136180 AWK = @AWK@
181 CATALOGS = @CATALOGS@
182 CATOBJEXT = @CATOBJEXT@
137183 CC = @CC@
138184 CCDEPMODE = @CCDEPMODE@
139185 CFLAGS = @CFLAGS@
157203 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
158204 GLIB2_CFLAGS = @GLIB2_CFLAGS@
159205 GLIB2_LIBS = @GLIB2_LIBS@
206 GLIB_MKENUMS = @GLIB_MKENUMS@
207 GMOFILES = @GMOFILES@
160208 GMSGFMT = @GMSGFMT@
161209 GREP = @GREP@
162210 GTK_API_VERSION = @GTK_API_VERSION@
166214 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
167215 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
168216 GTK_VNC_LIBS = @GTK_VNC_LIBS@
217 ICOTOOL = @ICOTOOL@
169218 INSTALL = @INSTALL@
170219 INSTALL_DATA = @INSTALL_DATA@
171220 INSTALL_PROGRAM = @INSTALL_PROGRAM@
172221 INSTALL_SCRIPT = @INSTALL_SCRIPT@
173222 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
223 INSTOBJEXT = @INSTOBJEXT@
224 INTLLIBS = @INTLLIBS@
174225 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
175226 INTLTOOL_MERGE = @INTLTOOL_MERGE@
176227 INTLTOOL_PERL = @INTLTOOL_PERL@
177228 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
229 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
230 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
231 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
232 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
178233 LD = @LD@
179234 LDFLAGS = @LDFLAGS@
180235 LIBOBJS = @LIBOBJS@
190245 MAKEINFO = @MAKEINFO@
191246 MANIFEST_TOOL = @MANIFEST_TOOL@
192247 MKDIR_P = @MKDIR_P@
248 MKINSTALLDIRS = @MKINSTALLDIRS@
193249 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
194250 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
195251 MSGFMT = @MSGFMT@
252 MSGFMT_OPTS = @MSGFMT_OPTS@
196253 MSGMERGE = @MSGMERGE@
197254 NM = @NM@
198255 NMEDIT = @NMEDIT@
213270 PKG_CONFIG = @PKG_CONFIG@
214271 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
215272 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
273 POFILES = @POFILES@
274 POSUB = @POSUB@
275 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
276 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
216277 RANLIB = @RANLIB@
217278 SED = @SED@
218279 SET_MAKE = @SET_MAKE@
219280 SHELL = @SHELL@
281 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
282 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
220283 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
221284 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
285 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
286 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
222287 STRIP = @STRIP@
223288 USE_NLS = @USE_NLS@
224289 VERSION = @VERSION@
225290 WARN_CFLAGS = @WARN_CFLAGS@
291 WINDRES = @WINDRES@
226292 XGETTEXT = @XGETTEXT@
227293 abs_builddir = @abs_builddir@
228294 abs_srcdir = @abs_srcdir@
257323 includedir = @includedir@
258324 infodir = @infodir@
259325 install_sh = @install_sh@
326 intltool__v_merge_options_ = @intltool__v_merge_options_@
327 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
260328 libdir = @libdir@
261329 libexecdir = @libexecdir@
262330 localedir = @localedir@
287355 @ENABLE_PLUGIN_TRUE@ npshell.c npunix.c
288356
289357 @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_LIBADD = \
290 @ENABLE_PLUGIN_TRUE@ @FIREFOX_PLUGIN_LIBS@ \
291 @ENABLE_PLUGIN_TRUE@ @GTKVNC_LIBS@ \
292 @ENABLE_PLUGIN_TRUE@ @GTK2_LIBS@ \
293 @ENABLE_PLUGIN_TRUE@ @LIBXML2_LIBS@ \
294 @ENABLE_PLUGIN_TRUE@ @LIBGLADE2_LIBS@ \
295 @ENABLE_PLUGIN_TRUE@ @LIBVIRT_LIBS@
358 @ENABLE_PLUGIN_TRUE@ $(FIREFOX_PLUGIN_LIBS) \
359 @ENABLE_PLUGIN_TRUE@ $(GTK_VNC_LIBS) \
360 @ENABLE_PLUGIN_TRUE@ $(GTK_LIBS) \
361 @ENABLE_PLUGIN_TRUE@ $(LIBXML2_LIBS) \
362 @ENABLE_PLUGIN_TRUE@ $(LIBVIRT_LIBS)
296363
297364 @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_LDFLAGS = \
298365 @ENABLE_PLUGIN_TRUE@ -module -avoid-version
299366
300367 @ENABLE_PLUGIN_TRUE@virt_viewer_plugin_la_CFLAGS = \
301368 @ENABLE_PLUGIN_TRUE@ -DPLUGIN=1 -DENABLE_DEBUG=1 \
302 @ENABLE_PLUGIN_TRUE@ @FIREFOX_PLUGIN_CFLAGS@ \
303 @ENABLE_PLUGIN_TRUE@ @GTKVNC_CFLAGS@ \
304 @ENABLE_PLUGIN_TRUE@ @GTK2_CFLAGS@ \
305 @ENABLE_PLUGIN_TRUE@ @LIBXML2_CFLAGS@ \
306 @ENABLE_PLUGIN_TRUE@ @LIBGLADE2_CFLAGS@ \
307 @ENABLE_PLUGIN_TRUE@ @LIBVIRT_CFLAGS@ \
369 @ENABLE_PLUGIN_TRUE@ $(FIREFOX_PLUGIN_CFLAGS) \
370 @ENABLE_PLUGIN_TRUE@ $(GTK_VNC_CFLAGS) \
371 @ENABLE_PLUGIN_TRUE@ $(GTK_CFLAGS) \
372 @ENABLE_PLUGIN_TRUE@ $(LIBXML2_CFLAGS) \
373 @ENABLE_PLUGIN_TRUE@ $(LIBVIRT_CFLAGS) \
308374 @ENABLE_PLUGIN_TRUE@ -DGLADE_DIR="\"$(gladedir)\"" \
309375 @ENABLE_PLUGIN_TRUE@ -I$(top_srcdir)/src
310376
345411 $(am__aclocal_m4_deps):
346412 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
347413 @$(NORMAL_INSTALL)
348 test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)"
349414 @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
350415 list2=; for p in $$list; do \
351416 if test -f $$p; then \
353418 else :; fi; \
354419 done; \
355420 test -z "$$list2" || { \
421 echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
422 $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
356423 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
357424 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
358425 }
368435
369436 clean-pluginLTLIBRARIES:
370437 -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
371 @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
372 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
373 test "$$dir" != "$$p" || dir=.; \
374 echo "rm -f \"$${dir}/so_locations\""; \
375 rm -f "$${dir}/so_locations"; \
376 done
377 virt-viewer-plugin.la: $(virt_viewer_plugin_la_OBJECTS) $(virt_viewer_plugin_la_DEPENDENCIES)
438 @list='$(plugin_LTLIBRARIES)'; \
439 locs=`for p in $$list; do echo $$p; done | \
440 sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
441 sort -u`; \
442 test -z "$$locs" || { \
443 echo rm -f $${locs}; \
444 rm -f $${locs}; \
445 }
446 virt-viewer-plugin.la: $(virt_viewer_plugin_la_OBJECTS) $(virt_viewer_plugin_la_DEPENDENCIES) $(EXTRA_virt_viewer_plugin_la_DEPENDENCIES)
378447 $(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)
379448
380449 mostlyclean-compile:
394463 .c.o:
395464 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
396465 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
397 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
398 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
399 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
400 @am__fastdepCC_FALSE@ $(COMPILE) -c $<
466 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
467 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
468 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
401469
402470 .c.obj:
403471 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
404472 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
405 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
406 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
407 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
408 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
473 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
474 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
475 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
409476
410477 .c.lo:
411478 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
412479 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
413 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
414 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
415 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
416 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
480 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
481 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
482 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
417483
418484 virt_viewer_plugin_la-virt-viewer-util.lo: ../src/virt-viewer-util.c
419485 @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
420486 @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
421 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
422 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer-util.c' object='virt_viewer_plugin_la-virt-viewer-util.lo' libtool=yes @AMDEPBACKSLASH@
423 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
424 @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
487 @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@
488 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
489 @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
425490
426491 virt_viewer_plugin_la-virt-viewer-auth.lo: ../src/virt-viewer-auth.c
427492 @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
428493 @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
429 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
430 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer-auth.c' object='virt_viewer_plugin_la-virt-viewer-auth.lo' libtool=yes @AMDEPBACKSLASH@
431 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
432 @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
494 @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@
495 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
496 @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
433497
434498 virt_viewer_plugin_la-virt-viewer.lo: ../src/virt-viewer.c
435499 @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
436500 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-virt-viewer.Tpo $(DEPDIR)/virt_viewer_plugin_la-virt-viewer.Plo
437 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
438 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer.c' object='virt_viewer_plugin_la-virt-viewer.lo' libtool=yes @AMDEPBACKSLASH@
439 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
440 @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
501 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../src/virt-viewer.c' object='virt_viewer_plugin_la-virt-viewer.lo' libtool=yes @AMDEPBACKSLASH@
502 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
503 @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
441504
442505 virt_viewer_plugin_la-virt-viewer-events.lo: ../src/virt-viewer-events.c
443506 @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
444507 @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
445 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
446 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/virt-viewer-events.c' object='virt_viewer_plugin_la-virt-viewer-events.lo' libtool=yes @AMDEPBACKSLASH@
447 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
448 @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
508 @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@
509 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
510 @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
449511
450512 virt_viewer_plugin_la-virt-viewer-plugin.lo: virt-viewer-plugin.c
451513 @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
452514 @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
453 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
454 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-plugin.c' object='virt_viewer_plugin_la-virt-viewer-plugin.lo' libtool=yes @AMDEPBACKSLASH@
455 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
456 @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
515 @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@
516 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
517 @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
457518
458519 virt_viewer_plugin_la-npshell.lo: npshell.c
459520 @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
460521 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-npshell.Tpo $(DEPDIR)/virt_viewer_plugin_la-npshell.Plo
461 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
462 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npshell.c' object='virt_viewer_plugin_la-npshell.lo' libtool=yes @AMDEPBACKSLASH@
463 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
464 @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
522 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='npshell.c' object='virt_viewer_plugin_la-npshell.lo' libtool=yes @AMDEPBACKSLASH@
523 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
524 @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
465525
466526 virt_viewer_plugin_la-npunix.lo: npunix.c
467527 @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
468528 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer_plugin_la-npunix.Tpo $(DEPDIR)/virt_viewer_plugin_la-npunix.Plo
469 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
470 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='npunix.c' object='virt_viewer_plugin_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@
471 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
472 @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
529 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='npunix.c' object='virt_viewer_plugin_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@
530 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
531 @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
473532
474533 mostlyclean-libtool:
475534 -rm -f *.lo
525584 here=`$(am__cd) $(top_builddir) && pwd` \
526585 && $(am__cd) $(top_srcdir) \
527586 && gtags -i $(GTAGS_ARGS) "$$here"
587
588 cscopelist: $(HEADERS) $(SOURCES) $(LISP)
589 list='$(SOURCES) $(HEADERS) $(LISP)'; \
590 case "$(srcdir)" in \
591 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
592 *) sdir=$(subdir)/$(srcdir) ;; \
593 esac; \
594 for i in $$list; do \
595 if test -f "$$i"; then \
596 echo "$(subdir)/$$i"; \
597 else \
598 echo "$$sdir/$$i"; \
599 fi; \
600 done >> $(top_builddir)/cscope.files
528601
529602 distclean-tags:
530603 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
577650
578651 installcheck: installcheck-am
579652 install-strip:
580 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
581 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
582 `test -z '$(STRIP)' || \
583 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
653 if test -z '$(STRIP)'; then \
654 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
655 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
656 install; \
657 else \
658 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
659 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
660 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
661 fi
584662 mostlyclean-generic:
585663
586664 clean-generic:
669747 .MAKE: install-am install-data-am install-strip
670748
671749 .PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
672 clean-generic clean-libtool clean-pluginLTLIBRARIES ctags \
673 distclean distclean-compile distclean-generic \
750 clean-generic clean-libtool clean-pluginLTLIBRARIES cscopelist \
751 ctags distclean distclean-compile distclean-generic \
674752 distclean-libtool distclean-tags distdir dvi dvi-am html \
675753 html-am info info-am install install-am install-data \
676754 install-data-am install-data-hook install-dvi install-dvi-am \
693771 @ENABLE_PLUGIN_TRUE@install-data-hook:
694772 @ENABLE_PLUGIN_TRUE@ rm -f $(DESTDIR)$(plugindir)/virt-viewer-plugin.a $(DESTDIR)$(plugindir)/virt-viewer-plugin.la
695773
774 -include $(top_srcdir)/git.mk
775
696776 # Tell versions [3.59,3.63) of GNU make to not export all variables.
697777 # Otherwise a system limit (for SysV at least) may be exceeded.
698778 .NOEXPORT:
4545 * This file defines a "shell" plugin that plugin developers can use
4646 * as the basis for a real plugin. This shell just provides empty
4747 * implementations of all functions that the plugin can implement
48 * that will be called by Netscape (the NPP_xxx methods defined in
49 * npapi.h).
48 * that will be called by Netscape (the NPP_xxx methods defined in
49 * npapi.h).
5050 *
5151 * dp Suresh <dp@netscape.com>
5252 * updated 5/1998 <pollmann@netscape.com>
5858 /*
5959 The contents of this file are subject to the Mozilla Public License
6060
61 Version 1.1 (the "License"); you may not use this file except in compliance
61 Version 1.1 (the "License"); you may not use this file except in compliance
6262 with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
6363
64 Software distributed under the License is distributed on an "AS IS" basis,
65 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
64 Software distributed under the License is distributed on an "AS IS" basis,
65 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
6666 the specific language governing rights and limitations under the License.
6767
6868 The Original Code is stub code that defines the binary interface to a Mozilla
146146 debug ("NPP_Shutdown");
147147 }
148148
149 NPError
149 NPError
150150 NPP_New(NPMIMEType pluginType G_GNUC_UNUSED,
151151 NPP instance,
152152 uint16 mode,
219219 return NPERR_NO_ERROR;
220220 }
221221
222 NPError
222 NPError
223223 NPP_Destroy(NPP instance, NPSavedData** save G_GNUC_UNUSED)
224224 {
225225 PluginInstance* This;
234234 if (This != NULL)
235235 {
236236 (void) VirtViewerDestroyWindow (instance);
237 if (This->uri) free (This->uri);
238 if (This->name) free (This->name);
237 free (This->uri);
238 free (This->name);
239239 NPN_MemFree(instance->pdata);
240240 instance->pdata = NULL;
241241 }
244244 }
245245
246246
247 NPError
247 NPError
248248 NPP_SetWindow(NPP instance, NPWindow* window)
249249 {
250250 debug ("NPP_SetWindow");
252252 return VirtViewerXSetWindow(instance, window);
253253 }
254254
255 int32
255 int32
256256 NPP_WriteReady(NPP instance, NPStream *stream)
257257 {
258258 /*printf("NPP_WriteReady()\n");*/
266266 return -1L; /* don't accept any bytes in NPP_Write() */
267267 }
268268
269 int32
269 int32
270270 NPP_Write(NPP instance, NPStream *stream,
271271 int32 offset G_GNUC_UNUSED, int32 len G_GNUC_UNUSED,
272272 void *buffer G_GNUC_UNUSED)
281281 return -1L; /* don't accept any bytes in NPP_Write() */
282282 }
283283
284 NPError
284 NPError
285285 NPP_DestroyStream(NPP instance, NPStream *stream G_GNUC_UNUSED,
286286 NPError reason G_GNUC_UNUSED)
287287 {
297297 return NPERR_NO_ERROR;
298298 }
299299
300 void
300 void
301301 NPP_StreamAsFile(NPP instance G_GNUC_UNUSED, NPStream *stream G_GNUC_UNUSED,
302302 const char* fname G_GNUC_UNUSED)
303303 {
322322 }
323323
324324
325 void
325 void
326326 NPP_Print(NPP instance, NPPrint* printInfo)
327327 {
328328 /*printf("NPP_Print()\n");*/
333333 /***** Insert NPP_Print code here *****\
334334 PluginInstance* This = (PluginInstance*) instance->pdata;
335335 \**************************************/
336
336
337337 if (printInfo->mode == NP_FULL) {
338338 /*
339339 * PLUGIN DEVELOPERS:
358358 NPBool printOne =
359359 printInfo->print.fullPrint.printOne;
360360 \**************************************/
361
361
362362 /* Do the default*/
363363 printInfo->print.fullPrint.pluginPrinted = FALSE;
364364 }
261261 * Wrapper functions : Netscape Navigator -> plugin
262262 *
263263 * These functions let the plugin developer just create the APIs
264 * as documented and defined in npapi.h, without needing to
264 * as documented and defined in npapi.h, without needing to
265265 * install those functions in the function table or worry about
266266 * setting up globals for 68K plugins.
267267 *
274274 NPError ret;
275275 PLUGINDEBUGSTR("New");
276276 ret = NPP_New(pluginType, instance, mode, argc, argn, argv, saved);
277 return ret;
277 return ret;
278278 }
279279
280280 static NPError
343343 static void
344344 Private_URLNotify(NPP instance, const char* url,
345345 NPReason reason, void* notifyData)
346
347346 {
348347 PLUGINDEBUGSTR("URLNotify");
349348 NPP_URLNotify(instance, url, reason, notifyData);
352351 static NPError
353352 Private_GetValue(void *instance, NPPVariable variable, void *result)
354353 {
355 NPError rv = NPP_GetValue(instance, variable, result);
356 return rv;
354 NPError rv = NPP_GetValue(instance, variable, result);
355 return rv;
357356 }
358357
359358 static void
376375 }
377376 #endif
378377
379 static int16
378 static int16
380379 Private_HandleEvent(NPP instance, void* event)
381380 {
382381 return NPP_HandleEvent(instance, event);
383382 }
384383
385 /***********************************************************************
384 /***********************************************************************
386385 *
387386 * These functions are located automagically by netscape.
388387 *
435434 NPError err = NPERR_NO_ERROR;
436435
437436 PLUGINDEBUGSTR("NP_Initialize");
438
437
439438 /* validate input parameters */
440439
441440 if ((nsTable == NULL) || (pluginFuncs == NULL))
442441 err = NPERR_INVALID_FUNCTABLE_ERROR;
443
442
444443 /*
445444 * Check the major version passed in Netscape's function table.
446445 * We won't load if the major version is newer than what we expect.
455454 err = NPERR_INCOMPATIBLE_VERSION_ERROR;
456455 if (nsTable->size < sizeof(NPNetscapeFuncs))
457456 err = NPERR_INVALID_FUNCTABLE_ERROR;
458 if (pluginFuncs->size < sizeof(NPPluginFuncs))
457 if (pluginFuncs->size < sizeof(NPPluginFuncs))
459458 err = NPERR_INVALID_FUNCTABLE_ERROR;
460459 }
461
462
460
463461 if (err == NPERR_NO_ERROR) {
464462 /*
465463 * Copy all the fields of Netscape function table into our
518516
519517 err = NPP_Initialize();
520518 }
521
519
522520 return err;
523521 }
524522
11 VIRT-VIEWER-PLUGIN
22
33 By Richard W.M. Jones <rjones@redhat.com>
4 Copyright (C) 2008 Red Hat Inc.
4 Copyright (C) 2008-2012 Red Hat, Inc.
55
66 Largely based on DiamondX (http://multimedia.cx/diamondx/), which itself
77 is based on Mozilla sources.
8282 /* Make the VNC widget. */
8383 if (This->uri && This->name) {
8484 debug ("calling viewer_start uri=%s name=%s direct=%d waitvm=%d reconnect=%d container=%p",
85 This->uri, This->name, This->direct, This->waitvm, This->reconnect, This->container);
85 This->uri, This->name, This->direct, This->waitvm, This->reconnect, This->container);
8686 r = viewer_start (This->uri, This->name, This->direct, This->waitvm, This->reconnect, 1, This->debug, This->container);
8787 if (r != 0)
8888 fprintf (stderr, "viewer_start returned %d != 0\n", r);
11 VIRT_VIEWER-PLUGIN
22
33 By Richard W.M. Jones <rjones@redhat.com>
4 Copyright (C) 2008 Red Hat Inc.
4 Copyright (C) 2008-2012 Red Hat, Inc.
55
66 Largely based on DiamondX (http://multimedia.cx/diamondx/), which itself
77 is based on Mozilla sources.
3838 #include <npapi.h>
3939 #include <gtk/gtk.h>
4040 #include <X11/Xlib.h>
41 #include "viewer.h"
41 #include "virt-viewer-app.h"
4242
4343 #define PLUGIN_NAME "Virt-viewer browser plugin"
4444 #define MIME_TYPES_HANDLED "application/x-virt-viewer:virt-viewer:Virt viewer"
7676 fflush (stderr);
7777 }
7878 #else
79 static void debug (const char *msg G_GNUC_UNUSED, ...) { }
79 #define debug(msg...)
8080 #endif
8181
8282 #endif /* VIRT_VIEWER_PLUGIN_H */
0 ar
01 as
2 bg
13 bn_IN
4 bn
5 cs
26 de
37 es
8 eu
9 fi
410 fr
11 gl
512 gu
13 he
614 hi
715 hu
16 id
817 it
918 ja
1019 kn
1120 ko
21 lv
1222 ml
1323 mr
24 nl
1425 or
1526 pa
1627 pl
1728 pt_BR
29 pt
1830 ru
31 si
32 sk
1933 ta
2034 te
35 tr
2136 uk
2237 zh_CN
2338 zh_TW
4848 XGETTEXT = @XGETTEXT@
4949 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
5050 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
51 MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
52 GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
51 MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
52 GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
5353
5454 ALL_LINGUAS = @ALL_LINGUAS@
5555
7171
7272 .SUFFIXES:
7373 .SUFFIXES: .po .pox .gmo .mo .msg .cat
74
75 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
76 INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
77 INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
78 INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@;
7479
7580 .po.pox:
7681 $(MAKE) $(GETTEXT_PACKAGE).pot
7782 $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
7883
7984 .po.mo:
80 $(MSGFMT) -o $@ $<
85 $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
8186
8287 .po.gmo:
83 file=`echo $* | sed 's,.*/,,'`.gmo \
88 $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
8489 && rm -f $$file && $(GMSGFMT) -o $$file $<
8590
8691 .po.cat:
0 src/auth.c
1 src/events.c
2 src/main.c
3 src/util.c
4 src/viewer.c
5 src/display-spice.c
6 src/display-vnc.c
7 src/about.glade
8 src/auth.glade
9 src/viewer.glade
0 src/gbinding.c
1 src/remote-viewer-main.c
2 src/remote-viewer.c
3 [type: gettext/glade] src/virt-viewer-about.xml
4 src/virt-viewer-app.c
5 [type: gettext/glade] src/virt-viewer-auth.xml
6 src/virt-viewer-main.c
7 src/virt-viewer-session-spice.c
8 src/virt-viewer-session-vnc.c
9 src/virt-viewer-window.c
10 src/virt-viewer.c
11 [type: gettext/glade] src/virt-viewer.xml
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Arabic <trans-ar@lists.fedoraproject.org>\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: ar\n"
17 "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"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+457
-209
po/as.po less more
0 # SOME DESCRIPTIVE TITLE.
01 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
12 # This file is distributed under the same license as the PACKAGE package.
2 #
3 #
4 # Translators:
35 # Amitakhya Phukan <aphukan@redhat.com>, 2010.
6 # Nilamdyuti Goswami <ngoswami@redhat.com>, 2012.
47 msgid ""
58 msgstr ""
6 "Project-Id-Version: \n"
9 "Project-Id-Version: virt-viewer\n"
710 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2010-03-14 13:50+0000\n"
9 "PO-Revision-Date: 2010-03-15 00:25+0530\n"
10 "Last-Translator: Amitakhya Phukan <aphukan@redhat.com>\n"
11 "Language-Team: Assamese <>\n"
11 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
12 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
13 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
14 "Language-Team: Assamese (http://www.transifex.net/projects/p/fedora/language/as/)\n"
1215 "MIME-Version: 1.0\n"
1316 "Content-Type: text/plain; charset=UTF-8\n"
1417 "Content-Transfer-Encoding: 8bit\n"
15 "X-Generator: Lokalize 1.0\n"
16 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
18 #: ../src/main.c:34
19 #, c-format
20 msgid "%s version %s\n"
21 msgstr "%s সংস্কৰণ %s\n"
22
23 #: ../src/main.c:52
18 "Language: as\n"
19 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
20
21 #: ../src/gbinding.c:637
22 msgid "Source"
23 msgstr "উৎস"
24
25 #: ../src/gbinding.c:638
26 msgid "The source of the binding"
27 msgstr "বন্ধনৰ উৎস"
28
29 #: ../src/gbinding.c:652
30 msgid "Target"
31 msgstr "লক্ষ্য"
32
33 #: ../src/gbinding.c:653
34 msgid "The target of the binding"
35 msgstr "বন্ধনৰ লক্ষ্য"
36
37 #: ../src/gbinding.c:668
38 msgid "Source Property"
39 msgstr "উৎস সম্পত্তি"
40
41 #: ../src/gbinding.c:669
42 msgid "The property on the source to bind"
43 msgstr "বান্ধিব লগিয়া উৎসৰ সম্পত্তি"
44
45 #: ../src/gbinding.c:684
46 msgid "Target Property"
47 msgstr "লক্ষ্য সম্পত্তি"
48
49 #: ../src/gbinding.c:685
50 msgid "The property on the target to bind"
51 msgstr "বান্ধিব লগিয়া লক্ষ্যৰ সম্পত্তি"
52
53 #: ../src/gbinding.c:699
54 msgid "Flags"
55 msgstr "ফ্লেগসমূহ"
56
57 #: ../src/gbinding.c:700
58 msgid "The binding flags"
59 msgstr "বন্ধনী ফ্লেগসমূহ"
60
61 #: ../src/remote-viewer-main.c:47
62 #, c-format
63 msgid "remote-viewer version %s\n"
64 msgstr "দুৰৱৰ্তী-দৰ্শক সংস্কৰণ %s\n"
65
66 #: ../src/remote-viewer-main.c:69
67 #, c-format
68 msgid "Invalid full-screen argument: %s"
69 msgstr ""
70
71 #. Create the widgets
72 #: ../src/remote-viewer-main.c:104
73 msgid "Connection details"
74 msgstr ""
75
76 #: ../src/remote-viewer-main.c:119
77 msgid "URL:"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:127
81 msgid "Recent connections:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2485 msgid "Run '"
2586 msgstr "চলাওক '"
2687
27 #: ../src/main.c:55
28 msgid "display version information"
29 msgstr "সংস্কৰণৰ তথ্য দেখুৱাওক"
30
31 #: ../src/main.c:57
32 msgid "display verbose information"
33 msgstr "ভাৰ্বোচ তথ্য দেখুৱাওক"
34
35 #: ../src/main.c:59
36 msgid "direct connection with no automatic tunnels"
37 msgstr "কোনো স্বয়ংক্ৰিয় টানেল নোহোৱাকে পোনেপোনে সংযোগ"
38
39 #: ../src/main.c:61
40 msgid "connect to hypervisor"
41 msgstr "হাইপাৰ্ভাইচৰলৈ সংযোগ কৰক"
42
43 #: ../src/main.c:63
44 msgid "wait for domain to start"
45 msgstr "ডোমেইন আৰম্ভ হ'বলৈ ৰখক"
46
47 #: ../src/main.c:65
48 msgid "reconnect to domain upon restart"
49 msgstr "পুনৰাৰম্ভত ডোমেইনলৈ পুনঃ সংযোগ কৰক"
50
51 #: ../src/main.c:67
52 msgid "display debugging information"
53 msgstr "ডিবাগ তথ্য দেখুৱাওক"
88 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
89 msgid "Display version information"
90 msgstr "সংস্কৰণ তথ্য প্ৰদৰ্শন কৰক"
91
92 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
93 msgid "Display verbose information"
94 msgstr "ভাৰভৌচ তথ্য প্ৰদৰ্শন কৰক"
95
96 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
97 msgid "Direct connection with no automatic tunnels"
98 msgstr "কোনো স্বচালিত টানেল নহোৱাকৈ প্ৰত্যক্ষ সংযোগ"
99
100 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
101 msgid "Zoom level of window, in percentage"
102 msgstr "উইন্ডোৰ জুম স্তৰ, শতাংশত"
103
104 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
105 msgid "Display debugging information"
106 msgstr "ডিবাগ তথ্য প্ৰদৰ্শন কৰক"
107
108 #: ../src/remote-viewer-main.c:219
109 msgid "Open in full screen mode (=<auto-conf>)"
110 msgstr ""
111
112 #: ../src/remote-viewer-main.c:222
113 msgid "Open connection using Spice controller communication"
114 msgstr "Spice নিয়ন্ত্ৰক সংযোগ ব্যৱহাৰ কৰি সংযোগ খোলক"
115
116 #: ../src/remote-viewer-main.c:249
117 msgid "Remote Viewer"
118 msgstr ""
54119
55120 #. Setup command line options
56 #: ../src/main.c:79
57 msgid "- Virtual machine graphical console"
58 msgstr "- ভাৰ্চুৱেল যন্ত্ৰৰ চিত্ৰাঙ্কিত ক'ন্সোল"
59
60 #: ../src/main.c:95
61 #, c-format
62 msgid ""
63 "\n"
64 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
65 "\n"
66 "%s\n"
67 "\n"
68 msgstr ""
69 "\n"
70 "ব্যৱহাৰপদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
71 "\n"
72 "%s\n"
73 "\n"
74
75 #: ../src/viewer.c:878
76 #, c-format
77 msgid "Cannot determine the VNC port for the guest %s"
78 msgstr "%s অতিথিৰ কাৰণে VNC প'ৰ্ট নিৰ্ধাৰণ কৰিব নোৱাৰি"
79
80 #: ../src/viewer.c:884
81 #, c-format
82 msgid "Cannot determine the VNC host for the guest %s"
83 msgstr "%s অতিথিৰ কাৰণে VNC গৃহস্থ নিৰ্ধাৰণ কৰিব নোৱাৰি"
84
85 #: ../src/viewer.c:984
86 #, c-format
87 msgid "Unable to connect to the VNC server %s"
88 msgstr "%s ত VNC সেৱকলৈ সংযোগ কৰিব নোৱাৰি"
89
90 #: ../src/viewer.c:1001
91 #, c-format
92 msgid ""
93 "Unable to authenticate with VNC server at %s: %s\n"
94 "Retry connection again?"
95 msgstr ""
96 "%s ত VNC সেৱকৰ সৈতে প্ৰমাণীকৰণ কৰিব নোৱাৰি: %s\n"
97 "সংযোগ কৰিবলৈ পুনঃ চেষ্টা কৰোঁ ?"
98
99 #: ../src/viewer.c:1019
100 #, c-format
101 msgid ""
102 "Unable to authenticate with VNC server at %s\n"
103 "Unsupported authentication type %d"
104 msgstr ""
105 "%s ত VNC সেৱকৰ সৈতে প্ৰমাণীকৰণ কৰিব নোৱাৰি\n"
106 "অসমৰ্থিত প্ৰমাণীকৰণৰ ধৰণ %d"
107
108 #: ../src/viewer.c:1111
109 #, c-format
110 msgid "Cannot find guest domain %s"
111 msgstr "%s অতিথিৰ ডোমেইন পোৱা নাযায়"
112
113 #: ../src/viewer.c:1213
114 #, c-format
115 msgid "Unable to connect to libvirt with URI %s"
116 msgstr "%s URI ৰে libvirt লৈ সংযোগ কৰিব নোৱাৰি"
117
118 #: ../src/viewer.c:1214
119 msgid "[none]"
120 msgstr "[none]"
121
122 #.
121 #: ../src/remote-viewer-main.c:252
122 msgid "- Remote viewer client"
123 msgstr "- দূৰৱৰ্তী দৰ্শক ক্লাএন্ট"
124
125 #: ../src/remote-viewer-main.c:275
126 #, c-format
127 msgid "Error: extra arguments given while using Spice controller\n"
128 msgstr ""
129
130 #: ../src/remote-viewer-main.c:284
131 #, c-format
132 msgid "Error: can't handle multiple URIs\n"
133 msgstr ""
134
135 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
136 #, c-format
137 msgid "Zoom level must be within 10-200\n"
138 msgstr "জুম স্তৰ ১০-২০০ ৰ মাজত হব লাগিব\n"
139
140 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
141 msgid "Failed to initiate connection"
142 msgstr "সংযোগ আৰম্ভ কৰিবলে ব্যৰ্থ"
143
144 #: ../src/remote-viewer.c:250
145 msgid "Display disabled by controller"
146 msgstr "প্ৰদৰ্শন নিয়ন্ত্ৰক দ্বাৰা অসামৰ্থবান কৰা হৈছে"
147
148 #: ../src/remote-viewer.c:697
149 #, c-format
150 msgid "Controller connection failed: %s"
151 msgstr "নিয়ন্ত্ৰক সংযোগ ব্যৰ্থ হল: %s"
152
153 #: ../src/remote-viewer.c:750
154 msgid "Couldn't create a Spice session"
155 msgstr "এটা Spice অধিবেশন সৃষ্টি কৰিব পৰা নগল"
156
157 #: ../src/remote-viewer.c:764
158 msgid "Setting up Spice session..."
159 msgstr "Spice অধিবেশন সংহতি কৰা হৈ আছে..."
160
161 #: ../src/remote-viewer.c:774
162 msgid "Cannot determine the connection type from URI"
163 msgstr "URI ৰ পৰা সংযোগ ধৰণ নিৰ্ধাৰণ কৰিব পৰা নগল"
164
165 #: ../src/remote-viewer.c:779
166 #, c-format
167 msgid "Couldn't create a session for this type: %s"
168 msgstr "এই ধৰণৰ বাবে এটা অধিবেশন সৃষ্টি কৰিব পৰা নগল: %s"
169
123170 #. * Local variables:
124 #. * c-indent-level: 8
125 #. * c-basic-offset: 8
126 #. * tab-width: 8
171 #. * c-indent-level: 4
172 #. * c-basic-offset: 4
173 #. * indent-tabs-mode: nil
127174 #. * End:
128 #.
129 #: ../src/about.glade.h:1
130 msgid "A remote desktop client built with GTK-VNC and libvirt"
131 msgstr "GTK-VNC আৰু libvirt এৰে সৃষ্টি কৰা এটা দূৰৰ ডেষ্কট'প গ্ৰাহক"
132
133 #: ../src/about.glade.h:2
175 #.
176 #: ../src/virt-viewer-about.xml.h:1
177 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
178 msgstr "GTK-VNC, SPICE-GTK আৰু libvirt ৰ সৈতে নিৰ্মাণ কৰা এটা দূৰৱৰ্তী ডেস্কটপ ক্লাএন্ট"
179
180 #: ../src/virt-viewer-about.xml.h:2
134181 msgid "About Glade"
135182 msgstr "Glade ৰ বিষয়ে"
136183
137 #: ../src/about.glade.h:3
184 #: ../src/virt-viewer-about.xml.h:3
138185 msgid ""
139 "Copyright 2007-2008 Daniel P. Berrange\n"
140 "Copyright 2007-2008 Red Hat, Inc."
141 msgstr ""
142 "Copyright 2007-2008 Daniel P. Berrange\n"
143 "Copyright 2007-2008 Red Hat, Inc."
144
145 #: ../src/about.glade.h:5
186 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
187 "Copyright (C) 2007-2012 Red Hat, Inc."
188 msgstr "স্বত্বাধিকাৰ (C) ২০০৭-২০১২ ডেনিয়েল পি. বিৰেইঞ্জ\nস্বত্বাধিকাৰ (C) ২০০৭-২০১২ Red Hat, Inc."
189
190 #: ../src/virt-viewer-about.xml.h:5
146191 msgid "The Fedora Translation Team"
147192 msgstr "Fedora অনুবাদ দল"
148193
149 #: ../src/about.glade.h:6
194 #: ../src/virt-viewer-about.xml.h:6
150195 msgid ""
151196 "This program is free software; you can redistribute it and/or modify\n"
152197 "it under the terms of the GNU General Public License as published by\n"
161206 "You should have received a copy of the GNU General Public License\n"
162207 "along with this program; if not, write to the Free Software\n"
163208 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
164 msgstr ""
165 "This program is free software; you can redistribute it and/or modify\n"
166 "it under the terms of the GNU General Public License as published by\n"
167 "the Free Software Foundation; either version 2 of the License, or\n"
168 "(at your option) any later version.\n"
169 "\n"
170 "This program is distributed in the hope that it will be useful,\n"
171 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
172 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
173 "GNU General Public License for more details.\n"
174 "\n"
175 "You should have received a copy of the GNU General Public License\n"
176 "along with this program; if not, write to the Free Software\n"
177 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
178
179 #: ../src/about.glade.h:20
209 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"
210
211 #: ../src/virt-viewer-about.xml.h:20
180212 msgid "virt-manager.org"
181213 msgstr "virt-manager.org"
182214
183 #: ../src/auth.glade.h:1
215 #: ../src/virt-viewer-app.c:284
216 msgid "This is the last visible display. Do you want to quit?"
217 msgstr "এইটো শেষ দৃশ্যমান প্ৰদৰ্শন। আপুনি প্ৰস্থান কৰিব বিচাৰে নে?"
218
219 #: ../src/virt-viewer-app.c:624
220 #, c-format
221 msgid "Waiting for display %d..."
222 msgstr "প্ৰদৰ্শন %d ৰ বাবে অপেক্ষা কৰা হৈ আছে..."
223
224 #: ../src/virt-viewer-app.c:707
225 #, c-format
226 msgid "Unknown graphic type for the guest %s"
227 msgstr "অতিথি %s ৰ বাবে অজ্ঞাত গ্ৰাফিক ধৰণ"
228
229 #: ../src/virt-viewer-app.c:782
230 msgid "Connect to ssh failed."
231 msgstr "ssh লে সংযোগ ব্যৰ্থ হল।"
232
233 #: ../src/virt-viewer-app.c:784
234 msgid "Can't connect to channel, SSH only supported."
235 msgstr "চেনেলে সংযোগ কৰিব নোৱাৰি, কেৱল SSH সমৰ্থিত।"
236
237 #: ../src/virt-viewer-app.c:796
238 msgid "Connect to channel unsupported."
239 msgstr "চেনেললে সংযোগ অসমৰ্থিত।"
240
241 #: ../src/virt-viewer-app.c:876
242 msgid "Connecting to graphic server"
243 msgstr "গ্ৰাফিক চাৰ্ভাৰলে সংযোগ কৰা হৈ আছে"
244
245 #: ../src/virt-viewer-app.c:1006
246 msgid "Guest domain has shutdown"
247 msgstr "অতিথি ডমেইন বন্ধ হল"
248
249 #: ../src/virt-viewer-app.c:1056
250 msgid "Connected to graphic server"
251 msgstr "গ্ৰাফিক চাৰ্ভাৰলে সংযোগিত"
252
253 #: ../src/virt-viewer-app.c:1082
254 #, c-format
255 msgid "Unable to connect to the graphic server %s"
256 msgstr "গ্ৰাফিক চাৰ্ভাৰ %s লে সংযোগ কৰিবলে অক্ষম"
257
258 #: ../src/virt-viewer-app.c:1111
259 #, c-format
260 msgid ""
261 "Unable to authenticate with remote desktop server at %s: %s\n"
262 "Retry connection again?"
263 msgstr "%s ত দূৰৱৰ্তী ডেস্কটপ চাৰ্ভাৰৰ সৈতে প্ৰমাণীত কৰিবলে অক্ষম: %s\nসংযোগ পুনৰ চেষ্টা কৰিব নে?"
264
265 #: ../src/virt-viewer-app.c:1131
266 #, c-format
267 msgid "Unable to authenticate with remote desktop server: %s"
268 msgstr "দূৰৱৰ্তী ডেস্কটপ চাৰ্ভাৰৰ সৈতে প্ৰমাণিত কৰিবলে অক্ষম: %s"
269
270 #: ../src/virt-viewer-app.c:1139
271 #, c-format
272 msgid "USB redirection error: %s"
273 msgstr "USB পুনৰনিৰ্দেশ ত্ৰুটি: %s"
274
275 #. * Local variables:
276 #. * c-indent-level: 4
277 #. * c-basic-offset: 4
278 #. * indent-tabs-mode: nil
279 #. * End:
280 #.
281 #: ../src/virt-viewer-auth.xml.h:1
184282 msgid "Authentication required"
185 msgstr "পৰিচয় প্ৰমাণ কৰা আৱশ্যক"
186
187 #: ../src/auth.glade.h:2
283 msgstr "প্ৰমাণীকৰণৰ প্ৰয়োজন"
284
285 #: ../src/virt-viewer-auth.xml.h:2
188286 msgid "Password:"
189 msgstr "গুপ্তশব্দ:"
190
191 #: ../src/auth.glade.h:3
287 msgstr "পাছৱাৰ্ড:"
288
289 #: ../src/virt-viewer-auth.xml.h:3
192290 msgid "Username:"
193 msgstr "ব্যৱহাৰকৰ্তাৰ নাম:"
194
195 #: ../src/auth.glade.h:4
196 msgid "gtk-cancel"
197 msgstr "gtk-cancel"
198
199 #: ../src/auth.glade.h:5
200 msgid "gtk-ok"
201 msgstr "gtk-ok"
202
203 #: ../src/auth.glade.h:6
291 msgstr "ব্যৱহাৰকাৰীৰ নাম:"
292
293 #: ../src/virt-viewer-auth.xml.h:4
204294 msgid "label"
205295 msgstr "লেবেল"
206296
207 #: ../src/viewer.glade.h:1
297 #: ../src/virt-viewer-main.c:38
298 #, c-format
299 msgid "%s version %s\n"
300 msgstr "%s সংস্কৰণ %s\n"
301
302 #: ../src/virt-viewer-main.c:69
303 msgid "Attach to the local display using libvirt"
304 msgstr "libvirt ব্যৱহাৰ কৰি স্থানীয় প্ৰদৰ্শনলে সংলঘ্ন কৰক"
305
306 #: ../src/virt-viewer-main.c:71
307 msgid "Connect to hypervisor"
308 msgstr "হাইপাৰভাইছৰলে সংযোগ কৰক"
309
310 #: ../src/virt-viewer-main.c:73
311 msgid "Wait for domain to start"
312 msgstr "ডমেইন আৰম্ভ হবলে অপেক্ষা কৰক"
313
314 #: ../src/virt-viewer-main.c:75
315 msgid "Reconnect to domain upon restart"
316 msgstr "পুনৰাম্ভ হওতে ডমেইনলে পুনৰসংযোগ কৰক"
317
318 #: ../src/virt-viewer-main.c:81
319 msgid "Open in full screen mode"
320 msgstr "পূৰ্ণ পৰ্দা অৱস্থাত খোলক"
321
322 #: ../src/virt-viewer-main.c:96
323 msgid "Virt Viewer"
324 msgstr "Virt দৰ্শক"
325
326 #. Setup command line options
327 #: ../src/virt-viewer-main.c:99
328 msgid "- Virtual machine graphical console"
329 msgstr "- ভাৰ্চুৱেল যন্ত্ৰৰ চিত্ৰাঙ্কিত ক'ন্সোল"
330
331 #: ../src/virt-viewer-main.c:120
332 #, c-format
333 msgid ""
334 "\n"
335 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
336 "\n"
337 "%s\n"
338 "\n"
339 msgstr "\nব্যৱহাৰপদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
340
341 #. Create the widgets
342 #: ../src/virt-viewer-session-spice.c:380
343 msgid "Select USB devices for redirection"
344 msgstr "পুনৰনিৰ্দেশৰ বাবে USB ডিভাইচসমূহ বাছক"
345
346 #: ../src/virt-viewer-session-vnc.c:141
347 #, c-format
348 msgid "Unsupported authentication type %d"
349 msgstr "অসমৰ্থিত প্ৰমাণীকৰণ ধৰণ %d"
350
351 #: ../src/virt-viewer-window.c:832
352 msgid "Disconnect"
353 msgstr "বিচ্ছিন্ন কৰক"
354
355 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
356 #: ../src/virt-viewer.xml.h:22
357 msgid "USB device selection"
358 msgstr "USB ডিভাইছ নিৰ্বাচন"
359
360 #: ../src/virt-viewer-window.c:848
361 msgid "Send key combination"
362 msgstr ""
363
364 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
365 msgid "Leave fullscreen"
366 msgstr "পূৰ্ণপৰ্দা ত্যাগ কৰক"
367
368 #: ../src/virt-viewer-window.c:937
369 msgid "Ctrl+Alt"
370 msgstr ""
371
372 #: ../src/virt-viewer-window.c:940
373 #, c-format
374 msgid "(Press %s to release pointer)"
375 msgstr ""
376
377 #. translators:
378 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
379 #. <appname>"
380 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
381 #. Viewer"
382 #.
383 #: ../src/virt-viewer-window.c:951
384 #, c-format
385 msgid "%s%s%s - %s"
386 msgstr "%s%s%s - %s"
387
388 #. translators: <space>
389 #: ../src/virt-viewer-window.c:955
390 msgid " "
391 msgstr " "
392
393 #: ../src/virt-viewer.c:144
394 msgid "Waiting for guest domain to re-start"
395 msgstr "অতিথি ডমেইন পুনৰাম্ভ হোৱাৰ বাবে অপেক্ষা কৰা হৈ আছে"
396
397 #: ../src/virt-viewer.c:308
398 #, c-format
399 msgid "Cannot determine the graphic type for the guest %s"
400 msgstr "অতিথি %s ৰ বাবে গ্ৰাফিক ধৰণ নিৰ্ধাৰণ কৰিব নোৱাৰি"
401
402 #: ../src/virt-viewer.c:321
403 #, c-format
404 msgid "Cannot determine the graphic address for the guest %s"
405 msgstr "অতিথি %s ৰ বাবে গ্ৰাফিক ঠিকনা নিৰ্ধাৰণ কৰিব নোৱাৰি"
406
407 #: ../src/virt-viewer.c:344
408 #, c-format
409 msgid "Cannot determine the host for the guest %s"
410 msgstr "অতিথি %s ৰ বাবে হস্ট নিৰ্ধাৰণ কৰিব নোৱাৰি"
411
412 #: ../src/virt-viewer.c:474
413 msgid "Finding guest domain"
414 msgstr "অতিথি ডমেইন বিচৰা"
415
416 #: ../src/virt-viewer.c:478
417 msgid "Waiting for guest domain to be created"
418 msgstr "অতিথি ডমেইন সৃষ্টি হোৱালে অপেক্ষা কৰা হৈ আছে"
419
420 #: ../src/virt-viewer.c:483
421 #, c-format
422 msgid "Cannot find guest domain %s"
423 msgstr "%s অতিথিৰ ডোমেইন পোৱা নাযায়"
424
425 #: ../src/virt-viewer.c:490
426 msgid "Checking guest domain status"
427 msgstr "অতিথি ডমেইন অৱস্থা নীৰিক্ষণ কৰা"
428
429 #: ../src/virt-viewer.c:497
430 msgid "Waiting for guest domain to start"
431 msgstr "অতিথি ডমেইন আৰম্ভ হোৱালে অপেক্ষা কৰা হৈ আছে"
432
433 #: ../src/virt-viewer.c:504
434 msgid "Waiting for guest domain to start server"
435 msgstr "অতিথি ডমেইন দ্বাৰা চাৰ্ভাৰ আৰম্ভ কৰিবলে অপেক্ষা কৰা হৈ আছে"
436
437 #: ../src/virt-viewer.c:624
438 #, c-format
439 msgid "Unable to connect to libvirt with URI %s"
440 msgstr "%s URI ৰে libvirt লৈ সংযোগ কৰিব নোৱাৰি"
441
442 #: ../src/virt-viewer.c:625
443 msgid "[none]"
444 msgstr "[none]"
445
446 #. * Local variables:
447 #. * c-indent-level: 4
448 #. * c-basic-offset: 4
449 #. * indent-tabs-mode: nil
450 #. * End:
451 #.
452 #: ../src/virt-viewer.xml.h:1
208453 msgid "Automatically resize"
209 msgstr "স্বয়ংক্ৰিয়ভাবে পুনঃ আকাৰ দিয়ক"
210
211 #: ../src/viewer.glade.h:2
454 msgstr "স্বচালিতভাৱে পুনৰআকাৰ দিয়ক"
455
456 #: ../src/virt-viewer.xml.h:2
212457 msgid "Ctrl+Alt+F11"
213458 msgstr "Ctrl+Alt+F11"
214459
215 #: ../src/viewer.glade.h:3
460 #: ../src/virt-viewer.xml.h:3
216461 msgid "Ctrl+Alt+F12"
217462 msgstr "Ctrl+Alt+F12"
218463
219 #: ../src/viewer.glade.h:4
464 #: ../src/virt-viewer.xml.h:4
220465 msgid "Ctrl+Alt+F1_0"
221466 msgstr "Ctrl+Alt+F1_0"
222467
223 #: ../src/viewer.glade.h:5
468 #: ../src/virt-viewer.xml.h:5
224469 msgid "Ctrl+Alt+F_1"
225470 msgstr "Ctrl+Alt+F_1"
226471
227 #: ../src/viewer.glade.h:6
472 #: ../src/virt-viewer.xml.h:6
228473 msgid "Ctrl+Alt+F_2"
229474 msgstr "Ctrl+Alt+F_2"
230475
231 #: ../src/viewer.glade.h:7
476 #: ../src/virt-viewer.xml.h:7
232477 msgid "Ctrl+Alt+F_3"
233478 msgstr "Ctrl+Alt+F_3"
234479
235 #: ../src/viewer.glade.h:8
480 #: ../src/virt-viewer.xml.h:8
236481 msgid "Ctrl+Alt+F_4"
237482 msgstr "Ctrl+Alt+F_4"
238483
239 #: ../src/viewer.glade.h:9
484 #: ../src/virt-viewer.xml.h:9
240485 msgid "Ctrl+Alt+F_5"
241486 msgstr "Ctrl+Alt+F_5"
242487
243 #: ../src/viewer.glade.h:10
488 #: ../src/virt-viewer.xml.h:10
244489 msgid "Ctrl+Alt+F_6"
245490 msgstr "Ctrl+Alt+F_6"
246491
247 #: ../src/viewer.glade.h:11
492 #: ../src/virt-viewer.xml.h:11
248493 msgid "Ctrl+Alt+F_7"
249494 msgstr "Ctrl+Alt+F_7"
250495
251 #: ../src/viewer.glade.h:12
496 #: ../src/virt-viewer.xml.h:12
252497 msgid "Ctrl+Alt+F_8"
253498 msgstr "Ctrl+Alt+F_8"
254499
255 #: ../src/viewer.glade.h:13
500 #: ../src/virt-viewer.xml.h:13
256501 msgid "Ctrl+Alt+F_9"
257502 msgstr "Ctrl+Alt+F_9"
258503
259 #: ../src/viewer.glade.h:14
504 #: ../src/virt-viewer.xml.h:14
260505 msgid "Ctrl+Alt+_Backspace"
261506 msgstr "Ctrl+Alt+_Backspace"
262507
263 #: ../src/viewer.glade.h:15
508 #: ../src/virt-viewer.xml.h:15
264509 msgid "Ctrl+Alt+_Del"
265510 msgstr "Ctrl+Alt+_Del"
266511
267 #: ../src/viewer.glade.h:16
512 #: ../src/virt-viewer.xml.h:16
513 msgid "Displays"
514 msgstr "প্ৰদৰ্শনসমূহ"
515
516 #: ../src/virt-viewer.xml.h:17
268517 msgid "Full screen"
269518 msgstr "সম্পূৰ্ণ পৰ্দা"
270519
271 #: ../src/viewer.glade.h:17
520 #: ../src/virt-viewer.xml.h:18
521 msgid "Release cursor"
522 msgstr "উন্মোচন কাৰ্চাৰ"
523
524 #: ../src/virt-viewer.xml.h:19
272525 msgid "Screenshot"
273 msgstr "পৰ্দ্দাৰ চিত্ৰ"
274
275 #: ../src/viewer.glade.h:18
526 msgstr "স্ক্ৰিনশ্বট"
527
528 #: ../src/virt-viewer.xml.h:20
529 msgid "Smartcard insertion"
530 msgstr "স্মাৰ্টকাৰ্ড সোমোৱা"
531
532 #: ../src/virt-viewer.xml.h:21
533 msgid "Smartcard removal"
534 msgstr "স্মাৰ্টকাৰ্ড আতৰোৱা"
535
536 #: ../src/virt-viewer.xml.h:23
276537 msgid "_File"
277538 msgstr "নথিপত্ৰ (_F)"
278539
279 #: ../src/viewer.glade.h:19
540 #: ../src/virt-viewer.xml.h:24
280541 msgid "_Help"
281542 msgstr "সহায় (_H)"
282543
283 #: ../src/viewer.glade.h:20
544 #: ../src/virt-viewer.xml.h:25
284545 msgid "_PrintScreen"
285 msgstr "পৰ্দ্দা মূদ্ৰণ কৰক (_P)"
286
287 #: ../src/viewer.glade.h:21
546 msgstr "প্ৰিন্টস্ক্ৰিন (_P)"
547
548 #: ../src/virt-viewer.xml.h:26
288549 msgid "_Send key"
289 msgstr "চাবি পঠিয়াওক (_S)"
290
291 #: ../src/viewer.glade.h:22
550 msgstr "কি পঠাওক (_S)"
551
552 #: ../src/virt-viewer.xml.h:27
292553 msgid "_View"
293 msgstr "চাওক (_V)"
294
295 #: ../src/viewer.glade.h:23
296 msgid "gtk-about"
297 msgstr "gtk-about"
298
299 #: ../src/viewer.glade.h:24
300 msgid "gtk-quit"
301 msgstr "gtk-quit"
302
303 #: ../src/viewer.glade.h:25
304 msgid "page 1"
305 msgstr "পৃষ্ঠা 1"
306
307 #: ../src/viewer.glade.h:26
308 msgid "page 2"
309 msgstr "পৃষ্ঠা 2"
310
554 msgstr "দৰ্শন কৰক (_V)"
555
556 #: ../src/virt-viewer.xml.h:28
557 msgid "_Zoom"
558 msgstr "জুম কৰক (_Z)"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Valentin Laskov <laskov@festa.bg>, 2012.
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: virt-viewer\n"
9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Bulgarian <trans-bg@lists.fedoraproject.org>\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Language: bg\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "Източник"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "Източникът на привързването"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "Цел"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "Целта на привързването"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "Свойства на източника"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "Свойствата на източника на привързване"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "Свойства на целта"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "Свойствата на целта на привързване"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "Флагове"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "Флаговете на привързването"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer версия %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
84 msgid "Run '"
85 msgstr "Стартиране '"
86
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "Показва информация за версията"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "Показва по-подробна информация"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "Директна връзка без автоматични тунели"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "Размер на прозореца в проценти"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "Показва информация за отстраняване на грешки"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "Отвори връзка чрез комуникационния контролер Spice"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
118
119 #. Setup command line options
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- Клиент за отдалечено наблюдение"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "Размерът трябва да е в рамките 10-200\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "Неуспешно инициализиране на връзка"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "Дисплеят е забранен от контролера"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "Връзката на контролера пропадна: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "Не мога да създам Spice сесия"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "Създаване на Spice сесия..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "От това URI не може да се определи типа на връзката"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "Не може да се създаде сесия от този тип: %s"
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "Отдалечен десктоп клиент, създаден с GTK-VNC, SPICE-GTK и libvirt"
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr "Относно Glade"
182
183 #: ../src/virt-viewer-about.xml.h:3
184 msgid ""
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
190 msgid "The Fedora Translation Team"
191 msgstr "The Fedora Translation Team\nВалентин Ласков, 2012"
192
193 #: ../src/virt-viewer-about.xml.h:6
194 msgid ""
195 "This program is free software; you can redistribute it and/or modify\n"
196 "it under the terms of the GNU General Public License as published by\n"
197 "the Free Software Foundation; either version 2 of the License, or\n"
198 "(at your option) any later version.\n"
199 "\n"
200 "This program is distributed in the hope that it will be useful,\n"
201 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
202 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
203 "GNU General Public License for more details.\n"
204 "\n"
205 "You should have received a copy of the GNU General Public License\n"
206 "along with this program; if not, write to the Free Software\n"
207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
211 msgid "virt-manager.org"
212 msgstr "virt-manager.org"
213
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "Това е последният видим екран. Искате ли да излезете?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "Изчаквам за да покажа %d..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "Неизвестен тип графика за госта %s"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "Връзката към ssh пропадна."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "Не мога да се свържа към канала, поддържа се само SSH."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "Свързване към канал не се поддържа."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "Свързване към графичен сървър"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "Виртуализиращата среда на госта беше спряна"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "Свързан към графичен сървър"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "Невъзможно е да се свържа с графичния сървър %s"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "Невъзможно е удостоверяването пред отдалечения десктоп сървър на %s: %s\nДа опитам ли свързването отново?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "Невъзможно е удостоверяването пред отдалечения десктоп сървър: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "Грешка при USB пренасочването: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
281 msgid "Authentication required"
282 msgstr "Изисква се удостоверяване"
283
284 #: ../src/virt-viewer-auth.xml.h:2
285 msgid "Password:"
286 msgstr "Парола:"
287
288 #: ../src/virt-viewer-auth.xml.h:3
289 msgid "Username:"
290 msgstr "Потребител:"
291
292 #: ../src/virt-viewer-auth.xml.h:4
293 msgid "label"
294 msgstr "етикет"
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s версия %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "Прилагане към локалния дисплей посредством libvirt"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "Свързване към хипервайзор"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "Изчаквам стартирането на виртуализиращата среда"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "Повторно включване към виртуализиращата среда при рестартиране"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "Отвори в режим на Цял екран"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Вирт наблюдател"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- Графична конзола на виртуална машина"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nУпотреба: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "Изберете USB устройства за пренасочване"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "Не се поддържа удостоверяване тип %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "Изключване"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "Избор на USB устройства"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "Изход от Цял екран"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "Изчакване виртуализиращата среда на госта да се рестартира"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "Не мога да определя графичния тип за госта %s"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "Не мога да определя графичния адрес за госта %s"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "Не мога да определя хоста за госта %s"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "Търсене на виртуализиращата среда на госта"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "Изчакване виртуализиращата среда да бъде създадена"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "Не мога да намеря виртуализиращата среда на госта %s"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "Проверка състоянието на виртуализиращата среда"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "Изчакване виртуализиращата среда на госта да бъде стартирана"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "Изчакване виртуализиращата среда на госта да стартира сървър"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "Не е възможна връзка към libvirt с URI %s"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[нищо]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
452 msgid "Automatically resize"
453 msgstr "Автоматично мащабиране"
454
455 #: ../src/virt-viewer.xml.h:2
456 msgid "Ctrl+Alt+F11"
457 msgstr "Ctrl+Alt+F11"
458
459 #: ../src/virt-viewer.xml.h:3
460 msgid "Ctrl+Alt+F12"
461 msgstr "Ctrl+Alt+F12"
462
463 #: ../src/virt-viewer.xml.h:4
464 msgid "Ctrl+Alt+F1_0"
465 msgstr "Ctrl+Alt+F1_0"
466
467 #: ../src/virt-viewer.xml.h:5
468 msgid "Ctrl+Alt+F_1"
469 msgstr "Ctrl+Alt+F_1"
470
471 #: ../src/virt-viewer.xml.h:6
472 msgid "Ctrl+Alt+F_2"
473 msgstr "Ctrl+Alt+F_2"
474
475 #: ../src/virt-viewer.xml.h:7
476 msgid "Ctrl+Alt+F_3"
477 msgstr "Ctrl+Alt+F_3"
478
479 #: ../src/virt-viewer.xml.h:8
480 msgid "Ctrl+Alt+F_4"
481 msgstr "Ctrl+Alt+F_4"
482
483 #: ../src/virt-viewer.xml.h:9
484 msgid "Ctrl+Alt+F_5"
485 msgstr "Ctrl+Alt+F_5"
486
487 #: ../src/virt-viewer.xml.h:10
488 msgid "Ctrl+Alt+F_6"
489 msgstr "Ctrl+Alt+F_6"
490
491 #: ../src/virt-viewer.xml.h:11
492 msgid "Ctrl+Alt+F_7"
493 msgstr "Ctrl+Alt+F_7"
494
495 #: ../src/virt-viewer.xml.h:12
496 msgid "Ctrl+Alt+F_8"
497 msgstr "Ctrl+Alt+F_8"
498
499 #: ../src/virt-viewer.xml.h:13
500 msgid "Ctrl+Alt+F_9"
501 msgstr "Ctrl+Alt+F_9"
502
503 #: ../src/virt-viewer.xml.h:14
504 msgid "Ctrl+Alt+_Backspace"
505 msgstr "Ctrl+Alt+_Backspace"
506
507 #: ../src/virt-viewer.xml.h:15
508 msgid "Ctrl+Alt+_Del"
509 msgstr "Ctrl+Alt+_Del"
510
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "Екрани"
514
515 #: ../src/virt-viewer.xml.h:17
516 msgid "Full screen"
517 msgstr "Цял екран"
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "Освобождаване на показалеца"
522
523 #: ../src/virt-viewer.xml.h:19
524 msgid "Screenshot"
525 msgstr "Снимка на екрана"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "Поставяне на смарткарта"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "Премахване на смарткарта"
534
535 #: ../src/virt-viewer.xml.h:23
536 msgid "_File"
537 msgstr "_Файл"
538
539 #: ../src/virt-viewer.xml.h:24
540 msgid "_Help"
541 msgstr "_Помощ"
542
543 #: ../src/virt-viewer.xml.h:25
544 msgid "_PrintScreen"
545 msgstr "Отпечатай _екрана"
546
547 #: ../src/virt-viewer.xml.h:26
548 msgid "_Send key"
549 msgstr "Изпрати _клавиш"
550
551 #: ../src/virt-viewer.xml.h:27
552 msgid "_View"
553 msgstr "_Изглед"
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "_Мащабиране"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Ayesha Akhtar <ayesha@ankur.org.bd>, 2012.
6 # Mahay Alam Khan <mak@ankur.org.bd>, 2012.
7 # Newton Baidya <newton@ankur.org.bd>, 2012.
8 # Robin Mehdee <robin@ankur.org.bd>, 2012.
9 # Runa Bhattacharjee <runab@redhat.com>, 2010.
10 # <runabh@gmail.com>, 2012.
11 msgid ""
12 msgstr ""
13 "Project-Id-Version: virt-viewer\n"
14 "Report-Msgid-Bugs-To: \n"
15 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
16 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
17 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
18 "Language-Team: Bengali <info@ankur.org.bd>\n"
19 "MIME-Version: 1.0\n"
20 "Content-Type: text/plain; charset=UTF-8\n"
21 "Content-Transfer-Encoding: 8bit\n"
22 "Language: bn\n"
23 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
24
25 #: ../src/gbinding.c:637
26 msgid "Source"
27 msgstr "উৎস"
28
29 #: ../src/gbinding.c:638
30 msgid "The source of the binding"
31 msgstr "বাইন্ডিংয়ের উৎস"
32
33 #: ../src/gbinding.c:652
34 msgid "Target"
35 msgstr "উদ্দিষ্ট"
36
37 #: ../src/gbinding.c:653
38 msgid "The target of the binding"
39 msgstr "বাইন্ডিংয়ের উদ্দিষ্টবস্তু"
40
41 #: ../src/gbinding.c:668
42 msgid "Source Property"
43 msgstr "উৎসের বস্তু"
44
45 #: ../src/gbinding.c:669
46 msgid "The property on the source to bind"
47 msgstr "উৎসের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু"
48
49 #: ../src/gbinding.c:684
50 msgid "Target Property"
51 msgstr "উদ্দিষ্টের বস্তু"
52
53 #: ../src/gbinding.c:685
54 msgid "The property on the target to bind"
55 msgstr "উদ্দিষ্টের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু"
56
57 #: ../src/gbinding.c:699
58 msgid "Flags"
59 msgstr "ফ্ল্যাগ"
60
61 #: ../src/gbinding.c:700
62 msgid "The binding flags"
63 msgstr "বাইন্ড করতে ব্যবহৃত ফ্ল্যাগ"
64
65 #: ../src/remote-viewer-main.c:47
66 #, c-format
67 msgid "remote-viewer version %s\n"
68 msgstr "remote-viewer সংস্করণ %s\n"
69
70 #: ../src/remote-viewer-main.c:69
71 #, c-format
72 msgid "Invalid full-screen argument: %s"
73 msgstr ""
74
75 #. Create the widgets
76 #: ../src/remote-viewer-main.c:104
77 msgid "Connection details"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:119
81 msgid "URL:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:127
85 msgid "Recent connections:"
86 msgstr ""
87
88 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
89 msgid "Run '"
90 msgstr "সঞ্চালিত হবে '"
91
92 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
93 msgid "Display version information"
94 msgstr "সংস্করণ সংক্রান্ত তথ্য প্রদর্শন করা হবে"
95
96 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
97 msgid "Display verbose information"
98 msgstr "ভার্বোস তথ্য প্রদর্শন করা হবে"
99
100 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
101 msgid "Direct connection with no automatic tunnels"
102 msgstr "স্বয়ংক্রিয় টানেল বিনা কোনো সরাসরি যোগাযোগ নেই"
103
104 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
105 msgid "Zoom level of window, in percentage"
106 msgstr "উইন্ডোর প্রদর্শনের মাপ, শতাংশে ব্যক্ত"
107
108 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
109 msgid "Display debugging information"
110 msgstr "ডিবাগ সংক্রান্ত তথ্য প্রদর্শন করা হবে"
111
112 #: ../src/remote-viewer-main.c:219
113 msgid "Open in full screen mode (=<auto-conf>)"
114 msgstr ""
115
116 #: ../src/remote-viewer-main.c:222
117 msgid "Open connection using Spice controller communication"
118 msgstr "Spice কন্ট্রোলারের যোগাব্যবস্থার মাধ্যমে সংযোগ আরম্ভ করা হবে"
119
120 #: ../src/remote-viewer-main.c:249
121 msgid "Remote Viewer"
122 msgstr ""
123
124 #. Setup command line options
125 #: ../src/remote-viewer-main.c:252
126 msgid "- Remote viewer client"
127 msgstr "- দূরবর্তী প্রদর্শনব্যবস্থার ক্লায়েন্ট"
128
129 #: ../src/remote-viewer-main.c:275
130 #, c-format
131 msgid "Error: extra arguments given while using Spice controller\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:284
135 #, c-format
136 msgid "Error: can't handle multiple URIs\n"
137 msgstr ""
138
139 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
140 #, c-format
141 msgid "Zoom level must be within 10-200\n"
142 msgstr "প্রদর্শনের মাত্রা ১০-২০০-র মধ্যে হওয়া আবশ্যক\n"
143
144 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
145 msgid "Failed to initiate connection"
146 msgstr "সংযোগ আরম্ভ করতে ব্যর্থ"
147
148 #: ../src/remote-viewer.c:250
149 msgid "Display disabled by controller"
150 msgstr "কন্ট্রোলার দ্বারা প্রদর্শন নিষ্ক্রিয় করা হয়েছে"
151
152 #: ../src/remote-viewer.c:697
153 #, c-format
154 msgid "Controller connection failed: %s"
155 msgstr "কন্ট্রোলারের সংযোগ স্থাপন করতে ব্যর্থ: %s"
156
157 #: ../src/remote-viewer.c:750
158 msgid "Couldn't create a Spice session"
159 msgstr "একটি Spice সেশান প্রস্তুত করতে ব্যর্থ"
160
161 #: ../src/remote-viewer.c:764
162 msgid "Setting up Spice session..."
163 msgstr "Spice-র সেশান প্রস্তুত করা হচ্ছে..."
164
165 #: ../src/remote-viewer.c:774
166 msgid "Cannot determine the connection type from URI"
167 msgstr "URI থেকে সংযোগের ধরন নির্ধারণ করা সম্ভব নয়"
168
169 #: ../src/remote-viewer.c:779
170 #, c-format
171 msgid "Couldn't create a session for this type: %s"
172 msgstr "এই ধরনের জন্য সেশান প্রস্তুত করা যায়নি: %s"
173
174 #. * Local variables:
175 #. * c-indent-level: 4
176 #. * c-basic-offset: 4
177 #. * indent-tabs-mode: nil
178 #. * End:
179 #.
180 #: ../src/virt-viewer-about.xml.h:1
181 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
182 msgstr "GTK-VNC, SPICE-GTK ও libvirt সহযোগে নির্মিত একটি দূরবর্তী ডেস্কটপ"
183
184 #: ../src/virt-viewer-about.xml.h:2
185 msgid "About Glade"
186 msgstr "Glade পরিচিতি"
187
188 #: ../src/virt-viewer-about.xml.h:3
189 msgid ""
190 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
191 "Copyright (C) 2007-2012 Red Hat, Inc."
192 msgstr "স্বত্বাধিকার (C) ২০০৭-২০১২ ড্যানিয়েল পি. বেরাঞ্জ\nস্বত্বাধিকার (C) ২০০৭-২০১২ Red Hat, Inc."
193
194 #: ../src/virt-viewer-about.xml.h:5
195 msgid "The Fedora Translation Team"
196 msgstr "Fedora-র অনুবাদকদের দল"
197
198 #: ../src/virt-viewer-about.xml.h:6
199 msgid ""
200 "This program is free software; you can redistribute it and/or modify\n"
201 "it under the terms of the GNU General Public License as published by\n"
202 "the Free Software Foundation; either version 2 of the License, or\n"
203 "(at your option) any later version.\n"
204 "\n"
205 "This program is distributed in the hope that it will be useful,\n"
206 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
207 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
208 "GNU General Public License for more details.\n"
209 "\n"
210 "You should have received a copy of the GNU General Public License\n"
211 "along with this program; if not, write to the Free Software\n"
212 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
213 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"
214
215 #: ../src/virt-viewer-about.xml.h:20
216 msgid "virt-manager.org"
217 msgstr "virt-manager.org"
218
219 #: ../src/virt-viewer-app.c:284
220 msgid "This is the last visible display. Do you want to quit?"
221 msgstr "এটি সর্বশেষ দৃশ্যমান প্রদর্শন। আপনি কি প্রস্থান করতে ইচ্ছুক?"
222
223 #: ../src/virt-viewer-app.c:624
224 #, c-format
225 msgid "Waiting for display %d..."
226 msgstr "%d প্রদর্শনের জন্য অপেক্ষা করা হচ্ছে..."
227
228 #: ../src/virt-viewer-app.c:707
229 #, c-format
230 msgid "Unknown graphic type for the guest %s"
231 msgstr "%s গেস্ট মেশিনের জন্য অজানা ধরনের গ্রাফিক"
232
233 #: ../src/virt-viewer-app.c:782
234 msgid "Connect to ssh failed."
235 msgstr "ssh-র সাথে সংযোগ করতে ব্যর্থ।"
236
237 #: ../src/virt-viewer-app.c:784
238 msgid "Can't connect to channel, SSH only supported."
239 msgstr "চ্যানেলের সাথে সংযোগ করা যায়নি, শুধুমাত্র SSH সমর্থিত হবে।"
240
241 #: ../src/virt-viewer-app.c:796
242 msgid "Connect to channel unsupported."
243 msgstr "সমর্থন বিনা চ্যানেলের সাথে সংযোগ করা হবে।"
244
245 #: ../src/virt-viewer-app.c:876
246 msgid "Connecting to graphic server"
247 msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হচ্ছে"
248
249 #: ../src/virt-viewer-app.c:1006
250 msgid "Guest domain has shutdown"
251 msgstr "গেস্ট ডোমেইন বন্ধ হয়েছে"
252
253 #: ../src/virt-viewer-app.c:1056
254 msgid "Connected to graphic server"
255 msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে"
256
257 #: ../src/virt-viewer-app.c:1082
258 #, c-format
259 msgid "Unable to connect to the graphic server %s"
260 msgstr "%s গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ"
261
262 #: ../src/virt-viewer-app.c:1111
263 #, c-format
264 msgid ""
265 "Unable to authenticate with remote desktop server at %s: %s\n"
266 "Retry connection again?"
267 msgstr "%s-এ উপস্থিত দূরবর্তী ডেস্কটপ সার্ভারে অনুমোদন করতে ব্যর্থ: %s\nপুনরায় সংযোগের প্রচেষ্টা করা হবে কি?"
268
269 #: ../src/virt-viewer-app.c:1131
270 #, c-format
271 msgid "Unable to authenticate with remote desktop server: %s"
272 msgstr "দূরবর্তী ডেস্কটপ সার্ভারের সাথে অনুমোদন করতে ব্যর্থ: %s"
273
274 #: ../src/virt-viewer-app.c:1139
275 #, c-format
276 msgid "USB redirection error: %s"
277 msgstr "USB পুনর্নির্দেশে সমস্যা: %s"
278
279 #. * Local variables:
280 #. * c-indent-level: 4
281 #. * c-basic-offset: 4
282 #. * indent-tabs-mode: nil
283 #. * End:
284 #.
285 #: ../src/virt-viewer-auth.xml.h:1
286 msgid "Authentication required"
287 msgstr "অনুমোদন প্রয়োজন"
288
289 #: ../src/virt-viewer-auth.xml.h:2
290 msgid "Password:"
291 msgstr "পাসওয়ার্ড:"
292
293 #: ../src/virt-viewer-auth.xml.h:3
294 msgid "Username:"
295 msgstr "ব্যবহারকারীর নাম:"
296
297 #: ../src/virt-viewer-auth.xml.h:4
298 msgid "label"
299 msgstr "label"
300
301 #: ../src/virt-viewer-main.c:38
302 #, c-format
303 msgid "%s version %s\n"
304 msgstr "%s সংস্করণ %s\n"
305
306 #: ../src/virt-viewer-main.c:69
307 msgid "Attach to the local display using libvirt"
308 msgstr "libvirt সহযোগে স্থানীয় প্রদর্শন ব্যবস্থার সাথে সংযোগ করুন"
309
310 #: ../src/virt-viewer-main.c:71
311 msgid "Connect to hypervisor"
312 msgstr "হাইপার-ভাইসরের সাথে সংযোগ স্থাপন করুন"
313
314 #: ../src/virt-viewer-main.c:73
315 msgid "Wait for domain to start"
316 msgstr "ডোমেইন আরম্ভ করতে ব্যর্থ"
317
318 #: ../src/virt-viewer-main.c:75
319 msgid "Reconnect to domain upon restart"
320 msgstr "পুনরারম্ভের পরে ডোমেইনের সাথে সংযোগ পুনরায় স্থাপন করা হবে"
321
322 #: ../src/virt-viewer-main.c:81
323 msgid "Open in full screen mode"
324 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন করা হবে"
325
326 #: ../src/virt-viewer-main.c:96
327 msgid "Virt Viewer"
328 msgstr "Virt Viewer"
329
330 #. Setup command line options
331 #: ../src/virt-viewer-main.c:99
332 msgid "- Virtual machine graphical console"
333 msgstr "- ভার্চুয়াল মেশিনের গ্রাফিক্যাল কনসোল"
334
335 #: ../src/virt-viewer-main.c:120
336 #, c-format
337 msgid ""
338 "\n"
339 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
340 "\n"
341 "%s\n"
342 "\n"
343 msgstr "\nব্যবহার পদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
344
345 #. Create the widgets
346 #: ../src/virt-viewer-session-spice.c:380
347 msgid "Select USB devices for redirection"
348 msgstr "পুনর্নির্দেশের জন্য USB ডিভাইস নির্বাচন করুন"
349
350 #: ../src/virt-viewer-session-vnc.c:141
351 #, c-format
352 msgid "Unsupported authentication type %d"
353 msgstr "%d ধরনের অনুমোদন সমর্থিত নয়"
354
355 #: ../src/virt-viewer-window.c:832
356 msgid "Disconnect"
357 msgstr "সংযোগ বিচ্ছেদ করুন"
358
359 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
360 #: ../src/virt-viewer.xml.h:22
361 msgid "USB device selection"
362 msgstr "USB ডিভাইস নির্বাচন"
363
364 #: ../src/virt-viewer-window.c:848
365 msgid "Send key combination"
366 msgstr ""
367
368 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
369 msgid "Leave fullscreen"
370 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন থেকে প্রস্থান"
371
372 #: ../src/virt-viewer-window.c:937
373 msgid "Ctrl+Alt"
374 msgstr ""
375
376 #: ../src/virt-viewer-window.c:940
377 #, c-format
378 msgid "(Press %s to release pointer)"
379 msgstr ""
380
381 #. translators:
382 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
383 #. <appname>"
384 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
385 #. Viewer"
386 #.
387 #: ../src/virt-viewer-window.c:951
388 #, c-format
389 msgid "%s%s%s - %s"
390 msgstr "%s%s%s - %s"
391
392 #. translators: <space>
393 #: ../src/virt-viewer-window.c:955
394 msgid " "
395 msgstr " "
396
397 #: ../src/virt-viewer.c:144
398 msgid "Waiting for guest domain to re-start"
399 msgstr "গেস্ট ডোমেইন পুনরায় আরম্ভের অপেক্ষা করা হচ্ছে"
400
401 #: ../src/virt-viewer.c:308
402 #, c-format
403 msgid "Cannot determine the graphic type for the guest %s"
404 msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিকের ধরন নির্ধারণ করা সম্ভব নয়"
405
406 #: ../src/virt-viewer.c:321
407 #, c-format
408 msgid "Cannot determine the graphic address for the guest %s"
409 msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিক ঠিকানা নির্ধারণ করা সম্ভব নয়"
410
411 #: ../src/virt-viewer.c:344
412 #, c-format
413 msgid "Cannot determine the host for the guest %s"
414 msgstr "%s গেস্ট মেশিনের জন্য হোস্ট নির্ধারণ করা সম্ভব নয়"
415
416 #: ../src/virt-viewer.c:474
417 msgid "Finding guest domain"
418 msgstr "গেস্ট ডোমেইন সন্ধান করা হচ্ছে"
419
420 #: ../src/virt-viewer.c:478
421 msgid "Waiting for guest domain to be created"
422 msgstr "গেস্ট ডোমেইন প্রস্তুতির অপেক্ষা করা হচ্ছে"
423
424 #: ../src/virt-viewer.c:483
425 #, c-format
426 msgid "Cannot find guest domain %s"
427 msgstr "%s গেস্ট ডোমেইন সন্ধান করতে ব্যর্থ"
428
429 #: ../src/virt-viewer.c:490
430 msgid "Checking guest domain status"
431 msgstr "গেস্ট ডোমেইনের অবস্থা পরীক্ষা করতে ব্যর্থ"
432
433 #: ../src/virt-viewer.c:497
434 msgid "Waiting for guest domain to start"
435 msgstr "গেস্ট ডোমেইন আরম্ভের অপেক্ষা করা হচ্ছে"
436
437 #: ../src/virt-viewer.c:504
438 msgid "Waiting for guest domain to start server"
439 msgstr "গেস্ট ডোমেইন দ্বারা সার্ভার আরম্ভের অপেক্ষা করা হচ্ছে"
440
441 #: ../src/virt-viewer.c:624
442 #, c-format
443 msgid "Unable to connect to libvirt with URI %s"
444 msgstr "URI %s সহযোগে libvirt-র সাথে সংযোগ করতে ব্যর্থ"
445
446 #: ../src/virt-viewer.c:625
447 msgid "[none]"
448 msgstr "[শূণ্য]"
449
450 #. * Local variables:
451 #. * c-indent-level: 4
452 #. * c-basic-offset: 4
453 #. * indent-tabs-mode: nil
454 #. * End:
455 #.
456 #: ../src/virt-viewer.xml.h:1
457 msgid "Automatically resize"
458 msgstr "স্বয়ংক্রিয়ভাবে মাপ পরিবর্তন করুন"
459
460 #: ../src/virt-viewer.xml.h:2
461 msgid "Ctrl+Alt+F11"
462 msgstr "Ctrl+Alt+F11"
463
464 #: ../src/virt-viewer.xml.h:3
465 msgid "Ctrl+Alt+F12"
466 msgstr "Ctrl+Alt+F12"
467
468 #: ../src/virt-viewer.xml.h:4
469 msgid "Ctrl+Alt+F1_0"
470 msgstr "Ctrl+Alt+F1_0"
471
472 #: ../src/virt-viewer.xml.h:5
473 msgid "Ctrl+Alt+F_1"
474 msgstr "Ctrl+Alt+F_1"
475
476 #: ../src/virt-viewer.xml.h:6
477 msgid "Ctrl+Alt+F_2"
478 msgstr "Ctrl+Alt+F_2"
479
480 #: ../src/virt-viewer.xml.h:7
481 msgid "Ctrl+Alt+F_3"
482 msgstr "Ctrl+Alt+F_3"
483
484 #: ../src/virt-viewer.xml.h:8
485 msgid "Ctrl+Alt+F_4"
486 msgstr "Ctrl+Alt+F_4"
487
488 #: ../src/virt-viewer.xml.h:9
489 msgid "Ctrl+Alt+F_5"
490 msgstr "Ctrl+Alt+F_5"
491
492 #: ../src/virt-viewer.xml.h:10
493 msgid "Ctrl+Alt+F_6"
494 msgstr "Ctrl+Alt+F_6"
495
496 #: ../src/virt-viewer.xml.h:11
497 msgid "Ctrl+Alt+F_7"
498 msgstr "Ctrl+Alt+F_7"
499
500 #: ../src/virt-viewer.xml.h:12
501 msgid "Ctrl+Alt+F_8"
502 msgstr "Ctrl+Alt+F_8"
503
504 #: ../src/virt-viewer.xml.h:13
505 msgid "Ctrl+Alt+F_9"
506 msgstr "Ctrl+Alt+F_9"
507
508 #: ../src/virt-viewer.xml.h:14
509 msgid "Ctrl+Alt+_Backspace"
510 msgstr "Ctrl+Alt+_Backspace"
511
512 #: ../src/virt-viewer.xml.h:15
513 msgid "Ctrl+Alt+_Del"
514 msgstr "Ctrl+Alt+_Del"
515
516 #: ../src/virt-viewer.xml.h:16
517 msgid "Displays"
518 msgstr "প্রদর্শনক্ষেত্র"
519
520 #: ../src/virt-viewer.xml.h:17
521 msgid "Full screen"
522 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন"
523
524 #: ../src/virt-viewer.xml.h:18
525 msgid "Release cursor"
526 msgstr "কার্সার মুক্ত করা হবে"
527
528 #: ../src/virt-viewer.xml.h:19
529 msgid "Screenshot"
530 msgstr "স্ক্রিন-শট"
531
532 #: ../src/virt-viewer.xml.h:20
533 msgid "Smartcard insertion"
534 msgstr "স্মার্ট-কার্ড অন্তর্ভুক্তি"
535
536 #: ../src/virt-viewer.xml.h:21
537 msgid "Smartcard removal"
538 msgstr "স্মার্ট-কার্ড অপসারণ"
539
540 #: ../src/virt-viewer.xml.h:23
541 msgid "_File"
542 msgstr "ফাইল (_F)"
543
544 #: ../src/virt-viewer.xml.h:24
545 msgid "_Help"
546 msgstr "সহায়তা (_H)"
547
548 #: ../src/virt-viewer.xml.h:25
549 msgid "_PrintScreen"
550 msgstr "_PrintScreen"
551
552 #: ../src/virt-viewer.xml.h:26
553 msgid "_Send key"
554 msgstr "কি পাঠিয়ে দিন (_S)"
555
556 #: ../src/virt-viewer.xml.h:27
557 msgid "_View"
558 msgstr "প্রদর্শন (_V)"
559
560 #: ../src/virt-viewer.xml.h:28
561 msgid "_Zoom"
562 msgstr "প্রদর্শনের নাম (_Z)"
0 # translation of virt-viewer.tip.virt-viewer.po to Bengali INDIA
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
3 #
4 # Translators:
45 # Runa Bhattacharjee <runab@redhat.com>, 2010.
6 # <runabh@gmail.com>, 2012.
57 msgid ""
68 msgstr ""
7 "Project-Id-Version: virt-viewer.tip.virt-viewer\n"
9 "Project-Id-Version: virt-viewer\n"
810 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-02-26 08:22+0000\n"
10 "PO-Revision-Date: 2010-02-26 15:55+0530\n"
11 "Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n"
12 "Language-Team: Bengali INDIA <anubad@lists.ankur.org.in>\n"
11 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
12 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
13 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
14 "Language-Team: Bengali (India) <anubad@lists.ankur.org.in>\n"
1315 "MIME-Version: 1.0\n"
1416 "Content-Type: text/plain; charset=UTF-8\n"
1517 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s সংস্করণ %s\n"
23
24 #: ../src/main.c:52
18 "Language: bn_IN\n"
19 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
20
21 #: ../src/gbinding.c:637
22 msgid "Source"
23 msgstr "উৎস"
24
25 #: ../src/gbinding.c:638
26 msgid "The source of the binding"
27 msgstr "বাইন্ডিংয়ের উৎস"
28
29 #: ../src/gbinding.c:652
30 msgid "Target"
31 msgstr "উদ্দিষ্ট"
32
33 #: ../src/gbinding.c:653
34 msgid "The target of the binding"
35 msgstr "বাইন্ডিংয়ের উদ্দিষ্টবস্তু"
36
37 #: ../src/gbinding.c:668
38 msgid "Source Property"
39 msgstr "উৎসের বস্তু"
40
41 #: ../src/gbinding.c:669
42 msgid "The property on the source to bind"
43 msgstr "উৎসের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু"
44
45 #: ../src/gbinding.c:684
46 msgid "Target Property"
47 msgstr "উদ্দিষ্টের বস্তু"
48
49 #: ../src/gbinding.c:685
50 msgid "The property on the target to bind"
51 msgstr "উদ্দিষ্টের মধ্যে বাইন্ড করার জন্য চিহ্নিত বস্তু"
52
53 #: ../src/gbinding.c:699
54 msgid "Flags"
55 msgstr "ফ্ল্যাগ"
56
57 #: ../src/gbinding.c:700
58 msgid "The binding flags"
59 msgstr "বাইন্ড করতে ব্যবহৃত ফ্ল্যাগ"
60
61 #: ../src/remote-viewer-main.c:47
62 #, c-format
63 msgid "remote-viewer version %s\n"
64 msgstr "remote-viewer সংস্করণ %s\n"
65
66 #: ../src/remote-viewer-main.c:69
67 #, c-format
68 msgid "Invalid full-screen argument: %s"
69 msgstr ""
70
71 #. Create the widgets
72 #: ../src/remote-viewer-main.c:104
73 msgid "Connection details"
74 msgstr ""
75
76 #: ../src/remote-viewer-main.c:119
77 msgid "URL:"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:127
81 msgid "Recent connections:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2585 msgid "Run '"
2686 msgstr "সঞ্চালিত হবে '"
2787
28 #: ../src/main.c:55
29 msgid "display version information"
88 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
89 msgid "Display version information"
3090 msgstr "সংস্করণ সংক্রান্ত তথ্য প্রদর্শন করা হবে"
3191
32 #: ../src/main.c:57
33 msgid "display verbose information"
92 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
93 msgid "Display verbose information"
3494 msgstr "ভার্বোস তথ্য প্রদর্শন করা হবে"
3595
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
38 msgstr "স্বয়ংক্রিয় টানেল বিনা কোনো সরাসরি যোগাযোগ নেই"
39
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "হাইপার-ভাইসরের সাথে সংযোগ স্থাপন করুন"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "ডোমেইন আরম্ভের অপেক্ষা করা হবে"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "পুনরারম্ভের পরে ডোমেইনের সাথে সংযোগ পুনরায় স্থাপন করা হবে"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
96 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
97 msgid "Direct connection with no automatic tunnels"
98 msgstr "স্বয়ংক্রিয় টানেল বিনা কোনো সরাসরি যোগাযোগ নেই"
99
100 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
101 msgid "Zoom level of window, in percentage"
102 msgstr "উইন্ডোর প্রদর্শনের মাপ, শতাংশে ব্যক্ত"
103
104 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
105 msgid "Display debugging information"
54106 msgstr "ডিবাগ সংক্রান্ত তথ্য প্রদর্শন করা হবে"
55107
108 #: ../src/remote-viewer-main.c:219
109 msgid "Open in full screen mode (=<auto-conf>)"
110 msgstr ""
111
112 #: ../src/remote-viewer-main.c:222
113 msgid "Open connection using Spice controller communication"
114 msgstr "Spice কন্ট্রোলারের যোগাব্যবস্থার মাধ্যমে সংযোগ আরম্ভ করা হবে"
115
116 #: ../src/remote-viewer-main.c:249
117 msgid "Remote Viewer"
118 msgstr ""
119
56120 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "- ভার্চুয়াল মেশিনের গ্রাফিক্যাল কনসোল"
60
61 #: ../src/main.c:95
62 #, c-format
63 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "ব্যবহার পদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "%s গেস্ট মেশিনের জন্য VNC পোর্ট নির্ধারণ করা সম্ভব নয়"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "%s গেস্ট মেশিনের জন্য VNC হোস্ট নির্ধারণ করা সম্ভব নয়"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "%s VNC সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "%s-এ উপস্থিত VNC সার্ভারে অনুমোদন করতে ব্যর্থ: %s\n"
98 "পুনরায় সংযোগের প্রচেষ্টা করা হবে কি?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "%s-এ উপস্থিত VNC সার্ভারে অনুমোদন করতে ব্যর্থ\n"
107 "%d ধরনের অনুমোদন সমর্থিত নয়"
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "%s গেস্ট ডোমেইন সন্ধান করতে ব্যর্থ"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %s সহযোগে libvirt-র সাথে সংযোগ করতে ব্যর্থ"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "[শূণ্য]"
122
123 #.
121 #: ../src/remote-viewer-main.c:252
122 msgid "- Remote viewer client"
123 msgstr "- দূরবর্তী প্রদর্শনব্যবস্থার ক্লায়েন্ট"
124
125 #: ../src/remote-viewer-main.c:275
126 #, c-format
127 msgid "Error: extra arguments given while using Spice controller\n"
128 msgstr ""
129
130 #: ../src/remote-viewer-main.c:284
131 #, c-format
132 msgid "Error: can't handle multiple URIs\n"
133 msgstr ""
134
135 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
136 #, c-format
137 msgid "Zoom level must be within 10-200\n"
138 msgstr "প্রদর্শনের মাত্রা ১০-২০০-র মধ্যে হওয়া আবশ্যক\n"
139
140 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
141 msgid "Failed to initiate connection"
142 msgstr "সংযোগ আরম্ভ করতে ব্যর্থ"
143
144 #: ../src/remote-viewer.c:250
145 msgid "Display disabled by controller"
146 msgstr "কন্ট্রোলার দ্বারা প্রদর্শন নিষ্ক্রিয় করা হয়েছে"
147
148 #: ../src/remote-viewer.c:697
149 #, c-format
150 msgid "Controller connection failed: %s"
151 msgstr "কন্ট্রোলারের সংযোগ স্থাপন করতে ব্যর্থ: %s"
152
153 #: ../src/remote-viewer.c:750
154 msgid "Couldn't create a Spice session"
155 msgstr "একটি Spice সেশান প্রস্তুত করতে ব্যর্থ"
156
157 #: ../src/remote-viewer.c:764
158 msgid "Setting up Spice session..."
159 msgstr "Spice-র সেশান প্রস্তুত করা হচ্ছে..."
160
161 #: ../src/remote-viewer.c:774
162 msgid "Cannot determine the connection type from URI"
163 msgstr "URI থেকে সংযোগের ধরন নির্ধারণ করা সম্ভব নয়"
164
165 #: ../src/remote-viewer.c:779
166 #, c-format
167 msgid "Couldn't create a session for this type: %s"
168 msgstr "এই ধরনের জন্য সেশান প্রস্তুত করা যায়নি: %s"
169
124170 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
171 #. * c-indent-level: 4
172 #. * c-basic-offset: 4
173 #. * indent-tabs-mode: nil
128174 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "GTK-VNC ও libvirt সহযোগে নির্মিত একটি দূরবর্তী ডেস্কটপ ক্লায়েন্ট"
133
134 #: ../src/about.glade.h:2
175 #.
176 #: ../src/virt-viewer-about.xml.h:1
177 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
178 msgstr "GTK-VNC, SPICE-GTK ও libvirt সহযোগে নির্মিত একটি দূরবর্তী ডেস্কটপ"
179
180 #: ../src/virt-viewer-about.xml.h:2
135181 msgid "About Glade"
136182 msgstr "Glade পরিচিতি"
137183
138 #: ../src/about.glade.h:3
184 #: ../src/virt-viewer-about.xml.h:3
139185 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "স্বত্বাধিকার ২০০৭-২০০৮ ডেনিয়েল পি. বেরাঞ্জ\n"
144 "স্বত্বাধিকার ২০০৭-২০০৮ Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
186 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
187 "Copyright (C) 2007-2012 Red Hat, Inc."
188 msgstr "স্বত্বাধিকার (C) ২০০৭-২০১২ ড্যানিয়েল পি. বেরাঞ্জ\nস্বত্বাধিকার (C) ২০০৭-২০১২ Red Hat, Inc."
189
190 #: ../src/virt-viewer-about.xml.h:5
147191 msgid "The Fedora Translation Team"
148 msgstr "Fedora অনুবাদের দল"
149
150 #: ../src/about.glade.h:6
192 msgstr "Fedora-র অনুবাদকদের দল"
193
194 #: ../src/virt-viewer-about.xml.h:6
151195 msgid ""
152196 "This program is free software; you can redistribute it and/or modify\n"
153197 "it under the terms of the GNU General Public License as published by\n"
162206 "You should have received a copy of the GNU General Public License\n"
163207 "along with this program; if not, write to the Free Software\n"
164208 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "এই প্রোগ্রামটি একটি মুক্ত সফ্টওয়্যার; Free Software Foundation দ্বারা প্রকাশিত GNU\n"
167 "General Public License-র শর্তানুযায়ী এটি বিতরণ ও পরিবর্তন করা যাবে; লাইসেন্সের\n"
168 "সংস্করণ ২ অথবা (আপনার সুবিধানুযায়ী) ঊর্ধ্বতন কোনো সংস্করণের অধীন।\n"
169 "\n"
170 "এই প্রোগ্রামটি বিতরণ করার মূল উদ্দেশ্য যে ব্যবহারকারীরা এর দ্বারা উপকৃত হবেন, কিন্তু\n"
171 "এটির জন্য কোনো সুস্পষ্ট ওয়ারেন্টি উপস্থিত নেই; বাণিজ্যিক ও কোনো সুনির্দিষ্ট কর্ম সাধনের\n"
172 "জন্য অন্তর্নিহীত ওয়ারেন্টিও অনুপস্থিত। অধিক জানতে GNU General Public License পড়ুন।\n"
173 "\n"
174 "এটির সাথে GNU General Public License-র একটি প্রতিলিপি উপলব্ধ হওয়া উচিত;\n"
175 "না থাকলে Free Software Foundation, Inc., 59 Temple Place, Suite 330, \n"
176 "Boston, MA 02111-1307 USA থেকে তা প্রাপ্ত করুন\n"
177
178 #: ../src/about.glade.h:20
209 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"
210
211 #: ../src/virt-viewer-about.xml.h:20
179212 msgid "virt-manager.org"
180213 msgstr "virt-manager.org"
181214
182 #: ../src/auth.glade.h:1
215 #: ../src/virt-viewer-app.c:284
216 msgid "This is the last visible display. Do you want to quit?"
217 msgstr "এটি সর্বশেষ দৃশ্যমান প্রদর্শন। আপনি কি প্রস্থান করতে ইচ্ছুক?"
218
219 #: ../src/virt-viewer-app.c:624
220 #, c-format
221 msgid "Waiting for display %d..."
222 msgstr "%d প্রদর্শনের জন্য অপেক্ষা করা হচ্ছে..."
223
224 #: ../src/virt-viewer-app.c:707
225 #, c-format
226 msgid "Unknown graphic type for the guest %s"
227 msgstr "%s গেস্ট মেশিনের জন্য অজানা ধরনের গ্রাফিক"
228
229 #: ../src/virt-viewer-app.c:782
230 msgid "Connect to ssh failed."
231 msgstr "ssh-র সাথে সংযোগ করতে ব্যর্থ।"
232
233 #: ../src/virt-viewer-app.c:784
234 msgid "Can't connect to channel, SSH only supported."
235 msgstr "চ্যানেলের সাথে সংযোগ করা যায়নি, শুধুমাত্র SSH সমর্থিত হবে।"
236
237 #: ../src/virt-viewer-app.c:796
238 msgid "Connect to channel unsupported."
239 msgstr "সমর্থন বিনা চ্যানেলের সাথে সংযোগ করা হবে।"
240
241 #: ../src/virt-viewer-app.c:876
242 msgid "Connecting to graphic server"
243 msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হচ্ছে"
244
245 #: ../src/virt-viewer-app.c:1006
246 msgid "Guest domain has shutdown"
247 msgstr "গেস্ট ডোমেইন বন্ধ হয়েছে"
248
249 #: ../src/virt-viewer-app.c:1056
250 msgid "Connected to graphic server"
251 msgstr "গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে"
252
253 #: ../src/virt-viewer-app.c:1082
254 #, c-format
255 msgid "Unable to connect to the graphic server %s"
256 msgstr "%s গ্রাফিক সার্ভারের সাথে সংযোগ স্থাপন করতে ব্যর্থ"
257
258 #: ../src/virt-viewer-app.c:1111
259 #, c-format
260 msgid ""
261 "Unable to authenticate with remote desktop server at %s: %s\n"
262 "Retry connection again?"
263 msgstr "%s-এ উপস্থিত দূরবর্তী ডেস্কটপ সার্ভারে অনুমোদন করতে ব্যর্থ: %s\nপুনরায় সংযোগের প্রচেষ্টা করা হবে কি?"
264
265 #: ../src/virt-viewer-app.c:1131
266 #, c-format
267 msgid "Unable to authenticate with remote desktop server: %s"
268 msgstr "দূরবর্তী ডেস্কটপ সার্ভারের সাথে অনুমোদন করতে ব্যর্থ: %s"
269
270 #: ../src/virt-viewer-app.c:1139
271 #, c-format
272 msgid "USB redirection error: %s"
273 msgstr "USB পুনর্নির্দেশে সমস্যা: %s"
274
275 #. * Local variables:
276 #. * c-indent-level: 4
277 #. * c-basic-offset: 4
278 #. * indent-tabs-mode: nil
279 #. * End:
280 #.
281 #: ../src/virt-viewer-auth.xml.h:1
183282 msgid "Authentication required"
184 msgstr "অনুমোদন প্রয়োজন"
185
186 #: ../src/auth.glade.h:2
283 msgstr "অনুমোদন প্রয়োজন"
284
285 #: ../src/virt-viewer-auth.xml.h:2
187286 msgid "Password:"
188 msgstr "পাসওয়ার্ড:"
189
190 #: ../src/auth.glade.h:3
287 msgstr "পাসওয়ার্ড:"
288
289 #: ../src/virt-viewer-auth.xml.h:3
191290 msgid "Username:"
192 msgstr "ব্যবহারকারী নাম:"
193
194 #: ../src/auth.glade.h:4
195 msgid "gtk-cancel"
196 msgstr "gtk-cancel"
197
198 #: ../src/auth.glade.h:5
199 msgid "gtk-ok"
200 msgstr "gtk-ok"
201
202 #: ../src/auth.glade.h:6
291 msgstr "ব্যবহারকারীর নাম:"
292
293 #: ../src/virt-viewer-auth.xml.h:4
203294 msgid "label"
204295 msgstr "label"
205296
206 #: ../src/viewer.glade.h:1
297 #: ../src/virt-viewer-main.c:38
298 #, c-format
299 msgid "%s version %s\n"
300 msgstr "%s সংস্করণ %s\n"
301
302 #: ../src/virt-viewer-main.c:69
303 msgid "Attach to the local display using libvirt"
304 msgstr "libvirt সহযোগে স্থানীয় প্রদর্শন ব্যবস্থার সাথে সংযোগ করুন"
305
306 #: ../src/virt-viewer-main.c:71
307 msgid "Connect to hypervisor"
308 msgstr "হাইপার-ভাইসরের সাথে সংযোগ স্থাপন করুন"
309
310 #: ../src/virt-viewer-main.c:73
311 msgid "Wait for domain to start"
312 msgstr "ডোমেইন আরম্ভ করতে ব্যর্থ"
313
314 #: ../src/virt-viewer-main.c:75
315 msgid "Reconnect to domain upon restart"
316 msgstr "পুনরারম্ভের পরে ডোমেইনের সাথে সংযোগ পুনরায় স্থাপন করা হবে"
317
318 #: ../src/virt-viewer-main.c:81
319 msgid "Open in full screen mode"
320 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন করা হবে"
321
322 #: ../src/virt-viewer-main.c:96
323 msgid "Virt Viewer"
324 msgstr "Virt Viewer"
325
326 #. Setup command line options
327 #: ../src/virt-viewer-main.c:99
328 msgid "- Virtual machine graphical console"
329 msgstr "- ভার্চুয়াল মেশিনের গ্রাফিক্যাল কনসোল"
330
331 #: ../src/virt-viewer-main.c:120
332 #, c-format
333 msgid ""
334 "\n"
335 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
336 "\n"
337 "%s\n"
338 "\n"
339 msgstr "\nব্যবহার পদ্ধতি: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
340
341 #. Create the widgets
342 #: ../src/virt-viewer-session-spice.c:380
343 msgid "Select USB devices for redirection"
344 msgstr "পুনর্নির্দেশের জন্য USB ডিভাইস নির্বাচন করুন"
345
346 #: ../src/virt-viewer-session-vnc.c:141
347 #, c-format
348 msgid "Unsupported authentication type %d"
349 msgstr "%d ধরনের অনুমোদন সমর্থিত নয়"
350
351 #: ../src/virt-viewer-window.c:832
352 msgid "Disconnect"
353 msgstr "সংযোগ বিচ্ছেদ করুন"
354
355 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
356 #: ../src/virt-viewer.xml.h:22
357 msgid "USB device selection"
358 msgstr "USB ডিভাইস নির্বাচন"
359
360 #: ../src/virt-viewer-window.c:848
361 msgid "Send key combination"
362 msgstr ""
363
364 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
365 msgid "Leave fullscreen"
366 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন থেকে প্রস্থান"
367
368 #: ../src/virt-viewer-window.c:937
369 msgid "Ctrl+Alt"
370 msgstr ""
371
372 #: ../src/virt-viewer-window.c:940
373 #, c-format
374 msgid "(Press %s to release pointer)"
375 msgstr ""
376
377 #. translators:
378 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
379 #. <appname>"
380 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
381 #. Viewer"
382 #.
383 #: ../src/virt-viewer-window.c:951
384 #, c-format
385 msgid "%s%s%s - %s"
386 msgstr "%s%s%s - %s"
387
388 #. translators: <space>
389 #: ../src/virt-viewer-window.c:955
390 msgid " "
391 msgstr " "
392
393 #: ../src/virt-viewer.c:144
394 msgid "Waiting for guest domain to re-start"
395 msgstr "গেস্ট ডোমেইন পুনরায় আরম্ভের অপেক্ষা করা হচ্ছে"
396
397 #: ../src/virt-viewer.c:308
398 #, c-format
399 msgid "Cannot determine the graphic type for the guest %s"
400 msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিকের ধরন নির্ধারণ করা সম্ভব নয়"
401
402 #: ../src/virt-viewer.c:321
403 #, c-format
404 msgid "Cannot determine the graphic address for the guest %s"
405 msgstr "%s গেস্ট মেশিনের জন্য গ্রাফিক ঠিকানা নির্ধারণ করা সম্ভব নয়"
406
407 #: ../src/virt-viewer.c:344
408 #, c-format
409 msgid "Cannot determine the host for the guest %s"
410 msgstr "%s গেস্ট মেশিনের জন্য হোস্ট নির্ধারণ করা সম্ভব নয়"
411
412 #: ../src/virt-viewer.c:474
413 msgid "Finding guest domain"
414 msgstr "গেস্ট ডোমেইন সন্ধান করা হচ্ছে"
415
416 #: ../src/virt-viewer.c:478
417 msgid "Waiting for guest domain to be created"
418 msgstr "গেস্ট ডোমেইন প্রস্তুতির অপেক্ষা করা হচ্ছে"
419
420 #: ../src/virt-viewer.c:483
421 #, c-format
422 msgid "Cannot find guest domain %s"
423 msgstr "%s গেস্ট ডোমেইন সন্ধান করতে ব্যর্থ"
424
425 #: ../src/virt-viewer.c:490
426 msgid "Checking guest domain status"
427 msgstr "গেস্ট ডোমেইনের অবস্থা পরীক্ষা করতে ব্যর্থ"
428
429 #: ../src/virt-viewer.c:497
430 msgid "Waiting for guest domain to start"
431 msgstr "গেস্ট ডোমেইন আরম্ভের অপেক্ষা করা হচ্ছে"
432
433 #: ../src/virt-viewer.c:504
434 msgid "Waiting for guest domain to start server"
435 msgstr "গেস্ট ডোমেইন দ্বারা সার্ভার আরম্ভের অপেক্ষা করা হচ্ছে"
436
437 #: ../src/virt-viewer.c:624
438 #, c-format
439 msgid "Unable to connect to libvirt with URI %s"
440 msgstr "URI %s সহযোগে libvirt-র সাথে সংযোগ করতে ব্যর্থ"
441
442 #: ../src/virt-viewer.c:625
443 msgid "[none]"
444 msgstr "[শূণ্য]"
445
446 #. * Local variables:
447 #. * c-indent-level: 4
448 #. * c-basic-offset: 4
449 #. * indent-tabs-mode: nil
450 #. * End:
451 #.
452 #: ../src/virt-viewer.xml.h:1
207453 msgid "Automatically resize"
208 msgstr "স্বয়ংক্রিয়ভাবে মাপ পরিবর্তন"
209
210 #: ../src/viewer.glade.h:2
454 msgstr "স্বয়ংক্রিয়ভাবে মাপ পরিবর্তন করুন"
455
456 #: ../src/virt-viewer.xml.h:2
211457 msgid "Ctrl+Alt+F11"
212458 msgstr "Ctrl+Alt+F11"
213459
214 #: ../src/viewer.glade.h:3
460 #: ../src/virt-viewer.xml.h:3
215461 msgid "Ctrl+Alt+F12"
216462 msgstr "Ctrl+Alt+F12"
217463
218 #: ../src/viewer.glade.h:4
464 #: ../src/virt-viewer.xml.h:4
219465 msgid "Ctrl+Alt+F1_0"
220466 msgstr "Ctrl+Alt+F1_0"
221467
222 #: ../src/viewer.glade.h:5
468 #: ../src/virt-viewer.xml.h:5
223469 msgid "Ctrl+Alt+F_1"
224470 msgstr "Ctrl+Alt+F_1"
225471
226 #: ../src/viewer.glade.h:6
472 #: ../src/virt-viewer.xml.h:6
227473 msgid "Ctrl+Alt+F_2"
228474 msgstr "Ctrl+Alt+F_2"
229475
230 #: ../src/viewer.glade.h:7
476 #: ../src/virt-viewer.xml.h:7
231477 msgid "Ctrl+Alt+F_3"
232478 msgstr "Ctrl+Alt+F_3"
233479
234 #: ../src/viewer.glade.h:8
480 #: ../src/virt-viewer.xml.h:8
235481 msgid "Ctrl+Alt+F_4"
236482 msgstr "Ctrl+Alt+F_4"
237483
238 #: ../src/viewer.glade.h:9
484 #: ../src/virt-viewer.xml.h:9
239485 msgid "Ctrl+Alt+F_5"
240486 msgstr "Ctrl+Alt+F_5"
241487
242 #: ../src/viewer.glade.h:10
488 #: ../src/virt-viewer.xml.h:10
243489 msgid "Ctrl+Alt+F_6"
244490 msgstr "Ctrl+Alt+F_6"
245491
246 #: ../src/viewer.glade.h:11
492 #: ../src/virt-viewer.xml.h:11
247493 msgid "Ctrl+Alt+F_7"
248494 msgstr "Ctrl+Alt+F_7"
249495
250 #: ../src/viewer.glade.h:12
496 #: ../src/virt-viewer.xml.h:12
251497 msgid "Ctrl+Alt+F_8"
252498 msgstr "Ctrl+Alt+F_8"
253499
254 #: ../src/viewer.glade.h:13
500 #: ../src/virt-viewer.xml.h:13
255501 msgid "Ctrl+Alt+F_9"
256502 msgstr "Ctrl+Alt+F_9"
257503
258 #: ../src/viewer.glade.h:14
504 #: ../src/virt-viewer.xml.h:14
259505 msgid "Ctrl+Alt+_Backspace"
260506 msgstr "Ctrl+Alt+_Backspace"
261507
262 #: ../src/viewer.glade.h:15
508 #: ../src/virt-viewer.xml.h:15
263509 msgid "Ctrl+Alt+_Del"
264510 msgstr "Ctrl+Alt+_Del"
265511
266 #: ../src/viewer.glade.h:16
512 #: ../src/virt-viewer.xml.h:16
513 msgid "Displays"
514 msgstr "প্রদর্শনক্ষেত্র"
515
516 #: ../src/virt-viewer.xml.h:17
267517 msgid "Full screen"
268 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন"
269
270 #: ../src/viewer.glade.h:17
518 msgstr "সম্পূর্ণ পর্দায় প্রদর্শন"
519
520 #: ../src/virt-viewer.xml.h:18
521 msgid "Release cursor"
522 msgstr "কার্সার মুক্ত করা হবে"
523
524 #: ../src/virt-viewer.xml.h:19
271525 msgid "Screenshot"
272 msgstr "পর্দার ছবি"
273
274 #: ../src/viewer.glade.h:18
526 msgstr "স্ক্রিন-শট"
527
528 #: ../src/virt-viewer.xml.h:20
529 msgid "Smartcard insertion"
530 msgstr "স্মার্ট-কার্ড অন্তর্ভুক্তি"
531
532 #: ../src/virt-viewer.xml.h:21
533 msgid "Smartcard removal"
534 msgstr "স্মার্ট-কার্ড অপসারণ"
535
536 #: ../src/virt-viewer.xml.h:23
275537 msgid "_File"
276538 msgstr "ফাইল (_F)"
277539
278 #: ../src/viewer.glade.h:19
540 #: ../src/virt-viewer.xml.h:24
279541 msgid "_Help"
280 msgstr "সাহায্য (_H)"
281
282 #: ../src/viewer.glade.h:20
542 msgstr "সহায়তা (_H)"
543
544 #: ../src/virt-viewer.xml.h:25
283545 msgid "_PrintScreen"
284 msgstr "পর্দার ছবি নিন (_P)"
285
286 #: ../src/viewer.glade.h:21
546 msgstr "_PrintScreen"
547
548 #: ../src/virt-viewer.xml.h:26
287549 msgid "_Send key"
288 msgstr "কি প্রেরণ (_S)"
289
290 #: ../src/viewer.glade.h:22
550 msgstr "কি পাঠিয়ে দিন (_S)"
551
552 #: ../src/virt-viewer.xml.h:27
291553 msgid "_View"
292554 msgstr "প্রদর্শন (_V)"
293555
294 #: ../src/viewer.glade.h:23
295 msgid "gtk-about"
296 msgstr "gtk-about"
297
298 #: ../src/viewer.glade.h:24
299 msgid "gtk-quit"
300 msgstr "gtk-quit"
301
302 #: ../src/viewer.glade.h:25
303 msgid "page 1"
304 msgstr "পৃষ্ঠা ১"
305
306 #: ../src/viewer.glade.h:26
307 msgid "page 2"
308 msgstr "পৃষ্ঠা ২"
309
556 #: ../src/virt-viewer.xml.h:28
557 msgid "_Zoom"
558 msgstr "প্রদর্শনের নাম (_Z)"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Czech (http://www.transifex.net/projects/p/fedora/language/cs/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: cs\n"
17 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+438
-224
po/de.po less more
0 # translation of de.po to
1 # German translations for PACKAGE package.
2 # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
32 # This file is distributed under the same license as the PACKAGE package.
43 #
4 # Translators:
55 # Automatically generated, 2010.
66 # Hedda Peters <hpeters@redhat.com>, 2010.
7 # <hpeters@redhat.com>, 2012.
78 msgid ""
89 msgstr ""
9 "Project-Id-Version: de\n"
10 "Project-Id-Version: virt-viewer\n"
1011 "Report-Msgid-Bugs-To: \n"
11 "POT-Creation-Date: 2011-01-28 07:48+0000\n"
12 "PO-Revision-Date: 2010-01-22 13:13+1000\n"
13 "Last-Translator: Hedda Peters <hpeters@redhat.com>\n"
14 "Language-Team: \n"
12 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
13 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
14 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
15 "Language-Team: German <trans-de@lists.fedoraproject.org>\n"
1516 "MIME-Version: 1.0\n"
1617 "Content-Type: text/plain; charset=UTF-8\n"
1718 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 "X-Generator: KBabel 1.11.4\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s Version %s\n"
25
26 #: ../src/main.c:53
19 "Language: de\n"
20 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
21
22 #: ../src/gbinding.c:637
23 msgid "Source"
24 msgstr "Quelle"
25
26 #: ../src/gbinding.c:638
27 msgid "The source of the binding"
28 msgstr "Die Quelle der Bindung"
29
30 #: ../src/gbinding.c:652
31 msgid "Target"
32 msgstr "Ziel"
33
34 #: ../src/gbinding.c:653
35 msgid "The target of the binding"
36 msgstr "Das Ziel der Bindung"
37
38 #: ../src/gbinding.c:668
39 msgid "Source Property"
40 msgstr "Quell-Eigenschaft"
41
42 #: ../src/gbinding.c:669
43 msgid "The property on the source to bind"
44 msgstr "Die Eigenschaft auf der Quelle der Bindung"
45
46 #: ../src/gbinding.c:684
47 msgid "Target Property"
48 msgstr "Ziel-Eigenschaft"
49
50 #: ../src/gbinding.c:685
51 msgid "The property on the target to bind"
52 msgstr "Die Eigenschaft auf dem Ziel der Bindung"
53
54 #: ../src/gbinding.c:699
55 msgid "Flags"
56 msgstr "Flags"
57
58 #: ../src/gbinding.c:700
59 msgid "The binding flags"
60 msgstr "Die Bindungs-Flags"
61
62 #: ../src/remote-viewer-main.c:47
63 #, c-format
64 msgid "remote-viewer version %s\n"
65 msgstr "Remote-Viewer Version %s\n"
66
67 #: ../src/remote-viewer-main.c:69
68 #, c-format
69 msgid "Invalid full-screen argument: %s"
70 msgstr ""
71
72 #. Create the widgets
73 #: ../src/remote-viewer-main.c:104
74 msgid "Connection details"
75 msgstr ""
76
77 #: ../src/remote-viewer-main.c:119
78 msgid "URL:"
79 msgstr ""
80
81 #: ../src/remote-viewer-main.c:127
82 msgid "Recent connections:"
83 msgstr ""
84
85 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2786 msgid "Run '"
2887 msgstr "Ausführen '"
2988
30 #: ../src/main.c:56
31 msgid "display version information"
89 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
90 msgid "Display version information"
3291 msgstr "Versionsinformationen anzeigen"
3392
34 #: ../src/main.c:58
35 msgid "display verbose information"
93 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
94 msgid "Display verbose information"
3695 msgstr "Ausführliche Informationen anzeigen"
3796
38 #: ../src/main.c:60
39 msgid "direct connection with no automatic tunnels"
97 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
98 msgid "Direct connection with no automatic tunnels"
4099 msgstr "Direkte Verbindung ohne automatische Tunnel"
41100
42 #: ../src/main.c:62
43 msgid "connect to hypervisor"
44 msgstr "Verbinden mit Hypervisor"
45
46 #: ../src/main.c:64
47 msgid "wait for domain to start"
48 msgstr "Warten auf Start der Domain"
49
50 #: ../src/main.c:66
51 msgid "reconnect to domain upon restart"
52 msgstr "Nach Neustart erneut mit Domain verbinden"
53
54 #: ../src/main.c:70
55 msgid "display debugging information"
101 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
102 msgid "Zoom level of window, in percentage"
103 msgstr "Zoomlevel des Fensters in Prozent"
104
105 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
106 msgid "Display debugging information"
56107 msgstr "Debugging-Informationen anzeigen"
57108
109 #: ../src/remote-viewer-main.c:219
110 msgid "Open in full screen mode (=<auto-conf>)"
111 msgstr ""
112
113 #: ../src/remote-viewer-main.c:222
114 msgid "Open connection using Spice controller communication"
115 msgstr "Verbindung öffnen unter Verwendung der Spice-Kontroller-Kommunikation"
116
117 #: ../src/remote-viewer-main.c:249
118 msgid "Remote Viewer"
119 msgstr ""
120
58121 #. Setup command line options
59 #: ../src/main.c:82
60 msgid "- Virtual machine graphical console"
61 msgstr "- Grafische Konsole der virtuellen Maschine"
62
63 #: ../src/main.c:98
64 #, c-format
65 msgid ""
66 "\n"
67 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
68 "\n"
69 "%s\n"
70 "\n"
71 msgstr ""
72 "\n"
73 "Verwendung: %s [OPTIONEN] DOMAIN-NAME|ID|UUID\n"
74 "\n"
75 "%s\n"
76 "\n"
77
78 #: ../src/viewer.c:1053
79 #, c-format
80 msgid "Cannot find guest domain %s"
81 msgstr "Gast-Domain %s konnte nicht gefunden werden"
82
83 #: ../src/viewer.c:1161
84 #, c-format
85 msgid "Unable to connect to libvirt with URI %s"
86 msgstr "Verbindung zu libvirt mit URI %s konnte nicht hergestellt werden"
87
88 #: ../src/viewer.c:1162
89 msgid "[none]"
90 msgstr "[keine]"
91
92 #: ../src/display-vnc.c:142
93 #, c-format
94 msgid ""
95 "Unable to authenticate with VNC server at %s\n"
96 "Unsupported authentication type %d"
97 msgstr ""
98 "Authentifikation beim VNC-Server unter %s fehlgeschlagen\n"
99 "Nicht unterstützter Authentifikationsstyp %d"
100
101 #: ../src/display-vnc.c:158
102 #, c-format
103 msgid ""
104 "Unable to authenticate with VNC server at %s: %s\n"
105 "Retry connection again?"
106 msgstr ""
107 "Authentifikation beim VNC-Server unter %s fehlgeschlagen: %s\n"
108 "Verbindung erneut versuchen?"
122 #: ../src/remote-viewer-main.c:252
123 msgid "- Remote viewer client"
124 msgstr "- Remote-Viewer Client"
125
126 #: ../src/remote-viewer-main.c:275
127 #, c-format
128 msgid "Error: extra arguments given while using Spice controller\n"
129 msgstr ""
130
131 #: ../src/remote-viewer-main.c:284
132 #, c-format
133 msgid "Error: can't handle multiple URIs\n"
134 msgstr ""
135
136 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
137 #, c-format
138 msgid "Zoom level must be within 10-200\n"
139 msgstr "Zoom-Level muss zwischen 10 und 200 sein\n"
140
141 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
142 msgid "Failed to initiate connection"
143 msgstr "Initiieren der Verbindung fehlgeschlagen"
144
145 #: ../src/remote-viewer.c:250
146 msgid "Display disabled by controller"
147 msgstr "Anzeige vom Kontroller deaktiviert"
148
149 #: ../src/remote-viewer.c:697
150 #, c-format
151 msgid "Controller connection failed: %s"
152 msgstr "Kontroller-Verbindung fehlgeschlagen: %s"
153
154 #: ../src/remote-viewer.c:750
155 msgid "Couldn't create a Spice session"
156 msgstr "Spice-Sitzung konnte nicht erstellt werden"
157
158 #: ../src/remote-viewer.c:764
159 msgid "Setting up Spice session..."
160 msgstr "Einrichten der Spice-Sitzung ..."
161
162 #: ../src/remote-viewer.c:774
163 msgid "Cannot determine the connection type from URI"
164 msgstr "Verbindungstyp konnte nicht von URI ermittelt werden"
165
166 #: ../src/remote-viewer.c:779
167 #, c-format
168 msgid "Couldn't create a session for this type: %s"
169 msgstr "Sitzung für diesen Typ konnte nicht erstellt werden: %s"
109170
110171 #. * Local variables:
111 #. * c-indent-level: 8
112 #. * c-basic-offset: 8
113 #. * tab-width: 8
172 #. * c-indent-level: 4
173 #. * c-basic-offset: 4
174 #. * indent-tabs-mode: nil
114175 #. * End:
115176 #.
116 #: ../src/about.glade.h:1
117 msgid "A remote desktop client built with GTK-VNC and libvirt"
118 msgstr "Ein Remote-Desktop-Client basierend auf GTK-VNC und libvirt"
119
120 #: ../src/about.glade.h:2
177 #: ../src/virt-viewer-about.xml.h:1
178 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
179 msgstr "Ein Remote-Desktop-Client erstellt unter Verwendung von GTK-VNC, SPICE-GTK und libvirt"
180
181 #: ../src/virt-viewer-about.xml.h:2
121182 msgid "About Glade"
122183 msgstr "Über Glade"
123184
124 #: ../src/about.glade.h:3
185 #: ../src/virt-viewer-about.xml.h:3
125186 msgid ""
126 "Copyright 2007-2008 Daniel P. Berrange\n"
127 "Copyright 2007-2008 Red Hat, Inc."
128 msgstr ""
129 "Copyright 2007-2008 Daniel P. Berrange\n"
130 "Copyright 2007-2008 Red Hat, Inc."
131
132 #: ../src/about.glade.h:5
187 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
188 "Copyright (C) 2007-2012 Red Hat, Inc."
189 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
190
191 #: ../src/virt-viewer-about.xml.h:5
133192 msgid "The Fedora Translation Team"
134 msgstr "Das Fedora-Übersetzungsteam"
135
136 #: ../src/about.glade.h:6
193 msgstr "Das Fedora Übersetzungs-Team"
194
195 #: ../src/virt-viewer-about.xml.h:6
137196 msgid ""
138197 "This program is free software; you can redistribute it and/or modify\n"
139198 "it under the terms of the GNU General Public License as published by\n"
148207 "You should have received a copy of the GNU General Public License\n"
149208 "along with this program; if not, write to the Free Software\n"
150209 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
151 msgstr ""
152 "Dieses Programm ist freie Software. Sie können es unter den Bedingungen\n"
153 "der GNU General Public License, wie von der Free Software Foundation\n"
154 "veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2\n"
155 "der Lizenz oder (nach Ihrer Option) jeder späteren Version.\n"
156 "\n"
157 "Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es\n"
158 "Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne\n"
159 "die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN\n"
160 "BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.\n"
161 "\n"
162 "Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem\n"
163 "Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software\n"
164 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165
166 #: ../src/about.glade.h:20
210 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"
211
212 #: ../src/virt-viewer-about.xml.h:20
167213 msgid "virt-manager.org"
168214 msgstr "virt-manager.org"
169215
170 #: ../src/auth.glade.h:1
216 #: ../src/virt-viewer-app.c:284
217 msgid "This is the last visible display. Do you want to quit?"
218 msgstr "Dies ist die letzte sichtbare Anzeige. Möchten Sie beenden?"
219
220 #: ../src/virt-viewer-app.c:624
221 #, c-format
222 msgid "Waiting for display %d..."
223 msgstr "Warten auf Anzeige %d ..."
224
225 #: ../src/virt-viewer-app.c:707
226 #, c-format
227 msgid "Unknown graphic type for the guest %s"
228 msgstr "Unbekannter Grafiktyp für Gast %s"
229
230 #: ../src/virt-viewer-app.c:782
231 msgid "Connect to ssh failed."
232 msgstr "Verbindung über SSH ist fehlgeschlagen."
233
234 #: ../src/virt-viewer-app.c:784
235 msgid "Can't connect to channel, SSH only supported."
236 msgstr "Zu dem Kanal konnte nicht verbunden werden, es wird nur SSH unterstützt"
237
238 #: ../src/virt-viewer-app.c:796
239 msgid "Connect to channel unsupported."
240 msgstr "Verbindung zu dem Kanal wird nicht unterstützt."
241
242 #: ../src/virt-viewer-app.c:876
243 msgid "Connecting to graphic server"
244 msgstr "Verbinden mit Grafikserver"
245
246 #: ../src/virt-viewer-app.c:1006
247 msgid "Guest domain has shutdown"
248 msgstr "Gast-Domain wurde beendet"
249
250 #: ../src/virt-viewer-app.c:1056
251 msgid "Connected to graphic server"
252 msgstr "Verbunden mit Grafikserver"
253
254 #: ../src/virt-viewer-app.c:1082
255 #, c-format
256 msgid "Unable to connect to the graphic server %s"
257 msgstr "Verbindung zum Grafik-Server %s konnte nicht hergestellt werden"
258
259 #: ../src/virt-viewer-app.c:1111
260 #, c-format
261 msgid ""
262 "Unable to authenticate with remote desktop server at %s: %s\n"
263 "Retry connection again?"
264 msgstr "Authentifikation beim Remote-Desktop-Server unter %s fehlgeschlagen: %s\nVerbindung erneut versuchen?"
265
266 #: ../src/virt-viewer-app.c:1131
267 #, c-format
268 msgid "Unable to authenticate with remote desktop server: %s"
269 msgstr "Authentifikation beim Remote-Desktop-Server fehlgeschlagen: %s"
270
271 #: ../src/virt-viewer-app.c:1139
272 #, c-format
273 msgid "USB redirection error: %s"
274 msgstr "USB-Weiterleitungsfehler: %s"
275
276 #. * Local variables:
277 #. * c-indent-level: 4
278 #. * c-basic-offset: 4
279 #. * indent-tabs-mode: nil
280 #. * End:
281 #.
282 #: ../src/virt-viewer-auth.xml.h:1
171283 msgid "Authentication required"
172284 msgstr "Authentifikation erforderlich"
173285
174 #: ../src/auth.glade.h:2
286 #: ../src/virt-viewer-auth.xml.h:2
175287 msgid "Password:"
176288 msgstr "Passwort:"
177289
178 #: ../src/auth.glade.h:3
290 #: ../src/virt-viewer-auth.xml.h:3
179291 msgid "Username:"
180292 msgstr "Benutzername:"
181293
182 #: ../src/auth.glade.h:4
183 msgid "gtk-cancel"
184 msgstr "gtk-cancel"
185
186 #: ../src/auth.glade.h:5
187 msgid "gtk-ok"
188 msgstr "gtk-ok"
189
190 #: ../src/auth.glade.h:6
294 #: ../src/virt-viewer-auth.xml.h:4
191295 msgid "label"
192 msgstr "Kennung"
193
194 #: ../src/viewer.glade.h:1
296 msgstr "Label"
297
298 #: ../src/virt-viewer-main.c:38
299 #, c-format
300 msgid "%s version %s\n"
301 msgstr "%s Version %s\n"
302
303 #: ../src/virt-viewer-main.c:69
304 msgid "Attach to the local display using libvirt"
305 msgstr "Mit lokaler Anzeige verbinden mittels libvirt"
306
307 #: ../src/virt-viewer-main.c:71
308 msgid "Connect to hypervisor"
309 msgstr "Verbinden mit Hypervisor"
310
311 #: ../src/virt-viewer-main.c:73
312 msgid "Wait for domain to start"
313 msgstr "Warten auf Start der Domain"
314
315 #: ../src/virt-viewer-main.c:75
316 msgid "Reconnect to domain upon restart"
317 msgstr "Nach Neustart erneut mit Domain verbinden"
318
319 #: ../src/virt-viewer-main.c:81
320 msgid "Open in full screen mode"
321 msgstr "In Vollbildmodus öffnen"
322
323 #: ../src/virt-viewer-main.c:96
324 msgid "Virt Viewer"
325 msgstr "Virt-Viewer"
326
327 #. Setup command line options
328 #: ../src/virt-viewer-main.c:99
329 msgid "- Virtual machine graphical console"
330 msgstr "- Grafische Konsole der virtuellen Maschine"
331
332 #: ../src/virt-viewer-main.c:120
333 #, c-format
334 msgid ""
335 "\n"
336 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
337 "\n"
338 "%s\n"
339 "\n"
340 msgstr "\nVerwendung: %s [OPTIONEN] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
341
342 #. Create the widgets
343 #: ../src/virt-viewer-session-spice.c:380
344 msgid "Select USB devices for redirection"
345 msgstr "USB-Gerät zur Weiterleitung wählen"
346
347 #: ../src/virt-viewer-session-vnc.c:141
348 #, c-format
349 msgid "Unsupported authentication type %d"
350 msgstr "Nicht unterstützter Authentifikationsstyp %d"
351
352 #: ../src/virt-viewer-window.c:832
353 msgid "Disconnect"
354 msgstr "Verbindung trennen"
355
356 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
357 #: ../src/virt-viewer.xml.h:22
358 msgid "USB device selection"
359 msgstr "USB-Geräteauswahl"
360
361 #: ../src/virt-viewer-window.c:848
362 msgid "Send key combination"
363 msgstr ""
364
365 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
366 msgid "Leave fullscreen"
367 msgstr "Vollbildmodus verlassen"
368
369 #: ../src/virt-viewer-window.c:937
370 msgid "Ctrl+Alt"
371 msgstr ""
372
373 #: ../src/virt-viewer-window.c:940
374 #, c-format
375 msgid "(Press %s to release pointer)"
376 msgstr ""
377
378 #. translators:
379 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
380 #. <appname>"
381 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
382 #. Viewer"
383 #.
384 #: ../src/virt-viewer-window.c:951
385 #, c-format
386 msgid "%s%s%s - %s"
387 msgstr "%s%s%s - %s"
388
389 #. translators: <space>
390 #: ../src/virt-viewer-window.c:955
391 msgid " "
392 msgstr " "
393
394 #: ../src/virt-viewer.c:144
395 msgid "Waiting for guest domain to re-start"
396 msgstr "Warten auf Neustart der Domain"
397
398 #: ../src/virt-viewer.c:308
399 #, c-format
400 msgid "Cannot determine the graphic type for the guest %s"
401 msgstr "Grafiktyp für den Gast %s konnte nicht ermittelt werden "
402
403 #: ../src/virt-viewer.c:321
404 #, c-format
405 msgid "Cannot determine the graphic address for the guest %s"
406 msgstr "Grafikadresse für den Gast %s konnte nicht ermittelt werden "
407
408 #: ../src/virt-viewer.c:344
409 #, c-format
410 msgid "Cannot determine the host for the guest %s"
411 msgstr "Host für den Gast %s konnte nicht ermittelt werden"
412
413 #: ../src/virt-viewer.c:474
414 msgid "Finding guest domain"
415 msgstr "Suchen der Gast-Domain"
416
417 #: ../src/virt-viewer.c:478
418 msgid "Waiting for guest domain to be created"
419 msgstr "Warten auf Erstellung der Gast-Domain"
420
421 #: ../src/virt-viewer.c:483
422 #, c-format
423 msgid "Cannot find guest domain %s"
424 msgstr "Gast-Domain %s konnte nicht gefunden werden"
425
426 #: ../src/virt-viewer.c:490
427 msgid "Checking guest domain status"
428 msgstr "Prüfen des Gast-Domain-Status"
429
430 #: ../src/virt-viewer.c:497
431 msgid "Waiting for guest domain to start"
432 msgstr "Warten auf Start der Gast-Domain"
433
434 #: ../src/virt-viewer.c:504
435 msgid "Waiting for guest domain to start server"
436 msgstr "Warten, bis Gast-Domain den Server startet"
437
438 #: ../src/virt-viewer.c:624
439 #, c-format
440 msgid "Unable to connect to libvirt with URI %s"
441 msgstr "Verbindung zu libvirt mit URI %s konnte nicht hergestellt werden"
442
443 #: ../src/virt-viewer.c:625
444 msgid "[none]"
445 msgstr "[keine]"
446
447 #. * Local variables:
448 #. * c-indent-level: 4
449 #. * c-basic-offset: 4
450 #. * indent-tabs-mode: nil
451 #. * End:
452 #.
453 #: ../src/virt-viewer.xml.h:1
195454 msgid "Automatically resize"
196455 msgstr "Größe automatisch anpassen"
197456
198 #: ../src/viewer.glade.h:2
457 #: ../src/virt-viewer.xml.h:2
199458 msgid "Ctrl+Alt+F11"
200459 msgstr "Strg+Alt+F11"
201460
202 #: ../src/viewer.glade.h:3
461 #: ../src/virt-viewer.xml.h:3
203462 msgid "Ctrl+Alt+F12"
204463 msgstr "Strg+Alt+F12"
205464
206 #: ../src/viewer.glade.h:4
465 #: ../src/virt-viewer.xml.h:4
207466 msgid "Ctrl+Alt+F1_0"
208467 msgstr "Strg+Alt+F1_0"
209468
210 #: ../src/viewer.glade.h:5
469 #: ../src/virt-viewer.xml.h:5
211470 msgid "Ctrl+Alt+F_1"
212471 msgstr "Strg+Alt+F_1"
213472
214 #: ../src/viewer.glade.h:6
473 #: ../src/virt-viewer.xml.h:6
215474 msgid "Ctrl+Alt+F_2"
216475 msgstr "Strg+Alt+F_2"
217476
218 #: ../src/viewer.glade.h:7
477 #: ../src/virt-viewer.xml.h:7
219478 msgid "Ctrl+Alt+F_3"
220479 msgstr "Strg+Alt+F_3"
221480
222 #: ../src/viewer.glade.h:8
481 #: ../src/virt-viewer.xml.h:8
223482 msgid "Ctrl+Alt+F_4"
224483 msgstr "Strg+Alt+F_4"
225484
226 #: ../src/viewer.glade.h:9
485 #: ../src/virt-viewer.xml.h:9
227486 msgid "Ctrl+Alt+F_5"
228487 msgstr "Strg+Alt+F_5"
229488
230 #: ../src/viewer.glade.h:10
489 #: ../src/virt-viewer.xml.h:10
231490 msgid "Ctrl+Alt+F_6"
232491 msgstr "Strg+Alt+F_6"
233492
234 #: ../src/viewer.glade.h:11
493 #: ../src/virt-viewer.xml.h:11
235494 msgid "Ctrl+Alt+F_7"
236495 msgstr "Strg+Alt+F_7"
237496
238 #: ../src/viewer.glade.h:12
497 #: ../src/virt-viewer.xml.h:12
239498 msgid "Ctrl+Alt+F_8"
240499 msgstr "Strg+Alt+F_8"
241500
242 #: ../src/viewer.glade.h:13
501 #: ../src/virt-viewer.xml.h:13
243502 msgid "Ctrl+Alt+F_9"
244503 msgstr "Strg+Alt+F_9"
245504
246 #: ../src/viewer.glade.h:14
505 #: ../src/virt-viewer.xml.h:14
247506 msgid "Ctrl+Alt+_Backspace"
248507 msgstr "Strg+Alt+_Rücktaste"
249508
250 #: ../src/viewer.glade.h:15
509 #: ../src/virt-viewer.xml.h:15
251510 msgid "Ctrl+Alt+_Del"
252511 msgstr "Strg+Alt+_Entf"
253512
254 #: ../src/viewer.glade.h:16
513 #: ../src/virt-viewer.xml.h:16
514 msgid "Displays"
515 msgstr "Anzeigen"
516
517 #: ../src/virt-viewer.xml.h:17
255518 msgid "Full screen"
256519 msgstr "Vollbild"
257520
258 #: ../src/viewer.glade.h:17
521 #: ../src/virt-viewer.xml.h:18
522 msgid "Release cursor"
523 msgstr "Cursor freigeben"
524
525 #: ../src/virt-viewer.xml.h:19
259526 msgid "Screenshot"
260527 msgstr "Screenshot"
261528
262 #: ../src/viewer.glade.h:18
529 #: ../src/virt-viewer.xml.h:20
530 msgid "Smartcard insertion"
531 msgstr "Smartcard-Eingabe"
532
533 #: ../src/virt-viewer.xml.h:21
534 msgid "Smartcard removal"
535 msgstr "Smartcard-Entfernung"
536
537 #: ../src/virt-viewer.xml.h:23
263538 msgid "_File"
264539 msgstr "_Datei"
265540
266 #: ../src/viewer.glade.h:19
541 #: ../src/virt-viewer.xml.h:24
267542 msgid "_Help"
268543 msgstr "_Hilfe"
269544
270 #: ../src/viewer.glade.h:20
545 #: ../src/virt-viewer.xml.h:25
271546 msgid "_PrintScreen"
272 msgstr "S_creenshot"
273
274 #: ../src/viewer.glade.h:21
547 msgstr "_Bildschirm drucken"
548
549 #: ../src/virt-viewer.xml.h:26
275550 msgid "_Send key"
276 msgstr "_Taste senden"
277
278 #: ../src/viewer.glade.h:22
551 msgstr "_Schlüssel senden"
552
553 #: ../src/virt-viewer.xml.h:27
279554 msgid "_View"
280555 msgstr "_Ansicht"
281556
282 #: ../src/viewer.glade.h:24
283 msgid "gtk-about"
284 msgstr "gtk-about"
285
286 #: ../src/viewer.glade.h:25
287 msgid "gtk-quit"
288 msgstr "gtk-quit"
289
290 #: ../src/viewer.glade.h:26
291 msgid "page 1"
292 msgstr "Seite 1"
293
294 #: ../src/viewer.glade.h:27
295 msgid "page 2"
296 msgstr "Seite 2"
297
298 #: ../src/viewer.glade.h:23
557 #: ../src/virt-viewer.xml.h:28
299558 msgid "_Zoom"
300559 msgstr "_Zoom"
301
302 #: ../src/viewer.glade.h:28
303 msgid "page 3"
304 msgstr "Seite 3"
305
306 #: ../src/main.c:68
307 msgid "Zoom level of window, in percentage"
308 msgstr "Zoomlevel des Fensters in Prozent"
309
310 #: ../src/viewer.c:863
311 msgid "Connect to channel unsupported."
312 msgstr "Verbindung zu dem Kanal wird nicht unterstützt"
313
314 #: ../src/viewer.c:858
315 msgid "Can't connect to channel, SSH only supported."
316 msgstr "Zu dem Kanal konnte nicht verbunden werden, es wird nur SSH unterstützt"
317
318 #: ../src/viewer.c:805
319 #, c-format
320 msgid "Cannot determine the graphic type for the guest %s"
321 msgstr "Grafiktyp für den Gast %s konnte nicht ermittelt werden "
322
323 #: ../src/viewer.c:824
324 #, c-format
325 msgid "Cannot determine the graphic port for the guest %s"
326 msgstr "Grafikport für den Gast %s konnte nicht ermittelt werden "
327
328 #: ../src/viewer.c:817
329 #, c-format
330 msgid "Unknown graphic type for the guest %s"
331 msgstr "Unbekannter Grafiktyp für Gast %s"
332
333 #: ../src/viewer.c:856
334 msgid "Connect to ssh failed."
335 msgstr "Verbindung über SSH ist fehlgeschlagen"
336
337 #: ../src/viewer.c:830
338 #, c-format
339 msgid "Cannot determine the host for the guest %s"
340 msgstr "Host für den Gast %s konnte nicht ermittelt werden"
341
342 #: ../src/viewer.c:1006
343 #, c-format
344 msgid "Unable to connect to the graphic server %s"
345 msgstr "Verbindung zum Grafik-Server %s konnte nicht hergestellt werden"
+452
-242
po/es.po less more
0 # translation of es.po to Spanish
1 # Spanish translations for PACKAGE package.
2 # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
32 # This file is distributed under the same license as the PACKAGE package.
43 #
4 # Translators:
5 # Adolfo Jayme Barrientos <fitoschido@gmail.com>, 2012.
6 # <gguerrer@redhat.com>, 2012.
57 # Manuel Eduardo Ospina Sarmiento <mospina@localhost.localdomain>, 2010.
68 # Manuel Ospina <mospina@redhat.com>, 2010.
79 msgid ""
810 msgstr ""
9 "Project-Id-Version: es\n"
11 "Project-Id-Version: virt-viewer\n"
1012 "Report-Msgid-Bugs-To: \n"
11 "POT-Creation-Date: 2011-02-08 07:51+0000\n"
12 "PO-Revision-Date: 2011-01-10 15:14-0300\n"
13 "Last-Translator: Claudio Rodrigo Pereyra Diaz <claudiorodrigo@pereyradiaz.com.ar>\n"
14 "Language-Team: Spanish <en@li.org>\n"
13 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
14 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
15 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
16 "Language-Team: Spanish (Castilian) <trans-es@lists.fedoraproject.org>\n"
1517 "MIME-Version: 1.0\n"
1618 "Content-Type: text/plain; charset=UTF-8\n"
1719 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 "X-Generator: KBabel 1.11.4\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s versión %s\n"
25
26 #: ../src/main.c:53
20 "Language: es\n"
21 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
22
23 #: ../src/gbinding.c:637
24 msgid "Source"
25 msgstr "Fuente"
26
27 #: ../src/gbinding.c:638
28 msgid "The source of the binding"
29 msgstr "La fuente de la conexión"
30
31 #: ../src/gbinding.c:652
32 msgid "Target"
33 msgstr "Destino"
34
35 #: ../src/gbinding.c:653
36 msgid "The target of the binding"
37 msgstr "El destino de la conexión"
38
39 #: ../src/gbinding.c:668
40 msgid "Source Property"
41 msgstr "Propiedad de fuente"
42
43 #: ../src/gbinding.c:669
44 msgid "The property on the source to bind"
45 msgstr "La propiedad en la fuente que va a conectar"
46
47 #: ../src/gbinding.c:684
48 msgid "Target Property"
49 msgstr "Propiedad de destino"
50
51 #: ../src/gbinding.c:685
52 msgid "The property on the target to bind"
53 msgstr "La propiedad en la fuente que va a conectar"
54
55 #: ../src/gbinding.c:699
56 msgid "Flags"
57 msgstr "Indicadores"
58
59 #: ../src/gbinding.c:700
60 msgid "The binding flags"
61 msgstr "Indicadores de conexión"
62
63 #: ../src/remote-viewer-main.c:47
64 #, c-format
65 msgid "remote-viewer version %s\n"
66 msgstr "remote-viewer versión %s\n"
67
68 #: ../src/remote-viewer-main.c:69
69 #, c-format
70 msgid "Invalid full-screen argument: %s"
71 msgstr ""
72
73 #. Create the widgets
74 #: ../src/remote-viewer-main.c:104
75 msgid "Connection details"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:119
79 msgid "URL:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:127
83 msgid "Recent connections:"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2787 msgid "Run '"
28 msgstr "Ejecutar"
29
30 #: ../src/main.c:56
31 msgid "display version information"
32 msgstr "mostrar información de la versión"
33
34 #: ../src/main.c:58
35 msgid "display verbose information"
36 msgstr "mostrar mensajes de salida"
37
38 #: ../src/main.c:60
39 msgid "direct connection with no automatic tunnels"
40 msgstr "conexión directa sin tuneles automáticos"
41
42 #: ../src/main.c:62
43 msgid "connect to hypervisor"
44 msgstr "conectar al hipervisor"
45
46 #: ../src/main.c:64
47 msgid "wait for domain to start"
48 msgstr "esperar que el dominio inicie"
49
50 #: ../src/main.c:66
51 msgid "reconnect to domain upon restart"
52 msgstr "volver a conectar al dominio después del reinicio"
53
54 #: ../src/main.c:68
88 msgstr "Ejecutar '"
89
90 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
91 msgid "Display version information"
92 msgstr "Mostrar información de versión"
93
94 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
95 msgid "Display verbose information"
96 msgstr "Mostrar información detallada"
97
98 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
99 msgid "Direct connection with no automatic tunnels"
100 msgstr "Conexión directa sin túneles automáticos"
101
102 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
55103 msgid "Zoom level of window, in percentage"
56104 msgstr "Aumentar acercamiento de ventana, en porcentaje"
57105
58 #: ../src/main.c:70
59 msgid "display debugging information"
60 msgstr "mostrar información de depuración"
106 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
107 msgid "Display debugging information"
108 msgstr "Mostrar información de depuración"
109
110 #: ../src/remote-viewer-main.c:219
111 msgid "Open in full screen mode (=<auto-conf>)"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:222
115 msgid "Open connection using Spice controller communication"
116 msgstr "Abra la conexión mediante el controlador de comunicación Spice "
117
118 #: ../src/remote-viewer-main.c:249
119 msgid "Remote Viewer"
120 msgstr ""
61121
62122 #. Setup command line options
63 #: ../src/main.c:82
64 msgid "- Virtual machine graphical console"
65 msgstr "- Consola gráfica de la máquina virtual"
66
67 #: ../src/main.c:98
68 #, c-format
69 msgid ""
70 "\n"
71 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75 msgstr ""
76 "\n"
77 "Uso: %s [OPCIONES] DOMINIO-NOMBRE|ID|UUID\n"
78 "\n"
79 "%s\n"
80 "\n"
81
82 #: ../src/viewer.c:830
83 #, c-format
84 msgid "Cannot determine the graphic type for the guest %s"
85 msgstr "No se puede determinar el tipo de gráficos para el huésped %s"
86
87 #: ../src/viewer.c:842
88 #, c-format
89 msgid "Unknown graphic type for the guest %s"
90 msgstr "Tipo de gráficos desconocido para el huésped %s"
91
92 #: ../src/viewer.c:861
93 #, c-format
94 msgid "Cannot determine the host for the guest %s"
95 msgstr "No se puede determinar el anfitrión para el huésped %s"
96
97 #: ../src/viewer.c:885
98 msgid "Connect to ssh failed."
99 msgstr "Conección a ssh fallida."
100
101 #: ../src/viewer.c:887
102 msgid "Can't connect to channel, SSH only supported."
103 msgstr "No se puede conectar al canal, soportado solamente SSH."
104
105 #: ../src/viewer.c:892
106 msgid "Connect to channel unsupported."
107 msgstr "Conectar a canal no soportado."
108
109 #: ../src/viewer.c:1049
110 #, c-format
111 msgid "Unable to connect to the graphic server %s"
112 msgstr "No se pudo conectar al servidor gráfico %s"
113
114 #: ../src/viewer.c:1096
115 #, c-format
116 msgid "Cannot find guest domain %s"
117 msgstr "No se pudo encontrar el dominio huésped %s"
118
119 #: ../src/viewer.c:1204
120 #, c-format
121 msgid "Unable to connect to libvirt with URI %s"
122 msgstr "No se pudo conectar a libvirt con el URI %s"
123
124 #: ../src/viewer.c:1205
125 msgid "[none]"
126 msgstr "[ninguno]"
127
128 #: ../src/display-vnc.c:142
129 #, c-format
130 msgid ""
131 "Unable to authenticate with VNC server at %s\n"
132 "Unsupported authentication type %d"
133 msgstr ""
134 "No se pudo autenticar con el servidor VNC en %s\n"
135 "No se soporta el tipo de autenticación %d"
136
137 #: ../src/display-vnc.c:158
138 #, c-format
139 msgid ""
140 "Unable to authenticate with VNC server at %s: %s\n"
141 "Retry connection again?"
142 msgstr ""
143 "No se pudo autenticar con el servidor VNC en %s: %s\n"
144 "¿Intentar de nuevo?"
123 #: ../src/remote-viewer-main.c:252
124 msgid "- Remote viewer client"
125 msgstr "- Cliente de visor remoto"
126
127 #: ../src/remote-viewer-main.c:275
128 #, c-format
129 msgid "Error: extra arguments given while using Spice controller\n"
130 msgstr ""
131
132 #: ../src/remote-viewer-main.c:284
133 #, c-format
134 msgid "Error: can't handle multiple URIs\n"
135 msgstr ""
136
137 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
138 #, c-format
139 msgid "Zoom level must be within 10-200\n"
140 msgstr "El nivel de amplificación debe ser de 10-200⏎\n"
141
142 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
143 msgid "Failed to initiate connection"
144 msgstr "No se pudo inicializar la conexión"
145
146 #: ../src/remote-viewer.c:250
147 msgid "Display disabled by controller"
148 msgstr "Pantalla desactivada por el controlador"
149
150 #: ../src/remote-viewer.c:697
151 #, c-format
152 msgid "Controller connection failed: %s"
153 msgstr "No se pudo conectar al controlador: %s"
154
155 #: ../src/remote-viewer.c:750
156 msgid "Couldn't create a Spice session"
157 msgstr "No se pudo crear una sesión de Spice"
158
159 #: ../src/remote-viewer.c:764
160 msgid "Setting up Spice session..."
161 msgstr "Configurando sesión de Spice…"
162
163 #: ../src/remote-viewer.c:774
164 msgid "Cannot determine the connection type from URI"
165 msgstr "No se puede determinar el tipo de conexión de la URI"
166
167 #: ../src/remote-viewer.c:779
168 #, c-format
169 msgid "Couldn't create a session for this type: %s"
170 msgstr "No se pudo crear una sesión para este tipo: %s"
145171
146172 #. * Local variables:
147 #. * c-indent-level: 8
148 #. * c-basic-offset: 8
149 #. * tab-width: 8
173 #. * c-indent-level: 4
174 #. * c-basic-offset: 4
175 #. * indent-tabs-mode: nil
150176 #. * End:
151177 #.
152 #: ../src/about.glade.h:1
153 msgid "A remote desktop client built with GTK-VNC and libvirt"
154 msgstr "Un cliente de escritorio remoto construido con GTK-VNC y libvirt"
155
156 #: ../src/about.glade.h:2
178 #: ../src/virt-viewer-about.xml.h:1
179 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
180 msgstr "Un cliente de escritorio remoto creado con GTK-VNC, SPICE-GTK y libvirt"
181
182 #: ../src/virt-viewer-about.xml.h:2
157183 msgid "About Glade"
158184 msgstr "Acerca de Glade"
159185
160 #: ../src/about.glade.h:3
186 #: ../src/virt-viewer-about.xml.h:3
161187 msgid ""
162 "Copyright 2007-2008 Daniel P. Berrange\n"
163 "Copyright 2007-2008 Red Hat, Inc."
164 msgstr ""
165 "Copyright 2007-2008 Daniel P. Berrange\n"
166 "Copyright 2007-2008 Red Hat, Inc."
167
168 #: ../src/about.glade.h:5
188 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
189 "Copyright (C) 2007-2012 Red Hat, Inc."
190 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
191
192 #: ../src/virt-viewer-about.xml.h:5
169193 msgid "The Fedora Translation Team"
170194 msgstr "El equipo de traducción de Fedora"
171195
172 #: ../src/about.glade.h:6
196 #: ../src/virt-viewer-about.xml.h:6
173197 msgid ""
174198 "This program is free software; you can redistribute it and/or modify\n"
175199 "it under the terms of the GNU General Public License as published by\n"
184208 "You should have received a copy of the GNU General Public License\n"
185209 "along with this program; if not, write to the Free Software\n"
186210 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
187 msgstr ""
188 "Este programa es software libre; puede distribuirlo y/o modificarlo\n"
189 "bajo los términos de la licencia pública GNU (General Public License)\n"
190 "tal y como fue publicada por la fundación de software libre (Free\n"
191 "Software Foundation); ya sea la versión 2 de ésta, o (según su\n"
192 "elección) una versión posterior.\n"
193 "\n"
194 "Este programa es distribuido con la esperanza de que sea útil,\n"
195 "pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL\n"
196 "implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO\n"
197 "PARTICULAR. Vea la Licencia Pública General de GNU para obtener\n"
198 "mayor información.\n"
199 "\n"
200 "Debería haber recibido una copia de la licencia (GNU General Public License)\n"
201 "junto con este programa; de lo contrario, escriba a Free Software\n"
202 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
203
204 #: ../src/about.glade.h:20
211 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"
212
213 #: ../src/virt-viewer-about.xml.h:20
205214 msgid "virt-manager.org"
206215 msgstr "virt-manager.org"
207216
208 #: ../src/auth.glade.h:1
217 #: ../src/virt-viewer-app.c:284
218 msgid "This is the last visible display. Do you want to quit?"
219 msgstr "Esta es la última pantalla visible. ¿Quiere salir?"
220
221 #: ../src/virt-viewer-app.c:624
222 #, c-format
223 msgid "Waiting for display %d..."
224 msgstr "Esperando la pantalla %d…"
225
226 #: ../src/virt-viewer-app.c:707
227 #, c-format
228 msgid "Unknown graphic type for the guest %s"
229 msgstr "Tipo de gráficos desconocido para el huésped %s"
230
231 #: ../src/virt-viewer-app.c:782
232 msgid "Connect to ssh failed."
233 msgstr "Falló la conexión a ssh."
234
235 #: ../src/virt-viewer-app.c:784
236 msgid "Can't connect to channel, SSH only supported."
237 msgstr "No se puede conectar al canal, solo se permite SSH."
238
239 #: ../src/virt-viewer-app.c:796
240 msgid "Connect to channel unsupported."
241 msgstr "La conexión al canal no está soportada."
242
243 #: ../src/virt-viewer-app.c:876
244 msgid "Connecting to graphic server"
245 msgstr "Conectando al servidor gráfico"
246
247 #: ../src/virt-viewer-app.c:1006
248 msgid "Guest domain has shutdown"
249 msgstr "Dominio de huéspedes se ha apagado"
250
251 #: ../src/virt-viewer-app.c:1056
252 msgid "Connected to graphic server"
253 msgstr "Conectado al servidor gráfico"
254
255 #: ../src/virt-viewer-app.c:1082
256 #, c-format
257 msgid "Unable to connect to the graphic server %s"
258 msgstr "No se pudo conectar al servidor gráfico %s"
259
260 #: ../src/virt-viewer-app.c:1111
261 #, c-format
262 msgid ""
263 "Unable to authenticate with remote desktop server at %s: %s\n"
264 "Retry connection again?"
265 msgstr "No se puede autenticar con el servidor de escritorio remoto en %s: %s⏎ \n¿Reintentar la conexión?"
266
267 #: ../src/virt-viewer-app.c:1131
268 #, c-format
269 msgid "Unable to authenticate with remote desktop server: %s"
270 msgstr "No se puede autenticar con el servidor del escritorio remoto: %s"
271
272 #: ../src/virt-viewer-app.c:1139
273 #, c-format
274 msgid "USB redirection error: %s"
275 msgstr "Error de redirección USB: %s"
276
277 #. * Local variables:
278 #. * c-indent-level: 4
279 #. * c-basic-offset: 4
280 #. * indent-tabs-mode: nil
281 #. * End:
282 #.
283 #: ../src/virt-viewer-auth.xml.h:1
209284 msgid "Authentication required"
210 msgstr "Autenticación requerida"
211
212 #: ../src/auth.glade.h:2
285 msgstr "Se necesita autenticación"
286
287 #: ../src/virt-viewer-auth.xml.h:2
213288 msgid "Password:"
214289 msgstr "Contraseña:"
215290
216 #: ../src/auth.glade.h:3
291 #: ../src/virt-viewer-auth.xml.h:3
217292 msgid "Username:"
218 msgstr "Usuario:"
219
220 #: ../src/auth.glade.h:4
221 msgid "gtk-cancel"
222 msgstr "gtk-cancel"
223
224 #: ../src/auth.glade.h:5
225 msgid "gtk-ok"
226 msgstr "gtk-ok"
227
228 #: ../src/auth.glade.h:6
293 msgstr "Nombre de usuario:"
294
295 #: ../src/virt-viewer-auth.xml.h:4
229296 msgid "label"
230297 msgstr "etiqueta"
231298
232 #: ../src/viewer.glade.h:1
299 #: ../src/virt-viewer-main.c:38
300 #, c-format
301 msgid "%s version %s\n"
302 msgstr "%s versión %s\n"
303
304 #: ../src/virt-viewer-main.c:69
305 msgid "Attach to the local display using libvirt"
306 msgstr "Añadir a la pantalla local mediante libvirt"
307
308 #: ../src/virt-viewer-main.c:71
309 msgid "Connect to hypervisor"
310 msgstr "Conectar al hipervisor"
311
312 #: ../src/virt-viewer-main.c:73
313 msgid "Wait for domain to start"
314 msgstr "Esperando a que inicie el dominio"
315
316 #: ../src/virt-viewer-main.c:75
317 msgid "Reconnect to domain upon restart"
318 msgstr "Reconéctese al dominio tras el reinicio"
319
320 #: ../src/virt-viewer-main.c:81
321 msgid "Open in full screen mode"
322 msgstr "Abrir en modo a pantalla completa"
323
324 #: ../src/virt-viewer-main.c:96
325 msgid "Virt Viewer"
326 msgstr "Virt Viewer"
327
328 #. Setup command line options
329 #: ../src/virt-viewer-main.c:99
330 msgid "- Virtual machine graphical console"
331 msgstr "- Consola gráfica de la máquina virtual"
332
333 #: ../src/virt-viewer-main.c:120
334 #, c-format
335 msgid ""
336 "\n"
337 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
338 "\n"
339 "%s\n"
340 "\n"
341 msgstr "\nUso: %s [OPCIONES] DOMINIO-NOMBRE|ID|UUID\n\n%s\n\n"
342
343 #. Create the widgets
344 #: ../src/virt-viewer-session-spice.c:380
345 msgid "Select USB devices for redirection"
346 msgstr "Seleccione los dispositivos USB para redirigir"
347
348 #: ../src/virt-viewer-session-vnc.c:141
349 #, c-format
350 msgid "Unsupported authentication type %d"
351 msgstr "Tipo de autenticación no compatible %d"
352
353 #: ../src/virt-viewer-window.c:832
354 msgid "Disconnect"
355 msgstr "Desconectar"
356
357 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
358 #: ../src/virt-viewer.xml.h:22
359 msgid "USB device selection"
360 msgstr "Selección de dispositivos USB"
361
362 #: ../src/virt-viewer-window.c:848
363 msgid "Send key combination"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
367 msgid "Leave fullscreen"
368 msgstr "Salir de pantalla completa"
369
370 #: ../src/virt-viewer-window.c:937
371 msgid "Ctrl+Alt"
372 msgstr ""
373
374 #: ../src/virt-viewer-window.c:940
375 #, c-format
376 msgid "(Press %s to release pointer)"
377 msgstr ""
378
379 #. translators:
380 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
381 #. <appname>"
382 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
383 #. Viewer"
384 #.
385 #: ../src/virt-viewer-window.c:951
386 #, c-format
387 msgid "%s%s%s - %s"
388 msgstr "%s%s%s - %s"
389
390 #. translators: <space>
391 #: ../src/virt-viewer-window.c:955
392 msgid " "
393 msgstr " "
394
395 #: ../src/virt-viewer.c:144
396 msgid "Waiting for guest domain to re-start"
397 msgstr "Esperando que el dominio de huéspedes reinicie"
398
399 #: ../src/virt-viewer.c:308
400 #, c-format
401 msgid "Cannot determine the graphic type for the guest %s"
402 msgstr "No se puede determinar el tipo de gráficos para el huésped %s"
403
404 #: ../src/virt-viewer.c:321
405 #, c-format
406 msgid "Cannot determine the graphic address for the guest %s"
407 msgstr "No se puede determinar la dirección de gráficos para el huésped %s"
408
409 #: ../src/virt-viewer.c:344
410 #, c-format
411 msgid "Cannot determine the host for the guest %s"
412 msgstr "No se puede determinar el anfitrión para el huésped %s"
413
414 #: ../src/virt-viewer.c:474
415 msgid "Finding guest domain"
416 msgstr "Buscando dominio de huéspedes"
417
418 #: ../src/virt-viewer.c:478
419 msgid "Waiting for guest domain to be created"
420 msgstr "Esperando a que el dominio de huéspedes sea creado"
421
422 #: ../src/virt-viewer.c:483
423 #, c-format
424 msgid "Cannot find guest domain %s"
425 msgstr "No se pudo encontrar el dominio huésped %s"
426
427 #: ../src/virt-viewer.c:490
428 msgid "Checking guest domain status"
429 msgstr "Comprobando el estatus del dominio de huéspedes"
430
431 #: ../src/virt-viewer.c:497
432 msgid "Waiting for guest domain to start"
433 msgstr "Esperando a que dominio de huéspedes inicie"
434
435 #: ../src/virt-viewer.c:504
436 msgid "Waiting for guest domain to start server"
437 msgstr "Esperando a que el servidor del dominio de huéspedes inicie"
438
439 #: ../src/virt-viewer.c:624
440 #, c-format
441 msgid "Unable to connect to libvirt with URI %s"
442 msgstr "No se pudo conectar a libvirt con el URI %s"
443
444 #: ../src/virt-viewer.c:625
445 msgid "[none]"
446 msgstr "[ninguno]"
447
448 #. * Local variables:
449 #. * c-indent-level: 4
450 #. * c-basic-offset: 4
451 #. * indent-tabs-mode: nil
452 #. * End:
453 #.
454 #: ../src/virt-viewer.xml.h:1
233455 msgid "Automatically resize"
234 msgstr "Redimensión automática"
235
236 #: ../src/viewer.glade.h:2
456 msgstr "Redimensionar automáticamente"
457
458 #: ../src/virt-viewer.xml.h:2
237459 msgid "Ctrl+Alt+F11"
238460 msgstr "Ctrl+Alt+F11"
239461
240 #: ../src/viewer.glade.h:3
462 #: ../src/virt-viewer.xml.h:3
241463 msgid "Ctrl+Alt+F12"
242464 msgstr "Ctrl+Alt+F12"
243465
244 #: ../src/viewer.glade.h:4
466 #: ../src/virt-viewer.xml.h:4
245467 msgid "Ctrl+Alt+F1_0"
246468 msgstr "Ctrl+Alt+F1_0"
247469
248 #: ../src/viewer.glade.h:5
470 #: ../src/virt-viewer.xml.h:5
249471 msgid "Ctrl+Alt+F_1"
250472 msgstr "Ctrl+Alt+F_1"
251473
252 #: ../src/viewer.glade.h:6
474 #: ../src/virt-viewer.xml.h:6
253475 msgid "Ctrl+Alt+F_2"
254476 msgstr "Ctrl+Alt+F_2"
255477
256 #: ../src/viewer.glade.h:7
478 #: ../src/virt-viewer.xml.h:7
257479 msgid "Ctrl+Alt+F_3"
258480 msgstr "Ctrl+Alt+F_3"
259481
260 #: ../src/viewer.glade.h:8
482 #: ../src/virt-viewer.xml.h:8
261483 msgid "Ctrl+Alt+F_4"
262484 msgstr "Ctrl+Alt+F_4"
263485
264 #: ../src/viewer.glade.h:9
486 #: ../src/virt-viewer.xml.h:9
265487 msgid "Ctrl+Alt+F_5"
266488 msgstr "Ctrl+Alt+F_5"
267489
268 #: ../src/viewer.glade.h:10
490 #: ../src/virt-viewer.xml.h:10
269491 msgid "Ctrl+Alt+F_6"
270492 msgstr "Ctrl+Alt+F_6"
271493
272 #: ../src/viewer.glade.h:11
494 #: ../src/virt-viewer.xml.h:11
273495 msgid "Ctrl+Alt+F_7"
274496 msgstr "Ctrl+Alt+F_7"
275497
276 #: ../src/viewer.glade.h:12
498 #: ../src/virt-viewer.xml.h:12
277499 msgid "Ctrl+Alt+F_8"
278500 msgstr "Ctrl+Alt+F_8"
279501
280 #: ../src/viewer.glade.h:13
502 #: ../src/virt-viewer.xml.h:13
281503 msgid "Ctrl+Alt+F_9"
282504 msgstr "Ctrl+Alt+F_9"
283505
284 #: ../src/viewer.glade.h:14
506 #: ../src/virt-viewer.xml.h:14
285507 msgid "Ctrl+Alt+_Backspace"
286 msgstr "Ctrl+Alt+_Backspace"
287
288 #: ../src/viewer.glade.h:15
508 msgstr "Ctrl+Alt+_Retroceso"
509
510 #: ../src/virt-viewer.xml.h:15
289511 msgid "Ctrl+Alt+_Del"
290 msgstr "Ctrl+Alt+_Del"
291
292 #: ../src/viewer.glade.h:16
512 msgstr "Ctrl+Alt+_Supr"
513
514 #: ../src/virt-viewer.xml.h:16
515 msgid "Displays"
516 msgstr "Pantallas"
517
518 #: ../src/virt-viewer.xml.h:17
293519 msgid "Full screen"
294520 msgstr "Pantalla completa"
295521
296 #: ../src/viewer.glade.h:17
522 #: ../src/virt-viewer.xml.h:18
523 msgid "Release cursor"
524 msgstr "Libere el cursor"
525
526 #: ../src/virt-viewer.xml.h:19
297527 msgid "Screenshot"
298528 msgstr "Captura de pantalla"
299529
300 #: ../src/viewer.glade.h:18
530 #: ../src/virt-viewer.xml.h:20
531 msgid "Smartcard insertion"
532 msgstr "Inserción de Smartcard"
533
534 #: ../src/virt-viewer.xml.h:21
535 msgid "Smartcard removal"
536 msgstr "Retiro de Smartcard"
537
538 #: ../src/virt-viewer.xml.h:23
301539 msgid "_File"
302540 msgstr "_Archivo"
303541
304 #: ../src/viewer.glade.h:19
542 #: ../src/virt-viewer.xml.h:24
305543 msgid "_Help"
306544 msgstr "Ay_uda"
307545
308 #: ../src/viewer.glade.h:20
546 #: ../src/virt-viewer.xml.h:25
309547 msgid "_PrintScreen"
310 msgstr "_PrintScreen"
311
312 #: ../src/viewer.glade.h:21
548 msgstr "_ImprPant"
549
550 #: ../src/virt-viewer.xml.h:26
313551 msgid "_Send key"
314 msgstr "_Send key"
315
316 #: ../src/viewer.glade.h:22
552 msgstr "_Enviar llave"
553
554 #: ../src/virt-viewer.xml.h:27
317555 msgid "_View"
318556 msgstr "_Ver"
319557
320 #: ../src/viewer.glade.h:23
558 #: ../src/virt-viewer.xml.h:28
321559 msgid "_Zoom"
322 msgstr "Acercar"
323
324 #: ../src/viewer.glade.h:24
325 msgid "gtk-about"
326 msgstr "gtk-about"
327
328 #: ../src/viewer.glade.h:25
329 msgid "gtk-quit"
330 msgstr "gtk-quit"
331
332 #: ../src/viewer.glade.h:26
333 msgid "page 1"
334 msgstr "Página 1"
335
336 #: ../src/viewer.glade.h:27
337 msgid "page 2"
338 msgstr "Página 2"
339
340 #: ../src/viewer.glade.h:28
341 msgid "page 3"
342 msgstr "página 3"
343
344 #: ../src/viewer.c:852
345 #, c-format
346 msgid "Cannot determine the graphic address for the guest %s"
347 msgstr "No se puede determinar la dirección de gráficos para el huésped %s"
348
349 #~ msgid "Cannot determine the graphic port for the guest %s"
350 #~ msgstr "No se puede determinar el puerto de gráficos para el huésped %s"
560 msgstr "_Zoom"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2012.
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: virt-viewer\n"
9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Basque (http://www.transifex.net/projects/p/fedora/language/eu/)\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Language: eu\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr ""
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr ""
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr ""
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr ""
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr ""
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr ""
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr ""
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr ""
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr ""
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr ""
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr ""
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
84 msgid "Run '"
85 msgstr "Exekutatu"
86
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "Bistaratu bertsio informazioa"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr ""
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr ""
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr ""
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "Bistaratu arazketa informazioa"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr ""
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
118
119 #. Setup command line options
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr ""
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr ""
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr ""
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr ""
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr ""
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr ""
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr ""
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr ""
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr ""
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr ""
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr "Glade-ri buruz"
182
183 #: ../src/virt-viewer-about.xml.h:3
184 msgid ""
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright-a (C) 2007-2012 Daniel P. Berrange\nCopyright-a (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
190 msgid "The Fedora Translation Team"
191 msgstr ""
192
193 #: ../src/virt-viewer-about.xml.h:6
194 msgid ""
195 "This program is free software; you can redistribute it and/or modify\n"
196 "it under the terms of the GNU General Public License as published by\n"
197 "the Free Software Foundation; either version 2 of the License, or\n"
198 "(at your option) any later version.\n"
199 "\n"
200 "This program is distributed in the hope that it will be useful,\n"
201 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
202 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
203 "GNU General Public License for more details.\n"
204 "\n"
205 "You should have received a copy of the GNU General Public License\n"
206 "along with this program; if not, write to the Free Software\n"
207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
208 msgstr ""
209
210 #: ../src/virt-viewer-about.xml.h:20
211 msgid "virt-manager.org"
212 msgstr ""
213
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr ""
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr ""
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr ""
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr ""
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr ""
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr ""
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr ""
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr ""
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr ""
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr ""
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr ""
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr ""
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr ""
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
281 msgid "Authentication required"
282 msgstr ""
283
284 #: ../src/virt-viewer-auth.xml.h:2
285 msgid "Password:"
286 msgstr "Pasahitza:"
287
288 #: ../src/virt-viewer-auth.xml.h:3
289 msgid "Username:"
290 msgstr "Erabiltzaile-izena:"
291
292 #: ../src/virt-viewer-auth.xml.h:4
293 msgid "label"
294 msgstr "etiketa"
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s bertsioa %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr ""
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr ""
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr ""
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr ""
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "Ireki pantaila osoko moduan"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr ""
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr ""
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr ""
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr ""
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr ""
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "Deskonektatu"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB gailuaren hautapena"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "Irten pantaila osotik"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr ""
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr ""
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr ""
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr ""
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr ""
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr ""
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr ""
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr ""
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr ""
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr ""
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr ""
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr ""
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
452 msgid "Automatically resize"
453 msgstr ""
454
455 #: ../src/virt-viewer.xml.h:2
456 msgid "Ctrl+Alt+F11"
457 msgstr ""
458
459 #: ../src/virt-viewer.xml.h:3
460 msgid "Ctrl+Alt+F12"
461 msgstr ""
462
463 #: ../src/virt-viewer.xml.h:4
464 msgid "Ctrl+Alt+F1_0"
465 msgstr ""
466
467 #: ../src/virt-viewer.xml.h:5
468 msgid "Ctrl+Alt+F_1"
469 msgstr ""
470
471 #: ../src/virt-viewer.xml.h:6
472 msgid "Ctrl+Alt+F_2"
473 msgstr ""
474
475 #: ../src/virt-viewer.xml.h:7
476 msgid "Ctrl+Alt+F_3"
477 msgstr ""
478
479 #: ../src/virt-viewer.xml.h:8
480 msgid "Ctrl+Alt+F_4"
481 msgstr ""
482
483 #: ../src/virt-viewer.xml.h:9
484 msgid "Ctrl+Alt+F_5"
485 msgstr ""
486
487 #: ../src/virt-viewer.xml.h:10
488 msgid "Ctrl+Alt+F_6"
489 msgstr ""
490
491 #: ../src/virt-viewer.xml.h:11
492 msgid "Ctrl+Alt+F_7"
493 msgstr ""
494
495 #: ../src/virt-viewer.xml.h:12
496 msgid "Ctrl+Alt+F_8"
497 msgstr ""
498
499 #: ../src/virt-viewer.xml.h:13
500 msgid "Ctrl+Alt+F_9"
501 msgstr ""
502
503 #: ../src/virt-viewer.xml.h:14
504 msgid "Ctrl+Alt+_Backspace"
505 msgstr ""
506
507 #: ../src/virt-viewer.xml.h:15
508 msgid "Ctrl+Alt+_Del"
509 msgstr ""
510
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr ""
514
515 #: ../src/virt-viewer.xml.h:17
516 msgid "Full screen"
517 msgstr "Pantaila osoa"
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr ""
522
523 #: ../src/virt-viewer.xml.h:19
524 msgid "Screenshot"
525 msgstr "Pantaila-argazkia"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr ""
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr ""
534
535 #: ../src/virt-viewer.xml.h:23
536 msgid "_File"
537 msgstr "_Fitxategia"
538
539 #: ../src/virt-viewer.xml.h:24
540 msgid "_Help"
541 msgstr "_Laguntza"
542
543 #: ../src/virt-viewer.xml.h:25
544 msgid "_PrintScreen"
545 msgstr "_Inprimatu pantaila"
546
547 #: ../src/virt-viewer.xml.h:26
548 msgid "_Send key"
549 msgstr "_Bidali tekla"
550
551 #: ../src/virt-viewer.xml.h:27
552 msgid "_View"
553 msgstr "_Ikusi"
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "_Zooma"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Finnish (http://www.transifex.net/projects/p/fedora/language/fi/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: fi\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+447
-213
po/fr.po less more
0 # translation of virt-viewer.tip.fr.po to French
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Sam Friedmann <sam.friedmann@redhat.com>, 2010.
3 #
4 # Translators:
55 # Boris BARNIER <b.barnier@gmail.com>, 2010.
6 # Sam Friedmann <sam.friedmann@redhat.com>, 2010, 2012.
67 msgid ""
78 msgstr ""
8 "Project-Id-Version: virt-viewer.tip.fr\n"
9 "Project-Id-Version: virt-viewer\n"
910 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2010-07-29 07:52+0000\n"
11 "PO-Revision-Date: 2010-07-29 23:31+0200\n"
12 "Last-Translator: Boris BARNIER <b.barnier@gmail.com>\n"
11 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
12 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
13 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
1314 "Language-Team: French <trans-fr@lists.fedoraproject.org>\n"
1415 "MIME-Version: 1.0\n"
1516 "Content-Type: text/plain; charset=UTF-8\n"
1617 "Content-Transfer-Encoding: 8bit\n"
17 "X-Generator: Lokalize 1.0\n"
18 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
19
20 #: ../src/main.c:34
21 #, c-format
22 msgid "%s version %s\n"
23 msgstr "%s version %s\n"
24
25 #: ../src/main.c:53
18 "Language: fr\n"
19 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
20
21 #: ../src/gbinding.c:637
22 msgid "Source"
23 msgstr "Source"
24
25 #: ../src/gbinding.c:638
26 msgid "The source of the binding"
27 msgstr "Source de la liaison"
28
29 #: ../src/gbinding.c:652
30 msgid "Target"
31 msgstr "Cible"
32
33 #: ../src/gbinding.c:653
34 msgid "The target of the binding"
35 msgstr "Cible de la liaison"
36
37 #: ../src/gbinding.c:668
38 msgid "Source Property"
39 msgstr "Propriétés de la source"
40
41 #: ../src/gbinding.c:669
42 msgid "The property on the source to bind"
43 msgstr "Propriétés de la source à lier"
44
45 #: ../src/gbinding.c:684
46 msgid "Target Property"
47 msgstr "Propriétés de la cible"
48
49 #: ../src/gbinding.c:685
50 msgid "The property on the target to bind"
51 msgstr "Propriétés de la cible à lier"
52
53 #: ../src/gbinding.c:699
54 msgid "Flags"
55 msgstr "Indicateurs"
56
57 #: ../src/gbinding.c:700
58 msgid "The binding flags"
59 msgstr "Indicateurs de liaison"
60
61 #: ../src/remote-viewer-main.c:47
62 #, c-format
63 msgid "remote-viewer version %s\n"
64 msgstr "remote-viewer version %s\n"
65
66 #: ../src/remote-viewer-main.c:69
67 #, c-format
68 msgid "Invalid full-screen argument: %s"
69 msgstr ""
70
71 #. Create the widgets
72 #: ../src/remote-viewer-main.c:104
73 msgid "Connection details"
74 msgstr ""
75
76 #: ../src/remote-viewer-main.c:119
77 msgid "URL:"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:127
81 msgid "Recent connections:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2685 msgid "Run '"
2786 msgstr "Exécuter '"
2887
29 #: ../src/main.c:56
30 msgid "display version information"
31 msgstr "afficher les informations sur la version"
32
33 #: ../src/main.c:58
34 msgid "display verbose information"
35 msgstr "afficher les informations détaillées"
36
37 #: ../src/main.c:60
38 msgid "direct connection with no automatic tunnels"
39 msgstr "connexion directe sans tunnels automatiques"
40
41 #: ../src/main.c:62
42 msgid "connect to hypervisor"
43 msgstr "connecter à l'hyperviseur"
44
45 #: ../src/main.c:64
46 msgid "wait for domain to start"
47 msgstr "attendez que le domaine démarre"
48
49 #: ../src/main.c:66
50 msgid "reconnect to domain upon restart"
51 msgstr "reconnecter au domaine lors du redémarrage"
52
53 #: ../src/main.c:68
88 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
89 msgid "Display version information"
90 msgstr "Afficher les informations de version"
91
92 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
93 msgid "Display verbose information"
94 msgstr "Afficher les informations verbeuses"
95
96 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
97 msgid "Direct connection with no automatic tunnels"
98 msgstr "Connexion directe sans tunnels automatiques"
99
100 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
54101 msgid "Zoom level of window, in percentage"
55102 msgstr "Niveau de zoom de la fenêtre, en pourcentage"
56103
57 #: ../src/main.c:70
58 msgid "display debugging information"
59 msgstr "afficher les informations de débogage"
104 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
105 msgid "Display debugging information"
106 msgstr "Afficher les informations de débogage"
107
108 #: ../src/remote-viewer-main.c:219
109 msgid "Open in full screen mode (=<auto-conf>)"
110 msgstr ""
111
112 #: ../src/remote-viewer-main.c:222
113 msgid "Open connection using Spice controller communication"
114 msgstr "Ouvrir la connexion à l'aide d'une communication avec le contrôleur de Spice"
115
116 #: ../src/remote-viewer-main.c:249
117 msgid "Remote Viewer"
118 msgstr ""
60119
61120 #. Setup command line options
62 #: ../src/main.c:82
63 msgid "- Virtual machine graphical console"
64 msgstr "- Console graphique de la machine virtuelle"
65
66 #: ../src/main.c:98
67 #, c-format
68 msgid ""
69 "\n"
70 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
71 "\n"
72 "%s\n"
73 "\n"
74 msgstr ""
75 "\n"
76 "Usage : %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
77 "\n"
78 "%s\n"
79 "\n"
80
81 #: ../src/viewer.c:909
82 #, c-format
83 msgid "Cannot determine the VNC port for the guest %s"
84 msgstr "Impossible de déterminer le port VNC pour l'invité %s"
85
86 #: ../src/viewer.c:915
87 #, c-format
88 msgid "Cannot determine the VNC host for the guest %s"
89 msgstr "Impossible de déterminer l'hôte VNC pour l'invité %s"
90
91 #: ../src/viewer.c:1015
92 #, c-format
93 msgid "Unable to connect to the VNC server %s"
94 msgstr "Impossible de se connecter au serveur VNC %s"
95
96 #: ../src/viewer.c:1032
97 #, c-format
98 msgid ""
99 "Unable to authenticate with VNC server at %s: %s\n"
100 "Retry connection again?"
101 msgstr ""
102 "Authentification avec le serveur VNC impossible à %s:%s\n"
103 "Réessayer d'établir la connexion ?"
104
105 #: ../src/viewer.c:1050
106 #, c-format
107 msgid ""
108 "Unable to authenticate with VNC server at %s\n"
109 "Unsupported authentication type %d"
110 msgstr ""
111 "Authentification avec le serveur VNC impossible à %s\n"
112 "Type %d d'authentification non pris en charge"
113
114 #: ../src/viewer.c:1142
115 #, c-format
116 msgid "Cannot find guest domain %s"
117 msgstr "Impossible de trouver le domaine invité %s"
118
119 #: ../src/viewer.c:1246
120 #, c-format
121 msgid "Unable to connect to libvirt with URI %s"
122 msgstr "Impossible de se connecter à libvirt avec URI %s"
123
124 #: ../src/viewer.c:1247
125 msgid "[none]"
126 msgstr "[aucun]"
127
128 #.
121 #: ../src/remote-viewer-main.c:252
122 msgid "- Remote viewer client"
123 msgstr "- Client de l'afficheur distant"
124
125 #: ../src/remote-viewer-main.c:275
126 #, c-format
127 msgid "Error: extra arguments given while using Spice controller\n"
128 msgstr ""
129
130 #: ../src/remote-viewer-main.c:284
131 #, c-format
132 msgid "Error: can't handle multiple URIs\n"
133 msgstr ""
134
135 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
136 #, c-format
137 msgid "Zoom level must be within 10-200\n"
138 msgstr "Le niveau du zoom doit se trouver entre 10 et 200\n"
139
140 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
141 msgid "Failed to initiate connection"
142 msgstr "Impossible d'initier la connexion"
143
144 #: ../src/remote-viewer.c:250
145 msgid "Display disabled by controller"
146 msgstr "Affichage désactivé par le contrôleur"
147
148 #: ../src/remote-viewer.c:697
149 #, c-format
150 msgid "Controller connection failed: %s"
151 msgstr "Échec de la connexion du contrôleur : %s"
152
153 #: ../src/remote-viewer.c:750
154 msgid "Couldn't create a Spice session"
155 msgstr "Impossible de créer une session Spice"
156
157 #: ../src/remote-viewer.c:764
158 msgid "Setting up Spice session..."
159 msgstr "Mise en place d'une session Spice..."
160
161 #: ../src/remote-viewer.c:774
162 msgid "Cannot determine the connection type from URI"
163 msgstr "Impossible de déterminer le type de la connexion à partir de l'URI"
164
165 #: ../src/remote-viewer.c:779
166 #, c-format
167 msgid "Couldn't create a session for this type: %s"
168 msgstr "Impossible de créer une session pour ce type : %s"
169
129170 #. * Local variables:
130 #. * c-indent-level: 8
131 #. * c-basic-offset: 8
132 #. * tab-width: 8
171 #. * c-indent-level: 4
172 #. * c-basic-offset: 4
173 #. * indent-tabs-mode: nil
133174 #. * End:
134 #.
135 #: ../src/about.glade.h:1
136 msgid "A remote desktop client built with GTK-VNC and libvirt"
137 msgstr "Un client bureau à distance construit avec GTK-VNC et libvirt"
138
139 #: ../src/about.glade.h:2
175 #.
176 #: ../src/virt-viewer-about.xml.h:1
177 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
178 msgstr "Le client bureau distant créé avec GTK-VNC, SPICE-GTK et libvirt"
179
180 #: ../src/virt-viewer-about.xml.h:2
140181 msgid "About Glade"
141182 msgstr "À propos de Glade"
142183
143 #: ../src/about.glade.h:3
184 #: ../src/virt-viewer-about.xml.h:3
144185 msgid ""
145 "Copyright 2007-2008 Daniel P. Berrange\n"
146 "Copyright 2007-2008 Red Hat, Inc."
147 msgstr ""
148 "Copyright 2007-2008 Daniel P. Berrange\n"
149 "Copyright 2007-2008 Red Hat, Inc."
150
151 #: ../src/about.glade.h:5
186 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
187 "Copyright (C) 2007-2012 Red Hat, Inc."
188 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
189
190 #: ../src/virt-viewer-about.xml.h:5
152191 msgid "The Fedora Translation Team"
153192 msgstr "L'équipe de traduction de Fedora"
154193
155 #: ../src/about.glade.h:6
194 #: ../src/virt-viewer-about.xml.h:6
156195 msgid ""
157196 "This program is free software; you can redistribute it and/or modify\n"
158197 "it under the terms of the GNU General Public License as published by\n"
167206 "You should have received a copy of the GNU General Public License\n"
168207 "along with this program; if not, write to the Free Software\n"
169208 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
170 msgstr ""
171 "Ce programme est un logiciel libre, vous pouvez le redistribuer et/ou le "
172 "modifier\n"
173 "sous les termes de la Licence Publique Générale GNU (GPL) publiée par\n"
174 "la Free Software Foundation ; soit la version 2 de la licence, soit\n"
175 "(à votre gré) une version plus récente.\n"
176 "\n"
177 "Ce logiciel est distribué dans l'espoir d'être nécessité, mais N'EST PAS\n"
178 "garanti ; et ne comporte pas de GARANTIE IMPLICITE DE QUALITÉ MARCHANDE\n"
179 "ou d'ADÉQUATION À UN BUT PARTICULIER. Voir la Licence Publique Générale "
180 "GNU\n"
181 "pour obtenir plus de détails.\n"
182 "\n"
183 "Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec\n"
184 "ce logiciel. Si ce n'est pas le cas, envoyez un courrier à la\n"
185 "Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA "
186 "02111-1307 USA\n"
187
188 #: ../src/about.glade.h:20
209 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"
210
211 #: ../src/virt-viewer-about.xml.h:20
189212 msgid "virt-manager.org"
190213 msgstr "virt-manager.org"
191214
192 #: ../src/auth.glade.h:1
215 #: ../src/virt-viewer-app.c:284
216 msgid "This is the last visible display. Do you want to quit?"
217 msgstr "Ceci est le dernier écran d'affichage visible. Souhaitez-vous quitter l'application ?"
218
219 #: ../src/virt-viewer-app.c:624
220 #, c-format
221 msgid "Waiting for display %d..."
222 msgstr "En attente de l'affichage %d..."
223
224 #: ../src/virt-viewer-app.c:707
225 #, c-format
226 msgid "Unknown graphic type for the guest %s"
227 msgstr "Type d'affichage inconnu de l'invité %s"
228
229 #: ../src/virt-viewer-app.c:782
230 msgid "Connect to ssh failed."
231 msgstr "Échec de la connexion ssh."
232
233 #: ../src/virt-viewer-app.c:784
234 msgid "Can't connect to channel, SSH only supported."
235 msgstr "Impossible d'établir la connexion au canal, seul SSH est pris en charge."
236
237 #: ../src/virt-viewer-app.c:796
238 msgid "Connect to channel unsupported."
239 msgstr "La connexion au canal n'est pas prise en charge."
240
241 #: ../src/virt-viewer-app.c:876
242 msgid "Connecting to graphic server"
243 msgstr "Connexion au serveur d'affichage"
244
245 #: ../src/virt-viewer-app.c:1006
246 msgid "Guest domain has shutdown"
247 msgstr "Le domaine invité est fermé"
248
249 #: ../src/virt-viewer-app.c:1056
250 msgid "Connected to graphic server"
251 msgstr "Connecté au serveur d'affichage"
252
253 #: ../src/virt-viewer-app.c:1082
254 #, c-format
255 msgid "Unable to connect to the graphic server %s"
256 msgstr "Impossible d'établir la connexion au serveur d'affichage %s"
257
258 #: ../src/virt-viewer-app.c:1111
259 #, c-format
260 msgid ""
261 "Unable to authenticate with remote desktop server at %s: %s\n"
262 "Retry connection again?"
263 msgstr "Authentification avec le serveur distant sur %s impossible : %s\nEssayer la connexion à nouveau ?"
264
265 #: ../src/virt-viewer-app.c:1131
266 #, c-format
267 msgid "Unable to authenticate with remote desktop server: %s"
268 msgstr "Impossible d'authentifier la connexion avec le serveur de bureau distant : %s"
269
270 #: ../src/virt-viewer-app.c:1139
271 #, c-format
272 msgid "USB redirection error: %s"
273 msgstr "Erreur de redirection USB : %s"
274
275 #. * Local variables:
276 #. * c-indent-level: 4
277 #. * c-basic-offset: 4
278 #. * indent-tabs-mode: nil
279 #. * End:
280 #.
281 #: ../src/virt-viewer-auth.xml.h:1
193282 msgid "Authentication required"
194283 msgstr "Authentification requise"
195284
196 #: ../src/auth.glade.h:2
285 #: ../src/virt-viewer-auth.xml.h:2
197286 msgid "Password:"
198287 msgstr "Mot de passe :"
199288
200 #: ../src/auth.glade.h:3
289 #: ../src/virt-viewer-auth.xml.h:3
201290 msgid "Username:"
202291 msgstr "Nom d'utilisateur :"
203292
204 #: ../src/auth.glade.h:4
205 msgid "gtk-cancel"
206 msgstr "gtk-cancel"
207
208 #: ../src/auth.glade.h:5
209 msgid "gtk-ok"
210 msgstr "gtk-ok"
211
212 #: ../src/auth.glade.h:6
293 #: ../src/virt-viewer-auth.xml.h:4
213294 msgid "label"
214 msgstr "label"
215
216 #: ../src/viewer.glade.h:1
295 msgstr "étiquette"
296
297 #: ../src/virt-viewer-main.c:38
298 #, c-format
299 msgid "%s version %s\n"
300 msgstr "%s version %s\n"
301
302 #: ../src/virt-viewer-main.c:69
303 msgid "Attach to the local display using libvirt"
304 msgstr "S'attacher à l'affichage local à l'aide de libvirt"
305
306 #: ../src/virt-viewer-main.c:71
307 msgid "Connect to hypervisor"
308 msgstr "Se connecter à l'hyperviseur"
309
310 #: ../src/virt-viewer-main.c:73
311 msgid "Wait for domain to start"
312 msgstr "En attente de démarrage du domaine"
313
314 #: ../src/virt-viewer-main.c:75
315 msgid "Reconnect to domain upon restart"
316 msgstr "Se reconnecter au domaine lors des redémarrages"
317
318 #: ../src/virt-viewer-main.c:81
319 msgid "Open in full screen mode"
320 msgstr "Ouvrir en mode plein écran"
321
322 #: ../src/virt-viewer-main.c:96
323 msgid "Virt Viewer"
324 msgstr "Virt Viewer"
325
326 #. Setup command line options
327 #: ../src/virt-viewer-main.c:99
328 msgid "- Virtual machine graphical console"
329 msgstr "- Console graphique de la machine virtuelle"
330
331 #: ../src/virt-viewer-main.c:120
332 #, c-format
333 msgid ""
334 "\n"
335 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
336 "\n"
337 "%s\n"
338 "\n"
339 msgstr "\nUsage : %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
340
341 #. Create the widgets
342 #: ../src/virt-viewer-session-spice.c:380
343 msgid "Select USB devices for redirection"
344 msgstr "Sélectionnez les périphériques USB à rediriger"
345
346 #: ../src/virt-viewer-session-vnc.c:141
347 #, c-format
348 msgid "Unsupported authentication type %d"
349 msgstr "Le type d'authentification %d n'est pas pris en charge"
350
351 #: ../src/virt-viewer-window.c:832
352 msgid "Disconnect"
353 msgstr "Déconnexion"
354
355 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
356 #: ../src/virt-viewer.xml.h:22
357 msgid "USB device selection"
358 msgstr "Sélection du périphérique USB"
359
360 #: ../src/virt-viewer-window.c:848
361 msgid "Send key combination"
362 msgstr ""
363
364 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
365 msgid "Leave fullscreen"
366 msgstr "Quitter le plein écran"
367
368 #: ../src/virt-viewer-window.c:937
369 msgid "Ctrl+Alt"
370 msgstr ""
371
372 #: ../src/virt-viewer-window.c:940
373 #, c-format
374 msgid "(Press %s to release pointer)"
375 msgstr ""
376
377 #. translators:
378 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
379 #. <appname>"
380 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
381 #. Viewer"
382 #.
383 #: ../src/virt-viewer-window.c:951
384 #, c-format
385 msgid "%s%s%s - %s"
386 msgstr "%s%s%s - %s"
387
388 #. translators: <space>
389 #: ../src/virt-viewer-window.c:955
390 msgid " "
391 msgstr " "
392
393 #: ../src/virt-viewer.c:144
394 msgid "Waiting for guest domain to re-start"
395 msgstr "En attente du redémarrage du domaine invité"
396
397 #: ../src/virt-viewer.c:308
398 #, c-format
399 msgid "Cannot determine the graphic type for the guest %s"
400 msgstr "Impossible de déterminer le type d'affichage de l'invité %s"
401
402 #: ../src/virt-viewer.c:321
403 #, c-format
404 msgid "Cannot determine the graphic address for the guest %s"
405 msgstr "Impossible de déterminer l'adresse de l'affichage de l'invité %s"
406
407 #: ../src/virt-viewer.c:344
408 #, c-format
409 msgid "Cannot determine the host for the guest %s"
410 msgstr "Impossible de déterminer l'hôte de l'invité %s"
411
412 #: ../src/virt-viewer.c:474
413 msgid "Finding guest domain"
414 msgstr "Recherche du domaine invité"
415
416 #: ../src/virt-viewer.c:478
417 msgid "Waiting for guest domain to be created"
418 msgstr "En attente de la création du domaine invité"
419
420 #: ../src/virt-viewer.c:483
421 #, c-format
422 msgid "Cannot find guest domain %s"
423 msgstr "Impossible de trouver le domaine invité %s"
424
425 #: ../src/virt-viewer.c:490
426 msgid "Checking guest domain status"
427 msgstr "Vérification du statut du domaine invité"
428
429 #: ../src/virt-viewer.c:497
430 msgid "Waiting for guest domain to start"
431 msgstr "En attente du démarrage du domaine invité"
432
433 #: ../src/virt-viewer.c:504
434 msgid "Waiting for guest domain to start server"
435 msgstr "En attente du démarrage du serveur par le domaine invité"
436
437 #: ../src/virt-viewer.c:624
438 #, c-format
439 msgid "Unable to connect to libvirt with URI %s"
440 msgstr "Impossible de se connecter à libvirt avec URI %s"
441
442 #: ../src/virt-viewer.c:625
443 msgid "[none]"
444 msgstr "[aucun]"
445
446 #. * Local variables:
447 #. * c-indent-level: 4
448 #. * c-basic-offset: 4
449 #. * indent-tabs-mode: nil
450 #. * End:
451 #.
452 #: ../src/virt-viewer.xml.h:1
217453 msgid "Automatically resize"
218454 msgstr "Redimensionner automatiquement"
219455
220 #: ../src/viewer.glade.h:2
456 #: ../src/virt-viewer.xml.h:2
221457 msgid "Ctrl+Alt+F11"
222458 msgstr "Ctrl+Alt+F11"
223459
224 #: ../src/viewer.glade.h:3
460 #: ../src/virt-viewer.xml.h:3
225461 msgid "Ctrl+Alt+F12"
226462 msgstr "Ctrl+Alt+F12"
227463
228 #: ../src/viewer.glade.h:4
464 #: ../src/virt-viewer.xml.h:4
229465 msgid "Ctrl+Alt+F1_0"
230466 msgstr "Ctrl+Alt+F1_0"
231467
232 #: ../src/viewer.glade.h:5
468 #: ../src/virt-viewer.xml.h:5
233469 msgid "Ctrl+Alt+F_1"
234470 msgstr "Ctrl+Alt+F_1"
235471
236 #: ../src/viewer.glade.h:6
472 #: ../src/virt-viewer.xml.h:6
237473 msgid "Ctrl+Alt+F_2"
238474 msgstr "Ctrl+Alt+F_2"
239475
240 #: ../src/viewer.glade.h:7
476 #: ../src/virt-viewer.xml.h:7
241477 msgid "Ctrl+Alt+F_3"
242478 msgstr "Ctrl+Alt+F_3"
243479
244 #: ../src/viewer.glade.h:8
480 #: ../src/virt-viewer.xml.h:8
245481 msgid "Ctrl+Alt+F_4"
246482 msgstr "Ctrl+Alt+F_4"
247483
248 #: ../src/viewer.glade.h:9
484 #: ../src/virt-viewer.xml.h:9
249485 msgid "Ctrl+Alt+F_5"
250486 msgstr "Ctrl+Alt+F_5"
251487
252 #: ../src/viewer.glade.h:10
488 #: ../src/virt-viewer.xml.h:10
253489 msgid "Ctrl+Alt+F_6"
254490 msgstr "Ctrl+Alt+F_6"
255491
256 #: ../src/viewer.glade.h:11
492 #: ../src/virt-viewer.xml.h:11
257493 msgid "Ctrl+Alt+F_7"
258494 msgstr "Ctrl+Alt+F_7"
259495
260 #: ../src/viewer.glade.h:12
496 #: ../src/virt-viewer.xml.h:12
261497 msgid "Ctrl+Alt+F_8"
262498 msgstr "Ctrl+Alt+F_8"
263499
264 #: ../src/viewer.glade.h:13
500 #: ../src/virt-viewer.xml.h:13
265501 msgid "Ctrl+Alt+F_9"
266502 msgstr "Ctrl+Alt+F_9"
267503
268 #: ../src/viewer.glade.h:14
504 #: ../src/virt-viewer.xml.h:14
269505 msgid "Ctrl+Alt+_Backspace"
270 msgstr "Ctrl+Alt+_Backspace"
271
272 #: ../src/viewer.glade.h:15
506 msgstr "Ctrl+Alt+_Effacer"
507
508 #: ../src/virt-viewer.xml.h:15
273509 msgid "Ctrl+Alt+_Del"
274 msgstr "Ctrl+Alt+_Del"
275
276 #: ../src/viewer.glade.h:16
510 msgstr "Ctrl+Alt+_Suppr"
511
512 #: ../src/virt-viewer.xml.h:16
513 msgid "Displays"
514 msgstr "Affichages"
515
516 #: ../src/virt-viewer.xml.h:17
277517 msgid "Full screen"
278518 msgstr "Plein écran"
279519
280 #: ../src/viewer.glade.h:17
520 #: ../src/virt-viewer.xml.h:18
521 msgid "Release cursor"
522 msgstr "Libérer le curseur"
523
524 #: ../src/virt-viewer.xml.h:19
281525 msgid "Screenshot"
282526 msgstr "Capture d'écran"
283527
284 #: ../src/viewer.glade.h:18
528 #: ../src/virt-viewer.xml.h:20
529 msgid "Smartcard insertion"
530 msgstr "Insertion d'une Smartcard"
531
532 #: ../src/virt-viewer.xml.h:21
533 msgid "Smartcard removal"
534 msgstr "Suppression d'une Smartcard"
535
536 #: ../src/virt-viewer.xml.h:23
285537 msgid "_File"
286538 msgstr "_Fichier"
287539
288 #: ../src/viewer.glade.h:19
540 #: ../src/virt-viewer.xml.h:24
289541 msgid "_Help"
290542 msgstr "_Aide"
291543
292 #: ../src/viewer.glade.h:20
544 #: ../src/virt-viewer.xml.h:25
293545 msgid "_PrintScreen"
294 msgstr "Im_primer l'écran"
295
296 #: ../src/viewer.glade.h:21
546 msgstr "Im_pressionÉcran"
547
548 #: ../src/virt-viewer.xml.h:26
297549 msgid "_Send key"
298 msgstr "_Envoyer la clé"
299
300 #: ../src/viewer.glade.h:22
550 msgstr "Touche _Envoyer"
551
552 #: ../src/virt-viewer.xml.h:27
301553 msgid "_View"
302 msgstr "Affic_hage"
303
304 #: ../src/viewer.glade.h:23
554 msgstr "_Afficher"
555
556 #: ../src/virt-viewer.xml.h:28
305557 msgid "_Zoom"
306558 msgstr "_Zoom"
307
308 #: ../src/viewer.glade.h:24
309 msgid "gtk-about"
310 msgstr "gtk-about"
311
312 #: ../src/viewer.glade.h:25
313 msgid "gtk-quit"
314 msgstr "gtk-quit"
315
316 #: ../src/viewer.glade.h:26
317 msgid "page 1"
318 msgstr "page 1"
319
320 #: ../src/viewer.glade.h:27
321 msgid "page 2"
322 msgstr "page 2"
323
324
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Galician (http://www.transifex.net/projects/p/fedora/language/gl/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: gl\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+473
-233
po/gu.po less more
0 # translation of virt-viewer.tip.virt-viewer.po to Gujarati
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
33 #
4 # Sweta Kothari <swkothar@redhat.com>, 2010.
4 # Translators:
5 # Sweta Kothari <swkothar@redhat.com>, 2010, 2012.
56 msgid ""
67 msgstr ""
7 "Project-Id-Version: virt-viewer.tip.virt-viewer\n"
8 "Project-Id-Version: virt-viewer\n"
89 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-07-21 21:23+0000\n"
10 "PO-Revision-Date: 2010-01-21 14:19+0530\n"
11 "Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
12 "Language-Team: Gujarati\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Gujarati <trans-gu@lists.fedoraproject.org>\n"
1314 "MIME-Version: 1.0\n"
1415 "Content-Type: text/plain; charset=UTF-8\n"
1516 "Content-Transfer-Encoding: 8bit\n"
16 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
17 "X-Generator: KBabel 1.11.4\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s આવૃત્તિ %s\n"
23
24 #: ../src/main.c:53
17 "Language: gu\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "સ્ત્રોત"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "બાઇન્ડીંગનુ સ્ત્રોત"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "લક્ષ્ય"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "બાઇન્ડીંગનુ લક્ષ્ય"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "સ્ત્રોત ગુણધર્મ"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "બાઇન્ડ કરવા માટે સ્ત્રોત પર ગુણધર્મ"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "લક્ષ્ય ગુણધર્મ"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "બાઇન્ડ કરવા માટે લક્ષ્ય પર ગુણધર્મ"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "ફ્લેગ"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "બાઇન્ડિંગ ફ્લેગ"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer આવૃત્તિ %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2584 msgid "Run '"
2685 msgstr "ચલાવો '"
2786
28 #: ../src/main.c:56
29 msgid "display version information"
30 msgstr "આવૃત્તિ જાણકારીને દર્શાવો"
31
32 #: ../src/main.c:58
33 msgid "display verbose information"
34 msgstr "વર્બોઝ જાણકારી ને દર્શાવો"
35
36 #: ../src/main.c:60
37 msgid "direct connection with no automatic tunnels"
38 msgstr "સીધુ જોડાણ સ્વયંચાલિત ટનલો સાથે નથી"
39
40 #: ../src/main.c:62
41 msgid "connect to hypervisor"
42 msgstr "હાઇપરવિઝર સાથે જોડાવો"
43
44 #: ../src/main.c:64
45 msgid "wait for domain to start"
46 msgstr "શરૂ કરવા માટે ડોમેઇન માટે થોભો"
47
48 #: ../src/main.c:66
49 msgid "reconnect to domain upon restart"
50 msgstr "પુન:શરૂ કરવા પર ડોમેઇન સાથે પુન:જોડાવો"
51
52 #: ../src/main.c:70
53 msgid "display debugging information"
54 msgstr "ડિબગીંગ જાણકારીને દર્શાવો"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "આવૃત્તિ જાણકારીને બતાવો"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "વર્બોસ જાણકારીને બતાવો"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "સ્વયંસંચાલિત ટનલ સાથે સીધુ જોડાણ નથી"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "નાનામોટાપણાનું સ્તર, ટકામાં"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "ડિબગીંગ જાણકારીને બતાવો"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "Spice નિયંત્રક વાર્તાલાપની મદદથી જોડાણને ખોલો"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
55118
56119 #. Setup command line options
57 #: ../src/main.c:82
58 msgid "- Virtual machine graphical console"
59 msgstr "- વર્ચ્યુઅલ મશીન ગ્રાફિકલ કન્સોલ"
60
61 #: ../src/main.c:98
62 #, c-format
63 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "વપરાશ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:909
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "મહેમાન %s માટે VNC પોર્ટને નક્કી કરી શકાતુ નથી"
80
81 #: ../src/viewer.c:915
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "મહેમાન %s માટે VNC યજમાનને નક્કી કરી શકાતુ નથી"
85
86 #: ../src/viewer.c:1015
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "VNC સર્વર %s સાથે જોડાવાનું અસમર્થ"
90
91 #: ../src/viewer.c:1032
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "%s પર VNC સર્વર સાથે સત્તાધિકરણ કરવાનું અસમર્થ: %s\n"
98 "ફરીથી જોડાણનો પુન:પ્રયત્ન કરો?"
99
100 #: ../src/viewer.c:1050
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "%s પર VNC સર્વર સાથે સત્તાધિકરણ કરવાનુ અસમર્થ\n"
107 "બિનઆધારભૂત સત્તાધિકરણ પ્રકાર %d"
108
109 #: ../src/viewer.c:1142
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "મહેમાન ડોમેઇન %s ને શોધી શકાતુ નથી"
113
114 #: ../src/viewer.c:1246
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %s સાથે libvirt ને જોડવાનું અસમર્થ"
118
119 #: ../src/viewer.c:1247
120 msgid "[none]"
121 msgstr "[કંઇ નહિં]"
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- દૂરસ્થ દર્શક ક્લાયન્ટ"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "નાનુંમોટુ કરવાનું સ્તર 10-200 માં હોવુ જ જોઇએ\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "જોડાણને પ્રારંભ કરવાનુ નિષ્ફળ"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "નિયંત્રક દ્દારા નિષ્ક્રિય થયેલ બતાવો"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "નિયંત્રક જોડાણ નિષ્ફળ: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "Spice સત્રને બનાવી શક્યા નહિં"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "Spice સત્રને સુયોજિત કરી રહ્યા છે..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "URI માંથી જોડાણ પ્રકારને નક્કી કરી શકાતુ નથી"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "આ પ્રકાર માટે સત્રને બનાવી શક્યા નહિં: %s"
122168
123169 #. * Local variables:
124 #. * c-indent-level: 8
125 #. * c-basic-offset: 8
126 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
127173 #. * End:
128174 #.
129 #: ../src/about.glade.h:1
130 msgid "A remote desktop client built with GTK-VNC and libvirt"
131 msgstr "દૂરસ્થ ડેસ્કટોપ ક્લાઇન્ટ GTK-VNC અને libvirt સાથે બિલ્ટ છે"
132
133 #: ../src/about.glade.h:2
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "GTK-VNC, SPICE-GTK અને libvirt સાથે દૂરસ્થ ડેસ્કટોપ ક્લાયન્ટને બનાવેલ છે"
178
179 #: ../src/virt-viewer-about.xml.h:2
134180 msgid "About Glade"
135 msgstr "Glade વિશે"
136
137 #: ../src/about.glade.h:3
181 msgstr "ગલૅડ વિશે"
182
183 #: ../src/virt-viewer-about.xml.h:3
138184 msgid ""
139 "Copyright 2007-2008 Daniel P. Berrange\n"
140 "Copyright 2007-2008 Red Hat, Inc."
141 msgstr ""
142 "Copyright 2007-2008 Daniel P. Berrange\n"
143 "Copyright 2007-2008 Red Hat, Inc."
144
145 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
146190 msgid "The Fedora Translation Team"
147 msgstr "Fedora અનુવાદ જૂથ"
148
149 #: ../src/about.glade.h:6
191 msgstr "Fedora અનુવાદ ટીમ"
192
193 #: ../src/virt-viewer-about.xml.h:6
150194 msgid ""
151195 "This program is free software; you can redistribute it and/or modify\n"
152196 "it under the terms of the GNU General Public License as published by\n"
161205 "You should have received a copy of the GNU General Public License\n"
162206 "along with this program; if not, write to the Free Software\n"
163207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
164 msgstr ""
165 "This program is free software; you can redistribute it and/or modify\n"
166 "it under the terms of the GNU General Public License as published by\n"
167 "the Free Software Foundation; either version 2 of the License, or\n"
168 "(at your option) any later version.\n"
169 "\n"
170 "This program is distributed in the hope that it will be useful,\n"
171 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
172 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
173 "GNU General Public License for more details.\n"
174 "\n"
175 "You should have received a copy of the GNU General Public License\n"
176 "along with this program; if not, write to the Free Software\n"
177 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
178
179 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
180211 msgid "virt-manager.org"
181212 msgstr "virt-manager.org"
182213
183 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "આ છેલ્લુ દૃશ્યમાન દર્શાવ છે. શું તમે બહાર નીકળવા માંગો છો?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "%d ને દર્શાવવા માટે રાહ જોઇ રહ્યા છે..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "મહેમાન %s માટે અજ્ઞાત ગ્રાફિક પ્રકાર"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh સાથે જોડાવાનું નિષ્ફળ."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "ચેનલમાં જોડાઇ શકતા નથી, SSH ફક્ત આધારભૂત છે."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "ચેનલમાં જોડાવાનુ બિનઆધારભૂત છે."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "ગ્રાફિક સર્વરમાં જોડાઇ રહ્યા છે"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "મહેમાન ડોમેઇન બંધ થઇ ગયો"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "ગ્રાફિક સર્વરમાં જોડાયેલ છે"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "ગ્રાફિક સર્વર %s માં જોડાવામાં અસમર્થ"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s પર દૂરસ્થ ડેસ્કટોપ સાથે સત્તાધિકરણ કરવાનું અસમર્થ: %s\nફરીથી જોડાણનો પુન:પ્રયત્ન કરો?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "દૂરસ્થ ડેસ્કટોપ સર્વર સાથે સત્તાધિકરણ કરવાનું અસમર્થ: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "USB પુનર્નિર્દેશન ભૂલ: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
184281 msgid "Authentication required"
185 msgstr "સત્તાધિકરણ જરૂરી"
186
187 #: ../src/auth.glade.h:2
282 msgstr "સત્તાધિકરણ જરૂરી છે"
283
284 #: ../src/virt-viewer-auth.xml.h:2
188285 msgid "Password:"
189286 msgstr "પાસવર્ડ:"
190287
191 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
192289 msgid "Username:"
193290 msgstr "વપરાશકર્તાનામ:"
194291
195 #: ../src/auth.glade.h:4
196 msgid "gtk-cancel"
197 msgstr "gtk-cancel"
198
199 #: ../src/auth.glade.h:5
200 msgid "gtk-ok"
201 msgstr "gtk-ok"
202
203 #: ../src/auth.glade.h:6
292 #: ../src/virt-viewer-auth.xml.h:4
204293 msgid "label"
205294 msgstr "લેબલ"
206295
207 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s આવૃત્તિ %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt ની મદદથી સ્થાનિક દર્શાવ સાથે જોડાવો"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "હાઇપરવિઝરમાં જોડાવો"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "શરૂ કરવા ડોમેઇન માટે રાહ જુઓ"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "પુનઃશરૂ કરવા પર ડોમેઇન પુનઃજોડાણ"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "સંપૂર્ણ સ્ક્રીન સ્થિતિમાં ખોલો"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Virt Viewer"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- વર્ચ્યુઅલ મશીન ગ્રાફિકલ કન્સોલ"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nવપરાશ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "પુનર્નિર્દેશન માટે USB ઉપકરણોને પસંદ કરો"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "બિનઆધારભૂત સત્તાધિકરણ પ્રકાર %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "જોડાણ તોડી નાંખો"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB ઉપકરણ પસંદગી"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "પૂર્ણસ્ક્રીન છોડો"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "પુન:શરૂ કરવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "મહેમાન %s માટે ગ્રાફિક પ્રકારને નક્કી કરી શકાતુ નથી"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "મહેમાન %s માટે ગ્રાફિક સરનામાંને નક્કી કરી શકાતુ નથી"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "મહેમાન %s માટે યજમાનને નક્કી કરી શકાતુ નથી"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "મહેમાન ડોમેઇનને શોધી રહ્યા છે"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "બનાવવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "મહેમાન ડોમેઇન %s ને શોધી શકાતુ નથી"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "મહેમાન ડોમેઇન પરિસ્થિતિને ચકાસી રહ્યા છે"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "શરૂ કરવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "સર્વરને શરૂ કરવા માટે મહેમાન ડોમેઇન માટે રાહ જોઇ રહ્યા છે"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "URI %s સાથે libvirt ને જોડવાનું અસમર્થ"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[કંઇ નહિં]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
208452 msgid "Automatically resize"
209453 msgstr "આપમેળે માપ બદલો"
210454
211 #: ../src/viewer.glade.h:2
455 #: ../src/virt-viewer.xml.h:2
212456 msgid "Ctrl+Alt+F11"
213457 msgstr "Ctrl+Alt+F11"
214458
215 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
216460 msgid "Ctrl+Alt+F12"
217461 msgstr "Ctrl+Alt+F12"
218462
219 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
220464 msgid "Ctrl+Alt+F1_0"
221 msgstr "Ctrl+Alt+F10 (_0)"
222
223 #: ../src/viewer.glade.h:5
465 msgstr "Ctrl+Alt+F1_0"
466
467 #: ../src/virt-viewer.xml.h:5
224468 msgid "Ctrl+Alt+F_1"
225 msgstr "Ctrl+Alt+F1 (_1)"
226
227 #: ../src/viewer.glade.h:6
469 msgstr "Ctrl+Alt+F_1"
470
471 #: ../src/virt-viewer.xml.h:6
228472 msgid "Ctrl+Alt+F_2"
229 msgstr "Ctrl+Alt+F2 (_2)"
230
231 #: ../src/viewer.glade.h:7
473 msgstr "Ctrl+Alt+F_2"
474
475 #: ../src/virt-viewer.xml.h:7
232476 msgid "Ctrl+Alt+F_3"
233 msgstr "Ctrl+Alt+F3 (_3)"
234
235 #: ../src/viewer.glade.h:8
477 msgstr "Ctrl+Alt+F_3"
478
479 #: ../src/virt-viewer.xml.h:8
236480 msgid "Ctrl+Alt+F_4"
237 msgstr "Ctrl+Alt+F4 (_4)"
238
239 #: ../src/viewer.glade.h:9
481 msgstr "Ctrl+Alt+F_4"
482
483 #: ../src/virt-viewer.xml.h:9
240484 msgid "Ctrl+Alt+F_5"
241 msgstr "Ctrl+Alt+F5 (_5)"
242
243 #: ../src/viewer.glade.h:10
485 msgstr "Ctrl+Alt+F_5"
486
487 #: ../src/virt-viewer.xml.h:10
244488 msgid "Ctrl+Alt+F_6"
245 msgstr "Ctrl+Alt+F6 (_6)"
246
247 #: ../src/viewer.glade.h:11
489 msgstr "Ctrl+Alt+F_6"
490
491 #: ../src/virt-viewer.xml.h:11
248492 msgid "Ctrl+Alt+F_7"
249 msgstr "Ctrl+Alt+F7 (_7)"
250
251 #: ../src/viewer.glade.h:12
493 msgstr "Ctrl+Alt+F_7"
494
495 #: ../src/virt-viewer.xml.h:12
252496 msgid "Ctrl+Alt+F_8"
253 msgstr "Ctrl+Alt+F8 (_8)"
254
255 #: ../src/viewer.glade.h:13
497 msgstr "Ctrl+Alt+F_8"
498
499 #: ../src/virt-viewer.xml.h:13
256500 msgid "Ctrl+Alt+F_9"
257 msgstr "Ctrl+Alt+F9 (_9)"
258
259 #: ../src/viewer.glade.h:14
501 msgstr "Ctrl+Alt+F_9"
502
503 #: ../src/virt-viewer.xml.h:14
260504 msgid "Ctrl+Alt+_Backspace"
261 msgstr "Ctrl+Alt+Backspace (_B)"
262
263 #: ../src/viewer.glade.h:15
505 msgstr "Ctrl+Alt+_Backspace"
506
507 #: ../src/virt-viewer.xml.h:15
264508 msgid "Ctrl+Alt+_Del"
265 msgstr "Ctrl+Alt+Del (_D)"
266
267 #: ../src/viewer.glade.h:16
509 msgstr "Ctrl+Alt+_Del"
510
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "દર્શાવે છે"
514
515 #: ../src/virt-viewer.xml.h:17
268516 msgid "Full screen"
269 msgstr "સંપૂર્ણ સ્ક્રીન"
270
271 #: ../src/viewer.glade.h:17
517 msgstr "પૂર્ણ સ્ક્રીન"
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "પ્રકાશન કર્સર"
522
523 #: ../src/virt-viewer.xml.h:19
272524 msgid "Screenshot"
273525 msgstr "સ્ક્રીનશોટ"
274526
275 #: ../src/viewer.glade.h:18
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "સ્માર્ટકાર્ડ નિવેશ"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "સ્માર્ટકાર્ડ નિરાકરણ"
534
535 #: ../src/virt-viewer.xml.h:23
276536 msgid "_File"
277537 msgstr "ફાઇલ (_F)"
278538
279 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
280540 msgid "_Help"
281541 msgstr "મદદ (_H)"
282542
283 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
284544 msgid "_PrintScreen"
285 msgstr "સ્ક્રીનને છાપો (_P)"
286
287 #: ../src/viewer.glade.h:21
545 msgstr "PrintScreen (_P)"
546
547 #: ../src/virt-viewer.xml.h:26
288548 msgid "_Send key"
289 msgstr "કીને મોકલો (_S)"
290
291 #: ../src/viewer.glade.h:22
549 msgstr "કી મોકલો (_S)"
550
551 #: ../src/virt-viewer.xml.h:27
292552 msgid "_View"
293553 msgstr "દૃશ્ય (_V)"
294554
295 #: ../src/viewer.glade.h:24
296 msgid "gtk-about"
297 msgstr "gtk-about"
298
299 #: ../src/viewer.glade.h:25
300 msgid "gtk-quit"
301 msgstr "gtk-quit"
302
303 #: ../src/viewer.glade.h:26
304 msgid "page 1"
305 msgstr "પાનું ૧"
306
307 #: ../src/viewer.glade.h:27
308 msgid "page 2"
309 msgstr "પાનું ૨"
310
311 #: ../src/viewer.glade.h:23
555 #: ../src/virt-viewer.xml.h:28
312556 msgid "_Zoom"
313 msgstr "નાનુંમોટું (_Z)"
314
315 #: ../src/main.c:68
316 msgid "Zoom level of window, in percentage"
317 msgstr "નાનામોટાપણાનું સ્તર, ટકામાં"
557 msgstr "નાનુંમોટુ કરો (_Z)"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Hebrew <he-users@lists.fedoraproject.org>\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: he\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+466
-218
po/hi.po less more
0 # translation of virt-viewer.tip.virt-viewer.po to Hindi
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
3 #
4 # Translators:
5 # Chandan kumar <chandankumar.093047@gmail.com>, 2012.
46 # Rajesh Ranjan <rajesh672@gmail.com>, 2010.
7 # Rajesh Ranjan <rranjan@redhat.com>, 2012.
58 msgid ""
69 msgstr ""
7 "Project-Id-Version: virt-viewer.tip.virt-viewer\n"
10 "Project-Id-Version: virt-viewer\n"
811 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-01-19 04:15+0000\n"
10 "PO-Revision-Date: 2010-02-03 15:52+0530\n"
11 "Last-Translator: Rajesh Ranjan <rajesh672@gmail.com>\n"
12 "Language-Team: Hindi <indlinux>\n"
12 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
13 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
14 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
15 "Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net>\n"
1316 "MIME-Version: 1.0\n"
1417 "Content-Type: text/plain; charset=UTF-8\n"
1518 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17 "Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s संस्करण %s\n"
23
24 #: ../src/main.c:52
19 "Language: hi\n"
20 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
21
22 #: ../src/gbinding.c:637
23 msgid "Source"
24 msgstr "स्रोत"
25
26 #: ../src/gbinding.c:638
27 msgid "The source of the binding"
28 msgstr "बाइंडिंग का स्रोत"
29
30 #: ../src/gbinding.c:652
31 msgid "Target"
32 msgstr "लक्ष्य"
33
34 #: ../src/gbinding.c:653
35 msgid "The target of the binding"
36 msgstr "बाइंडिंग का लक्ष्य"
37
38 #: ../src/gbinding.c:668
39 msgid "Source Property"
40 msgstr "स्रोत गुण"
41
42 #: ../src/gbinding.c:669
43 msgid "The property on the source to bind"
44 msgstr "बाइंड करने के लिए स्रोत पर गुण"
45
46 #: ../src/gbinding.c:684
47 msgid "Target Property"
48 msgstr "लक्ष्य गुण"
49
50 #: ../src/gbinding.c:685
51 msgid "The property on the target to bind"
52 msgstr "बाइंड करने के लिए लक्ष्य पर गुण"
53
54 #: ../src/gbinding.c:699
55 msgid "Flags"
56 msgstr "फ्लैग"
57
58 #: ../src/gbinding.c:700
59 msgid "The binding flags"
60 msgstr "बाइंडिंग फ्लैग"
61
62 #: ../src/remote-viewer-main.c:47
63 #, c-format
64 msgid "remote-viewer version %s\n"
65 msgstr "दूरस्थ-दर्शक संस्करण %s\n"
66
67 #: ../src/remote-viewer-main.c:69
68 #, c-format
69 msgid "Invalid full-screen argument: %s"
70 msgstr ""
71
72 #. Create the widgets
73 #: ../src/remote-viewer-main.c:104
74 msgid "Connection details"
75 msgstr ""
76
77 #: ../src/remote-viewer-main.c:119
78 msgid "URL:"
79 msgstr ""
80
81 #: ../src/remote-viewer-main.c:127
82 msgid "Recent connections:"
83 msgstr ""
84
85 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2586 msgid "Run '"
2687 msgstr "Run '"
2788
28 #: ../src/main.c:55
29 msgid "display version information"
30 msgstr "संस्करण सूचना दिखाएँ"
31
32 #: ../src/main.c:57
33 msgid "display verbose information"
34 msgstr "भर्बोस सूचना दिखाएँ"
35
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
38 msgstr "बिना किसी स्वचालित टनल के सीधा कनेक्शन"
39
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "हाइपरविजर से जोड़ें"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "आरंभ होने के लिए डोमेने के लिए प्रतीक्षारत"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "फिर आरंभ होने पर डोमेन से फिर कनेक्ट होता है"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
89 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
90 msgid "Display version information"
91 msgstr "संस्करण की जानकारी दिखाता है"
92
93 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
94 msgid "Display verbose information"
95 msgstr " वर्बोज की जानकारी दिखाता है"
96
97 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
98 msgid "Direct connection with no automatic tunnels"
99 msgstr " स्वचालित सुरंगों के साथ कोई भी प्रत्यक्ष कनेक्शन नहीं "
100
101 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
102 msgid "Zoom level of window, in percentage"
103 msgstr "विंडो का जूम स्तर, प्रतिशत में"
104
105 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
106 msgid "Display debugging information"
54107 msgstr "डिबगिंग सूचना दिखाता है"
55108
109 #: ../src/remote-viewer-main.c:219
110 msgid "Open in full screen mode (=<auto-conf>)"
111 msgstr ""
112
113 #: ../src/remote-viewer-main.c:222
114 msgid "Open connection using Spice controller communication"
115 msgstr "स्पाइस संचार नियंत्रक का उपयोग करते हुए कनेक्शन खोलें"
116
117 #: ../src/remote-viewer-main.c:249
118 msgid "Remote Viewer"
119 msgstr ""
120
56121 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "- वर्चुअल मशीन आलेखी कंसोल"
60
61 #: ../src/main.c:95
62 #, c-format
122 #: ../src/remote-viewer-main.c:252
123 msgid "- Remote viewer client"
124 msgstr "-दूरस्थ दर्शक ग्राहक"
125
126 #: ../src/remote-viewer-main.c:275
127 #, c-format
128 msgid "Error: extra arguments given while using Spice controller\n"
129 msgstr ""
130
131 #: ../src/remote-viewer-main.c:284
132 #, c-format
133 msgid "Error: can't handle multiple URIs\n"
134 msgstr ""
135
136 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
137 #, c-format
138 msgid "Zoom level must be within 10-200\n"
139 msgstr "ज़ूम का स्तर 10-200 अंतर्गत होना चाहिए\n"
140
141 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
142 msgid "Failed to initiate connection"
143 msgstr "कनेक्शन आरंभ करने में विफल"
144
145 #: ../src/remote-viewer.c:250
146 msgid "Display disabled by controller"
147 msgstr "नियंत्रक के द्वारा प्रदर्शन अक्षम"
148
149 #: ../src/remote-viewer.c:697
150 #, c-format
151 msgid "Controller connection failed: %s"
152 msgstr "नियंत्रक कनेक्शन में विफल रहा है : %s"
153
154 #: ../src/remote-viewer.c:750
155 msgid "Couldn't create a Spice session"
156 msgstr "स्पाइस का सत्र नहीं बना पाया"
157
158 #: ../src/remote-viewer.c:764
159 msgid "Setting up Spice session..."
160 msgstr "स्पाइस सत्र की सेटिंग कर रहा है ..."
161
162 #: ../src/remote-viewer.c:774
163 msgid "Cannot determine the connection type from URI"
164 msgstr "यूआरआइ से कनेक्शन के प्रकार को तय नहीं कर सकता है"
165
166 #: ../src/remote-viewer.c:779
167 #, c-format
168 msgid "Couldn't create a session for this type: %s"
169 msgstr "इस प्रकार का सत्र नहीं बना सका : %s"
170
171 #. * Local variables:
172 #. * c-indent-level: 4
173 #. * c-basic-offset: 4
174 #. * indent-tabs-mode: nil
175 #. * End:
176 #.
177 #: ../src/virt-viewer-about.xml.h:1
178 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
179 msgstr "एक दूरस्थ डेस्कटॉप ग्राहक जीतीके-वीएनसी, स्पाइस-जीटीके और लिब्विर्ट के साथ निर्मित"
180
181 #: ../src/virt-viewer-about.xml.h:2
182 msgid "About Glade"
183 msgstr "ग्लेड के बारे में"
184
185 #: ../src/virt-viewer-about.xml.h:3
63186 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "प्रयोग: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "%s अतिथि के लिए VNC पोर्ट निर्धारित नहीं कर सकता है"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "%s अतिथि के लिए VNC मेजबान निर्धारित नहीं कर सकता है"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "VNC सर्वर %s से कनेक्ट होने में असमर्थ"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "VNC सर्वर से %s पर सत्यापित होने में असमर्थ: %s\n"
98 "फिर कनेक्ट करने की कोशिश करें?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "VNC सर्वर के साथ %s पर सत्यापित करने में असमर्थ\n"
107 "असमर्थित सत्यापन प्रकार %d"
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "अतिथि डोमेन %s नहीं पा सकता है"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %s के साथ libvirt से कनेक्ट करने में असमर्थ"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "कुछ नहीं"
122
123 #.
124 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
128 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "GTK-VNC और libvirt से निर्मित दूरस्थ डेस्कटॉप क्लाइंट"
133
134 #: ../src/about.glade.h:2
135 msgid "About Glade"
136 msgstr "ग्लेड का परिचय"
137
138 #: ../src/about.glade.h:3
139 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "कॉपीराइट 2007-2008 Daniel P. Berrange\n"
144 "कॉपीराइट 2007-2008 Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
187 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
188 "Copyright (C) 2007-2012 Red Hat, Inc."
189 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
190
191 #: ../src/virt-viewer-about.xml.h:5
147192 msgid "The Fedora Translation Team"
148 msgstr "फेडोरा अनुवाद दल"
149
150 #: ../src/about.glade.h:6
193 msgstr "फेडोरा अनुवाद टीम"
194
195 #: ../src/virt-viewer-about.xml.h:6
151196 msgid ""
152197 "This program is free software; you can redistribute it and/or modify\n"
153198 "it under the terms of the GNU General Public License as published by\n"
162207 "You should have received a copy of the GNU General Public License\n"
163208 "along with this program; if not, write to the Free Software\n"
164209 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "This program is free software; you can redistribute it and/or modify\n"
167 "it under the terms of the GNU General Public License as published by\n"
168 "the Free Software Foundation; either version 2 of the License, or\n"
169 "(at your option) any later version.\n"
170 "\n"
171 "This program is distributed in the hope that it will be useful,\n"
172 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
173 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
174 "GNU General Public License for more details.\n"
175 "\n"
176 "You should have received a copy of the GNU General Public License\n"
177 "along with this program; if not, write to the Free Software\n"
178 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
179
180 #: ../src/about.glade.h:20
210 msgstr "यह प्रोग्राम मुफ्त सॉफ्टवेयर का है: आप इसे फ्री सॉफ्टवेयर फाउंडेशन के द्वारा प्रकाशित जीएनयू जनरल पब्लिक लाइसेंस; या तो लाइसेंस का संस्करण 2, या (आपके विकल्प के अनुसार) बाद के किसी संस्करण की शर्तों के तहत पुनर्वितरित और / संशोधित कर सकते हैं .\n\nइस कार्यक्रम को इस उम्मीद से वितरित किया गया है कि यह बिना किसी वारंटी;व्यापारिकता की अप्रत्यक्ष वारंटी या किसी खास उद्देश्य के लिए उपयुक्तता के बिना उपयोगी होगा. अधिक जानकारी के लिए जीएनयू जनरल पब्लिक लाइसेंस देखें.\n\nआप इस प्रोग्राम के साथ जीएनयू जनरल पब्लिक लाइसेंस की एक प्रतिलिपि प्राप्त करेगे; अगर नहीं, फ्री सॉफ्टवेयर फाउंडेशन को लिखे, Inc. 59 मंदिर प्लेस, 330 सूट, बोस्टन, एमए 02111-1307, संयुक्त राज्य अमेरिका\n"
211
212 #: ../src/virt-viewer-about.xml.h:20
181213 msgid "virt-manager.org"
182214 msgstr "virt-manager.org"
183215
184 #: ../src/auth.glade.h:1
216 #: ../src/virt-viewer-app.c:284
217 msgid "This is the last visible display. Do you want to quit?"
218 msgstr "यह आखरी दृश्य प्रदर्शन है. क्या आप छोड़ना चाहते हैं?"
219
220 #: ../src/virt-viewer-app.c:624
221 #, c-format
222 msgid "Waiting for display %d..."
223 msgstr " %d प्रदर्शन के लिए प्रतीक्षा कर रहा है ..."
224
225 #: ../src/virt-viewer-app.c:707
226 #, c-format
227 msgid "Unknown graphic type for the guest %s"
228 msgstr "%s अतिथि के लिए अज्ञात ग्राफ़िक प्रकार"
229
230 #: ../src/virt-viewer-app.c:782
231 msgid "Connect to ssh failed."
232 msgstr "सश से कनेक्ट करने में विफल."
233
234 #: ../src/virt-viewer-app.c:784
235 msgid "Can't connect to channel, SSH only supported."
236 msgstr "चैनल से कनेक्ट नहीं हो सकता, केवल सश समर्थित."
237
238 #: ../src/virt-viewer-app.c:796
239 msgid "Connect to channel unsupported."
240 msgstr " चैनल से कनेक्ट करना असहायक"
241
242 #: ../src/virt-viewer-app.c:876
243 msgid "Connecting to graphic server"
244 msgstr "ग्राफ़िक सर्वर से कनेक्ट हो रहा है."
245
246 #: ../src/virt-viewer-app.c:1006
247 msgid "Guest domain has shutdown"
248 msgstr "अतिथि के डोमेन को शटडाउन किया है"
249
250 #: ../src/virt-viewer-app.c:1056
251 msgid "Connected to graphic server"
252 msgstr "ग्राफ़िक सर्वर से जुड़ा"
253
254 #: ../src/virt-viewer-app.c:1082
255 #, c-format
256 msgid "Unable to connect to the graphic server %s"
257 msgstr "%s ग्राफ़िक सर्वर से कनेक्ट करने में असमर्थ"
258
259 #: ../src/virt-viewer-app.c:1111
260 #, c-format
261 msgid ""
262 "Unable to authenticate with remote desktop server at %s: %s\n"
263 "Retry connection again?"
264 msgstr "%s पर दूरस्थ डेस्कटॉप सर्वर के साथ सत्यापन करने में असमर्थ : %s\nफिर से कनेक्शन पुन: प्रयास करें?"
265
266 #: ../src/virt-viewer-app.c:1131
267 #, c-format
268 msgid "Unable to authenticate with remote desktop server: %s"
269 msgstr "दूरस्थ डेस्कटॉप सर्वर के साथ सत्यापन करने में असमर्थ : %s"
270
271 #: ../src/virt-viewer-app.c:1139
272 #, c-format
273 msgid "USB redirection error: %s"
274 msgstr "यूएसबी पुनर्निर्देशन त्रुटि : %s"
275
276 #. * Local variables:
277 #. * c-indent-level: 4
278 #. * c-basic-offset: 4
279 #. * indent-tabs-mode: nil
280 #. * End:
281 #.
282 #: ../src/virt-viewer-auth.xml.h:1
185283 msgid "Authentication required"
186 msgstr "सत्यापन आवश्यक"
187
188 #: ../src/auth.glade.h:2
284 msgstr "सत्यापन की आवश्यकता"
285
286 #: ../src/virt-viewer-auth.xml.h:2
189287 msgid "Password:"
190 msgstr "पासवर्ड: "
191
192 #: ../src/auth.glade.h:3
288 msgstr "कूटशब्द:"
289
290 #: ../src/virt-viewer-auth.xml.h:3
193291 msgid "Username:"
194 msgstr "उपयोक्ता नाम:"
195
196 #: ../src/auth.glade.h:4
197 msgid "gtk-cancel"
198 msgstr "gtk-cancel"
199
200 #: ../src/auth.glade.h:5
201 msgid "gtk-ok"
202 msgstr "gtk-ok"
203
204 #: ../src/auth.glade.h:6
292 msgstr "उपयोगकर्ता नाम:"
293
294 #: ../src/virt-viewer-auth.xml.h:4
205295 msgid "label"
206296 msgstr "लेबल"
207297
208 #: ../src/viewer.glade.h:1
298 #: ../src/virt-viewer-main.c:38
299 #, c-format
300 msgid "%s version %s\n"
301 msgstr "%s संस्करण %s\n"
302
303 #: ../src/virt-viewer-main.c:69
304 msgid "Attach to the local display using libvirt"
305 msgstr "लिब्विर्ट का उपयोग करके स्थानीय डिस्प्ले का संलग्न करें"
306
307 #: ../src/virt-viewer-main.c:71
308 msgid "Connect to hypervisor"
309 msgstr "हाइपरविजर से कनेक्ट करें"
310
311 #: ../src/virt-viewer-main.c:73
312 msgid "Wait for domain to start"
313 msgstr "डोमेन को प्रारंभ करने के लिए प्रतीक्षा करें"
314
315 #: ../src/virt-viewer-main.c:75
316 msgid "Reconnect to domain upon restart"
317 msgstr "पुनः आरंभ होने पर डोमेन को फिर से जुड़ें"
318
319 #: ../src/virt-viewer-main.c:81
320 msgid "Open in full screen mode"
321 msgstr "पूर्ण स्क्रीन मोड में खोलें"
322
323 #: ../src/virt-viewer-main.c:96
324 msgid "Virt Viewer"
325 msgstr "वर्चुअल व्यूअर"
326
327 #. Setup command line options
328 #: ../src/virt-viewer-main.c:99
329 msgid "- Virtual machine graphical console"
330 msgstr "- वर्चुअल मशीन आलेखी कंसोल"
331
332 #: ../src/virt-viewer-main.c:120
333 #, c-format
334 msgid ""
335 "\n"
336 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
337 "\n"
338 "%s\n"
339 "\n"
340 msgstr "\nप्रयोग: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
341
342 #. Create the widgets
343 #: ../src/virt-viewer-session-spice.c:380
344 msgid "Select USB devices for redirection"
345 msgstr "पुनर्निर्देशन के लिए यूएसबी उपकरणों का चयन करें"
346
347 #: ../src/virt-viewer-session-vnc.c:141
348 #, c-format
349 msgid "Unsupported authentication type %d"
350 msgstr "असहायक सत्यापन के प्रकार %d"
351
352 #: ../src/virt-viewer-window.c:832
353 msgid "Disconnect"
354 msgstr "डिस्कनेक्ट करें"
355
356 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
357 #: ../src/virt-viewer.xml.h:22
358 msgid "USB device selection"
359 msgstr "यूएसबी उपकरण चयन"
360
361 #: ../src/virt-viewer-window.c:848
362 msgid "Send key combination"
363 msgstr ""
364
365 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
366 msgid "Leave fullscreen"
367 msgstr "फुल स्क्रीन छोड़ दें"
368
369 #: ../src/virt-viewer-window.c:937
370 msgid "Ctrl+Alt"
371 msgstr ""
372
373 #: ../src/virt-viewer-window.c:940
374 #, c-format
375 msgid "(Press %s to release pointer)"
376 msgstr ""
377
378 #. translators:
379 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
380 #. <appname>"
381 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
382 #. Viewer"
383 #.
384 #: ../src/virt-viewer-window.c:951
385 #, c-format
386 msgid "%s%s%s - %s"
387 msgstr "%s%s%s - %s"
388
389 #. translators: <space>
390 #: ../src/virt-viewer-window.c:955
391 msgid " "
392 msgstr " "
393
394 #: ../src/virt-viewer.c:144
395 msgid "Waiting for guest domain to re-start"
396 msgstr "अतिथि डोमेन को फिर से प्रारंभ करने के लिए प्रतीक्षा करे "
397
398 #: ../src/virt-viewer.c:308
399 #, c-format
400 msgid "Cannot determine the graphic type for the guest %s"
401 msgstr "%s अतिथि के लिए ग्राफ़िक प्रकार निर्धारित नहीं कर सकते है "
402
403 #: ../src/virt-viewer.c:321
404 #, c-format
405 msgid "Cannot determine the graphic address for the guest %s"
406 msgstr "%s अतिथि के लिए ग्राफ़िक पता निर्धारित नहीं कर सकते है "
407
408 #: ../src/virt-viewer.c:344
409 #, c-format
410 msgid "Cannot determine the host for the guest %s"
411 msgstr "%s अतिथि के लिए होस्ट का निर्धारण नहीं कर सकते है "
412
413 #: ../src/virt-viewer.c:474
414 msgid "Finding guest domain"
415 msgstr "अतिथि डोमेन को खोज रहा है "
416
417 #: ../src/virt-viewer.c:478
418 msgid "Waiting for guest domain to be created"
419 msgstr "अतिथि डोमेन बनाई जाने प्रतीक्षा के लिए की जा रही है"
420
421 #: ../src/virt-viewer.c:483
422 #, c-format
423 msgid "Cannot find guest domain %s"
424 msgstr "अतिथि डोमेन %s नहीं पा सकता है"
425
426 #: ../src/virt-viewer.c:490
427 msgid "Checking guest domain status"
428 msgstr "अतिथि डोमेन की स्थिति की जाँच हो रही है"
429
430 #: ../src/virt-viewer.c:497
431 msgid "Waiting for guest domain to start"
432 msgstr " अतिथि डोमेन शुरू करने के लिए प्रतीक्षा की जा रही है "
433
434 #: ../src/virt-viewer.c:504
435 msgid "Waiting for guest domain to start server"
436 msgstr "अतिथि डोमेन सर्वर को शुरू करने के लिए प्रतीक्षा कर रहा है"
437
438 #: ../src/virt-viewer.c:624
439 #, c-format
440 msgid "Unable to connect to libvirt with URI %s"
441 msgstr "URI %s के साथ libvirt से कनेक्ट करने में असमर्थ"
442
443 #: ../src/virt-viewer.c:625
444 msgid "[none]"
445 msgstr "कुछ नहीं"
446
447 #. * Local variables:
448 #. * c-indent-level: 4
449 #. * c-basic-offset: 4
450 #. * indent-tabs-mode: nil
451 #. * End:
452 #.
453 #: ../src/virt-viewer.xml.h:1
209454 msgid "Automatically resize"
210 msgstr "स्वतः पुनः आकार दें"
211
212 #: ../src/viewer.glade.h:2
455 msgstr "स्वतः आकार परिवर्तन"
456
457 #: ../src/virt-viewer.xml.h:2
213458 msgid "Ctrl+Alt+F11"
214459 msgstr "Ctrl+Alt+F11"
215460
216 #: ../src/viewer.glade.h:3
461 #: ../src/virt-viewer.xml.h:3
217462 msgid "Ctrl+Alt+F12"
218463 msgstr "Ctrl+Alt+F12"
219464
220 #: ../src/viewer.glade.h:4
465 #: ../src/virt-viewer.xml.h:4
221466 msgid "Ctrl+Alt+F1_0"
222467 msgstr "Ctrl+Alt+F1_0"
223468
224 #: ../src/viewer.glade.h:5
469 #: ../src/virt-viewer.xml.h:5
225470 msgid "Ctrl+Alt+F_1"
226471 msgstr "Ctrl+Alt+F_1"
227472
228 #: ../src/viewer.glade.h:6
473 #: ../src/virt-viewer.xml.h:6
229474 msgid "Ctrl+Alt+F_2"
230475 msgstr "Ctrl+Alt+F_2"
231476
232 #: ../src/viewer.glade.h:7
477 #: ../src/virt-viewer.xml.h:7
233478 msgid "Ctrl+Alt+F_3"
234479 msgstr "Ctrl+Alt+F_3"
235480
236 #: ../src/viewer.glade.h:8
481 #: ../src/virt-viewer.xml.h:8
237482 msgid "Ctrl+Alt+F_4"
238483 msgstr "Ctrl+Alt+F_4"
239484
240 #: ../src/viewer.glade.h:9
485 #: ../src/virt-viewer.xml.h:9
241486 msgid "Ctrl+Alt+F_5"
242487 msgstr "Ctrl+Alt+F_5"
243488
244 #: ../src/viewer.glade.h:10
489 #: ../src/virt-viewer.xml.h:10
245490 msgid "Ctrl+Alt+F_6"
246491 msgstr "Ctrl+Alt+F_6"
247492
248 #: ../src/viewer.glade.h:11
493 #: ../src/virt-viewer.xml.h:11
249494 msgid "Ctrl+Alt+F_7"
250495 msgstr "Ctrl+Alt+F_7"
251496
252 #: ../src/viewer.glade.h:12
497 #: ../src/virt-viewer.xml.h:12
253498 msgid "Ctrl+Alt+F_8"
254499 msgstr "Ctrl+Alt+F_8"
255500
256 #: ../src/viewer.glade.h:13
501 #: ../src/virt-viewer.xml.h:13
257502 msgid "Ctrl+Alt+F_9"
258503 msgstr "Ctrl+Alt+F_9"
259504
260 #: ../src/viewer.glade.h:14
505 #: ../src/virt-viewer.xml.h:14
261506 msgid "Ctrl+Alt+_Backspace"
262507 msgstr "Ctrl+Alt+_Backspace"
263508
264 #: ../src/viewer.glade.h:15
509 #: ../src/virt-viewer.xml.h:15
265510 msgid "Ctrl+Alt+_Del"
266511 msgstr "Ctrl+Alt+_Del"
267512
268 #: ../src/viewer.glade.h:16
513 #: ../src/virt-viewer.xml.h:16
514 msgid "Displays"
515 msgstr "प्रदर्शित करे "
516
517 #: ../src/virt-viewer.xml.h:17
269518 msgid "Full screen"
270 msgstr "पूर्ण स्क्रीन"
271
272 #: ../src/viewer.glade.h:17
519 msgstr "फुल स्क्रीन"
520
521 #: ../src/virt-viewer.xml.h:18
522 msgid "Release cursor"
523 msgstr "रिलीज कर्सर"
524
525 #: ../src/virt-viewer.xml.h:19
273526 msgid "Screenshot"
274527 msgstr "स्क्रीनशॉट"
275528
276 #: ../src/viewer.glade.h:18
529 #: ../src/virt-viewer.xml.h:20
530 msgid "Smartcard insertion"
531 msgstr "स्मार्टकार्ड प्रवेश"
532
533 #: ../src/virt-viewer.xml.h:21
534 msgid "Smartcard removal"
535 msgstr "स्मार्टकार्ड हटाना"
536
537 #: ../src/virt-viewer.xml.h:23
277538 msgid "_File"
278 msgstr "फ़ाइल (_F)"
279
280 #: ../src/viewer.glade.h:19
539 msgstr "फाइल (_F)"
540
541 #: ../src/virt-viewer.xml.h:24
281542 msgid "_Help"
282 msgstr "मदद (_H)"
283
284 #: ../src/viewer.glade.h:20
543 msgstr "सहायता (_H)"
544
545 #: ../src/virt-viewer.xml.h:25
285546 msgid "_PrintScreen"
286 msgstr "_PrintScreen"
287
288 #: ../src/viewer.glade.h:21
547 msgstr "प्रिंटस्क्रीन (_P)"
548
549 #: ../src/virt-viewer.xml.h:26
289550 msgid "_Send key"
290551 msgstr "कुंजी भेजें (_S)"
291552
292 #: ../src/viewer.glade.h:22
553 #: ../src/virt-viewer.xml.h:27
293554 msgid "_View"
294 msgstr "देखें (_V)"
295
296 #: ../src/viewer.glade.h:23
297 msgid "gtk-about"
298 msgstr "gtk-about"
299
300 #: ../src/viewer.glade.h:24
301 msgid "gtk-quit"
302 msgstr "gtk-quit"
303
304 #: ../src/viewer.glade.h:25
305 msgid "page 1"
306 msgstr "पृष्ठ 1"
307
308 #: ../src/viewer.glade.h:26
309 msgid "page 2"
310 msgstr "पृष्ठ 2"
311
555 msgstr "दृश्य (_V)"
556
557 #: ../src/virt-viewer.xml.h:28
558 msgid "_Zoom"
559 msgstr "ज़ूम (_Z)"
+521
-259
po/hu.po less more
0 # virt-viewer (virt-manager.org) translation to hu_HU.
1 # Copyright (C) 2010 Fedora Project
2 # This file is distributed under the same license as the libvirt package.
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
35 # Nikolas Slivka <snicore@gmail.com>, 2010.
4 #
56 msgid ""
67 msgstr ""
7 "Project-Id-Version: virt-viewer.tip\n"
8 "Project-Id-Version: virt-viewer\n"
89 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-06-27 07:51+0000\n"
10 "PO-Revision-Date: 2010-02-20 16:31+0100\n"
11 "Last-Translator: Nikolas Slivka <snicore@gmail.com>\n"
12 "Language-Team: Hungarian Fedora Translation Team <fedora-trans-hu@redhat.org>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Hungarian <trans-hu@lists.fedoraproject.org>\n"
1314 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=utf-8\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
1516 "Content-Transfer-Encoding: 8bit\n"
16 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
17 "X-Poedit-Language: Hungarian\n"
18 "X-Poedit-SourceCharset: utf-8\n"
19 "X-Poedit-Country: HUNGARY\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s verzió %s\n"
25
26 #: ../src/main.c:55
27 msgid "display version information"
28 msgstr "verzió információk megjelenítése"
29
30 #: ../src/main.c:57
31 msgid "display verbose information"
32 msgstr "részletes információk megjelenítése"
33
34 #: ../src/main.c:61
35 msgid "connect to hypervisor"
36 msgstr "kapcsolódás a hypervisorhoz"
37
38 #: ../src/main.c:63
39 msgid "wait for domain to start"
40 msgstr "várakozás a domain elindulására"
41
42 #: ../src/main.c:67
43 msgid "display debugging information"
44 msgstr "hibakeresési információk megjelenítése"
17 "Language: hu\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr ""
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr ""
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr ""
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr ""
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr ""
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr ""
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr ""
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr ""
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr ""
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr ""
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr ""
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
84 msgid "Run '"
85 msgstr "Futtatás"
86
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr ""
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr ""
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr ""
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr ""
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr ""
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr ""
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
45118
46119 #. Setup command line options
47 #: ../src/main.c:79
48 #, fuzzy
49 msgid "- Virtual machine graphical console"
50 msgstr "- Virtuális gép grafikus konzol"
51
52 #: ../src/main.c:95
53 #, c-format
54 msgid ""
55 "\n"
56 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
57 "\n"
58 "%s\n"
59 "\n"
60 msgstr ""
61 "\n"
62 "Használata: %s [OPCIÓK] DOMAIN-NAME|ID|UUID\n"
63 "\n"
64 "%s\n"
65 "\n"
66
67 #: ../src/viewer.c:878
68 #, c-format
69 msgid "Cannot determine the VNC port for the guest %s"
70 msgstr ""
71
72 #: ../src/viewer.c:884
73 #, c-format
74 msgid "Cannot determine the VNC host for the guest %s"
75 msgstr ""
76
77 #: ../src/viewer.c:984
78 #, c-format
79 msgid "Unable to connect to the VNC server %s"
80 msgstr ""
81
82 #: ../src/viewer.c:1001
83 #, c-format
84 msgid ""
85 "Unable to authenticate with VNC server at %s: %s\n"
86 "Retry connection again?"
87 msgstr ""
88
89 #: ../src/viewer.c:1019
90 #, c-format
91 msgid ""
92 "Unable to authenticate with VNC server at %s\n"
93 "Unsupported authentication type %d"
94 msgstr ""
95
96 #: ../src/viewer.c:1111
97 #, fuzzy, c-format
98 msgid "Cannot find guest domain %s"
99 msgstr "%s vendég-domaint nem sikerült megtalálni"
100
101 #: ../src/viewer.c:1213
102 #, c-format
103 msgid "Unable to connect to libvirt with URI %s"
104 msgstr "A %s címmel nem tudott csatlakozni a libvirthez"
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr ""
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr ""
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr ""
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr ""
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr ""
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr ""
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr ""
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr ""
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr ""
105168
106169 #. * Local variables:
107 #. * c-indent-level: 8
108 #. * c-basic-offset: 8
109 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
110173 #. * End:
111174 #.
112 #: ../src/about.glade.h:1
113 msgid "A remote desktop client built with GTK-VNC and libvirt"
114 msgstr "A távoli asztali kliens a GTK-VNC és libvirt alkalmazások használatával készült."
115
116 #: ../src/about.glade.h:3
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr ""
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr ""
182
183 #: ../src/virt-viewer-about.xml.h:3
117184 msgid ""
118 "Copyright 2007-2008 Daniel P. Berrange\n"
119 "Copyright 2007-2008 Red Hat, Inc."
120 msgstr ""
121 "Copyright 2007-2008 Daniel P. Berrange\n"
122 "Copyright 2007-2008 Red Hat, Inc."
123
124 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr ""
188
189 #: ../src/virt-viewer-about.xml.h:5
125190 msgid "The Fedora Translation Team"
126 msgstr "A Fedora Honosító Csapat"
127
128 #: ../src/about.glade.h:6
191 msgstr ""
192
193 #: ../src/virt-viewer-about.xml.h:6
129194 msgid ""
130195 "This program is free software; you can redistribute it and/or modify\n"
131196 "it under the terms of the GNU General Public License as published by\n"
142207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
143208 msgstr ""
144209
145 #: ../src/about.glade.h:20
210 #: ../src/virt-viewer-about.xml.h:20
146211 msgid "virt-manager.org"
147 msgstr "virt-manager.org"
148
149 #: ../src/auth.glade.h:1
212 msgstr ""
213
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr ""
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr ""
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr ""
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr ""
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr ""
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr ""
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr ""
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr ""
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr ""
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr ""
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr ""
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr ""
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr ""
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
150281 msgid "Authentication required"
151 msgstr "Hitelesítés szükséges"
152
153 #: ../src/auth.glade.h:2
282 msgstr ""
283
284 #: ../src/virt-viewer-auth.xml.h:2
154285 msgid "Password:"
155 msgstr "Jelszó:"
156
157 #: ../src/auth.glade.h:3
286 msgstr ""
287
288 #: ../src/virt-viewer-auth.xml.h:3
158289 msgid "Username:"
159 msgstr "Felhasználónév:"
160
161 #: ../src/viewer.glade.h:1
162 msgid "Automatically resize"
163 msgstr "Automatikus átméretezés"
164
165 #: ../src/viewer.glade.h:2
166 msgid "Ctrl+Alt+F11"
167 msgstr "Ctrl+Alt+F11"
168
169 #: ../src/viewer.glade.h:3
170 msgid "Ctrl+Alt+F12"
171 msgstr "Ctrl+Alt+F12"
172
173 #: ../src/viewer.glade.h:4
174 msgid "Ctrl+Alt+F1_0"
175 msgstr "Ctrl+Alt+F1_0"
176
177 #: ../src/viewer.glade.h:5
178 msgid "Ctrl+Alt+F_1"
179 msgstr "Ctrl+Alt+F_1"
180
181 #: ../src/viewer.glade.h:6
182 msgid "Ctrl+Alt+F_2"
183 msgstr "Ctrl+Alt+F_2"
184
185 #: ../src/viewer.glade.h:7
186 msgid "Ctrl+Alt+F_3"
187 msgstr "Ctrl+Alt+F_3"
188
189 #: ../src/viewer.glade.h:8
190 msgid "Ctrl+Alt+F_4"
191 msgstr "Ctrl+Alt+F_4"
192
193 #: ../src/viewer.glade.h:9
194 msgid "Ctrl+Alt+F_5"
195 msgstr "Ctrl+Alt+F_5"
196
197 #: ../src/viewer.glade.h:10
198 msgid "Ctrl+Alt+F_6"
199 msgstr "Ctrl+Alt+F_6"
200
201 #: ../src/viewer.glade.h:11
202 msgid "Ctrl+Alt+F_7"
203 msgstr "Ctrl+Alt+F_7"
204
205 #: ../src/viewer.glade.h:12
206 msgid "Ctrl+Alt+F_8"
207 msgstr "Ctrl+Alt+F_8"
208
209 #: ../src/viewer.glade.h:13
210 msgid "Ctrl+Alt+F_9"
211 msgstr "Ctrl+Alt+F_9"
212
213 #: ../src/viewer.glade.h:14
214 msgid "Ctrl+Alt+_Backspace"
215 msgstr "Ctrl+Alt+_Backspace"
216
217 #: ../src/viewer.glade.h:15
218 msgid "Ctrl+Alt+_Del"
219 msgstr "Ctrl+Alt+_Del"
220
221 #: ../src/viewer.glade.h:16
222 msgid "Full screen"
223 msgstr "Teljes képernyő"
224
225 #: ../src/viewer.glade.h:17
226 msgid "Screenshot"
227 msgstr "Képernyőkép"
228
229 #: ../src/viewer.glade.h:18
230 msgid "_File"
231 msgstr "_Fájl"
232
233 #: ../src/viewer.glade.h:19
234 msgid "_Help"
235 msgstr "_Súgó"
236
237 #: ../src/viewer.glade.h:20
238 msgid "_PrintScreen"
239 msgstr ""
240
241 #: ../src/viewer.glade.h:21
242 msgid "_Send key"
243 msgstr ""
244
245 #: ../src/viewer.glade.h:22
246 msgid "_View"
247 msgstr "_Nézet"
248
249 #: ../src/viewer.glade.h:23
250 msgid "gtk-about"
251 msgstr ""
252
253 #: ../src/viewer.glade.h:24
254 msgid "gtk-quit"
255 msgstr ""
256
257 #: ../src/viewer.glade.h:25
258 msgid "page 1"
259 msgstr ""
260
261 #: ../src/viewer.glade.h:26
262 msgid "page 2"
263 msgstr ""
264
265 #: ../src/main.c:52
266 msgid "Run '"
267 msgstr "Futtatás"
268
269 #: ../src/main.c:59
270 msgid "direct connection with no automatic tunnels"
271 msgstr "közvetlen kapcsolat automata átjárók nélkül"
272
273 #: ../src/main.c:65
274 msgid "reconnect to domain upon restart"
275 msgstr "újracsatlakozás a domainnévhez újraindításkor"
276
277 #: ../src/viewer.c:1214
290 msgstr ""
291
292 #: ../src/virt-viewer-auth.xml.h:4
293 msgid "label"
294 msgstr ""
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s verzió %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr ""
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr ""
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr ""
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr ""
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr ""
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr ""
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr ""
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nHasználata: %s [OPCIÓK] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr ""
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr ""
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr ""
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr ""
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr ""
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr ""
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr ""
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr ""
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr ""
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr ""
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr ""
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr ""
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr ""
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr ""
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr ""
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr ""
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr ""
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "A %s címmel nem tudott csatlakozni a libvirthez"
440
441 #: ../src/virt-viewer.c:625
278442 msgid "[none]"
279443 msgstr "[nincs]"
280444
281 #: ../src/about.glade.h:2
282 msgid "About Glade"
283 msgstr "Glade-ről..."
284
285 #: ../src/auth.glade.h:4
286 msgid "gtk-cancel"
287 msgstr "Mégsem"
288
289 #: ../src/auth.glade.h:6
290 msgid "label"
291 msgstr "Címke"
292
293 #: ../src/auth.glade.h:5
294 msgid "gtk-ok"
295 msgstr "Ok"
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
452 msgid "Automatically resize"
453 msgstr ""
454
455 #: ../src/virt-viewer.xml.h:2
456 msgid "Ctrl+Alt+F11"
457 msgstr ""
458
459 #: ../src/virt-viewer.xml.h:3
460 msgid "Ctrl+Alt+F12"
461 msgstr ""
462
463 #: ../src/virt-viewer.xml.h:4
464 msgid "Ctrl+Alt+F1_0"
465 msgstr ""
466
467 #: ../src/virt-viewer.xml.h:5
468 msgid "Ctrl+Alt+F_1"
469 msgstr ""
470
471 #: ../src/virt-viewer.xml.h:6
472 msgid "Ctrl+Alt+F_2"
473 msgstr ""
474
475 #: ../src/virt-viewer.xml.h:7
476 msgid "Ctrl+Alt+F_3"
477 msgstr ""
478
479 #: ../src/virt-viewer.xml.h:8
480 msgid "Ctrl+Alt+F_4"
481 msgstr ""
482
483 #: ../src/virt-viewer.xml.h:9
484 msgid "Ctrl+Alt+F_5"
485 msgstr ""
486
487 #: ../src/virt-viewer.xml.h:10
488 msgid "Ctrl+Alt+F_6"
489 msgstr ""
490
491 #: ../src/virt-viewer.xml.h:11
492 msgid "Ctrl+Alt+F_7"
493 msgstr ""
494
495 #: ../src/virt-viewer.xml.h:12
496 msgid "Ctrl+Alt+F_8"
497 msgstr ""
498
499 #: ../src/virt-viewer.xml.h:13
500 msgid "Ctrl+Alt+F_9"
501 msgstr ""
502
503 #: ../src/virt-viewer.xml.h:14
504 msgid "Ctrl+Alt+_Backspace"
505 msgstr ""
506
507 #: ../src/virt-viewer.xml.h:15
508 msgid "Ctrl+Alt+_Del"
509 msgstr ""
510
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr ""
514
515 #: ../src/virt-viewer.xml.h:17
516 msgid "Full screen"
517 msgstr ""
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr ""
522
523 #: ../src/virt-viewer.xml.h:19
524 msgid "Screenshot"
525 msgstr ""
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr ""
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr ""
534
535 #: ../src/virt-viewer.xml.h:23
536 msgid "_File"
537 msgstr ""
538
539 #: ../src/virt-viewer.xml.h:24
540 msgid "_Help"
541 msgstr ""
542
543 #: ../src/virt-viewer.xml.h:25
544 msgid "_PrintScreen"
545 msgstr ""
546
547 #: ../src/virt-viewer.xml.h:26
548 msgid "_Send key"
549 msgstr ""
550
551 #: ../src/virt-viewer.xml.h:27
552 msgid "_View"
553 msgstr ""
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr ""
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Indonesian <trans-id@lists.fedoraproject.org>\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: id\n"
17 "Plural-Forms: nplurals=1; plural=0\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+446
-231
po/it.po less more
0 # SOME DESCRIPTIVE TITLE.
01 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
1 # This file is distributed under the same license as the virt-viewer package.
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Francesco Tombolini <tombo@adamantio.net>, 2010.
6 # <fvalen@redhat.com>, 2012.
27 # Gianluca Sforna <giallu@fedoraproject.org>, 2010.
3 # Francesco Tombolini <tombo@adamantio.net>, 2010.
8 # silvio pierro <perplesso82@gmail.com>, 2012.
49 msgid ""
510 msgstr ""
6 "Project-Id-Version: it\n"
11 "Project-Id-Version: virt-viewer\n"
712 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2011-01-29 07:48+0000\n"
9 "PO-Revision-Date: 2010-11-18 00:08+0100\n"
10 "Last-Translator: Francesco Tombolini <tombo@adamantio.net>\n"
13 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
14 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
15 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
1116 "Language-Team: Italian <trans-it@lists.fedoraproject.org>\n"
1217 "MIME-Version: 1.0\n"
1318 "Content-Type: text/plain; charset=UTF-8\n"
1419 "Content-Transfer-Encoding: 8bit\n"
15 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16 "X-Generator: Lokalize 1.1\n"
17
18 #: ../src/main.c:34
19 #, c-format
20 msgid "%s version %s\n"
21 msgstr "%s versione %s\n"
22
23 #: ../src/main.c:53
20 "Language: it\n"
21 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
22
23 #: ../src/gbinding.c:637
24 msgid "Source"
25 msgstr "Sorgente"
26
27 #: ../src/gbinding.c:638
28 msgid "The source of the binding"
29 msgstr "Il sorgente dell'associazione"
30
31 #: ../src/gbinding.c:652
32 msgid "Target"
33 msgstr "Target"
34
35 #: ../src/gbinding.c:653
36 msgid "The target of the binding"
37 msgstr "Il target dell'associazione"
38
39 #: ../src/gbinding.c:668
40 msgid "Source Property"
41 msgstr "Proprietà sorgente"
42
43 #: ../src/gbinding.c:669
44 msgid "The property on the source to bind"
45 msgstr "La proprietà sul sorgente da associare"
46
47 #: ../src/gbinding.c:684
48 msgid "Target Property"
49 msgstr "Proprietà del target"
50
51 #: ../src/gbinding.c:685
52 msgid "The property on the target to bind"
53 msgstr "La proprietà sul target da associare"
54
55 #: ../src/gbinding.c:699
56 msgid "Flags"
57 msgstr "Flag"
58
59 #: ../src/gbinding.c:700
60 msgid "The binding flags"
61 msgstr "I flag per l'associazione"
62
63 #: ../src/remote-viewer-main.c:47
64 #, c-format
65 msgid "remote-viewer version %s\n"
66 msgstr "versione del visualizzatore-remoto %s\n"
67
68 #: ../src/remote-viewer-main.c:69
69 #, c-format
70 msgid "Invalid full-screen argument: %s"
71 msgstr ""
72
73 #. Create the widgets
74 #: ../src/remote-viewer-main.c:104
75 msgid "Connection details"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:119
79 msgid "URL:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:127
83 msgid "Recent connections:"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2487 msgid "Run '"
2588 msgstr "Esegui '"
2689
27 #: ../src/main.c:56
28 msgid "display version information"
29 msgstr "mostra informazioni sulla versione"
30
31 #: ../src/main.c:58
32 msgid "display verbose information"
33 msgstr "mostra informazioni dettagliate"
34
35 #: ../src/main.c:60
36 msgid "direct connection with no automatic tunnels"
37 msgstr "connessione diretta senza tunnel automatici"
38
39 #: ../src/main.c:62
40 msgid "connect to hypervisor"
41 msgstr "connetti all'hypervisor"
42
43 #: ../src/main.c:64
44 msgid "wait for domain to start"
45 msgstr "attendi l'avvio del dominio"
46
47 #: ../src/main.c:66
48 msgid "reconnect to domain upon restart"
49 msgstr "riconnetti al dominio dopo il riavvio"
50
51 #: ../src/main.c:68
90 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
91 msgid "Display version information"
92 msgstr "Mostra informazioni sulla versione"
93
94 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
95 msgid "Display verbose information"
96 msgstr "Mostra informazioni verbose"
97
98 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
99 msgid "Direct connection with no automatic tunnels"
100 msgstr "Connessione diretta con nessun tunnel automatico"
101
102 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
52103 msgid "Zoom level of window, in percentage"
53104 msgstr "Livello di zoom della finestra, in percentuale"
54105
55 #: ../src/main.c:70
56 msgid "display debugging information"
57 msgstr "mostra informazioni di debug"
106 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
107 msgid "Display debugging information"
108 msgstr "Mostra le informazioni di debugging"
109
110 #: ../src/remote-viewer-main.c:219
111 msgid "Open in full screen mode (=<auto-conf>)"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:222
115 msgid "Open connection using Spice controller communication"
116 msgstr "Apri collegamento usando una comunicazione SPICE"
117
118 #: ../src/remote-viewer-main.c:249
119 msgid "Remote Viewer"
120 msgstr ""
58121
59122 #. Setup command line options
60 #: ../src/main.c:82
61 msgid "- Virtual machine graphical console"
62 msgstr "- Console grafica della virtual machine"
63
64 #: ../src/main.c:98
65 #, c-format
66 msgid ""
67 "\n"
68 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
69 "\n"
70 "%s\n"
71 "\n"
72 msgstr ""
73 "\n"
74 "Utilizzo: %s [OPZIONI] NOME-DOMINIO|ID|UUID\n"
75 "\n"
76 "%s\n"
77 "\n"
78
79 #: ../src/viewer.c:1053
80 #, c-format
81 msgid "Cannot find guest domain %s"
82 msgstr "Impossibile trovare il dominio guest %s"
83
84 #: ../src/viewer.c:1161
85 #, c-format
86 msgid "Unable to connect to libvirt with URI %s"
87 msgstr "Impossibile connettersi a libvirt con la URI %s"
88
89 #: ../src/viewer.c:1162
90 msgid "[none]"
91 msgstr "[nessuno]"
92
93 #: ../src/display-vnc.c:142
94 #, c-format
95 msgid ""
96 "Unable to authenticate with VNC server at %s\n"
97 "Unsupported authentication type %d"
98 msgstr ""
99 "Impossibile autenticarsi con il server VNC %s\n"
100 "Tipo di autenticazione non supportato: %d"
101
102 #: ../src/display-vnc.c:158
103 #, c-format
104 msgid ""
105 "Unable to authenticate with VNC server at %s: %s\n"
106 "Retry connection again?"
107 msgstr ""
108 "Impossibile autenticarsi con il server VNC %s: %s\n"
109 "Riprovare la connessione?"
123 #: ../src/remote-viewer-main.c:252
124 msgid "- Remote viewer client"
125 msgstr "- Client visualizzatore remoto"
126
127 #: ../src/remote-viewer-main.c:275
128 #, c-format
129 msgid "Error: extra arguments given while using Spice controller\n"
130 msgstr ""
131
132 #: ../src/remote-viewer-main.c:284
133 #, c-format
134 msgid "Error: can't handle multiple URIs\n"
135 msgstr ""
136
137 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
138 #, c-format
139 msgid "Zoom level must be within 10-200\n"
140 msgstr "Il livello di zoom deve essere tra 10-200\n"
141
142 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
143 msgid "Failed to initiate connection"
144 msgstr "Inizializzazione connessione fallita"
145
146 #: ../src/remote-viewer.c:250
147 msgid "Display disabled by controller"
148 msgstr "Mostra disabilitato dal controller"
149
150 #: ../src/remote-viewer.c:697
151 #, c-format
152 msgid "Controller connection failed: %s"
153 msgstr "Connessione controller fallita: %s"
154
155 #: ../src/remote-viewer.c:750
156 msgid "Couldn't create a Spice session"
157 msgstr "Impossibile creare una sessione di Spice"
158
159 #: ../src/remote-viewer.c:764
160 msgid "Setting up Spice session..."
161 msgstr "Impostazione sessione Spice in corso..."
162
163 #: ../src/remote-viewer.c:774
164 msgid "Cannot determine the connection type from URI"
165 msgstr "Impossibile determinare il tipo di connessione da URI"
166
167 #: ../src/remote-viewer.c:779
168 #, c-format
169 msgid "Couldn't create a session for this type: %s"
170 msgstr "Impossibile creare una sessione per questo tipo: %s"
110171
111172 #. * Local variables:
112 #. * c-indent-level: 8
113 #. * c-basic-offset: 8
114 #. * tab-width: 8
173 #. * c-indent-level: 4
174 #. * c-basic-offset: 4
175 #. * indent-tabs-mode: nil
115176 #. * End:
116177 #.
117 #: ../src/about.glade.h:1
118 msgid "A remote desktop client built with GTK-VNC and libvirt"
119 msgstr "Un remote desktop client basato su GTK-VNC e libvirt"
120
121 #: ../src/about.glade.h:2
178 #: ../src/virt-viewer-about.xml.h:1
179 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
180 msgstr "Un client desktop remoto creato con GTK-VNC, SPICE-GTK e libvirt"
181
182 #: ../src/virt-viewer-about.xml.h:2
122183 msgid "About Glade"
123184 msgstr "Informazioni su Glade"
124185
125 #: ../src/about.glade.h:3
186 #: ../src/virt-viewer-about.xml.h:3
126187 msgid ""
127 "Copyright 2007-2008 Daniel P. Berrange\n"
128 "Copyright 2007-2008 Red Hat, Inc."
129 msgstr ""
130 "Copyright 2007-2008 Daniel P. Berrange\n"
131 "Copyright 2007-2008 Red Hat, Inc."
132
133 #: ../src/about.glade.h:5
188 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
189 "Copyright (C) 2007-2012 Red Hat, Inc."
190 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
191
192 #: ../src/virt-viewer-about.xml.h:5
134193 msgid "The Fedora Translation Team"
135 msgstr ""
136 "Il team di traduzione di Fedora\n"
137 "Francesco Tombolini <tombo@fedoraproject.org>, 2010\n"
138 "Gianluca Sforna <giallu@fedoraproject.org>, 2010"
139
140 #: ../src/about.glade.h:6
194 msgstr "Il Fedora Translation Team"
195
196 #: ../src/virt-viewer-about.xml.h:6
141197 msgid ""
142198 "This program is free software; you can redistribute it and/or modify\n"
143199 "it under the terms of the GNU General Public License as published by\n"
152208 "You should have received a copy of the GNU General Public License\n"
153209 "along with this program; if not, write to the Free Software\n"
154210 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
155 msgstr ""
156 "This program is free software; you can redistribute it and/or modify\n"
157 "it under the terms of the GNU General Public License as published by\n"
158 "the Free Software Foundation; either version 2 of the License, or\n"
159 "(at your option) any later version.\n"
160 "\n"
161 "This program is distributed in the hope that it will be useful,\n"
162 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
163 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
164 "GNU General Public License for more details.\n"
165 "\n"
166 "You should have received a copy of the GNU General Public License\n"
167 "along with this program; if not, write to the Free Software\n"
168 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
169
170 #: ../src/about.glade.h:20
211 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"
212
213 #: ../src/virt-viewer-about.xml.h:20
171214 msgid "virt-manager.org"
172215 msgstr "virt-manager.org"
173216
174 #: ../src/auth.glade.h:1
217 #: ../src/virt-viewer-app.c:284
218 msgid "This is the last visible display. Do you want to quit?"
219 msgstr "Questo è l'ultimo display visibile. Si desidera uscire?"
220
221 #: ../src/virt-viewer-app.c:624
222 #, c-format
223 msgid "Waiting for display %d..."
224 msgstr "In attesa del display %d..."
225
226 #: ../src/virt-viewer-app.c:707
227 #, c-format
228 msgid "Unknown graphic type for the guest %s"
229 msgstr "Impossibile determinare il tipo grafico per il guest %s"
230
231 #: ../src/virt-viewer-app.c:782
232 msgid "Connect to ssh failed."
233 msgstr "Connessione a ssh fallita."
234
235 #: ../src/virt-viewer-app.c:784
236 msgid "Can't connect to channel, SSH only supported."
237 msgstr "Impossibile connettersi al canale, è supportato solo SSH."
238
239 #: ../src/virt-viewer-app.c:796
240 msgid "Connect to channel unsupported."
241 msgstr "Connessione al canale non supportata."
242
243 #: ../src/virt-viewer-app.c:876
244 msgid "Connecting to graphic server"
245 msgstr "Connessione al server grafico in corso"
246
247 #: ../src/virt-viewer-app.c:1006
248 msgid "Guest domain has shutdown"
249 msgstr "Il dominio del guest si è arrestato"
250
251 #: ../src/virt-viewer-app.c:1056
252 msgid "Connected to graphic server"
253 msgstr "Connesso al server grafico"
254
255 #: ../src/virt-viewer-app.c:1082
256 #, c-format
257 msgid "Unable to connect to the graphic server %s"
258 msgstr "Impossibile connettersi al server grafico %s"
259
260 #: ../src/virt-viewer-app.c:1111
261 #, c-format
262 msgid ""
263 "Unable to authenticate with remote desktop server at %s: %s\n"
264 "Retry connection again?"
265 msgstr "Impossibile eseguire l'autenticazione con il server desktop remoto su %s: %s\nRiprovare il collegamento?"
266
267 #: ../src/virt-viewer-app.c:1131
268 #, c-format
269 msgid "Unable to authenticate with remote desktop server: %s"
270 msgstr "Impossibile eseguire l'autenticazione con il server desktop remoto su: %s"
271
272 #: ../src/virt-viewer-app.c:1139
273 #, c-format
274 msgid "USB redirection error: %s"
275 msgstr "Errore di reindirizzamento USB: %s"
276
277 #. * Local variables:
278 #. * c-indent-level: 4
279 #. * c-basic-offset: 4
280 #. * indent-tabs-mode: nil
281 #. * End:
282 #.
283 #: ../src/virt-viewer-auth.xml.h:1
175284 msgid "Authentication required"
176 msgstr "Richiesta autenticazione"
177
178 #: ../src/auth.glade.h:2
285 msgstr "Autenticazione necessaria"
286
287 #: ../src/virt-viewer-auth.xml.h:2
179288 msgid "Password:"
180289 msgstr "Password:"
181290
182 #: ../src/auth.glade.h:3
291 #: ../src/virt-viewer-auth.xml.h:3
183292 msgid "Username:"
184293 msgstr "Nome utente:"
185294
186 #: ../src/auth.glade.h:4
187 msgid "gtk-cancel"
188 msgstr "gtk-cancel"
189
190 #: ../src/auth.glade.h:5
191 msgid "gtk-ok"
192 msgstr "gtk-ok"
193
194 #: ../src/auth.glade.h:6
295 #: ../src/virt-viewer-auth.xml.h:4
195296 msgid "label"
196297 msgstr "etichetta"
197298
198 #: ../src/viewer.glade.h:1
299 #: ../src/virt-viewer-main.c:38
300 #, c-format
301 msgid "%s version %s\n"
302 msgstr "%s versione %s\n"
303
304 #: ../src/virt-viewer-main.c:69
305 msgid "Attach to the local display using libvirt"
306 msgstr "Allega al display locale usando libvirt"
307
308 #: ../src/virt-viewer-main.c:71
309 msgid "Connect to hypervisor"
310 msgstr "Connetti con l'hypervisor"
311
312 #: ../src/virt-viewer-main.c:73
313 msgid "Wait for domain to start"
314 msgstr "Attendi l'avvio del dominio"
315
316 #: ../src/virt-viewer-main.c:75
317 msgid "Reconnect to domain upon restart"
318 msgstr "Riconnetti con il dominio previo riavvio"
319
320 #: ../src/virt-viewer-main.c:81
321 msgid "Open in full screen mode"
322 msgstr "Apri in modalità schermo intero"
323
324 #: ../src/virt-viewer-main.c:96
325 msgid "Virt Viewer"
326 msgstr "Virt Viewer"
327
328 #. Setup command line options
329 #: ../src/virt-viewer-main.c:99
330 msgid "- Virtual machine graphical console"
331 msgstr "- Console grafica della virtual machine"
332
333 #: ../src/virt-viewer-main.c:120
334 #, c-format
335 msgid ""
336 "\n"
337 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
338 "\n"
339 "%s\n"
340 "\n"
341 msgstr "\nUtilizzo: %s [OPZIONI] NOME-DOMINIO|ID|UUID\n\n%s\n\n"
342
343 #. Create the widgets
344 #: ../src/virt-viewer-session-spice.c:380
345 msgid "Select USB devices for redirection"
346 msgstr "Seleziona i dispositivi USB per il reindirizzamento"
347
348 #: ../src/virt-viewer-session-vnc.c:141
349 #, c-format
350 msgid "Unsupported authentication type %d"
351 msgstr "Tipo di autenticazione %d non supportata"
352
353 #: ../src/virt-viewer-window.c:832
354 msgid "Disconnect"
355 msgstr "Scollega"
356
357 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
358 #: ../src/virt-viewer.xml.h:22
359 msgid "USB device selection"
360 msgstr "Selezione dispositivo USB"
361
362 #: ../src/virt-viewer-window.c:848
363 msgid "Send key combination"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
367 msgid "Leave fullscreen"
368 msgstr "Lascia a schermo intero"
369
370 #: ../src/virt-viewer-window.c:937
371 msgid "Ctrl+Alt"
372 msgstr ""
373
374 #: ../src/virt-viewer-window.c:940
375 #, c-format
376 msgid "(Press %s to release pointer)"
377 msgstr ""
378
379 #. translators:
380 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
381 #. <appname>"
382 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
383 #. Viewer"
384 #.
385 #: ../src/virt-viewer-window.c:951
386 #, c-format
387 msgid "%s%s%s - %s"
388 msgstr "%s%s%s - %s"
389
390 #. translators: <space>
391 #: ../src/virt-viewer-window.c:955
392 msgid " "
393 msgstr " "
394
395 #: ../src/virt-viewer.c:144
396 msgid "Waiting for guest domain to re-start"
397 msgstr "In attesa del riavvio del dominio guest"
398
399 #: ../src/virt-viewer.c:308
400 #, c-format
401 msgid "Cannot determine the graphic type for the guest %s"
402 msgstr "Impossibile determinare il tipo grafico per il guest %s"
403
404 #: ../src/virt-viewer.c:321
405 #, c-format
406 msgid "Cannot determine the graphic address for the guest %s"
407 msgstr "Impossibile determinare l'indirizzo grafico per il guest %s"
408
409 #: ../src/virt-viewer.c:344
410 #, c-format
411 msgid "Cannot determine the host for the guest %s"
412 msgstr "Impossibile determinare l'host per il guest %s"
413
414 #: ../src/virt-viewer.c:474
415 msgid "Finding guest domain"
416 msgstr "Ricerca dominio guest in corso"
417
418 #: ../src/virt-viewer.c:478
419 msgid "Waiting for guest domain to be created"
420 msgstr "In attessa di una creazione del dominio guest"
421
422 #: ../src/virt-viewer.c:483
423 #, c-format
424 msgid "Cannot find guest domain %s"
425 msgstr "Impossibile trovare il dominio guest %s"
426
427 #: ../src/virt-viewer.c:490
428 msgid "Checking guest domain status"
429 msgstr "Controllo stato del dominio guest in corso"
430
431 #: ../src/virt-viewer.c:497
432 msgid "Waiting for guest domain to start"
433 msgstr "In attesa dell'avvio del dominio guest"
434
435 #: ../src/virt-viewer.c:504
436 msgid "Waiting for guest domain to start server"
437 msgstr "In attesa che il dominio guest avvii il server"
438
439 #: ../src/virt-viewer.c:624
440 #, c-format
441 msgid "Unable to connect to libvirt with URI %s"
442 msgstr "Impossibile connettersi a libvirt con la URI %s"
443
444 #: ../src/virt-viewer.c:625
445 msgid "[none]"
446 msgstr "[nessuno]"
447
448 #. * Local variables:
449 #. * c-indent-level: 4
450 #. * c-basic-offset: 4
451 #. * indent-tabs-mode: nil
452 #. * End:
453 #.
454 #: ../src/virt-viewer.xml.h:1
199455 msgid "Automatically resize"
200456 msgstr "Ridimensiona automaticamente"
201457
202 #: ../src/viewer.glade.h:2
458 #: ../src/virt-viewer.xml.h:2
203459 msgid "Ctrl+Alt+F11"
204460 msgstr "Ctrl+Alt+F11"
205461
206 #: ../src/viewer.glade.h:3
462 #: ../src/virt-viewer.xml.h:3
207463 msgid "Ctrl+Alt+F12"
208464 msgstr "Ctrl+Alt+F12"
209465
210 #: ../src/viewer.glade.h:4
466 #: ../src/virt-viewer.xml.h:4
211467 msgid "Ctrl+Alt+F1_0"
212468 msgstr "Ctrl+Alt+F1_0"
213469
214 #: ../src/viewer.glade.h:5
470 #: ../src/virt-viewer.xml.h:5
215471 msgid "Ctrl+Alt+F_1"
216472 msgstr "Ctrl+Alt+F_1"
217473
218 #: ../src/viewer.glade.h:6
474 #: ../src/virt-viewer.xml.h:6
219475 msgid "Ctrl+Alt+F_2"
220476 msgstr "Ctrl+Alt+F_2"
221477
222 #: ../src/viewer.glade.h:7
478 #: ../src/virt-viewer.xml.h:7
223479 msgid "Ctrl+Alt+F_3"
224480 msgstr "Ctrl+Alt+F_3"
225481
226 #: ../src/viewer.glade.h:8
482 #: ../src/virt-viewer.xml.h:8
227483 msgid "Ctrl+Alt+F_4"
228484 msgstr "Ctrl+Alt+F_4"
229485
230 #: ../src/viewer.glade.h:9
486 #: ../src/virt-viewer.xml.h:9
231487 msgid "Ctrl+Alt+F_5"
232488 msgstr "Ctrl+Alt+F_5"
233489
234 #: ../src/viewer.glade.h:10
490 #: ../src/virt-viewer.xml.h:10
235491 msgid "Ctrl+Alt+F_6"
236492 msgstr "Ctrl+Alt+F_6"
237493
238 #: ../src/viewer.glade.h:11
494 #: ../src/virt-viewer.xml.h:11
239495 msgid "Ctrl+Alt+F_7"
240496 msgstr "Ctrl+Alt+F_7"
241497
242 #: ../src/viewer.glade.h:12
498 #: ../src/virt-viewer.xml.h:12
243499 msgid "Ctrl+Alt+F_8"
244500 msgstr "Ctrl+Alt+F_8"
245501
246 #: ../src/viewer.glade.h:13
502 #: ../src/virt-viewer.xml.h:13
247503 msgid "Ctrl+Alt+F_9"
248504 msgstr "Ctrl+Alt+F_9"
249505
250 #: ../src/viewer.glade.h:14
506 #: ../src/virt-viewer.xml.h:14
251507 msgid "Ctrl+Alt+_Backspace"
252508 msgstr "Ctrl+Alt+_Backspace"
253509
254 #: ../src/viewer.glade.h:15
510 #: ../src/virt-viewer.xml.h:15
255511 msgid "Ctrl+Alt+_Del"
256512 msgstr "Ctrl+Alt+_Del"
257513
258 #: ../src/viewer.glade.h:16
514 #: ../src/virt-viewer.xml.h:16
515 msgid "Displays"
516 msgstr "Display"
517
518 #: ../src/virt-viewer.xml.h:17
259519 msgid "Full screen"
260520 msgstr "Schermo intero"
261521
262 #: ../src/viewer.glade.h:17
522 #: ../src/virt-viewer.xml.h:18
523 msgid "Release cursor"
524 msgstr "Rilascia il cursore"
525
526 #: ../src/virt-viewer.xml.h:19
263527 msgid "Screenshot"
264 msgstr "Cattura schermata"
265
266 #: ../src/viewer.glade.h:18
528 msgstr "Schermata"
529
530 #: ../src/virt-viewer.xml.h:20
531 msgid "Smartcard insertion"
532 msgstr "Inserimento Smartcard"
533
534 #: ../src/virt-viewer.xml.h:21
535 msgid "Smartcard removal"
536 msgstr "Rimozione Smartcard"
537
538 #: ../src/virt-viewer.xml.h:23
267539 msgid "_File"
268540 msgstr "_File"
269541
270 #: ../src/viewer.glade.h:19
542 #: ../src/virt-viewer.xml.h:24
271543 msgid "_Help"
272544 msgstr "_Aiuto"
273545
274 #: ../src/viewer.glade.h:20
546 #: ../src/virt-viewer.xml.h:25
275547 msgid "_PrintScreen"
276 msgstr "_Stamp"
277
278 #: ../src/viewer.glade.h:21
548 msgstr "_StampaSchermata"
549
550 #: ../src/virt-viewer.xml.h:26
279551 msgid "_Send key"
280 msgstr "_Manda tasto"
281
282 #: ../src/viewer.glade.h:22
552 msgstr "_Invia chiave"
553
554 #: ../src/virt-viewer.xml.h:27
283555 msgid "_View"
284556 msgstr "_Visualizza"
285557
286 #: ../src/viewer.glade.h:23
558 #: ../src/virt-viewer.xml.h:28
287559 msgid "_Zoom"
288560 msgstr "_Zoom"
289
290 #: ../src/viewer.glade.h:24
291 msgid "gtk-about"
292 msgstr "gtk-about"
293
294 #: ../src/viewer.glade.h:25
295 msgid "gtk-quit"
296 msgstr "gtk-quit"
297
298 #: ../src/viewer.glade.h:26
299 msgid "page 1"
300 msgstr "pagina 1"
301
302 #: ../src/viewer.glade.h:27
303 msgid "page 2"
304 msgstr "pagina 2"
305
306 #: ../src/viewer.glade.h:28
307 msgid "page 3"
308 msgstr "pagina 3"
309
310 #: ../src/viewer.c:863
311 msgid "Connect to channel unsupported."
312 msgstr "Connessione al canale non supportata"
313
314 #: ../src/viewer.c:858
315 msgid "Can't connect to channel, SSH only supported."
316 msgstr "Impossibile connettersi al canale, solo SSH è supportato."
317
318 #: ../src/viewer.c:805
319 #, c-format
320 msgid "Cannot determine the graphic type for the guest %s"
321 msgstr "Impossibile determinare il tipo grafico per il guest %s"
322
323 #: ../src/viewer.c:824
324 #, c-format
325 msgid "Cannot determine the graphic port for the guest %s"
326 msgstr "Impossibile determinare la porta grafica per il guest %s"
327
328 #: ../src/viewer.c:817
329 #, c-format
330 msgid "Unknown graphic type for the guest %s"
331 msgstr "Impossibile determinare il tipo grafico per il guest %s"
332
333 #: ../src/viewer.c:856
334 msgid "Connect to ssh failed."
335 msgstr "Connessione a ssh fallita"
336
337 #: ../src/viewer.c:830
338 #, c-format
339 msgid "Cannot determine the host for the guest %s"
340 msgstr "Impossibile determinare l'host per il guest %s"
341
342 #: ../src/viewer.c:1006
343 #, c-format
344 msgid "Unable to connect to the graphic server %s"
345 msgstr "Impossibile connettersi al server grafico %s"
+478
-230
po/ja.po less more
0 # translation of ja.po to Japanese
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
3 #
4 # Translators:
5 # Hajime Taira <htaira@redhat.com>, 2012.
46 # Kiyoto Hashida <khashida@redhat.com>, 2010.
7 # Tomoyuki KATO <tomo@dream.daynight.jp>, 2012.
58 msgid ""
69 msgstr ""
7 "Project-Id-Version: ja\n"
10 "Project-Id-Version: virt-viewer\n"
811 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-06-25 01:51+0000\n"
10 "PO-Revision-Date: 2010-06-25 13:31+0900\n"
11 "Last-Translator: Hajime Taira <htaira@redhat.com>\n"
12 "Language-Team: Japanese <jp@li.org>\n"
12 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
13 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
14 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
15 "Language-Team: Japanese <trans-ja@lists.fedoraproject.org>\n"
1316 "MIME-Version: 1.0\n"
1417 "Content-Type: text/plain; charset=UTF-8\n"
1518 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17 "Plural-Forms: Plural-Forms: nplurals=1; plural=0;\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%sバージョン %s\n"
23
24 #: ../src/main.c:52
19 "Language: ja\n"
20 "Plural-Forms: nplurals=1; plural=0\n"
21
22 #: ../src/gbinding.c:637
23 msgid "Source"
24 msgstr "ソース"
25
26 #: ../src/gbinding.c:638
27 msgid "The source of the binding"
28 msgstr "バインディングのソース"
29
30 #: ../src/gbinding.c:652
31 msgid "Target"
32 msgstr "ターゲット"
33
34 #: ../src/gbinding.c:653
35 msgid "The target of the binding"
36 msgstr "バインディングのターゲット"
37
38 #: ../src/gbinding.c:668
39 msgid "Source Property"
40 msgstr "ソースのプロパティー"
41
42 #: ../src/gbinding.c:669
43 msgid "The property on the source to bind"
44 msgstr "バインドするソースのプロパティー"
45
46 #: ../src/gbinding.c:684
47 msgid "Target Property"
48 msgstr "ターゲットのプロパティー"
49
50 #: ../src/gbinding.c:685
51 msgid "The property on the target to bind"
52 msgstr "バインドするターゲットのプロパティー"
53
54 #: ../src/gbinding.c:699
55 msgid "Flags"
56 msgstr "フラグ"
57
58 #: ../src/gbinding.c:700
59 msgid "The binding flags"
60 msgstr "バインディングのフラグ"
61
62 #: ../src/remote-viewer-main.c:47
63 #, c-format
64 msgid "remote-viewer version %s\n"
65 msgstr "remote-viewer バージョン %s\n"
66
67 #: ../src/remote-viewer-main.c:69
68 #, c-format
69 msgid "Invalid full-screen argument: %s"
70 msgstr ""
71
72 #. Create the widgets
73 #: ../src/remote-viewer-main.c:104
74 msgid "Connection details"
75 msgstr ""
76
77 #: ../src/remote-viewer-main.c:119
78 msgid "URL:"
79 msgstr ""
80
81 #: ../src/remote-viewer-main.c:127
82 msgid "Recent connections:"
83 msgstr ""
84
85 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2586 msgid "Run '"
2687 msgstr "実行"
2788
28 #: ../src/main.c:55
29 msgid "display version information"
30 msgstr "バージョン情報の表示"
31
32 #: ../src/main.c:57
33 msgid "display verbose information"
34 msgstr "詳細情報の表示"
35
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
38 msgstr "自動的にトンネルせず直接接続する"
39
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "ハイパーバイザーに接続"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "ドメインの起動を待つ"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "再起動時にゲストへ再接続"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
89 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
90 msgid "Display version information"
91 msgstr "バージョン情報の表示します"
92
93 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
94 msgid "Display verbose information"
95 msgstr "詳細情報の表示します"
96
97 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
98 msgid "Direct connection with no automatic tunnels"
99 msgstr "自動的にトンネリングせず直接接続する"
100
101 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
102 msgid "Zoom level of window, in percentage"
103 msgstr "ウィンドウのズームレベル(パーセント単位)"
104
105 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
106 msgid "Display debugging information"
54107 msgstr "デバッグ情報の表示"
55108
109 #: ../src/remote-viewer-main.c:219
110 msgid "Open in full screen mode (=<auto-conf>)"
111 msgstr ""
112
113 #: ../src/remote-viewer-main.c:222
114 msgid "Open connection using Spice controller communication"
115 msgstr "Spice コントローラー通信を使用して接続を開く"
116
117 #: ../src/remote-viewer-main.c:249
118 msgid "Remote Viewer"
119 msgstr ""
120
56121 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "- 仮想マシングラフィカルコンソール"
60
61 #: ../src/main.c:95
62 #, c-format
122 #: ../src/remote-viewer-main.c:252
123 msgid "- Remote viewer client"
124 msgstr "- リモートビューアークライアント"
125
126 #: ../src/remote-viewer-main.c:275
127 #, c-format
128 msgid "Error: extra arguments given while using Spice controller\n"
129 msgstr ""
130
131 #: ../src/remote-viewer-main.c:284
132 #, c-format
133 msgid "Error: can't handle multiple URIs\n"
134 msgstr ""
135
136 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
137 #, c-format
138 msgid "Zoom level must be within 10-200\n"
139 msgstr "ズームレベルは 10-200 の範囲内でなければいけません\n"
140
141 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
142 msgid "Failed to initiate connection"
143 msgstr "接続の初期化に失敗しました"
144
145 #: ../src/remote-viewer.c:250
146 msgid "Display disabled by controller"
147 msgstr "ディスプレイがコントローラーにより無効化されました"
148
149 #: ../src/remote-viewer.c:697
150 #, c-format
151 msgid "Controller connection failed: %s"
152 msgstr "コントローラーの接続に失敗しました: %s"
153
154 #: ../src/remote-viewer.c:750
155 msgid "Couldn't create a Spice session"
156 msgstr "Spice セッションを作成できませんでした"
157
158 #: ../src/remote-viewer.c:764
159 msgid "Setting up Spice session..."
160 msgstr "Spice セッションのセットアップ中..."
161
162 #: ../src/remote-viewer.c:774
163 msgid "Cannot determine the connection type from URI"
164 msgstr "URI から接続の種類を決定できません"
165
166 #: ../src/remote-viewer.c:779
167 #, c-format
168 msgid "Couldn't create a session for this type: %s"
169 msgstr "この種類のセッションを作成できませんでした: %s"
170
171 #. * Local variables:
172 #. * c-indent-level: 4
173 #. * c-basic-offset: 4
174 #. * indent-tabs-mode: nil
175 #. * End:
176 #.
177 #: ../src/virt-viewer-about.xml.h:1
178 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
179 msgstr "GTK-VNC, SPICE-GTK および libvirt でビルドされたリモートデスクトップクライアント"
180
181 #: ../src/virt-viewer-about.xml.h:2
182 msgid "About Glade"
183 msgstr "Glade について"
184
185 #: ../src/virt-viewer-about.xml.h:3
63186 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "使用法: %s [オプション] ドメイン名|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "ゲスト %s 用の VNC ポートを決定できません"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "ゲスト %s 用の VNC ホストを決定できません"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "VNC サーバー %s へ接続できません"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "%s にある VNC サーバーに対して認証が失敗しました。 %s\n"
98 "再度接続を試しますか ?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "%s にある VNC サーバーで認証ができません\n"
107 "サポートしていない認証タイプです %d "
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "ゲスト %s が見付かりません"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %s で libvirt に接続できません"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "[なし]"
122
123 #.
124 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
128 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "GTK-VNC と libvirt で構成したリモートデスクトップクライアント"
133
134 #: ../src/about.glade.h:2
135 msgid "About Glade"
136 msgstr "Glade の情報"
137
138 #: ../src/about.glade.h:3
139 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "Copyright 2007-2008 Daniel P. Berrange\n"
144 "Copyright 2007-2008 Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
187 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
188 "Copyright (C) 2007-2012 Red Hat, Inc."
189 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
190
191 #: ../src/virt-viewer-about.xml.h:5
147192 msgid "The Fedora Translation Team"
148 msgstr "Fedora 翻訳チーム"
149
150 #: ../src/about.glade.h:6
193 msgstr "The Fedora Translation Team"
194
195 #: ../src/virt-viewer-about.xml.h:6
151196 msgid ""
152197 "This program is free software; you can redistribute it and/or modify\n"
153198 "it under the terms of the GNU General Public License as published by\n"
162207 "You should have received a copy of the GNU General Public License\n"
163208 "along with this program; if not, write to the Free Software\n"
164209 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "This program is free software; you can redistribute it and/or modify\n"
167 "it under the terms of the GNU General Public License as published by\n"
168 "the Free Software Foundation; either version 2 of the License, or\n"
169 "(at your option) any later version.\n"
170 "\n"
171 "This program is distributed in the hope that it will be useful,\n"
172 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
173 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
174 "GNU General Public License for more details.\n"
175 "\n"
176 "You should have received a copy of the GNU General Public License\n"
177 "along with this program; if not, write to the Free Software\n"
178 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
179
180 #: ../src/about.glade.h:20
210 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"
211
212 #: ../src/virt-viewer-about.xml.h:20
181213 msgid "virt-manager.org"
182214 msgstr "virt-manager.org"
183215
184 #: ../src/auth.glade.h:1
216 #: ../src/virt-viewer-app.c:284
217 msgid "This is the last visible display. Do you want to quit?"
218 msgstr "これは表示可能な最後のディスプレイです。本当に終了しますか?"
219
220 #: ../src/virt-viewer-app.c:624
221 #, c-format
222 msgid "Waiting for display %d..."
223 msgstr "ディスプレイ %d を待機中..."
224
225 #: ../src/virt-viewer-app.c:707
226 #, c-format
227 msgid "Unknown graphic type for the guest %s"
228 msgstr "仮想マシン %s のグラフィックの種類が未知の種類です"
229
230 #: ../src/virt-viewer-app.c:782
231 msgid "Connect to ssh failed."
232 msgstr "SSH への接続に失敗しました。"
233
234 #: ../src/virt-viewer-app.c:784
235 msgid "Can't connect to channel, SSH only supported."
236 msgstr "チャンネルに接続できません、SSH のみがサポートされます。"
237
238 #: ../src/virt-viewer-app.c:796
239 msgid "Connect to channel unsupported."
240 msgstr "サポートされないチャネルに接続します。"
241
242 #: ../src/virt-viewer-app.c:876
243 msgid "Connecting to graphic server"
244 msgstr "グラフィックサーバーに接続中"
245
246 #: ../src/virt-viewer-app.c:1006
247 msgid "Guest domain has shutdown"
248 msgstr "仮想マシンがシャットダウンしました"
249
250 #: ../src/virt-viewer-app.c:1056
251 msgid "Connected to graphic server"
252 msgstr "グラフィックサーバーに接続"
253
254 #: ../src/virt-viewer-app.c:1082
255 #, c-format
256 msgid "Unable to connect to the graphic server %s"
257 msgstr "グラフィックサーバー %s に接続できません"
258
259 #: ../src/virt-viewer-app.c:1111
260 #, c-format
261 msgid ""
262 "Unable to authenticate with remote desktop server at %s: %s\n"
263 "Retry connection again?"
264 msgstr "%s のリモートデスクトップサーバーに認証できません: %s\n再び接続を試行しますか?"
265
266 #: ../src/virt-viewer-app.c:1131
267 #, c-format
268 msgid "Unable to authenticate with remote desktop server: %s"
269 msgstr "リモートデスクトップサーバーに認証できません: %s"
270
271 #: ../src/virt-viewer-app.c:1139
272 #, c-format
273 msgid "USB redirection error: %s"
274 msgstr "USB リダイレクトエラー: %s"
275
276 #. * Local variables:
277 #. * c-indent-level: 4
278 #. * c-basic-offset: 4
279 #. * indent-tabs-mode: nil
280 #. * End:
281 #.
282 #: ../src/virt-viewer-auth.xml.h:1
185283 msgid "Authentication required"
186284 msgstr "認証が必要です"
187285
188 #: ../src/auth.glade.h:2
286 #: ../src/virt-viewer-auth.xml.h:2
189287 msgid "Password:"
190288 msgstr "パスワード:"
191289
192 #: ../src/auth.glade.h:3
290 #: ../src/virt-viewer-auth.xml.h:3
193291 msgid "Username:"
194292 msgstr "ユーザー名:"
195293
196 #: ../src/auth.glade.h:4
197 msgid "gtk-cancel"
198 msgstr "gtk-cancel"
199
200 #: ../src/auth.glade.h:5
201 msgid "gtk-ok"
202 msgstr "gtk-ok"
203
204 #: ../src/auth.glade.h:6
294 #: ../src/virt-viewer-auth.xml.h:4
205295 msgid "label"
206296 msgstr "ラベル"
207297
208 #: ../src/viewer.glade.h:1
298 #: ../src/virt-viewer-main.c:38
299 #, c-format
300 msgid "%s version %s\n"
301 msgstr "%sバージョン %s\n"
302
303 #: ../src/virt-viewer-main.c:69
304 msgid "Attach to the local display using libvirt"
305 msgstr "libvirt を使用してローカルディスプレイに接続"
306
307 #: ../src/virt-viewer-main.c:71
308 msgid "Connect to hypervisor"
309 msgstr "ハイパーバイザーに接続"
310
311 #: ../src/virt-viewer-main.c:73
312 msgid "Wait for domain to start"
313 msgstr "仮想マシンの起動を待つ"
314
315 #: ../src/virt-viewer-main.c:75
316 msgid "Reconnect to domain upon restart"
317 msgstr "再起動時に仮想マシンに再接続"
318
319 #: ../src/virt-viewer-main.c:81
320 msgid "Open in full screen mode"
321 msgstr "フルスクリーンモードで開く"
322
323 #: ../src/virt-viewer-main.c:96
324 msgid "Virt Viewer"
325 msgstr "仮想マシンビューアー"
326
327 #. Setup command line options
328 #: ../src/virt-viewer-main.c:99
329 msgid "- Virtual machine graphical console"
330 msgstr "- 仮想マシングラフィカルコンソール"
331
332 #: ../src/virt-viewer-main.c:120
333 #, c-format
334 msgid ""
335 "\n"
336 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
337 "\n"
338 "%s\n"
339 "\n"
340 msgstr "\n使用法: %s [オプション] ドメイン名|ID|UUID\n\n%s\n\n"
341
342 #. Create the widgets
343 #: ../src/virt-viewer-session-spice.c:380
344 msgid "Select USB devices for redirection"
345 msgstr "リダイレクトする USB デバイスを選択"
346
347 #: ../src/virt-viewer-session-vnc.c:141
348 #, c-format
349 msgid "Unsupported authentication type %d"
350 msgstr "サポートしていない認証の種類 %d"
351
352 #: ../src/virt-viewer-window.c:832
353 msgid "Disconnect"
354 msgstr "切断"
355
356 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
357 #: ../src/virt-viewer.xml.h:22
358 msgid "USB device selection"
359 msgstr "USB デバイスの選択"
360
361 #: ../src/virt-viewer-window.c:848
362 msgid "Send key combination"
363 msgstr ""
364
365 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
366 msgid "Leave fullscreen"
367 msgstr "フルスクリーンの解除"
368
369 #: ../src/virt-viewer-window.c:937
370 msgid "Ctrl+Alt"
371 msgstr ""
372
373 #: ../src/virt-viewer-window.c:940
374 #, c-format
375 msgid "(Press %s to release pointer)"
376 msgstr ""
377
378 #. translators:
379 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
380 #. <appname>"
381 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
382 #. Viewer"
383 #.
384 #: ../src/virt-viewer-window.c:951
385 #, c-format
386 msgid "%s%s%s - %s"
387 msgstr "%s%s%s - %s"
388
389 #. translators: <space>
390 #: ../src/virt-viewer-window.c:955
391 msgid " "
392 msgstr " "
393
394 #: ../src/virt-viewer.c:144
395 msgid "Waiting for guest domain to re-start"
396 msgstr "仮想マシンが再起動するのを待機中"
397
398 #: ../src/virt-viewer.c:308
399 #, c-format
400 msgid "Cannot determine the graphic type for the guest %s"
401 msgstr "仮想マシン %s のグラフィックの種類を決定できません"
402
403 #: ../src/virt-viewer.c:321
404 #, c-format
405 msgid "Cannot determine the graphic address for the guest %s"
406 msgstr "仮想マシン %s のグラフィックのアドレスを決定できません"
407
408 #: ../src/virt-viewer.c:344
409 #, c-format
410 msgid "Cannot determine the host for the guest %s"
411 msgstr "仮想マシン %s のホストを決定できません"
412
413 #: ../src/virt-viewer.c:474
414 msgid "Finding guest domain"
415 msgstr "仮想マシンを検索中"
416
417 #: ../src/virt-viewer.c:478
418 msgid "Waiting for guest domain to be created"
419 msgstr "仮想マシンが作成されるのを待機中"
420
421 #: ../src/virt-viewer.c:483
422 #, c-format
423 msgid "Cannot find guest domain %s"
424 msgstr "ゲスト %s が見付かりません"
425
426 #: ../src/virt-viewer.c:490
427 msgid "Checking guest domain status"
428 msgstr "仮想マシンの状態を確認中"
429
430 #: ../src/virt-viewer.c:497
431 msgid "Waiting for guest domain to start"
432 msgstr "ゲストドメインが開始するのを待機中"
433
434 #: ../src/virt-viewer.c:504
435 msgid "Waiting for guest domain to start server"
436 msgstr "ゲストドメインがサーバーを開始するのを待機中"
437
438 #: ../src/virt-viewer.c:624
439 #, c-format
440 msgid "Unable to connect to libvirt with URI %s"
441 msgstr "URI %s で libvirt に接続できません"
442
443 #: ../src/virt-viewer.c:625
444 msgid "[none]"
445 msgstr "[なし]"
446
447 #. * Local variables:
448 #. * c-indent-level: 4
449 #. * c-basic-offset: 4
450 #. * indent-tabs-mode: nil
451 #. * End:
452 #.
453 #: ../src/virt-viewer.xml.h:1
209454 msgid "Automatically resize"
210 msgstr "自動的にサイズ変更"
211
212 #: ../src/viewer.glade.h:2
455 msgstr "自動的に画面サイズを変更"
456
457 #: ../src/virt-viewer.xml.h:2
213458 msgid "Ctrl+Alt+F11"
214459 msgstr "Ctrl+Alt+F11"
215460
216 #: ../src/viewer.glade.h:3
461 #: ../src/virt-viewer.xml.h:3
217462 msgid "Ctrl+Alt+F12"
218463 msgstr "Ctrl+Alt+F12"
219464
220 #: ../src/viewer.glade.h:4
465 #: ../src/virt-viewer.xml.h:4
221466 msgid "Ctrl+Alt+F1_0"
222 msgstr "Ctrl+Alt+F1_0"
223
224 #: ../src/viewer.glade.h:5
467 msgstr "Ctrl+Alt+F10(_0)"
468
469 #: ../src/virt-viewer.xml.h:5
225470 msgid "Ctrl+Alt+F_1"
226 msgstr "Ctrl+Alt+F_1"
227
228 #: ../src/viewer.glade.h:6
471 msgstr "Ctrl+Alt+F1(_1)"
472
473 #: ../src/virt-viewer.xml.h:6
229474 msgid "Ctrl+Alt+F_2"
230 msgstr "Ctrl+Alt+F_2"
231
232 #: ../src/viewer.glade.h:7
475 msgstr "Ctrl+Alt+F2(_2)"
476
477 #: ../src/virt-viewer.xml.h:7
233478 msgid "Ctrl+Alt+F_3"
234 msgstr "Ctrl+Alt+F_3"
235
236 #: ../src/viewer.glade.h:8
479 msgstr "Ctrl+Alt+F3(_3)"
480
481 #: ../src/virt-viewer.xml.h:8
237482 msgid "Ctrl+Alt+F_4"
238 msgstr "Ctrl+Alt+F_4"
239
240 #: ../src/viewer.glade.h:9
483 msgstr "Ctrl+Alt+F4(_4)"
484
485 #: ../src/virt-viewer.xml.h:9
241486 msgid "Ctrl+Alt+F_5"
242 msgstr "Ctrl+Alt+F_5"
243
244 #: ../src/viewer.glade.h:10
487 msgstr "Ctrl+Alt+F5(_5)"
488
489 #: ../src/virt-viewer.xml.h:10
245490 msgid "Ctrl+Alt+F_6"
246 msgstr "Ctrl+Alt+F_6"
247
248 #: ../src/viewer.glade.h:11
491 msgstr "Ctrl+Alt+F6(_6)"
492
493 #: ../src/virt-viewer.xml.h:11
249494 msgid "Ctrl+Alt+F_7"
250 msgstr "Ctrl+Alt+F_7"
251
252 #: ../src/viewer.glade.h:12
495 msgstr "Ctrl+Alt+F7(_7)"
496
497 #: ../src/virt-viewer.xml.h:12
253498 msgid "Ctrl+Alt+F_8"
254 msgstr "Ctrl+Alt+F_8"
255
256 #: ../src/viewer.glade.h:13
499 msgstr "Ctrl+Alt+F8(_8)"
500
501 #: ../src/virt-viewer.xml.h:13
257502 msgid "Ctrl+Alt+F_9"
258 msgstr "Ctrl+Alt+F_9"
259
260 #: ../src/viewer.glade.h:14
503 msgstr "Ctrl+Alt+F9(_9)"
504
505 #: ../src/virt-viewer.xml.h:14
261506 msgid "Ctrl+Alt+_Backspace"
262 msgstr "Ctrl+Alt+_Backspace"
263
264 #: ../src/viewer.glade.h:15
507 msgstr "Ctrl+Alt+Backspace(_B)"
508
509 #: ../src/virt-viewer.xml.h:15
265510 msgid "Ctrl+Alt+_Del"
266 msgstr "Ctrl+Alt+_Del"
267
268 #: ../src/viewer.glade.h:16
511 msgstr "Ctrl+Alt+Del(_D)"
512
513 #: ../src/virt-viewer.xml.h:16
514 msgid "Displays"
515 msgstr "ディスプレイ"
516
517 #: ../src/virt-viewer.xml.h:17
269518 msgid "Full screen"
270519 msgstr "フルスクリーン"
271520
272 #: ../src/viewer.glade.h:17
521 #: ../src/virt-viewer.xml.h:18
522 msgid "Release cursor"
523 msgstr "カーソルの開放"
524
525 #: ../src/virt-viewer.xml.h:19
273526 msgid "Screenshot"
274 msgstr "スクリーンショット取得"
275
276 #: ../src/viewer.glade.h:18
527 msgstr "スクリーンショット"
528
529 #: ../src/virt-viewer.xml.h:20
530 msgid "Smartcard insertion"
531 msgstr "スマートカードの挿入"
532
533 #: ../src/virt-viewer.xml.h:21
534 msgid "Smartcard removal"
535 msgstr "スマートカードの抜き取り"
536
537 #: ../src/virt-viewer.xml.h:23
277538 msgid "_File"
278539 msgstr "ファイル(_F)"
279540
280 #: ../src/viewer.glade.h:19
541 #: ../src/virt-viewer.xml.h:24
281542 msgid "_Help"
282543 msgstr "ヘルプ(_H)"
283544
284 #: ../src/viewer.glade.h:20
545 #: ../src/virt-viewer.xml.h:25
285546 msgid "_PrintScreen"
286547 msgstr "PrintScreen(_P)"
287548
288 #: ../src/viewer.glade.h:21
549 #: ../src/virt-viewer.xml.h:26
289550 msgid "_Send key"
290 msgstr "キー送信(_S)"
291
292 #: ../src/viewer.glade.h:22
551 msgstr "キーを送信(_S)"
552
553 #: ../src/virt-viewer.xml.h:27
293554 msgid "_View"
294555 msgstr "表示(_V)"
295556
296 #: ../src/viewer.glade.h:23
297 msgid "gtk-about"
298 msgstr "gtk-about"
299
300 #: ../src/viewer.glade.h:24
301 msgid "gtk-quit"
302 msgstr "gtk-quit"
303
304 #: ../src/viewer.glade.h:25
305 msgid "page 1"
306 msgstr "ページ1"
307
308 #: ../src/viewer.glade.h:26
309 msgid "page 2"
310 msgstr "ページ2"
311
557 #: ../src/virt-viewer.xml.h:28
558 msgid "_Zoom"
559 msgstr "ズーム(_Z)"
+460
-219
po/kn.po less more
0 # SOME DESCRIPTIVE TITLE.
01 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
12 # This file is distributed under the same license as the PACKAGE package.
2 #
3 # Shankar Prasad <svenkate@redhat.com>, 2010.
3 #
4 # Translators:
5 # Shankar Prasad <svenkate@redhat.com>, 2010, 2012.
46 msgid ""
57 msgstr ""
6 "Project-Id-Version: \n"
8 "Project-Id-Version: virt-viewer\n"
79 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2010-01-28 10:17+0000\n"
9 "PO-Revision-Date: 2010-01-28 18:07+0530\n"
10 "Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
11 "Language-Team: kn-IN <>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/language/kn/)\n"
1214 "MIME-Version: 1.0\n"
1315 "Content-Type: text/plain; charset=UTF-8\n"
1416 "Content-Transfer-Encoding: 8bit\n"
15 "X-Generator: Lokalize 1.0\n"
16 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
18 #: ../src/main.c:34
19 #, c-format
20 msgid "%s version %s\n"
21 msgstr "%s ಆವೃತ್ತಿ %s\n"
22
23 #: ../src/main.c:52
17 "Language: kn\n"
18 "Plural-Forms: nplurals=1; plural=0\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "ಮೂಲ"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "ಬೈಂಡಿಂಗಿನ ಮೂಲ"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "ಗುರಿ"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "ಬೈಂಡಿಂಗಿನ ಗುರಿ"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "ಆಕರದ ಗುಣ"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "ಬೈಂಡ್‌ ಮಾಡಬೇಕಿರುವ ಮೂಲದ ಗುಣ"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "ಗುರಿಯ ಗುಣ"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "ಬೈಂಡ್‌ ಆಗಬೇಕಿರುವ ಗುರಿಯ ಗುಣ"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "ಗುರುತುಗಳು"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "ಬೈಂಡಿಂಗ್ ಫ್ಲಾಗ್‌ಗಳು"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "ದೂರದ-ವೀಕ್ಷಕದ ಆವೃತ್ತಿ %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2484 msgid "Run '"
2585 msgstr "ಚಲಾಯಿಸಿ '"
2686
27 #: ../src/main.c:55
28 msgid "display version information"
29 msgstr "ಆವೃತ್ತಿಯ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು"
30
31 #: ../src/main.c:57
32 msgid "display verbose information"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "ಪ್ರದರ್ಶನ ಆವೃತ್ತಿ ಮಾಹಿತಿ"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
3393 msgstr "ವರ್ಬೋಸ್ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು"
3494
35 #: ../src/main.c:59
36 msgid "direct connection with no automatic tunnels"
37 msgstr "ಯಾವುದೆ ಸ್ವಯಂಚಾಲಿತ ಟನಲ್‌ಗಳಿಲ್ಲದೆ ನೇರ ಸಂಪರ್ಕ"
38
39 #: ../src/main.c:61
40 msgid "connect to hypervisor"
41 msgstr "ಹೈಪರ್ವೈಸರ್ ಆಗಿ ಮಾರ್ಪಡಿಸು"
42
43 #: ../src/main.c:63
44 msgid "wait for domain to start"
45 msgstr "ಡೊಮೈನ್ ಆರಂಭಗೊಳ್ಳುವವರೆಗೂ ನಿರೀಕ್ಷಿಸು"
46
47 #: ../src/main.c:65
48 msgid "reconnect to domain upon restart"
49 msgstr "ಡೊಮೈನ್ ಮರಳಿ ಆರಂಭಗೊಂಡಾಗ ಮರಳಿ ಸಂಪರ್ಕಸಾಧಿಸು"
50
51 #: ../src/main.c:67
52 msgid "display debugging information"
53 msgstr "ದೋಷನಿವಾರಣೆಯ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು"
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "ಯಾವುದೆ ಸ್ವಯಂಚಾಲಿತ ಟನಲ್‌ಗಳ ನೇರವಾದ ಸಂಪರ್ಕ "
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "ಕಿಟಕಿಯ ಗಾತ್ರ ಬದಲಾವಣೆ, ಪ್ರತಿಶತದಲ್ಲಿ"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "ದೋಷನಿದಾನ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸು"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "ಸ್ಪೈಸ್ ನಿಯಂತ್ರಣ ವ್ಯವಹಾರವನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಪರ್ಕವನ್ನು ತೆರೆ"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
54118
55119 #. Setup command line options
56 #: ../src/main.c:79
57 msgid "- Virtual machine graphical console"
58 msgstr "- ವರ್ಚುವಲ್ ಗಣಕದ ಚಿತ್ರಾತ್ಮಕ ಕನ್ಸೋಲ್"
59
60 #: ../src/main.c:95
61 #, c-format
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- ದೂರದ ವೀಕ್ಷಕದ ಆವೃತ್ತಿ"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "ಗಾತ್ರ ಬದಲಾವಣೆ ಮಟ್ಟವು 10-200ರ ನಡುವೆ ಇರಬೇಕು\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "ಸಂಪರ್ಕವನ್ನು ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "ನಿಯಂತ್ರಕದಿಂದ ಪ್ರದರ್ಶಕವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "ನಿಯಂತ್ರಕದ ಸಂಪರ್ಕವು ವಿಫಲಗೊಂಡಿದೆ: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "ಸ್ಪೈಸ್ ಅಧಿವೇಶನವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "ಸ್ಪೈಸ್ ಅಧಿವೇಶನವನ್ನು ಸಿದ್ಧಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "URI ಇಂದ ಸಂಪರ್ಕದ ಬಗೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "ಈ ಬಗೆಗಾಗಿ ಒಂದು ಅಧಿವೇಶನವನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ:%s"
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "GTK-VNC, SPICE-GTK ಮತ್ತು libvirt ನೊಂದಿಗೆ ನಿರ್ಮಿಸಲಾದ ದೂರಸ್ಥ ಗಣಕತೆರೆ ಕ್ಲೈಂಟ್"
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr "ಗ್ಲೇಡ್ ಕುರಿತು"
182
183 #: ../src/virt-viewer-about.xml.h:3
62184 msgid ""
63 "\n"
64 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
65 "\n"
66 "%s\n"
67 "\n"
68 msgstr ""
69 "\n"
70 "ಬಳಕೆ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
71 "\n"
72 "%s\n"
73 "\n"
74
75 #: ../src/viewer.c:878
76 #, c-format
77 msgid "Cannot determine the VNC port for the guest %s"
78 msgstr "ಅತಿಥಿ %s ಗಾಗಿನ VNC ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
79
80 #: ../src/viewer.c:884
81 #, c-format
82 msgid "Cannot determine the VNC host for the guest %s"
83 msgstr "ಅತಿಥೇಯ %s ಗಾಗಿನ VNC ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
84
85 #: ../src/viewer.c:984
86 #, c-format
87 msgid "Unable to connect to the VNC server %s"
88 msgstr "VNC ಪರಿಚಾರಕ %s ದೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ "
89
90 #: ../src/viewer.c:1001
91 #, c-format
92 msgid ""
93 "Unable to authenticate with VNC server at %s: %s\n"
94 "Retry connection again?"
95 msgstr ""
96 "%s ದಲ್ಲಿ VNC ಪರಿಚಾರಕವನ್ನು ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s\n"
97 "ಸಂಪರ್ಕವನ್ನು ಇನ್ನೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಬೇಕೆ?"
98
99 #: ../src/viewer.c:1019
100 #, c-format
101 msgid ""
102 "Unable to authenticate with VNC server at %s\n"
103 "Unsupported authentication type %d"
104 msgstr ""
105 "%s ದಲ್ಲಿ VNC ಪರಿಚಾರಕವನ್ನು ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ\n"
106 "ದೃಢೀಕರಣದ ಬಗೆ %d ಗೆ ಬೆಂಬಲವಿಲ್ಲ"
107
108 #: ../src/viewer.c:1111
109 #, c-format
110 msgid "Cannot find guest domain %s"
111 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ %s ಕಂಡುಬಂದಿಲ್ಲ"
112
113 #: ../src/viewer.c:1213
114 #, c-format
115 msgid "Unable to connect to libvirt with URI %s"
116 msgstr "URI %s ಯೊಂದಿಗೆ libvirt ಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
117
118 #: ../src/viewer.c:1214
119 msgid "[none]"
120 msgstr "[ಯಾವುದೂ ಇಲ್ಲ]"
121
122 #.
123 #. * Local variables:
124 #. * c-indent-level: 8
125 #. * c-basic-offset: 8
126 #. * tab-width: 8
127 #. * End:
128 #.
129 #: ../src/about.glade.h:1
130 msgid "A remote desktop client built with GTK-VNC and libvirt"
131 msgstr "GTK-VNC ಹಾಗು libvirt ಯೊಂದಿಗೆ ನಿರ್ಮಿತಗೊಂಡ ಒಂದು ದೂರಸ್ಥ ಗಣಕತೆರೆ"
132
133 #: ../src/about.glade.h:2
134 msgid "About Glade"
135 msgstr "ಗ್ಲೇಡ್‌ನ ಕುರಿತು"
136
137 #: ../src/about.glade.h:3
138 msgid ""
139 "Copyright 2007-2008 Daniel P. Berrange\n"
140 "Copyright 2007-2008 Red Hat, Inc."
141 msgstr ""
142 "ಹಕ್ಕು 2007-2008 Daniel P. Berrange\n"
143 "ಹಕ್ಕು 2007-2008 Red Hat, Inc."
144
145 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "ಹಕ್ಕು (C) 2007-2012 Daniel P. Berrange\nಹಕ್ಕು (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
146190 msgid "The Fedora Translation Team"
147 msgstr "ಫೆಡೋರ ಅನುವಾದ ತಂಡ"
148
149 #: ../src/about.glade.h:6
191 msgstr "ಫೆಡೋರ ಟ್ರಾನ್ಸಲೇಶನ್ ಟೀಮ್"
192
193 #: ../src/virt-viewer-about.xml.h:6
150194 msgid ""
151195 "This program is free software; you can redistribute it and/or modify\n"
152196 "it under the terms of the GNU General Public License as published by\n"
161205 "You should have received a copy of the GNU General Public License\n"
162206 "along with this program; if not, write to the Free Software\n"
163207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
164 msgstr ""
165 "ಈ ಪ್ರೊಗ್ರಾಮ್ ಉಚಿತ ತಂತ್ರಾಂಶವಾಗಿದೆ; ಇದನ್ನು ನೀವು ಮರುವಿತರಿಸಬಹುದಾಗಿರುತ್ತದೆ "
166 "ಹಾಗು/ಅಥವ \n"
167 "ಫ್ರೀ ಸಾಫ್ಟೇವೇರ್ ಫೌಂಡೇಶನ್‌ನಿಂದ ಪ್ರಕಟಿಸಲಾದ ಆವೃತ್ತಿ 2, ಅಥವ ನಂತರದ "
168 "ಆವೃತ್ತಿಯ(ನಿಮ್ಮ ಇಚ್ಛೆಗೆ ಬಿಟ್ಟಿದ್ದು)\n"
169 "ಲೈಸೆನ್ಸಿನಲ್ಲಿನ GNU ಜನರಲ್ ಪಬ್ಲಿಕ್ ಲೈಸೆನ್ಸಿನ ನಿಯಮಗಳಿಗನುಗುಣವಾಗಿ ನೀವಿದನ್ನು "
170 "ಮಾರ್ಪಡಿಸಬಹುದಾಗಿರುತ್ತದೆ. \n"
171 "\n"
172 "ಈ ಪ್ರೊಗ್ರಾಮ್ ಒಂದು ಉಪಯುಕ್ತವಾದ ತಂತ್ರಾಂಶವಾಗಬಹುದೆಂಬ ಆಶಯದಿಂದ ವಿತರಿಸಲಾಗಿದೆ,\n"
173 "ಆದರೆ ಇದಕ್ಕೆ ಯಾವುದೆ ಯಾವುದೆ ವ್ಯಾರಂಟಿ ಇರುವುದಿಲ್ಲ; ಯಾವುದೆ ವಾಣಿಜ್ಯಾತ್ಮಕ ಅಥವ "
174 "ಯಾವುದೆ\n"
175 "ನಿರ್ದಿಷ್ಟ ಉದ್ದೇಶಗಳಿಗೆ ಬೆಂಬಲ ಸೂಚಿಸುವ ಯಾವುದೆ ಸೂಚ್ಯ ವಾರಂಟಿಯನ್ನೂ ಸಹ "
176 "ಒದಗಿಸುವುದಿಲ್ಲ.\n"
177 "ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ GNU ಜನರಲ್ ಪಬ್ಲಿಕ್ ಲೈಸೆನ್ಸನ್ನು ನೋಡಿ.\n"
178 "\n"
179 "ಈ ಪ್ರೊಗ್ರಾಮಿನೊಂದಿಗೆ ನಿಮಗೆ GNU ಜನರಲ್ ಪಬ್ಲಿಕ್ ಲೈಸೆನ್ಸಿನ ಒಂದು ಪ್ರತಿಯನ್ನೂ ಸಹ "
180 "ಒದಗಿಸಿರಬೇಕು,\n"
181 "ಇಲ್ಲದೆ ಹೋದಲ್ಲಿ ಈ ವಿಳಾಸಕ್ಕೆ ಬರೆಯಿರಿ: Free Software\n"
182 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
183
184 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
185211 msgid "virt-manager.org"
186212 msgstr "virt-manager.org"
187213
188 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "ಇದು ಕೊನೆಯ ಗೋಚರಿಸುವ ಪ್ರದರ್ಶಕ. ನೀವು ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "%d ಪ್ರದರ್ಶಕಕ್ಕಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "%s ಅತಿಥಿಗಾಗಿ ಗೊತ್ತಿರದ ಗ್ರಾಫಿಕ್ ಬಗೆ"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh ಗೆ ಸಂಪರ್ಕವು ವಿಫಲಗೊಂಡಿದೆ."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "ಚಾನಲ್‌ನೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ, SSH ಅನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "ಚಾನಲ್‌ನೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸುವುದನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "ಗ್ರಾಫಿಕ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸಲಾಗುತ್ತಿದೆ"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "ಗ್ರಾಫಿಕ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿದೆ"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "%s ಎಂಬ ಗ್ರಾಫಿಕ್ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿದೆ"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s ನಲ್ಲಿನ ದೂರದ ಗಣಕತೆರೆ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s\nಸಂಪರ್ಕಕ್ಕಾಗಿ ಇನ್ನೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಬೇಕೆ?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "ದೂರದ ಗಣಕತೆರೆ ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "USB ಮರುನಿರ್ದೇಶನ ದೋಷ: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
189281 msgid "Authentication required"
190282 msgstr "ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ"
191283
192 #: ../src/auth.glade.h:2
284 #: ../src/virt-viewer-auth.xml.h:2
193285 msgid "Password:"
194286 msgstr "ಗುಪ್ತಪದ:"
195287
196 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
197289 msgid "Username:"
198290 msgstr "ಬಳಕೆದಾರ ಹೆಸರು:"
199291
200 #: ../src/auth.glade.h:4
201 msgid "gtk-cancel"
202 msgstr "gtk-cancel"
203
204 #: ../src/auth.glade.h:5
205 msgid "gtk-ok"
206 msgstr "gtk-ok"
207
208 #: ../src/auth.glade.h:6
292 #: ../src/virt-viewer-auth.xml.h:4
209293 msgid "label"
210294 msgstr "ಲೇಬಲ್"
211295
212 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s ಆವೃತ್ತಿ %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಥಳೀಯ ಪ್ರದರ್ಶಕಕ್ಕೆ ಲಗತ್ತಿಸು"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "ಹೈಪರ್ವೈಸರಿನೊಂದಿಗೆ ಸಂಪರ್ಕ ಕಲ್ಪಿಸು"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "ಡೊಮೈನ್ ಆರಂಭಗೊಳ್ಳುವವರೆಗೆ ನಿರೀಕ್ಷಿಸು"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "ಮರಳಿ ಆರಂಭಗೊಂಡ ನಂತರ ಮರಳಿ ಸಂಪರ್ಕ ಜೋಡಿಸು"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "ಪೂರ್ಣ ತೆರೆ ಕ್ರಮದಲ್ಲಿ ತೆರೆ"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Virt Viewer"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- ವರ್ಚುವಲ್ ಗಣಕದ ಚಿತ್ರಾತ್ಮಕ ಕನ್ಸೋಲ್"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nಬಳಕೆ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "ಮರುನಿರ್ದೇಶನಕ್ಕಾಗಿ USB ಸಾಧನಗಳನ್ನು ಆರಿಸಿ"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "ಬೆಂಬಲವಿರದ ದೃಢೀಕರಣದ ಬಗೆ %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "ಸಂಪರ್ಕ ಕಡಿದುಹಾಕು"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB ಸಾಧನವನ್ನು ಆರಿಸುವಿಕೆ"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "ಪೂರ್ಣತೆರೆಯಿಂದ ನಿರ್ಗಮಿಸು"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಮರಳಿ-ಆರಂಭಗೊಳ್ಳಲು ಕಾಯಲಾಗುತ್ತಿದೆ"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "%s ಎಂಬ ಅತಿಥಿಗಾಗಿ ಗ್ರಾಫಿಕ್‌ನ ಬಗೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "%s ಎಂಬ ಅತಿಥಿಗಾಗಿ ಗ್ರಾಫಿಕ್‌ನ ವಿಳಾಸವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "%s ಎಂಬ ಅತಿಥಿಗಾಗಿ ಆತಿಥೇಯವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತಿದೆ"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ನಿರ್ಮಾಣಗೊಳ್ಳಲು ಕಾಯಲಾಗುತ್ತಿದೆ"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ %s ಕಂಡುಬಂದಿಲ್ಲ"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಮರಳಿ-ಆರಂಭಗೊಳ್ಳಲು ಕಾಯಲಾಗುತ್ತಿದೆ"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "ಅತಿಥಿ ಡೊಮೈನ್ ಪೂರೈಕೆಗಣಕವನ್ನು ಆರಂಭಿಸುವವರೆಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "URI %s ಯೊಂದಿಗೆ libvirt ಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[ಯಾವುದೂ ಇಲ್ಲ]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
213452 msgid "Automatically resize"
214 msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಗಾತ್ರ ಬದಲಿಸು"
215
216 #: ../src/viewer.glade.h:2
453 msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಗಾತ್ರಿಸು"
454
455 #: ../src/virt-viewer.xml.h:2
217456 msgid "Ctrl+Alt+F11"
218457 msgstr "Ctrl+Alt+F11"
219458
220 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
221460 msgid "Ctrl+Alt+F12"
222461 msgstr "Ctrl+Alt+F12"
223462
224 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
225464 msgid "Ctrl+Alt+F1_0"
226465 msgstr "Ctrl+Alt+F1_0"
227466
228 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
229468 msgid "Ctrl+Alt+F_1"
230469 msgstr "Ctrl+Alt+F_1"
231470
232 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
233472 msgid "Ctrl+Alt+F_2"
234473 msgstr "Ctrl+Alt+F_2"
235474
236 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
237476 msgid "Ctrl+Alt+F_3"
238477 msgstr "Ctrl+Alt+F_3"
239478
240 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
241480 msgid "Ctrl+Alt+F_4"
242481 msgstr "Ctrl+Alt+F_4"
243482
244 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
245484 msgid "Ctrl+Alt+F_5"
246485 msgstr "Ctrl+Alt+F_5"
247486
248 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
249488 msgid "Ctrl+Alt+F_6"
250489 msgstr "Ctrl+Alt+F_6"
251490
252 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
253492 msgid "Ctrl+Alt+F_7"
254493 msgstr "Ctrl+Alt+F_7"
255494
256 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
257496 msgid "Ctrl+Alt+F_8"
258497 msgstr "Ctrl+Alt+F_8"
259498
260 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
261500 msgid "Ctrl+Alt+F_9"
262501 msgstr "Ctrl+Alt+F_9"
263502
264 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
265504 msgid "Ctrl+Alt+_Backspace"
266505 msgstr "Ctrl+Alt+_Backspace"
267506
268 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
269508 msgid "Ctrl+Alt+_Del"
270509 msgstr "Ctrl+Alt+_Del"
271510
272 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "ಪ್ರದರ್ಶಕಗಳು"
514
515 #: ../src/virt-viewer.xml.h:17
273516 msgid "Full screen"
274 msgstr "ಪೂರ್ಣ ಪರದೆ"
275
276 #: ../src/viewer.glade.h:17
517 msgstr "ಪೂರ್ಣ ತೆರೆ"
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "ತೆರೆಸೂಚಕವನ್ನು ಮುಕ್ತಗೊಳಿಸು"
522
523 #: ../src/virt-viewer.xml.h:19
277524 msgid "Screenshot"
278525 msgstr "ತೆರೆಚಿತ್ರ"
279526
280 #: ../src/viewer.glade.h:18
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "ಸ್ಮಾರ್ಟ್ ಕಾರ್ಡ್ ಸೇರಿಸುವಿಕೆ"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "ಸ್ಮಾರ್ಟ್ ಕಾರ್ಡ್ ತೆಗೆದುಹಾಕುವಿಕೆ"
534
535 #: ../src/virt-viewer.xml.h:23
281536 msgid "_File"
282 msgstr "ಕಡತ(_F)"
283
284 #: ../src/viewer.glade.h:19
537 msgstr "ಕಡತ (_F)"
538
539 #: ../src/virt-viewer.xml.h:24
285540 msgid "_Help"
286 msgstr "ನೆರವು(_H)"
287
288 #: ../src/viewer.glade.h:20
541 msgstr "ನೆರವು (_H)"
542
543 #: ../src/virt-viewer.xml.h:25
289544 msgid "_PrintScreen"
290 msgstr "ತೆರೆಯನ್ನು ಮುದ್ರಿಸು(_P)"
291
292 #: ../src/viewer.glade.h:21
545 msgstr "ತೆರೆಯನ್ನು ಮುದ್ರಿಸು (_P)"
546
547 #: ../src/virt-viewer.xml.h:26
293548 msgid "_Send key"
294 msgstr "ಕಳುಹಿಸುವ ಕೀಲಿ(_S)"
295
296 #: ../src/viewer.glade.h:22
549 msgstr "ಕಳುಹಿಸುವ ಕೀಲಿ (_S)"
550
551 #: ../src/virt-viewer.xml.h:27
297552 msgid "_View"
298 msgstr "ನೋಟ(_V)"
299
300 #: ../src/viewer.glade.h:23
301 msgid "gtk-about"
302 msgstr "gtk-about"
303
304 #: ../src/viewer.glade.h:24
305 msgid "gtk-quit"
306 msgstr "gtk-quit"
307
308 #: ../src/viewer.glade.h:25
309 msgid "page 1"
310 msgstr "ಪುಟ 1"
311
312 #: ../src/viewer.glade.h:26
313 msgid "page 2"
314 msgstr "ಪುಟ 2"
315
316
553 msgstr "ನೋಟ (_V)"
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "ಹಿಗ್ಗಿಸು/ಕುಗ್ಗಿಸು (_Z)"
+471
-225
po/ko.po less more
0 # translation of virt-viewer.default.ko.po to Korean
1 # Korean translations for PACKAGE package.
2 # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
32 # This file is distributed under the same license as the PACKAGE package.
4 #
3 #
4 # Translators:
55 # Automatically generated, 2010.
6 # Eun-Ju Kim <eukim@redhat.com>, 2012.
67 # Hyunsok Oh <hoh@redhat.com>, 2010.
78 msgid ""
89 msgstr ""
9 "Project-Id-Version: virt-viewer.default.ko\n"
10 "Project-Id-Version: virt-viewer\n"
1011 "Report-Msgid-Bugs-To: \n"
11 "POT-Creation-Date: 2010-03-31 18:50+0000\n"
12 "PO-Revision-Date: 2010-04-01 08:59+1000\n"
13 "Last-Translator: Hyunsok Oh <hoh@redhat.com>\n"
14 "Language-Team: Korean <ko@li.org>\n"
12 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
13 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
14 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
15 "Language-Team: Korean (http://www.transifex.net/projects/p/fedora/language/ko/)\n"
1516 "MIME-Version: 1.0\n"
1617 "Content-Type: text/plain; charset=UTF-8\n"
1718 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=1; plural=0;\n"
19 "X-Generator: KBabel 1.11.4\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s 버전 %s\n"
25
26 #: ../src/main.c:52
19 "Language: ko\n"
20 "Plural-Forms: nplurals=1; plural=0\n"
21
22 #: ../src/gbinding.c:637
23 msgid "Source"
24 msgstr "소스 "
25
26 #: ../src/gbinding.c:638
27 msgid "The source of the binding"
28 msgstr "바인딩 소스 "
29
30 #: ../src/gbinding.c:652
31 msgid "Target"
32 msgstr "대상 "
33
34 #: ../src/gbinding.c:653
35 msgid "The target of the binding"
36 msgstr "바인딩 대상 "
37
38 #: ../src/gbinding.c:668
39 msgid "Source Property"
40 msgstr "소스 속성 "
41
42 #: ../src/gbinding.c:669
43 msgid "The property on the source to bind"
44 msgstr "바인드할 소스 속성 "
45
46 #: ../src/gbinding.c:684
47 msgid "Target Property"
48 msgstr "대상 속성 "
49
50 #: ../src/gbinding.c:685
51 msgid "The property on the target to bind"
52 msgstr "바인드할 대상 속성 "
53
54 #: ../src/gbinding.c:699
55 msgid "Flags"
56 msgstr "플래그 "
57
58 #: ../src/gbinding.c:700
59 msgid "The binding flags"
60 msgstr "바인딩 플래그 "
61
62 #: ../src/remote-viewer-main.c:47
63 #, c-format
64 msgid "remote-viewer version %s\n"
65 msgstr "remote-viewer 버전 %s\n"
66
67 #: ../src/remote-viewer-main.c:69
68 #, c-format
69 msgid "Invalid full-screen argument: %s"
70 msgstr ""
71
72 #. Create the widgets
73 #: ../src/remote-viewer-main.c:104
74 msgid "Connection details"
75 msgstr ""
76
77 #: ../src/remote-viewer-main.c:119
78 msgid "URL:"
79 msgstr ""
80
81 #: ../src/remote-viewer-main.c:127
82 msgid "Recent connections:"
83 msgstr ""
84
85 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2786 msgid "Run '"
2887 msgstr "실행 "
2988
30 #: ../src/main.c:55
31 msgid "display version information"
32 msgstr "버전 정보 표시"
33
34 #: ../src/main.c:57
35 msgid "display verbose information"
36 msgstr "자세한 정보 표시"
37
38 #: ../src/main.c:59
39 msgid "direct connection with no automatic tunnels"
40 msgstr "자동 터널링 없이 직접 연결"
41
42 #: ../src/main.c:61
43 msgid "connect to hypervisor"
44 msgstr "하이퍼바이저에 연결"
45
46 #: ../src/main.c:63
47 msgid "wait for domain to start"
48 msgstr "도메인이 시작되기를 기다림"
49
50 #: ../src/main.c:65
51 msgid "reconnect to domain upon restart"
52 msgstr "재시작시 도메인에 재연결"
53
54 #: ../src/main.c:67
55 msgid "display debugging information"
56 msgstr "디버깅 정보 표시"
89 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
90 msgid "Display version information"
91 msgstr "버전 정보 보기 "
92
93 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
94 msgid "Display verbose information"
95 msgstr "상세 정보 보기 "
96
97 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
98 msgid "Direct connection with no automatic tunnels"
99 msgstr "자동으로 터널링하지 않고 직접 연결 "
100
101 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
102 msgid "Zoom level of window, in percentage"
103 msgstr "윈도우의 줌 레벨 (백분율) "
104
105 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
106 msgid "Display debugging information"
107 msgstr "디버그 정보 보기 "
108
109 #: ../src/remote-viewer-main.c:219
110 msgid "Open in full screen mode (=<auto-conf>)"
111 msgstr ""
112
113 #: ../src/remote-viewer-main.c:222
114 msgid "Open connection using Spice controller communication"
115 msgstr "Spice 컨트롤러 통신을 사용하여 연결을 오픈합니다 "
116
117 #: ../src/remote-viewer-main.c:249
118 msgid "Remote Viewer"
119 msgstr ""
57120
58121 #. Setup command line options
59 #: ../src/main.c:79
60 msgid "- Virtual machine graphical console"
61 msgstr "- 가상 머신 그래픽 콘솔"
62
63 #: ../src/main.c:95
64 #, c-format
122 #: ../src/remote-viewer-main.c:252
123 msgid "- Remote viewer client"
124 msgstr "- 원격 뷰어 클라이언트 "
125
126 #: ../src/remote-viewer-main.c:275
127 #, c-format
128 msgid "Error: extra arguments given while using Spice controller\n"
129 msgstr ""
130
131 #: ../src/remote-viewer-main.c:284
132 #, c-format
133 msgid "Error: can't handle multiple URIs\n"
134 msgstr ""
135
136 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
137 #, c-format
138 msgid "Zoom level must be within 10-200\n"
139 msgstr "줌 레벨은 10-200 범위 내에 있어야 합니다\n"
140
141 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
142 msgid "Failed to initiate connection"
143 msgstr "연결 초기화 실패 "
144
145 #: ../src/remote-viewer.c:250
146 msgid "Display disabled by controller"
147 msgstr "컨트롤러에 의해 디스플레이가 비활성화됨 "
148
149 #: ../src/remote-viewer.c:697
150 #, c-format
151 msgid "Controller connection failed: %s"
152 msgstr "컨트롤러 연결에 실패함: %s"
153
154 #: ../src/remote-viewer.c:750
155 msgid "Couldn't create a Spice session"
156 msgstr "Spice 세션을 생성할 수 없음 "
157
158 #: ../src/remote-viewer.c:764
159 msgid "Setting up Spice session..."
160 msgstr "Spice 세션 설정 중..."
161
162 #: ../src/remote-viewer.c:774
163 msgid "Cannot determine the connection type from URI"
164 msgstr "URI에서 연결 유형을 지정할 수 없음 "
165
166 #: ../src/remote-viewer.c:779
167 #, c-format
168 msgid "Couldn't create a session for this type: %s"
169 msgstr "이러한 유형의 세션을 생성할 수 없음: %s"
170
171 #. * Local variables:
172 #. * c-indent-level: 4
173 #. * c-basic-offset: 4
174 #. * indent-tabs-mode: nil
175 #. * End:
176 #.
177 #: ../src/virt-viewer-about.xml.h:1
178 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
179 msgstr "GTK-VNC, SPICE-GTK, libvirt로 빌드된 원격 데스크톱 클라이언트 "
180
181 #: ../src/virt-viewer-about.xml.h:2
182 msgid "About Glade"
183 msgstr "Glade에 관하여 "
184
185 #: ../src/virt-viewer-about.xml.h:3
65186 msgid ""
66 "\n"
67 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
68 "\n"
69 "%s\n"
70 "\n"
71 msgstr ""
72 "\n"
73 "사용법: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
74 "\n"
75 "%s\n"
76 "\n"
77
78 #: ../src/viewer.c:878
79 #, c-format
80 msgid "Cannot determine the VNC port for the guest %s"
81 msgstr "게스트 %s에 대한 VNC 포트를 결정할 수 없습니다"
82
83 #: ../src/viewer.c:884
84 #, c-format
85 msgid "Cannot determine the VNC host for the guest %s"
86 msgstr "게스트 %s에 대한 VNC 포트를 결정할 수 없습니다"
87
88 #: ../src/viewer.c:984
89 #, c-format
90 msgid "Unable to connect to the VNC server %s"
91 msgstr "VNC 서버 %s에 연결할 수 없습니다"
92
93 #: ../src/viewer.c:1001
94 #, c-format
95 msgid ""
96 "Unable to authenticate with VNC server at %s: %s\n"
97 "Retry connection again?"
98 msgstr ""
99 "%s: %s에 있는 VNC 서버에서 인증을 받을 수 없습니다\n"
100 "연결을 재시도하시겠습니까?"
101
102 #: ../src/viewer.c:1019
103 #, c-format
104 msgid ""
105 "Unable to authenticate with VNC server at %s\n"
106 "Unsupported authentication type %d"
107 msgstr ""
108 "%s에 있는 VNC서버에서 인증을 받을 수 없습니다\n"
109 "인증 방식 %d를 지원하지 않습니다"
110
111 #: ../src/viewer.c:1111
112 #, c-format
113 msgid "Cannot find guest domain %s"
114 msgstr "게스트 도메인 %s를 찾을 수 없습니다"
115
116 #: ../src/viewer.c:1213
117 #, c-format
118 msgid "Unable to connect to libvirt with URI %s"
119 msgstr "URI %s로 libvirt에 연결할 수 없습니다"
120
121 #: ../src/viewer.c:1214
122 msgid "[none]"
123 msgstr "[없음]"
124
125 #.
126 #. * Local variables:
127 #. * c-indent-level: 8
128 #. * c-basic-offset: 8
129 #. * tab-width: 8
130 #. * End:
131 #.
132 #: ../src/about.glade.h:1
133 msgid "A remote desktop client built with GTK-VNC and libvirt"
134 msgstr "GTK-VNC와 libvirt로 만들어진 원격 데스크탑 클라이언트"
135
136 #: ../src/about.glade.h:2
137 msgid "About Glade"
138 msgstr "Glade에 관하여"
139
140 #: ../src/about.glade.h:3
141 msgid ""
142 "Copyright 2007-2008 Daniel P. Berrange\n"
143 "Copyright 2007-2008 Red Hat, Inc."
144 msgstr ""
145 "Copyright 2007-2008 Daniel P. Berrange\n"
146 "Copyright 2007-2008 Red Hat, Inc."
147
148 #: ../src/about.glade.h:5
187 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
188 "Copyright (C) 2007-2012 Red Hat, Inc."
189 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
190
191 #: ../src/virt-viewer-about.xml.h:5
149192 msgid "The Fedora Translation Team"
150 msgstr "페도라 번역 팀"
151
152 #: ../src/about.glade.h:6
193 msgstr "Fedora 번역팀 "
194
195 #: ../src/virt-viewer-about.xml.h:6
153196 msgid ""
154197 "This program is free software; you can redistribute it and/or modify\n"
155198 "it under the terms of the GNU General Public License as published by\n"
164207 "You should have received a copy of the GNU General Public License\n"
165208 "along with this program; if not, write to the Free Software\n"
166209 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
167 msgstr ""
168 "This program is free software; you can redistribute it and/or modify\n"
169 "it under the terms of the GNU General Public License as published by\n"
170 "the Free Software Foundation; either version 2 of the License, or\n"
171 "(at your option) any later version.\n"
172 "\n"
173 "This program is distributed in the hope that it will be useful,\n"
174 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
175 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
176 "GNU General Public License for more details.\n"
177 "\n"
178 "You should have received a copy of the GNU General Public License\n"
179 "along with this program; if not, write to the Free Software\n"
180 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
181
182 #: ../src/about.glade.h:20
210 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"
211
212 #: ../src/virt-viewer-about.xml.h:20
183213 msgid "virt-manager.org"
184214 msgstr "virt-manager.org"
185215
186 #: ../src/auth.glade.h:1
216 #: ../src/virt-viewer-app.c:284
217 msgid "This is the last visible display. Do you want to quit?"
218 msgstr "이것이 볼 수 있는 마지막 디스플레이 화면입니다. 정말로 종료하시겠습니까? "
219
220 #: ../src/virt-viewer-app.c:624
221 #, c-format
222 msgid "Waiting for display %d..."
223 msgstr "디스플레이 %d를 기다리는 중..."
224
225 #: ../src/virt-viewer-app.c:707
226 #, c-format
227 msgid "Unknown graphic type for the guest %s"
228 msgstr "게스트 %s의 그래픽 유형을 알 수 없습니다 "
229
230 #: ../src/virt-viewer-app.c:782
231 msgid "Connect to ssh failed."
232 msgstr "ssh 연결을 실패했습니다. "
233
234 #: ../src/virt-viewer-app.c:784
235 msgid "Can't connect to channel, SSH only supported."
236 msgstr "채널에 연결할 수 없습니다, SSH만 지원됩니다. "
237
238 #: ../src/virt-viewer-app.c:796
239 msgid "Connect to channel unsupported."
240 msgstr "지원되지 않는 채널에 연결합니다. "
241
242 #: ../src/virt-viewer-app.c:876
243 msgid "Connecting to graphic server"
244 msgstr "그래픽 서버에 연결 중 "
245
246 #: ../src/virt-viewer-app.c:1006
247 msgid "Guest domain has shutdown"
248 msgstr "게스트 도메인이 종료되었습니다 "
249
250 #: ../src/virt-viewer-app.c:1056
251 msgid "Connected to graphic server"
252 msgstr "그래픽 서버에 연결 "
253
254 #: ../src/virt-viewer-app.c:1082
255 #, c-format
256 msgid "Unable to connect to the graphic server %s"
257 msgstr "그래픽 서버 %s에 연결할 수 없음 "
258
259 #: ../src/virt-viewer-app.c:1111
260 #, c-format
261 msgid ""
262 "Unable to authenticate with remote desktop server at %s: %s\n"
263 "Retry connection again?"
264 msgstr "%s의 원격 데스크톱 서버에 인증할 수 없습니다: %s\n연결을 다시 시도 하시겠습니까? "
265
266 #: ../src/virt-viewer-app.c:1131
267 #, c-format
268 msgid "Unable to authenticate with remote desktop server: %s"
269 msgstr "원격 데스크탑 서버로 인증할 수 없음: %s"
270
271 #: ../src/virt-viewer-app.c:1139
272 #, c-format
273 msgid "USB redirection error: %s"
274 msgstr "USB 리디렉션 오류: %s"
275
276 #. * Local variables:
277 #. * c-indent-level: 4
278 #. * c-basic-offset: 4
279 #. * indent-tabs-mode: nil
280 #. * End:
281 #.
282 #: ../src/virt-viewer-auth.xml.h:1
187283 msgid "Authentication required"
188 msgstr "인증이 필요합니다"
189
190 #: ../src/auth.glade.h:2
284 msgstr "인증이 필요함 "
285
286 #: ../src/virt-viewer-auth.xml.h:2
191287 msgid "Password:"
192 msgstr "암호:"
193
194 #: ../src/auth.glade.h:3
288 msgstr "암호: "
289
290 #: ../src/virt-viewer-auth.xml.h:3
195291 msgid "Username:"
196 msgstr "사용자명:"
197
198 #: ../src/auth.glade.h:4
199 msgid "gtk-cancel"
200 msgstr "gtk-cancel"
201
202 #: ../src/auth.glade.h:5
203 msgid "gtk-ok"
204 msgstr "gtk-ok"
205
206 #: ../src/auth.glade.h:6
292 msgstr "사용자 이름 "
293
294 #: ../src/virt-viewer-auth.xml.h:4
207295 msgid "label"
208 msgstr "라벨"
209
210 #: ../src/viewer.glade.h:1
296 msgstr "레이블 "
297
298 #: ../src/virt-viewer-main.c:38
299 #, c-format
300 msgid "%s version %s\n"
301 msgstr "%s 버전 %s\n"
302
303 #: ../src/virt-viewer-main.c:69
304 msgid "Attach to the local display using libvirt"
305 msgstr "libvirt를 사용하여 로컬 디스플레이에 연결 "
306
307 #: ../src/virt-viewer-main.c:71
308 msgid "Connect to hypervisor"
309 msgstr "하이퍼바이저에 연결 "
310
311 #: ../src/virt-viewer-main.c:73
312 msgid "Wait for domain to start"
313 msgstr "도메인 시작을 기다립니다 "
314
315 #: ../src/virt-viewer-main.c:75
316 msgid "Reconnect to domain upon restart"
317 msgstr "다시 시작시 도메인에 다시 연결 "
318
319 #: ../src/virt-viewer-main.c:81
320 msgid "Open in full screen mode"
321 msgstr "전체 화면 모드로 열기 "
322
323 #: ../src/virt-viewer-main.c:96
324 msgid "Virt Viewer"
325 msgstr "가상 머신 뷰어 "
326
327 #. Setup command line options
328 #: ../src/virt-viewer-main.c:99
329 msgid "- Virtual machine graphical console"
330 msgstr "- 가상 머신 그래픽 콘솔"
331
332 #: ../src/virt-viewer-main.c:120
333 #, c-format
334 msgid ""
335 "\n"
336 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
337 "\n"
338 "%s\n"
339 "\n"
340 msgstr "\n사용법: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
341
342 #. Create the widgets
343 #: ../src/virt-viewer-session-spice.c:380
344 msgid "Select USB devices for redirection"
345 msgstr "리디렉션을 위한 USB 장치 선택 "
346
347 #: ../src/virt-viewer-session-vnc.c:141
348 #, c-format
349 msgid "Unsupported authentication type %d"
350 msgstr "지원되지 않는 인증 유형 %d"
351
352 #: ../src/virt-viewer-window.c:832
353 msgid "Disconnect"
354 msgstr "연결 해제 "
355
356 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
357 #: ../src/virt-viewer.xml.h:22
358 msgid "USB device selection"
359 msgstr "USB 장치 선택 "
360
361 #: ../src/virt-viewer-window.c:848
362 msgid "Send key combination"
363 msgstr ""
364
365 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
366 msgid "Leave fullscreen"
367 msgstr "전체 화면 해제 "
368
369 #: ../src/virt-viewer-window.c:937
370 msgid "Ctrl+Alt"
371 msgstr ""
372
373 #: ../src/virt-viewer-window.c:940
374 #, c-format
375 msgid "(Press %s to release pointer)"
376 msgstr ""
377
378 #. translators:
379 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
380 #. <appname>"
381 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
382 #. Viewer"
383 #.
384 #: ../src/virt-viewer-window.c:951
385 #, c-format
386 msgid "%s%s%s - %s"
387 msgstr "%s%s%s - %s"
388
389 #. translators: <space>
390 #: ../src/virt-viewer-window.c:955
391 msgid " "
392 msgstr " "
393
394 #: ../src/virt-viewer.c:144
395 msgid "Waiting for guest domain to re-start"
396 msgstr "다시 시작할 게스트 도메인을 기다리는 중 "
397
398 #: ../src/virt-viewer.c:308
399 #, c-format
400 msgid "Cannot determine the graphic type for the guest %s"
401 msgstr "게스트 %s의 그래픽 유형을 지정할 수 없음 "
402
403 #: ../src/virt-viewer.c:321
404 #, c-format
405 msgid "Cannot determine the graphic address for the guest %s"
406 msgstr "게스트 %s의 그래픽 주소를 지정할 수 없음 "
407
408 #: ../src/virt-viewer.c:344
409 #, c-format
410 msgid "Cannot determine the host for the guest %s"
411 msgstr "게스트 %s의 호스트를 지정할 수 없음 "
412
413 #: ../src/virt-viewer.c:474
414 msgid "Finding guest domain"
415 msgstr "게스트 도메인 검색 중 "
416
417 #: ../src/virt-viewer.c:478
418 msgid "Waiting for guest domain to be created"
419 msgstr "게스트 도메인이 생성되기를 기다리는 중 "
420
421 #: ../src/virt-viewer.c:483
422 #, c-format
423 msgid "Cannot find guest domain %s"
424 msgstr "게스트 도메인 %s를 찾을 수 없음 "
425
426 #: ../src/virt-viewer.c:490
427 msgid "Checking guest domain status"
428 msgstr "게스트 도메인 상태 확인 중 "
429
430 #: ../src/virt-viewer.c:497
431 msgid "Waiting for guest domain to start"
432 msgstr "시작할 게스트 도메인을 기다리는 중 "
433
434 #: ../src/virt-viewer.c:504
435 msgid "Waiting for guest domain to start server"
436 msgstr "서버를 시작할 게스트 도메인을 기다리는 중 "
437
438 #: ../src/virt-viewer.c:624
439 #, c-format
440 msgid "Unable to connect to libvirt with URI %s"
441 msgstr "URI %s로 libvirt에 연결할 수 없음 "
442
443 #: ../src/virt-viewer.c:625
444 msgid "[none]"
445 msgstr "[없음]"
446
447 #. * Local variables:
448 #. * c-indent-level: 4
449 #. * c-basic-offset: 4
450 #. * indent-tabs-mode: nil
451 #. * End:
452 #.
453 #: ../src/virt-viewer.xml.h:1
211454 msgid "Automatically resize"
212 msgstr "자동으로 크기 변경"
213
214 #: ../src/viewer.glade.h:2
455 msgstr "자동 크기 조정 "
456
457 #: ../src/virt-viewer.xml.h:2
215458 msgid "Ctrl+Alt+F11"
216459 msgstr "Ctrl+Alt+F11"
217460
218 #: ../src/viewer.glade.h:3
461 #: ../src/virt-viewer.xml.h:3
219462 msgid "Ctrl+Alt+F12"
220463 msgstr "Ctrl+Alt+F12"
221464
222 #: ../src/viewer.glade.h:4
465 #: ../src/virt-viewer.xml.h:4
223466 msgid "Ctrl+Alt+F1_0"
224467 msgstr "Ctrl+Alt+F1_0"
225468
226 #: ../src/viewer.glade.h:5
469 #: ../src/virt-viewer.xml.h:5
227470 msgid "Ctrl+Alt+F_1"
228471 msgstr "Ctrl+Alt+F_1"
229472
230 #: ../src/viewer.glade.h:6
473 #: ../src/virt-viewer.xml.h:6
231474 msgid "Ctrl+Alt+F_2"
232475 msgstr "Ctrl+Alt+F_2"
233476
234 #: ../src/viewer.glade.h:7
477 #: ../src/virt-viewer.xml.h:7
235478 msgid "Ctrl+Alt+F_3"
236479 msgstr "Ctrl+Alt+F_3"
237480
238 #: ../src/viewer.glade.h:8
481 #: ../src/virt-viewer.xml.h:8
239482 msgid "Ctrl+Alt+F_4"
240483 msgstr "Ctrl+Alt+F_4"
241484
242 #: ../src/viewer.glade.h:9
485 #: ../src/virt-viewer.xml.h:9
243486 msgid "Ctrl+Alt+F_5"
244487 msgstr "Ctrl+Alt+F_5"
245488
246 #: ../src/viewer.glade.h:10
489 #: ../src/virt-viewer.xml.h:10
247490 msgid "Ctrl+Alt+F_6"
248491 msgstr "Ctrl+Alt+F_6"
249492
250 #: ../src/viewer.glade.h:11
493 #: ../src/virt-viewer.xml.h:11
251494 msgid "Ctrl+Alt+F_7"
252495 msgstr "Ctrl+Alt+F_7"
253496
254 #: ../src/viewer.glade.h:12
497 #: ../src/virt-viewer.xml.h:12
255498 msgid "Ctrl+Alt+F_8"
256499 msgstr "Ctrl+Alt+F_8"
257500
258 #: ../src/viewer.glade.h:13
501 #: ../src/virt-viewer.xml.h:13
259502 msgid "Ctrl+Alt+F_9"
260503 msgstr "Ctrl+Alt+F_9"
261504
262 #: ../src/viewer.glade.h:14
505 #: ../src/virt-viewer.xml.h:14
263506 msgid "Ctrl+Alt+_Backspace"
264 msgstr "Ctrl+Alt+_Backspace"
265
266 #: ../src/viewer.glade.h:15
507 msgstr "Ctrl+Alt+Backspace(_B)"
508
509 #: ../src/virt-viewer.xml.h:15
267510 msgid "Ctrl+Alt+_Del"
268 msgstr "Ctrl+Alt+_Del"
269
270 #: ../src/viewer.glade.h:16
511 msgstr "Ctrl+Alt+Del(_D) "
512
513 #: ../src/virt-viewer.xml.h:16
514 msgid "Displays"
515 msgstr "디스플레이 "
516
517 #: ../src/virt-viewer.xml.h:17
271518 msgid "Full screen"
272 msgstr "전체 화면"
273
274 #: ../src/viewer.glade.h:17
519 msgstr "전체 화면 "
520
521 #: ../src/virt-viewer.xml.h:18
522 msgid "Release cursor"
523 msgstr "커서 개방 "
524
525 #: ../src/virt-viewer.xml.h:19
275526 msgid "Screenshot"
276 msgstr "스크린샷"
277
278 #: ../src/viewer.glade.h:18
527 msgstr "스크린샷 "
528
529 #: ../src/virt-viewer.xml.h:20
530 msgid "Smartcard insertion"
531 msgstr "스마트카드 삽입 "
532
533 #: ../src/virt-viewer.xml.h:21
534 msgid "Smartcard removal"
535 msgstr "스마트카드 제거 "
536
537 #: ../src/virt-viewer.xml.h:23
279538 msgid "_File"
280539 msgstr "파일(_F)"
281540
282 #: ../src/viewer.glade.h:19
541 #: ../src/virt-viewer.xml.h:24
283542 msgid "_Help"
284 msgstr "도움말(_H)"
285
286 #: ../src/viewer.glade.h:20
543 msgstr "도움말(_H) "
544
545 #: ../src/virt-viewer.xml.h:25
287546 msgid "_PrintScreen"
288 msgstr "화면 프린트(_P)"
289
290 #: ../src/viewer.glade.h:21
547 msgstr "PrintScreen(_P) "
548
549 #: ../src/virt-viewer.xml.h:26
291550 msgid "_Send key"
292551 msgstr "키 전송(_S)"
293552
294 #: ../src/viewer.glade.h:22
553 #: ../src/virt-viewer.xml.h:27
295554 msgid "_View"
296555 msgstr "보기(_V)"
297556
298 #: ../src/viewer.glade.h:23
299 msgid "gtk-about"
300 msgstr "gtk-about"
301
302 #: ../src/viewer.glade.h:24
303 msgid "gtk-quit"
304 msgstr "gtk-quit"
305
306 #: ../src/viewer.glade.h:25
307 msgid "page 1"
308 msgstr "페이지 1"
309
310 #: ../src/viewer.glade.h:26
311 msgid "page 2"
312 msgstr "페이지 2"
313
557 #: ../src/virt-viewer.xml.h:28
558 msgid "_Zoom"
559 msgstr "줌(_Z) "
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Latvian (http://www.transifex.net/projects/p/fedora/language/lv/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: lv\n"
17 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+459
-212
po/ml.po less more
0 # translation of virt-viewer.tip.virt-viewer.ml.po to
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the virt-viewer package.
3 # Ani Peter <apeter@redhat.com>, 2010.
4 #
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Ani Peter <apeter@redhat.com>, 2010, 2012.
56 msgid ""
67 msgstr ""
7 "Project-Id-Version: virt-viewer.tip.virt-viewer.ml\n"
8 "Project-Id-Version: virt-viewer\n"
89 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-01-28 06:20+0000\n"
10 "PO-Revision-Date: 2010-01-28 15:57+0530\n"
11 "Last-Translator: \n"
12 "Language-Team: <en@li.org>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Malayalam <discuss@lists.smc.org.in>\n"
1314 "MIME-Version: 1.0\n"
1415 "Content-Type: text/plain; charset=UTF-8\n"
1516 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17
18 #: ../src/main.c:34
19 #, c-format
20 msgid "%s version %s\n"
21 msgstr "%s ലക്കം %s\n"
22
23 #: ../src/main.c:52
17 "Language: ml\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "ശ്രോതസ്സ്"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "ബൈന്‍ഡിങിനുള്ള ശ്രോതസ്സ്"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "ടാര്‍ഗറ്റ്"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "ബൈന്‍ഡിങിനുള്ള ടാര്‍ഗറ്റ്"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "സോഴ്സ് പ്രോപര്‍ട്ടി"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "ബൈന്‍ഡ് ചെയ്യുവാനുള്ള ശ്രോതസ്സിലുള്ള പ്രോപര്‍ട്ടി"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "ടാര്‍ഗറ്റ് പ്രോപര്‍ട്ടി"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "ബൈന്‍ഡ് ചെയ്യുന്നതിനായി ടാര്‍ഗറ്റിലുള്ള പ്രോപര്‍ട്ടി"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "ഫ്ലാഗുകള്‍"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "ബൈന്‍ഡ് ചെയ്യുന്ന ഫ്ലാഗുകള്‍"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer പതിപ്പു് %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2484 msgid "Run '"
2585 msgstr "പ്രവര്‍ത്തിപ്പിക്കുക"
2686
27 #: ../src/main.c:55
28 msgid "display version information"
29 msgstr "ലക്കം ലഭ്യമാക്കുക"
30
31 #: ../src/main.c:57
32 msgid "display verbose information"
33 msgstr "വെര്‍ബോസ് വിവരം ലഭ്യമാക്കുക"
34
35 #: ../src/main.c:59
36 msgid "direct connection with no automatic tunnels"
37 msgstr "ഓട്ടോമാറ്റിക് ടണലുകളില്ലാതെ നേരിട്ടുള്ള കണക്ഷന്‍"
38
39 #: ../src/main.c:61
40 msgid "connect to hypervisor"
41 msgstr "ഹൈപ്പര്‍വൈസറിലേക്കു് കണക്ട് ചെയ്യുക"
42
43 #: ../src/main.c:63
44 msgid "wait for domain to start"
45 msgstr "ആരംഭിക്കുന്നതിനായി ഡൊമെയിനിനായി കാത്തിരിക്കുക"
46
47 #: ../src/main.c:65
48 msgid "reconnect to domain upon restart"
49 msgstr "വീണ്ടും ആരംഭിക്കുമ്പോള്‍ ഡൊമെയിനിലേക്കു് വീണ്ടും കണക്ട് ചെയ്യുക"
50
51 #: ../src/main.c:67
52 msgid "display debugging information"
53 msgstr "ഡീബഗ്ഗിങ് വിവരം ലഭ്യമാക്കുക"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "പതിപ്പിനെപ്പറ്റിയുള്ള വിവരം കാണിയ്ക്കുക"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "വെര്‍ബോസ് വിവരം കാണിയ്ക്കുക"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "ഓട്ടോമാറ്റിക് ടണലുകള്‍ ഇല്ലാത്ത നേരിട്ടുള്ള കണക്ഷന്‍"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "ജാലകത്തിന്റെ സൂം ലവല്‍, ശതമാനത്തില്‍"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "ഡീബഗ്ഗിങ് വിവരം കാണിയ്ക്കുക"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "സ്പയിസ് കണ്ട്രോളര്‍ ആശയവിനിമയം ഉപയോഗിച്ചു് കണക്ഷന്‍ തുറക്കുക"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
54118
55119 #. Setup command line options
56 #: ../src/main.c:79
57 msgid "- Virtual machine graphical console"
58 msgstr "- വിര്‍ച്ച്വല്‍ മഷീന്‍ ഗ്രാഫിക്കല്‍ കണ്‍സോള്‍"
59
60 #: ../src/main.c:95
61 #, c-format
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- റിമോട്ട് വ്യൂവര്‍ ക്ലയന്റ്"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "സൂം ലവല്‍ 10-200 ആയിരിയ്ക്കണം\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "കണക്ഷന്‍ ആരംഭിയ്ക്കുന്നതില്‍ പരാജയം"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "കണ്ട്രോളര്‍ പ്രദര്‍ശനം പ്രവര്‍ത്തന രഹിതമാക്കിയിരിയ്ക്കുന്നു"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "കണ്ട്രോളറിനുള്ള കണക്ഷന്‍ പരാജയപ്പെട്ടു: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "ഒരു സ്പയിസ് സെഷന്‍ തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "സ്പയിസ് സെഷന്‍ സജ്ജമാക്കുന്നു..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "യുആര്‍ഐയില്‍ നിന്നും കണക്ഷന്‍ രീതി കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "ഈ തരത്തിനുള്ളൊരു സെഷന്‍ തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല: %s"
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "GTK-VNC, SPICE-GTK, libvirt എന്നിവ ഉപയോഗിച്ചുള്ളൊരു റിമോട്ട് ഡസ്ക്ടോപ്പ് ക്ലയന്റ്"
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr "ഗ്ലേഡിനെപ്പറ്റി"
182
183 #: ../src/virt-viewer-about.xml.h:3
62184 msgid ""
63 "\n"
64 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
65 "\n"
66 "%s\n"
67 "\n"
68 msgstr ""
69 "\n"
70 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
71 "\n"
72 "%s\n"
73 "\n"
74
75 #: ../src/viewer.c:878
76 #, c-format
77 msgid "Cannot determine the VNC port for the guest %s"
78 msgstr "ഗസ്റ്റ് %s-നുള്ള വിഎന്‍സി പോര്‍ട്ട് ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
79
80 #: ../src/viewer.c:884
81 #, c-format
82 msgid "Cannot determine the VNC host for the guest %s"
83 msgstr "ഗസ്റ്റ് %s-നുള്ള വിഎന്‍സി ഹോസ്റ്റ് ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
84
85 #: ../src/viewer.c:984
86 #, c-format
87 msgid "Unable to connect to the VNC server %s"
88 msgstr "വിഎന്‍സി സര്‍വര്‍ %s-ലേക്ക് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല"
89
90 #: ../src/viewer.c:1001
91 #, c-format
92 msgid ""
93 "Unable to authenticate with VNC server at %s: %s\n"
94 "Retry connection again?"
95 msgstr ""
96 "%s: %s-ല്‍ വിഎന്‍സി സര്‍വറുമായി ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല\n"
97 "കണക്ഷനുവേണ്ടി വീണ്ടും ശ്രമിക്കണമോ?"
98
99 #: ../src/viewer.c:1019
100 #, c-format
101 msgid ""
102 "Unable to authenticate with VNC server at %s\n"
103 "Unsupported authentication type %d"
104 msgstr ""
105 "%s-ലുള്ള വിഎന്‍സി സര്‍വറുമായി ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല\n"
106 "പിന്തുണലഭ്യമല്ലാത്ത ആധികാരികത രീതി %d"
107
108 #: ../src/viewer.c:1111
109 #, c-format
110 msgid "Cannot find guest domain %s"
111 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ %s ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
112
113 #: ../src/viewer.c:1213
114 #, c-format
115 msgid "Unable to connect to libvirt with URI %s"
116 msgstr "libvrt-ലേക്ക് യുആര്‍ഐ %s ഉപയോഗിച്ചു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല"
117
118 #: ../src/viewer.c:1214
119 msgid "[none]"
120 msgstr "[ഒന്നുമില്ല]"
121
122 #.
123 #. * Local variables:
124 #. * c-indent-level: 8
125 #. * c-basic-offset: 8
126 #. * tab-width: 8
127 #. * End:
128 #.
129 #: ../src/about.glade.h:1
130 msgid "A remote desktop client built with GTK-VNC and libvirt"
131 msgstr "GTK-VNC, libvrt എന്നിവയിലുള്ളൊരു റിമോട്ട് പണിയിട ക്ലയന്റ്"
132
133 #: ../src/about.glade.h:2
134 msgid "About Glade"
135 msgstr "ഗ്ലേഡിനെ കുറിച്ചു്"
136
137 #: ../src/about.glade.h:3
138 msgid ""
139 "Copyright 2007-2008 Daniel P. Berrange\n"
140 "Copyright 2007-2008 Red Hat, Inc."
141 msgstr ""
142 "Copyright 2007-2008 Daniel P. Berrange\n"
143 "Copyright 2007-2008 Red Hat, Inc."
144
145 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "പകര്‍പ്പവകാശം (C) 2007-2012 Daniel P. Berrange\nപകര്‍പ്പവകാശം (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
146190 msgid "The Fedora Translation Team"
147 msgstr "ഫെഡോറ പരിഭാഷ സംഘം"
148
149 #: ../src/about.glade.h:6
191 msgstr "ഫെഡോറാ പ്രാദേശികവത്കരണ സംഘം"
192
193 #: ../src/virt-viewer-about.xml.h:6
150194 msgid ""
151195 "This program is free software; you can redistribute it and/or modify\n"
152196 "it under the terms of the GNU General Public License as published by\n"
161205 "You should have received a copy of the GNU General Public License\n"
162206 "along with this program; if not, write to the Free Software\n"
163207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
164 msgstr ""
165 "ഈ പ്രോഗ്രാം ഒരു സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറാണു്, നിങ്ങള്‍ക്കതു് പുനര്‍വിതരണം\n"
166 "നടത്തുകയോ സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ ഫൌണ്ടേഷന്‍ പ്രസിദ്ധീകരിച്ച ഗ്നു ജനറല്‍\n"
167 "പബ്ലിക് ലൈസന്‍സ് ലക്കം 2 ഓ അതിനേക്കാള്‍ പുതിയ പതിപ്പോ (നിങ്ങളുടെ ഇഷ്ടപ്രകാരം)\n"
168 "പ്രകാരം ഭേദഗതി വരുത്താവുന്നതോ ആണു്.\n"
169 "\n"
170 "ഈ പ്രോഗ്രാം നിങ്ങള്‍ക്കു് പ്രയോജനപ്പെടും എന്ന പ്രതീക്ഷയില്‍ വിതരണം ചെയ്യുന്നതാണു്.\n"
171 "പക്ഷേ, ഇതിന് ഒരു വാറണ്ടിയും ലഭ്യമല്ല; വ്യാപാരയോഗ്യതയോ ഒരു പ്രത്യേക കാര്യത്തിനു്\n"
172 "ചേരുന്നതാണെന്നോ ഉള്ള പരോക്ഷമായ ഒരു വാറണ്ടി പോലും ഇല്ല. കൂടുതല്‍ വിവരങ്ങള്‍ക്കു് ഗ്നു\n"
173 "ജനറല്‍ പബ്ലിക് ലൈസന്‍സ് കാണുക.\n"
174 "\n"
175 "നിങ്ങള്‍ക്കു് ഈ പ്രോഗ്രാമിനൊപ്പം ഗ്നു ജനറല്‍ പബ്ലിക് ലൈസന്‍സിന്റെ ഒരു പകര്‍പ്പു് ലഭിച്ചിട്ടുണ്ടായിരിയ്ക്കണം;\n"
176 "ഇല്ലെങ്കില്‍, ഈ വിലാസത്തിലേയ്ക്കെഴുതുക:\n"
177 "Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
178
179 #: ../src/about.glade.h:20
208 msgstr "ഈ പ്രോഗ്രാം സ്വതന്ത്ര സോഫ്റ്റ്‌വെയര്‍ ആകുന്നു; നിങ്ങള്‍ക്കിത് ഗ്നു ജനറല്‍ പബ്ലിക്ലൈസന്‍സിന്റെ നിബന്ധനകള്‍ പ്രകാരം (രണ്ടാം ലക്കം അല്ലെങ്കില്‍ നിങ്ങളുടെ താല്‍പര്യമനുസരിച്ച് അതിലും പുതിയ ലക്കം) വീണ്ടും വിതരണം ചെയ്യുകയോ മാറ്റം വരുത്തുകയോ ചെയ്യാം. ഫ്രീ സോഫ്റ്റ്‌വെയര്‍ ഫൌണ്ടേഷന്‍ ആണ് ഈ ലൈസന്‍സ് പ്രസിദ്ധീകരിച്ചിട്ടുള്ളത്.\n\nവളരെ ഫലപ്രദമായ പ്രോഗ്രാം എന്ന പ്രതീക്ഷയിലാകുന്നു ഈ പ്രോഗ്രാം വിതരണം ചെയ്തത്.ഇതിന് വാറന്റി ലഭ്യമല്ല. കൂടുതല്‍ വിവരങ്ങള്‍ക്കായി ഗ്നു ജനറല്‍ പബ്ളിക് ലൈസന്‍സ് കാണുക.\n\nഈ പ്രോഗ്രാമിനൊപ്പം നിങ്ങള്‍ക്ക് ഗ്നു ജനറല്‍ പബ്ലിക് ലൈസന്‍സിന്റെ ഒരു പകര്‍പ്പും ലഭിച്ചിരിക്കണം, ഇല്ലായെങ്കില്‍, ‌താഴെ പറയുന്ന മേല്‍വിലാസത്തിലേക്ക് എഴുതുക: Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
209
210 #: ../src/virt-viewer-about.xml.h:20
180211 msgid "virt-manager.org"
181212 msgstr "virt-manager.org"
182213
183 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "ഇതാണു് അവസാന ദൃശ്യം. നിങ്ങള്‍ക്കു് പുറത്തു് കടക്കണമോ?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "%d പ്രദര്‍ശനത്തിനായി കാത്തിരിയ്ക്കുന്നു..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "ഗസ്റ്റ് %s-നുള്ള അപരിചിതമായ ഗ്രാഫിക് രീതി"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh-ലേക്കുള്ള കണക്ഷന്‍ പരാജയപ്പെട്ടു."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "ചാനലിലേക്കു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല, എസ്എസ്എചിനു് മാത്രം പിന്തുണ ലഭ്യമുള്ളൂ."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "ചാനലിലേക്കുള്ള കണക്ഷനു് പിന്തുണയില്ല."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "ഗ്രാഫിക് സര്‍വറിലേക്കു് കണക്ട് ചെയ്യുന്നു"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ അടച്ചുപൂട്ടിയിരിയ്ക്കുന്നു"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "ഗ്രാഫിക് സര്‍വറിലേക്കു് കണക്ട് ചെയ്തിരിയ്ക്കുന്നു"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "ഗ്രാഫിക് സര്‍വര്‍ %s-ലേക്കു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s-ല്‍ റിമോട്ട് ഡസ്ക്ടോപ്പ് സര്‍വറിലേക്കു് ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല: %s\nവീണ്ടും ശ്രമിയ്ക്കണമോ?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "റിമോട്ട് ഡസ്ക്ടോപ്പ് സര്‍വറിനൊപ്പം ആധികാരികത ഉറപ്പാക്കുവാന്‍ സാധ്യമല്ല: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "യുഎസ്ബി റീഡയറക്ഷന്‍ പിശക്: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
184281 msgid "Authentication required"
185 msgstr "ആധികാരികത ആവശ്യമുണ്ടു്"
186
187 #: ../src/auth.glade.h:2
282 msgstr "ആധികാരികത ഉറപ്പാക്കല്‍ ആവശ്യമുണ്ടു്"
283
284 #: ../src/virt-viewer-auth.xml.h:2
188285 msgid "Password:"
189 msgstr "രഹസ്യവാക്ക്"
190
191 #: ../src/auth.glade.h:3
286 msgstr "രഹസ്യവാക്ക്:"
287
288 #: ../src/virt-viewer-auth.xml.h:3
192289 msgid "Username:"
193 msgstr "ഉപയോക്തൃനാമം"
194
195 #: ../src/auth.glade.h:4
196 msgid "gtk-cancel"
197 msgstr "gtk-cancel"
198
199 #: ../src/auth.glade.h:5
200 msgid "gtk-ok"
201 msgstr "gtk-ok"
202
203 #: ../src/auth.glade.h:6
290 msgstr "ഉപയോക്തൃനാമം:"
291
292 #: ../src/virt-viewer-auth.xml.h:4
204293 msgid "label"
205294 msgstr "ലേബല്‍"
206295
207 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s ലക്കം %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt ഉപയോഗിച്ചു് പ്രാദേശിക പ്രദര്‍ശനത്തിലേക്കു് ഘടിപ്പിയ്ക്കുക"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "ഹൈപ്പര്‍വൈസറിലേക്കു് കണക്ട് ചെയ്യുക"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "ആരംഭിയ്ക്കുന്നതിനായി ഡൊമെയിനുവേണ്ടി കാത്തിരിയ്ക്കുക"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "വീണ്ടും ആരംഭിയ്ക്കുമ്പോള്‍ ഡൊമെയിനിലേക്കു് വീണ്ടും കണക്ട് ചെയ്യുക"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "സ്ക്രീന്‍ പൂര്‍ണ്ണ വലിപ്പത്തില്‍ തുറക്കുക"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "വിര്‍ട്ട് വ്യൂവര്‍"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- വിര്‍ച്ച്വല്‍ മഷീന്‍ ഗ്രാഫിക്കല്‍ കണ്‍സോള്‍"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "യുഎസ്ബി ഡിവൈസുകള്‍ തെരഞ്ഞെടുക്കുക"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "പിന്തുണയില്ലാത്ത ആധികാരികത ഉറപ്പാക്കല്‍ രീതി %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "കണക്ഷന്‍ വിഛേദിയ്ക്കുക"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "യുഎസ്ബി ഡിവൈസ് തെരഞ്ഞെടുക്കല്‍"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "പൂര്‍ണ്ണസ്ക്രീനില്‍ നിന്നും മാറുക"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ വീണ്ടും ആരംഭിയ്ക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "%s ഗസ്റ്റിനുള്ള ഗ്രാഫിക് രീതി കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "%s ഗസ്റ്റിനുള്ള ഗ്രാഫിക് വിലാസം കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "ഗസ്റ്റ് %s-നുള്ള ഹോസ്റ്റ് കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ കണ്ടുപിടിയ്ക്കുന്നു"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ തയ്യാറാക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ %s ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ അവസ്ഥ പരിശോധിയ്ക്കുന്നു"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ ആരംഭിയ്ക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "ഗസ്റ്റ് ഡൊമെയിന്‍ സര്‍വര്‍ ആരംഭിയ്ക്കുന്നതിനായി കാത്തിരിയ്ക്കുന്നു"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "libvrt-ലേക്ക് യുആര്‍ഐ %s ഉപയോഗിച്ചു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[ഒന്നുമില്ല]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
208452 msgid "Automatically resize"
209 msgstr "സ്യവമായി വ്യാപ്തി മാറ്റുക"
210
211 #: ../src/viewer.glade.h:2
453 msgstr "സ്വയമായി വ്യാപ്തി മാറ്റുക"
454
455 #: ../src/virt-viewer.xml.h:2
212456 msgid "Ctrl+Alt+F11"
213457 msgstr "Ctrl+Alt+F11"
214458
215 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
216460 msgid "Ctrl+Alt+F12"
217461 msgstr "Ctrl+Alt+F12"
218462
219 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
220464 msgid "Ctrl+Alt+F1_0"
221465 msgstr "Ctrl+Alt+F1_0"
222466
223 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
224468 msgid "Ctrl+Alt+F_1"
225469 msgstr "Ctrl+Alt+F_1"
226470
227 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
228472 msgid "Ctrl+Alt+F_2"
229473 msgstr "Ctrl+Alt+F_2"
230474
231 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
232476 msgid "Ctrl+Alt+F_3"
233477 msgstr "Ctrl+Alt+F_3"
234478
235 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
236480 msgid "Ctrl+Alt+F_4"
237481 msgstr "Ctrl+Alt+F_4"
238482
239 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
240484 msgid "Ctrl+Alt+F_5"
241485 msgstr "Ctrl+Alt+F_5"
242486
243 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
244488 msgid "Ctrl+Alt+F_6"
245489 msgstr "Ctrl+Alt+F_6"
246490
247 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
248492 msgid "Ctrl+Alt+F_7"
249493 msgstr "Ctrl+Alt+F_7"
250494
251 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
252496 msgid "Ctrl+Alt+F_8"
253497 msgstr "Ctrl+Alt+F_8"
254498
255 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
256500 msgid "Ctrl+Alt+F_9"
257501 msgstr "Ctrl+Alt+F_9"
258502
259 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
260504 msgid "Ctrl+Alt+_Backspace"
261505 msgstr "Ctrl+Alt+_Backspace"
262506
263 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
264508 msgid "Ctrl+Alt+_Del"
265509 msgstr "Ctrl+Alt+_Del"
266510
267 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "പ്രദര്‍ശനങ്ങള്‍"
514
515 #: ../src/virt-viewer.xml.h:17
268516 msgid "Full screen"
269517 msgstr "സ്ക്രീന്‍ പൂര്‍ണ്ണവലിപ്പത്തില്‍"
270518
271 #: ../src/viewer.glade.h:17
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "കര്‍സര്‍ റിലീസ് ചെയ്യുക"
522
523 #: ../src/virt-viewer.xml.h:19
272524 msgid "Screenshot"
273 msgstr "സ്ക്രീന്‍ഷോട്ട് എടുക്കുക"
274
275 #: ../src/viewer.glade.h:18
525 msgstr "സ്ക്രീന്‍ഷോട്ട്"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "സ്മാര്‍ട്ട്കാര്‍ഡ് ഇടല്‍"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "സ്മാര്‍ട്ട്കാര്‍ഡ് നീക്കം ചെയ്യല്‍"
534
535 #: ../src/virt-viewer.xml.h:23
276536 msgid "_File"
277537 msgstr "_ഫയല്‍"
278538
279 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
280540 msgid "_Help"
281541 msgstr "_സഹായം"
282542
283 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
284544 msgid "_PrintScreen"
285545 msgstr "_PrintScreen"
286546
287 #: ../src/viewer.glade.h:21
547 #: ../src/virt-viewer.xml.h:26
288548 msgid "_Send key"
289549 msgstr "കീ _അയയ്ക്കുക"
290550
291 #: ../src/viewer.glade.h:22
551 #: ../src/virt-viewer.xml.h:27
292552 msgid "_View"
293553 msgstr "_കാഴ്ച"
294554
295 #: ../src/viewer.glade.h:23
296 msgid "gtk-about"
297 msgstr "gtk-about"
298
299 #: ../src/viewer.glade.h:24
300 msgid "gtk-quit"
301 msgstr "gtk-quit"
302
303 #: ../src/viewer.glade.h:25
304 msgid "page 1"
305 msgstr "താള്‍ 1"
306
307 #: ../src/viewer.glade.h:26
308 msgid "page 2"
309 msgstr "താള്‍ 2"
310
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "_വലുതാക്കുക"
+456
-210
po/mr.po less more
0 # translation of mr.po to Marathi
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Sandeep Shedmake <sshedmak@redhat.com>, 2010.
3 #
4 # Translators:
5 # Sandeep Shedmake <sshedmak@redhat.com>, 2010, 2012.
56 msgid ""
67 msgstr ""
7 "Project-Id-Version: mr\n"
8 "Project-Id-Version: virt-viewer\n"
89 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-01-27 21:04+0530\n"
10 "PO-Revision-Date: 2010-01-28 19:07+0530\n"
11 "Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
12 "Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Marathi (http://www.transifex.net/projects/p/fedora/language/mr/)\n"
1314 "MIME-Version: 1.0\n"
1415 "Content-Type: text/plain; charset=UTF-8\n"
1516 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s आवृत्ती %s\n"
23
24 #: ../src/main.c:52
17 "Language: mr\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "स्रोत"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "बाइंडिंगचे स्रोत"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "लक्ष्य"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "बाइंडिंगचे लक्ष्य"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "स्रोत गुणधर्म"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "बाइंडकरण्यासाठी स्रोतवरील गुणधर्म"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "लक्ष्य गुणधर्म"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "बाइंडकरीता लक्ष्यवरील गुणधर्म"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "फ्लॅग्स्"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "बाइंडिंगसाठीचे फ्लॅग्स्"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer आवृत्ती %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2584 msgid "Run '"
2685 msgstr "चालवा '"
2786
28 #: ../src/main.c:55
29 msgid "display version information"
30 msgstr "आवृत्तीची माहिची दाखवा"
31
32 #: ../src/main.c:57
33 msgid "display verbose information"
34 msgstr "वर्णनीय माहिती दाखवा"
35
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
38 msgstr "स्वयं वाहिनी विना थेट जोडणी"
39
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "हायपरवाइजरसह जोडणी करा"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "क्षेत्र सुरू होण्याकरीता थांबा"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "पुनः सुरू झाल्यावर क्षेत्रसह पुनः जोडणी करा"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
54 msgstr "डिबगींग माहिती दाखवा"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "आवृत्तीविषयी माहिती दाखवा"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "शब्दात्मक माहिती दाखवा"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "स्वयं टनल्स् विना प्रत्यक्ष जोडणी"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "पटलाचे झूम स्तर, टक्केवारित"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "डिबगिंग माहिती दाखवत आहे"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "स्पाइस कंट्रोलर संपर्काचा वापर करून जोडणी उघडा"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
55118
56119 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "- वर्च्युअल मशीन ग्राफिकल कंसोल"
60
61 #: ../src/main.c:95
62 #, c-format
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- रिमोट व्युअर क्लाएंट"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "झूम स्तर 10-200 अंतर्गत पाहिजे\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "जोडणी सुरू करण्यास अपयशी"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "कंट्रोलरतर्फे डिस्पले बंद केले"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "कंट्रोलर जोडणी अपयशी: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "स्पाइस सत्र निर्माण करणे अशक्य"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "स्पाइस सत्राची मांडणी अशक्य..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "URI पासून जोडणी प्रकार ओळखणे अशक्य"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "या प्रकारकरीता सत्र निर्माण करणे अशक्य: %s"
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "GTK-VNC, SPICE-GTK व libvirt सह रिमोट डेस्कटॉप क्लाएंट निर्मीत केले"
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr "ग्लेड विषयी"
182
183 #: ../src/virt-viewer-about.xml.h:3
63184 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "वापर: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "अतिथी %s करीता VNC पोर्ट ओळखणे अशक्य"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "अतिथी %s करीता VNC यजमान ओळखणे अशक्य"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "VNC सर्व्हर %s सह जोडणी करणे अशक्य"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "%s: %s येथे VNC सर्व्हरसह ओळख पटवण्यास अशक्य\n"
98 "पुन्हा जोडणी करा?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "%s येथे VNC सर्व्हरसह ओळख पटवण्यास अशक्य\n"
107 "असमर्थात ओळख पटवण्याचा प्रकार %d"
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "अतिथी क्षेत्र %s शोधणे अशक्य"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %s सह libvirt शी जोडणी करणे अशक्य"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "[काहिच नाही]"
122
123 #.
124 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
128 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "GTK-VNC व libvirt सह बांधणी केलेले रिमोट डेस्कटॉप क्लाएंट"
133
134 #: ../src/about.glade.h:2
135 msgid "About Glade"
136 msgstr "Glade विषयी"
137
138 #: ../src/about.glade.h:3
139 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "सर्वहक्काधिकार 2007-2008 डॅनीएनल पी. बेर्रांज\n"
144 "सर्वहक्काधिकार 2007-2008 Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "सर्वहक्काधिकार (C) 2007-2012 Daniel P. Berrange\nसर्वहक्काधिकार (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
147190 msgid "The Fedora Translation Team"
148191 msgstr "Fedora भाषांतरन गट"
149192
150 #: ../src/about.glade.h:6
193 #: ../src/virt-viewer-about.xml.h:6
151194 msgid ""
152195 "This program is free software; you can redistribute it and/or modify\n"
153196 "it under the terms of the GNU General Public License as published by\n"
162205 "You should have received a copy of the GNU General Public License\n"
163206 "along with this program; if not, write to the Free Software\n"
164207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "This program is free software; you can redistribute it and/or modify\n"
167 "it under the terms of the GNU General Public License as published by\n"
168 "the Free Software Foundation; either version 2 of the License, or\n"
169 "(at your option) any later version.\n"
170 "\n"
171 "This program is distributed in the hope that it will be useful,\n"
172 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
173 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
174 "GNU General Public License for more details.\n"
175 "\n"
176 "You should have received a copy of the GNU General Public License\n"
177 "along with this program; if not, write to the Free Software\n"
178 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
179
180 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
181211 msgid "virt-manager.org"
182212 msgstr "virt-manager.org"
183213
184 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "हे शेवटचे दृष्यास्पद डिस्पले आहे. तुम्हाला येथून बाहेर पडायचे?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "डिस्पले %d करीता प्रतिक्षा करत आहे..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "अतिथी %s करीता अपरिचीत ग्राफिक प्रकार"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh सह जोडणी अपयशी."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "वाहिनीसह जोडणी करणे अशक्य, SSH फक्त याकरीता समर्थन पुरवतो."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "वाहिनीसह जोडणी असमर्थीत आहे."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "ग्राफिक सर्व्हरसह जोडणी करत आहे"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "अतिथी डोमैन बंद झाले"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "ग्राफिक सर्व्हरसह जोडणी केली"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "ग्राफिक सर्व्हर %s सह जोडणी अशक्य"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s: %s येथे रिमोट डेस्कटॉप सर्व्हरसह ओळख पटवणे अशक्य\nजोडणीकरीता पुन्हा प्रयत्न करायचे?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "रिमोट डेस्कटॉप सर्व्हरसह ओळख पटवणे अशक्य: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "USB पुनःनिर्देशन त्रुटी: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
185281 msgid "Authentication required"
186282 msgstr "ओळख पटवणे आवश्यक"
187283
188 #: ../src/auth.glade.h:2
284 #: ../src/virt-viewer-auth.xml.h:2
189285 msgid "Password:"
190286 msgstr "पासवर्ड:"
191287
192 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
193289 msgid "Username:"
194 msgstr "वापरकर्त्याचे नाव:"
195
196 #: ../src/auth.glade.h:4
197 msgid "gtk-cancel"
198 msgstr "gtk-cancel"
199
200 #: ../src/auth.glade.h:5
201 msgid "gtk-ok"
202 msgstr "gtk-ok"
203
204 #: ../src/auth.glade.h:6
290 msgstr "वापरकर्तानाव:"
291
292 #: ../src/virt-viewer-auth.xml.h:4
205293 msgid "label"
206294 msgstr "लेबल"
207295
208 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s आवृत्ती %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt चा वापर करून स्थानीय डिस्पलेसह जोडणी करा"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "हायपरवाइजरसह जोडणी करा"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "डोमैन सुरू होण्याकरीता वाट पहा"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "पुनःसुरू केल्यानंतर डोमैनसह पुनःजोडणी करा"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "पूर्ण पडदाभर मोडमध्ये उघडा"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "वर्ट व्युअर"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- वर्च्युअल मशीन ग्राफिकल कंसोल"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nवापर: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "रिडायरेक्शनकरीता USB साधने पसंत करा"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "असमर्थीत ओळखपटवणे प्रकार %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "जोडणी खंडीत करा"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB साधनची निवड"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "पडदाभर सोडा"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "अतिथी डोमैनला पुनःसुरू करण्यासाठी वाट पहात आहे"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "अतिथी %s करीता ग्राफिक प्रकार ओळखणे अशक्य"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "अतिथी %s करीता ग्राफिक ॲड्रेस ओळखणे अशक्य"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "अतिथी %s करीता यजमान ओळखणे अशक्य"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "अतिथी डोमैन शोधत आहे"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "अतिथी डोमैन निर्माण करण्यास वाट पहात आहे"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "अतिथी क्षेत्र %s शोधणे अशक्य"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "अतिथी डोमैन स्थिती तपासत आहे"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "अतिथी डोमैनला पुनःसुरू करण्यास वाट पहात आहे"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "अतिथी डोमैनला पुनःसुरू करण्यास वाट पहात आहे"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "URI %s सह libvirt शी जोडणी करणे अशक्य"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[काहिच नाही]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
209452 msgid "Automatically resize"
210 msgstr "स्वयं पुनः आकार द्या"
211
212 #: ../src/viewer.glade.h:2
453 msgstr "स्वयं पुनःआकार द्या"
454
455 #: ../src/virt-viewer.xml.h:2
213456 msgid "Ctrl+Alt+F11"
214457 msgstr "Ctrl+Alt+F11"
215458
216 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
217460 msgid "Ctrl+Alt+F12"
218461 msgstr "Ctrl+Alt+F12"
219462
220 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
221464 msgid "Ctrl+Alt+F1_0"
222465 msgstr "Ctrl+Alt+F10 (_0)"
223466
224 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
225468 msgid "Ctrl+Alt+F_1"
226469 msgstr "Ctrl+Alt+F1 (_1)"
227470
228 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
229472 msgid "Ctrl+Alt+F_2"
230473 msgstr "Ctrl+Alt+F2 (_2)"
231474
232 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
233476 msgid "Ctrl+Alt+F_3"
234477 msgstr "Ctrl+Alt+F3 (_3)"
235478
236 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
237480 msgid "Ctrl+Alt+F_4"
238481 msgstr "Ctrl+Alt+F4 (_4)"
239482
240 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
241484 msgid "Ctrl+Alt+F_5"
242485 msgstr "Ctrl+Alt+F5 (_5)"
243486
244 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
245488 msgid "Ctrl+Alt+F_6"
246489 msgstr "Ctrl+Alt+F6 (_6)"
247490
248 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
249492 msgid "Ctrl+Alt+F_7"
250493 msgstr "Ctrl+Alt+F7 (_7)"
251494
252 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
253496 msgid "Ctrl+Alt+F_8"
254497 msgstr "Ctrl+Alt+F8 (_8)"
255498
256 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
257500 msgid "Ctrl+Alt+F_9"
258501 msgstr "Ctrl+Alt+F9 (_9)"
259502
260 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
261504 msgid "Ctrl+Alt+_Backspace"
262505 msgstr "Ctrl+Alt+Backspace (_B)"
263506
264 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
265508 msgid "Ctrl+Alt+_Del"
266509 msgstr "Ctrl+Alt+Del (_D)"
267510
268 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "डिस्प्लेज्"
514
515 #: ../src/virt-viewer.xml.h:17
269516 msgid "Full screen"
270517 msgstr "पडदाभर"
271518
272 #: ../src/viewer.glade.h:17
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "रिलिज् कर्सर"
522
523 #: ../src/virt-viewer.xml.h:19
273524 msgid "Screenshot"
274 msgstr "स्क्रिनशॉट"
275
276 #: ../src/viewer.glade.h:18
525 msgstr "स्क्रीनशॉट"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "स्मार्टकार्ड अंतर्भुत करणे"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "स्मार्टकार्ड काढून टाकणे"
534
535 #: ../src/virt-viewer.xml.h:23
277536 msgid "_File"
278537 msgstr "फाइल (_F)"
279538
280 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
281540 msgid "_Help"
282541 msgstr "मदत (_H)"
283542
284 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
285544 msgid "_PrintScreen"
286545 msgstr "प्रिंटस्क्रिन (_P)"
287546
288 #: ../src/viewer.glade.h:21
547 #: ../src/virt-viewer.xml.h:26
289548 msgid "_Send key"
290 msgstr "कि पाठवा (_S)"
291
292 #: ../src/viewer.glade.h:22
549 msgstr "सेंड कि (_S)"
550
551 #: ../src/virt-viewer.xml.h:27
293552 msgid "_View"
294 msgstr "दृष्य (_V)"
295
296 #: ../src/viewer.glade.h:23
297 msgid "gtk-about"
298 msgstr "gtk-about"
299
300 #: ../src/viewer.glade.h:24
301 msgid "gtk-quit"
302 msgstr "gtk-quit"
303
304 #: ../src/viewer.glade.h:25
305 msgid "page 1"
306 msgstr "पृष्ठ 1"
307
308 #: ../src/viewer.glade.h:26
309 msgid "page 2"
310 msgstr "पृष्ठ 2"
311
553 msgstr "अवलोकन (_V)"
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "झूम करा (_Z)"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Geert Warrink <geert.warrink@onsnet.nu>, 2010, 2011.
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: virt-viewer\n"
9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/language/nl/)\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Language: nl\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr ""
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr ""
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr ""
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr ""
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr ""
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr ""
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr ""
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr ""
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr ""
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr ""
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr ""
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
84 msgid "Run '"
85 msgstr "Uitvoeren '"
86
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr ""
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr ""
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr ""
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "Zoom niveau in percentage van het venster"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr ""
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr ""
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
118
119 #. Setup command line options
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr ""
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr ""
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr ""
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr ""
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr ""
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr ""
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr ""
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr ""
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr ""
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr ""
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr ""
182
183 #: ../src/virt-viewer-about.xml.h:3
184 msgid ""
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr ""
188
189 #: ../src/virt-viewer-about.xml.h:5
190 msgid "The Fedora Translation Team"
191 msgstr ""
192
193 #: ../src/virt-viewer-about.xml.h:6
194 msgid ""
195 "This program is free software; you can redistribute it and/or modify\n"
196 "it under the terms of the GNU General Public License as published by\n"
197 "the Free Software Foundation; either version 2 of the License, or\n"
198 "(at your option) any later version.\n"
199 "\n"
200 "This program is distributed in the hope that it will be useful,\n"
201 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
202 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
203 "GNU General Public License for more details.\n"
204 "\n"
205 "You should have received a copy of the GNU General Public License\n"
206 "along with this program; if not, write to the Free Software\n"
207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
208 msgstr ""
209
210 #: ../src/virt-viewer-about.xml.h:20
211 msgid "virt-manager.org"
212 msgstr ""
213
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr ""
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr ""
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "Onbekend grafisch type voor de gast %s"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "Verbinden met ssh mislukte."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "Kan geen verbinding maken met kanaal, alleen SSH wordt ondersteund"
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "Verbinding maken met kanaal wordt niet ondersteund."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr ""
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr ""
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr ""
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "Ka niet verbinden met de grafische server %s"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr ""
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr ""
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr ""
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
281 msgid "Authentication required"
282 msgstr ""
283
284 #: ../src/virt-viewer-auth.xml.h:2
285 msgid "Password:"
286 msgstr ""
287
288 #: ../src/virt-viewer-auth.xml.h:3
289 msgid "Username:"
290 msgstr ""
291
292 #: ../src/virt-viewer-auth.xml.h:4
293 msgid "label"
294 msgstr ""
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s versie %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr ""
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr ""
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr ""
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr ""
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr ""
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr ""
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- Virtuele machine grafische console"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nGebruik: %s [OPTIES] DOMEIN-NAAM|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr ""
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr ""
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr ""
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr ""
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr ""
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr ""
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr ""
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr ""
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "Kan het grafische type voor de gast %s niet bepalen"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "Kan het grafische adres voor de gast %s niet bepalen"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "Kan de host voor de gast %s niet bepalen"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr ""
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr ""
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "Kan gast domein %s niet vinden"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr ""
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr ""
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr ""
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "Kan niet verbinden met libvirt met URI %s"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[geen]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
452 msgid "Automatically resize"
453 msgstr ""
454
455 #: ../src/virt-viewer.xml.h:2
456 msgid "Ctrl+Alt+F11"
457 msgstr ""
458
459 #: ../src/virt-viewer.xml.h:3
460 msgid "Ctrl+Alt+F12"
461 msgstr ""
462
463 #: ../src/virt-viewer.xml.h:4
464 msgid "Ctrl+Alt+F1_0"
465 msgstr ""
466
467 #: ../src/virt-viewer.xml.h:5
468 msgid "Ctrl+Alt+F_1"
469 msgstr ""
470
471 #: ../src/virt-viewer.xml.h:6
472 msgid "Ctrl+Alt+F_2"
473 msgstr ""
474
475 #: ../src/virt-viewer.xml.h:7
476 msgid "Ctrl+Alt+F_3"
477 msgstr ""
478
479 #: ../src/virt-viewer.xml.h:8
480 msgid "Ctrl+Alt+F_4"
481 msgstr ""
482
483 #: ../src/virt-viewer.xml.h:9
484 msgid "Ctrl+Alt+F_5"
485 msgstr ""
486
487 #: ../src/virt-viewer.xml.h:10
488 msgid "Ctrl+Alt+F_6"
489 msgstr ""
490
491 #: ../src/virt-viewer.xml.h:11
492 msgid "Ctrl+Alt+F_7"
493 msgstr ""
494
495 #: ../src/virt-viewer.xml.h:12
496 msgid "Ctrl+Alt+F_8"
497 msgstr ""
498
499 #: ../src/virt-viewer.xml.h:13
500 msgid "Ctrl+Alt+F_9"
501 msgstr ""
502
503 #: ../src/virt-viewer.xml.h:14
504 msgid "Ctrl+Alt+_Backspace"
505 msgstr ""
506
507 #: ../src/virt-viewer.xml.h:15
508 msgid "Ctrl+Alt+_Del"
509 msgstr ""
510
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr ""
514
515 #: ../src/virt-viewer.xml.h:17
516 msgid "Full screen"
517 msgstr ""
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr ""
522
523 #: ../src/virt-viewer.xml.h:19
524 msgid "Screenshot"
525 msgstr ""
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr ""
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr ""
534
535 #: ../src/virt-viewer.xml.h:23
536 msgid "_File"
537 msgstr ""
538
539 #: ../src/virt-viewer.xml.h:24
540 msgid "_Help"
541 msgstr ""
542
543 #: ../src/virt-viewer.xml.h:25
544 msgid "_PrintScreen"
545 msgstr ""
546
547 #: ../src/virt-viewer.xml.h:26
548 msgid "_Send key"
549 msgstr ""
550
551 #: ../src/virt-viewer.xml.h:27
552 msgid "_View"
553 msgstr ""
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr ""
+484
-238
po/or.po less more
0 # translation of virt-viewer.tip.virt-viewer.or.po to Oriya
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Manoj Kumar Giri <mgiri@redhat.com>, 2010.
3 #
4 # Translators:
5 # Manoj Kumar Giri <mgiri@redhat.com>, 2010, 2012.
56 msgid ""
67 msgstr ""
7 "Project-Id-Version: virt-viewer.tip.virt-viewer.or\n"
8 "Project-Id-Version: virt-viewer\n"
89 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-01-19 22:36+0000\n"
10 "PO-Revision-Date: 2010-02-01 12:55+0530\n"
11 "Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
12 "Language-Team: Oriya <oriya-it@googlegroups.com>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Oriya (http://www.transifex.net/projects/p/fedora/language/or/)\n"
1314 "MIME-Version: 1.0\n"
1415 "Content-Type: text/plain; charset=UTF-8\n"
1516 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17 "Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s ସଂସ୍କରଣ %s\n"
23
24 #: ../src/main.c:52
17 "Language: or\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "ମୂଳ"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "ବନ୍ଧନର ଉତ୍ସ"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "ଲକ୍ଷ୍ଯ"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "ବନ୍ଧନର ଲକ୍ଷ୍ଯ"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "ଉତ୍ସ ଗୁଣଧର୍ମ"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "ବାନ୍ଧିବା ପାଇଁ ଉତ୍ସରେ ଥିବା ଗୁଣଧର୍ମ"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "ଲକ୍ଷ୍ଯର ଗୁଣଧର୍ମ"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "ବାନ୍ଧିବା ପାଇଁ ଲକ୍ଷ୍ୟର ଗୁଣଧର୍ମ"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "ପତାକାଗୁଡିକ"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "ବନ୍ଧନ ପତାକାଗୁଡ଼ିକ"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer ସଂସ୍କରଣ %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2584 msgid "Run '"
2685 msgstr "ଚଲାନ୍ତୁ '"
2786
28 #: ../src/main.c:55
29 msgid "display version information"
30 msgstr "ସଂସ୍କରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
31
32 #: ../src/main.c:57
33 msgid "display verbose information"
34 msgstr "ଭର୍ବୋଜ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
35
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
38 msgstr "ବିନା ସ୍ୱୟଂଚାଳିତ ଟନେଲଗୁଡ଼ିକରେ ସିଧାସଳଖ ସଂଯୋଗ"
39
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "ହାଇପରଭାଇଜର ସହିତ ସଂଯୋଗ କରନ୍ତୁ"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "ଆରମ୍ଭ କରିବା ପାଇଁ ଡମେନକୁ ଅପେକ୍ଷା କରନ୍ତୁ"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "ପୁନଃଚାଳନ ପରେ ଡମେନ ସହିତ ପୁନଃସଂଯୋଗ କରନ୍ତୁ"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
54 msgstr "ତ୍ରୁଟି ନିବାରଣ ସୂଚନାକୁ ଦର୍ଶାନ୍ତୁ"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "ସଂସ୍କରଣ ସୂଚନା ଦେଖାନ୍ତୁ"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "ଶବ୍ଦାଡ଼ମ୍ବରପୂର୍ଣ୍ଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "ସ୍ୱୟଂଚାଳିତ ଟନେଲ ବିନା ସିଧାସଳଖ ସଂଯୋଗ"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "ୱିଣ୍ଡୋର ଆକାର ବୃଦ୍ଧି ସ୍ତର, ଶତକଡ଼ାରେ"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "ତ୍ରୁଟିନିବାରଣ ସୂଚନା ଦର୍ଶାନ୍ତୁ"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "ସ୍ପାଇସ ନିୟନ୍ତ୍ରକ ଯୋଗାଯୋଗ ମାଧ୍ଯମରେ ସଂଯୋଗକୁ ଖୋଲନ୍ତୁ"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
55118
56119 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "-ଆଭାସୀ ଯନ୍ତ୍ରର ଆଲେଖୀକ କୋନସୋଲ"
60
61 #: ../src/main.c:95
62 #, c-format
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- ସୁଦୂର ପ୍ରଦର୍ଶକ କ୍ଲାଏଣ୍ଟ "
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "ଆକାର ବୃଦ୍ଧି ସ୍ତର ନିଶ୍ଚିତ ଭାବରେ 10-200 ମଧ୍ଯରେ ରହିବା ଉଚିତ\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr " ସଂଯୋଗ ଆରମ୍ଭ କରିବାରେ ବିଫଳ"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "ନିୟନ୍ତ୍ରକ ଦ୍ୱାରା ପ୍ରଦର୍ଶନୀ ନିଷ୍କ୍ରିୟ ହୋଇଛି"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "ନିୟନ୍ତ୍ରକ ସଂଯୋଗ ଅସଫଳ ହେଲା:%s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "ସ୍ପାଇସ ଅଧିବେଶନ ପ୍ରସ୍ତୁତ ହୋଇପାରିଲା ନାହିଁ"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "ସ୍ପାଇସ ଅଧିବେଶନ ସେଟ କରୁଅଛି..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "URI ରୁ ସଂଯୋଗ ପ୍ରକାରକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "ଏହି ପ୍ରକାର ପାଇଁ ସ୍ପାଇସ ଅଧିବେଶନ ପ୍ରସ୍ତୁତ ହୋଇପାରିଲା ନାହିଁ: %s"
168
169 #. * Local variables:
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
173 #. * End:
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "GTK-VNC, SPICE-GTK ଏବଂ libvirt ସହାୟତାରେ ଏକ ସୁଦୂର ଡେସ୍କଟପ କ୍ଲାଏଣ୍ଟ ପ୍ରସ୍ତୁତ ହୋଇଛି"
178
179 #: ../src/virt-viewer-about.xml.h:2
180 msgid "About Glade"
181 msgstr "ଗ୍ଲେଡ ବିଷୟରେ"
182
183 #: ../src/virt-viewer-about.xml.h:3
63184 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "ବ୍ୟବହାର ବିଧି: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "ଅତିଥି %s ପାଇଁ VNC ସଂଯୋଗିକୀ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "ଅତିଥି %s ପାଇଁ VNC ହୋଷ୍ଟ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "VNC ସର୍ଭର %s ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "VNC ସର୍ଭର ସହିତ %s ଠାରେ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ: %s\n"
98 "ସଂଯୋଗକୁ ପୁଣିଥରେ ପୁନଃପ୍ରଚେଷ୍ଟା କରନ୍ତୁ?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "VNC ସର୍ଭର ସହିତ %s ଠାରେ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ\n"
107 "ଅସମର୍ଥିତ ବୈଧିକରଣ ପ୍ରକାର %d"
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "ଅତିଥି ଡମେନ %s କୁ ଖୋଜି ପାଇବେ ନାହିଁ"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %s ସହାୟତାରେ libvirt ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "[କିଛି ନାହିଁ]"
122
123 #.
124 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
128 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "ଗୋଟିଏ ସୁଦୂର ଡେସ୍କଟପ କ୍ଲାଏଣ୍ଟ GTK-VNC ଏବଂ libvirt ସହିତ ନିର୍ମିତ"
133
134 #: ../src/about.glade.h:2
135 msgid "About Glade"
136 msgstr "Glade ବିଷୟରେ"
137
138 #: ../src/about.glade.h:3
139 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "Copyright 2007-2008 Daniel P. Berrange\n"
144 "Copyright 2007-2008 Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
147190 msgid "The Fedora Translation Team"
148 msgstr "Fedora ଅନୁବାଦ ମଣ୍ଡଳୀ"
149
150 #: ../src/about.glade.h:6
191 msgstr "Fedora ଅନୁବାଦନ ଗୋଷ୍ଠି"
192
193 #: ../src/virt-viewer-about.xml.h:6
151194 msgid ""
152195 "This program is free software; you can redistribute it and/or modify\n"
153196 "it under the terms of the GNU General Public License as published by\n"
162205 "You should have received a copy of the GNU General Public License\n"
163206 "along with this program; if not, write to the Free Software\n"
164207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "This program is free software; you can redistribute it and/or modify\n"
167 "it under the terms of the GNU General Public License as published by\n"
168 "the Free Software Foundation; either version 2 of the License, or\n"
169 "(at your option) any later version.\n"
170 "\n"
171 "This program is distributed in the hope that it will be useful,\n"
172 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
173 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
174 "GNU General Public License for more details.\n"
175 "\n"
176 "You should have received a copy of the GNU General Public License\n"
177 "along with this program; if not, write to the Free Software\n"
178 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
179
180 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
181211 msgid "virt-manager.org"
182212 msgstr "virt-manager.org"
183213
184 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "ଏହା ହେଉଛି ଅନ୍ତିମ ଦୃଶ୍ୟମାନ ପ୍ରଦର୍ଶନୀ। ଆପଣ ବିଦାୟ ନେବାକୁ ଚାହୁଁଛନ୍ତି କି?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "%d କୁ ଅପେକ୍ଷା କରିଅଛି..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "ଅତିଥି %s ପାଇଁ ଅଜ୍ଞାତ ଲେଖାଚିତ୍ର ପ୍ରକାର"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh ସହିତ ସଂଯୋଗ ବିଫଳ ହୋଇଛି।"
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "ଚ୍ୟାନେଲ ସହିତ ସଂଯୋଗ କରିପାରିବେ ନାହିଁ, କେବଳ SSH ସମର୍ଥିତ।"
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "ଚ୍ୟାନେଲ ସହିତ ସଂଯୋଗ ଅସମର୍ଥିତ।"
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "ଆଲେଖିକ ସର୍ଭର ସହିତ ସଂଯୋଗ କରୁଅଛି"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "ଅତିଥି ଡମେନ ବନ୍ଦ ଅଛି"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "ଆଲେଖି ସର୍ଭର ସହ ସଂଯୁକ୍ତ"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "ଆଲେଖୀ ସର୍ଭର %s ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s ରେ ସୁଦୂର ଡେସ୍କଟପ ସର୍ଭର ସହିତ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ: %s\nପୁଣିଥରେ ଚେଷ୍ଟା କରିବେ କି?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "ସୁଦୂର ଡେସ୍କଟପ ସର୍ଭର ସହିତ ବୈଧିକରଣ କରିବାରେ ଅସମର୍ଥ: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "USB ଦିଗପରିବର୍ତ୍ତନ ତ୍ରୁଟି: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
185281 msgid "Authentication required"
186282 msgstr "ବୈଧିକରଣ ଆବଶ୍ଯକ"
187283
188 #: ../src/auth.glade.h:2
284 #: ../src/virt-viewer-auth.xml.h:2
189285 msgid "Password:"
190286 msgstr "ପ୍ରବେଶ ସଙ୍କେତ:"
191287
192 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
193289 msgid "Username:"
194290 msgstr "ଚାଳକ ନାମ:"
195291
196 #: ../src/auth.glade.h:4
197 msgid "gtk-cancel"
198 msgstr "gtk-cancel"
199
200 #: ../src/auth.glade.h:5
201 msgid "gtk-ok"
202 msgstr "gtk-ok"
203
204 #: ../src/auth.glade.h:6
292 #: ../src/virt-viewer-auth.xml.h:4
205293 msgid "label"
206 msgstr "ସୂଚକ"
207
208 #: ../src/viewer.glade.h:1
294 msgstr "ନାମପଟି"
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s ସଂସ୍କରଣ %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt ବ୍ୟବହାର କରି ସ୍ଥାନୀୟ ପ୍ରଦର୍ଶନୀ ସହିତ ସଂଲଗ୍ନ ହୋଇଛି"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "hypervisor ସହିତ ସଂଯୋଗ କରନ୍ତୁ"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "ଡମେନକୁ ଆରମ୍ଭ ହେବା ପାଇଁ ଅପେକ୍ଷା କରନ୍ତୁ"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "ପୁନଃଚାଳନ ପରେ ଡମେନ ସହିତ ପୁଣି ସଂଯୁକ୍ତ ହୋଇଛି"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "ସମ୍ପୂର୍ଣ୍ଣ ପରଦା ଧାରାରେ ଖୋଲନ୍ତୁ"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Virt ପ୍ରଦର୍ଶିକା"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "-ଆଭାସୀ ଯନ୍ତ୍ରର ଆଲେଖୀକ କୋନସୋଲ"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nବ୍ୟବହାର ବିଧି: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "ଦିଗ ପରିବର୍ତ୍ତନ ପାଇଁ USB ଉପକରଣଗୁଡ଼ିକୁ ବାଛନ୍ତୁ"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "ଅସମର୍ଥିତ ପ୍ରାଧିକରଣ ପ୍ରକାର %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହୋଇଛି"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB ଉପକରଣ ଚୟନ"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "ସମ୍ପୁର୍ଣ୍ଣ ପରଦା ଛାଡ଼ି ଦିଅନ୍ତୁ"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "ପୁନଚାଳନ ପାଇଁ ଅତିଥି ଡମେନକୁ ଅପେକ୍ଷା କରିଛି"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "ଅତିଥି %s ପାଇଁ ଆଲେଖିକ ପ୍ରକାରକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "ଅତିଥି %s ପାଇଁ ଆଲେଖିକ ଠିକଣାକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "ଅତିଥି %s ପାଇଁ ହୋଷ୍ଟ ନିର୍ଦ୍ଧାରଣ କରିପାରିବେ ନାହିଁ"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "ଅତିଥି ଡମେନକୁ ଖୋଜୁଅଛି"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "ନିର୍ମାଣ କରିବା ପାଇଁ ଅତିଥି ଡମେନକୁ ଅପେକ୍ଷା କରିଛି"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "ଅତିଥି ଡମେନ %s କୁ ଖୋଜି ପାଇବେ ନାହିଁ"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "ଅତିଥି ଡମେନ ସ୍ଥିତିକୁ ଯାଞ୍ଚ କରୁଅଛି"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "ଅତିଥି ଡମେନ ଆରମ୍ଭ ହେବାକୁ ଯାଉଛି"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "ସର୍ଭରକୁ ଆରମ୍ଭ କରିବା ପାଇଁ ଅତିଥି ଡମେନକୁ ଅପେକ୍ଷା କରିଛି"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "URI %s ସହାୟତାରେ libvirt ସହିତ ସଂଯୋଗ କରିବାରେ ଅସମର୍ଥ"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[କିଛି ନାହିଁ]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
209452 msgid "Automatically resize"
210 msgstr "ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଆକାର ପରିବର୍ତ୍ତନ କରନ୍ତୁ"
211
212 #: ../src/viewer.glade.h:2
453 msgstr "ସ୍ବୟଂଚାଳିତଭାବରେ ଆକାର କରିବର୍ତ୍ତନ କରନ୍ତୁ"
454
455 #: ../src/virt-viewer.xml.h:2
213456 msgid "Ctrl+Alt+F11"
214457 msgstr "Ctrl+Alt+F11"
215458
216 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
217460 msgid "Ctrl+Alt+F12"
218461 msgstr "Ctrl+Alt+F12"
219462
220 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
221464 msgid "Ctrl+Alt+F1_0"
222 msgstr "Ctrl+Alt+F10 (_0)"
223
224 #: ../src/viewer.glade.h:5
465 msgstr "Ctrl+Alt+F1_0"
466
467 #: ../src/virt-viewer.xml.h:5
225468 msgid "Ctrl+Alt+F_1"
226 msgstr "Ctrl+Alt+F1 (_1)"
227
228 #: ../src/viewer.glade.h:6
469 msgstr "Ctrl+Alt+F_1"
470
471 #: ../src/virt-viewer.xml.h:6
229472 msgid "Ctrl+Alt+F_2"
230 msgstr "Ctrl+Alt+F2 (_2)"
231
232 #: ../src/viewer.glade.h:7
473 msgstr "Ctrl+Alt+F_2"
474
475 #: ../src/virt-viewer.xml.h:7
233476 msgid "Ctrl+Alt+F_3"
234 msgstr "Ctrl+Alt+F3 (_3)"
235
236 #: ../src/viewer.glade.h:8
477 msgstr "Ctrl+Alt+F_3"
478
479 #: ../src/virt-viewer.xml.h:8
237480 msgid "Ctrl+Alt+F_4"
238 msgstr "Ctrl+Alt+F4 (_4)"
239
240 #: ../src/viewer.glade.h:9
481 msgstr "Ctrl+Alt+F_4"
482
483 #: ../src/virt-viewer.xml.h:9
241484 msgid "Ctrl+Alt+F_5"
242 msgstr "Ctrl+Alt+F5 (_5)"
243
244 #: ../src/viewer.glade.h:10
485 msgstr "Ctrl+Alt+F_5"
486
487 #: ../src/virt-viewer.xml.h:10
245488 msgid "Ctrl+Alt+F_6"
246 msgstr "Ctrl+Alt+F6 (_6)"
247
248 #: ../src/viewer.glade.h:11
489 msgstr "Ctrl+Alt+F_6"
490
491 #: ../src/virt-viewer.xml.h:11
249492 msgid "Ctrl+Alt+F_7"
250 msgstr "Ctrl+Alt+F7 (_7)"
251
252 #: ../src/viewer.glade.h:12
493 msgstr "Ctrl+Alt+F_7"
494
495 #: ../src/virt-viewer.xml.h:12
253496 msgid "Ctrl+Alt+F_8"
254 msgstr "Ctrl+Alt+F8 (_8)"
255
256 #: ../src/viewer.glade.h:13
497 msgstr "Ctrl+Alt+F_8"
498
499 #: ../src/virt-viewer.xml.h:13
257500 msgid "Ctrl+Alt+F_9"
258 msgstr "Ctrl+Alt+F9 (_9)"
259
260 #: ../src/viewer.glade.h:14
501 msgstr "Ctrl+Alt+F_9"
502
503 #: ../src/virt-viewer.xml.h:14
261504 msgid "Ctrl+Alt+_Backspace"
262 msgstr "Ctrl+Alt+Backspace (_B)"
263
264 #: ../src/viewer.glade.h:15
505 msgstr "Ctrl+Alt+_Backspace"
506
507 #: ../src/virt-viewer.xml.h:15
265508 msgid "Ctrl+Alt+_Del"
266 msgstr "Ctrl+Alt+Del (_D)"
267
268 #: ../src/viewer.glade.h:16
509 msgstr "Ctrl+Alt+_Del"
510
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "ପ୍ରଦର୍ଶନୀ"
514
515 #: ../src/virt-viewer.xml.h:17
269516 msgid "Full screen"
270 msgstr "ସମ୍ପୂର୍ଣ୍ଣ ପରଦା"
271
272 #: ../src/viewer.glade.h:17
517 msgstr "ସଂପୂର୍ଣ୍ଣ ପରଦା"
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "ସୂଚକକୁ ଛାଡ଼ନ୍ତୁ"
522
523 #: ../src/virt-viewer.xml.h:19
273524 msgid "Screenshot"
274 msgstr "ସ୍କ୍ରିନ୍ସଟ୍"
275
276 #: ../src/viewer.glade.h:18
525 msgstr "ଆଶୁଚିତ୍ର"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "ସ୍ମାର୍ଟକାର୍ଡ ଭର୍ତ୍ତିକରିବା"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "ସ୍ମାର୍ଟକାର୍ଡ ବାହାର କରିବା "
534
535 #: ../src/virt-viewer.xml.h:23
277536 msgid "_File"
278537 msgstr "ଫାଇଲ (_F)"
279538
280 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
281540 msgid "_Help"
282541 msgstr "ସହାୟତା (_H)"
283542
284 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
285544 msgid "_PrintScreen"
286 msgstr "PrintScreen (_P)"
287
288 #: ../src/viewer.glade.h:21
545 msgstr "ପରଦାକୁ ମୁଦ୍ରଣ କରନ୍ତୁ (_P)"
546
547 #: ../src/virt-viewer.xml.h:26
289548 msgid "_Send key"
290549 msgstr "କି ପଠାନ୍ତୁ (_S)"
291550
292 #: ../src/viewer.glade.h:22
551 #: ../src/virt-viewer.xml.h:27
293552 msgid "_View"
294 msgstr "ଦ୍ରୁଶ୍ଯ (_V)"
295
296 #: ../src/viewer.glade.h:23
297 msgid "gtk-about"
298 msgstr "gtk-about"
299
300 #: ../src/viewer.glade.h:24
301 msgid "gtk-quit"
302 msgstr "gtk-quit"
303
304 #: ../src/viewer.glade.h:25
305 msgid "page 1"
306 msgstr "ପୃଷ୍ଠା 1"
307
308 #: ../src/viewer.glade.h:26
309 msgid "page 2"
310 msgstr "ପୃଷ୍ଠା 2"
311
553 msgstr "ଦୃଶ୍ଯ (_V)"
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "ବଡ଼ କରନ୍ତୁ (_Z)"
+438
-224
po/pa.po less more
0 # SOME DESCRIPTIVE TITLE.
01 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
12 # This file is distributed under the same license as the PACKAGE package.
2 # Jaswinder Singh <jsingh@redhat.com>, 2010.
3 #
4 # Translators:
5 # Jaswinder Singh <jsingh@redhat.com>, 2010, 2012.
36 msgid ""
47 msgstr ""
5 "Project-Id-Version: \n"
8 "Project-Id-Version: virt-viewer\n"
69 "Report-Msgid-Bugs-To: \n"
7 "POT-Creation-Date: 2010-12-16 10:17+0000\n"
8 "PO-Revision-Date: 2010-12-21 12:25+0530\n"
9 "Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
10 "Language-Team: Punjabi Team\n"
11 "Language: pa\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Panjabi (Punjabi) <punjabi-users@lists.sf.net>\n"
1214 "MIME-Version: 1.0\n"
1315 "Content-Type: text/plain; charset=UTF-8\n"
1416 "Content-Transfer-Encoding: 8bit\n"
15 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16 "X-Generator: Virtaal 0.6.1\n"
17
18 #: ../src/main.c:34
19 #, c-format
20 msgid "%s version %s\n"
21 msgstr "%s ਵਰਜਨ %s\n"
22
23 #: ../src/main.c:53
17 "Language: pa\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "ਸਰੋਤ"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "ਬਾਈਂਡਿੰਗ ਦਾ ਸਰੋਤ"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "ਟਾਰਗਿਟ"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "ਬਾਈਂਡਿੰਗ ਦਾ ਟਾਰਗਿਟ"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "ਸਰੋਤ ਪਰਾਪਰਟੀ"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "ਬਾਈਂਡ ਕਰਨ ਲਈ ਸਰੋਤ ਉੱਪਰ ਪਰਾਪਰਟੀ"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "ਟਾਰਗਿਟ ਪਰਾਪਰਟੀ"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "ਬਾਈਂਡ ਕਰਨ ਲਈ ਟਾਰਗਿਟ ਉੱਪਰ ਪਰਾਪਰਟੀ"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "ਫਲੈਗ"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "ਬਾਈਂਡਿੰਗ ਫਲੈਗ"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer ਵਰਜਨ %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2484 msgid "Run '"
2585 msgstr "ਚਲਾਓ '"
2686
27 #: ../src/main.c:56
28 msgid "display version information"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
2989 msgstr "ਵਰਜਨ ਜਾਣਕਾਰੀ ਵੇਖਾਓ"
3090
31 #: ../src/main.c:58
32 msgid "display verbose information"
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
3393 msgstr "ਵਰਬੋਜ਼ ਜਾਣਕਾਰੀ ਵੇਖਾਓ"
3494
35 #: ../src/main.c:60
36 msgid "direct connection with no automatic tunnels"
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
3797 msgstr "ਬਿਨਾਂ ਕਿਸੇ ਆਟੋਮੈਟਿਕ ਟੰਨਲ ਡਾਇਰੈਕਟ ਕੁਨੈਕਸ਼ਨ"
3898
39 #: ../src/main.c:62
40 msgid "connect to hypervisor"
41 msgstr "ਹਾਈਪਰਵਾਈਸਰ ਨਾਲ ਜੋੜੋ"
42
43 #: ../src/main.c:64
44 msgid "wait for domain to start"
45 msgstr "ਡੋਮੇਲ ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ"
46
47 #: ../src/main.c:66
48 msgid "reconnect to domain upon restart"
49 msgstr "ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੇ ਡੋਮੇਨ ਨਾ ਮੁੜ-ਜੁੜੋ"
50
51 #: ../src/main.c:68
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
52100 msgid "Zoom level of window, in percentage"
53101 msgstr "ਵਿੰਡੋ ਦਾ ਜ਼ੂਮ ਲੈਵਲ, ਪ੍ਰਤੀਸ਼ਤ ਵਿੱਚ"
54102
55 #: ../src/main.c:70
56 msgid "display debugging information"
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
57105 msgstr "ਡੀਬੱਗਿੰਗ ਜਾਣਕਾਰੀ ਵੇਖਾਓ"
58106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "ਸਪਾਈਸ ਕੰਟਰੋਲਰ ਕਮਿਊਨੀਕੇਸ਼ ਵਰਤ ਕੇ ਕੁਨੈਕਸ਼ਨ ਖੋਲੋ"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
118
59119 #. Setup command line options
60 #: ../src/main.c:82
61 msgid "- Virtual machine graphical console"
62 msgstr "- ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਗਰਾਫੀਕਲ ਕੰਸੋਲ"
63
64 #: ../src/main.c:98
65 #, c-format
66 msgid ""
67 "\n"
68 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
69 "\n"
70 "%s\n"
71 "\n"
72 msgstr ""
73 "\n"
74 "ਵਰਤੋਂ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
75 "\n"
76 "%s\n"
77 "\n"
78
79 #: ../src/viewer.c:805
80 #, c-format
81 msgid "Cannot determine the graphic type for the guest %s"
82 msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕ ਕਿਸਮ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ"
83
84 #: ../src/viewer.c:817
85 #, c-format
86 msgid "Unknown graphic type for the guest %s"
87 msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕਸ ਕਿਸਮ ਅਣਜਾਣ ਹੈ"
88
89 #: ../src/viewer.c:824
90 #, c-format
91 msgid "Cannot determine the graphic port for the guest %s"
92 msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕ ਪੋਰਟ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ"
93
94 #: ../src/viewer.c:830
95 #, c-format
96 msgid "Cannot determine the host for the guest %s"
97 msgstr "ਗਿਸਟ %s ਲਈ ਹੋਸਟ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ"
98
99 #: ../src/viewer.c:856
100 msgid "Connect to ssh failed."
101 msgstr "ssh ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ।"
102
103 #: ../src/viewer.c:858
104 msgid "Can't connect to channel, SSH only supported."
105 msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜ ਨਹੀਂ ਸਕਦਾ, ਸਿਰਫ SSH ਨੂੰ ਸਹਿਯੋਗ ਹੈ।"
106
107 #: ../src/viewer.c:863
108 msgid "Connect to channel unsupported."
109 msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜਨ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।"
110
111 #: ../src/viewer.c:1006
112 #, c-format
113 msgid "Unable to connect to the graphic server %s"
114 msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ %s ਨਾਲ ਜੁੜਨ ਤੋਂ ਅਸਮਰਥ"
115
116 #: ../src/viewer.c:1053
117 #, c-format
118 msgid "Cannot find guest domain %s"
119 msgstr "ਗਿਸਟ ਡੋਮੇਨ %s ਨਹੀਂ ਲੱਭ ਸਕਿਆ"
120
121 #: ../src/viewer.c:1161
122 #, c-format
123 msgid "Unable to connect to libvirt with URI %s"
124 msgstr "libvirt ਨੂੰ URI %s ਨਾਲ ਜੋੜ ਨਹੀਂ ਸਕਿਆ"
125
126 #: ../src/viewer.c:1162
127 msgid "[none]"
128 msgstr "[ਕੋਈ ਨਹੀਂ]"
129
130 #: ../src/display-vnc.c:142
131 #, c-format
132 msgid ""
133 "Unable to authenticate with VNC server at %s\n"
134 "Unsupported authentication type %d"
135 msgstr ""
136 "VNC ਸਰਵਰ ਨਾਲ %s ਤੇ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਤੋਂ ਅਸਮਰਥ\n"
137 "ਨਾ-ਸਹਿਯੋਗੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਿਸਮ %d"
138
139 #: ../src/display-vnc.c:158
140 #, c-format
141 msgid ""
142 "Unable to authenticate with VNC server at %s: %s\n"
143 "Retry connection again?"
144 msgstr ""
145 "VNC ਸਰਵਰ ਨਾਲ %s ਤੋ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਵਿੱਚ ਅਸਮਰਥ: %s\n"
146 "ਕੁਨੈਕਸ਼ਨ ਲਈ ਮਉੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ?"
147
148 #.
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਂਈਟ"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "ਜ਼ੂਮ ਲੈਵਲ 10-200 ਵਿਚਕਾਰ ਹੋਣਾ ਜਰੂਰੀ ਹੈ\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "ਕੁਨੈਕਸ਼ਨ ਚਾਲੂ ਕਰਨ ਵਿੱਚ ਫੇਲ"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "ਕੰਟਰੋਲ ਦੁਆਰਾ ਦਰਸ਼ਕ ਅਯੋਗ ਕੀਤਾ ਹੈ"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "ਕੰਟਰੋਲਰ ਕੁਨੈਕਸ਼ਨ ਫੇਲ: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "ਸਪਾਈਸ ਕੁਨੈਕਸ਼ਨ ਬਣਾ ਨਹੀਂ ਸਕਿਆ"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "ਸਪਾਈਸ ਕੁਨੈਕਸ਼ਨ ਬਣਾ ਰਿਹਾ ਹੈ..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "URI ਤੋਂ ਕੁਨੈਕਸ਼ਨ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਦਾ"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "ਇਸ ਕਿਸਮ ਲਈ ਸ਼ੈਸ਼ਨ ਨਹੀਂ ਬਣਾ ਸਕਿਆ: %s"
168
149169 #. * Local variables:
150 #. * c-indent-level: 8
151 #. * c-basic-offset: 8
152 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
153173 #. * End:
154 #.
155 #: ../src/about.glade.h:1
156 msgid "A remote desktop client built with GTK-VNC and libvirt"
157 msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਂਈਟ ਜੋ GTK-VNC ਅਤੇ libvirt ਨਾਲ ਬਣਿਆ ਹੈ"
158
159 #: ../src/about.glade.h:2
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਕਲਾਂਈਟ GTK-VNC, SPICE-GTK ਅਤੇ libvirt ਨਾਲ ਬਣਾਇਆ ਗਿਆ ਹੈ"
178
179 #: ../src/virt-viewer-about.xml.h:2
160180 msgid "About Glade"
161181 msgstr "ਗਲੇਡ ਬਾਰੇ"
162182
163 #: ../src/about.glade.h:3
183 #: ../src/virt-viewer-about.xml.h:3
164184 msgid ""
165 "Copyright 2007-2008 Daniel P. Berrange\n"
166 "Copyright 2007-2008 Red Hat, Inc."
167 msgstr ""
168 "Copyright 2007-2008 Daniel P. Berrange\n"
169 "Copyright 2007-2008 Red Hat, Inc."
170
171 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
172190 msgid "The Fedora Translation Team"
173191 msgstr "ਫੇਡੋਰਾ ਅਨੁਵਾਦ ਟੀਮ"
174192
175 #: ../src/about.glade.h:6
193 #: ../src/virt-viewer-about.xml.h:6
176194 msgid ""
177195 "This program is free software; you can redistribute it and/or modify\n"
178196 "it under the terms of the GNU General Public License as published by\n"
187205 "You should have received a copy of the GNU General Public License\n"
188206 "along with this program; if not, write to the Free Software\n"
189207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
190 msgstr ""
191 "ਇਹ ਪਰੋਗਰਾਮ ਫਰੀ ਸਾਫਟਵੇਅਰ ਹੈ; ਤੁਸੀਂ ਇਸਨੂੰ ਮੁੜ-ਵੰਡ ਅਤੇ/ਜਾਂ ਸੋਧ ਕਰ ਸਕਦੇ ਹੋ\n"
192 "GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਅਧੀਨ ਜੋ ਫਰੀ\n"
193 "ਸਾਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ; ਲਾਈਸੰਸ ਦਾ ਵਰਜਨ 2, ਜਾਂ\n"
194 "(ਤੁਹਾਡੀ ਚੋਂ ਮੁਤਾਬਕ) ਕੋਈ ਬਾਅਦ ਵਾਲਾ ਵਰਜਨ\n"
195 "\n"
196 "ਇਹ ਪਰੋਗਰਾਮ ਇਸ ਉਦੇਸ਼ ਨਾਲ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੈ ਕਿ ਇਹ ਵਰਤਣਯੋਗ ਹੋਵੇਗਾ,\n"
197 "ਪਰ ਕਿਨਾਂ ਕਿਸੇ ਵਾਰੰਟੀ; ਇੱਥੋਂ ਤੱਕ ਕਿ ਬਿਨਾਂ ਕਿਸੇ ਵਪਾਰਿਕਤਾ ਵਾਰੰਟੀ\n"
198 "ਜਾਂ ਕਿਸੇ ਖਾਸ ਉਦੇਸ਼ ਦੀ ਪੂਰਤੀ ਲਈ। ਵਧੇਰੇ ਵਿਸਥਾਰ ਲਈ\n"
199 "GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਵੇਖੋ।\n"
200 "\n"
201 "ਤੁਹਾਨੂੰ ਇਸ ਪਰੋਗਰਾਮ ਨਾਲ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੰਸ ਦੀ ਕਾਪੀ\n"
202 "ਮਿਲਨੀ ਚਾਹੀਦੀ ਹੈ; ਜੇ ਨਹੀਂ, ਤਾਂ ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਈਊਨਡੇਸ਼ਨ,\n"
203 "Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ਨੂੰ ਲਿਖੋ\n"
204
205 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
206211 msgid "virt-manager.org"
207212 msgstr "virt-manager.org"
208213
209 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "ਇਹ ਆਖਰੀ ਦਿਸਣਯੋਗ ਝਲਕ ਹੈ। ਕੀ ਤੁਸੀਂ ਬੰਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "ਝਲਕ %d ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕਸ ਕਿਸਮ ਅਣਜਾਣ ਹੈ"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh ਨਾਲ ਜੁੜਨ ਤੋਂ ਫੇਲ ਹੋਇਆ।"
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜ ਨਹੀਂ ਸਕਦਾ, ਸਿਰਫ SSH ਨੂੰ ਸਹਿਯੋਗ ਹੈ।"
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "ਚੈਨਲ ਨਾਲ ਜੁੜਨ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ।"
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ ਨਾਲ ਜੁੜ ਰਿਹਾ ਹੈ"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਸ਼ੱਟ-ਡਾਊਨ ਹੋ ਗਿਆ ਹੈ"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ ਨਾਲ ਜੁੜ ਗਿਆ ਹੈ"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "ਗਰਾਫਿਕਸ ਸਰਵਰ %s ਨਾਲ ਜੁੜਨ ਤੋਂ ਅਸਮਰਥ"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s ਤੋਂ ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਸਰਵਰ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਤੋਂ ਅਸਮਰਥ: %s\nਕੁਨੈਕਸ਼ਨ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਹੈ?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "ਰਿਮੋਟ ਸਰਵਰ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਤੋਂ ਅਸਮਰਥ: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "USB ਰੀਡਾਇਰੈਕਸ਼ਨ ਗਲਤੀ: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
210281 msgid "Authentication required"
211 msgstr "ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੈ"
212
213 #: ../src/auth.glade.h:2
282 msgstr "ਪ੍ਰਮਾਣਕਿਤਾ ਲੋੜੀਦੀ ਹੈ"
283
284 #: ../src/virt-viewer-auth.xml.h:2
214285 msgid "Password:"
215286 msgstr "ਪਾਸਵਰਡ:"
216287
217 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
218289 msgid "Username:"
219 msgstr "ਯੂਜ਼ਰ-ਨਾਂ:"
220
221 #: ../src/auth.glade.h:4
222 msgid "gtk-cancel"
223 msgstr "gtk-ਰੱਦ"
224
225 #: ../src/auth.glade.h:5
226 msgid "gtk-ok"
227 msgstr "gtk-ਠੀਕ"
228
229 #: ../src/auth.glade.h:6
290 msgstr "ਯੂਜ਼ਰ ਨਾਂ:"
291
292 #: ../src/virt-viewer-auth.xml.h:4
230293 msgid "label"
231294 msgstr "ਲੇਬਲ"
232295
233 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s ਵਰਜਨ %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt ਵਰਤ ਕੇ ਲੋਕਲ ਡਿਸਪਲੇਅ ਨਾਲ ਜੁੜੋ"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "ਹਾਈਪਰਵਾਈਸਰ ਨਾਲ ਜੋੜੋ"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "ਡੋਮੇਲ ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "ਮੁੜ-ਚਾਲੂ ਹੋਣ ਤੇ ਡੋਮੇਨ ਨਾ ਮੁੜ-ਜੁੜੋ"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "ਪੂਰੀ ਸਕਰੀਨ ਮੋਡ ਵਿੱਚ ਖੋਲੋ"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Virt ਝਲਕਾਰਾ"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਗਰਾਫੀਕਲ ਕੰਸੋਲ"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nਵਰਤੋਂ: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "ਰੀਡਾਇਰੈਕਸ਼ਨ ਲਈ USB ਜੰਤਰ ਚੁਣੋ"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "ਨਾ-ਸਹਿਯੋਗੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਿਸਮ %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB ਜੰਤਰ ਚੋਣ"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "ਪੂਰੀ ਸਕਰੀਨ ਛੱਡੋ"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਮੁੜ-ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕ ਕਿਸਮ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "ਗਿਸਟ %s ਲਈ ਗਰਾਫਿਕਸ ਐਡਰੈੱਸ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਿਆ"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "ਗਿਸਟ %s ਲਈ ਹੋਸਟ ਪਤਾ ਨਹੀਂ ਕਰ ਸਕਦਾ"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਲੱਭ ਰਿਹਾ ਹੈ"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਬਣਨ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "ਗਿਸਟ ਡੋਮੇਨ %s ਨਹੀਂ ਲੱਭ ਸਕਿਆ"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਹਾਲਤ ਜਾਂਚ ਰਿਹਾ ਹੈ"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਚਾਲੂ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "ਗਿਸਟ ਡੋਮੇਨ ਦੁਆਰਾ ਸਰਵਰ ਚਾਲੂ ਕਰਨ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "libvirt ਨੂੰ URI %s ਨਾਲ ਜੋੜ ਨਹੀਂ ਸਕਿਆ"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[ਕੋਈ ਨਹੀਂ]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
234452 msgid "Automatically resize"
235453 msgstr "ਆਟੋਮੈਟਿਕ ਮੁੜ-ਅਕਾਰ"
236454
237 #: ../src/viewer.glade.h:2
455 #: ../src/virt-viewer.xml.h:2
238456 msgid "Ctrl+Alt+F11"
239457 msgstr "Ctrl+Alt+F11"
240458
241 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
242460 msgid "Ctrl+Alt+F12"
243461 msgstr "Ctrl+Alt+F12"
244462
245 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
246464 msgid "Ctrl+Alt+F1_0"
247465 msgstr "Ctrl+Alt+F1_0"
248466
249 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
250468 msgid "Ctrl+Alt+F_1"
251469 msgstr "Ctrl+Alt+F_1"
252470
253 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
254472 msgid "Ctrl+Alt+F_2"
255473 msgstr "Ctrl+Alt+F_2"
256474
257 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
258476 msgid "Ctrl+Alt+F_3"
259477 msgstr "Ctrl+Alt+F_3"
260478
261 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
262480 msgid "Ctrl+Alt+F_4"
263481 msgstr "Ctrl+Alt+F_4"
264482
265 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
266484 msgid "Ctrl+Alt+F_5"
267485 msgstr "Ctrl+Alt+F_5"
268486
269 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
270488 msgid "Ctrl+Alt+F_6"
271489 msgstr "Ctrl+Alt+F_6"
272490
273 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
274492 msgid "Ctrl+Alt+F_7"
275493 msgstr "Ctrl+Alt+F_7"
276494
277 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
278496 msgid "Ctrl+Alt+F_8"
279497 msgstr "Ctrl+Alt+F_8"
280498
281 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
282500 msgid "Ctrl+Alt+F_9"
283501 msgstr "Ctrl+Alt+F_9"
284502
285 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
286504 msgid "Ctrl+Alt+_Backspace"
287505 msgstr "Ctrl+Alt+_Backspace"
288506
289 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
290508 msgid "Ctrl+Alt+_Del"
291509 msgstr "Ctrl+Alt+_Del"
292510
293 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "ਝਲਕ"
514
515 #: ../src/virt-viewer.xml.h:17
294516 msgid "Full screen"
295517 msgstr "ਪੂਰਾ ਪਰਦਾ"
296518
297 #: ../src/viewer.glade.h:17
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "ਕਰਸਰ ਛੱਡੋ"
522
523 #: ../src/virt-viewer.xml.h:19
298524 msgid "Screenshot"
299 msgstr "ਸਕਰੀਨਸ਼ਾਟ"
300
301 #: ../src/viewer.glade.h:18
525 msgstr "ਸਕਰੀਨ-ਸ਼ਾਟ"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "ਸਮਾਰਟ-ਕਾਰਡ ਜੋੜਨਾ"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "ਸਮਾਰਡ-ਕਾਰਡ ਹਟਾਉਣਾ"
534
535 #: ../src/virt-viewer.xml.h:23
302536 msgid "_File"
303537 msgstr "ਫਾਇਲ(_F)"
304538
305 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
306540 msgid "_Help"
307 msgstr "ਸਹਾਇਤਾ(_H)"
308
309 #: ../src/viewer.glade.h:20
541 msgstr "ਮੱਦਦ(_H)"
542
543 #: ../src/virt-viewer.xml.h:25
310544 msgid "_PrintScreen"
311545 msgstr "ਪ੍ਰਿੰਟ-ਸਕਰੀਨ(_P)"
312546
313 #: ../src/viewer.glade.h:21
547 #: ../src/virt-viewer.xml.h:26
314548 msgid "_Send key"
315549 msgstr "ਕੁੰਜੀ ਭੇਜੋ(_S)"
316550
317 #: ../src/viewer.glade.h:22
551 #: ../src/virt-viewer.xml.h:27
318552 msgid "_View"
319553 msgstr "ਵੇਖੋ(_V)"
320554
321 #: ../src/viewer.glade.h:23
555 #: ../src/virt-viewer.xml.h:28
322556 msgid "_Zoom"
323 msgstr "ਜ਼ੂਮ(_Z)"
324
325 #: ../src/viewer.glade.h:24
326 msgid "gtk-about"
327 msgstr "gtk-ਬਾਰੇ"
328
329 #: ../src/viewer.glade.h:25
330 msgid "gtk-quit"
331 msgstr "gtk-ਬੰਦ"
332
333 #: ../src/viewer.glade.h:26
334 msgid "page 1"
335 msgstr "ਪੇਜ਼ 1"
336
337 #: ../src/viewer.glade.h:27
338 msgid "page 2"
339 msgstr "ਪੇਜ਼ 2"
340
341 #: ../src/viewer.glade.h:28
342 msgid "page 3"
343 msgstr "ਪੇਜ਼ 3"
557 msgstr "ਜ਼ੂਮ(_Z)"
+440
-226
po/pl.po less more
0 # translation of pl.po to Polish
1 # Piotr Drąg <piotrdrag@gmail.com>, 2010.
2 #
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Piotr Drąg <piotrdrag@gmail.com>, 2010, 2012.
36 msgid ""
47 msgstr ""
5 "Project-Id-Version: pl\n"
8 "Project-Id-Version: virt-viewer\n"
69 "Report-Msgid-Bugs-To: \n"
7 "POT-Creation-Date: 2011-02-04 07:50+0000\n"
8 "PO-Revision-Date: 2011-02-04 12:15+0100\n"
9 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
10 "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Polish (http://www.transifex.net/projects/p/fedora/language/pl/)\n"
1114 "MIME-Version: 1.0\n"
1215 "Content-Type: text/plain; charset=UTF-8\n"
1316 "Content-Transfer-Encoding: 8bit\n"
14
15 #: ../src/main.c:34
16 #, c-format
17 msgid "%s version %s\n"
18 msgstr "%s wersja %s\n"
19
20 #: ../src/main.c:53
17 "Language: pl\n"
18 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "Źródło"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "Źródło dowiązania"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "Cel"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "Cel dowiązania"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "Właściwość źródła"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "Właściwość źródła do dowiązania"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "Właściwość celu"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "Właściwość celu do dowiązania"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "Flagi"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "Flagi dowiązania"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer wersja %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2184 msgid "Run '"
2285 msgstr "Należy wykonać \""
2386
24 #: ../src/main.c:56
25 msgid "display version information"
26 msgstr "wyświetla informację o wersji"
27
28 #: ../src/main.c:58
29 msgid "display verbose information"
30 msgstr "wyświetla więcej informacji"
31
32 #: ../src/main.c:60
33 msgid "direct connection with no automatic tunnels"
34 msgstr "bezpośrednie połączenie bez automatycznych tuneli"
35
36 #: ../src/main.c:62
37 msgid "connect to hypervisor"
38 msgstr "łączy z nadzorcą"
39
40 #: ../src/main.c:64
41 msgid "wait for domain to start"
42 msgstr "oczekuje na uruchomienie domeny"
43
44 #: ../src/main.c:66
45 msgid "reconnect to domain upon restart"
46 msgstr "ponownie łączy z domeną po ponownym uruchomieniu"
47
48 #: ../src/main.c:68
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "Wyświetla informację o wersji"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "Wyświetla więcej informacji"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "Bezpośrednie połączenie bez automatycznych tuneli"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
49100 msgid "Zoom level of window, in percentage"
50101 msgstr "Poziom powiększenia okna, w procentach"
51102
52 #: ../src/main.c:70
53 msgid "display debugging information"
54 msgstr "wyświetla informacje o debugowaniu"
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "Wyświetla informacje o debugowaniu"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "Otwiera połączenie używając komunikacji kontrolera Spice"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
55118
56119 #. Setup command line options
57 #: ../src/main.c:82
58 msgid "- Virtual machine graphical console"
59 msgstr "- graficzna konsola maszyny wirtualnej"
60
61 #: ../src/main.c:98
62 #, c-format
63 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "Użycie: %s [OPCJE] NAZWA-DOMENY|IDENTYFIKATOR|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:830
77 #, c-format
78 msgid "Cannot determine the graphic type for the guest %s"
79 msgstr "Nie można określić typu grafiki dla gościa %s"
80
81 #: ../src/viewer.c:842
82 #, c-format
83 msgid "Unknown graphic type for the guest %s"
84 msgstr "Nieznany typ grafiki dla gościa %s"
85
86 #: ../src/viewer.c:852
87 #, c-format
88 msgid "Cannot determine the graphic address for the guest %s"
89 msgstr "Nie można określić adresu grafiki dla gościa %s"
90
91 #: ../src/viewer.c:861
92 #, c-format
93 msgid "Cannot determine the host for the guest %s"
94 msgstr "Nie można określić gospodarza dla gościa %s"
95
96 #: ../src/viewer.c:885
97 msgid "Connect to ssh failed."
98 msgstr "Połączenie z ssh nie powiodło się."
99
100 #: ../src/viewer.c:887
101 msgid "Can't connect to channel, SSH only supported."
102 msgstr "Nie można połączyć się z kanałem, obsługiwane jest tylko SSH."
103
104 #: ../src/viewer.c:892
105 msgid "Connect to channel unsupported."
106 msgstr "Łączenie z kanałem jest nieobsługiwane."
107
108 #: ../src/viewer.c:1049
109 #, c-format
110 msgid "Unable to connect to the graphic server %s"
111 msgstr "Nie można połączyć się z serwerem grafiki %s"
112
113 #: ../src/viewer.c:1096
114 #, c-format
115 msgid "Cannot find guest domain %s"
116 msgstr "Nie można odnaleźć domeny gościa %s"
117
118 #: ../src/viewer.c:1204
119 #, c-format
120 msgid "Unable to connect to libvirt with URI %s"
121 msgstr "Nie można połączyć się z biblioteką libvirt za pomocą adresu URL %s"
122
123 #: ../src/viewer.c:1205
124 msgid "[none]"
125 msgstr "[brak]"
126
127 #: ../src/display-vnc.c:142
128 #, c-format
129 msgid ""
130 "Unable to authenticate with VNC server at %s\n"
131 "Unsupported authentication type %d"
132 msgstr ""
133 "Nie można uwierzytelnić z serwerem VNC na %s\n"
134 "Nieobsługiwany typ uwierzytelniania %d"
135
136 #: ../src/display-vnc.c:158
137 #, c-format
138 msgid ""
139 "Unable to authenticate with VNC server at %s: %s\n"
140 "Retry connection again?"
141 msgstr ""
142 "Nie można uwierzytelnić z serwerem VNC na %s: %s\n"
143 "Ponownie ponowić połączenie?"
144
145 #.
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- zdalna przeglądarka klientów"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "Poziom powiększenia musi być w zakresie 10-200\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "Zainicjowanie połączenia się nie powiodło"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "Ekran został wyłączony przez kontroler"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "Połączenie kontrolera się nie powiodło: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "Nie można utworzyć sesji Spice"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "Ustawianie sesji Spice..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "Nie można ustalić typu połączenia z adresu URI"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "Nie można utworzyć sesji dla tego typu: %s"
168
146169 #. * Local variables:
147 #. * c-indent-level: 8
148 #. * c-basic-offset: 8
149 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
150173 #. * End:
151 #.
152 #: ../src/about.glade.h:1
153 msgid "A remote desktop client built with GTK-VNC and libvirt"
154 msgstr "Zdalny klient zbudowany za pomocą bibliotek GTK-VNC i libvirt"
155
156 #: ../src/about.glade.h:2
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "Klient zdalnego pulpitu zbudowany za pomocą bibliotek GTK-VNC, SPICE-GTK i libvirt"
178
179 #: ../src/virt-viewer-about.xml.h:2
157180 msgid "About Glade"
158181 msgstr "O programie Glade"
159182
160 #: ../src/about.glade.h:3
183 #: ../src/virt-viewer-about.xml.h:3
161184 msgid ""
162 "Copyright 2007-2008 Daniel P. Berrange\n"
163 "Copyright 2007-2008 Red Hat, Inc."
164 msgstr ""
165 "Copyright 2007-2008 Daniel P. Berrange\n"
166 "Copyright 2007-2008 Red Hat, Inc."
167
168 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
169190 msgid "The Fedora Translation Team"
170191 msgstr "Zespół tłumaczenia Fedory"
171192
172 #: ../src/about.glade.h:6
193 #: ../src/virt-viewer-about.xml.h:6
173194 msgid ""
174195 "This program is free software; you can redistribute it and/or modify\n"
175196 "it under the terms of the GNU General Public License as published by\n"
184205 "You should have received a copy of the GNU General Public License\n"
185206 "along with this program; if not, write to the Free Software\n"
186207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
187 msgstr ""
188 "Niniejszy program jest wolnym oprogramowaniem; można go rozprowadzać\n"
189 "dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej\n"
190 "GNU, wydanej przez Fundację Wolnego Oprogramowania (Free Software\n"
191 "Foundation) - według wersji drugiej tej Licencji lub którejś z\n"
192 "późniejszych wersji.\n"
193 "\n"
194 "Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on\n"
195 "użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej\n"
196 "gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH\n"
197 "ZASTOSOWAŃ. W celu uzyskania bliższych informacji należy zapoznać\n"
198 "się z Powszechną Licencją Publiczną GNU.\n"
199 "\n"
200 "Z pewnością wraz z niniejszym programem dostarczono także egzemplarz\n"
201 "Powszechnej Licencji Publicznej GNU (GNU General Public License);\n"
202 "jeśli nie - proszę napisać do Free Software Foundation, Inc., 51\n"
203 "Franklin Street, Fifth Floor, Boston, MA 02110-130159 USA.\n"
204
205 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
206211 msgid "virt-manager.org"
207212 msgstr "virt-manager.org"
208213
209 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "To jest ostatni widoczny ekran. Zakończyć?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "Oczekiwanie na ekran %d..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "Nieznany typ grafiki dla gościa %s"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "Połączenie z ssh się nie powiodło."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "Nie można połączyć się z kanałem, obsługiwane jest tylko SSH."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "Łączenie z kanałem jest nieobsługiwane."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "Łączenie z serwerem grafiki"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "Domena gościa została wyłączona"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "Połączono z serwerem grafiki"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "Nie można połączyć się z serwerem grafiki %s"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "Nie można uwierzytelnić z serwerem zdalnego pulpitu w %s: %s\nPonowić połączenie?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "Nie można uwierzytelnić z serwerem zdalnego pulpitu: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "Błąd przekierowania USB: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
210281 msgid "Authentication required"
211282 msgstr "Wymagane jest uwierzytelnienie"
212283
213 #: ../src/auth.glade.h:2
284 #: ../src/virt-viewer-auth.xml.h:2
214285 msgid "Password:"
215286 msgstr "Hasło:"
216287
217 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
218289 msgid "Username:"
219290 msgstr "Nazwa użytkownika:"
220291
221 #: ../src/auth.glade.h:4
222 msgid "gtk-cancel"
223 msgstr "gtk-cancel"
224
225 #: ../src/auth.glade.h:5
226 msgid "gtk-ok"
227 msgstr "gtk-ok"
228
229 #: ../src/auth.glade.h:6
292 #: ../src/virt-viewer-auth.xml.h:4
230293 msgid "label"
231294 msgstr "etykieta"
232295
233 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s wersja %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "Łączy z lokalnym ekranem za pomocą biblioteki libvirt"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "Łączy z nadzorcą"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "Oczekuje na uruchomienie domeny"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "Ponownie łączy z domeną po ponownym uruchomieniu"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "Otwiera w trybie pełnoekranowym"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Przeglądarka wirtualizacji"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- graficzna konsola maszyny wirtualnej"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nUżycie: %s [OPCJE] NAZWA-DOMENY|IDENTYFIKATOR|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "Wybór urządzeń USB do przekierowania"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "Nieobsługiwany typ uwierzytelnienia %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "Rozłącza"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "Wybór urządzenia USB"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "Opuszcza pełny ekran"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "Oczekiwanie na ponowne uruchomienie domeny gościa"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "Nie można określić typu grafiki dla gościa %s"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "Nie można określić adresu grafiki dla gościa %s"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "Nie można określić gospodarza dla gościa %s"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "Wyszukiwanie domeny gościa"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "Oczekiwanie na utworzenie domeny gościa"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "Nie można odnaleźć domeny gościa %s"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "Sprawdzanie stanu domeny gościa"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "Oczekiwanie na uruchomienie domeny gościa"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "Oczekiwanie na uruchomienie serwera domeny gościa"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "Nie można połączyć się z biblioteką libvirt za pomocą adresu URL %s"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[brak]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
234452 msgid "Automatically resize"
235453 msgstr "Automatyczna zmiana rozmiaru"
236454
237 #: ../src/viewer.glade.h:2
455 #: ../src/virt-viewer.xml.h:2
238456 msgid "Ctrl+Alt+F11"
239457 msgstr "Ctrl+Alt+F11"
240458
241 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
242460 msgid "Ctrl+Alt+F12"
243461 msgstr "Ctrl+Alt+F12"
244462
245 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
246464 msgid "Ctrl+Alt+F1_0"
247465 msgstr "Ctrl+Alt+F1_0"
248466
249 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
250468 msgid "Ctrl+Alt+F_1"
251469 msgstr "Ctrl+Alt+F_1"
252470
253 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
254472 msgid "Ctrl+Alt+F_2"
255473 msgstr "Ctrl+Alt+F_2"
256474
257 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
258476 msgid "Ctrl+Alt+F_3"
259477 msgstr "Ctrl+Alt+F_3"
260478
261 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
262480 msgid "Ctrl+Alt+F_4"
263481 msgstr "Ctrl+Alt+F_4"
264482
265 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
266484 msgid "Ctrl+Alt+F_5"
267485 msgstr "Ctrl+Alt+F_5"
268486
269 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
270488 msgid "Ctrl+Alt+F_6"
271489 msgstr "Ctrl+Alt+F_6"
272490
273 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
274492 msgid "Ctrl+Alt+F_7"
275493 msgstr "Ctrl+Alt+F_7"
276494
277 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
278496 msgid "Ctrl+Alt+F_8"
279497 msgstr "Ctrl+Alt+F_8"
280498
281 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
282500 msgid "Ctrl+Alt+F_9"
283501 msgstr "Ctrl+Alt+F_9"
284502
285 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
286504 msgid "Ctrl+Alt+_Backspace"
287505 msgstr "Ctrl+Alt+_Backspace"
288506
289 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
290508 msgid "Ctrl+Alt+_Del"
291509 msgstr "Ctrl+Alt+_Del"
292510
293 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "Ekrany"
514
515 #: ../src/virt-viewer.xml.h:17
294516 msgid "Full screen"
295517 msgstr "Pełny ekran"
296518
297 #: ../src/viewer.glade.h:17
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "Zwolnienie kursora"
522
523 #: ../src/virt-viewer.xml.h:19
298524 msgid "Screenshot"
299525 msgstr "Zrzut ekranu"
300526
301 #: ../src/viewer.glade.h:18
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "Włożenie karty smart card"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "Usunięcie karty smart card"
534
535 #: ../src/virt-viewer.xml.h:23
302536 msgid "_File"
303537 msgstr "_Plik"
304538
305 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
306540 msgid "_Help"
307541 msgstr "Pomo_c"
308542
309 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
310544 msgid "_PrintScreen"
311 msgstr "Zrzut _ekranu"
312
313 #: ../src/viewer.glade.h:21
545 msgstr "Z_rzut ekranu"
546
547 #: ../src/virt-viewer.xml.h:26
314548 msgid "_Send key"
315549 msgstr "Wyślij klawi_sz"
316550
317 #: ../src/viewer.glade.h:22
551 #: ../src/virt-viewer.xml.h:27
318552 msgid "_View"
319553 msgstr "_Widok"
320554
321 #: ../src/viewer.glade.h:23
555 #: ../src/virt-viewer.xml.h:28
322556 msgid "_Zoom"
323557 msgstr "P_owiększenie"
324
325 #: ../src/viewer.glade.h:24
326 msgid "gtk-about"
327 msgstr "gtk-about"
328
329 #: ../src/viewer.glade.h:25
330 msgid "gtk-quit"
331 msgstr "gtk-quit"
332
333 #: ../src/viewer.glade.h:26
334 msgid "page 1"
335 msgstr "strona 1"
336
337 #: ../src/viewer.glade.h:27
338 msgid "page 2"
339 msgstr "strona 2"
340
341 #: ../src/viewer.glade.h:28
342 msgid "page 3"
343 msgstr "strona 3"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Portuguese <trans-pt@lists.fedoraproject.org>\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: pt\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
0 # translation of pt_BR.po to Portuguese
1 # Portuguese translations for PACKAGE package.
2 # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
32 # This file is distributed under the same license as the PACKAGE package.
4 #
5 # Automatically generated, 2010.
6 # Glaucia Cintra <gcintra@redhat.com>, 2010.
3 #
4 # Translators:
5 # <gcintra@redhat.com>, 2012.
76 msgid ""
87 msgstr ""
9 "Project-Id-Version: pt_BR\n"
8 "Project-Id-Version: virt-viewer\n"
109 "Report-Msgid-Bugs-To: \n"
11 "POT-Creation-Date: 2010-01-22 00:33+0000\n"
12 "PO-Revision-Date: 2010-01-22 11:25+1000\n"
13 "Last-Translator: Glaucia Cintra <gcintra@redhat.com>\n"
14 "Language-Team: Portuguese <en@li.org>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Portuguese (Brazil) <trans-pt_br@lists.fedoraproject.org>\n"
1514 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=ISO-8859-1\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
1716 "Content-Transfer-Encoding: 8bit\n"
18 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
19 "X-Generator: KBabel 1.11.4\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s versão %s\n"
25
26 #: ../src/main.c:52
17 "Language: pt_BR\n"
18 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "Fonte"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "A fonte de união"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "Alvo"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "O alvo da união"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "Propriedade da Fonte"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "A propriedade na fonte para união "
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "Propriedade do Alvo"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "A propriedade do alvo a unir"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "Bandeiras"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "As bandeiras de união"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer version %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2784 msgid "Run '"
2885 msgstr "Executar '"
2986
30 #: ../src/main.c:55
31 msgid "display version information"
32 msgstr "exibir informações sobre versão"
33
34 #: ../src/main.c:57
35 msgid "display verbose information"
36 msgstr "exibir informações sobre verbose"
37
38 #: ../src/main.c:59
39 msgid "direct connection with no automatic tunnels"
40 msgstr "conexão direta sem túneis automáticos"
41
42 #: ../src/main.c:61
43 msgid "connect to hypervisor"
44 msgstr "conectar ao hipervisor"
45
46 #: ../src/main.c:63
47 msgid "wait for domain to start"
48 msgstr "esperar o domínio iniciar"
49
50 #: ../src/main.c:65
51 msgid "reconnect to domain upon restart"
52 msgstr "reconectar ao domínio ao reiniciar"
53
54 #: ../src/main.c:67
55 msgid "display debugging information"
56 msgstr "exibir informações sobre depuração"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "Exibir informações de versão"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "Exibir informações de verbose"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "Conexão direta com os túneis automáticos"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "Nível de zoom da janela, em porcentagem"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "Exibir informações de depuração"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "Abrir conexão usando a comunicação do controlador Spice"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
57118
58119 #. Setup command line options
59 #: ../src/main.c:79
60 msgid "- Virtual machine graphical console"
61 msgstr "- Console gráfico de máquina virtual"
62
63 #: ../src/main.c:95
64 #, c-format
65 msgid ""
66 "\n"
67 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
68 "\n"
69 "%s\n"
70 "\n"
71 msgstr ""
72 "\n"
73 "Uso: %s [OPÇÕES] DOMAIN-NAME|ID|UUID\n"
74 "\n"
75 "%s\n"
76 "\n"
77
78 #: ../src/viewer.c:878
79 #, c-format
80 msgid "Cannot determine the VNC port for the guest %s"
81 msgstr "Não é possível determinar a porta VNC para o convidado %s"
82
83 #: ../src/viewer.c:884
84 #, c-format
85 msgid "Cannot determine the VNC host for the guest %s"
86 msgstr "Não é possível determinar o host do VNC para o convidado %s"
87
88 #: ../src/viewer.c:984
89 #, c-format
90 msgid "Unable to connect to the VNC server %s"
91 msgstr "Não é possível conectar ao servidor do VNC %s"
92
93 #: ../src/viewer.c:1001
94 #, c-format
95 msgid ""
96 "Unable to authenticate with VNC server at %s: %s\n"
97 "Retry connection again?"
98 msgstr ""
99 "Não é possível autenticar com o servidor VNC em %s: %s\n "
100 "Tentar conexão novamente?"
101
102 #: ../src/viewer.c:1019
103 #, c-format
104 msgid ""
105 "Unable to authenticate with VNC server at %s\n"
106 "Unsupported authentication type %d"
107 msgstr ""
108 "Não é possível autenticar com o servidor do VNC em %s\n "
109 "Tipo de autenticação não suportada %d"
110
111 #: ../src/viewer.c:1111
112 #, c-format
113 msgid "Cannot find guest domain %s"
114 msgstr "Não é possível encontrar domínio do convidado %s"
115
116 #: ../src/viewer.c:1213
117 #, c-format
118 msgid "Unable to connect to libvirt with URI %s"
119 msgstr "Não é possível conectar ao libvirt com o URI %s"
120
121 #: ../src/viewer.c:1214
122 msgid "[none]"
123 msgstr "[nenhum]"
124
125 #.
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "-Cliente de visualizador remoto"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "Nível de zoom deve estar entre 10-200\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "Falha ao iniciar a conexão "
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "Exibir desabilitado pelo controlador"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "Conexão de controlador falhou:%s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "Não foi possível criar uma sessão Spice"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "Configurando uma sessão Spice"
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "Não foi possíve determinar o tipo de conexão a partir do URI"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "Não foi possível criar uma sessão para este tpo: %s"
168
126169 #. * Local variables:
127 #. * c-indent-level: 8
128 #. * c-basic-offset: 8
129 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
130173 #. * End:
131 #.
132 #: ../src/about.glade.h:1
133 msgid "A remote desktop client built with GTK-VNC and libvirt"
134 msgstr "Um cliente de desktop remoto construído com o GTK-VNC e libvirt"
135
136 #: ../src/about.glade.h:2
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "Um cliente de desktop remoto construído com o GTK-VNC, SPICE-GTK e libvirt"
178
179 #: ../src/virt-viewer-about.xml.h:2
137180 msgid "About Glade"
138181 msgstr "Sobre o Glade"
139182
140 #: ../src/about.glade.h:3
183 #: ../src/virt-viewer-about.xml.h:3
141184 msgid ""
142 "Copyright 2007-2008 Daniel P. Berrange\n"
143 "Copyright 2007-2008 Red Hat, Inc."
144 msgstr ""
145 "Copyright 2007-2008 Daniel P. Berrange\n"
146 "Copyright 2007-2008 Red Hat, Inc."
147
148 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
149190 msgid "The Fedora Translation Team"
150 msgstr "A equipe de Traduções do Fedora"
151
152 #: ../src/about.glade.h:6
191 msgstr "A equipe de Tradução do Fedora "
192
193 #: ../src/virt-viewer-about.xml.h:6
153194 msgid ""
154195 "This program is free software; you can redistribute it and/or modify\n"
155196 "it under the terms of the GNU General Public License as published by\n"
164205 "You should have received a copy of the GNU General Public License\n"
165206 "along with this program; if not, write to the Free Software\n"
166207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
167 msgstr ""
168 "Este programa é um software livre. Você pode redistribuí-lo e/ou modificá-lo \n"
169 "sob os termos da Licensa Pública Geral GNU, de acordo com o publicado pela \n"
170 "Fundação de Software Livre, sendo a versão 2 da Licensa, ou \n"
171 "(como queira) qualquer outra versão posterior.\n"
172 "\n"
173 "Espera-se que este programa seja útil, \n"
174 "porém SEM NENHUMA GARANTIA, até mesmo sem a garantia implicada de \n"
175 "MERCANTIBILIDADE ou PARA UM PRÒPÓSITO ESPECÍFICO. Veja a \n"
176 "Licensa Pública Geral GNU para maiores detalhes. \n"
177 "\n"
178 "Uma cópia da Licensa Pública Geral do GNU deve ter sido anexada n "
179 "à este programam. Caso não tenha recebido, escreva para Free Software \n"
180 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \n"
181
182 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
183211 msgid "virt-manager.org"
184212 msgstr "virt-manager.org"
185213
186 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "Este é o último display visível. Você deseja sairt?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "Esperando pelo display %d..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "Tipo de gráfico desconhecido para convidados %s"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "Falha ao conectar com o ssh."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "Não foi possível conectar o canal, SSH somente suportado."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "A conexão com o canal não é suportada."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "Conectando ao servidor de gráfico"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "Domínio de convidado precisa ser fechado"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "Conectado ao servidor de gráfico"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "Incapaz de conectar ao servidor de gráfico %s"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "Incapaz de autenticar com o servidor de desktop remoto em %s: %s Tentar conexão novamente?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "Incapaz de autenticar com o servidor remoto: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "Erro de redirecionamento do USB:%s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
187281 msgid "Authentication required"
188 msgstr "Autenticação requerida"
189
190 #: ../src/auth.glade.h:2
282 msgstr "Autenticação requerida"
283
284 #: ../src/virt-viewer-auth.xml.h:2
191285 msgid "Password:"
192286 msgstr "Senha:"
193287
194 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
195289 msgid "Username:"
196 msgstr "Nome do Usuário:"
197
198 #: ../src/auth.glade.h:4
199 msgid "gtk-cancel"
200 msgstr "gtk-cancel"
201
202 #: ../src/auth.glade.h:5
203 msgid "gtk-ok"
204 msgstr "gtk-ok"
205
206 #: ../src/auth.glade.h:6
290 msgstr "Nome de usuário:"
291
292 #: ../src/virt-viewer-auth.xml.h:4
207293 msgid "label"
208 msgstr "rótulo"
209
210 #: ../src/viewer.glade.h:1
294 msgstr "rótulo"
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s version %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "Anexar ao display local usando o libvirt"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "Conectar ao hypervisor"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "Esperar pelo domínio para iniciar"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "Reconectar ao domínio no reinício"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "Abrir o modo em tela cheia"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Visualizador do Virt"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "Console gráfico da máquina virtual"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nUso: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "Selecionar os dispositivos do USB para redirecionamento"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "Autenticação não suportada tipo %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "Desconectar"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "Seleção de dispositivo de USB"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "Deixar tela cheia"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "Esperando pelo domínio do convidado para reiniciar"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "Não é possível determinar o tipo de gráfico para o convidado %s"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "Não foi possível determinar o endereço do gráfico para o convidado %s"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "Não foi possível determinar o host para os convidados %s"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "Encontrando o domínio do convidado"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "Esperando pelo domínio do convidado a ser criado"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "Não foi possível encontrar o domínio do convidado %s"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "Verificando o status do domínio do convidado"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "Esperando pelo domínio do convidado para iniciar"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "Esperando pelo domínio do convidado para iniciar servidor"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "Incapaz de conectar ao libvirt com o URI %s"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[nenhum]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
211452 msgid "Automatically resize"
212 msgstr "redefinição automática do tamanho"
213
214 #: ../src/viewer.glade.h:2
453 msgstr "Redefinição de tamanho automático"
454
455 #: ../src/virt-viewer.xml.h:2
215456 msgid "Ctrl+Alt+F11"
216457 msgstr "Ctrl+Alt+F11"
217458
218 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
219460 msgid "Ctrl+Alt+F12"
220461 msgstr "Ctrl+Alt+F12"
221462
222 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
223464 msgid "Ctrl+Alt+F1_0"
224465 msgstr "Ctrl+Alt+F1_0"
225466
226 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
227468 msgid "Ctrl+Alt+F_1"
228469 msgstr "Ctrl+Alt+F_1"
229470
230 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
231472 msgid "Ctrl+Alt+F_2"
232473 msgstr "Ctrl+Alt+F_2"
233474
234 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
235476 msgid "Ctrl+Alt+F_3"
236477 msgstr "Ctrl+Alt+F_3"
237478
238 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
239480 msgid "Ctrl+Alt+F_4"
240481 msgstr "Ctrl+Alt+F_4"
241482
242 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
243484 msgid "Ctrl+Alt+F_5"
244485 msgstr "Ctrl+Alt+F_5"
245486
246 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
247488 msgid "Ctrl+Alt+F_6"
248489 msgstr "Ctrl+Alt+F_6"
249490
250 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
251492 msgid "Ctrl+Alt+F_7"
252493 msgstr "Ctrl+Alt+F_7"
253494
254 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
255496 msgid "Ctrl+Alt+F_8"
256497 msgstr "Ctrl+Alt+F_8"
257498
258 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
259500 msgid "Ctrl+Alt+F_9"
260501 msgstr "Ctrl+Alt+F_9"
261502
262 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
263504 msgid "Ctrl+Alt+_Backspace"
264505 msgstr "Ctrl+Alt+_Backspace"
265506
266 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
267508 msgid "Ctrl+Alt+_Del"
268509 msgstr "Ctrl+Alt+_Del"
269510
270 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "Displays"
514
515 #: ../src/virt-viewer.xml.h:17
271516 msgid "Full screen"
272517 msgstr "Tela cheia"
273518
274 #: ../src/viewer.glade.h:17
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "Liberar o cursor"
522
523 #: ../src/virt-viewer.xml.h:19
275524 msgid "Screenshot"
276525 msgstr "Screenshot"
277526
278 #: ../src/viewer.glade.h:18
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "Inserção do Smartcard "
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "Remoção do Smartcard"
534
535 #: ../src/virt-viewer.xml.h:23
279536 msgid "_File"
280 msgstr "_File"
281
282 #: ../src/viewer.glade.h:19
537 msgstr "_Arquivo"
538
539 #: ../src/virt-viewer.xml.h:24
283540 msgid "_Help"
284 msgstr "_Help"
285
286 #: ../src/viewer.glade.h:20
541 msgstr "_Ajuda"
542
543 #: ../src/virt-viewer.xml.h:25
287544 msgid "_PrintScreen"
288545 msgstr "_PrintScreen"
289546
290 #: ../src/viewer.glade.h:21
547 #: ../src/virt-viewer.xml.h:26
291548 msgid "_Send key"
292 msgstr "_Send key"
293
294 #: ../src/viewer.glade.h:22
549 msgstr "_Chave de Envio"
550
551 #: ../src/virt-viewer.xml.h:27
295552 msgid "_View"
296 msgstr "_View"
297
298 #: ../src/viewer.glade.h:23
299 msgid "gtk-about"
300 msgstr "gtk-about"
301
302 #: ../src/viewer.glade.h:24
303 msgid "gtk-quit"
304 msgstr "gtk-quit"
305
306 #: ../src/viewer.glade.h:25
307 msgid "page 1"
308 msgstr "página 1"
309
310 #: ../src/viewer.glade.h:26
311 msgid "page 2"
312 msgstr "página 2"
313
553 msgstr "_Visualizar"
554
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "_Zoom"
+453
-242
po/ru.po less more
0 # translation of ru.po to Russian
1 # Russian translations for fedora package.
2 # Copyright (C) 2010 THE fedora'S COPYRIGHT HOLDER
3 # This file is distributed under the same license as the fedora package.
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
43 #
4 # Translators:
55 # Automatically generated, 2010.
6 # Yulia <ypoyarko@redhat.com>, 2010.
6 # Yulia <ypoyarko@redhat.com>, 2010, 2012.
77 msgid ""
88 msgstr ""
9 "Project-Id-Version: ru\n"
9 "Project-Id-Version: virt-viewer\n"
1010 "Report-Msgid-Bugs-To: \n"
11 "POT-Creation-Date: 2011-01-12 07:58+0000\n"
12 "PO-Revision-Date: 2010-01-22 12:25+1100\n"
13 "Last-Translator: Yulia <ypoyarko@redhat.com>\n"
14 "Language-Team: Russian <fedora-trans-ru@redhat.com>\n"
11 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
12 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
13 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
14 "Language-Team: Russian <trans-ru@lists.fedoraproject.org>\n"
1515 "MIME-Version: 1.0\n"
1616 "Content-Type: text/plain; charset=UTF-8\n"
1717 "Content-Transfer-Encoding: 8bit\n"
18 "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"
19 "X-Generator: KBabel 1.11.4\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s версия %s\n"
25
26 #: ../src/main.c:53
18 "Language: ru\n"
19 "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"
20
21 #: ../src/gbinding.c:637
22 msgid "Source"
23 msgstr "Источник"
24
25 #: ../src/gbinding.c:638
26 msgid "The source of the binding"
27 msgstr "Первый элемент привязки"
28
29 #: ../src/gbinding.c:652
30 msgid "Target"
31 msgstr "Цель"
32
33 #: ../src/gbinding.c:653
34 msgid "The target of the binding"
35 msgstr "Второй элемент привязки"
36
37 #: ../src/gbinding.c:668
38 msgid "Source Property"
39 msgstr "Свойство источника"
40
41 #: ../src/gbinding.c:669
42 msgid "The property on the source to bind"
43 msgstr "Свойство первого элемента"
44
45 #: ../src/gbinding.c:684
46 msgid "Target Property"
47 msgstr "Свойство цели"
48
49 #: ../src/gbinding.c:685
50 msgid "The property on the target to bind"
51 msgstr "Свойство второго элемента"
52
53 #: ../src/gbinding.c:699
54 msgid "Flags"
55 msgstr "Флаги"
56
57 #: ../src/gbinding.c:700
58 msgid "The binding flags"
59 msgstr "Флаги привязки"
60
61 #: ../src/remote-viewer-main.c:47
62 #, c-format
63 msgid "remote-viewer version %s\n"
64 msgstr "remote-viewer версия %s\n"
65
66 #: ../src/remote-viewer-main.c:69
67 #, c-format
68 msgid "Invalid full-screen argument: %s"
69 msgstr ""
70
71 #. Create the widgets
72 #: ../src/remote-viewer-main.c:104
73 msgid "Connection details"
74 msgstr ""
75
76 #: ../src/remote-viewer-main.c:119
77 msgid "URL:"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:127
81 msgid "Recent connections:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2785 msgid "Run '"
2886 msgstr "Выполнить '"
2987
30 #: ../src/main.c:56
31 msgid "display version information"
32 msgstr "показать версию"
33
34 #: ../src/main.c:58
35 msgid "display verbose information"
36 msgstr "показать подробную информацию"
37
38 #: ../src/main.c:60
39 msgid "direct connection with no automatic tunnels"
40 msgstr "прямое подключение без туннелей"
41
42 #: ../src/main.c:62
43 msgid "connect to hypervisor"
44 msgstr "подключиться к гипервизору"
45
46 #: ../src/main.c:64
47 msgid "wait for domain to start"
48 msgstr "ждать запуска домена"
49
50 #: ../src/main.c:66
51 msgid "reconnect to domain upon restart"
52 msgstr "заново подключиться к домену после перезапуска"
53
54 #: ../src/main.c:70
55 msgid "display debugging information"
56 msgstr "показать информацию отладки"
88 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
89 msgid "Display version information"
90 msgstr "Показать версию"
91
92 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
93 msgid "Display verbose information"
94 msgstr "Подробный вывод"
95
96 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
97 msgid "Direct connection with no automatic tunnels"
98 msgstr "Прямое подключение без туннеля"
99
100 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
101 msgid "Zoom level of window, in percentage"
102 msgstr "Масштаб окна в процентах"
103
104 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
105 msgid "Display debugging information"
106 msgstr "Показать сообщения диагностики"
107
108 #: ../src/remote-viewer-main.c:219
109 msgid "Open in full screen mode (=<auto-conf>)"
110 msgstr ""
111
112 #: ../src/remote-viewer-main.c:222
113 msgid "Open connection using Spice controller communication"
114 msgstr "Открыть соединение с помощью контроллера Spice"
115
116 #: ../src/remote-viewer-main.c:249
117 msgid "Remote Viewer"
118 msgstr ""
57119
58120 #. Setup command line options
59 #: ../src/main.c:82
60 msgid "- Virtual machine graphical console"
61 msgstr "— графическая консоль виртуальной машины"
62
63 #: ../src/main.c:98
64 #, c-format
65 msgid ""
66 "\n"
67 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
68 "\n"
69 "%s\n"
70 "\n"
71 msgstr ""
72 "\n"
73 "Формат: %s [ПАРАМЕТРЫ] ИМЯ_ДОМЕНА|ID|UUID\n"
74 "\n"
75 "%s\n"
76 "\n"
77
78 #: ../src/viewer.c:805
79 #, fuzzy, c-format
80 msgid "Cannot determine the graphic type for the guest %s"
81 msgstr "Не удалось определить порт VNC для гостевой системы %s"
82
83 #: ../src/viewer.c:817
84 #, fuzzy, c-format
85 msgid "Unknown graphic type for the guest %s"
86 msgstr "Не удалось определить порт VNC для гостевой системы %s"
87
88 #: ../src/viewer.c:824
89 #, fuzzy, c-format
90 msgid "Cannot determine the graphic port for the guest %s"
91 msgstr "Не удалось определить порт VNC для гостевой системы %s"
92
93 #: ../src/viewer.c:830
94 #, fuzzy, c-format
95 msgid "Cannot determine the host for the guest %s"
96 msgstr "Не удалось определить узел VNC для гостевой системы %s"
97
98 #: ../src/viewer.c:1006
99 #, fuzzy, c-format
100 msgid "Unable to connect to the graphic server %s"
101 msgstr "Не удалось подключиться к VNC-серверу %s"
102
103 #: ../src/viewer.c:1053
104 #, c-format
105 msgid "Cannot find guest domain %s"
106 msgstr "Не удалось найти гостевой домен %s"
107
108 #: ../src/viewer.c:1161
109 #, c-format
110 msgid "Unable to connect to libvirt with URI %s"
111 msgstr "Не удалось подключиться к libvirt через URI %s"
112
113 #: ../src/viewer.c:1162
114 msgid "[none]"
115 msgstr "[нет]"
116
117 #: ../src/display-vnc.c:142
118 #, c-format
119 msgid ""
120 "Unable to authenticate with VNC server at %s\n"
121 "Unsupported authentication type %d"
122 msgstr ""
123 "Не удалось авторизоваться на VNC-сервере %s\n"
124 "Тип аутентификации %d"
125
126 #: ../src/display-vnc.c:158
127 #, c-format
128 msgid ""
129 "Unable to authenticate with VNC server at %s: %s\n"
130 "Retry connection again?"
131 msgstr ""
132 "Не удалось авторизоваться на VNC-сервере %s: %s\n"
133 "Повторить попытку подключения?"
121 #: ../src/remote-viewer-main.c:252
122 msgid "- Remote viewer client"
123 msgstr "— Клиент удаленного просмотра"
124
125 #: ../src/remote-viewer-main.c:275
126 #, c-format
127 msgid "Error: extra arguments given while using Spice controller\n"
128 msgstr ""
129
130 #: ../src/remote-viewer-main.c:284
131 #, c-format
132 msgid "Error: can't handle multiple URIs\n"
133 msgstr ""
134
135 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
136 #, c-format
137 msgid "Zoom level must be within 10-200\n"
138 msgstr "Масштаб должен быть в пределах 10-200\n"
139
140 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
141 msgid "Failed to initiate connection"
142 msgstr "Не удалось установить соединение"
143
144 #: ../src/remote-viewer.c:250
145 msgid "Display disabled by controller"
146 msgstr "Дисплей отключен контроллером"
147
148 #: ../src/remote-viewer.c:697
149 #, c-format
150 msgid "Controller connection failed: %s"
151 msgstr "Ошибка подключения контроллера: %s"
152
153 #: ../src/remote-viewer.c:750
154 msgid "Couldn't create a Spice session"
155 msgstr "Не удалось создать сеанс Spice"
156
157 #: ../src/remote-viewer.c:764
158 msgid "Setting up Spice session..."
159 msgstr "Инициализация сеанса Spice..."
160
161 #: ../src/remote-viewer.c:774
162 msgid "Cannot determine the connection type from URI"
163 msgstr "Не удалось определить тип подключения в URI"
164
165 #: ../src/remote-viewer.c:779
166 #, c-format
167 msgid "Couldn't create a session for this type: %s"
168 msgstr "Не удалось создать сеанс этого типа: %s"
134169
135170 #. * Local variables:
136 #. * c-indent-level: 8
137 #. * c-basic-offset: 8
138 #. * tab-width: 8
171 #. * c-indent-level: 4
172 #. * c-basic-offset: 4
173 #. * indent-tabs-mode: nil
139174 #. * End:
140175 #.
141 #: ../src/about.glade.h:1
142 msgid "A remote desktop client built with GTK-VNC and libvirt"
143 msgstr "Клиент удалённого рабочего стола включает GTK-VNC и libvirt"
144
145 #: ../src/about.glade.h:2
176 #: ../src/virt-viewer-about.xml.h:1
177 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
178 msgstr "Клиент удаленного рабочего стола построен на основе GTK-VNC, SPICE-GTK и libvirt"
179
180 #: ../src/virt-viewer-about.xml.h:2
146181 msgid "About Glade"
147 msgstr "О Glade"
148
149 #: ../src/about.glade.h:3
182 msgstr "О Glade"
183
184 #: ../src/virt-viewer-about.xml.h:3
150185 msgid ""
151 "Copyright 2007-2008 Daniel P. Berrange\n"
152 "Copyright 2007-2008 Red Hat, Inc."
153 msgstr ""
154 "© 2007-2008 Daniel P. Berrange\n"
155 "© 2007-2008 Red Hat, Inc."
156
157 #: ../src/about.glade.h:5
186 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
187 "Copyright (C) 2007-2012 Red Hat, Inc."
188 msgstr "(C) 2007-2012 Daniel P. Berrange\n(C) 2007-2012 Red Hat, Inc."
189
190 #: ../src/virt-viewer-about.xml.h:5
158191 msgid "The Fedora Translation Team"
159192 msgstr "Команда локализации Fedora"
160193
161 #: ../src/about.glade.h:6
194 #: ../src/virt-viewer-about.xml.h:6
162195 msgid ""
163196 "This program is free software; you can redistribute it and/or modify\n"
164197 "it under the terms of the GNU General Public License as published by\n"
173206 "You should have received a copy of the GNU General Public License\n"
174207 "along with this program; if not, write to the Free Software\n"
175208 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
176 msgstr ""
177 "Эта программа является свободным программным обеспечением. \n"
178 "Разрешается её распространять и изменять в соответствии с условиями\n"
179 "лицензии GNU General Public License версии 2 или любой более поздней версии,\n"
180 "опубликованной Фондом свободного программного обеспечения. \n"
181 "\n"
182 "Эта программа распространяется в надежде, что она может быть полезной, \n"
183 "но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ПОДРАЗУМЕВАЕМЫХ ИЛИ ВЫРАЖЕННЫХ ЯВНО,\n"
184 "ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ \n"
185 "ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для получения дополнительных сведений\n"
186 "обратитесь к лицензии GNU General Public License.\n"
187 "\n"
188 "Копия лицензии GNU GPL предоставляется вместе с этой программой. \n"
189 "Если лицензия отсутствует, отправьте письменный запрос по адресу:\n"
190 "Free Software Foundation, Inc., \n"
191 "59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
192
193 #: ../src/about.glade.h:20
209 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"
210
211 #: ../src/virt-viewer-about.xml.h:20
194212 msgid "virt-manager.org"
195213 msgstr "virt-manager.org"
196214
197 #: ../src/auth.glade.h:1
215 #: ../src/virt-viewer-app.c:284
216 msgid "This is the last visible display. Do you want to quit?"
217 msgstr "Это последний экран. Завершить работу?"
218
219 #: ../src/virt-viewer-app.c:624
220 #, c-format
221 msgid "Waiting for display %d..."
222 msgstr "Ожидание просмотра %d..."
223
224 #: ../src/virt-viewer-app.c:707
225 #, c-format
226 msgid "Unknown graphic type for the guest %s"
227 msgstr "Неизвестный тип графической подсистемы для гостя %s"
228
229 #: ../src/virt-viewer-app.c:782
230 msgid "Connect to ssh failed."
231 msgstr "Ошибка соединения ssh."
232
233 #: ../src/virt-viewer-app.c:784
234 msgid "Can't connect to channel, SSH only supported."
235 msgstr "Не удалось подключиться к каналу. Поддерживается только SSH."
236
237 #: ../src/virt-viewer-app.c:796
238 msgid "Connect to channel unsupported."
239 msgstr "Подключение к каналу не поддерживается."
240
241 #: ../src/virt-viewer-app.c:876
242 msgid "Connecting to graphic server"
243 msgstr "Подключение к графическому серверу"
244
245 #: ../src/virt-viewer-app.c:1006
246 msgid "Guest domain has shutdown"
247 msgstr "Гостевой домен завершил работу"
248
249 #: ../src/virt-viewer-app.c:1056
250 msgid "Connected to graphic server"
251 msgstr "Установлено соединение с графическим сервером"
252
253 #: ../src/virt-viewer-app.c:1082
254 #, c-format
255 msgid "Unable to connect to the graphic server %s"
256 msgstr "Не удалось установить соединение с сервером %s"
257
258 #: ../src/virt-viewer-app.c:1111
259 #, c-format
260 msgid ""
261 "Unable to authenticate with remote desktop server at %s: %s\n"
262 "Retry connection again?"
263 msgstr "Не удалось пройти аутентификацию на удаленном сервере: %s: %s\nПовторить попытку подключения?"
264
265 #: ../src/virt-viewer-app.c:1131
266 #, c-format
267 msgid "Unable to authenticate with remote desktop server: %s"
268 msgstr "Не удалось пройти аутентификацию на удаленном сервере: %s"
269
270 #: ../src/virt-viewer-app.c:1139
271 #, c-format
272 msgid "USB redirection error: %s"
273 msgstr "Ошибка перенаправления USB: %s"
274
275 #. * Local variables:
276 #. * c-indent-level: 4
277 #. * c-basic-offset: 4
278 #. * indent-tabs-mode: nil
279 #. * End:
280 #.
281 #: ../src/virt-viewer-auth.xml.h:1
198282 msgid "Authentication required"
199 msgstr "Требуется авторизация"
200
201 #: ../src/auth.glade.h:2
283 msgstr "Требуется проверка подлинности"
284
285 #: ../src/virt-viewer-auth.xml.h:2
202286 msgid "Password:"
203287 msgstr "Пароль:"
204288
205 #: ../src/auth.glade.h:3
289 #: ../src/virt-viewer-auth.xml.h:3
206290 msgid "Username:"
207 msgstr "Имя пользователя:"
208
209 #: ../src/auth.glade.h:4
210 msgid "gtk-cancel"
211 msgstr "gtk-cancel"
212
213 #: ../src/auth.glade.h:5
214 msgid "gtk-ok"
215 msgstr "gtk-ok"
216
217 #: ../src/auth.glade.h:6
291 msgstr "Пользователь:"
292
293 #: ../src/virt-viewer-auth.xml.h:4
218294 msgid "label"
219295 msgstr "метка"
220296
221 #: ../src/viewer.glade.h:1
297 #: ../src/virt-viewer-main.c:38
298 #, c-format
299 msgid "%s version %s\n"
300 msgstr "%s версия %s\n"
301
302 #: ../src/virt-viewer-main.c:69
303 msgid "Attach to the local display using libvirt"
304 msgstr "Подключиться к локальному графическому сеансу с помощью libvirt"
305
306 #: ../src/virt-viewer-main.c:71
307 msgid "Connect to hypervisor"
308 msgstr "Подключиться к гипервизору"
309
310 #: ../src/virt-viewer-main.c:73
311 msgid "Wait for domain to start"
312 msgstr "Ожидать запуска домена"
313
314 #: ../src/virt-viewer-main.c:75
315 msgid "Reconnect to domain upon restart"
316 msgstr "Заново подключиться к домену после перезапуска"
317
318 #: ../src/virt-viewer-main.c:81
319 msgid "Open in full screen mode"
320 msgstr "Полноэкранный режим"
321
322 #: ../src/virt-viewer-main.c:96
323 msgid "Virt Viewer"
324 msgstr "Просмотр виртуальных систем"
325
326 #. Setup command line options
327 #: ../src/virt-viewer-main.c:99
328 msgid "- Virtual machine graphical console"
329 msgstr "— графическая консоль виртуальной машины"
330
331 #: ../src/virt-viewer-main.c:120
332 #, c-format
333 msgid ""
334 "\n"
335 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
336 "\n"
337 "%s\n"
338 "\n"
339 msgstr "\nФормат: %s [ПАРАМЕТРЫ] ДОМЕН|ID|UUID\n\n%s\n\n"
340
341 #. Create the widgets
342 #: ../src/virt-viewer-session-spice.c:380
343 msgid "Select USB devices for redirection"
344 msgstr "Выбрать устройства USB для перенаправления"
345
346 #: ../src/virt-viewer-session-vnc.c:141
347 #, c-format
348 msgid "Unsupported authentication type %d"
349 msgstr "Неподдерживаемый тип аутентификации %d"
350
351 #: ../src/virt-viewer-window.c:832
352 msgid "Disconnect"
353 msgstr "Отключиться"
354
355 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
356 #: ../src/virt-viewer.xml.h:22
357 msgid "USB device selection"
358 msgstr "Выбор устройства USB"
359
360 #: ../src/virt-viewer-window.c:848
361 msgid "Send key combination"
362 msgstr ""
363
364 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
365 msgid "Leave fullscreen"
366 msgstr "Выйти из полноэкранного режима"
367
368 #: ../src/virt-viewer-window.c:937
369 msgid "Ctrl+Alt"
370 msgstr ""
371
372 #: ../src/virt-viewer-window.c:940
373 #, c-format
374 msgid "(Press %s to release pointer)"
375 msgstr ""
376
377 #. translators:
378 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
379 #. <appname>"
380 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
381 #. Viewer"
382 #.
383 #: ../src/virt-viewer-window.c:951
384 #, c-format
385 msgid "%s%s%s - %s"
386 msgstr "%s%s%s - %s"
387
388 #. translators: <space>
389 #: ../src/virt-viewer-window.c:955
390 msgid " "
391 msgstr " "
392
393 #: ../src/virt-viewer.c:144
394 msgid "Waiting for guest domain to re-start"
395 msgstr "Ожидание перезапуска гостевого домена"
396
397 #: ../src/virt-viewer.c:308
398 #, c-format
399 msgid "Cannot determine the graphic type for the guest %s"
400 msgstr "Не удалось определить тип графической подсистемы для гостя %s"
401
402 #: ../src/virt-viewer.c:321
403 #, c-format
404 msgid "Cannot determine the graphic address for the guest %s"
405 msgstr "Не удалось определить адрес графического интерфейса для гостя %s"
406
407 #: ../src/virt-viewer.c:344
408 #, c-format
409 msgid "Cannot determine the host for the guest %s"
410 msgstr "Не удалось определить хост для гостя %s"
411
412 #: ../src/virt-viewer.c:474
413 msgid "Finding guest domain"
414 msgstr "Поиск гостевого домена"
415
416 #: ../src/virt-viewer.c:478
417 msgid "Waiting for guest domain to be created"
418 msgstr "Ожидание создания гостевого домена"
419
420 #: ../src/virt-viewer.c:483
421 #, c-format
422 msgid "Cannot find guest domain %s"
423 msgstr "Гостевой домен %s не найден"
424
425 #: ../src/virt-viewer.c:490
426 msgid "Checking guest domain status"
427 msgstr "Проверка статуса гостевого домена"
428
429 #: ../src/virt-viewer.c:497
430 msgid "Waiting for guest domain to start"
431 msgstr "Ожидание запуска гостевого домена"
432
433 #: ../src/virt-viewer.c:504
434 msgid "Waiting for guest domain to start server"
435 msgstr "Ожидание запуска сервера гостевого домена"
436
437 #: ../src/virt-viewer.c:624
438 #, c-format
439 msgid "Unable to connect to libvirt with URI %s"
440 msgstr "Не удалось подключиться к libvirt на URI %s"
441
442 #: ../src/virt-viewer.c:625
443 msgid "[none]"
444 msgstr "[нет]"
445
446 #. * Local variables:
447 #. * c-indent-level: 4
448 #. * c-basic-offset: 4
449 #. * indent-tabs-mode: nil
450 #. * End:
451 #.
452 #: ../src/virt-viewer.xml.h:1
222453 msgid "Automatically resize"
223 msgstr "Изменить размер автоматически"
224
225 #: ../src/viewer.glade.h:2
454 msgstr "Автоматически изменить размер"
455
456 #: ../src/virt-viewer.xml.h:2
226457 msgid "Ctrl+Alt+F11"
227458 msgstr "Ctrl+Alt+F11"
228459
229 #: ../src/viewer.glade.h:3
460 #: ../src/virt-viewer.xml.h:3
230461 msgid "Ctrl+Alt+F12"
231462 msgstr "Ctrl+Alt+F12"
232463
233 #: ../src/viewer.glade.h:4
464 #: ../src/virt-viewer.xml.h:4
234465 msgid "Ctrl+Alt+F1_0"
235466 msgstr "Ctrl+Alt+F1_0"
236467
237 #: ../src/viewer.glade.h:5
468 #: ../src/virt-viewer.xml.h:5
238469 msgid "Ctrl+Alt+F_1"
239470 msgstr "Ctrl+Alt+F_1"
240471
241 #: ../src/viewer.glade.h:6
472 #: ../src/virt-viewer.xml.h:6
242473 msgid "Ctrl+Alt+F_2"
243474 msgstr "Ctrl+Alt+F_2"
244475
245 #: ../src/viewer.glade.h:7
476 #: ../src/virt-viewer.xml.h:7
246477 msgid "Ctrl+Alt+F_3"
247478 msgstr "Ctrl+Alt+F_3"
248479
249 #: ../src/viewer.glade.h:8
480 #: ../src/virt-viewer.xml.h:8
250481 msgid "Ctrl+Alt+F_4"
251482 msgstr "Ctrl+Alt+F_4"
252483
253 #: ../src/viewer.glade.h:9
484 #: ../src/virt-viewer.xml.h:9
254485 msgid "Ctrl+Alt+F_5"
255486 msgstr "Ctrl+Alt+F_5"
256487
257 #: ../src/viewer.glade.h:10
488 #: ../src/virt-viewer.xml.h:10
258489 msgid "Ctrl+Alt+F_6"
259490 msgstr "Ctrl+Alt+F_6"
260491
261 #: ../src/viewer.glade.h:11
492 #: ../src/virt-viewer.xml.h:11
262493 msgid "Ctrl+Alt+F_7"
263494 msgstr "Ctrl+Alt+F_7"
264495
265 #: ../src/viewer.glade.h:12
496 #: ../src/virt-viewer.xml.h:12
266497 msgid "Ctrl+Alt+F_8"
267498 msgstr "Ctrl+Alt+F_8"
268499
269 #: ../src/viewer.glade.h:13
500 #: ../src/virt-viewer.xml.h:13
270501 msgid "Ctrl+Alt+F_9"
271502 msgstr "Ctrl+Alt+F_9"
272503
273 #: ../src/viewer.glade.h:14
504 #: ../src/virt-viewer.xml.h:14
274505 msgid "Ctrl+Alt+_Backspace"
275506 msgstr "Ctrl+Alt+_Backspace"
276507
277 #: ../src/viewer.glade.h:15
508 #: ../src/virt-viewer.xml.h:15
278509 msgid "Ctrl+Alt+_Del"
279510 msgstr "Ctrl+Alt+_Del"
280511
281 #: ../src/viewer.glade.h:16
512 #: ../src/virt-viewer.xml.h:16
513 msgid "Displays"
514 msgstr "Экраны"
515
516 #: ../src/virt-viewer.xml.h:17
282517 msgid "Full screen"
283 msgstr "На весь экран"
284
285 #: ../src/viewer.glade.h:17
518 msgstr "Во весь экран"
519
520 #: ../src/virt-viewer.xml.h:18
521 msgid "Release cursor"
522 msgstr "Освободить курсор"
523
524 #: ../src/virt-viewer.xml.h:19
286525 msgid "Screenshot"
287526 msgstr "Снимок экрана"
288527
289 #: ../src/viewer.glade.h:18
528 #: ../src/virt-viewer.xml.h:20
529 msgid "Smartcard insertion"
530 msgstr "Подключение смарт-карты"
531
532 #: ../src/virt-viewer.xml.h:21
533 msgid "Smartcard removal"
534 msgstr "Удаление смарт-карты"
535
536 #: ../src/virt-viewer.xml.h:23
290537 msgid "_File"
291538 msgstr "_Файл"
292539
293 #: ../src/viewer.glade.h:19
540 #: ../src/virt-viewer.xml.h:24
294541 msgid "_Help"
295542 msgstr "_Справка"
296543
297 #: ../src/viewer.glade.h:20
544 #: ../src/virt-viewer.xml.h:25
298545 msgid "_PrintScreen"
299546 msgstr "_PrintScreen"
300547
301 #: ../src/viewer.glade.h:21
548 #: ../src/virt-viewer.xml.h:26
302549 msgid "_Send key"
303 msgstr "Отправить _ключ"
304
305 #: ../src/viewer.glade.h:22
550 msgstr "О_тправить клавишу"
551
552 #: ../src/virt-viewer.xml.h:27
306553 msgid "_View"
307 msgstr "_Вид"
308
309 #: ../src/viewer.glade.h:23
554 msgstr "_Просмотр"
555
556 #: ../src/virt-viewer.xml.h:28
310557 msgid "_Zoom"
311 msgstr ""
312
313 #: ../src/viewer.glade.h:24
314 msgid "gtk-about"
315 msgstr "gtk-about"
316
317 #: ../src/viewer.glade.h:25
318 msgid "gtk-quit"
319 msgstr "gtk-quit"
320
321 #: ../src/viewer.glade.h:26
322 msgid "page 1"
323 msgstr "страница 1"
324
325 #: ../src/viewer.glade.h:27
326 msgid "page 2"
327 msgstr "страница 2"
328
329 #: ../src/viewer.glade.h:28
330 msgid "page 3"
331 msgstr "страница 3"
332
333 #: ../src/main.c:68
334 msgid "Zoom level of window, in percentage"
335 msgstr "Уровень увеличения окна, в процентах"
336
337 #: ../src/viewer.c:863
338 msgid "Connect to channel unsupported."
339 msgstr "Подключение к каналу не поддерживается."
340
341 #: ../src/viewer.c:858
342 msgid "Can't connect to channel, SSH only supported."
343 msgstr "Не удалось подключиться к каналу, поддерживается только sshю."
344
345 #: ../src/viewer.c:856
346 msgid "Connect to ssh failed."
347 msgstr "Подключение по ssh не удалось."
558 msgstr "_Масштаб"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Sinhala (http://www.transifex.net/projects/p/fedora/language/si/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: si\n"
17 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Slovak (http://www.transifex.net/projects/p/fedora/language/sk/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: sk\n"
17 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+454
-207
po/ta.po less more
0 # SOME DESCRIPTIVE TITLE.
01 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
12 # This file is distributed under the same license as the PACKAGE package.
2 #
3 #
4 # Translators:
5 # Felix I <ifelix25@gmail.com>, 2012.
36 # I. Felix <ifelix@redhat.com>, 2010.
47 msgid ""
58 msgstr ""
6 "Project-Id-Version: \n"
9 "Project-Id-Version: virt-viewer\n"
710 "Report-Msgid-Bugs-To: \n"
8 "POT-Creation-Date: 2010-01-21 06:26+0000\n"
9 "PO-Revision-Date: 2010-01-29 13:32+0530\n"
10 "Last-Translator: I. Felix <ifelix@redhat.com>\n"
11 "Language-Team: ta_IN <kde-i18n-doc@kde.org>\n"
11 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
12 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
13 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
14 "Language-Team: Tamil <tamil-users@lists.fedoraproject.org>\n"
1215 "MIME-Version: 1.0\n"
1316 "Content-Type: text/plain; charset=UTF-8\n"
1417 "Content-Transfer-Encoding: 8bit\n"
15 "X-Generator: Lokalize 1.0\n"
16 "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
18 #: ../src/main.c:34
19 #, c-format
20 msgid "%s version %s\n"
21 msgstr "%s பதிப்பு %s\n"
22
23 #: ../src/main.c:52
18 "Language: ta\n"
19 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
20
21 #: ../src/gbinding.c:637
22 msgid "Source"
23 msgstr "மூலம்"
24
25 #: ../src/gbinding.c:638
26 msgid "The source of the binding"
27 msgstr "பிணைத்தலின் மூலம்"
28
29 #: ../src/gbinding.c:652
30 msgid "Target"
31 msgstr "இலக்கு"
32
33 #: ../src/gbinding.c:653
34 msgid "The target of the binding"
35 msgstr "பிணைத்தலின் இலக்கு"
36
37 #: ../src/gbinding.c:668
38 msgid "Source Property"
39 msgstr "மூல பண்பு"
40
41 #: ../src/gbinding.c:669
42 msgid "The property on the source to bind"
43 msgstr "பிணைக்க மூலத்தின் குணம்"
44
45 #: ../src/gbinding.c:684
46 msgid "Target Property"
47 msgstr "இலக்கு பண்பு"
48
49 #: ../src/gbinding.c:685
50 msgid "The property on the target to bind"
51 msgstr "பிணைக்க இலக்கின் குணம்"
52
53 #: ../src/gbinding.c:699
54 msgid "Flags"
55 msgstr "கொடிகள்"
56
57 #: ../src/gbinding.c:700
58 msgid "The binding flags"
59 msgstr "பிணைக்கும் கொடிகள்"
60
61 #: ../src/remote-viewer-main.c:47
62 #, c-format
63 msgid "remote-viewer version %s\n"
64 msgstr "remote-viewer பதிப்பு %s\n"
65
66 #: ../src/remote-viewer-main.c:69
67 #, c-format
68 msgid "Invalid full-screen argument: %s"
69 msgstr ""
70
71 #. Create the widgets
72 #: ../src/remote-viewer-main.c:104
73 msgid "Connection details"
74 msgstr ""
75
76 #: ../src/remote-viewer-main.c:119
77 msgid "URL:"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:127
81 msgid "Recent connections:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2485 msgid "Run '"
2586 msgstr "இ யக்கு '"
2687
27 #: ../src/main.c:55
28 msgid "display version information"
29 msgstr "பதிப்புத் தகவலைக் காட்டு"
30
31 #: ../src/main.c:57
32 msgid "display verbose information"
33 msgstr "வெர்போஸ் தகவலைக் காட்டு"
34
35 #: ../src/main.c:59
36 msgid "direct connection with no automatic tunnels"
37 msgstr "தானான டனர்களுடன் இல்லாத நேரடி இணைப்பு"
38
39 #: ../src/main.c:61
40 msgid "connect to hypervisor"
41 msgstr "ஹபர்வைருடன் இணை"
42
43 #: ../src/main.c:63
44 msgid "wait for domain to start"
45 msgstr "டொமைன் துவங்குவதற்காக காத்திரு"
46
47 #: ../src/main.c:65
48 msgid "reconnect to domain upon restart"
49 msgstr "மறுதுவக்கும் போது டொமைனுடன் மீண்டும் இணைக்கப்படும்"
50
51 #: ../src/main.c:67
52 msgid "display debugging information"
53 msgstr "பிழைத்திருத்தத் தகவலைக் காட்டு"
88 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
89 msgid "Display version information"
90 msgstr "காட்சி பதிப்பு தகவல்"
91
92 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
93 msgid "Display verbose information"
94 msgstr "காட்சி வெர்போஸ் தகவல்"
95
96 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
97 msgid "Direct connection with no automatic tunnels"
98 msgstr "தானியக்க டனல்கள் இல்லாமல் நேரடி இணைப்பு"
99
100 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
101 msgid "Zoom level of window, in percentage"
102 msgstr "சாளரத்தின் அளவிடும் நிலை, சதவீதத்தில்"
103
104 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
105 msgid "Display debugging information"
106 msgstr "பிழைத்திருத்த தகவலை காட்டவும்"
107
108 #: ../src/remote-viewer-main.c:219
109 msgid "Open in full screen mode (=<auto-conf>)"
110 msgstr ""
111
112 #: ../src/remote-viewer-main.c:222
113 msgid "Open connection using Spice controller communication"
114 msgstr "ஸ்பைஸ் கட்டுப்படுத்தி தொடர்பை பயன்படுத்தி இணைப்பை திறக்கவும்"
115
116 #: ../src/remote-viewer-main.c:249
117 msgid "Remote Viewer"
118 msgstr ""
54119
55120 #. Setup command line options
56 #: ../src/main.c:79
57 msgid "- Virtual machine graphical console"
58 msgstr "- உள்ளமை கணினி வரைகலை பணியகம்"
59
60 #: ../src/main.c:95
61 #, c-format
121 #: ../src/remote-viewer-main.c:252
122 msgid "- Remote viewer client"
123 msgstr "- Remote viewer client"
124
125 #: ../src/remote-viewer-main.c:275
126 #, c-format
127 msgid "Error: extra arguments given while using Spice controller\n"
128 msgstr ""
129
130 #: ../src/remote-viewer-main.c:284
131 #, c-format
132 msgid "Error: can't handle multiple URIs\n"
133 msgstr ""
134
135 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
136 #, c-format
137 msgid "Zoom level must be within 10-200\n"
138 msgstr "அளவிடும் நிலை 10-200-க்குள் இருக்க வேண்டும்\n"
139
140 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
141 msgid "Failed to initiate connection"
142 msgstr "இணைப்பை துவக்க முடியவில்லை"
143
144 #: ../src/remote-viewer.c:250
145 msgid "Display disabled by controller"
146 msgstr "கட்டுப்படுத்தியால் காட்சி செயல்நீக்கப்பட்டது"
147
148 #: ../src/remote-viewer.c:697
149 #, c-format
150 msgid "Controller connection failed: %s"
151 msgstr "கட்டுப்படுத்தி இணைப்பு தோல்வியுற்றது: %s"
152
153 #: ../src/remote-viewer.c:750
154 msgid "Couldn't create a Spice session"
155 msgstr "ஒரு ஸ்பைஸ் அமர்வை உருவாக்க முடியவில்லை"
156
157 #: ../src/remote-viewer.c:764
158 msgid "Setting up Spice session..."
159 msgstr "ஸ்பைஸ் அமர்வை அமைக்கிறது..."
160
161 #: ../src/remote-viewer.c:774
162 msgid "Cannot determine the connection type from URI"
163 msgstr "URI-இலிருந்து இணைப்பு வகையை வரையறுக்க முடியாது"
164
165 #: ../src/remote-viewer.c:779
166 #, c-format
167 msgid "Couldn't create a session for this type: %s"
168 msgstr "இந்த வகைக்கு ஒரு அமர்வை உருவாக்க முடியாது: %s"
169
170 #. * Local variables:
171 #. * c-indent-level: 4
172 #. * c-basic-offset: 4
173 #. * indent-tabs-mode: nil
174 #. * End:
175 #.
176 #: ../src/virt-viewer-about.xml.h:1
177 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
178 msgstr "ஒரு தொலை பணிமேடை GTK-VNC, SPICE-GTK மற்றும் libvirtஆல் உருவாகப்பட்டது"
179
180 #: ../src/virt-viewer-about.xml.h:2
181 msgid "About Glade"
182 msgstr "Glade பற்றி"
183
184 #: ../src/virt-viewer-about.xml.h:3
62185 msgid ""
63 "\n"
64 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
65 "\n"
66 "%s\n"
67 "\n"
68 msgstr ""
69 "\n"
70 "பயன்பாடு: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
71 "\n"
72 "%s\n"
73 "\n"
74
75 #: ../src/viewer.c:878
76 #, c-format
77 msgid "Cannot determine the VNC port for the guest %s"
78 msgstr "VNC துறையை விருந்தினர் %sகாக வரையறுக்க முடியவில்லை"
79
80 #: ../src/viewer.c:884
81 #, c-format
82 msgid "Cannot determine the VNC host for the guest %s"
83 msgstr "VNC புரவலரை விருந்தினர் %sகாக வரையறுக்க முடியவில்லை"
84
85 #: ../src/viewer.c:984
86 #, c-format
87 msgid "Unable to connect to the VNC server %s"
88 msgstr "VNC ஐ சேவையக %s உடன் இணைக்க முடியவில்லை "
89
90 #: ../src/viewer.c:1001
91 #, c-format
92 msgid ""
93 "Unable to authenticate with VNC server at %s: %s\n"
94 "Retry connection again?"
95 msgstr ""
96 "VNC சேவையகத்தை %s உடன் அங்கீகரிக்க முடியவில்லை: %s\n"
97 "இணைப்பை மீண்டும் மறுமுயற்சி செய்யவா?"
98
99 #: ../src/viewer.c:1019
100 #, c-format
101 msgid ""
102 "Unable to authenticate with VNC server at %s\n"
103 "Unsupported authentication type %d"
104 msgstr ""
105 "VNC சேவையகத்தை %s உடன் அங்கீகரிக்க முடியவில்லை\n"
106 "துணைபுரியாத அங்கீகார வகை %d"
107
108 #: ../src/viewer.c:1111
109 #, c-format
110 msgid "Cannot find guest domain %s"
111 msgstr "விருந்தினர் டொமைன் %sஐ தேட முடியவில்லை"
112
113 #: ../src/viewer.c:1213
114 #, c-format
115 msgid "Unable to connect to libvirt with URI %s"
116 msgstr "libvirt ஐ URI %s உடன் இணைக்க முடியவில்லை"
117
118 #: ../src/viewer.c:1214
119 msgid "[none]"
120 msgstr "[ஒன்றுமில்லாத]"
121
122 #.
123 #. * Local variables:
124 #. * c-indent-level: 8
125 #. * c-basic-offset: 8
126 #. * tab-width: 8
127 #. * End:
128 #.
129 #: ../src/about.glade.h:1
130 msgid "A remote desktop client built with GTK-VNC and libvirt"
131 msgstr "ஒரு தொலை பணிமேடை க்ளையன்ட் GTK-VNC மற்றும் libvirt உடன் கட்டுகிறார்"
132
133 #: ../src/about.glade.h:2
134 msgid "About Glade"
135 msgstr "க்லேடைப் பற்றி"
136
137 #: ../src/about.glade.h:3
138 msgid ""
139 "Copyright 2007-2008 Daniel P. Berrange\n"
140 "Copyright 2007-2008 Red Hat, Inc."
141 msgstr ""
142 "Copyright 2007-2008 Daniel P. Berrange\n"
143 "Copyright 2007-2008 Red Hat, Inc."
144
145 #: ../src/about.glade.h:5
186 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
187 "Copyright (C) 2007-2012 Red Hat, Inc."
188 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
189
190 #: ../src/virt-viewer-about.xml.h:5
146191 msgid "The Fedora Translation Team"
147192 msgstr "Fedora மொழிபெயர்ப்பு குழு"
148193
149 #: ../src/about.glade.h:6
194 #: ../src/virt-viewer-about.xml.h:6
150195 msgid ""
151196 "This program is free software; you can redistribute it and/or modify\n"
152197 "it under the terms of the GNU General Public License as published by\n"
161206 "You should have received a copy of the GNU General Public License\n"
162207 "along with this program; if not, write to the Free Software\n"
163208 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
164 msgstr ""
165 "This program is free software; you can redistribute it and/or modify\n"
166 "it under the terms of the GNU General Public License as published by\n"
167 "the Free Software Foundation; either version 2 of the License, or\n"
168 "(at your option) any later version.\n"
169 "\n"
170 "This program is distributed in the hope that it will be useful,\n"
171 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
172 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
173 "GNU General Public License for more details.\n"
174 "\n"
175 "You should have received a copy of the GNU General Public License\n"
176 "along with this program; if not, write to the Free Software\n"
177 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
178
179 #: ../src/about.glade.h:20
209 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"
210
211 #: ../src/virt-viewer-about.xml.h:20
180212 msgid "virt-manager.org"
181213 msgstr "virt-manager.org"
182214
183 #: ../src/auth.glade.h:1
215 #: ../src/virt-viewer-app.c:284
216 msgid "This is the last visible display. Do you want to quit?"
217 msgstr "இந்த கடைசி தெரியும் காட்சி. வெளியேற வேண்டுமா?"
218
219 #: ../src/virt-viewer-app.c:624
220 #, c-format
221 msgid "Waiting for display %d..."
222 msgstr "காட்சி %d-க்கு காத்திருக்கிறது..."
223
224 #: ../src/virt-viewer-app.c:707
225 #, c-format
226 msgid "Unknown graphic type for the guest %s"
227 msgstr "விருந்தினர் %sக்கான தெரியாத வரைகலை வகை"
228
229 #: ../src/virt-viewer-app.c:782
230 msgid "Connect to ssh failed."
231 msgstr "ssh-உடன் இணைக்க முடியவில்லை."
232
233 #: ../src/virt-viewer-app.c:784
234 msgid "Can't connect to channel, SSH only supported."
235 msgstr "சேனலுடன் இணைக்க வேண்டாம், SSH மட்டும் துணைபுரிகிறது."
236
237 #: ../src/virt-viewer-app.c:796
238 msgid "Connect to channel unsupported."
239 msgstr "சேனலுடன் இணைப்பு துணைபுரியவில்லை."
240
241 #: ../src/virt-viewer-app.c:876
242 msgid "Connecting to graphic server"
243 msgstr "வரைகலை சேவையகத்துடன் இணைக்கிறது"
244
245 #: ../src/virt-viewer-app.c:1006
246 msgid "Guest domain has shutdown"
247 msgstr "விருந்தினர் டொமைன் நிறுத்தப்பட்டது"
248
249 #: ../src/virt-viewer-app.c:1056
250 msgid "Connected to graphic server"
251 msgstr "வரைகலை சேவையகத்துடன் இணைக்கப்பட்டது"
252
253 #: ../src/virt-viewer-app.c:1082
254 #, c-format
255 msgid "Unable to connect to the graphic server %s"
256 msgstr "வரைகலை சேவையகம் %s-க்கு இணைக்க முடியவில்லை"
257
258 #: ../src/virt-viewer-app.c:1111
259 #, c-format
260 msgid ""
261 "Unable to authenticate with remote desktop server at %s: %s\n"
262 "Retry connection again?"
263 msgstr "தொலை பணிமேடை சேவையகம் %s-இலில் அங்கீகரிக்க முடியவில்லை: %s\nஇணைப்பை மீண்டும் முயற்சிக்கவும்?"
264
265 #: ../src/virt-viewer-app.c:1131
266 #, c-format
267 msgid "Unable to authenticate with remote desktop server: %s"
268 msgstr "தொலை பணிமேடை சேவையகத்துடன் அங்கீகரிக்க முடியவில்லை: %s"
269
270 #: ../src/virt-viewer-app.c:1139
271 #, c-format
272 msgid "USB redirection error: %s"
273 msgstr "USB மறுதிசையிடல் பிழை: %s"
274
275 #. * Local variables:
276 #. * c-indent-level: 4
277 #. * c-basic-offset: 4
278 #. * indent-tabs-mode: nil
279 #. * End:
280 #.
281 #: ../src/virt-viewer-auth.xml.h:1
184282 msgid "Authentication required"
185 msgstr "அங்கீகாரம் தேவைப்படுகிறது"
186
187 #: ../src/auth.glade.h:2
283 msgstr "அங்கீகாரம் தேவை"
284
285 #: ../src/virt-viewer-auth.xml.h:2
188286 msgid "Password:"
189287 msgstr "கடவுச்சொல்:"
190288
191 #: ../src/auth.glade.h:3
289 #: ../src/virt-viewer-auth.xml.h:3
192290 msgid "Username:"
193291 msgstr "பயனர்பெயர்:"
194292
195 #: ../src/auth.glade.h:4
196 msgid "gtk-cancel"
197 msgstr "gtk-ரத்து"
198
199 #: ../src/auth.glade.h:5
200 msgid "gtk-ok"
201 msgstr "gtk-சரி"
202
203 #: ../src/auth.glade.h:6
293 #: ../src/virt-viewer-auth.xml.h:4
204294 msgid "label"
205 msgstr "லேபில்"
206
207 #: ../src/viewer.glade.h:1
295 msgstr "லேபிள்"
296
297 #: ../src/virt-viewer-main.c:38
298 #, c-format
299 msgid "%s version %s\n"
300 msgstr "%s பதிப்பு %s\n"
301
302 #: ../src/virt-viewer-main.c:69
303 msgid "Attach to the local display using libvirt"
304 msgstr "libvirt-ஐ பயன்படுத்தி உள்ளமை காட்சிக்கு இணைக்கவும்"
305
306 #: ../src/virt-viewer-main.c:71
307 msgid "Connect to hypervisor"
308 msgstr "ஹைபர்வைசருடன் இணைக்கவும்"
309
310 #: ../src/virt-viewer-main.c:73
311 msgid "Wait for domain to start"
312 msgstr "டொமைன் துவக்க காத்திருக்கவும்"
313
314 #: ../src/virt-viewer-main.c:75
315 msgid "Reconnect to domain upon restart"
316 msgstr "மறுதுவக்கத்தின்ப்படி டொமைனை மறுஇணைக்கவும்"
317
318 #: ../src/virt-viewer-main.c:81
319 msgid "Open in full screen mode"
320 msgstr "முழுத்திரை முறைமையில் திறக்கவும்"
321
322 #: ../src/virt-viewer-main.c:96
323 msgid "Virt Viewer"
324 msgstr "Virt Viewer"
325
326 #. Setup command line options
327 #: ../src/virt-viewer-main.c:99
328 msgid "- Virtual machine graphical console"
329 msgstr "- உள்ளமை கணினி வரைகலை பணியகம்"
330
331 #: ../src/virt-viewer-main.c:120
332 #, c-format
333 msgid ""
334 "\n"
335 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
336 "\n"
337 "%s\n"
338 "\n"
339 msgstr "\nபயன்பாடு: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
340
341 #. Create the widgets
342 #: ../src/virt-viewer-session-spice.c:380
343 msgid "Select USB devices for redirection"
344 msgstr "மறுதிசையிட USB சாதனங்களை தேர்ந்தெடுக்கவும்"
345
346 #: ../src/virt-viewer-session-vnc.c:141
347 #, c-format
348 msgid "Unsupported authentication type %d"
349 msgstr "துணைபுரியாத அங்கீகார வகை %d"
350
351 #: ../src/virt-viewer-window.c:832
352 msgid "Disconnect"
353 msgstr "துண்டி"
354
355 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
356 #: ../src/virt-viewer.xml.h:22
357 msgid "USB device selection"
358 msgstr "USB சாதன தேர்வு"
359
360 #: ../src/virt-viewer-window.c:848
361 msgid "Send key combination"
362 msgstr ""
363
364 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
365 msgid "Leave fullscreen"
366 msgstr "முழுத்திரையை விட்டுவிலகு"
367
368 #: ../src/virt-viewer-window.c:937
369 msgid "Ctrl+Alt"
370 msgstr ""
371
372 #: ../src/virt-viewer-window.c:940
373 #, c-format
374 msgid "(Press %s to release pointer)"
375 msgstr ""
376
377 #. translators:
378 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
379 #. <appname>"
380 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
381 #. Viewer"
382 #.
383 #: ../src/virt-viewer-window.c:951
384 #, c-format
385 msgid "%s%s%s - %s"
386 msgstr "%s%s%s - %s"
387
388 #. translators: <space>
389 #: ../src/virt-viewer-window.c:955
390 msgid " "
391 msgstr " "
392
393 #: ../src/virt-viewer.c:144
394 msgid "Waiting for guest domain to re-start"
395 msgstr "மறுதுவக்க விருந்தினர் டொமைனுக்காக காத்திருக்கிறது"
396
397 #: ../src/virt-viewer.c:308
398 #, c-format
399 msgid "Cannot determine the graphic type for the guest %s"
400 msgstr "விருந்தினர் %s-க்கு வரைகலை வகையை வரையறுக்க முடியாது"
401
402 #: ../src/virt-viewer.c:321
403 #, c-format
404 msgid "Cannot determine the graphic address for the guest %s"
405 msgstr "விருந்தினர் %s-க்கு வரைகலை முகவரியை வரையறுக்க முடியாது"
406
407 #: ../src/virt-viewer.c:344
408 #, c-format
409 msgid "Cannot determine the host for the guest %s"
410 msgstr "விருந்தினர் %s-க்கு புரவலனை வரையறுக்க முடியாது"
411
412 #: ../src/virt-viewer.c:474
413 msgid "Finding guest domain"
414 msgstr "விருந்தினர் டொமைனை தேடுகிறது"
415
416 #: ../src/virt-viewer.c:478
417 msgid "Waiting for guest domain to be created"
418 msgstr "விருந்தினர் டொமைன் உருவாக்க காத்திருக்கிறது"
419
420 #: ../src/virt-viewer.c:483
421 #, c-format
422 msgid "Cannot find guest domain %s"
423 msgstr "விருந்தினர் டொமைன் %sஐ தேட முடியவில்லை"
424
425 #: ../src/virt-viewer.c:490
426 msgid "Checking guest domain status"
427 msgstr "விருந்தினர் நிலையை சரிபார்க்கிறது"
428
429 #: ../src/virt-viewer.c:497
430 msgid "Waiting for guest domain to start"
431 msgstr "துவக்க விருந்தினர் டொமைனுக்காக காத்திருக்கிறது"
432
433 #: ../src/virt-viewer.c:504
434 msgid "Waiting for guest domain to start server"
435 msgstr "சேவையகத்தை துவக்க விருந்தினர் டொமைனுக்காக காத்திருக்கிறது"
436
437 #: ../src/virt-viewer.c:624
438 #, c-format
439 msgid "Unable to connect to libvirt with URI %s"
440 msgstr "libvirt ஐ URI %s உடன் இணைக்க முடியவில்லை"
441
442 #: ../src/virt-viewer.c:625
443 msgid "[none]"
444 msgstr "[ஒன்றுமில்லாத]"
445
446 #. * Local variables:
447 #. * c-indent-level: 4
448 #. * c-basic-offset: 4
449 #. * indent-tabs-mode: nil
450 #. * End:
451 #.
452 #: ../src/virt-viewer.xml.h:1
208453 msgid "Automatically resize"
209454 msgstr "தானாக மறுஅளவிடு"
210455
211 #: ../src/viewer.glade.h:2
456 #: ../src/virt-viewer.xml.h:2
212457 msgid "Ctrl+Alt+F11"
213458 msgstr "Ctrl+Alt+F11"
214459
215 #: ../src/viewer.glade.h:3
460 #: ../src/virt-viewer.xml.h:3
216461 msgid "Ctrl+Alt+F12"
217462 msgstr "Ctrl+Alt+F12"
218463
219 #: ../src/viewer.glade.h:4
464 #: ../src/virt-viewer.xml.h:4
220465 msgid "Ctrl+Alt+F1_0"
221466 msgstr "Ctrl+Alt+F1_0"
222467
223 #: ../src/viewer.glade.h:5
468 #: ../src/virt-viewer.xml.h:5
224469 msgid "Ctrl+Alt+F_1"
225470 msgstr "Ctrl+Alt+F_1"
226471
227 #: ../src/viewer.glade.h:6
472 #: ../src/virt-viewer.xml.h:6
228473 msgid "Ctrl+Alt+F_2"
229474 msgstr "Ctrl+Alt+F_2"
230475
231 #: ../src/viewer.glade.h:7
476 #: ../src/virt-viewer.xml.h:7
232477 msgid "Ctrl+Alt+F_3"
233478 msgstr "Ctrl+Alt+F_3"
234479
235 #: ../src/viewer.glade.h:8
480 #: ../src/virt-viewer.xml.h:8
236481 msgid "Ctrl+Alt+F_4"
237482 msgstr "Ctrl+Alt+F_4"
238483
239 #: ../src/viewer.glade.h:9
484 #: ../src/virt-viewer.xml.h:9
240485 msgid "Ctrl+Alt+F_5"
241486 msgstr "Ctrl+Alt+F_5"
242487
243 #: ../src/viewer.glade.h:10
488 #: ../src/virt-viewer.xml.h:10
244489 msgid "Ctrl+Alt+F_6"
245490 msgstr "Ctrl+Alt+F_6"
246491
247 #: ../src/viewer.glade.h:11
492 #: ../src/virt-viewer.xml.h:11
248493 msgid "Ctrl+Alt+F_7"
249494 msgstr "Ctrl+Alt+F_7"
250495
251 #: ../src/viewer.glade.h:12
496 #: ../src/virt-viewer.xml.h:12
252497 msgid "Ctrl+Alt+F_8"
253498 msgstr "Ctrl+Alt+F_8"
254499
255 #: ../src/viewer.glade.h:13
500 #: ../src/virt-viewer.xml.h:13
256501 msgid "Ctrl+Alt+F_9"
257502 msgstr "Ctrl+Alt+F_9"
258503
259 #: ../src/viewer.glade.h:14
504 #: ../src/virt-viewer.xml.h:14
260505 msgid "Ctrl+Alt+_Backspace"
261506 msgstr "Ctrl+Alt+_Backspace"
262507
263 #: ../src/viewer.glade.h:15
508 #: ../src/virt-viewer.xml.h:15
264509 msgid "Ctrl+Alt+_Del"
265510 msgstr "Ctrl+Alt+_Del"
266511
267 #: ../src/viewer.glade.h:16
512 #: ../src/virt-viewer.xml.h:16
513 msgid "Displays"
514 msgstr "காட்சிகள்"
515
516 #: ../src/virt-viewer.xml.h:17
268517 msgid "Full screen"
269518 msgstr "முழுத்திரை"
270519
271 #: ../src/viewer.glade.h:17
520 #: ../src/virt-viewer.xml.h:18
521 msgid "Release cursor"
522 msgstr "கர்சரை விடு"
523
524 #: ../src/virt-viewer.xml.h:19
272525 msgid "Screenshot"
273526 msgstr "திரைப்பிடிப்பு"
274527
275 #: ../src/viewer.glade.h:18
528 #: ../src/virt-viewer.xml.h:20
529 msgid "Smartcard insertion"
530 msgstr "ஸ்மார்ட் கார்டு நுழைத்தல்"
531
532 #: ../src/virt-viewer.xml.h:21
533 msgid "Smartcard removal"
534 msgstr "ஸ்மார்ட் கார்டு நீக்கல்"
535
536 #: ../src/virt-viewer.xml.h:23
276537 msgid "_File"
277538 msgstr "கோப்பு (_F)"
278539
279 #: ../src/viewer.glade.h:19
540 #: ../src/virt-viewer.xml.h:24
280541 msgid "_Help"
281542 msgstr "உதவி (_H)"
282543
283 #: ../src/viewer.glade.h:20
544 #: ../src/virt-viewer.xml.h:25
284545 msgid "_PrintScreen"
285 msgstr "அச்சுத்திரை (_P)"
286
287 #: ../src/viewer.glade.h:21
546 msgstr "திரைஅச்சு (_P)"
547
548 #: ../src/virt-viewer.xml.h:26
288549 msgid "_Send key"
289 msgstr "அனுப்பும் விசை (_S)"
290
291 #: ../src/viewer.glade.h:22
550 msgstr "விசையை அனுப்பு (_S)"
551
552 #: ../src/virt-viewer.xml.h:27
292553 msgid "_View"
293554 msgstr "பார்வை (_V)"
294555
295 #: ../src/viewer.glade.h:23
296 msgid "gtk-about"
297 msgstr "gtk-பற்றி"
298
299 #: ../src/viewer.glade.h:24
300 msgid "gtk-quit"
301 msgstr "gtk-நிறுத்து"
302
303 #: ../src/viewer.glade.h:25
304 msgid "page 1"
305 msgstr "பக்கம் 1"
306
307 #: ../src/viewer.glade.h:26
308 msgid "page 2"
309 msgstr "பக்கம் 2"
310
311
556 #: ../src/virt-viewer.xml.h:28
557 msgid "_Zoom"
558 msgstr "அளவிடு (_Z)"
+436
-190
po/te.po less more
0 # translation of virt-viewer.tip.virt-viewer.po to Telugu
0 # SOME DESCRIPTIVE TITLE.
11 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
22 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Krishna Babu K <kkrothap@redhat.com>, 2010.
3 #
4 # Translators:
5 # Krishna Babu K <kkrothap@redhat.com>, 2010, 2012.
56 msgid ""
67 msgstr ""
7 "Project-Id-Version: virt-viewer.tip.virt-viewer\n"
8 "Project-Id-Version: virt-viewer\n"
89 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2010-01-25 10:20+0000\n"
10 "PO-Revision-Date: 2010-01-28 16:26+0530\n"
11 "Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
12 "Language-Team: Telugu <en@li.org>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Telugu (http://www.transifex.net/projects/p/fedora/language/te/)\n"
1314 "MIME-Version: 1.0\n"
1415 "Content-Type: text/plain; charset=UTF-8\n"
1516 "Content-Transfer-Encoding: 8bit\n"
16 "X-Generator: KBabel 1.11.4\n"
17 "Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s వర్షన్ %s\n"
23
24 #: ../src/main.c:52
17 "Language: te\n"
18 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "మూలం"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "బందనం యొక్క మూలం"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "లక్ష్యం"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "బందనం యొక్క లక్ష్యం"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "మూలపు లక్షణం"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "బందనం చేయుటకు మూలంపైన లక్షణం"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "లక్ష్యం లక్షణం"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "బందనం చేయుటకు లక్ష్యం పైని లక్షణం"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "ఫ్లాగ్స్"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "బందనం ఫ్లాగ్స్"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "రిమోట్-వ్యూయర్ వర్షన్ %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2584 msgid "Run '"
2685 msgstr "Run '"
2786
28 #: ../src/main.c:55
29 msgid "display version information"
30 msgstr "వర్షన్ సమాచారమును ప్రదర్శించుము"
31
32 #: ../src/main.c:57
33 msgid "display verbose information"
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "వర్షన్ సమాచారం ప్రదర్శించు"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
3493 msgstr "వెర్బోస్ సమాచారమును ప్రదర్శించుము"
3594
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
3897 msgstr "ఎటువంటి స్వయంచాలక టన్నెల్సు లేకుండా నేరుగా అనుసంధానము"
3998
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "హైపర్విజర్‌కు అనుసంధానమవ్వు"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "ప్రారంభమగుటకు డొమైన్ కొరకు వేచివుండుము"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "పునఃప్రారంభముపై డొమైన్‌కు తిరిగిఅనుసంధానమవ్వు"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
100 msgid "Zoom level of window, in percentage"
101 msgstr "విండో యొక్క జూమ్ స్థాయి, శాతంలో"
102
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
54105 msgstr "డీబగ్గింగ్ సమాచారమును ప్రదర్శించుము"
55106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "స్పైస్ కంట్రోలర్ కమ్యునికేషన్ వుపయోగించి అనుసంధానం తెరువుము"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
118
56119 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "- వర్చ్యువల్ మిషన్ గ్రాఫికల్ కన్సోల్"
60
61 #: ../src/main.c:95
62 #, c-format
63 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "వినియోగము: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "గెస్టు %s కొరకు VNC పోర్టును నిర్ధారించలేదు"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "గెస్టు %s కొరకు VNC హోస్టును నిర్ధారించలేదు"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "VNC సేవిక %sకు అనుసంధానం కాలేక పోయింది"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "%s వద్ద VNC సేవికతో ధృవీకరించలేక పోయింది: %s\n"
98 "అనుసంధానమును మరలా ప్రయత్నించాలా?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "%s వద్ద VNC సేవికతో దృవీకరించలేక పోయింది\n"
107 "మద్దతీయని దృవీకరణ రకము %d"
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "గెస్టు డొమైన్‌ %sను కనుగొనలేక పోయింది"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "URI %sతో libvirtకు అనుసంధానం కాలేదు"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "[ఏదీకాదు]"
122
123 #.
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "- దూరస్థ దర్శని క్లైంట్"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "జూమ్ స్థాయి తప్పకుండా 10-200 మద్య వుండాలి\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "అనుసంధానం సిద్దపరచుటకు విఫలమైంది"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "నియంత్రికచే ప్రదర్శన అచేతనమైంది"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "నియంత్రిక అనుసంధానం విఫలమైంది: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "స్పైస్ సెషన్ సృష్టించలేకపోయింది"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "స్పైస్ సెషన్ అమర్చుచున్నది..."
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "URI నుండి అనుసంధానం రకంను నిర్థారించలేము"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "ఈ రకము కొరకు సెషన్ సృష్టించలేక పోయింది: %s"
168
124169 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
128173 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "GTK-VNC మరియు libvirtతో వొక రిమోట్ డెస్కుటాప్ క్లైంట్ నిర్మించబడింది"
133
134 #: ../src/about.glade.h:2
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "GTK-VNC, SPICE-GTK మరియు libvirtతో నిర్మించబడిన వొక రిమోట్ డెస్కుటాప్ క్లైంట్"
178
179 #: ../src/virt-viewer-about.xml.h:2
135180 msgid "About Glade"
136181 msgstr "గ్లేడ్ గురించి"
137182
138 #: ../src/about.glade.h:3
183 #: ../src/virt-viewer-about.xml.h:3
139184 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "Copyright 2007-2008 Daniel P. Berrange\n"
144 "Copyright 2007-2008 Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
188
189 #: ../src/virt-viewer-about.xml.h:5
147190 msgid "The Fedora Translation Team"
148191 msgstr "Fedora అనువాద సమూహం"
149192
150 #: ../src/about.glade.h:6
193 #: ../src/virt-viewer-about.xml.h:6
151194 msgid ""
152195 "This program is free software; you can redistribute it and/or modify\n"
153196 "it under the terms of the GNU General Public License as published by\n"
162205 "You should have received a copy of the GNU General Public License\n"
163206 "along with this program; if not, write to the Free Software\n"
164207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "ఈ ప్రోగ్రామ్ ఉచిత సాఫ్టువేర్; ఉచిత సాఫ్టువేర్ సంస్థ తరుపున ప్రచురితమైన\n"
167 "GNU జనరల్ పబ్లిక్ లైసెన్సు కు లోబడి దీనిని మీరు పునఃపంపిణి మరియు/లేదా\n"
168 "సవరణ చేయవచ్చు; మీరు అనుసరించవలిసినది లైసెన్సు యొక్క వర్షన్ 2, లేదా\n"
169 "(మీ ఐచ్చికం వద్ద) దాని తరువాతి వర్షన్ కాని.\n"
170 "\n"
171 "పవర్ నిర్వాహకి అది ఉపయోగపడుతుందనే నమ్మకం తో పంపిణీ చేయబడింది,\n"
172 "అయితే ఏ హామి లేదు; వ్యాపారసంబంధితంగా కాని లేదా ప్రతిపాదిత ప్రయోజనం కొరకు\n"
173 "కాని హామీ లేదు. అధికవివరములకొరకు GNU జనరల్ పబ్లిక్ లైసెన్సు ను\n"
174 "చూడండి.\n"
175 "\n"
176 "ఈ ప్రోగ్రామ్ తో మీరు GNU జనరల్ పబ్లిక్ లైసెన్సు నకలు ను పొంది ఉంటారు;\n"
177 "పొందకపోతే, Free Software Foundation, Inc., Temple Place,\n"
178 "Suite 330, Boston, MA 02111-1307 USAకు వ్రాయండి.\n"
179
180 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
181211 msgid "virt-manager.org"
182212 msgstr "virt-manager.org"
183213
184 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "ఇది ఆఖరి దృశ్య ప్రదర్శన. మీరు నిష్క్రమించాలని అనుకొనుచున్నారా?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "ప్రదర్శన %d కొరకు వేచివుంది..."
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "అతిథి %s కొరకు తెలియని గ్రాఫిక్ రకం"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "ssh క్షేత్రముకు అనుసంధానించు."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "చానల్‌కు అనుసంధానం కాలేదు, SSH కు మాత్రమే తోడ్పాటు నిస్తోంది."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "చానల్ అనుసంధానంకు తోడ్పాటులేదు."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "గ్రాఫిక్ సేవికకు అనుసంధానమౌతోంది"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "అతిథి డొమైన్ మూసివేసింది"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "గ్రాఫిక్ సేవికకు అనుసంధానమైంది"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "గ్రాఫిక్ సేవిక %sకు అనుసంధానం కాలేక పోయింది"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "%s వద్ద రిమోట్ డెస్కుటాప్ సేవికతో ధృవీకరించలేక పోయింది: %s\nఅనుసంధానముకు మరలా ప్రయత్నించాలా?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "రిమోట్ డెస్కుటాప్ సేవికతో ధృవీకరించలేక పోయింది: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "USB రీడైరెక్షన్ దోషం: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
185281 msgid "Authentication required"
186282 msgstr "ధృవీకరణము అవసరమైంది"
187283
188 #: ../src/auth.glade.h:2
284 #: ../src/virt-viewer-auth.xml.h:2
189285 msgid "Password:"
190286 msgstr "సంకేతపదము:"
191287
192 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
193289 msgid "Username:"
194290 msgstr "వినియోగదారినామము:"
195291
196 #: ../src/auth.glade.h:4
197 msgid "gtk-cancel"
198 msgstr "gtk-cancel"
199
200 #: ../src/auth.glade.h:5
201 msgid "gtk-ok"
202 msgstr "gtk-ok"
203
204 #: ../src/auth.glade.h:6
292 #: ../src/virt-viewer-auth.xml.h:4
205293 msgid "label"
206294 msgstr "లేబుల్"
207295
208 #: ../src/viewer.glade.h:1
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s వర్షన్ %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "libvirt వుపయోగించి స్థానిక ప్రదర్శనకు అనుబందించు"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "హైపర్విజర్‌కు అనుసంధానమవ్వు"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "ప్రారంభమగుటకు డొమైన్ కొరకు వేచివుండుము"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "పునఃప్రారంభముపై డొమైన్‌కు తిరిగిఅనుసంధానమవ్వు"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "నిండు తెర రీతిలో తెరువుము"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "వర్ట్ వ్యూయర్"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "- వర్చ్యువల్ మిషన్ గ్రాఫికల్ కన్సోల్"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nవినియోగము: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "రీడైరెక్షన్ కొరకు USB పరికరాలను యెంపికచేయి"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "మద్దతీయని దృవీకరణ రకము %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "అననుసంధానించు"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "USB పరికర యెంపిక"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "నిండుతెర విడు"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s - %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "అతిథి డొమైన్ పునఃప్రారంభం కొరకు వేచివుంది"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "అతిథి %s కొరకు గ్రాఫిక్ రకంను నిర్థారించలేక పోయింది"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "అతిథి %s కొరకు గ్రాఫిక్ చిరునామా నిర్ధారించలేదు"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "అతిథి %s కొరకు అతిథేయను నిర్ధారించలేదు"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "అతిథి డొమైన్‌ కనుగొనుచున్నది"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "అతిథి డొమైన్ సృష్టించబడుటకు వేచివుంది"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "అతిథి డొమైన్‌ %sను కనుగొనలేక పోయింది"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "అతిథి డొమైన్‌ స్థితి పరిశీలిస్తోంది"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "అతిథి డొమైన్ ప్రారంభమగుటకు వేచివుంది"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "అతిథి డొమైన్ సేవికను ప్రారంభించుట కొరకు వేచివుంది"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "URI %sతో libvirtకు అనుసంధానం కాలేదు"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[ఏదీకాదు]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
209452 msgid "Automatically resize"
210453 msgstr "స్వయంచాలకంగా పునఃపరిమాణము"
211454
212 #: ../src/viewer.glade.h:2
455 #: ../src/virt-viewer.xml.h:2
213456 msgid "Ctrl+Alt+F11"
214457 msgstr "Ctrl+Alt+F11"
215458
216 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
217460 msgid "Ctrl+Alt+F12"
218461 msgstr "Ctrl+Alt+F12"
219462
220 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
221464 msgid "Ctrl+Alt+F1_0"
222465 msgstr "Ctrl+Alt+F1_0"
223466
224 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
225468 msgid "Ctrl+Alt+F_1"
226469 msgstr "Ctrl+Alt+F_1"
227470
228 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
229472 msgid "Ctrl+Alt+F_2"
230473 msgstr "Ctrl+Alt+F_2"
231474
232 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
233476 msgid "Ctrl+Alt+F_3"
234477 msgstr "Ctrl+Alt+F_3"
235478
236 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
237480 msgid "Ctrl+Alt+F_4"
238481 msgstr "Ctrl+Alt+F_4"
239482
240 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
241484 msgid "Ctrl+Alt+F_5"
242485 msgstr "Ctrl+Alt+F_5"
243486
244 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
245488 msgid "Ctrl+Alt+F_6"
246489 msgstr "Ctrl+Alt+F_6"
247490
248 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
249492 msgid "Ctrl+Alt+F_7"
250493 msgstr "Ctrl+Alt+F_7"
251494
252 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
253496 msgid "Ctrl+Alt+F_8"
254497 msgstr "Ctrl+Alt+F_8"
255498
256 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
257500 msgid "Ctrl+Alt+F_9"
258501 msgstr "Ctrl+Alt+F_9"
259502
260 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
261504 msgid "Ctrl+Alt+_Backspace"
262505 msgstr "Ctrl+Alt+_Backspace"
263506
264 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
265508 msgid "Ctrl+Alt+_Del"
266509 msgstr "Ctrl+Alt+_Del"
267510
268 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "ప్రదర్శనలు"
514
515 #: ../src/virt-viewer.xml.h:17
269516 msgid "Full screen"
270517 msgstr "నిండు తెర"
271518
272 #: ../src/viewer.glade.h:17
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "సూచీ విడుదలచేయి"
522
523 #: ../src/virt-viewer.xml.h:19
273524 msgid "Screenshot"
274525 msgstr "స్క్రీన్‌షాట్"
275526
276 #: ../src/viewer.glade.h:18
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "స్మార్టుకార్డ్ చొప్పింత"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "స్మార్టుకార్డ్ తీసివేత"
534
535 #: ../src/virt-viewer.xml.h:23
277536 msgid "_File"
278537 msgstr "ఫైలు (_F)"
279538
280 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
281540 msgid "_Help"
282541 msgstr "సహాయము(_H)"
283542
284 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
285544 msgid "_PrintScreen"
286545 msgstr "ప్రింట్‌స్క్రీన్ (_P)"
287546
288 #: ../src/viewer.glade.h:21
547 #: ../src/virt-viewer.xml.h:26
289548 msgid "_Send key"
290549 msgstr "పంపు కీ(_S)"
291550
292 #: ../src/viewer.glade.h:22
551 #: ../src/virt-viewer.xml.h:27
293552 msgid "_View"
294553 msgstr "దర్శించు (_V)"
295554
296 #: ../src/viewer.glade.h:23
297 msgid "gtk-about"
298 msgstr "gtk-about"
299
300 #: ../src/viewer.glade.h:24
301 msgid "gtk-quit"
302 msgstr "gtk-quit"
303
304 #: ../src/viewer.glade.h:25
305 msgid "page 1"
306 msgstr "పేజీ 1"
307
308 #: ../src/viewer.glade.h:26
309 msgid "page 2"
310 msgstr "పేజీ 2"
311
555 #: ../src/virt-viewer.xml.h:28
556 msgid "_Zoom"
557 msgstr "జూమ్ (_Z)"
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 msgid ""
6 msgstr ""
7 "Project-Id-Version: virt-viewer\n"
8 "Report-Msgid-Bugs-To: \n"
9 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
10 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
11 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
12 "Language-Team: Turkish (http://www.transifex.net/projects/p/fedora/language/tr/)\n"
13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n"
15 "Content-Transfer-Encoding: 8bit\n"
16 "Language: tr\n"
17 "Plural-Forms: nplurals=1; plural=0\n"
18
19 #: ../src/gbinding.c:637
20 msgid "Source"
21 msgstr ""
22
23 #: ../src/gbinding.c:638
24 msgid "The source of the binding"
25 msgstr ""
26
27 #: ../src/gbinding.c:652
28 msgid "Target"
29 msgstr ""
30
31 #: ../src/gbinding.c:653
32 msgid "The target of the binding"
33 msgstr ""
34
35 #: ../src/gbinding.c:668
36 msgid "Source Property"
37 msgstr ""
38
39 #: ../src/gbinding.c:669
40 msgid "The property on the source to bind"
41 msgstr ""
42
43 #: ../src/gbinding.c:684
44 msgid "Target Property"
45 msgstr ""
46
47 #: ../src/gbinding.c:685
48 msgid "The property on the target to bind"
49 msgstr ""
50
51 #: ../src/gbinding.c:699
52 msgid "Flags"
53 msgstr ""
54
55 #: ../src/gbinding.c:700
56 msgid "The binding flags"
57 msgstr ""
58
59 #: ../src/remote-viewer-main.c:47
60 #, c-format
61 msgid "remote-viewer version %s\n"
62 msgstr ""
63
64 #: ../src/remote-viewer-main.c:69
65 #, c-format
66 msgid "Invalid full-screen argument: %s"
67 msgstr ""
68
69 #. Create the widgets
70 #: ../src/remote-viewer-main.c:104
71 msgid "Connection details"
72 msgstr ""
73
74 #: ../src/remote-viewer-main.c:119
75 msgid "URL:"
76 msgstr ""
77
78 #: ../src/remote-viewer-main.c:127
79 msgid "Recent connections:"
80 msgstr ""
81
82 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
83 msgid "Run '"
84 msgstr ""
85
86 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
87 msgid "Display version information"
88 msgstr ""
89
90 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
91 msgid "Display verbose information"
92 msgstr ""
93
94 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
95 msgid "Direct connection with no automatic tunnels"
96 msgstr ""
97
98 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
99 msgid "Zoom level of window, in percentage"
100 msgstr ""
101
102 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
103 msgid "Display debugging information"
104 msgstr ""
105
106 #: ../src/remote-viewer-main.c:219
107 msgid "Open in full screen mode (=<auto-conf>)"
108 msgstr ""
109
110 #: ../src/remote-viewer-main.c:222
111 msgid "Open connection using Spice controller communication"
112 msgstr ""
113
114 #: ../src/remote-viewer-main.c:249
115 msgid "Remote Viewer"
116 msgstr ""
117
118 #. Setup command line options
119 #: ../src/remote-viewer-main.c:252
120 msgid "- Remote viewer client"
121 msgstr ""
122
123 #: ../src/remote-viewer-main.c:275
124 #, c-format
125 msgid "Error: extra arguments given while using Spice controller\n"
126 msgstr ""
127
128 #: ../src/remote-viewer-main.c:284
129 #, c-format
130 msgid "Error: can't handle multiple URIs\n"
131 msgstr ""
132
133 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
134 #, c-format
135 msgid "Zoom level must be within 10-200\n"
136 msgstr ""
137
138 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
139 msgid "Failed to initiate connection"
140 msgstr ""
141
142 #: ../src/remote-viewer.c:250
143 msgid "Display disabled by controller"
144 msgstr ""
145
146 #: ../src/remote-viewer.c:697
147 #, c-format
148 msgid "Controller connection failed: %s"
149 msgstr ""
150
151 #: ../src/remote-viewer.c:750
152 msgid "Couldn't create a Spice session"
153 msgstr ""
154
155 #: ../src/remote-viewer.c:764
156 msgid "Setting up Spice session..."
157 msgstr ""
158
159 #: ../src/remote-viewer.c:774
160 msgid "Cannot determine the connection type from URI"
161 msgstr ""
162
163 #: ../src/remote-viewer.c:779
164 #, c-format
165 msgid "Couldn't create a session for this type: %s"
166 msgstr ""
167
168 #. * Local variables:
169 #. * c-indent-level: 4
170 #. * c-basic-offset: 4
171 #. * indent-tabs-mode: nil
172 #. * End:
173 #.
174 #: ../src/virt-viewer-about.xml.h:1
175 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
176 msgstr ""
177
178 #: ../src/virt-viewer-about.xml.h:2
179 msgid "About Glade"
180 msgstr ""
181
182 #: ../src/virt-viewer-about.xml.h:3
183 msgid ""
184 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
185 "Copyright (C) 2007-2012 Red Hat, Inc."
186 msgstr ""
187
188 #: ../src/virt-viewer-about.xml.h:5
189 msgid "The Fedora Translation Team"
190 msgstr ""
191
192 #: ../src/virt-viewer-about.xml.h:6
193 msgid ""
194 "This program is free software; you can redistribute it and/or modify\n"
195 "it under the terms of the GNU General Public License as published by\n"
196 "the Free Software Foundation; either version 2 of the License, or\n"
197 "(at your option) any later version.\n"
198 "\n"
199 "This program is distributed in the hope that it will be useful,\n"
200 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
201 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
202 "GNU General Public License for more details.\n"
203 "\n"
204 "You should have received a copy of the GNU General Public License\n"
205 "along with this program; if not, write to the Free Software\n"
206 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
207 msgstr ""
208
209 #: ../src/virt-viewer-about.xml.h:20
210 msgid "virt-manager.org"
211 msgstr ""
212
213 #: ../src/virt-viewer-app.c:284
214 msgid "This is the last visible display. Do you want to quit?"
215 msgstr ""
216
217 #: ../src/virt-viewer-app.c:624
218 #, c-format
219 msgid "Waiting for display %d..."
220 msgstr ""
221
222 #: ../src/virt-viewer-app.c:707
223 #, c-format
224 msgid "Unknown graphic type for the guest %s"
225 msgstr ""
226
227 #: ../src/virt-viewer-app.c:782
228 msgid "Connect to ssh failed."
229 msgstr ""
230
231 #: ../src/virt-viewer-app.c:784
232 msgid "Can't connect to channel, SSH only supported."
233 msgstr ""
234
235 #: ../src/virt-viewer-app.c:796
236 msgid "Connect to channel unsupported."
237 msgstr ""
238
239 #: ../src/virt-viewer-app.c:876
240 msgid "Connecting to graphic server"
241 msgstr ""
242
243 #: ../src/virt-viewer-app.c:1006
244 msgid "Guest domain has shutdown"
245 msgstr ""
246
247 #: ../src/virt-viewer-app.c:1056
248 msgid "Connected to graphic server"
249 msgstr ""
250
251 #: ../src/virt-viewer-app.c:1082
252 #, c-format
253 msgid "Unable to connect to the graphic server %s"
254 msgstr ""
255
256 #: ../src/virt-viewer-app.c:1111
257 #, c-format
258 msgid ""
259 "Unable to authenticate with remote desktop server at %s: %s\n"
260 "Retry connection again?"
261 msgstr ""
262
263 #: ../src/virt-viewer-app.c:1131
264 #, c-format
265 msgid "Unable to authenticate with remote desktop server: %s"
266 msgstr ""
267
268 #: ../src/virt-viewer-app.c:1139
269 #, c-format
270 msgid "USB redirection error: %s"
271 msgstr ""
272
273 #. * Local variables:
274 #. * c-indent-level: 4
275 #. * c-basic-offset: 4
276 #. * indent-tabs-mode: nil
277 #. * End:
278 #.
279 #: ../src/virt-viewer-auth.xml.h:1
280 msgid "Authentication required"
281 msgstr ""
282
283 #: ../src/virt-viewer-auth.xml.h:2
284 msgid "Password:"
285 msgstr ""
286
287 #: ../src/virt-viewer-auth.xml.h:3
288 msgid "Username:"
289 msgstr ""
290
291 #: ../src/virt-viewer-auth.xml.h:4
292 msgid "label"
293 msgstr ""
294
295 #: ../src/virt-viewer-main.c:38
296 #, c-format
297 msgid "%s version %s\n"
298 msgstr ""
299
300 #: ../src/virt-viewer-main.c:69
301 msgid "Attach to the local display using libvirt"
302 msgstr ""
303
304 #: ../src/virt-viewer-main.c:71
305 msgid "Connect to hypervisor"
306 msgstr ""
307
308 #: ../src/virt-viewer-main.c:73
309 msgid "Wait for domain to start"
310 msgstr ""
311
312 #: ../src/virt-viewer-main.c:75
313 msgid "Reconnect to domain upon restart"
314 msgstr ""
315
316 #: ../src/virt-viewer-main.c:81
317 msgid "Open in full screen mode"
318 msgstr ""
319
320 #: ../src/virt-viewer-main.c:96
321 msgid "Virt Viewer"
322 msgstr ""
323
324 #. Setup command line options
325 #: ../src/virt-viewer-main.c:99
326 msgid "- Virtual machine graphical console"
327 msgstr ""
328
329 #: ../src/virt-viewer-main.c:120
330 #, c-format
331 msgid ""
332 "\n"
333 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
334 "\n"
335 "%s\n"
336 "\n"
337 msgstr ""
338
339 #. Create the widgets
340 #: ../src/virt-viewer-session-spice.c:380
341 msgid "Select USB devices for redirection"
342 msgstr ""
343
344 #: ../src/virt-viewer-session-vnc.c:141
345 #, c-format
346 msgid "Unsupported authentication type %d"
347 msgstr ""
348
349 #: ../src/virt-viewer-window.c:832
350 msgid "Disconnect"
351 msgstr ""
352
353 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
354 #: ../src/virt-viewer.xml.h:22
355 msgid "USB device selection"
356 msgstr ""
357
358 #: ../src/virt-viewer-window.c:848
359 msgid "Send key combination"
360 msgstr ""
361
362 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
363 msgid "Leave fullscreen"
364 msgstr ""
365
366 #: ../src/virt-viewer-window.c:937
367 msgid "Ctrl+Alt"
368 msgstr ""
369
370 #: ../src/virt-viewer-window.c:940
371 #, c-format
372 msgid "(Press %s to release pointer)"
373 msgstr ""
374
375 #. translators:
376 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
377 #. <appname>"
378 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
379 #. Viewer"
380 #.
381 #: ../src/virt-viewer-window.c:951
382 #, c-format
383 msgid "%s%s%s - %s"
384 msgstr ""
385
386 #. translators: <space>
387 #: ../src/virt-viewer-window.c:955
388 msgid " "
389 msgstr ""
390
391 #: ../src/virt-viewer.c:144
392 msgid "Waiting for guest domain to re-start"
393 msgstr ""
394
395 #: ../src/virt-viewer.c:308
396 #, c-format
397 msgid "Cannot determine the graphic type for the guest %s"
398 msgstr ""
399
400 #: ../src/virt-viewer.c:321
401 #, c-format
402 msgid "Cannot determine the graphic address for the guest %s"
403 msgstr ""
404
405 #: ../src/virt-viewer.c:344
406 #, c-format
407 msgid "Cannot determine the host for the guest %s"
408 msgstr ""
409
410 #: ../src/virt-viewer.c:474
411 msgid "Finding guest domain"
412 msgstr ""
413
414 #: ../src/virt-viewer.c:478
415 msgid "Waiting for guest domain to be created"
416 msgstr ""
417
418 #: ../src/virt-viewer.c:483
419 #, c-format
420 msgid "Cannot find guest domain %s"
421 msgstr ""
422
423 #: ../src/virt-viewer.c:490
424 msgid "Checking guest domain status"
425 msgstr ""
426
427 #: ../src/virt-viewer.c:497
428 msgid "Waiting for guest domain to start"
429 msgstr ""
430
431 #: ../src/virt-viewer.c:504
432 msgid "Waiting for guest domain to start server"
433 msgstr ""
434
435 #: ../src/virt-viewer.c:624
436 #, c-format
437 msgid "Unable to connect to libvirt with URI %s"
438 msgstr ""
439
440 #: ../src/virt-viewer.c:625
441 msgid "[none]"
442 msgstr ""
443
444 #. * Local variables:
445 #. * c-indent-level: 4
446 #. * c-basic-offset: 4
447 #. * indent-tabs-mode: nil
448 #. * End:
449 #.
450 #: ../src/virt-viewer.xml.h:1
451 msgid "Automatically resize"
452 msgstr ""
453
454 #: ../src/virt-viewer.xml.h:2
455 msgid "Ctrl+Alt+F11"
456 msgstr ""
457
458 #: ../src/virt-viewer.xml.h:3
459 msgid "Ctrl+Alt+F12"
460 msgstr ""
461
462 #: ../src/virt-viewer.xml.h:4
463 msgid "Ctrl+Alt+F1_0"
464 msgstr ""
465
466 #: ../src/virt-viewer.xml.h:5
467 msgid "Ctrl+Alt+F_1"
468 msgstr ""
469
470 #: ../src/virt-viewer.xml.h:6
471 msgid "Ctrl+Alt+F_2"
472 msgstr ""
473
474 #: ../src/virt-viewer.xml.h:7
475 msgid "Ctrl+Alt+F_3"
476 msgstr ""
477
478 #: ../src/virt-viewer.xml.h:8
479 msgid "Ctrl+Alt+F_4"
480 msgstr ""
481
482 #: ../src/virt-viewer.xml.h:9
483 msgid "Ctrl+Alt+F_5"
484 msgstr ""
485
486 #: ../src/virt-viewer.xml.h:10
487 msgid "Ctrl+Alt+F_6"
488 msgstr ""
489
490 #: ../src/virt-viewer.xml.h:11
491 msgid "Ctrl+Alt+F_7"
492 msgstr ""
493
494 #: ../src/virt-viewer.xml.h:12
495 msgid "Ctrl+Alt+F_8"
496 msgstr ""
497
498 #: ../src/virt-viewer.xml.h:13
499 msgid "Ctrl+Alt+F_9"
500 msgstr ""
501
502 #: ../src/virt-viewer.xml.h:14
503 msgid "Ctrl+Alt+_Backspace"
504 msgstr ""
505
506 #: ../src/virt-viewer.xml.h:15
507 msgid "Ctrl+Alt+_Del"
508 msgstr ""
509
510 #: ../src/virt-viewer.xml.h:16
511 msgid "Displays"
512 msgstr ""
513
514 #: ../src/virt-viewer.xml.h:17
515 msgid "Full screen"
516 msgstr ""
517
518 #: ../src/virt-viewer.xml.h:18
519 msgid "Release cursor"
520 msgstr ""
521
522 #: ../src/virt-viewer.xml.h:19
523 msgid "Screenshot"
524 msgstr ""
525
526 #: ../src/virt-viewer.xml.h:20
527 msgid "Smartcard insertion"
528 msgstr ""
529
530 #: ../src/virt-viewer.xml.h:21
531 msgid "Smartcard removal"
532 msgstr ""
533
534 #: ../src/virt-viewer.xml.h:23
535 msgid "_File"
536 msgstr ""
537
538 #: ../src/virt-viewer.xml.h:24
539 msgid "_Help"
540 msgstr ""
541
542 #: ../src/virt-viewer.xml.h:25
543 msgid "_PrintScreen"
544 msgstr ""
545
546 #: ../src/virt-viewer.xml.h:26
547 msgid "_Send key"
548 msgstr ""
549
550 #: ../src/virt-viewer.xml.h:27
551 msgid "_View"
552 msgstr ""
553
554 #: ../src/virt-viewer.xml.h:28
555 msgid "_Zoom"
556 msgstr ""
+445
-235
po/uk.po less more
0 # Ukrainian translation to virt-viewer.
1 # Copyright (C) Free Software Foundation
2 # This file is distributed under the same license as the virt-viewer package.
3 #
4 # Maxim Dziumanenko <dziumanenko@gmail.com>, 2003-2010.
5 # Yuri Chornoivan <yurchor@ukr.net>, 2011.
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012.
66 msgid ""
77 msgstr ""
88 "Project-Id-Version: virt-viewer\n"
99 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2011-02-08 07:51+0000\n"
11 "PO-Revision-Date: 2011-02-08 18:30+0200\n"
12 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
13 "Language-Team: Ukrainian <uk@li.org>\n"
10 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
11 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
12 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
13 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
1414 "MIME-Version: 1.0\n"
1515 "Content-Type: text/plain; charset=UTF-8\n"
1616 "Content-Transfer-Encoding: 8bit\n"
17 "Language: uk"
18 "X-Generator: Lokalize 1.2\n"
19 "Plural-Forms: nplurals=1; plural=0;\n"
20
21 #: ../src/main.c:34
22 #, c-format
23 msgid "%s version %s\n"
24 msgstr "%s версія %s\n"
25
26 #: ../src/main.c:53
17 "Language: uk\n"
18 "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"
19
20 #: ../src/gbinding.c:637
21 msgid "Source"
22 msgstr "Джерело"
23
24 #: ../src/gbinding.c:638
25 msgid "The source of the binding"
26 msgstr "Початковий об’єкт прив’язки"
27
28 #: ../src/gbinding.c:652
29 msgid "Target"
30 msgstr "Призначення"
31
32 #: ../src/gbinding.c:653
33 msgid "The target of the binding"
34 msgstr "Об’єкт призначення прив’язування"
35
36 #: ../src/gbinding.c:668
37 msgid "Source Property"
38 msgstr "Властивість джерела"
39
40 #: ../src/gbinding.c:669
41 msgid "The property on the source to bind"
42 msgstr "Властивість джерела прив’язування"
43
44 #: ../src/gbinding.c:684
45 msgid "Target Property"
46 msgstr "Властивість призначення"
47
48 #: ../src/gbinding.c:685
49 msgid "The property on the target to bind"
50 msgstr "Властивість призначення прив’язування"
51
52 #: ../src/gbinding.c:699
53 msgid "Flags"
54 msgstr "Прапорці"
55
56 #: ../src/gbinding.c:700
57 msgid "The binding flags"
58 msgstr "Прапорці прив’язування"
59
60 #: ../src/remote-viewer-main.c:47
61 #, c-format
62 msgid "remote-viewer version %s\n"
63 msgstr "remote-viewer версії %s\n"
64
65 #: ../src/remote-viewer-main.c:69
66 #, c-format
67 msgid "Invalid full-screen argument: %s"
68 msgstr ""
69
70 #. Create the widgets
71 #: ../src/remote-viewer-main.c:104
72 msgid "Connection details"
73 msgstr ""
74
75 #: ../src/remote-viewer-main.c:119
76 msgid "URL:"
77 msgstr ""
78
79 #: ../src/remote-viewer-main.c:127
80 msgid "Recent connections:"
81 msgstr ""
82
83 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2784 msgid "Run '"
2885 msgstr "Виконати '"
2986
30 #: ../src/main.c:56
31 msgid "display version information"
32 msgstr "показати інформацію щодо версії"
33
34 #: ../src/main.c:58
35 msgid "display verbose information"
36 msgstr "показати докладну інформацію"
37
38 #: ../src/main.c:60
39 msgid "direct connection with no automatic tunnels"
40 msgstr "пряме з'єднання без тунелів"
41
42 #: ../src/main.c:62
43 msgid "connect to hypervisor"
44 msgstr "з'єднатися з гіпервізором"
45
46 #: ../src/main.c:64
47 msgid "wait for domain to start"
48 msgstr "чекати на запуск служби"
49
50 #: ../src/main.c:66
51 msgid "reconnect to domain upon restart"
52 msgstr "заново приєднатися до домену після перезапуску"
53
54 #: ../src/main.c:68
87 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
88 msgid "Display version information"
89 msgstr "Показати інформацію щодо версії"
90
91 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
92 msgid "Display verbose information"
93 msgstr "Показати докладну інформацію"
94
95 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
96 msgid "Direct connection with no automatic tunnels"
97 msgstr "Пряме з’єднання без тунелів"
98
99 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
55100 msgid "Zoom level of window, in percentage"
56101 msgstr "Масштаб вікна, у відсотках"
57102
58 #: ../src/main.c:70
59 msgid "display debugging information"
60 msgstr "показати діагностичну інформацію"
103 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
104 msgid "Display debugging information"
105 msgstr "Показати діагностичну інформацію"
106
107 #: ../src/remote-viewer-main.c:219
108 msgid "Open in full screen mode (=<auto-conf>)"
109 msgstr ""
110
111 #: ../src/remote-viewer-main.c:222
112 msgid "Open connection using Spice controller communication"
113 msgstr "Встановити з’єднання за допомогою обміну даними з контролером Spice"
114
115 #: ../src/remote-viewer-main.c:249
116 msgid "Remote Viewer"
117 msgstr ""
61118
62119 #. Setup command line options
63 #: ../src/main.c:82
64 msgid "- Virtual machine graphical console"
65 msgstr "— графічна консоль віртуальної машини"
66
67 #: ../src/main.c:98
68 #, c-format
69 msgid ""
70 "\n"
71 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75 msgstr ""
76 "\n"
77 "Формат: %s [ПАРАМЕТРИ] НАЗВА_ДОМЕНУ|ID|UUID\n"
78 "\n"
79 "%s\n"
80 "\n"
81
82 #: ../src/viewer.c:830
83 #, c-format
84 msgid "Cannot determine the graphic type for the guest %s"
85 msgstr "Не вдалося визначити тип графічної підсистеми для гостьової системи %s"
86
87 #: ../src/viewer.c:842
88 #, c-format
89 msgid "Unknown graphic type for the guest %s"
90 msgstr "Невідомий тип графічної підсистеми для гостьової системи %s"
91
92 #: ../src/viewer.c:852
93 #, c-format
94 msgid "Cannot determine the graphic address for the guest %s"
95 msgstr ""
96 "Не вдалося визначити адресу графічного інтерфейсу для гостьової системи %s"
97
98 #: ../src/viewer.c:861
99 #, c-format
100 msgid "Cannot determine the host for the guest %s"
101 msgstr "Не вдалося визначити вузол для гостьової системи %s"
102
103 #: ../src/viewer.c:885
104 msgid "Connect to ssh failed."
105 msgstr "Спроба встановлення з’єднання ssh зазнала невдачі."
106
107 #: ../src/viewer.c:887
108 msgid "Can't connect to channel, SSH only supported."
109 msgstr "Не вдалося встановити з’єднання з каналом, підтримується лише SSH."
110
111 #: ../src/viewer.c:892
112 msgid "Connect to channel unsupported."
113 msgstr "Встановлення з’єднання з каналом не підтримується."
114
115 #: ../src/viewer.c:1049
116 #, c-format
117 msgid "Unable to connect to the graphic server %s"
118 msgstr "Не вдалося встановити з’єднання з графічним сервером %s"
119
120 #: ../src/viewer.c:1096
121 #, c-format
122 msgid "Cannot find guest domain %s"
123 msgstr "Не вдалося знайти гостьовий домен %s"
124
125 #: ../src/viewer.c:1204
126 #, c-format
127 msgid "Unable to connect to libvirt with URI %s"
128 msgstr "Не вдається встановити з’єднання з libvirt за адресою URI %s"
129
130 #: ../src/viewer.c:1205
131 msgid "[none]"
132 msgstr "[немає]"
133
134 #: ../src/display-vnc.c:142
135 #, c-format
136 msgid ""
137 "Unable to authenticate with VNC server at %s\n"
138 "Unsupported authentication type %d"
139 msgstr ""
140 "Не вдалося пройти розпізнавання на VNC-сервері %s\n"
141 "Тип розпізнавання %d не підтримується"
142
143 #: ../src/display-vnc.c:158
144 #, c-format
145 msgid ""
146 "Unable to authenticate with VNC server at %s: %s\n"
147 "Retry connection again?"
148 msgstr ""
149 "Не вдалося пройти розпізнавання на сервері VNC %s: %s\n"
150 "Повторити спробу встановлення з’єднання?"
151
152 #.
120 #: ../src/remote-viewer-main.c:252
121 msgid "- Remote viewer client"
122 msgstr "— клієнтська програма віддаленого перегляду"
123
124 #: ../src/remote-viewer-main.c:275
125 #, c-format
126 msgid "Error: extra arguments given while using Spice controller\n"
127 msgstr ""
128
129 #: ../src/remote-viewer-main.c:284
130 #, c-format
131 msgid "Error: can't handle multiple URIs\n"
132 msgstr ""
133
134 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
135 #, c-format
136 msgid "Zoom level must be within 10-200\n"
137 msgstr "Масштаб слід вказувати у діапазоні від 10 до 200\n"
138
139 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
140 msgid "Failed to initiate connection"
141 msgstr "Не вдалося започаткувати з’єднання"
142
143 #: ../src/remote-viewer.c:250
144 msgid "Display disabled by controller"
145 msgstr "Екран вимкнено контролером"
146
147 #: ../src/remote-viewer.c:697
148 #, c-format
149 msgid "Controller connection failed: %s"
150 msgstr "Помилка з’єднання з контролером: %s"
151
152 #: ../src/remote-viewer.c:750
153 msgid "Couldn't create a Spice session"
154 msgstr "Не вдалося створити сеанс Spice"
155
156 #: ../src/remote-viewer.c:764
157 msgid "Setting up Spice session..."
158 msgstr "Налаштування сеансу Spice…"
159
160 #: ../src/remote-viewer.c:774
161 msgid "Cannot determine the connection type from URI"
162 msgstr "Не вдалося визначити тип з’єднання за адресою"
163
164 #: ../src/remote-viewer.c:779
165 #, c-format
166 msgid "Couldn't create a session for this type: %s"
167 msgstr "Не вдалося створити сеанс цього типу: %s"
168
153169 #. * Local variables:
154 #. * c-indent-level: 8
155 #. * c-basic-offset: 8
156 #. * tab-width: 8
170 #. * c-indent-level: 4
171 #. * c-basic-offset: 4
172 #. * indent-tabs-mode: nil
157173 #. * End:
158 #.
159 #: ../src/about.glade.h:1
160 msgid "A remote desktop client built with GTK-VNC and libvirt"
161 msgstr "Клієнт віддаленого робочого столу включає GTK-VNC та libvirt"
162
163 #: ../src/about.glade.h:2
174 #.
175 #: ../src/virt-viewer-about.xml.h:1
176 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
177 msgstr "Клієнтську частину віддаленого керування стільницею побудовано на основі GTK-VNC, SPICE-GTK та libvirt"
178
179 #: ../src/virt-viewer-about.xml.h:2
164180 msgid "About Glade"
165181 msgstr "Про Glade"
166182
167 #: ../src/about.glade.h:3
183 #: ../src/virt-viewer-about.xml.h:3
168184 msgid ""
169 "Copyright 2007-2008 Daniel P. Berrange\n"
170 "Copyright 2007-2008 Red Hat, Inc."
171 msgstr ""
172 "© 2007-2008 Daniel P. Berrange\n"
173 "© 2007-2008 Red Hat, Inc."
174
175 #: ../src/about.glade.h:5
185 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
186 "Copyright (C) 2007-2012 Red Hat, Inc."
187 msgstr "© Daniel P. Berrange, 2007–2012\n© Red Hat, Inc., 2007–2012"
188
189 #: ../src/virt-viewer-about.xml.h:5
176190 msgid "The Fedora Translation Team"
177191 msgstr "Команда локалізації Fedora"
178192
179 #: ../src/about.glade.h:6
193 #: ../src/virt-viewer-about.xml.h:6
180194 msgid ""
181195 "This program is free software; you can redistribute it and/or modify\n"
182196 "it under the terms of the GNU General Public License as published by\n"
191205 "You should have received a copy of the GNU General Public License\n"
192206 "along with this program; if not, write to the Free Software\n"
193207 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
194 msgstr ""
195 "Ця програма є вільним програмним забезпеченням; ви можете поширювати її "
196 "і/або змінювати її за умов дотримання GNU General Public License у тому "
197 "вигляді, у якому її оприлюднено Free Software Foundation; версії 2 цієї "
198 "ліцензії, або (за потреби) будь-якої пізнішої версії\n"
199 "\n"
200 "Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ-"
201 "ЯКИХ ГАРАНТІЙ; навіть без очевидної гарантії КОМЕРЦІЙНОЇ ЦІННОСТІ або "
202 "ПРИДАТНОСТІ ДЛЯ ЯКОЇСЬ МЕТИ Докладніше про це ви можете дізнатися з \n"
203 "GNU General Public License\n"
204 "Разом з цією програмою ви маєте отримати копію GNU General Public License "
205 "Якщо ви її не отримали, повідомте про це на адресу Free Software\n"
206 "Foundation, Inc, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
207
208 #: ../src/about.glade.h:20
208 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"
209
210 #: ../src/virt-viewer-about.xml.h:20
209211 msgid "virt-manager.org"
210212 msgstr "virt-manager.org"
211213
212 #: ../src/auth.glade.h:1
214 #: ../src/virt-viewer-app.c:284
215 msgid "This is the last visible display. Do you want to quit?"
216 msgstr "Це останній видимий екран. Завершити роботу програми?"
217
218 #: ../src/virt-viewer-app.c:624
219 #, c-format
220 msgid "Waiting for display %d..."
221 msgstr "Очікування на показ %d…"
222
223 #: ../src/virt-viewer-app.c:707
224 #, c-format
225 msgid "Unknown graphic type for the guest %s"
226 msgstr "Невідомий тип графічної підсистеми для гостьової системи %s"
227
228 #: ../src/virt-viewer-app.c:782
229 msgid "Connect to ssh failed."
230 msgstr "Спроба встановлення з’єднання ssh зазнала невдачі."
231
232 #: ../src/virt-viewer-app.c:784
233 msgid "Can't connect to channel, SSH only supported."
234 msgstr "Не вдалося встановити з’єднання з каналом, підтримується лише SSH."
235
236 #: ../src/virt-viewer-app.c:796
237 msgid "Connect to channel unsupported."
238 msgstr "Встановлення з’єднання з каналом не підтримується."
239
240 #: ../src/virt-viewer-app.c:876
241 msgid "Connecting to graphic server"
242 msgstr "Встановлення з’єднання з графічним сервером"
243
244 #: ../src/virt-viewer-app.c:1006
245 msgid "Guest domain has shutdown"
246 msgstr "Гостьовий домен завершив роботу"
247
248 #: ../src/virt-viewer-app.c:1056
249 msgid "Connected to graphic server"
250 msgstr "Встановлено з’єднання з графічним сервером"
251
252 #: ../src/virt-viewer-app.c:1082
253 #, c-format
254 msgid "Unable to connect to the graphic server %s"
255 msgstr "Не вдалося встановити з’єднання з графічним сервером %s"
256
257 #: ../src/virt-viewer-app.c:1111
258 #, c-format
259 msgid ""
260 "Unable to authenticate with remote desktop server at %s: %s\n"
261 "Retry connection again?"
262 msgstr "Не вдалося пройти розпізнавання на сервері віддаленої стільниці %s: %s\nПовторити спробу встановлення з’єднання?"
263
264 #: ../src/virt-viewer-app.c:1131
265 #, c-format
266 msgid "Unable to authenticate with remote desktop server: %s"
267 msgstr "Не вдалося пройти розпізнавання на сервері віддаленої стільниці: %s"
268
269 #: ../src/virt-viewer-app.c:1139
270 #, c-format
271 msgid "USB redirection error: %s"
272 msgstr "Помилка переспрямування USB: %s"
273
274 #. * Local variables:
275 #. * c-indent-level: 4
276 #. * c-basic-offset: 4
277 #. * indent-tabs-mode: nil
278 #. * End:
279 #.
280 #: ../src/virt-viewer-auth.xml.h:1
213281 msgid "Authentication required"
214282 msgstr "Потрібно пройти розпізнавання"
215283
216 #: ../src/auth.glade.h:2
284 #: ../src/virt-viewer-auth.xml.h:2
217285 msgid "Password:"
218286 msgstr "Пароль:"
219287
220 #: ../src/auth.glade.h:3
288 #: ../src/virt-viewer-auth.xml.h:3
221289 msgid "Username:"
222290 msgstr "Користувач:"
223291
224 #: ../src/auth.glade.h:4
225 msgid "gtk-cancel"
226 msgstr "gtk-cancel"
227
228 #: ../src/auth.glade.h:5
229 msgid "gtk-ok"
230 msgstr "gtk-ok"
231
232 #: ../src/auth.glade.h:6
292 #: ../src/virt-viewer-auth.xml.h:4
233293 msgid "label"
234 msgstr "етикетка"
235
236 #: ../src/viewer.glade.h:1
294 msgstr "мітка"
295
296 #: ../src/virt-viewer-main.c:38
297 #, c-format
298 msgid "%s version %s\n"
299 msgstr "%s версія %s\n"
300
301 #: ../src/virt-viewer-main.c:69
302 msgid "Attach to the local display using libvirt"
303 msgstr "З’єднатися з локальним графічним сеансом за допомогою libvirt"
304
305 #: ../src/virt-viewer-main.c:71
306 msgid "Connect to hypervisor"
307 msgstr "З’єднатися з гіпервізором"
308
309 #: ../src/virt-viewer-main.c:73
310 msgid "Wait for domain to start"
311 msgstr "Чекати на запуск служби"
312
313 #: ../src/virt-viewer-main.c:75
314 msgid "Reconnect to domain upon restart"
315 msgstr "Заново приєднатися до домену після перезапуску"
316
317 #: ../src/virt-viewer-main.c:81
318 msgid "Open in full screen mode"
319 msgstr "Відкрити у повноекранному режимі"
320
321 #: ../src/virt-viewer-main.c:96
322 msgid "Virt Viewer"
323 msgstr "Перегляд віртуальних систем"
324
325 #. Setup command line options
326 #: ../src/virt-viewer-main.c:99
327 msgid "- Virtual machine graphical console"
328 msgstr "— графічна консоль віртуальної машини"
329
330 #: ../src/virt-viewer-main.c:120
331 #, c-format
332 msgid ""
333 "\n"
334 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
335 "\n"
336 "%s\n"
337 "\n"
338 msgstr "\nФормат: %s [ПАРАМЕТРИ] НАЗВА_ДОМЕНУ|ID|UUID\n\n%s\n\n"
339
340 #. Create the widgets
341 #: ../src/virt-viewer-session-spice.c:380
342 msgid "Select USB devices for redirection"
343 msgstr "Виберіть пристрої USB для переспрямування"
344
345 #: ../src/virt-viewer-session-vnc.c:141
346 #, c-format
347 msgid "Unsupported authentication type %d"
348 msgstr "Непідтримуваний тип розпізнавання %d"
349
350 #: ../src/virt-viewer-window.c:832
351 msgid "Disconnect"
352 msgstr "Від’єднатися"
353
354 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
355 #: ../src/virt-viewer.xml.h:22
356 msgid "USB device selection"
357 msgstr "Вибір пристрою USB"
358
359 #: ../src/virt-viewer-window.c:848
360 msgid "Send key combination"
361 msgstr ""
362
363 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
364 msgid "Leave fullscreen"
365 msgstr "Вийти з повноекранного режиму"
366
367 #: ../src/virt-viewer-window.c:937
368 msgid "Ctrl+Alt"
369 msgstr ""
370
371 #: ../src/virt-viewer-window.c:940
372 #, c-format
373 msgid "(Press %s to release pointer)"
374 msgstr ""
375
376 #. translators:
377 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
378 #. <appname>"
379 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
380 #. Viewer"
381 #.
382 #: ../src/virt-viewer-window.c:951
383 #, c-format
384 msgid "%s%s%s - %s"
385 msgstr "%s%s%s — %s"
386
387 #. translators: <space>
388 #: ../src/virt-viewer-window.c:955
389 msgid " "
390 msgstr " "
391
392 #: ../src/virt-viewer.c:144
393 msgid "Waiting for guest domain to re-start"
394 msgstr "Очікування на перезапуск гостьового домену"
395
396 #: ../src/virt-viewer.c:308
397 #, c-format
398 msgid "Cannot determine the graphic type for the guest %s"
399 msgstr "Не вдалося визначити тип графічної підсистеми для гостьової системи %s"
400
401 #: ../src/virt-viewer.c:321
402 #, c-format
403 msgid "Cannot determine the graphic address for the guest %s"
404 msgstr "Не вдалося визначити адресу графічного інтерфейсу для гостьової системи %s"
405
406 #: ../src/virt-viewer.c:344
407 #, c-format
408 msgid "Cannot determine the host for the guest %s"
409 msgstr "Не вдалося визначити вузол для гостьової системи %s"
410
411 #: ../src/virt-viewer.c:474
412 msgid "Finding guest domain"
413 msgstr "Пошук гостьового домену"
414
415 #: ../src/virt-viewer.c:478
416 msgid "Waiting for guest domain to be created"
417 msgstr "Очікування на створення гостьового домену"
418
419 #: ../src/virt-viewer.c:483
420 #, c-format
421 msgid "Cannot find guest domain %s"
422 msgstr "Не вдалося знайти гостьовий домен %s"
423
424 #: ../src/virt-viewer.c:490
425 msgid "Checking guest domain status"
426 msgstr "Перевірка стану гостьового домену"
427
428 #: ../src/virt-viewer.c:497
429 msgid "Waiting for guest domain to start"
430 msgstr "Очікування на запуск гостьового домену"
431
432 #: ../src/virt-viewer.c:504
433 msgid "Waiting for guest domain to start server"
434 msgstr "Очікування на запуск сервера гостьового домену"
435
436 #: ../src/virt-viewer.c:624
437 #, c-format
438 msgid "Unable to connect to libvirt with URI %s"
439 msgstr "Не вдається встановити з’єднання з libvirt за адресою URI %s"
440
441 #: ../src/virt-viewer.c:625
442 msgid "[none]"
443 msgstr "[немає]"
444
445 #. * Local variables:
446 #. * c-indent-level: 4
447 #. * c-basic-offset: 4
448 #. * indent-tabs-mode: nil
449 #. * End:
450 #.
451 #: ../src/virt-viewer.xml.h:1
237452 msgid "Automatically resize"
238453 msgstr "Змінити розмір автоматично"
239454
240 #: ../src/viewer.glade.h:2
455 #: ../src/virt-viewer.xml.h:2
241456 msgid "Ctrl+Alt+F11"
242457 msgstr "Ctrl+Alt+F11"
243458
244 #: ../src/viewer.glade.h:3
459 #: ../src/virt-viewer.xml.h:3
245460 msgid "Ctrl+Alt+F12"
246461 msgstr "Ctrl+Alt+F12"
247462
248 #: ../src/viewer.glade.h:4
463 #: ../src/virt-viewer.xml.h:4
249464 msgid "Ctrl+Alt+F1_0"
250465 msgstr "Ctrl+Alt+F1_0"
251466
252 #: ../src/viewer.glade.h:5
467 #: ../src/virt-viewer.xml.h:5
253468 msgid "Ctrl+Alt+F_1"
254469 msgstr "Ctrl+Alt+F_1"
255470
256 #: ../src/viewer.glade.h:6
471 #: ../src/virt-viewer.xml.h:6
257472 msgid "Ctrl+Alt+F_2"
258473 msgstr "Ctrl+Alt+F_2"
259474
260 #: ../src/viewer.glade.h:7
475 #: ../src/virt-viewer.xml.h:7
261476 msgid "Ctrl+Alt+F_3"
262477 msgstr "Ctrl+Alt+F_3"
263478
264 #: ../src/viewer.glade.h:8
479 #: ../src/virt-viewer.xml.h:8
265480 msgid "Ctrl+Alt+F_4"
266481 msgstr "Ctrl+Alt+F_4"
267482
268 #: ../src/viewer.glade.h:9
483 #: ../src/virt-viewer.xml.h:9
269484 msgid "Ctrl+Alt+F_5"
270485 msgstr "Ctrl+Alt+F_5"
271486
272 #: ../src/viewer.glade.h:10
487 #: ../src/virt-viewer.xml.h:10
273488 msgid "Ctrl+Alt+F_6"
274489 msgstr "Ctrl+Alt+F_6"
275490
276 #: ../src/viewer.glade.h:11
491 #: ../src/virt-viewer.xml.h:11
277492 msgid "Ctrl+Alt+F_7"
278493 msgstr "Ctrl+Alt+F_7"
279494
280 #: ../src/viewer.glade.h:12
495 #: ../src/virt-viewer.xml.h:12
281496 msgid "Ctrl+Alt+F_8"
282497 msgstr "Ctrl+Alt+F_8"
283498
284 #: ../src/viewer.glade.h:13
499 #: ../src/virt-viewer.xml.h:13
285500 msgid "Ctrl+Alt+F_9"
286501 msgstr "Ctrl+Alt+F_9"
287502
288 #: ../src/viewer.glade.h:14
503 #: ../src/virt-viewer.xml.h:14
289504 msgid "Ctrl+Alt+_Backspace"
290505 msgstr "Ctrl+Alt+_Backspace"
291506
292 #: ../src/viewer.glade.h:15
507 #: ../src/virt-viewer.xml.h:15
293508 msgid "Ctrl+Alt+_Del"
294509 msgstr "Ctrl+Alt+_Del"
295510
296 #: ../src/viewer.glade.h:16
511 #: ../src/virt-viewer.xml.h:16
512 msgid "Displays"
513 msgstr "Екрани"
514
515 #: ../src/virt-viewer.xml.h:17
297516 msgid "Full screen"
298 msgstr "На весь екран"
299
300 #: ../src/viewer.glade.h:17
517 msgstr "Повноекранний"
518
519 #: ../src/virt-viewer.xml.h:18
520 msgid "Release cursor"
521 msgstr "Вивільнити вказівник"
522
523 #: ../src/virt-viewer.xml.h:19
301524 msgid "Screenshot"
302 msgstr "Знімок екрана"
303
304 #: ../src/viewer.glade.h:18
525 msgstr "Знімок вікна"
526
527 #: ../src/virt-viewer.xml.h:20
528 msgid "Smartcard insertion"
529 msgstr "Вставлення картки пам’яті"
530
531 #: ../src/virt-viewer.xml.h:21
532 msgid "Smartcard removal"
533 msgstr "Вилучення картки пам’яті"
534
535 #: ../src/virt-viewer.xml.h:23
305536 msgid "_File"
306537 msgstr "_Файл"
307538
308 #: ../src/viewer.glade.h:19
539 #: ../src/virt-viewer.xml.h:24
309540 msgid "_Help"
310541 msgstr "_Довідка"
311542
312 #: ../src/viewer.glade.h:20
543 #: ../src/virt-viewer.xml.h:25
313544 msgid "_PrintScreen"
314545 msgstr "_PrintScreen"
315546
316 #: ../src/viewer.glade.h:21
547 #: ../src/virt-viewer.xml.h:26
317548 msgid "_Send key"
318549 msgstr "_Надіслати клавішу"
319550
320 #: ../src/viewer.glade.h:22
551 #: ../src/virt-viewer.xml.h:27
321552 msgid "_View"
322 msgstr "_Вигляд"
323
324 #: ../src/viewer.glade.h:23
553 msgstr "П_ерегляд"
554
555 #: ../src/virt-viewer.xml.h:28
325556 msgid "_Zoom"
326557 msgstr "_Масштаб"
327
328 #: ../src/viewer.glade.h:24
329 msgid "gtk-about"
330 msgstr "gtk-about"
331
332 #: ../src/viewer.glade.h:25
333 msgid "gtk-quit"
334 msgstr "gtk-quit"
335
336 #: ../src/viewer.glade.h:26
337 msgid "page 1"
338 msgstr "сторінка 1"
339
340 #: ../src/viewer.glade.h:27
341 msgid "page 2"
342 msgstr "сторінка 2"
343
344 #: ../src/viewer.glade.h:28
345 msgid "page 3"
346 msgstr "сторінка 3"
347
0 # translation of zh_CN.po to Simplified Chinese
1 # Chinese translations for virt-viewer package
2 # virt-viewer 软件包的简体中文翻译.
3 # Copyright (C) 2010 Free Software Foundation, Inc.
4 # This file is distributed under the same license as the virt-viewer package.
5 #
0 # SOME DESCRIPTIVE TITLE.
1 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2 # This file is distributed under the same license as the PACKAGE package.
3 #
4 # Translators:
5 # Aron Xu <aronxu@gnome.org>, 2010.
66 # Leah Liu <lliu@redhat.com>, 2010.
7 # Aron Xu <aronxu@gnome.org>, 2010.
7 # Wei Liu <LLIU@REDHAT.COM>, 2012.
88 msgid ""
99 msgstr ""
10 "Project-Id-Version: zh_CN\n"
10 "Project-Id-Version: virt-viewer\n"
1111 "Report-Msgid-Bugs-To: \n"
12 "POT-Creation-Date: 2010-09-29 18:51+0000\n"
13 "PO-Revision-Date: 2010-09-30 16:45+0800\n"
14 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
15 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
12 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
13 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
14 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
15 "Language-Team: Chinese (China) <trans-zh_cn@lists.fedoraproject.org>\n"
1616 "MIME-Version: 1.0\n"
1717 "Content-Type: text/plain; charset=UTF-8\n"
1818 "Content-Transfer-Encoding: 8bit\n"
19
20 #: ../src/main.c:34
21 #, c-format
22 msgid "%s version %s\n"
23 msgstr "%s 版本 %s\n"
24
25 #: ../src/main.c:53
19 "Language: zh_CN\n"
20 "Plural-Forms: nplurals=1; plural=0\n"
21
22 #: ../src/gbinding.c:637
23 msgid "Source"
24 msgstr "源"
25
26 #: ../src/gbinding.c:638
27 msgid "The source of the binding"
28 msgstr "捆绑的源"
29
30 #: ../src/gbinding.c:652
31 msgid "Target"
32 msgstr "目标"
33
34 #: ../src/gbinding.c:653
35 msgid "The target of the binding"
36 msgstr "捆绑的目标"
37
38 #: ../src/gbinding.c:668
39 msgid "Source Property"
40 msgstr "源属性"
41
42 #: ../src/gbinding.c:669
43 msgid "The property on the source to bind"
44 msgstr "要捆绑的源的属性"
45
46 #: ../src/gbinding.c:684
47 msgid "Target Property"
48 msgstr "目标属性"
49
50 #: ../src/gbinding.c:685
51 msgid "The property on the target to bind"
52 msgstr "要捆绑的目标的属性"
53
54 #: ../src/gbinding.c:699
55 msgid "Flags"
56 msgstr "标记"
57
58 #: ../src/gbinding.c:700
59 msgid "The binding flags"
60 msgstr "捆绑标记"
61
62 #: ../src/remote-viewer-main.c:47
63 #, c-format
64 msgid "remote-viewer version %s\n"
65 msgstr "remote-viewer 版本 %s\n"
66
67 #: ../src/remote-viewer-main.c:69
68 #, c-format
69 msgid "Invalid full-screen argument: %s"
70 msgstr ""
71
72 #. Create the widgets
73 #: ../src/remote-viewer-main.c:104
74 msgid "Connection details"
75 msgstr ""
76
77 #: ../src/remote-viewer-main.c:119
78 msgid "URL:"
79 msgstr ""
80
81 #: ../src/remote-viewer-main.c:127
82 msgid "Recent connections:"
83 msgstr ""
84
85 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2686 msgid "Run '"
2787 msgstr "运行 '"
2888
29 #: ../src/main.c:56
30 msgid "display version information"
89 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
90 msgid "Display version information"
3191 msgstr "显示版本信息"
3292
33 #: ../src/main.c:58
34 msgid "display verbose information"
93 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
94 msgid "Display verbose information"
3595 msgstr "显示详细信息"
3696
37 #: ../src/main.c:60
38 msgid "direct connection with no automatic tunnels"
97 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
98 msgid "Direct connection with no automatic tunnels"
3999 msgstr "无自动通道的直接连接"
40100
41 #: ../src/main.c:62
42 msgid "connect to hypervisor"
43 msgstr "连接到管理程序"
44
45 #: ../src/main.c:64
46 msgid "wait for domain to start"
47 msgstr "等待域启动"
48
49 #: ../src/main.c:66
50 msgid "reconnect to domain upon restart"
51 msgstr "重启后重新连接到该域"
52
53 #: ../src/main.c:68
101 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
54102 msgid "Zoom level of window, in percentage"
55103 msgstr "窗口缩放级别,以百分比计"
56104
57 #: ../src/main.c:70
58 msgid "display debugging information"
105 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
106 msgid "Display debugging information"
59107 msgstr "显示调试信息"
60108
109 #: ../src/remote-viewer-main.c:219
110 msgid "Open in full screen mode (=<auto-conf>)"
111 msgstr ""
112
113 #: ../src/remote-viewer-main.c:222
114 msgid "Open connection using Spice controller communication"
115 msgstr "使用 Spice 控制器沟通打开连接"
116
117 #: ../src/remote-viewer-main.c:249
118 msgid "Remote Viewer"
119 msgstr ""
120
61121 #. Setup command line options
62 #: ../src/main.c:82
63 msgid "- Virtual machine graphical console"
64 msgstr "- 虚拟机图形控制台"
65
66 #: ../src/main.c:98
67 #, c-format
68 msgid ""
69 "\n"
70 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
71 "\n"
72 "%s\n"
73 "\n"
74 msgstr ""
75 "\n"
76 "用法:%s [选项] 域名|ID|UUID\n"
77 "\n"
78 "%s\n"
79 "\n"
80
81 #: ../src/viewer.c:909
82 #, c-format
83 msgid "Cannot determine the VNC port for the guest %s"
84 msgstr "无法为客户端 %s 确定 VNC 端口"
85
86 #: ../src/viewer.c:915
87 #, c-format
88 msgid "Cannot determine the VNC host for the guest %s"
89 msgstr "无法为客户端 %s 确定 VNC 主机"
90
91 #: ../src/viewer.c:1015
92 #, c-format
93 msgid "Unable to connect to the VNC server %s"
94 msgstr "无法连接到 VNC 服务器 %s"
95
96 #: ../src/viewer.c:1032
97 #, c-format
98 msgid ""
99 "Unable to authenticate with VNC server at %s: %s\n"
100 "Retry connection again?"
101 msgstr ""
102 "无法在 %s: %s 使用 VNC 服务器验证\n"
103 "重新尝试连接?"
104
105 #: ../src/viewer.c:1050
106 #, c-format
107 msgid ""
108 "Unable to authenticate with VNC server at %s\n"
109 "Unsupported authentication type %d"
110 msgstr ""
111 "无法在 %s 使用 VNC 服务器验证\n"
112 "不支持验证类型 %d"
113
114 #: ../src/viewer.c:1142
115 #, c-format
116 msgid "Cannot find guest domain %s"
117 msgstr "无法找到客户端域 %s"
118
119 #: ../src/viewer.c:1246
120 #, c-format
121 msgid "Unable to connect to libvirt with URI %s"
122 msgstr "无法使用 URI %s 连接到 libvirt"
123
124 #: ../src/viewer.c:1247
125 msgid "[none]"
126 msgstr "[无]"
127
128 #.
122 #: ../src/remote-viewer-main.c:252
123 msgid "- Remote viewer client"
124 msgstr "远程 viewer 客户端"
125
126 #: ../src/remote-viewer-main.c:275
127 #, c-format
128 msgid "Error: extra arguments given while using Spice controller\n"
129 msgstr ""
130
131 #: ../src/remote-viewer-main.c:284
132 #, c-format
133 msgid "Error: can't handle multiple URIs\n"
134 msgstr ""
135
136 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
137 #, c-format
138 msgid "Zoom level must be within 10-200\n"
139 msgstr "缩放等级必须在 10-200 之间\n"
140
141 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
142 msgid "Failed to initiate connection"
143 msgstr "初始化连接失败"
144
145 #: ../src/remote-viewer.c:250
146 msgid "Display disabled by controller"
147 msgstr "显示控制器禁用的"
148
149 #: ../src/remote-viewer.c:697
150 #, c-format
151 msgid "Controller connection failed: %s"
152 msgstr "控制器连接失败:%s"
153
154 #: ../src/remote-viewer.c:750
155 msgid "Couldn't create a Spice session"
156 msgstr "无法生成 Spice 会话"
157
158 #: ../src/remote-viewer.c:764
159 msgid "Setting up Spice session..."
160 msgstr "设置 Spice 会话......"
161
162 #: ../src/remote-viewer.c:774
163 msgid "Cannot determine the connection type from URI"
164 msgstr "无法确定 URI 的连接类型"
165
166 #: ../src/remote-viewer.c:779
167 #, c-format
168 msgid "Couldn't create a session for this type: %s"
169 msgstr "无法为此类型生成会话:%s"
170
129171 #. * Local variables:
130 #. * c-indent-level: 8
131 #. * c-basic-offset: 8
132 #. * tab-width: 8
172 #. * c-indent-level: 4
173 #. * c-basic-offset: 4
174 #. * indent-tabs-mode: nil
133175 #. * End:
134 #.
135 #: ../src/about.glade.h:1
136 msgid "A remote desktop client built with GTK-VNC and libvirt"
137 msgstr "内置 GTK-VNC 和 libvirt 的远程桌面客户端"
138
139 #: ../src/about.glade.h:2
176 #.
177 #: ../src/virt-viewer-about.xml.h:1
178 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
179 msgstr "使用 GTK-VNC, SPICE-GTK 和 libvirt 构建远程桌面客户端"
180
181 #: ../src/virt-viewer-about.xml.h:2
140182 msgid "About Glade"
141183 msgstr "关于 Glade"
142184
143 #: ../src/about.glade.h:3
185 #: ../src/virt-viewer-about.xml.h:3
144186 msgid ""
145 "Copyright 2007-2008 Daniel P. Berrange\n"
146 "Copyright 2007-2008 Red Hat, Inc."
147 msgstr ""
148 "版权所有 2007-2008 Daniel P. Berrange\n"
149 "版权所有 2007-2008 红帽公司"
150
151 #: ../src/about.glade.h:5
187 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
188 "Copyright (C) 2007-2012 Red Hat, Inc."
189 msgstr "版权所有 (C) 2007-2012 Daniel P. Berrange\n版权所有 (C) 2007-2012 Red Hat, Inc."
190
191 #: ../src/virt-viewer-about.xml.h:5
152192 msgid "The Fedora Translation Team"
153193 msgstr "Fedora 翻译团队"
154194
155 #: ../src/about.glade.h:6
195 #: ../src/virt-viewer-about.xml.h:6
156196 msgid ""
157197 "This program is free software; you can redistribute it and/or modify\n"
158198 "it under the terms of the GNU General Public License as published by\n"
167207 "You should have received a copy of the GNU General Public License\n"
168208 "along with this program; if not, write to the Free Software\n"
169209 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
170 msgstr ""
171 "这个程序是免费软件。您可以根据自由软件基金\n"
172 "发布的 GNU 通用公共许可证版本 2 或者之后的版本\n"
173 "中的条款重新发布和/或者修改\n"
174 "这个软件。 \n"
175 "\n"
176 "这个程序的发布是希望它能对您\n"
177 "有所帮助,但并不保证对您有用,\n"
178 "甚至不包含用于特殊目的的适销性或者适用性保证。\n"
179 "详情请查看 GNU 通用公共许可证。\n"
180 "\n"
181 "这个程序应该附带有一份 GNU 通用公共许可证副本。\n"
182 "如果没有,请致函自由软件基金有限公司,\n"
183 "地址 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
184
185 #: ../src/about.glade.h:20
210 msgstr "本程序是免费软件,您可以根据自由软件基金发布的 GNU 通用公共许可证版本 2 或(您认为合适的)之后的版本重新发布和(/或)修改这个软件。\n\n发布本程序是希望它\n对您有帮助,但不做任何保证,\n也不保证可用于商业或适合特定目的。\n详情请查看 GNU 通用公共许可证。\n\n本程序附带 GNU 通用公共许可证;\n如果没有,请致电自由软件基金\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA⏎ \n"
211
212 #: ../src/virt-viewer-about.xml.h:20
186213 msgid "virt-manager.org"
187214 msgstr "virt-manager.org"
188215
189 #: ../src/auth.glade.h:1
216 #: ../src/virt-viewer-app.c:284
217 msgid "This is the last visible display. Do you want to quit?"
218 msgstr "这是最后的可见画面。您要退出吗?"
219
220 #: ../src/virt-viewer-app.c:624
221 #, c-format
222 msgid "Waiting for display %d..."
223 msgstr "等待画面 %d......"
224
225 #: ../src/virt-viewer-app.c:707
226 #, c-format
227 msgid "Unknown graphic type for the guest %s"
228 msgstr "虚拟机 %s 的未知图形类型"
229
230 #: ../src/virt-viewer-app.c:782
231 msgid "Connect to ssh failed."
232 msgstr "连接到 ssh 失败"
233
234 #: ../src/virt-viewer-app.c:784
235 msgid "Can't connect to channel, SSH only supported."
236 msgstr "无法连接到通道,只支持 SSH。"
237
238 #: ../src/virt-viewer-app.c:796
239 msgid "Connect to channel unsupported."
240 msgstr "无法连接到不支持的通道。"
241
242 #: ../src/virt-viewer-app.c:876
243 msgid "Connecting to graphic server"
244 msgstr "正在连接到图形服务器"
245
246 #: ../src/virt-viewer-app.c:1006
247 msgid "Guest domain has shutdown"
248 msgstr "已关闭虚拟机域"
249
250 #: ../src/virt-viewer-app.c:1056
251 msgid "Connected to graphic server"
252 msgstr "已连接到图形服务器"
253
254 #: ../src/virt-viewer-app.c:1082
255 #, c-format
256 msgid "Unable to connect to the graphic server %s"
257 msgstr "无法连接到图形服务器 %s"
258
259 #: ../src/virt-viewer-app.c:1111
260 #, c-format
261 msgid ""
262 "Unable to authenticate with remote desktop server at %s: %s\n"
263 "Retry connection again?"
264 msgstr "无法使用 %s 中的远程桌面服务器验证:%s\n重新尝试连接?"
265
266 #: ../src/virt-viewer-app.c:1131
267 #, c-format
268 msgid "Unable to authenticate with remote desktop server: %s"
269 msgstr "无法使用远程桌面服务器验证:%s"
270
271 #: ../src/virt-viewer-app.c:1139
272 #, c-format
273 msgid "USB redirection error: %s"
274 msgstr "USB 重新定向错误:%s"
275
276 #. * Local variables:
277 #. * c-indent-level: 4
278 #. * c-basic-offset: 4
279 #. * indent-tabs-mode: nil
280 #. * End:
281 #.
282 #: ../src/virt-viewer-auth.xml.h:1
190283 msgid "Authentication required"
191 msgstr "需要验证"
192
193 #: ../src/auth.glade.h:2
284 msgstr "所需验证"
285
286 #: ../src/virt-viewer-auth.xml.h:2
194287 msgid "Password:"
195288 msgstr "密码:"
196289
197 #: ../src/auth.glade.h:3
290 #: ../src/virt-viewer-auth.xml.h:3
198291 msgid "Username:"
199292 msgstr "用户名:"
200293
201 #: ../src/auth.glade.h:4
202 msgid "gtk-cancel"
203 msgstr ""
204
205 #: ../src/auth.glade.h:5
206 msgid "gtk-ok"
207 msgstr ""
208
209 #: ../src/auth.glade.h:6
294 #: ../src/virt-viewer-auth.xml.h:4
210295 msgid "label"
211296 msgstr "标签"
212297
213 #: ../src/viewer.glade.h:1
298 #: ../src/virt-viewer-main.c:38
299 #, c-format
300 msgid "%s version %s\n"
301 msgstr "%s 版本 %s\n"
302
303 #: ../src/virt-viewer-main.c:69
304 msgid "Attach to the local display using libvirt"
305 msgstr "使用 libvirt 附加本地画面"
306
307 #: ../src/virt-viewer-main.c:71
308 msgid "Connect to hypervisor"
309 msgstr "连接到管理程序(hypervisor)"
310
311 #: ../src/virt-viewer-main.c:73
312 msgid "Wait for domain to start"
313 msgstr "等待域启动"
314
315 #: ../src/virt-viewer-main.c:75
316 msgid "Reconnect to domain upon restart"
317 msgstr "重启后重新连接到域"
318
319 #: ../src/virt-viewer-main.c:81
320 msgid "Open in full screen mode"
321 msgstr "使用全屏模式打开"
322
323 #: ../src/virt-viewer-main.c:96
324 msgid "Virt Viewer"
325 msgstr "Virt Viewer"
326
327 #. Setup command line options
328 #: ../src/virt-viewer-main.c:99
329 msgid "- Virtual machine graphical console"
330 msgstr "- 虚拟机图形控制台"
331
332 #: ../src/virt-viewer-main.c:120
333 #, c-format
334 msgid ""
335 "\n"
336 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
337 "\n"
338 "%s\n"
339 "\n"
340 msgstr "\n用法:%s [选项] 域名|ID|UUID\n\n%s\n\n"
341
342 #. Create the widgets
343 #: ../src/virt-viewer-session-spice.c:380
344 msgid "Select USB devices for redirection"
345 msgstr "为重新定向选择 USB 设备"
346
347 #: ../src/virt-viewer-session-vnc.c:141
348 #, c-format
349 msgid "Unsupported authentication type %d"
350 msgstr "不支持的验证类型 %d"
351
352 #: ../src/virt-viewer-window.c:832
353 msgid "Disconnect"
354 msgstr "断开连接"
355
356 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
357 #: ../src/virt-viewer.xml.h:22
358 msgid "USB device selection"
359 msgstr "USB 设备选择"
360
361 #: ../src/virt-viewer-window.c:848
362 msgid "Send key combination"
363 msgstr ""
364
365 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
366 msgid "Leave fullscreen"
367 msgstr "离开全屏"
368
369 #: ../src/virt-viewer-window.c:937
370 msgid "Ctrl+Alt"
371 msgstr ""
372
373 #: ../src/virt-viewer-window.c:940
374 #, c-format
375 msgid "(Press %s to release pointer)"
376 msgstr ""
377
378 #. translators:
379 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
380 #. <appname>"
381 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
382 #. Viewer"
383 #.
384 #: ../src/virt-viewer-window.c:951
385 #, c-format
386 msgid "%s%s%s - %s"
387 msgstr "%s%s%s - %s"
388
389 #. translators: <space>
390 #: ../src/virt-viewer-window.c:955
391 msgid " "
392 msgstr " "
393
394 #: ../src/virt-viewer.c:144
395 msgid "Waiting for guest domain to re-start"
396 msgstr "等待虚拟机域重启"
397
398 #: ../src/virt-viewer.c:308
399 #, c-format
400 msgid "Cannot determine the graphic type for the guest %s"
401 msgstr "无法确定虚拟机 %s 的图形类型"
402
403 #: ../src/virt-viewer.c:321
404 #, c-format
405 msgid "Cannot determine the graphic address for the guest %s"
406 msgstr "无法确定虚拟机 %s 的图形地址"
407
408 #: ../src/virt-viewer.c:344
409 #, c-format
410 msgid "Cannot determine the host for the guest %s"
411 msgstr "无法确定虚拟机 %s 的主机"
412
413 #: ../src/virt-viewer.c:474
414 msgid "Finding guest domain"
415 msgstr "正在查找虚拟机域"
416
417 #: ../src/virt-viewer.c:478
418 msgid "Waiting for guest domain to be created"
419 msgstr "正在等待生成虚拟机域"
420
421 #: ../src/virt-viewer.c:483
422 #, c-format
423 msgid "Cannot find guest domain %s"
424 msgstr "无法找到客户端域 %s"
425
426 #: ../src/virt-viewer.c:490
427 msgid "Checking guest domain status"
428 msgstr "正在检查虚拟机域状态"
429
430 #: ../src/virt-viewer.c:497
431 msgid "Waiting for guest domain to start"
432 msgstr "正在等待虚拟机域启动"
433
434 #: ../src/virt-viewer.c:504
435 msgid "Waiting for guest domain to start server"
436 msgstr "正在等待虚拟机域启动服务器"
437
438 #: ../src/virt-viewer.c:624
439 #, c-format
440 msgid "Unable to connect to libvirt with URI %s"
441 msgstr "无法使用 URI %s 连接到 libvirt"
442
443 #: ../src/virt-viewer.c:625
444 msgid "[none]"
445 msgstr "[无]"
446
447 #. * Local variables:
448 #. * c-indent-level: 4
449 #. * c-basic-offset: 4
450 #. * indent-tabs-mode: nil
451 #. * End:
452 #.
453 #: ../src/virt-viewer.xml.h:1
214454 msgid "Automatically resize"
215455 msgstr "自动重新定义大小"
216456
217 #: ../src/viewer.glade.h:2
457 #: ../src/virt-viewer.xml.h:2
218458 msgid "Ctrl+Alt+F11"
219459 msgstr "Ctrl+Alt+F11"
220460
221 #: ../src/viewer.glade.h:3
461 #: ../src/virt-viewer.xml.h:3
222462 msgid "Ctrl+Alt+F12"
223463 msgstr "Ctrl+Alt+F12"
224464
225 #: ../src/viewer.glade.h:4
465 #: ../src/virt-viewer.xml.h:4
226466 msgid "Ctrl+Alt+F1_0"
227467 msgstr "Ctrl+Alt+F1_0"
228468
229 #: ../src/viewer.glade.h:5
469 #: ../src/virt-viewer.xml.h:5
230470 msgid "Ctrl+Alt+F_1"
231471 msgstr "Ctrl+Alt+F_1"
232472
233 #: ../src/viewer.glade.h:6
473 #: ../src/virt-viewer.xml.h:6
234474 msgid "Ctrl+Alt+F_2"
235475 msgstr "Ctrl+Alt+F_2"
236476
237 #: ../src/viewer.glade.h:7
477 #: ../src/virt-viewer.xml.h:7
238478 msgid "Ctrl+Alt+F_3"
239479 msgstr "Ctrl+Alt+F_3"
240480
241 #: ../src/viewer.glade.h:8
481 #: ../src/virt-viewer.xml.h:8
242482 msgid "Ctrl+Alt+F_4"
243483 msgstr "Ctrl+Alt+F_4"
244484
245 #: ../src/viewer.glade.h:9
485 #: ../src/virt-viewer.xml.h:9
246486 msgid "Ctrl+Alt+F_5"
247487 msgstr "Ctrl+Alt+F_5"
248488
249 #: ../src/viewer.glade.h:10
489 #: ../src/virt-viewer.xml.h:10
250490 msgid "Ctrl+Alt+F_6"
251491 msgstr "Ctrl+Alt+F_6"
252492
253 #: ../src/viewer.glade.h:11
493 #: ../src/virt-viewer.xml.h:11
254494 msgid "Ctrl+Alt+F_7"
255495 msgstr "Ctrl+Alt+F_7"
256496
257 #: ../src/viewer.glade.h:12
497 #: ../src/virt-viewer.xml.h:12
258498 msgid "Ctrl+Alt+F_8"
259499 msgstr "Ctrl+Alt+F_8"
260500
261 #: ../src/viewer.glade.h:13
501 #: ../src/virt-viewer.xml.h:13
262502 msgid "Ctrl+Alt+F_9"
263503 msgstr "Ctrl+Alt+F_9"
264504
265 #: ../src/viewer.glade.h:14
505 #: ../src/virt-viewer.xml.h:14
266506 msgid "Ctrl+Alt+_Backspace"
267507 msgstr "Ctrl+Alt+_Backspace"
268508
269 #: ../src/viewer.glade.h:15
509 #: ../src/virt-viewer.xml.h:15
270510 msgid "Ctrl+Alt+_Del"
271511 msgstr "Ctrl+Alt+_Del"
272512
273 #: ../src/viewer.glade.h:16
513 #: ../src/virt-viewer.xml.h:16
514 msgid "Displays"
515 msgstr "画面"
516
517 #: ../src/virt-viewer.xml.h:17
274518 msgid "Full screen"
275519 msgstr "全屏"
276520
277 #: ../src/viewer.glade.h:17
521 #: ../src/virt-viewer.xml.h:18
522 msgid "Release cursor"
523 msgstr "释放光标"
524
525 #: ../src/virt-viewer.xml.h:19
278526 msgid "Screenshot"
279527 msgstr "截屏"
280528
281 #: ../src/viewer.glade.h:18
529 #: ../src/virt-viewer.xml.h:20
530 msgid "Smartcard insertion"
531 msgstr "插入智能卡"
532
533 #: ../src/virt-viewer.xml.h:21
534 msgid "Smartcard removal"
535 msgstr "删除智能卡"
536
537 #: ../src/virt-viewer.xml.h:23
282538 msgid "_File"
283 msgstr "文件(_F)"
284
285 #: ../src/viewer.glade.h:19
539 msgstr "文件(_F)"
540
541 #: ../src/virt-viewer.xml.h:24
286542 msgid "_Help"
287 msgstr "帮助(_H)"
288
289 #: ../src/viewer.glade.h:20
543 msgstr "帮助(_H)"
544
545 #: ../src/virt-viewer.xml.h:25
290546 msgid "_PrintScreen"
291 msgstr "打印屏幕内容(_P)"
292
293 #: ../src/viewer.glade.h:21
547 msgstr "打印屏幕(_P)"
548
549 #: ../src/virt-viewer.xml.h:26
294550 msgid "_Send key"
295 msgstr "发送组合键(_S)"
296
297 #: ../src/viewer.glade.h:22
551 msgstr "发送按键(_S)"
552
553 #: ../src/virt-viewer.xml.h:27
298554 msgid "_View"
299 msgstr "查看(_V)"
300
301 #: ../src/viewer.glade.h:23
555 msgstr "查看(_V)"
556
557 #: ../src/virt-viewer.xml.h:28
302558 msgid "_Zoom"
303 msgstr "缩放(_Z)"
304
305 #: ../src/viewer.glade.h:24
306 msgid "gtk-about"
307 msgstr ""
308
309 #: ../src/viewer.glade.h:25
310 msgid "gtk-quit"
311 msgstr ""
312
313 #: ../src/viewer.glade.h:26
314 msgid "page 1"
315 msgstr "第一页"
316
317 #: ../src/viewer.glade.h:27
318 msgid "page 2"
319 msgstr "第二页"
559 msgstr "缩放(_Z)"
0 # translation of zh_TW.po to Traditional Chinese
1 # translation of zh_TW.po to
0 # SOME DESCRIPTIVE TITLE.
21 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
32 # This file is distributed under the same license as the PACKAGE package.
4 #
3 #
4 # Translators:
55 # Terry Chuang <tchuang at redhat>, 2010.
6 # Terry Chuang <tchuang@redhat.com>, 2012.
67 msgid ""
78 msgstr ""
8 "Project-Id-Version: zh_TW\n"
9 "Project-Id-Version: virt-viewer\n"
910 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2010-01-22 00:33+0000\n"
11 "PO-Revision-Date: 2010-01-22 16:31+1000\n"
12 "Last-Translator: Terry Chuang <tchuang at redhat>\n"
13 "Language-Team: Traditional Chinese <zh_TW@li.org>\n"
11 "POT-Creation-Date: 2012-04-25 15:50+0100\n"
12 "PO-Revision-Date: 2012-04-25 14:50+0000\n"
13 "Last-Translator: Daniel Berrange <dan-transifex@berrange.com>\n"
14 "Language-Team: Chinese (Taiwan) <trans-zh_TW@lists.fedoraproject.org>\n"
1415 "MIME-Version: 1.0\n"
1516 "Content-Type: text/plain; charset=UTF-8\n"
1617 "Content-Transfer-Encoding: 8bit\n"
17 "X-Generator: KBabel 1.11.4\n"
18
19 #: ../src/main.c:34
20 #, c-format
21 msgid "%s version %s\n"
22 msgstr "%s version %s\n"
23
24 #: ../src/main.c:52
18 "Language: zh_TW\n"
19 "Plural-Forms: nplurals=1; plural=0\n"
20
21 #: ../src/gbinding.c:637
22 msgid "Source"
23 msgstr "來源"
24
25 #: ../src/gbinding.c:638
26 msgid "The source of the binding"
27 msgstr "綁定的來源"
28
29 #: ../src/gbinding.c:652
30 msgid "Target"
31 msgstr "目標"
32
33 #: ../src/gbinding.c:653
34 msgid "The target of the binding"
35 msgstr "綁定的目標"
36
37 #: ../src/gbinding.c:668
38 msgid "Source Property"
39 msgstr "來源屬性"
40
41 #: ../src/gbinding.c:669
42 msgid "The property on the source to bind"
43 msgstr "欲綁定之來源的屬性"
44
45 #: ../src/gbinding.c:684
46 msgid "Target Property"
47 msgstr "目標屬性"
48
49 #: ../src/gbinding.c:685
50 msgid "The property on the target to bind"
51 msgstr "欲綁定之目標的屬性"
52
53 #: ../src/gbinding.c:699
54 msgid "Flags"
55 msgstr "旗標"
56
57 #: ../src/gbinding.c:700
58 msgid "The binding flags"
59 msgstr "綁定旗標"
60
61 #: ../src/remote-viewer-main.c:47
62 #, c-format
63 msgid "remote-viewer version %s\n"
64 msgstr "remote-viewer 版本 %s\n"
65
66 #: ../src/remote-viewer-main.c:69
67 #, c-format
68 msgid "Invalid full-screen argument: %s"
69 msgstr ""
70
71 #. Create the widgets
72 #: ../src/remote-viewer-main.c:104
73 msgid "Connection details"
74 msgstr ""
75
76 #: ../src/remote-viewer-main.c:119
77 msgid "URL:"
78 msgstr ""
79
80 #: ../src/remote-viewer-main.c:127
81 msgid "Recent connections:"
82 msgstr ""
83
84 #: ../src/remote-viewer-main.c:206 ../src/virt-viewer-main.c:60
2585 msgid "Run '"
2686 msgstr "執行 '"
2787
28 #: ../src/main.c:55
29 msgid "display version information"
88 #: ../src/remote-viewer-main.c:209 ../src/virt-viewer-main.c:63
89 msgid "Display version information"
3090 msgstr "顯示版本資訊"
3191
32 #: ../src/main.c:57
33 msgid "display verbose information"
92 #: ../src/remote-viewer-main.c:211 ../src/virt-viewer-main.c:65
93 msgid "Display verbose information"
3494 msgstr "顯示詳細資訊"
3595
36 #: ../src/main.c:59
37 msgid "direct connection with no automatic tunnels"
38 msgstr "無自動 tunnel 直接連線"
39
40 #: ../src/main.c:61
41 msgid "connect to hypervisor"
42 msgstr "連至 hypervisor"
43
44 #: ../src/main.c:63
45 msgid "wait for domain to start"
46 msgstr "等待網域啟動"
47
48 #: ../src/main.c:65
49 msgid "reconnect to domain upon restart"
50 msgstr "重新啟動後重新連至網域"
51
52 #: ../src/main.c:67
53 msgid "display debugging information"
96 #: ../src/remote-viewer-main.c:213 ../src/virt-viewer-main.c:67
97 msgid "Direct connection with no automatic tunnels"
98 msgstr "無自動穿隧的直接連線"
99
100 #: ../src/remote-viewer-main.c:215 ../src/virt-viewer-main.c:77
101 msgid "Zoom level of window, in percentage"
102 msgstr "視窗放大等級,單位為百分比"
103
104 #: ../src/remote-viewer-main.c:217 ../src/virt-viewer-main.c:79
105 msgid "Display debugging information"
54106 msgstr "顯示除錯資訊"
55107
108 #: ../src/remote-viewer-main.c:219
109 msgid "Open in full screen mode (=<auto-conf>)"
110 msgstr ""
111
112 #: ../src/remote-viewer-main.c:222
113 msgid "Open connection using Spice controller communication"
114 msgstr "透過 Spice 控制器通訊來開啟連線"
115
116 #: ../src/remote-viewer-main.c:249
117 msgid "Remote Viewer"
118 msgstr ""
119
56120 #. Setup command line options
57 #: ../src/main.c:79
58 msgid "- Virtual machine graphical console"
59 msgstr "- 虛擬機器圖形化主控台"
60
61 #: ../src/main.c:95
62 #, c-format
63 msgid ""
64 "\n"
65 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
66 "\n"
67 "%s\n"
68 "\n"
69 msgstr ""
70 "\n"
71 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
72 "\n"
73 "%s\n"
74 "\n"
75
76 #: ../src/viewer.c:878
77 #, c-format
78 msgid "Cannot determine the VNC port for the guest %s"
79 msgstr "無法判斷客座端 %s 的 VNC 連接埠"
80
81 #: ../src/viewer.c:884
82 #, c-format
83 msgid "Cannot determine the VNC host for the guest %s"
84 msgstr "無法判斷客座端 %s 的 VNC 連接埠"
85
86 #: ../src/viewer.c:984
87 #, c-format
88 msgid "Unable to connect to the VNC server %s"
89 msgstr "無法連上 VNC 伺服器 %s"
90
91 #: ../src/viewer.c:1001
92 #, c-format
93 msgid ""
94 "Unable to authenticate with VNC server at %s: %s\n"
95 "Retry connection again?"
96 msgstr ""
97 "無法在 %s: %s 上以 VNC 伺服器進行驗證\n"
98 "是否重新嘗試連線?"
99
100 #: ../src/viewer.c:1019
101 #, c-format
102 msgid ""
103 "Unable to authenticate with VNC server at %s\n"
104 "Unsupported authentication type %d"
105 msgstr ""
106 "無法在 %s 上以 VNC 伺服器進行驗證\n"
107 "不受支援的驗證類型 %d"
108
109 #: ../src/viewer.c:1111
110 #, c-format
111 msgid "Cannot find guest domain %s"
112 msgstr "找不到客座端網域 %s"
113
114 #: ../src/viewer.c:1213
115 #, c-format
116 msgid "Unable to connect to libvirt with URI %s"
117 msgstr "無法透過 URI %s 與 libvirt 連線"
118
119 #: ../src/viewer.c:1214
120 msgid "[none]"
121 msgstr "[none]"
122
123 #.
121 #: ../src/remote-viewer-main.c:252
122 msgid "- Remote viewer client"
123 msgstr "- 院端檢視器客戶端"
124
125 #: ../src/remote-viewer-main.c:275
126 #, c-format
127 msgid "Error: extra arguments given while using Spice controller\n"
128 msgstr ""
129
130 #: ../src/remote-viewer-main.c:284
131 #, c-format
132 msgid "Error: can't handle multiple URIs\n"
133 msgstr ""
134
135 #: ../src/remote-viewer-main.c:291 ../src/virt-viewer-main.c:125
136 #, c-format
137 msgid "Zoom level must be within 10-200\n"
138 msgstr "放大等級必須介於 10-200 之間\n"
139
140 #: ../src/remote-viewer.c:237 ../src/remote-viewer.c:784
141 msgid "Failed to initiate connection"
142 msgstr "初始化連線失敗"
143
144 #: ../src/remote-viewer.c:250
145 msgid "Display disabled by controller"
146 msgstr "畫面已被控制器停用"
147
148 #: ../src/remote-viewer.c:697
149 #, c-format
150 msgid "Controller connection failed: %s"
151 msgstr "控制器連線失敗:%s"
152
153 #: ../src/remote-viewer.c:750
154 msgid "Couldn't create a Spice session"
155 msgstr "無法建立 Spice 作業階段"
156
157 #: ../src/remote-viewer.c:764
158 msgid "Setting up Spice session..."
159 msgstr "正在設置 Spice 作業階段..."
160
161 #: ../src/remote-viewer.c:774
162 msgid "Cannot determine the connection type from URI"
163 msgstr "無法從網址判斷連線類型"
164
165 #: ../src/remote-viewer.c:779
166 #, c-format
167 msgid "Couldn't create a session for this type: %s"
168 msgstr "無法為此類型建立作業階段:%s"
169
124170 #. * Local variables:
125 #. * c-indent-level: 8
126 #. * c-basic-offset: 8
127 #. * tab-width: 8
171 #. * c-indent-level: 4
172 #. * c-basic-offset: 4
173 #. * indent-tabs-mode: nil
128174 #. * End:
129 #.
130 #: ../src/about.glade.h:1
131 msgid "A remote desktop client built with GTK-VNC and libvirt"
132 msgstr "內建了 GTK-VNC 和 libvirt 的遠端桌面客戶端"
133
134 #: ../src/about.glade.h:2
175 #.
176 #: ../src/virt-viewer-about.xml.h:1
177 msgid "A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt"
178 msgstr "以 GTK-VNC、SPICE-GTK 和 libvirt 所建立的遠端桌面客戶端"
179
180 #: ../src/virt-viewer-about.xml.h:2
135181 msgid "About Glade"
136182 msgstr "關於 Glade"
137183
138 #: ../src/about.glade.h:3
184 #: ../src/virt-viewer-about.xml.h:3
139185 msgid ""
140 "Copyright 2007-2008 Daniel P. Berrange\n"
141 "Copyright 2007-2008 Red Hat, Inc."
142 msgstr ""
143 "版權所有 2007-2008 Daniel P. Berrange\n"
144 "版權所有 2007-2008 Red Hat, Inc."
145
146 #: ../src/about.glade.h:5
186 "Copyright (C) 2007-2012 Daniel P. Berrange\n"
187 "Copyright (C) 2007-2012 Red Hat, Inc."
188 msgstr "Copyright (C) 2007-2012 Daniel P. Berrange\nCopyright (C) 2007-2012 Red Hat, Inc."
189
190 #: ../src/virt-viewer-about.xml.h:5
147191 msgid "The Fedora Translation Team"
148192 msgstr "Fedora 翻譯團隊"
149193
150 #: ../src/about.glade.h:6
194 #: ../src/virt-viewer-about.xml.h:6
151195 msgid ""
152196 "This program is free software; you can redistribute it and/or modify\n"
153197 "it under the terms of the GNU General Public License as published by\n"
162206 "You should have received a copy of the GNU General Public License\n"
163207 "along with this program; if not, write to the Free Software\n"
164208 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
165 msgstr ""
166 "本程式為自由軟體;您可依據自由軟體\n"
167 "基金會所發表的 GNU 通用公共許可證就本作品\n"
168 "再為發佈與/或修改;無論您依據的是本授權的第二版\n"
169 "(您自行選擇的)任一日後發行的版本。\n"
170 "\n"
171 "本程式是基於使用目的而加以發佈,\n"
172 "然而不負任何擔保責任;亦無對適售性或特定目的\n"
173 "適用性所為的默示性擔保。詳情\n"
174 "請參照 GNU 通用公共許可證。\n"
175 "\n"
176 "您應該已收到了附隨於本程式的 GNU 通用公共授權\n"
177 "的副本;若沒有的話,請寫信至自由軟體\n"
178 "基金會:59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
179
180 #: ../src/about.glade.h:20
209 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"
210
211 #: ../src/virt-viewer-about.xml.h:20
181212 msgid "virt-manager.org"
182213 msgstr "virt-manager.org"
183214
184 #: ../src/auth.glade.h:1
215 #: ../src/virt-viewer-app.c:284
216 msgid "This is the last visible display. Do you want to quit?"
217 msgstr "這是最後的可見顯示。您是否想退出?"
218
219 #: ../src/virt-viewer-app.c:624
220 #, c-format
221 msgid "Waiting for display %d..."
222 msgstr "正在等候顯示 %d..."
223
224 #: ../src/virt-viewer-app.c:707
225 #, c-format
226 msgid "Unknown graphic type for the guest %s"
227 msgstr "客端 %s 的圖形類型不明"
228
229 #: ../src/virt-viewer-app.c:782
230 msgid "Connect to ssh failed."
231 msgstr "連至 ssh 的連線失敗。"
232
233 #: ../src/virt-viewer-app.c:784
234 msgid "Can't connect to channel, SSH only supported."
235 msgstr "無法連至頻道,僅支援 SSH。"
236
237 #: ../src/virt-viewer-app.c:796
238 msgid "Connect to channel unsupported."
239 msgstr "不支援連至頻道。"
240
241 #: ../src/virt-viewer-app.c:876
242 msgid "Connecting to graphic server"
243 msgstr "正連至圖形化伺服器"
244
245 #: ../src/virt-viewer-app.c:1006
246 msgid "Guest domain has shutdown"
247 msgstr "客端網域已關閉"
248
249 #: ../src/virt-viewer-app.c:1056
250 msgid "Connected to graphic server"
251 msgstr "已連上圖形化伺服器"
252
253 #: ../src/virt-viewer-app.c:1082
254 #, c-format
255 msgid "Unable to connect to the graphic server %s"
256 msgstr "無法連上圖形化伺服器 %s"
257
258 #: ../src/virt-viewer-app.c:1111
259 #, c-format
260 msgid ""
261 "Unable to authenticate with remote desktop server at %s: %s\n"
262 "Retry connection again?"
263 msgstr "無法在位於 %s 的遠端桌面伺服器上驗證:%s\n重新嘗試連線?"
264
265 #: ../src/virt-viewer-app.c:1131
266 #, c-format
267 msgid "Unable to authenticate with remote desktop server: %s"
268 msgstr "無法在遠端桌面伺服器驗證:%s"
269
270 #: ../src/virt-viewer-app.c:1139
271 #, c-format
272 msgid "USB redirection error: %s"
273 msgstr "USB 重定向錯誤:%s"
274
275 #. * Local variables:
276 #. * c-indent-level: 4
277 #. * c-basic-offset: 4
278 #. * indent-tabs-mode: nil
279 #. * End:
280 #.
281 #: ../src/virt-viewer-auth.xml.h:1
185282 msgid "Authentication required"
186 msgstr "需要進行驗證"
187
188 #: ../src/auth.glade.h:2
283 msgstr "須要通過驗證"
284
285 #: ../src/virt-viewer-auth.xml.h:2
189286 msgid "Password:"
190287 msgstr "密碼:"
191288
192 #: ../src/auth.glade.h:3
289 #: ../src/virt-viewer-auth.xml.h:3
193290 msgid "Username:"
194291 msgstr "使用者名稱:"
195292
196 #: ../src/auth.glade.h:4
197 msgid "gtk-cancel"
198 msgstr "gtk-cancel"
199
200 #: ../src/auth.glade.h:5
201 msgid "gtk-ok"
202 msgstr "gtk-ok"
203
204 #: ../src/auth.glade.h:6
293 #: ../src/virt-viewer-auth.xml.h:4
205294 msgid "label"
206295 msgstr "標籤"
207296
208 #: ../src/viewer.glade.h:1
297 #: ../src/virt-viewer-main.c:38
298 #, c-format
299 msgid "%s version %s\n"
300 msgstr "%s version %s\n"
301
302 #: ../src/virt-viewer-main.c:69
303 msgid "Attach to the local display using libvirt"
304 msgstr "使用 libvirt 連至本機顯示"
305
306 #: ../src/virt-viewer-main.c:71
307 msgid "Connect to hypervisor"
308 msgstr "連至 hypervisor"
309
310 #: ../src/virt-viewer-main.c:73
311 msgid "Wait for domain to start"
312 msgstr "等待網域啟用"
313
314 #: ../src/virt-viewer-main.c:75
315 msgid "Reconnect to domain upon restart"
316 msgstr "重新啓動時重新連至網域"
317
318 #: ../src/virt-viewer-main.c:81
319 msgid "Open in full screen mode"
320 msgstr "以全螢幕模式開啟"
321
322 #: ../src/virt-viewer-main.c:96
323 msgid "Virt Viewer"
324 msgstr "Virt 檢視器"
325
326 #. Setup command line options
327 #: ../src/virt-viewer-main.c:99
328 msgid "- Virtual machine graphical console"
329 msgstr "- 虛擬機圖形化主控臺"
330
331 #: ../src/virt-viewer-main.c:120
332 #, c-format
333 msgid ""
334 "\n"
335 "Usage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n"
336 "\n"
337 "%s\n"
338 "\n"
339 msgstr "\n用法:%s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"
340
341 #. Create the widgets
342 #: ../src/virt-viewer-session-spice.c:380
343 msgid "Select USB devices for redirection"
344 msgstr "選擇欲重新導向的 USB 裝置"
345
346 #: ../src/virt-viewer-session-vnc.c:141
347 #, c-format
348 msgid "Unsupported authentication type %d"
349 msgstr "不支援的驗證類型 %d"
350
351 #: ../src/virt-viewer-window.c:832
352 msgid "Disconnect"
353 msgstr "中斷連接"
354
355 #: ../src/virt-viewer-window.c:839 ../src/virt-viewer-window.c:840
356 #: ../src/virt-viewer.xml.h:22
357 msgid "USB device selection"
358 msgstr "USB 裝置選取"
359
360 #: ../src/virt-viewer-window.c:848
361 msgid "Send key combination"
362 msgstr ""
363
364 #: ../src/virt-viewer-window.c:857 ../src/virt-viewer-window.c:858
365 msgid "Leave fullscreen"
366 msgstr "離開全螢幕"
367
368 #: ../src/virt-viewer-window.c:937
369 msgid "Ctrl+Alt"
370 msgstr ""
371
372 #: ../src/virt-viewer-window.c:940
373 #, c-format
374 msgid "(Press %s to release pointer)"
375 msgstr ""
376
377 #. translators:
378 #. * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> -
379 #. <appname>"
380 #. * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt
381 #. Viewer"
382 #.
383 #: ../src/virt-viewer-window.c:951
384 #, c-format
385 msgid "%s%s%s - %s"
386 msgstr "%s%s%s - %s"
387
388 #. translators: <space>
389 #: ../src/virt-viewer-window.c:955
390 msgid " "
391 msgstr " "
392
393 #: ../src/virt-viewer.c:144
394 msgid "Waiting for guest domain to re-start"
395 msgstr "正在等候客端網域重新啓用"
396
397 #: ../src/virt-viewer.c:308
398 #, c-format
399 msgid "Cannot determine the graphic type for the guest %s"
400 msgstr "無法判斷客端 %s 的圖形化類型為何"
401
402 #: ../src/virt-viewer.c:321
403 #, c-format
404 msgid "Cannot determine the graphic address for the guest %s"
405 msgstr "無法判斷客端 %s 的圖形化位址為何"
406
407 #: ../src/virt-viewer.c:344
408 #, c-format
409 msgid "Cannot determine the host for the guest %s"
410 msgstr "無法判斷客端 %s 的主機為何"
411
412 #: ../src/virt-viewer.c:474
413 msgid "Finding guest domain"
414 msgstr "正在尋找客端網域"
415
416 #: ../src/virt-viewer.c:478
417 msgid "Waiting for guest domain to be created"
418 msgstr "正在等候客端網域被建立"
419
420 #: ../src/virt-viewer.c:483
421 #, c-format
422 msgid "Cannot find guest domain %s"
423 msgstr "找不到客端網域 %s"
424
425 #: ../src/virt-viewer.c:490
426 msgid "Checking guest domain status"
427 msgstr "正在檢查客端網域狀態"
428
429 #: ../src/virt-viewer.c:497
430 msgid "Waiting for guest domain to start"
431 msgstr "正在等候客端網域啟動"
432
433 #: ../src/virt-viewer.c:504
434 msgid "Waiting for guest domain to start server"
435 msgstr "正在等候客端網域啟動伺服器"
436
437 #: ../src/virt-viewer.c:624
438 #, c-format
439 msgid "Unable to connect to libvirt with URI %s"
440 msgstr "無法透過 %s 網址與 libvirt 連線"
441
442 #: ../src/virt-viewer.c:625
443 msgid "[none]"
444 msgstr "[無]"
445
446 #. * Local variables:
447 #. * c-indent-level: 4
448 #. * c-basic-offset: 4
449 #. * indent-tabs-mode: nil
450 #. * End:
451 #.
452 #: ../src/virt-viewer.xml.h:1
209453 msgid "Automatically resize"
210 msgstr "自動重設大小"
211
212 #: ../src/viewer.glade.h:2
454 msgstr "自動重新調整大小"
455
456 #: ../src/virt-viewer.xml.h:2
213457 msgid "Ctrl+Alt+F11"
214458 msgstr "Ctrl+Alt+F11"
215459
216 #: ../src/viewer.glade.h:3
460 #: ../src/virt-viewer.xml.h:3
217461 msgid "Ctrl+Alt+F12"
218462 msgstr "Ctrl+Alt+F12"
219463
220 #: ../src/viewer.glade.h:4
464 #: ../src/virt-viewer.xml.h:4
221465 msgid "Ctrl+Alt+F1_0"
222466 msgstr "Ctrl+Alt+F1_0"
223467
224 #: ../src/viewer.glade.h:5
468 #: ../src/virt-viewer.xml.h:5
225469 msgid "Ctrl+Alt+F_1"
226470 msgstr "Ctrl+Alt+F_1"
227471
228 #: ../src/viewer.glade.h:6
472 #: ../src/virt-viewer.xml.h:6
229473 msgid "Ctrl+Alt+F_2"
230474 msgstr "Ctrl+Alt+F_2"
231475
232 #: ../src/viewer.glade.h:7
476 #: ../src/virt-viewer.xml.h:7
233477 msgid "Ctrl+Alt+F_3"
234478 msgstr "Ctrl+Alt+F_3"
235479
236 #: ../src/viewer.glade.h:8
480 #: ../src/virt-viewer.xml.h:8
237481 msgid "Ctrl+Alt+F_4"
238482 msgstr "Ctrl+Alt+F_4"
239483
240 #: ../src/viewer.glade.h:9
484 #: ../src/virt-viewer.xml.h:9
241485 msgid "Ctrl+Alt+F_5"
242486 msgstr "Ctrl+Alt+F_5"
243487
244 #: ../src/viewer.glade.h:10
488 #: ../src/virt-viewer.xml.h:10
245489 msgid "Ctrl+Alt+F_6"
246490 msgstr "Ctrl+Alt+F_6"
247491
248 #: ../src/viewer.glade.h:11
492 #: ../src/virt-viewer.xml.h:11
249493 msgid "Ctrl+Alt+F_7"
250494 msgstr "Ctrl+Alt+F_7"
251495
252 #: ../src/viewer.glade.h:12
496 #: ../src/virt-viewer.xml.h:12
253497 msgid "Ctrl+Alt+F_8"
254498 msgstr "Ctrl+Alt+F_8"
255499
256 #: ../src/viewer.glade.h:13
500 #: ../src/virt-viewer.xml.h:13
257501 msgid "Ctrl+Alt+F_9"
258502 msgstr "Ctrl+Alt+F_9"
259503
260 #: ../src/viewer.glade.h:14
504 #: ../src/virt-viewer.xml.h:14
261505 msgid "Ctrl+Alt+_Backspace"
262506 msgstr "Ctrl+Alt+_Backspace"
263507
264 #: ../src/viewer.glade.h:15
508 #: ../src/virt-viewer.xml.h:15
265509 msgid "Ctrl+Alt+_Del"
266510 msgstr "Ctrl+Alt+_Del"
267511
268 #: ../src/viewer.glade.h:16
512 #: ../src/virt-viewer.xml.h:16
513 msgid "Displays"
514 msgstr "顯示"
515
516 #: ../src/virt-viewer.xml.h:17
269517 msgid "Full screen"
270518 msgstr "全螢幕"
271519
272 #: ../src/viewer.glade.h:17
520 #: ../src/virt-viewer.xml.h:18
521 msgid "Release cursor"
522 msgstr "釋放游標"
523
524 #: ../src/virt-viewer.xml.h:19
273525 msgid "Screenshot"
274 msgstr "螢幕截圖"
275
276 #: ../src/viewer.glade.h:18
526 msgstr "螢幕快照"
527
528 #: ../src/virt-viewer.xml.h:20
529 msgid "Smartcard insertion"
530 msgstr "智慧卡插入"
531
532 #: ../src/virt-viewer.xml.h:21
533 msgid "Smartcard removal"
534 msgstr "智慧卡移除"
535
536 #: ../src/virt-viewer.xml.h:23
277537 msgid "_File"
278538 msgstr "檔案(_F)"
279539
280 #: ../src/viewer.glade.h:19
540 #: ../src/virt-viewer.xml.h:24
281541 msgid "_Help"
282 msgstr "說明(_H)"
283
284 #: ../src/viewer.glade.h:20
542 msgstr "求助(_H)"
543
544 #: ../src/virt-viewer.xml.h:25
285545 msgid "_PrintScreen"
286 msgstr "列印螢幕畫面(_P)"
287
288 #: ../src/viewer.glade.h:21
546 msgstr "列印畫面(_P)"
547
548 #: ../src/virt-viewer.xml.h:26
289549 msgid "_Send key"
290 msgstr "傳送組合鍵(_S)"
291
292 #: ../src/viewer.glade.h:22
550 msgstr "傳送按鍵(_S)"
551
552 #: ../src/virt-viewer.xml.h:27
293553 msgid "_View"
294554 msgstr "檢視(_V)"
295555
296 #: ../src/viewer.glade.h:23
297 msgid "gtk-about"
298 msgstr "gtk-about"
299
300 #: ../src/viewer.glade.h:24
301 msgid "gtk-quit"
302 msgstr "gtk-quit"
303
304 #: ../src/viewer.glade.h:25
305 msgid "page 1"
306 msgstr "第一頁"
307
308 #: ../src/viewer.glade.h:26
309 msgid "page 2"
310 msgstr "第二頁"
311
556 #: ../src/virt-viewer.xml.h:28
557 msgid "_Zoom"
558 msgstr "遠近(_Z)"
0
1 bin_PROGRAMS = virt-viewer
0 NULL =
1 LDADD =
2 MAINTAINERCLEANFILES =
3 bin_PROGRAMS =
24
35 builderxmldir = $(pkgdatadir)/ui
4 builderxml_DATA = \
5 virt-viewer.xml \
6 virt-viewer-about.xml \
7 virt-viewer-auth.xml
6 builderxml_DATA = \
7 virt-viewer.xml \
8 virt-viewer-about.xml \
9 virt-viewer-auth.xml \
10 $(NULL)
811
9 EXTRA_DIST = $(builderxml_DATA)
12 EXTRA_DIST = \
13 $(builderxml_DATA) \
14 virt-viewer-enums.c.etemplate \
15 virt-viewer-enums.h.etemplate \
16 gbinding.c \
17 gbinding.h \
18 $(NULL)
1019
11 virt_viewer_SOURCES = \
12 virt-viewer-main.c \
13 virt-viewer.h virt-viewer.c \
14 virt-viewer-util.h virt-viewer-util.c \
15 virt-viewer-auth.h virt-viewer-auth.c \
16 virt-viewer-events.h virt-viewer-events.c \
17 virt-viewer-app.h virt-viewer-app.c \
18 virt-viewer-session.h virt-viewer-session.c \
19 virt-viewer-session-vnc.h virt-viewer-session-vnc.c \
20 virt-viewer-display.h virt-viewer-display.c \
21 virt-viewer-display-vnc.h virt-viewer-display-vnc.c \
22 virt-viewer-notebook.h virt-viewer-notebook.c \
23 virt-viewer-window.h virt-viewer-window.c \
24 view/autoDrawer.c \
25 view/autoDrawer.h \
26 view/drawer.c \
27 view/drawer.h \
28 view/ovBox.c \
29 view/ovBox.h
20 ENUMS_FILES = \
21 virt-viewer-display.h \
22 $(NULL)
23
24 BUILT_SOURCES = \
25 virt-viewer-enums.h \
26 virt-viewer-enums.c \
27 $(NULL)
28
29 $(BUILT_SOURCES): %: %.etemplate $(ENUMS_FILES)
30 $(AM_V_GEN)$(GLIB_MKENUMS) --template $^ | \
31 sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \
32 -e 's,#include "$(srcdir)/,#include ",' > $@
33
34 COMMON_SOURCES = \
35 $(BUILT_SOURCES) \
36 virt-glib-compat.h \
37 virt-gtk-compat.h \
38 virt-viewer-util.h virt-viewer-util.c \
39 virt-viewer-auth.h virt-viewer-auth.c \
40 virt-viewer-app.h virt-viewer-app.c \
41 virt-viewer-session.h virt-viewer-session.c \
42 virt-viewer-display.h virt-viewer-display.c \
43 virt-viewer-notebook.h virt-viewer-notebook.c \
44 virt-viewer-window.h virt-viewer-window.c \
45 view/autoDrawer.c \
46 view/autoDrawer.h \
47 view/drawer.c \
48 view/drawer.h \
49 view/ovBox.c \
50 view/ovBox.h \
51 $(NULL)
52
53 if HAVE_GTK_VNC
54 COMMON_SOURCES += \
55 virt-viewer-session-vnc.h virt-viewer-session-vnc.c \
56 virt-viewer-display-vnc.h virt-viewer-display-vnc.c \
57 $(NULL)
58 endif
59
60 if HAVE_SPICE_GTK
61 COMMON_SOURCES += \
62 virt-viewer-session-spice.h virt-viewer-session-spice.c \
63 virt-viewer-display-spice.h virt-viewer-display-spice.c \
64 $(NULL)
65 endif
3066
3167
68 if HAVE_LIBVIRT
69 bin_PROGRAMS += virt-viewer
70 virt_viewer_SOURCES = \
71 $(COMMON_SOURCES) \
72 virt-viewer-events.h virt-viewer-events.c \
73 virt-viewer.h virt-viewer.c \
74 virt-viewer-main.c \
75 $(NULL)
76 virt_viewer_LDFLAGS = \
77 -lm \
78 $(GLIB2_LIBS) \
79 $(GTK_LIBS) \
80 $(LIBXML2_LIBS) \
81 $(LIBVIRT_LIBS) \
82 $(NULL)
83 virt_viewer_CFLAGS = \
84 -DLOCALE_DIR=\""$(datadir)/locale"\" \
85 -DG_LOG_DOMAIN=\"virt-viewer\" \
86 $(GLIB2_CFLAGS) \
87 $(GTK_CFLAGS) \
88 $(LIBXML2_CFLAGS) \
89 $(LIBVIRT_CFLAGS) \
90 $(WARN_CFLAGS) \
91 $(NULL)
92
93 if HAVE_GTK_VNC
94 virt_viewer_LDFLAGS += $(GTK_VNC_LIBS)
95 virt_viewer_CFLAGS += $(GTK_VNC_CFLAGS)
96 endif
3297 if HAVE_SPICE_GTK
33 virt_viewer_SOURCES += \
34 virt-viewer-session-spice.h virt-viewer-session-spice.c \
35 virt-viewer-display-spice.h virt-viewer-display-spice.c
98 virt_viewer_LDFLAGS += $(SPICE_GTK_LIBS)
99 virt_viewer_CFLAGS += $(SPICE_GTK_CFLAGS)
100 endif
36101 endif
37102
38 virt_viewer_LDADD = \
39 @GTK_VNC_LIBS@ \
40 @SPICE_GTK_LIBS@ \
41 @GLIB2_LIBS@ \
42 @GTK_LIBS@ \
43 @LIBXML2_LIBS@ \
44 @LIBVIRT_LIBS@
45103
46 virt_viewer_CFLAGS = \
47 @GTK_VNC_CFLAGS@ \
48 @SPICE_GTK_CFLAGS@ \
49 @GLIB2_CFLAGS@ \
50 @GTK_CFLAGS@ \
51 @LIBXML2_CFLAGS@ \
52 @LIBVIRT_CFLAGS@ \
53 @WARN_CFLAGS@ \
54 -DBUILDER_XML_DIR="\"$(builderxmldir)\"" \
55 -DLOCALE_DIR=\""$(datadir)/locale"\"
104 bin_PROGRAMS += remote-viewer
105 remote_viewer_SOURCES = \
106 $(COMMON_SOURCES) \
107 remote-viewer.h remote-viewer.c \
108 remote-viewer-main.c \
109 $(NULL)
110 remote_viewer_LDFLAGS = \
111 -lm \
112 $(GLIB2_LIBS) \
113 $(GTK_LIBS) \
114 $(LIBXML2_LIBS) \
115 $(NULL)
116 remote_viewer_CFLAGS = \
117 -DLOCALE_DIR=\""$(datadir)/locale"\" \
118 -DG_LOG_DOMAIN=\"remote-viewer\" \
119 $(GLIB2_CFLAGS) \
120 $(GTK_CFLAGS) \
121 $(LIBXML2_CFLAGS) \
122 $(WARN_CFLAGS) \
123 $(NULL)
124
125 if HAVE_GTK_VNC
126 remote_viewer_LDFLAGS += $(GTK_VNC_LIBS)
127 remote_viewer_CFLAGS += $(GTK_VNC_CFLAGS)
128 endif
129 if HAVE_SPICE_GTK
130 remote_viewer_LDFLAGS += $(SPICE_GTK_LIBS) $(SPICE_CONTROLLER_LIBS)
131 remote_viewer_CFLAGS += $(SPICE_GTK_CFLAGS) $(SPICE_CONTROLLER_CFLAGS)
132 endif
133 if OS_WIN32
134 remote_viewer_LDFLAGS += -Wl,--subsystem,windows
135 endif
136
137 desktopdir = $(datadir)/applications
138 desktop_DATA = remote-viewer.desktop
139
140 EXTRA_DIST += $(desktop_DATA)
141
142 VIRT_VIEWER_RES = virt-viewer.rc virt-viewer.manifest
143 ICONDIR = $(top_builddir)/icons
144 MANIFESTDIR = $(srcdir)
145 EXTRA_DIST += $(VIRT_VIEWER_RES)
146
147 if OS_WIN32
148 bin_PROGRAMS += windows-cmdline-wrapper
149 windows_cmdline_wrapper_SOURCES = windows-cmdline-wrapper.c
150 windows_cmdline_wrapper_LDFLAGS = -lpsapi
151
152 virt-viewer_rc.$(OBJEXT): $(VIRT_VIEWER_RES) $(ICONDIR)/virt-viewer.ico
153 $(AM_V_GEN)$(WINDRES) \
154 -DICONDIR='\"$(ICONDIR)\"' \
155 -DMANIFESTDIR='\"$(MANIFESTDIR)\"' \
156 -i $< -o $@
157 LDADD += virt-viewer_rc.$(OBJEXT)
158 MAINTAINERCLEANFILES += virt-viewer_rc.$(OBJEXT)
159 endif
160
161 -include $(top_srcdir)/git.mk
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
0 # Makefile.in generated by automake 1.12.2 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
5 # Inc.
3 # Copyright (C) 1994-2012 Free Software Foundation, Inc.
4
65 # This Makefile.in is free software; the Free Software Foundation
76 # gives unlimited permission to copy and/or distribute it,
87 # with or without modifications, as long as this notice is preserved.
1615
1716
1817 VPATH = @srcdir@
18 am__make_dryrun = \
19 { \
20 am__dry=no; \
21 case $$MAKEFLAGS in \
22 *\\[\ \ ]*) \
23 echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
24 | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
25 *) \
26 for am__flg in $$MAKEFLAGS; do \
27 case $$am__flg in \
28 *=*|--*) ;; \
29 *n*) am__dry=yes; break;; \
30 esac; \
31 done;; \
32 esac; \
33 test $$am__dry = yes; \
34 }
1935 pkgdatadir = $(datadir)/@PACKAGE@
2036 pkgincludedir = $(includedir)/@PACKAGE@
2137 pkglibdir = $(libdir)/@PACKAGE@
3450 POST_UNINSTALL = :
3551 build_triplet = @build@
3652 host_triplet = @host@
37 bin_PROGRAMS = virt-viewer$(EXEEXT)
38 @HAVE_SPICE_GTK_TRUE@am__append_1 = \
39 @HAVE_SPICE_GTK_TRUE@ virt-viewer-session-spice.h virt-viewer-session-spice.c \
40 @HAVE_SPICE_GTK_TRUE@ virt-viewer-display-spice.h virt-viewer-display-spice.c
41
53 bin_PROGRAMS = $(am__EXEEXT_1) remote-viewer$(EXEEXT) $(am__EXEEXT_2)
54 @HAVE_GTK_VNC_TRUE@am__append_1 = \
55 @HAVE_GTK_VNC_TRUE@ virt-viewer-session-vnc.h virt-viewer-session-vnc.c \
56 @HAVE_GTK_VNC_TRUE@ virt-viewer-display-vnc.h virt-viewer-display-vnc.c \
57 @HAVE_GTK_VNC_TRUE@ $(NULL)
58
59 @HAVE_SPICE_GTK_TRUE@am__append_2 = \
60 @HAVE_SPICE_GTK_TRUE@ virt-viewer-session-spice.h virt-viewer-session-spice.c \
61 @HAVE_SPICE_GTK_TRUE@ virt-viewer-display-spice.h virt-viewer-display-spice.c \
62 @HAVE_SPICE_GTK_TRUE@ $(NULL)
63
64 @HAVE_LIBVIRT_TRUE@am__append_3 = virt-viewer
65 @HAVE_GTK_VNC_TRUE@@HAVE_LIBVIRT_TRUE@am__append_4 = $(GTK_VNC_LIBS)
66 @HAVE_GTK_VNC_TRUE@@HAVE_LIBVIRT_TRUE@am__append_5 = $(GTK_VNC_CFLAGS)
67 @HAVE_LIBVIRT_TRUE@@HAVE_SPICE_GTK_TRUE@am__append_6 = $(SPICE_GTK_LIBS)
68 @HAVE_LIBVIRT_TRUE@@HAVE_SPICE_GTK_TRUE@am__append_7 = $(SPICE_GTK_CFLAGS)
69 @HAVE_GTK_VNC_TRUE@am__append_8 = $(GTK_VNC_LIBS)
70 @HAVE_GTK_VNC_TRUE@am__append_9 = $(GTK_VNC_CFLAGS)
71 @HAVE_SPICE_GTK_TRUE@am__append_10 = $(SPICE_GTK_LIBS) $(SPICE_CONTROLLER_LIBS)
72 @HAVE_SPICE_GTK_TRUE@am__append_11 = $(SPICE_GTK_CFLAGS) $(SPICE_CONTROLLER_CFLAGS)
73 @OS_WIN32_TRUE@am__append_12 = -Wl,--subsystem,windows
74 @OS_WIN32_TRUE@am__append_13 = windows-cmdline-wrapper
75 @OS_WIN32_TRUE@am__append_14 = virt-viewer_rc.$(OBJEXT)
76 @OS_WIN32_TRUE@am__append_15 = virt-viewer_rc.$(OBJEXT)
4277 subdir = src
43 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
78 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
79 $(srcdir)/virt-viewer.rc.in $(top_srcdir)/build-aux/depcomp
4480 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
45 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
46 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
47 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
48 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
81 am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
82 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
83 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
84 $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
85 $(top_srcdir)/configure.ac
4986 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5087 $(ACLOCAL_M4)
5188 mkinstalldirs = $(install_sh) -d
5289 CONFIG_HEADER = $(top_builddir)/config.h
53 CONFIG_CLEAN_FILES =
90 CONFIG_CLEAN_FILES = virt-viewer.rc
5491 CONFIG_CLEAN_VPATH_FILES =
55 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)"
92 @HAVE_LIBVIRT_TRUE@am__EXEEXT_1 = virt-viewer$(EXEEXT)
93 @OS_WIN32_TRUE@am__EXEEXT_2 = windows-cmdline-wrapper$(EXEEXT)
94 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)" \
95 "$(DESTDIR)$(desktopdir)"
5696 PROGRAMS = $(bin_PROGRAMS)
57 am__virt_viewer_SOURCES_DIST = virt-viewer-main.c virt-viewer.h \
58 virt-viewer.c virt-viewer-util.h virt-viewer-util.c \
59 virt-viewer-auth.h virt-viewer-auth.c virt-viewer-events.h \
60 virt-viewer-events.c virt-viewer-app.h virt-viewer-app.c \
97 am__remote_viewer_SOURCES_DIST = virt-viewer-enums.h \
98 virt-viewer-enums.c virt-glib-compat.h virt-gtk-compat.h \
99 virt-viewer-util.h virt-viewer-util.c virt-viewer-auth.h \
100 virt-viewer-auth.c virt-viewer-app.h virt-viewer-app.c \
61101 virt-viewer-session.h virt-viewer-session.c \
62 virt-viewer-session-vnc.h virt-viewer-session-vnc.c \
63102 virt-viewer-display.h virt-viewer-display.c \
64 virt-viewer-display-vnc.h virt-viewer-display-vnc.c \
65103 virt-viewer-notebook.h virt-viewer-notebook.c \
66104 virt-viewer-window.h virt-viewer-window.c view/autoDrawer.c \
67105 view/autoDrawer.h view/drawer.c view/drawer.h view/ovBox.c \
68 view/ovBox.h virt-viewer-session-spice.h \
106 view/ovBox.h virt-viewer-session-vnc.h \
107 virt-viewer-session-vnc.c virt-viewer-display-vnc.h \
108 virt-viewer-display-vnc.c virt-viewer-session-spice.h \
69109 virt-viewer-session-spice.c virt-viewer-display-spice.h \
70 virt-viewer-display-spice.c
71 @HAVE_SPICE_GTK_TRUE@am__objects_1 = virt_viewer-virt-viewer-session-spice.$(OBJEXT) \
72 @HAVE_SPICE_GTK_TRUE@ virt_viewer-virt-viewer-display-spice.$(OBJEXT)
73 am_virt_viewer_OBJECTS = virt_viewer-virt-viewer-main.$(OBJEXT) \
74 virt_viewer-virt-viewer.$(OBJEXT) \
110 virt-viewer-display-spice.c remote-viewer.h remote-viewer.c \
111 remote-viewer-main.c
112 am__objects_1 =
113 am__objects_2 = remote_viewer-virt-viewer-enums.$(OBJEXT) \
114 $(am__objects_1)
115 @HAVE_GTK_VNC_TRUE@am__objects_3 = remote_viewer-virt-viewer-session-vnc.$(OBJEXT) \
116 @HAVE_GTK_VNC_TRUE@ remote_viewer-virt-viewer-display-vnc.$(OBJEXT) \
117 @HAVE_GTK_VNC_TRUE@ $(am__objects_1)
118 @HAVE_SPICE_GTK_TRUE@am__objects_4 = remote_viewer-virt-viewer-session-spice.$(OBJEXT) \
119 @HAVE_SPICE_GTK_TRUE@ remote_viewer-virt-viewer-display-spice.$(OBJEXT) \
120 @HAVE_SPICE_GTK_TRUE@ $(am__objects_1)
121 am__objects_5 = $(am__objects_2) \
122 remote_viewer-virt-viewer-util.$(OBJEXT) \
123 remote_viewer-virt-viewer-auth.$(OBJEXT) \
124 remote_viewer-virt-viewer-app.$(OBJEXT) \
125 remote_viewer-virt-viewer-session.$(OBJEXT) \
126 remote_viewer-virt-viewer-display.$(OBJEXT) \
127 remote_viewer-virt-viewer-notebook.$(OBJEXT) \
128 remote_viewer-virt-viewer-window.$(OBJEXT) \
129 remote_viewer-autoDrawer.$(OBJEXT) \
130 remote_viewer-drawer.$(OBJEXT) remote_viewer-ovBox.$(OBJEXT) \
131 $(am__objects_1) $(am__objects_3) $(am__objects_4)
132 am_remote_viewer_OBJECTS = $(am__objects_5) \
133 remote_viewer-remote-viewer.$(OBJEXT) \
134 remote_viewer-remote-viewer-main.$(OBJEXT) $(am__objects_1)
135 remote_viewer_OBJECTS = $(am_remote_viewer_OBJECTS)
136 remote_viewer_LDADD = $(LDADD)
137 remote_viewer_DEPENDENCIES = $(am__append_14)
138 AM_V_lt = $(am__v_lt_@AM_V@)
139 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
140 am__v_lt_0 = --silent
141 am__v_lt_1 =
142 remote_viewer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
143 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(remote_viewer_CFLAGS) \
144 $(CFLAGS) $(remote_viewer_LDFLAGS) $(LDFLAGS) -o $@
145 am__virt_viewer_SOURCES_DIST = virt-viewer-enums.h virt-viewer-enums.c \
146 virt-glib-compat.h virt-gtk-compat.h virt-viewer-util.h \
147 virt-viewer-util.c virt-viewer-auth.h virt-viewer-auth.c \
148 virt-viewer-app.h virt-viewer-app.c virt-viewer-session.h \
149 virt-viewer-session.c virt-viewer-display.h \
150 virt-viewer-display.c virt-viewer-notebook.h \
151 virt-viewer-notebook.c virt-viewer-window.h \
152 virt-viewer-window.c view/autoDrawer.c view/autoDrawer.h \
153 view/drawer.c view/drawer.h view/ovBox.c view/ovBox.h \
154 virt-viewer-session-vnc.h virt-viewer-session-vnc.c \
155 virt-viewer-display-vnc.h virt-viewer-display-vnc.c \
156 virt-viewer-session-spice.h virt-viewer-session-spice.c \
157 virt-viewer-display-spice.h virt-viewer-display-spice.c \
158 virt-viewer-events.h virt-viewer-events.c virt-viewer.h \
159 virt-viewer.c virt-viewer-main.c
160 am__objects_6 = virt_viewer-virt-viewer-enums.$(OBJEXT) \
161 $(am__objects_1)
162 @HAVE_GTK_VNC_TRUE@am__objects_7 = virt_viewer-virt-viewer-session-vnc.$(OBJEXT) \
163 @HAVE_GTK_VNC_TRUE@ virt_viewer-virt-viewer-display-vnc.$(OBJEXT) \
164 @HAVE_GTK_VNC_TRUE@ $(am__objects_1)
165 @HAVE_SPICE_GTK_TRUE@am__objects_8 = virt_viewer-virt-viewer-session-spice.$(OBJEXT) \
166 @HAVE_SPICE_GTK_TRUE@ virt_viewer-virt-viewer-display-spice.$(OBJEXT) \
167 @HAVE_SPICE_GTK_TRUE@ $(am__objects_1)
168 am__objects_9 = $(am__objects_6) \
75169 virt_viewer-virt-viewer-util.$(OBJEXT) \
76170 virt_viewer-virt-viewer-auth.$(OBJEXT) \
77 virt_viewer-virt-viewer-events.$(OBJEXT) \
78171 virt_viewer-virt-viewer-app.$(OBJEXT) \
79172 virt_viewer-virt-viewer-session.$(OBJEXT) \
80 virt_viewer-virt-viewer-session-vnc.$(OBJEXT) \
81173 virt_viewer-virt-viewer-display.$(OBJEXT) \
82 virt_viewer-virt-viewer-display-vnc.$(OBJEXT) \
83174 virt_viewer-virt-viewer-notebook.$(OBJEXT) \
84175 virt_viewer-virt-viewer-window.$(OBJEXT) \
85176 virt_viewer-autoDrawer.$(OBJEXT) virt_viewer-drawer.$(OBJEXT) \
86 virt_viewer-ovBox.$(OBJEXT) $(am__objects_1)
177 virt_viewer-ovBox.$(OBJEXT) $(am__objects_1) $(am__objects_7) \
178 $(am__objects_8)
179 @HAVE_LIBVIRT_TRUE@am_virt_viewer_OBJECTS = $(am__objects_9) \
180 @HAVE_LIBVIRT_TRUE@ virt_viewer-virt-viewer-events.$(OBJEXT) \
181 @HAVE_LIBVIRT_TRUE@ virt_viewer-virt-viewer.$(OBJEXT) \
182 @HAVE_LIBVIRT_TRUE@ virt_viewer-virt-viewer-main.$(OBJEXT) \
183 @HAVE_LIBVIRT_TRUE@ $(am__objects_1)
87184 virt_viewer_OBJECTS = $(am_virt_viewer_OBJECTS)
88 virt_viewer_DEPENDENCIES =
89 AM_V_lt = $(am__v_lt_$(V))
90 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
91 am__v_lt_0 = --silent
185 virt_viewer_LDADD = $(LDADD)
186 virt_viewer_DEPENDENCIES = $(am__append_14)
92187 virt_viewer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
93188 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(virt_viewer_CFLAGS) \
94 $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
189 $(CFLAGS) $(virt_viewer_LDFLAGS) $(LDFLAGS) -o $@
190 am__windows_cmdline_wrapper_SOURCES_DIST = windows-cmdline-wrapper.c
191 @OS_WIN32_TRUE@am_windows_cmdline_wrapper_OBJECTS = \
192 @OS_WIN32_TRUE@ windows-cmdline-wrapper.$(OBJEXT)
193 windows_cmdline_wrapper_OBJECTS = \
194 $(am_windows_cmdline_wrapper_OBJECTS)
195 windows_cmdline_wrapper_LDADD = $(LDADD)
196 windows_cmdline_wrapper_DEPENDENCIES = $(am__append_14)
197 windows_cmdline_wrapper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
198 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
199 $(AM_CFLAGS) $(CFLAGS) $(windows_cmdline_wrapper_LDFLAGS) \
200 $(LDFLAGS) -o $@
201 AM_V_P = $(am__v_P_@AM_V@)
202 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
203 am__v_P_0 = false
204 am__v_P_1 = :
205 AM_V_GEN = $(am__v_GEN_@AM_V@)
206 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
207 am__v_GEN_0 = @echo " GEN " $@;
208 am__v_GEN_1 =
209 AM_V_at = $(am__v_at_@AM_V@)
210 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
211 am__v_at_0 = @
212 am__v_at_1 =
95213 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
96 depcomp = $(SHELL) $(top_srcdir)/depcomp
214 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
97215 am__depfiles_maybe = depfiles
98216 am__mv = mv -f
99217 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
102220 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
103221 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
104222 $(AM_CFLAGS) $(CFLAGS)
105 AM_V_CC = $(am__v_CC_$(V))
106 am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
107 am__v_CC_0 = @echo " CC " $@;
108 AM_V_at = $(am__v_at_$(V))
109 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
110 am__v_at_0 = @
223 AM_V_CC = $(am__v_CC_@AM_V@)
224 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
225 am__v_CC_0 = @echo " CC " $@;
226 am__v_CC_1 =
111227 CCLD = $(CC)
112228 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
113229 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
114230 $(AM_LDFLAGS) $(LDFLAGS) -o $@
115 AM_V_CCLD = $(am__v_CCLD_$(V))
116 am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
117 am__v_CCLD_0 = @echo " CCLD " $@;
118 AM_V_GEN = $(am__v_GEN_$(V))
119 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
120 am__v_GEN_0 = @echo " GEN " $@;
121 SOURCES = $(virt_viewer_SOURCES)
122 DIST_SOURCES = $(am__virt_viewer_SOURCES_DIST)
231 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
232 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
233 am__v_CCLD_0 = @echo " CCLD " $@;
234 am__v_CCLD_1 =
235 SOURCES = $(remote_viewer_SOURCES) $(virt_viewer_SOURCES) \
236 $(windows_cmdline_wrapper_SOURCES)
237 DIST_SOURCES = $(am__remote_viewer_SOURCES_DIST) \
238 $(am__virt_viewer_SOURCES_DIST) \
239 $(am__windows_cmdline_wrapper_SOURCES_DIST)
240 am__can_run_installinfo = \
241 case $$AM_UPDATE_INFO_DIR in \
242 n|no|NO) false;; \
243 *) (install-info --version) >/dev/null 2>&1;; \
244 esac
123245 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
124246 am__vpath_adj = case $$p in \
125247 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
141263 am__base_list = \
142264 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
143265 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
144 DATA = $(builderxml_DATA)
266 am__uninstall_files_from_dir = { \
267 test -z "$$files" \
268 || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
269 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
270 $(am__cd) "$$dir" && rm -f $$files; }; \
271 }
272 DATA = $(builderxml_DATA) $(desktop_DATA)
145273 ETAGS = etags
146274 CTAGS = ctags
147275 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
154282 AUTOHEADER = @AUTOHEADER@
155283 AUTOMAKE = @AUTOMAKE@
156284 AWK = @AWK@
285 CATALOGS = @CATALOGS@
286 CATOBJEXT = @CATOBJEXT@
157287 CC = @CC@
158288 CCDEPMODE = @CCDEPMODE@
159289 CFLAGS = @CFLAGS@
177307 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
178308 GLIB2_CFLAGS = @GLIB2_CFLAGS@
179309 GLIB2_LIBS = @GLIB2_LIBS@
310 GLIB_MKENUMS = @GLIB_MKENUMS@
311 GMOFILES = @GMOFILES@
180312 GMSGFMT = @GMSGFMT@
181313 GREP = @GREP@
182314 GTK_API_VERSION = @GTK_API_VERSION@
186318 GTK_VNC_API_VERSION = @GTK_VNC_API_VERSION@
187319 GTK_VNC_CFLAGS = @GTK_VNC_CFLAGS@
188320 GTK_VNC_LIBS = @GTK_VNC_LIBS@
321 ICOTOOL = @ICOTOOL@
189322 INSTALL = @INSTALL@
190323 INSTALL_DATA = @INSTALL_DATA@
191324 INSTALL_PROGRAM = @INSTALL_PROGRAM@
192325 INSTALL_SCRIPT = @INSTALL_SCRIPT@
193326 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
327 INSTOBJEXT = @INSTOBJEXT@
328 INTLLIBS = @INTLLIBS@
194329 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
195330 INTLTOOL_MERGE = @INTLTOOL_MERGE@
196331 INTLTOOL_PERL = @INTLTOOL_PERL@
197332 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
333 INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
334 INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
335 INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
336 INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
198337 LD = @LD@
199338 LDFLAGS = @LDFLAGS@
200339 LIBOBJS = @LIBOBJS@
210349 MAKEINFO = @MAKEINFO@
211350 MANIFEST_TOOL = @MANIFEST_TOOL@
212351 MKDIR_P = @MKDIR_P@
352 MKINSTALLDIRS = @MKINSTALLDIRS@
213353 MOZILLA_PLUGIN_CFLAGS = @MOZILLA_PLUGIN_CFLAGS@
214354 MOZILLA_PLUGIN_LIBS = @MOZILLA_PLUGIN_LIBS@
215355 MSGFMT = @MSGFMT@
356 MSGFMT_OPTS = @MSGFMT_OPTS@
216357 MSGMERGE = @MSGMERGE@
217358 NM = @NM@
218359 NMEDIT = @NMEDIT@
233374 PKG_CONFIG = @PKG_CONFIG@
234375 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
235376 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
377 POFILES = @POFILES@
378 POSUB = @POSUB@
379 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
380 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
236381 RANLIB = @RANLIB@
237382 SED = @SED@
238383 SET_MAKE = @SET_MAKE@
239384 SHELL = @SHELL@
385 SPICE_CONTROLLER_CFLAGS = @SPICE_CONTROLLER_CFLAGS@
386 SPICE_CONTROLLER_LIBS = @SPICE_CONTROLLER_LIBS@
240387 SPICE_GTK_CFLAGS = @SPICE_GTK_CFLAGS@
241388 SPICE_GTK_LIBS = @SPICE_GTK_LIBS@
389 SPICE_PROTOCOL_CFLAGS = @SPICE_PROTOCOL_CFLAGS@
390 SPICE_PROTOCOL_LIBS = @SPICE_PROTOCOL_LIBS@
242391 STRIP = @STRIP@
243392 USE_NLS = @USE_NLS@
244393 VERSION = @VERSION@
245394 WARN_CFLAGS = @WARN_CFLAGS@
395 WINDRES = @WINDRES@
246396 XGETTEXT = @XGETTEXT@
247397 abs_builddir = @abs_builddir@
248398 abs_srcdir = @abs_srcdir@
277427 includedir = @includedir@
278428 infodir = @infodir@
279429 install_sh = @install_sh@
430 intltool__v_merge_options_ = @intltool__v_merge_options_@
431 intltool__v_merge_options_0 = @intltool__v_merge_options_0@
280432 libdir = @libdir@
281433 libexecdir = @libexecdir@
282434 localedir = @localedir@
296448 top_build_prefix = @top_build_prefix@
297449 top_builddir = @top_builddir@
298450 top_srcdir = @top_srcdir@
451 NULL =
452 LDADD = $(am__append_14)
453 MAINTAINERCLEANFILES = $(am__append_15)
299454 builderxmldir = $(pkgdatadir)/ui
300455 builderxml_DATA = \
301 virt-viewer.xml \
302 virt-viewer-about.xml \
303 virt-viewer-auth.xml
304
305 EXTRA_DIST = $(builderxml_DATA)
306 virt_viewer_SOURCES = virt-viewer-main.c virt-viewer.h virt-viewer.c \
456 virt-viewer.xml \
457 virt-viewer-about.xml \
458 virt-viewer-auth.xml \
459 $(NULL)
460
461 EXTRA_DIST = $(builderxml_DATA) virt-viewer-enums.c.etemplate \
462 virt-viewer-enums.h.etemplate gbinding.c gbinding.h $(NULL) \
463 $(desktop_DATA) $(VIRT_VIEWER_RES)
464 ENUMS_FILES = \
465 virt-viewer-display.h \
466 $(NULL)
467
468 BUILT_SOURCES = \
469 virt-viewer-enums.h \
470 virt-viewer-enums.c \
471 $(NULL)
472
473 COMMON_SOURCES = $(BUILT_SOURCES) virt-glib-compat.h virt-gtk-compat.h \
307474 virt-viewer-util.h virt-viewer-util.c virt-viewer-auth.h \
308 virt-viewer-auth.c virt-viewer-events.h virt-viewer-events.c \
309 virt-viewer-app.h virt-viewer-app.c virt-viewer-session.h \
310 virt-viewer-session.c virt-viewer-session-vnc.h \
311 virt-viewer-session-vnc.c virt-viewer-display.h \
312 virt-viewer-display.c virt-viewer-display-vnc.h \
313 virt-viewer-display-vnc.c virt-viewer-notebook.h \
314 virt-viewer-notebook.c virt-viewer-window.h \
315 virt-viewer-window.c view/autoDrawer.c view/autoDrawer.h \
316 view/drawer.c view/drawer.h view/ovBox.c view/ovBox.h \
317 $(am__append_1)
318 virt_viewer_LDADD = \
319 @GTK_VNC_LIBS@ \
320 @SPICE_GTK_LIBS@ \
321 @GLIB2_LIBS@ \
322 @GTK_LIBS@ \
323 @LIBXML2_LIBS@ \
324 @LIBVIRT_LIBS@
325
326 virt_viewer_CFLAGS = \
327 @GTK_VNC_CFLAGS@ \
328 @SPICE_GTK_CFLAGS@ \
329 @GLIB2_CFLAGS@ \
330 @GTK_CFLAGS@ \
331 @LIBXML2_CFLAGS@ \
332 @LIBVIRT_CFLAGS@ \
333 @WARN_CFLAGS@ \
334 -DBUILDER_XML_DIR="\"$(builderxmldir)\"" \
335 -DLOCALE_DIR=\""$(datadir)/locale"\"
336
337 all: all-am
475 virt-viewer-auth.c virt-viewer-app.h virt-viewer-app.c \
476 virt-viewer-session.h virt-viewer-session.c \
477 virt-viewer-display.h virt-viewer-display.c \
478 virt-viewer-notebook.h virt-viewer-notebook.c \
479 virt-viewer-window.h virt-viewer-window.c view/autoDrawer.c \
480 view/autoDrawer.h view/drawer.c view/drawer.h view/ovBox.c \
481 view/ovBox.h $(NULL) $(am__append_1) $(am__append_2)
482 @HAVE_LIBVIRT_TRUE@virt_viewer_SOURCES = \
483 @HAVE_LIBVIRT_TRUE@ $(COMMON_SOURCES) \
484 @HAVE_LIBVIRT_TRUE@ virt-viewer-events.h virt-viewer-events.c \
485 @HAVE_LIBVIRT_TRUE@ virt-viewer.h virt-viewer.c \
486 @HAVE_LIBVIRT_TRUE@ virt-viewer-main.c \
487 @HAVE_LIBVIRT_TRUE@ $(NULL)
488
489 @HAVE_LIBVIRT_TRUE@virt_viewer_LDFLAGS = -lm $(GLIB2_LIBS) $(GTK_LIBS) \
490 @HAVE_LIBVIRT_TRUE@ $(LIBXML2_LIBS) $(LIBVIRT_LIBS) $(NULL) \
491 @HAVE_LIBVIRT_TRUE@ $(am__append_4) $(am__append_6)
492 @HAVE_LIBVIRT_TRUE@virt_viewer_CFLAGS = \
493 @HAVE_LIBVIRT_TRUE@ -DLOCALE_DIR=\""$(datadir)/locale"\" \
494 @HAVE_LIBVIRT_TRUE@ -DG_LOG_DOMAIN=\"virt-viewer\" \
495 @HAVE_LIBVIRT_TRUE@ $(GLIB2_CFLAGS) $(GTK_CFLAGS) \
496 @HAVE_LIBVIRT_TRUE@ $(LIBXML2_CFLAGS) $(LIBVIRT_CFLAGS) \
497 @HAVE_LIBVIRT_TRUE@ $(WARN_CFLAGS) $(NULL) $(am__append_5) \
498 @HAVE_LIBVIRT_TRUE@ $(am__append_7)
499 remote_viewer_SOURCES = \
500 $(COMMON_SOURCES) \
501 remote-viewer.h remote-viewer.c \
502 remote-viewer-main.c \
503 $(NULL)
504
505 remote_viewer_LDFLAGS = -lm $(GLIB2_LIBS) $(GTK_LIBS) $(LIBXML2_LIBS) \
506 $(NULL) $(am__append_8) $(am__append_10) $(am__append_12)
507 remote_viewer_CFLAGS = -DLOCALE_DIR=\""$(datadir)/locale"\" \
508 -DG_LOG_DOMAIN=\"remote-viewer\" $(GLIB2_CFLAGS) $(GTK_CFLAGS) \
509 $(LIBXML2_CFLAGS) $(WARN_CFLAGS) $(NULL) $(am__append_9) \
510 $(am__append_11)
511 desktopdir = $(datadir)/applications
512 desktop_DATA = remote-viewer.desktop
513 VIRT_VIEWER_RES = virt-viewer.rc virt-viewer.manifest
514 ICONDIR = $(top_builddir)/icons
515 MANIFESTDIR = $(srcdir)
516 @OS_WIN32_TRUE@windows_cmdline_wrapper_SOURCES = windows-cmdline-wrapper.c
517 @OS_WIN32_TRUE@windows_cmdline_wrapper_LDFLAGS = -lpsapi
518 all: $(BUILT_SOURCES)
519 $(MAKE) $(AM_MAKEFLAGS) all-am
338520
339521 .SUFFIXES:
340522 .SUFFIXES: .c .lo .o .obj
368550 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
369551 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
370552 $(am__aclocal_m4_deps):
553 virt-viewer.rc: $(top_builddir)/config.status $(srcdir)/virt-viewer.rc.in
554 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
371555 install-binPROGRAMS: $(bin_PROGRAMS)
372556 @$(NORMAL_INSTALL)
373 test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
374557 @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
558 if test -n "$$list"; then \
559 echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
560 $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
561 fi; \
375562 for p in $$list; do echo "$$p $$p"; done | \
376563 sed 's/$(EXEEXT)$$//' | \
377564 while read p p1; do if test -f $$p || test -f $$p1; \
411598 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
412599 echo " rm -f" $$list; \
413600 rm -f $$list
414 virt-viewer$(EXEEXT): $(virt_viewer_OBJECTS) $(virt_viewer_DEPENDENCIES)
601 remote-viewer$(EXEEXT): $(remote_viewer_OBJECTS) $(remote_viewer_DEPENDENCIES) $(EXTRA_remote_viewer_DEPENDENCIES)
602 @rm -f remote-viewer$(EXEEXT)
603 $(AM_V_CCLD)$(remote_viewer_LINK) $(remote_viewer_OBJECTS) $(remote_viewer_LDADD) $(LIBS)
604 virt-viewer$(EXEEXT): $(virt_viewer_OBJECTS) $(virt_viewer_DEPENDENCIES) $(EXTRA_virt_viewer_DEPENDENCIES)
415605 @rm -f virt-viewer$(EXEEXT)
416606 $(AM_V_CCLD)$(virt_viewer_LINK) $(virt_viewer_OBJECTS) $(virt_viewer_LDADD) $(LIBS)
607 windows-cmdline-wrapper$(EXEEXT): $(windows_cmdline_wrapper_OBJECTS) $(windows_cmdline_wrapper_DEPENDENCIES) $(EXTRA_windows_cmdline_wrapper_DEPENDENCIES)
608 @rm -f windows-cmdline-wrapper$(EXEEXT)
609 $(AM_V_CCLD)$(windows_cmdline_wrapper_LINK) $(windows_cmdline_wrapper_OBJECTS) $(windows_cmdline_wrapper_LDADD) $(LIBS)
417610
418611 mostlyclean-compile:
419612 -rm -f *.$(OBJEXT)
421614 distclean-compile:
422615 -rm -f *.tab.c
423616
617 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-autoDrawer.Po@am__quote@
618 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-drawer.Po@am__quote@
619 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-ovBox.Po@am__quote@
620 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer-main.Po@am__quote@
621 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-remote-viewer.Po@am__quote@
622 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-app.Po@am__quote@
623 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-auth.Po@am__quote@
624 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-display-spice.Po@am__quote@
625 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Po@am__quote@
626 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-display.Po@am__quote@
627 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-enums.Po@am__quote@
628 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-notebook.Po@am__quote@
629 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-session-spice.Po@am__quote@
630 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Po@am__quote@
631 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-session.Po@am__quote@
632 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-util.Po@am__quote@
633 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote_viewer-virt-viewer-window.Po@am__quote@
424634 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-autoDrawer.Po@am__quote@
425635 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-drawer.Po@am__quote@
426636 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-ovBox.Po@am__quote@
429639 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po@am__quote@
430640 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po@am__quote@
431641 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-display.Po@am__quote@
642 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-enums.Po@am__quote@
432643 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-events.Po@am__quote@
433644 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-main.Po@am__quote@
434645 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-notebook.Po@am__quote@
438649 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-util.Po@am__quote@
439650 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer-window.Po@am__quote@
440651 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virt_viewer-virt-viewer.Po@am__quote@
652 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows-cmdline-wrapper.Po@am__quote@
441653
442654 .c.o:
443655 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
444656 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
445 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
446 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
447 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
448 @am__fastdepCC_FALSE@ $(COMPILE) -c $<
657 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
658 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
659 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
449660
450661 .c.obj:
451662 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
452663 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
453 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
454 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
455 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
456 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
664 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
665 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
666 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
457667
458668 .c.lo:
459669 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
460670 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
461 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
462 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
463 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
464 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
671 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
672 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
673 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
674
675 remote_viewer-virt-viewer-enums.o: virt-viewer-enums.c
676 @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
677 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-enums.Tpo $(DEPDIR)/remote_viewer-virt-viewer-enums.Po
678 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='remote_viewer-virt-viewer-enums.o' libtool=no @AMDEPBACKSLASH@
679 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
680 @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
681
682 remote_viewer-virt-viewer-enums.obj: virt-viewer-enums.c
683 @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`
684 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-enums.Tpo $(DEPDIR)/remote_viewer-virt-viewer-enums.Po
685 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='remote_viewer-virt-viewer-enums.obj' libtool=no @AMDEPBACKSLASH@
686 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
687 @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`
688
689 remote_viewer-virt-viewer-util.o: virt-viewer-util.c
690 @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
691 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-util.Tpo $(DEPDIR)/remote_viewer-virt-viewer-util.Po
692 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='remote_viewer-virt-viewer-util.o' libtool=no @AMDEPBACKSLASH@
693 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
694 @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
695
696 remote_viewer-virt-viewer-util.obj: virt-viewer-util.c
697 @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`
698 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-util.Tpo $(DEPDIR)/remote_viewer-virt-viewer-util.Po
699 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='remote_viewer-virt-viewer-util.obj' libtool=no @AMDEPBACKSLASH@
700 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
701 @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`
702
703 remote_viewer-virt-viewer-auth.o: virt-viewer-auth.c
704 @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
705 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-auth.Tpo $(DEPDIR)/remote_viewer-virt-viewer-auth.Po
706 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='remote_viewer-virt-viewer-auth.o' libtool=no @AMDEPBACKSLASH@
707 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
708 @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
709
710 remote_viewer-virt-viewer-auth.obj: virt-viewer-auth.c
711 @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`
712 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-auth.Tpo $(DEPDIR)/remote_viewer-virt-viewer-auth.Po
713 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='remote_viewer-virt-viewer-auth.obj' libtool=no @AMDEPBACKSLASH@
714 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
715 @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`
716
717 remote_viewer-virt-viewer-app.o: virt-viewer-app.c
718 @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
719 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-app.Tpo $(DEPDIR)/remote_viewer-virt-viewer-app.Po
720 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='remote_viewer-virt-viewer-app.o' libtool=no @AMDEPBACKSLASH@
721 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
722 @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
723
724 remote_viewer-virt-viewer-app.obj: virt-viewer-app.c
725 @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`
726 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-app.Tpo $(DEPDIR)/remote_viewer-virt-viewer-app.Po
727 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='remote_viewer-virt-viewer-app.obj' libtool=no @AMDEPBACKSLASH@
728 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
729 @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`
730
731 remote_viewer-virt-viewer-session.o: virt-viewer-session.c
732 @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
733 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session.Po
734 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='remote_viewer-virt-viewer-session.o' libtool=no @AMDEPBACKSLASH@
735 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
736 @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
737
738 remote_viewer-virt-viewer-session.obj: virt-viewer-session.c
739 @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`
740 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session.Po
741 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='remote_viewer-virt-viewer-session.obj' libtool=no @AMDEPBACKSLASH@
742 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
743 @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`
744
745 remote_viewer-virt-viewer-display.o: virt-viewer-display.c
746 @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
747 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display.Po
748 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='remote_viewer-virt-viewer-display.o' libtool=no @AMDEPBACKSLASH@
749 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
750 @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
751
752 remote_viewer-virt-viewer-display.obj: virt-viewer-display.c
753 @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`
754 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display.Po
755 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='remote_viewer-virt-viewer-display.obj' libtool=no @AMDEPBACKSLASH@
756 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
757 @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`
758
759 remote_viewer-virt-viewer-notebook.o: virt-viewer-notebook.c
760 @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
761 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/remote_viewer-virt-viewer-notebook.Po
762 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='remote_viewer-virt-viewer-notebook.o' libtool=no @AMDEPBACKSLASH@
763 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
764 @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
765
766 remote_viewer-virt-viewer-notebook.obj: virt-viewer-notebook.c
767 @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`
768 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/remote_viewer-virt-viewer-notebook.Po
769 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='remote_viewer-virt-viewer-notebook.obj' libtool=no @AMDEPBACKSLASH@
770 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
771 @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`
772
773 remote_viewer-virt-viewer-window.o: virt-viewer-window.c
774 @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
775 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-window.Tpo $(DEPDIR)/remote_viewer-virt-viewer-window.Po
776 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='remote_viewer-virt-viewer-window.o' libtool=no @AMDEPBACKSLASH@
777 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
778 @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
779
780 remote_viewer-virt-viewer-window.obj: virt-viewer-window.c
781 @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`
782 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-window.Tpo $(DEPDIR)/remote_viewer-virt-viewer-window.Po
783 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='remote_viewer-virt-viewer-window.obj' libtool=no @AMDEPBACKSLASH@
784 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
785 @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`
786
787 remote_viewer-autoDrawer.o: view/autoDrawer.c
788 @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
789 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-autoDrawer.Tpo $(DEPDIR)/remote_viewer-autoDrawer.Po
790 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='remote_viewer-autoDrawer.o' libtool=no @AMDEPBACKSLASH@
791 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
792 @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
793
794 remote_viewer-autoDrawer.obj: view/autoDrawer.c
795 @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`
796 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-autoDrawer.Tpo $(DEPDIR)/remote_viewer-autoDrawer.Po
797 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='remote_viewer-autoDrawer.obj' libtool=no @AMDEPBACKSLASH@
798 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
799 @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`
800
801 remote_viewer-drawer.o: view/drawer.c
802 @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
803 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-drawer.Tpo $(DEPDIR)/remote_viewer-drawer.Po
804 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='remote_viewer-drawer.o' libtool=no @AMDEPBACKSLASH@
805 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
806 @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
807
808 remote_viewer-drawer.obj: view/drawer.c
809 @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`
810 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-drawer.Tpo $(DEPDIR)/remote_viewer-drawer.Po
811 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='remote_viewer-drawer.obj' libtool=no @AMDEPBACKSLASH@
812 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
813 @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`
814
815 remote_viewer-ovBox.o: view/ovBox.c
816 @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
817 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-ovBox.Tpo $(DEPDIR)/remote_viewer-ovBox.Po
818 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='remote_viewer-ovBox.o' libtool=no @AMDEPBACKSLASH@
819 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
820 @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
821
822 remote_viewer-ovBox.obj: view/ovBox.c
823 @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`
824 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-ovBox.Tpo $(DEPDIR)/remote_viewer-ovBox.Po
825 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='remote_viewer-ovBox.obj' libtool=no @AMDEPBACKSLASH@
826 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
827 @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`
828
829 remote_viewer-virt-viewer-session-vnc.o: virt-viewer-session-vnc.c
830 @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
831 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Po
832 @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@
833 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
834 @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
835
836 remote_viewer-virt-viewer-session-vnc.obj: virt-viewer-session-vnc.c
837 @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`
838 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-vnc.Po
839 @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@
840 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
841 @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`
842
843 remote_viewer-virt-viewer-display-vnc.o: virt-viewer-display-vnc.c
844 @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
845 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Po
846 @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@
847 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
848 @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
849
850 remote_viewer-virt-viewer-display-vnc.obj: virt-viewer-display-vnc.c
851 @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`
852 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-vnc.Po
853 @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@
854 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
855 @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`
856
857 remote_viewer-virt-viewer-session-spice.o: virt-viewer-session-spice.c
858 @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
859 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Po
860 @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@
861 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
862 @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
863
864 remote_viewer-virt-viewer-session-spice.obj: virt-viewer-session-spice.c
865 @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`
866 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-session-spice.Po
867 @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@
868 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
869 @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`
870
871 remote_viewer-virt-viewer-display-spice.o: virt-viewer-display-spice.c
872 @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
873 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Po
874 @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@
875 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
876 @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
877
878 remote_viewer-virt-viewer-display-spice.obj: virt-viewer-display-spice.c
879 @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`
880 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/remote_viewer-virt-viewer-display-spice.Po
881 @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@
882 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
883 @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`
884
885 remote_viewer-remote-viewer.o: remote-viewer.c
886 @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
887 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer.Tpo $(DEPDIR)/remote_viewer-remote-viewer.Po
888 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer.c' object='remote_viewer-remote-viewer.o' libtool=no @AMDEPBACKSLASH@
889 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
890 @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
891
892 remote_viewer-remote-viewer.obj: remote-viewer.c
893 @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`
894 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer.Tpo $(DEPDIR)/remote_viewer-remote-viewer.Po
895 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer.c' object='remote_viewer-remote-viewer.obj' libtool=no @AMDEPBACKSLASH@
896 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
897 @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`
898
899 remote_viewer-remote-viewer-main.o: remote-viewer-main.c
900 @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
901 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer-main.Tpo $(DEPDIR)/remote_viewer-remote-viewer-main.Po
902 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer-main.c' object='remote_viewer-remote-viewer-main.o' libtool=no @AMDEPBACKSLASH@
903 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
904 @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
905
906 remote_viewer-remote-viewer-main.obj: remote-viewer-main.c
907 @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`
908 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/remote_viewer-remote-viewer-main.Tpo $(DEPDIR)/remote_viewer-remote-viewer-main.Po
909 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='remote-viewer-main.c' object='remote_viewer-remote-viewer-main.obj' libtool=no @AMDEPBACKSLASH@
910 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
911 @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`
912
913 virt_viewer-virt-viewer-enums.o: virt-viewer-enums.c
914 @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
915 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-enums.Tpo $(DEPDIR)/virt_viewer-virt-viewer-enums.Po
916 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='virt_viewer-virt-viewer-enums.o' libtool=no @AMDEPBACKSLASH@
917 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
918 @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
919
920 virt_viewer-virt-viewer-enums.obj: virt-viewer-enums.c
921 @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`
922 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-enums.Tpo $(DEPDIR)/virt_viewer-virt-viewer-enums.Po
923 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-enums.c' object='virt_viewer-virt-viewer-enums.obj' libtool=no @AMDEPBACKSLASH@
924 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
925 @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`
926
927 virt_viewer-virt-viewer-util.o: virt-viewer-util.c
928 @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
929 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po
930 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.o' libtool=no @AMDEPBACKSLASH@
931 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
932 @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
933
934 virt_viewer-virt-viewer-util.obj: virt-viewer-util.c
935 @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`
936 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po
937 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.obj' libtool=no @AMDEPBACKSLASH@
938 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
939 @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`
940
941 virt_viewer-virt-viewer-auth.o: virt-viewer-auth.c
942 @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
943 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po
944 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.o' libtool=no @AMDEPBACKSLASH@
945 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
946 @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
947
948 virt_viewer-virt-viewer-auth.obj: virt-viewer-auth.c
949 @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`
950 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po
951 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.obj' libtool=no @AMDEPBACKSLASH@
952 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
953 @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`
954
955 virt_viewer-virt-viewer-app.o: virt-viewer-app.c
956 @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
957 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po
958 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.o' libtool=no @AMDEPBACKSLASH@
959 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
960 @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
961
962 virt_viewer-virt-viewer-app.obj: virt-viewer-app.c
963 @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`
964 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po
965 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.obj' libtool=no @AMDEPBACKSLASH@
966 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
967 @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`
968
969 virt_viewer-virt-viewer-session.o: virt-viewer-session.c
970 @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
971 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po
972 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.o' libtool=no @AMDEPBACKSLASH@
973 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
974 @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
975
976 virt_viewer-virt-viewer-session.obj: virt-viewer-session.c
977 @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`
978 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po
979 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.obj' libtool=no @AMDEPBACKSLASH@
980 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
981 @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`
982
983 virt_viewer-virt-viewer-display.o: virt-viewer-display.c
984 @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
985 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po
986 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.o' libtool=no @AMDEPBACKSLASH@
987 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
988 @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
989
990 virt_viewer-virt-viewer-display.obj: virt-viewer-display.c
991 @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`
992 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po
993 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.obj' libtool=no @AMDEPBACKSLASH@
994 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
995 @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`
996
997 virt_viewer-virt-viewer-notebook.o: virt-viewer-notebook.c
998 @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
999 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po
1000 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.o' libtool=no @AMDEPBACKSLASH@
1001 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1002 @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
1003
1004 virt_viewer-virt-viewer-notebook.obj: virt-viewer-notebook.c
1005 @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`
1006 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po
1007 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.obj' libtool=no @AMDEPBACKSLASH@
1008 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1009 @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`
1010
1011 virt_viewer-virt-viewer-window.o: virt-viewer-window.c
1012 @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
1013 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po
1014 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.o' libtool=no @AMDEPBACKSLASH@
1015 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1016 @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
1017
1018 virt_viewer-virt-viewer-window.obj: virt-viewer-window.c
1019 @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`
1020 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po
1021 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.obj' libtool=no @AMDEPBACKSLASH@
1022 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1023 @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`
1024
1025 virt_viewer-autoDrawer.o: view/autoDrawer.c
1026 @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
1027 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po
1028 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='virt_viewer-autoDrawer.o' libtool=no @AMDEPBACKSLASH@
1029 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1030 @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
1031
1032 virt_viewer-autoDrawer.obj: view/autoDrawer.c
1033 @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`
1034 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po
1035 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/autoDrawer.c' object='virt_viewer-autoDrawer.obj' libtool=no @AMDEPBACKSLASH@
1036 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1037 @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`
1038
1039 virt_viewer-drawer.o: view/drawer.c
1040 @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
1041 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po
1042 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='virt_viewer-drawer.o' libtool=no @AMDEPBACKSLASH@
1043 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1044 @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
1045
1046 virt_viewer-drawer.obj: view/drawer.c
1047 @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`
1048 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po
1049 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/drawer.c' object='virt_viewer-drawer.obj' libtool=no @AMDEPBACKSLASH@
1050 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1051 @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`
1052
1053 virt_viewer-ovBox.o: view/ovBox.c
1054 @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
1055 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po
1056 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='virt_viewer-ovBox.o' libtool=no @AMDEPBACKSLASH@
1057 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1058 @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
1059
1060 virt_viewer-ovBox.obj: view/ovBox.c
1061 @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`
1062 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po
1063 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view/ovBox.c' object='virt_viewer-ovBox.obj' libtool=no @AMDEPBACKSLASH@
1064 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1065 @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`
1066
1067 virt_viewer-virt-viewer-session-vnc.o: virt-viewer-session-vnc.c
1068 @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
1069 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po
1070 @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@
1071 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1072 @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
1073
1074 virt_viewer-virt-viewer-session-vnc.obj: virt-viewer-session-vnc.c
1075 @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`
1076 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po
1077 @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@
1078 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1079 @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`
1080
1081 virt_viewer-virt-viewer-display-vnc.o: virt-viewer-display-vnc.c
1082 @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
1083 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po
1084 @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@
1085 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1086 @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
1087
1088 virt_viewer-virt-viewer-display-vnc.obj: virt-viewer-display-vnc.c
1089 @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`
1090 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po
1091 @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@
1092 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1093 @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`
1094
1095 virt_viewer-virt-viewer-session-spice.o: virt-viewer-session-spice.c
1096 @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
1097 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po
1098 @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@
1099 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1100 @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
1101
1102 virt_viewer-virt-viewer-session-spice.obj: virt-viewer-session-spice.c
1103 @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`
1104 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po
1105 @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@
1106 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1107 @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`
1108
1109 virt_viewer-virt-viewer-display-spice.o: virt-viewer-display-spice.c
1110 @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
1111 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po
1112 @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@
1113 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1114 @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
1115
1116 virt_viewer-virt-viewer-display-spice.obj: virt-viewer-display-spice.c
1117 @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`
1118 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po
1119 @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@
1120 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1121 @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`
1122
1123 virt_viewer-virt-viewer-events.o: virt-viewer-events.c
1124 @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
1125 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po
1126 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.o' libtool=no @AMDEPBACKSLASH@
1127 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1128 @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
1129
1130 virt_viewer-virt-viewer-events.obj: virt-viewer-events.c
1131 @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`
1132 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po
1133 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.obj' libtool=no @AMDEPBACKSLASH@
1134 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1135 @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`
1136
1137 virt_viewer-virt-viewer.o: virt-viewer.c
1138 @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
1139 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po
1140 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer.c' object='virt_viewer-virt-viewer.o' libtool=no @AMDEPBACKSLASH@
1141 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1142 @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
1143
1144 virt_viewer-virt-viewer.obj: virt-viewer.c
1145 @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`
1146 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po
1147 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer.c' object='virt_viewer-virt-viewer.obj' libtool=no @AMDEPBACKSLASH@
1148 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1149 @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`
4651150
4661151 virt_viewer-virt-viewer-main.o: virt-viewer-main.c
4671152 @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
4681153 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-main.Tpo $(DEPDIR)/virt_viewer-virt-viewer-main.Po
469 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
470 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.o' libtool=no @AMDEPBACKSLASH@
471 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
472 @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
1154 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.o' libtool=no @AMDEPBACKSLASH@
1155 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1156 @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
4731157
4741158 virt_viewer-virt-viewer-main.obj: virt-viewer-main.c
4751159 @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`
4761160 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-main.Tpo $(DEPDIR)/virt_viewer-virt-viewer-main.Po
477 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
478 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.obj' libtool=no @AMDEPBACKSLASH@
479 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
480 @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`
481
482 virt_viewer-virt-viewer.o: virt-viewer.c
483 @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
484 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po
485 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
486 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer.c' object='virt_viewer-virt-viewer.o' libtool=no @AMDEPBACKSLASH@
487 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
488 @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
489
490 virt_viewer-virt-viewer.obj: virt-viewer.c
491 @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`
492 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer.Tpo $(DEPDIR)/virt_viewer-virt-viewer.Po
493 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
494 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer.c' object='virt_viewer-virt-viewer.obj' libtool=no @AMDEPBACKSLASH@
495 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
496 @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`
497
498 virt_viewer-virt-viewer-util.o: virt-viewer-util.c
499 @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
500 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po
501 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
502 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.o' libtool=no @AMDEPBACKSLASH@
503 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
504 @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
505
506 virt_viewer-virt-viewer-util.obj: virt-viewer-util.c
507 @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`
508 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-util.Tpo $(DEPDIR)/virt_viewer-virt-viewer-util.Po
509 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
510 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-util.c' object='virt_viewer-virt-viewer-util.obj' libtool=no @AMDEPBACKSLASH@
511 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
512 @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`
513
514 virt_viewer-virt-viewer-auth.o: virt-viewer-auth.c
515 @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
516 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po
517 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
518 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.o' libtool=no @AMDEPBACKSLASH@
519 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
520 @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
521
522 virt_viewer-virt-viewer-auth.obj: virt-viewer-auth.c
523 @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`
524 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-auth.Tpo $(DEPDIR)/virt_viewer-virt-viewer-auth.Po
525 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
526 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-auth.c' object='virt_viewer-virt-viewer-auth.obj' libtool=no @AMDEPBACKSLASH@
527 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
528 @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`
529
530 virt_viewer-virt-viewer-events.o: virt-viewer-events.c
531 @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
532 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po
533 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
534 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.o' libtool=no @AMDEPBACKSLASH@
535 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
536 @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
537
538 virt_viewer-virt-viewer-events.obj: virt-viewer-events.c
539 @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`
540 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-events.Tpo $(DEPDIR)/virt_viewer-virt-viewer-events.Po
541 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
542 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-events.c' object='virt_viewer-virt-viewer-events.obj' libtool=no @AMDEPBACKSLASH@
543 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
544 @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`
545
546 virt_viewer-virt-viewer-app.o: virt-viewer-app.c
547 @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
548 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po
549 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
550 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.o' libtool=no @AMDEPBACKSLASH@
551 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
552 @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
553
554 virt_viewer-virt-viewer-app.obj: virt-viewer-app.c
555 @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`
556 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-app.Tpo $(DEPDIR)/virt_viewer-virt-viewer-app.Po
557 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
558 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-app.c' object='virt_viewer-virt-viewer-app.obj' libtool=no @AMDEPBACKSLASH@
559 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
560 @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`
561
562 virt_viewer-virt-viewer-session.o: virt-viewer-session.c
563 @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
564 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po
565 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
566 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.o' libtool=no @AMDEPBACKSLASH@
567 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
568 @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
569
570 virt_viewer-virt-viewer-session.obj: virt-viewer-session.c
571 @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`
572 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session.Po
573 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
574 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session.c' object='virt_viewer-virt-viewer-session.obj' libtool=no @AMDEPBACKSLASH@
575 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
576 @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`
577
578 virt_viewer-virt-viewer-session-vnc.o: virt-viewer-session-vnc.c
579 @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
580 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po
581 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
582 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-vnc.c' object='virt_viewer-virt-viewer-session-vnc.o' libtool=no @AMDEPBACKSLASH@
583 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
584 @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
585
586 virt_viewer-virt-viewer-session-vnc.obj: virt-viewer-session-vnc.c
587 @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`
588 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-vnc.Po
589 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
590 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-vnc.c' object='virt_viewer-virt-viewer-session-vnc.obj' libtool=no @AMDEPBACKSLASH@
591 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
592 @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`
593
594 virt_viewer-virt-viewer-display.o: virt-viewer-display.c
595 @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
596 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po
597 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
598 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.o' libtool=no @AMDEPBACKSLASH@
599 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
600 @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
601
602 virt_viewer-virt-viewer-display.obj: virt-viewer-display.c
603 @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`
604 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display.Po
605 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
606 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display.c' object='virt_viewer-virt-viewer-display.obj' libtool=no @AMDEPBACKSLASH@
607 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
608 @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`
609
610 virt_viewer-virt-viewer-display-vnc.o: virt-viewer-display-vnc.c
611 @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
612 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po
613 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
614 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-vnc.c' object='virt_viewer-virt-viewer-display-vnc.o' libtool=no @AMDEPBACKSLASH@
615 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
616 @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
617
618 virt_viewer-virt-viewer-display-vnc.obj: virt-viewer-display-vnc.c
619 @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`
620 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-vnc.Po
621 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
622 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-vnc.c' object='virt_viewer-virt-viewer-display-vnc.obj' libtool=no @AMDEPBACKSLASH@
623 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
624 @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`
625
626 virt_viewer-virt-viewer-notebook.o: virt-viewer-notebook.c
627 @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
628 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po
629 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
630 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.o' libtool=no @AMDEPBACKSLASH@
631 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
632 @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
633
634 virt_viewer-virt-viewer-notebook.obj: virt-viewer-notebook.c
635 @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`
636 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-notebook.Tpo $(DEPDIR)/virt_viewer-virt-viewer-notebook.Po
637 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
638 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-notebook.c' object='virt_viewer-virt-viewer-notebook.obj' libtool=no @AMDEPBACKSLASH@
639 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
640 @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`
641
642 virt_viewer-virt-viewer-window.o: virt-viewer-window.c
643 @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
644 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po
645 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
646 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.o' libtool=no @AMDEPBACKSLASH@
647 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
648 @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
649
650 virt_viewer-virt-viewer-window.obj: virt-viewer-window.c
651 @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`
652 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-window.Tpo $(DEPDIR)/virt_viewer-virt-viewer-window.Po
653 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
654 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-window.c' object='virt_viewer-virt-viewer-window.obj' libtool=no @AMDEPBACKSLASH@
655 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
656 @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`
657
658 virt_viewer-autoDrawer.o: view/autoDrawer.c
659 @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
660 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po
661 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
662 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/autoDrawer.c' object='virt_viewer-autoDrawer.o' libtool=no @AMDEPBACKSLASH@
663 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
664 @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
665
666 virt_viewer-autoDrawer.obj: view/autoDrawer.c
667 @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`
668 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-autoDrawer.Tpo $(DEPDIR)/virt_viewer-autoDrawer.Po
669 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
670 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/autoDrawer.c' object='virt_viewer-autoDrawer.obj' libtool=no @AMDEPBACKSLASH@
671 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
672 @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`
673
674 virt_viewer-drawer.o: view/drawer.c
675 @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
676 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po
677 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
678 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/drawer.c' object='virt_viewer-drawer.o' libtool=no @AMDEPBACKSLASH@
679 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
680 @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
681
682 virt_viewer-drawer.obj: view/drawer.c
683 @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`
684 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-drawer.Tpo $(DEPDIR)/virt_viewer-drawer.Po
685 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
686 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/drawer.c' object='virt_viewer-drawer.obj' libtool=no @AMDEPBACKSLASH@
687 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
688 @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`
689
690 virt_viewer-ovBox.o: view/ovBox.c
691 @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
692 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po
693 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
694 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/ovBox.c' object='virt_viewer-ovBox.o' libtool=no @AMDEPBACKSLASH@
695 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
696 @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
697
698 virt_viewer-ovBox.obj: view/ovBox.c
699 @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`
700 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-ovBox.Tpo $(DEPDIR)/virt_viewer-ovBox.Po
701 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
702 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='view/ovBox.c' object='virt_viewer-ovBox.obj' libtool=no @AMDEPBACKSLASH@
703 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
704 @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`
705
706 virt_viewer-virt-viewer-session-spice.o: virt-viewer-session-spice.c
707 @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
708 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po
709 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
710 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-spice.c' object='virt_viewer-virt-viewer-session-spice.o' libtool=no @AMDEPBACKSLASH@
711 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
712 @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
713
714 virt_viewer-virt-viewer-session-spice.obj: virt-viewer-session-spice.c
715 @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`
716 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-session-spice.Po
717 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
718 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-session-spice.c' object='virt_viewer-virt-viewer-session-spice.obj' libtool=no @AMDEPBACKSLASH@
719 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
720 @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`
721
722 virt_viewer-virt-viewer-display-spice.o: virt-viewer-display-spice.c
723 @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
724 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po
725 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
726 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-spice.c' object='virt_viewer-virt-viewer-display-spice.o' libtool=no @AMDEPBACKSLASH@
727 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
728 @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
729
730 virt_viewer-virt-viewer-display-spice.obj: virt-viewer-display-spice.c
731 @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`
732 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Tpo $(DEPDIR)/virt_viewer-virt-viewer-display-spice.Po
733 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
734 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='virt-viewer-display-spice.c' object='virt_viewer-virt-viewer-display-spice.obj' libtool=no @AMDEPBACKSLASH@
735 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
736 @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`
1161 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virt-viewer-main.c' object='virt_viewer-virt-viewer-main.obj' libtool=no @AMDEPBACKSLASH@
1162 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1163 @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`
7371164
7381165 mostlyclean-libtool:
7391166 -rm -f *.lo
7421169 -rm -rf .libs _libs
7431170 install-builderxmlDATA: $(builderxml_DATA)
7441171 @$(NORMAL_INSTALL)
745 test -z "$(builderxmldir)" || $(MKDIR_P) "$(DESTDIR)$(builderxmldir)"
7461172 @list='$(builderxml_DATA)'; test -n "$(builderxmldir)" || list=; \
1173 if test -n "$$list"; then \
1174 echo " $(MKDIR_P) '$(DESTDIR)$(builderxmldir)'"; \
1175 $(MKDIR_P) "$(DESTDIR)$(builderxmldir)" || exit 1; \
1176 fi; \
7471177 for p in $$list; do \
7481178 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
7491179 echo "$$d$$p"; \
7571187 @$(NORMAL_UNINSTALL)
7581188 @list='$(builderxml_DATA)'; test -n "$(builderxmldir)" || list=; \
7591189 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
760 test -n "$$files" || exit 0; \
761 echo " ( cd '$(DESTDIR)$(builderxmldir)' && rm -f" $$files ")"; \
762 cd "$(DESTDIR)$(builderxmldir)" && rm -f $$files
1190 dir='$(DESTDIR)$(builderxmldir)'; $(am__uninstall_files_from_dir)
1191 install-desktopDATA: $(desktop_DATA)
1192 @$(NORMAL_INSTALL)
1193 @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
1194 if test -n "$$list"; then \
1195 echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
1196 $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
1197 fi; \
1198 for p in $$list; do \
1199 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
1200 echo "$$d$$p"; \
1201 done | $(am__base_list) | \
1202 while read files; do \
1203 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
1204 $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
1205 done
1206
1207 uninstall-desktopDATA:
1208 @$(NORMAL_UNINSTALL)
1209 @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
1210 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1211 dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
7631212
7641213 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
7651214 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
8101259 && $(am__cd) $(top_srcdir) \
8111260 && gtags -i $(GTAGS_ARGS) "$$here"
8121261
1262 cscopelist: $(HEADERS) $(SOURCES) $(LISP)
1263 list='$(SOURCES) $(HEADERS) $(LISP)'; \
1264 case "$(srcdir)" in \
1265 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
1266 *) sdir=$(subdir)/$(srcdir) ;; \
1267 esac; \
1268 for i in $$list; do \
1269 if test -f "$$i"; then \
1270 echo "$(subdir)/$$i"; \
1271 else \
1272 echo "$$sdir/$$i"; \
1273 fi; \
1274 done >> $(top_builddir)/cscope.files
1275
8131276 distclean-tags:
8141277 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
8151278
8441307 fi; \
8451308 done
8461309 check-am: all-am
847 check: check-am
1310 check: $(BUILT_SOURCES)
1311 $(MAKE) $(AM_MAKEFLAGS) check-am
8481312 all-am: Makefile $(PROGRAMS) $(DATA)
8491313 installdirs:
850 for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)"; do \
1314 for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderxmldir)" "$(DESTDIR)$(desktopdir)"; do \
8511315 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
8521316 done
853 install: install-am
1317 install: $(BUILT_SOURCES)
1318 $(MAKE) $(AM_MAKEFLAGS) install-am
8541319 install-exec: install-exec-am
8551320 install-data: install-data-am
8561321 uninstall: uninstall-am
8601325
8611326 installcheck: installcheck-am
8621327 install-strip:
863 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
864 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
865 `test -z '$(STRIP)' || \
866 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
1328 if test -z '$(STRIP)'; then \
1329 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
1330 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
1331 install; \
1332 else \
1333 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
1334 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
1335 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
1336 fi
8671337 mostlyclean-generic:
8681338
8691339 clean-generic:
8751345 maintainer-clean-generic:
8761346 @echo "This command is intended for maintainers to use"
8771347 @echo "it deletes files that may require special tools to rebuild."
1348 -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
1349 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
8781350 clean: clean-am
8791351
8801352 clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
8971369
8981370 info-am:
8991371
900 install-data-am: install-builderxmlDATA
1372 install-data-am: install-builderxmlDATA install-desktopDATA
9011373
9021374 install-dvi: install-dvi-am
9031375
9431415
9441416 ps-am:
9451417
946 uninstall-am: uninstall-binPROGRAMS uninstall-builderxmlDATA
947
948 .MAKE: install-am install-strip
1418 uninstall-am: uninstall-binPROGRAMS uninstall-builderxmlDATA \
1419 uninstall-desktopDATA
1420
1421 .MAKE: all check install install-am install-strip
9491422
9501423 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
951 clean-generic clean-libtool ctags distclean distclean-compile \
952 distclean-generic distclean-libtool distclean-tags distdir dvi \
953 dvi-am html html-am info info-am install install-am \
954 install-binPROGRAMS install-builderxmlDATA install-data \
955 install-data-am install-dvi install-dvi-am install-exec \
956 install-exec-am install-html install-html-am install-info \
957 install-info-am install-man install-pdf install-pdf-am \
958 install-ps install-ps-am install-strip installcheck \
959 installcheck-am installdirs maintainer-clean \
960 maintainer-clean-generic mostlyclean mostlyclean-compile \
961 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
962 tags uninstall uninstall-am uninstall-binPROGRAMS \
963 uninstall-builderxmlDATA
964
1424 clean-generic clean-libtool cscopelist ctags distclean \
1425 distclean-compile distclean-generic distclean-libtool \
1426 distclean-tags distdir dvi dvi-am html html-am info info-am \
1427 install install-am install-binPROGRAMS install-builderxmlDATA \
1428 install-data install-data-am install-desktopDATA install-dvi \
1429 install-dvi-am install-exec install-exec-am install-html \
1430 install-html-am install-info install-info-am install-man \
1431 install-pdf install-pdf-am install-ps install-ps-am \
1432 install-strip installcheck installcheck-am installdirs \
1433 maintainer-clean maintainer-clean-generic mostlyclean \
1434 mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
1435 pdf pdf-am ps ps-am tags uninstall uninstall-am \
1436 uninstall-binPROGRAMS uninstall-builderxmlDATA \
1437 uninstall-desktopDATA
1438
1439
1440 $(BUILT_SOURCES): %: %.etemplate $(ENUMS_FILES)
1441 $(AM_V_GEN)$(GLIB_MKENUMS) --template $^ | \
1442 sed -e 's/VIRT_TYPE_VIEWER/VIRT_VIEWER_TYPE/' \
1443 -e 's,#include "$(srcdir)/,#include ",' > $@
1444
1445 @OS_WIN32_TRUE@virt-viewer_rc.$(OBJEXT): $(VIRT_VIEWER_RES) $(ICONDIR)/virt-viewer.ico
1446 @OS_WIN32_TRUE@ $(AM_V_GEN)$(WINDRES) \
1447 @OS_WIN32_TRUE@ -DICONDIR='\"$(ICONDIR)\"' \
1448 @OS_WIN32_TRUE@ -DMANIFESTDIR='\"$(MANIFESTDIR)\"' \
1449 @OS_WIN32_TRUE@ -i $< -o $@
1450
1451 -include $(top_srcdir)/git.mk
9651452
9661453 # Tell versions [3.59,3.63) of GNU make to not export all variables.
9671454 # Otherwise a system limit (for SysV at least) may be exceeded.
0 /* gbinding.c: Binding for object properties
1 *
2 * Copyright (C) 2010 Intel Corp.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General
15 * Public License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
17 * Boston, MA 02111-1307, USA.
18 *
19 * Author: Emmanuele Bassi <ebassi@linux.intel.com>
20 */
21
22 /**
23 * SECTION:gbinding
24 * @Title: GBinding
25 * @Short_Description: Bind two object properties
26 *
27 * #GBinding is the representation of a binding between a property on a
28 * #GObject instance (or source) and another property on another #GObject
29 * instance (or target). Whenever the source property changes, the same
30 * value is applied to the target property; for instance, the following
31 * binding:
32 *
33 * |[
34 * g_object_bind_property (object1, "property-a",
35 * object2, "property-b",
36 * G_BINDING_DEFAULT);
37 * ]|
38 *
39 * will cause <emphasis>object2:property-b</emphasis> to be updated every
40 * time g_object_set() or the specific accessor changes the value of
41 * <emphasis>object1:property-a</emphasis>.
42 *
43 * It is possible to create a bidirectional binding between two properties
44 * of two #GObject instances, so that if either property changes, the
45 * other is updated as well, for instance:
46 *
47 * |[
48 * g_object_bind_property (object1, "property-a",
49 * object2, "property-b",
50 * G_BINDING_BIDIRECTIONAL);
51 * ]|
52 *
53 * will keep the two properties in sync.
54 *
55 * It is also possible to set a custom transformation function (in both
56 * directions, in case of a bidirectional binding) to apply a custom
57 * transformation from the source value to the target value before
58 * applying it; for instance, the following binding:
59 *
60 * |[
61 * g_object_bind_property_full (adjustment1, "value",
62 * adjustment2, "value",
63 * G_BINDING_BIDIRECTIONAL,
64 * celsius_to_fahrenheit,
65 * fahrenheit_to_celsius,
66 * NULL, NULL);
67 * ]|
68 *
69 * will keep the <emphasis>value</emphasis> property of the two adjustments
70 * in sync; the <function>celsius_to_fahrenheit</function> function will be
71 * called whenever the <emphasis>adjustment1:value</emphasis> property changes
72 * and will transform the current value of the property before applying it
73 * to the <emphasis>adjustment2:value</emphasis> property; vice versa, the
74 * <function>fahrenheit_to_celsius</function> function will be called whenever
75 * the <emphasis>adjustment2:value</emphasis> property changes, and will
76 * transform the current value of the property before applying it to the
77 * <emphasis>adjustment1:value</emphasis>.
78 *
79 * Note that #GBinding does not resolve cycles by itself; a cycle like
80 *
81 * |[
82 * object1:propertyA -> object2:propertyB
83 * object2:propertyB -> object3:propertyC
84 * object3:propertyC -> object1:propertyA
85 * ]|
86 *
87 * might lead to an infinite loop. The loop, in this particular case,
88 * can be avoided if the objects emit the #GObject::notify signal only
89 * if the value has effectively been changed. A binding is implemented
90 * using the #GObject::notify signal, so it is susceptible to all the
91 * various ways of blocking a signal emission, like g_signal_stop_emission()
92 * or g_signal_handler_block().
93 *
94 * A binding will be severed, and the resources it allocates freed, whenever
95 * either one of the #GObject instances it refers to are finalized, or when
96 * the #GBinding instance loses its last reference.
97 *
98 * #GBinding is available since GObject 2.26
99 */
100
101 #include <string.h>
102
103 #ifndef G_VALUE_INIT
104 #define G_VALUE_INIT { 0, { { 0 } } }
105 #endif
106
107 #define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
108
109 static void
110 g_cclosure_user_marshal_BOOLEAN__BOXED_BOXED (GClosure *closure,
111 GValue *return_value G_GNUC_UNUSED,
112 guint n_param_values,
113 const GValue *param_values,
114 gpointer invocation_hint G_GNUC_UNUSED,
115 gpointer marshal_data)
116 {
117 typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED) (gpointer data1,
118 gpointer arg_1,
119 gpointer arg_2,
120 gpointer data2);
121 register GMarshalFunc_BOOLEAN__BOXED_BOXED callback;
122 register GCClosure *cc = (GCClosure*) closure;
123 register gpointer data1, data2;
124 gboolean v_return;
125
126 g_return_if_fail (return_value != NULL);
127 g_return_if_fail (n_param_values == 3);
128
129 if (G_CCLOSURE_SWAP_DATA (closure))
130 {
131 data1 = closure->data;
132 data2 = g_value_peek_pointer (param_values + 0);
133 }
134 else
135 {
136 data1 = g_value_peek_pointer (param_values + 0);
137 data2 = closure->data;
138 }
139 callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
140
141 v_return = callback (data1,
142 g_marshal_value_peek_boxed (param_values + 1),
143 g_marshal_value_peek_boxed (param_values + 2),
144 data2);
145
146 g_value_set_boolean (return_value, v_return);
147 }
148
149 GType
150 g_binding_flags_get_type (void)
151 {
152 static volatile gsize g_define_type_id__volatile = 0;
153
154 if (g_once_init_enter (&g_define_type_id__volatile))
155 {
156 static const GFlagsValue values[] = {
157 { G_BINDING_DEFAULT, "G_BINDING_DEFAULT", "default" },
158 { G_BINDING_BIDIRECTIONAL, "G_BINDING_BIDIRECTIONAL", "bidirectional" },
159 { G_BINDING_SYNC_CREATE, "G_BINDING_SYNC_CREATE", "sync-create" },
160 { G_BINDING_INVERT_BOOLEAN, "G_BINDING_INVERT_BOOLEAN", "invert-boolean" },
161 { 0, NULL, NULL }
162 };
163 GType g_define_type_id =
164 g_flags_register_static (g_intern_static_string ("GBindingFlags"), values);
165 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
166 }
167
168 return g_define_type_id__volatile;
169 }
170
171 #define G_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_BINDING, GBindingClass))
172 #define G_IS_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_TYPE_BINDING))
173 #define G_BINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_BINDING, GBindingClass))
174
175 typedef struct _GBindingClass GBindingClass;
176
177 struct _GBinding
178 {
179 GObject parent_instance;
180
181 /* no reference is held on the objects, to avoid cycles */
182 GObject *source;
183 GObject *target;
184
185 /* the property names are interned, so they should not be freed */
186 const gchar *source_property;
187 const gchar *target_property;
188
189 GParamSpec *source_pspec;
190 GParamSpec *target_pspec;
191
192 GBindingTransformFunc transform_s2t;
193 GBindingTransformFunc transform_t2s;
194
195 GBindingFlags flags;
196
197 guint source_notify;
198 guint target_notify;
199
200 gpointer transform_data;
201 GDestroyNotify notify;
202
203 /* a guard, to avoid loops */
204 guint is_frozen : 1;
205 };
206
207 struct _GBindingClass
208 {
209 GObjectClass parent_class;
210 };
211
212 enum
213 {
214 PROP_00,
215
216 PROP_SOURCE,
217 PROP_TARGET,
218 PROP_SOURCE_PROPERTY,
219 PROP_TARGET_PROPERTY,
220 PROP_FLAGS
221 };
222
223 static GQuark quark_gbinding = 0;
224
225 G_DEFINE_TYPE (GBinding, g_binding, G_TYPE_OBJECT);
226
227 static inline void
228 add_binding_qdata (GObject *gobject,
229 GBinding *binding)
230 {
231 GHashTable *bindings;
232
233 bindings = g_object_get_qdata (gobject, quark_gbinding);
234 if (bindings == NULL)
235 {
236 bindings = g_hash_table_new (NULL, NULL);
237
238 g_object_set_qdata_full (gobject, quark_gbinding,
239 bindings,
240 (GDestroyNotify) g_hash_table_destroy);
241 }
242
243 g_hash_table_insert (bindings, binding, GUINT_TO_POINTER (1));
244 }
245
246 static inline void
247 remove_binding_qdata (GObject *gobject,
248 GBinding *binding)
249 {
250 GHashTable *bindings;
251
252 bindings = g_object_get_qdata (gobject, quark_gbinding);
253 g_hash_table_remove (bindings, binding);
254 }
255
256 /* the basic assumption is that if either the source or the target
257 * goes away then the binding does not exist any more and it should
258 * be reaped as well
259 */
260 static void
261 weak_unbind (gpointer user_data,
262 GObject *where_the_object_was)
263 {
264 GBinding *binding = user_data;
265
266 /* if what went away was the source, unset it so that GBinding::finalize
267 * does not try to access it; otherwise, disconnect everything and remove
268 * the GBinding instance from the object's qdata
269 */
270 if (binding->source == where_the_object_was)
271 binding->source = NULL;
272 else
273 {
274 if (binding->source_notify != 0)
275 g_signal_handler_disconnect (binding->source, binding->source_notify);
276
277 g_object_weak_unref (binding->source, weak_unbind, user_data);
278 remove_binding_qdata (binding->source, binding);
279 binding->source = NULL;
280 }
281
282 /* as above, but with the target */
283 if (binding->target == where_the_object_was)
284 binding->target = NULL;
285 else
286 {
287 if (binding->target_notify != 0)
288 g_signal_handler_disconnect (binding->target, binding->target_notify);
289
290 g_object_weak_unref (binding->target, weak_unbind, user_data);
291 remove_binding_qdata (binding->target, binding);
292 binding->target = NULL;
293 }
294
295 /* this will take care of the binding itself */
296 g_object_unref (binding);
297 }
298
299 static inline gboolean
300 default_transform (const GValue *value_a,
301 GValue *value_b)
302 {
303 /* if it's not the same type, try to convert it using the GValue
304 * transformation API; otherwise just copy it
305 */
306 if (!g_type_is_a (G_VALUE_TYPE (value_a), G_VALUE_TYPE (value_b)))
307 {
308 /* are these two types compatible (can be directly copied)? */
309 if (g_value_type_compatible (G_VALUE_TYPE (value_a),
310 G_VALUE_TYPE (value_b)))
311 {
312 g_value_copy (value_a, value_b);
313 goto done;
314 }
315
316 if (g_value_type_transformable (G_VALUE_TYPE (value_a),
317 G_VALUE_TYPE (value_b)))
318 {
319 if (g_value_transform (value_a, value_b))
320 goto done;
321
322 g_warning ("%s: Unable to convert a value of type %s to a "
323 "value of type %s",
324 G_STRLOC,
325 g_type_name (G_VALUE_TYPE (value_a)),
326 g_type_name (G_VALUE_TYPE (value_b)));
327
328 return FALSE;
329 }
330 }
331 else
332 g_value_copy (value_a, value_b);
333
334 done:
335 return TRUE;
336 }
337
338 static inline gboolean
339 default_invert_boolean_transform (const GValue *value_a,
340 GValue *value_b)
341 {
342 gboolean value;
343
344 g_assert (G_VALUE_HOLDS_BOOLEAN (value_a));
345 g_assert (G_VALUE_HOLDS_BOOLEAN (value_b));
346
347 value = g_value_get_boolean (value_a);
348 value = !value;
349
350 g_value_set_boolean (value_b, value);
351
352 return TRUE;
353 }
354
355 static gboolean
356 default_transform_to (GBinding *binding,
357 const GValue *value_a,
358 GValue *value_b,
359 gpointer user_data G_GNUC_UNUSED)
360 {
361 if (binding->flags & G_BINDING_INVERT_BOOLEAN)
362 return default_invert_boolean_transform (value_a, value_b);
363
364 return default_transform (value_a, value_b);
365 }
366
367 static gboolean
368 default_transform_from (GBinding *binding,
369 const GValue *value_a,
370 GValue *value_b,
371 gpointer user_data G_GNUC_UNUSED)
372 {
373 if (binding->flags & G_BINDING_INVERT_BOOLEAN)
374 return default_invert_boolean_transform (value_a, value_b);
375
376 return default_transform (value_a, value_b);
377 }
378
379 static void
380 on_source_notify (GObject *gobject,
381 GParamSpec *pspec,
382 GBinding *binding)
383 {
384 const gchar *p_name;
385 GValue source_value = G_VALUE_INIT;
386 GValue target_value = G_VALUE_INIT;
387 gboolean res;
388
389 if (binding->is_frozen)
390 return;
391
392 p_name = g_intern_string (pspec->name);
393
394 if (p_name != binding->source_property)
395 return;
396
397 g_value_init (&source_value, G_PARAM_SPEC_VALUE_TYPE (binding->source_pspec));
398 g_value_init (&target_value, G_PARAM_SPEC_VALUE_TYPE (binding->target_pspec));
399
400 g_object_get_property (binding->source, binding->source_pspec->name, &source_value);
401
402 res = binding->transform_s2t (binding,
403 &source_value,
404 &target_value,
405 binding->transform_data);
406 if (res)
407 {
408 binding->is_frozen = TRUE;
409
410 g_param_value_validate (binding->target_pspec, &target_value);
411 g_object_set_property (binding->target, binding->target_pspec->name, &target_value);
412
413 binding->is_frozen = FALSE;
414 }
415
416 g_value_unset (&source_value);
417 g_value_unset (&target_value);
418 }
419
420 static void
421 on_target_notify (GObject *gobject,
422 GParamSpec *pspec,
423 GBinding *binding)
424 {
425 const gchar *p_name;
426 GValue source_value = G_VALUE_INIT;
427 GValue target_value = G_VALUE_INIT;
428 gboolean res;
429
430 if (binding->is_frozen)
431 return;
432
433 p_name = g_intern_string (pspec->name);
434
435 if (p_name != binding->target_property)
436 return;
437
438 g_value_init (&source_value, G_PARAM_SPEC_VALUE_TYPE (binding->target_pspec));
439 g_value_init (&target_value, G_PARAM_SPEC_VALUE_TYPE (binding->source_pspec));
440
441 g_object_get_property (binding->target, binding->target_pspec->name, &source_value);
442
443 res = binding->transform_t2s (binding,
444 &source_value,
445 &target_value,
446 binding->transform_data);
447 if (res)
448 {
449 binding->is_frozen = TRUE;
450
451 g_param_value_validate (binding->source_pspec, &target_value);
452 g_object_set_property (binding->source, binding->source_pspec->name, &target_value);
453
454 binding->is_frozen = FALSE;
455 }
456
457 g_value_unset (&source_value);
458 g_value_unset (&target_value);
459 }
460
461 static void
462 g_binding_finalize (GObject *gobject)
463 {
464 GBinding *binding = G_BINDING (gobject);
465
466 /* dispose of the transformation data */
467 if (binding->notify != NULL)
468 {
469 binding->notify (binding->transform_data);
470
471 binding->transform_data = NULL;
472 binding->notify = NULL;
473 }
474
475 /* we need this in case the source and target instance are still
476 * valid, and it was the GBinding that was unreferenced
477 */
478 if (binding->source != NULL)
479 {
480 if (binding->source_notify != 0)
481 g_signal_handler_disconnect (binding->source, binding->source_notify);
482
483 g_object_weak_unref (binding->source, weak_unbind, binding);
484 remove_binding_qdata (binding->source, binding);
485 }
486
487 if (binding->target != NULL)
488 {
489 if (binding->target_notify != 0)
490 g_signal_handler_disconnect (binding->target, binding->target_notify);
491
492 g_object_weak_unref (binding->target, weak_unbind, binding);
493 remove_binding_qdata (binding->target, binding);
494 }
495
496 G_OBJECT_CLASS (g_binding_parent_class)->finalize (gobject);
497 }
498
499 static void
500 g_binding_set_property (GObject *gobject,
501 guint prop_id,
502 const GValue *value,
503 GParamSpec *pspec)
504 {
505 GBinding *binding = G_BINDING (gobject);
506
507 switch (prop_id)
508 {
509 case PROP_SOURCE:
510 binding->source = g_value_get_object (value);
511 break;
512
513 case PROP_SOURCE_PROPERTY:
514 binding->source_property = g_intern_string (g_value_get_string (value));
515 break;
516
517 case PROP_TARGET:
518 binding->target = g_value_get_object (value);
519 break;
520
521 case PROP_TARGET_PROPERTY:
522 binding->target_property = g_intern_string (g_value_get_string (value));
523 break;
524
525 case PROP_FLAGS:
526 binding->flags = g_value_get_flags (value);
527 break;
528
529 default:
530 G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
531 break;
532 }
533 }
534
535 static void
536 g_binding_get_property (GObject *gobject,
537 guint prop_id,
538 GValue *value,
539 GParamSpec *pspec)
540 {
541 GBinding *binding = G_BINDING (gobject);
542
543 switch (prop_id)
544 {
545 case PROP_SOURCE:
546 g_value_set_object (value, binding->source);
547 break;
548
549 case PROP_SOURCE_PROPERTY:
550 g_value_set_string (value, binding->source_property);
551 break;
552
553 case PROP_TARGET:
554 g_value_set_object (value, binding->target);
555 break;
556
557 case PROP_TARGET_PROPERTY:
558 g_value_set_string (value, binding->target_property);
559 break;
560
561 case PROP_FLAGS:
562 g_value_set_flags (value, binding->flags);
563 break;
564
565 default:
566 G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
567 break;
568 }
569 }
570
571 static void
572 g_binding_constructed (GObject *gobject)
573 {
574 GBinding *binding = G_BINDING (gobject);
575
576 /* assert that we were constructed correctly */
577 g_assert (binding->source != NULL);
578 g_assert (binding->target != NULL);
579 g_assert (binding->source_property != NULL);
580 g_assert (binding->target_property != NULL);
581
582 /* we assume a check was performed prior to construction - since
583 * g_object_bind_property_full() does it; we cannot fail construction
584 * anyway, so it would be hard for use to properly warn here
585 */
586 binding->source_pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (binding->source), binding->source_property);
587 binding->target_pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (binding->target), binding->target_property);
588 g_assert (binding->source_pspec != NULL);
589 g_assert (binding->target_pspec != NULL);
590
591 /* set the default transformation functions here */
592 binding->transform_s2t = default_transform_to;
593 binding->transform_t2s = default_transform_from;
594
595 binding->transform_data = NULL;
596 binding->notify = NULL;
597
598 binding->source_notify = g_signal_connect (binding->source, "notify",
599 G_CALLBACK (on_source_notify),
600 binding);
601
602 g_object_weak_ref (binding->source, weak_unbind, binding);
603 add_binding_qdata (binding->source, binding);
604
605 if (binding->flags & G_BINDING_BIDIRECTIONAL)
606 binding->target_notify = g_signal_connect (binding->target, "notify",
607 G_CALLBACK (on_target_notify),
608 binding);
609
610 g_object_weak_ref (binding->target, weak_unbind, binding);
611 add_binding_qdata (binding->target, binding);
612
613 }
614
615 static void
616 g_binding_class_init (GBindingClass *klass)
617 {
618 GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
619
620 quark_gbinding = g_quark_from_static_string ("g-binding");
621
622 gobject_class->constructed = g_binding_constructed;
623 gobject_class->set_property = g_binding_set_property;
624 gobject_class->get_property = g_binding_get_property;
625 gobject_class->finalize = g_binding_finalize;
626
627 /**
628 * GBinding:source:
629 *
630 * The #GObject that should be used as the source of the binding
631 *
632 * Since: 2.26
633 */
634 g_object_class_install_property (gobject_class, PROP_SOURCE,
635 g_param_spec_object ("source",
636 _("Source"),
637 _("The source of the binding"),
638 G_TYPE_OBJECT,
639 G_PARAM_CONSTRUCT_ONLY |
640 G_PARAM_READWRITE |
641 G_PARAM_STATIC_STRINGS));
642 /**
643 * GBinding:target:
644 *
645 * The #GObject that should be used as the target of the binding
646 *
647 * Since: 2.26
648 */
649 g_object_class_install_property (gobject_class, PROP_TARGET,
650 g_param_spec_object ("target",
651 _("Target"),
652 _("The target of the binding"),
653 G_TYPE_OBJECT,
654 G_PARAM_CONSTRUCT_ONLY |
655 G_PARAM_READWRITE |
656 G_PARAM_STATIC_STRINGS));
657 /**
658 * GBinding:source-property:
659 *
660 * The name of the property of #GBinding:source that should be used
661 * as the source of the binding
662 *
663 * Since: 2.26
664 */
665 g_object_class_install_property (gobject_class, PROP_SOURCE_PROPERTY,
666 g_param_spec_string ("source-property",
667 _("Source Property"),
668 _("The property on the source to bind"),
669 NULL,
670 G_PARAM_CONSTRUCT_ONLY |
671 G_PARAM_READWRITE |
672 G_PARAM_STATIC_STRINGS));
673 /**
674 * GBinding:target-property:
675 *
676 * The name of the property of #GBinding:target that should be used
677 * as the target of the binding
678 *
679 * Since: 2.26
680 */
681 g_object_class_install_property (gobject_class, PROP_TARGET_PROPERTY,
682 g_param_spec_string ("target-property",
683 _("Target Property"),
684 _("The property on the target to bind"),
685 NULL,
686 G_PARAM_CONSTRUCT_ONLY |
687 G_PARAM_READWRITE |
688 G_PARAM_STATIC_STRINGS));
689 /**
690 * GBinding:flags:
691 *
692 * Flags to be used to control the #GBinding
693 *
694 * Since: 2.26
695 */
696 g_object_class_install_property (gobject_class, PROP_FLAGS,
697 g_param_spec_flags ("flags",
698 _("Flags"),
699 _("The binding flags"),
700 G_TYPE_BINDING_FLAGS,
701 G_BINDING_DEFAULT,
702 G_PARAM_CONSTRUCT_ONLY |
703 G_PARAM_READWRITE |
704 G_PARAM_STATIC_STRINGS));
705 }
706
707 static void
708 g_binding_init (GBinding *binding)
709 {
710 }
711
712 /**
713 * g_binding_get_flags:
714 * @binding: a #GBinding
715 *
716 * Retrieves the flags passed when constructing the #GBinding
717 *
718 * Return value: the #GBindingFlags used by the #GBinding
719 *
720 * Since: 2.26
721 */
722 GBindingFlags
723 g_binding_get_flags (GBinding *binding)
724 {
725 g_return_val_if_fail (G_IS_BINDING (binding), G_BINDING_DEFAULT);
726
727 return binding->flags;
728 }
729
730 /**
731 * g_binding_get_source:
732 * @binding: a #GBinding
733 *
734 * Retrieves the #GObject instance used as the source of the binding
735 *
736 * Return value: (transfer none): the source #GObject
737 *
738 * Since: 2.26
739 */
740 GObject *
741 g_binding_get_source (GBinding *binding)
742 {
743 g_return_val_if_fail (G_IS_BINDING (binding), NULL);
744
745 return binding->source;
746 }
747
748 /**
749 * g_binding_get_target:
750 * @binding: a #GBinding
751 *
752 * Retrieves the #GObject instance used as the target of the binding
753 *
754 * Return value: (transfer none): the target #GObject
755 *
756 * Since: 2.26
757 */
758 GObject *
759 g_binding_get_target (GBinding *binding)
760 {
761 g_return_val_if_fail (G_IS_BINDING (binding), NULL);
762
763 return binding->target;
764 }
765
766 /**
767 * g_binding_get_source_property:
768 * @binding: a #GBinding
769 *
770 * Retrieves the name of the property of #GBinding:source used as the source
771 * of the binding
772 *
773 * Return value: the name of the source property
774 *
775 * Since: 2.26
776 */
777 const gchar *
778 g_binding_get_source_property (GBinding *binding)
779 {
780 g_return_val_if_fail (G_IS_BINDING (binding), NULL);
781
782 return binding->source_property;
783 }
784
785 /**
786 * g_binding_get_target_property:
787 * @binding: a #GBinding
788 *
789 * Retrieves the name of the property of #GBinding:target used as the target
790 * of the binding
791 *
792 * Return value: the name of the target property
793 *
794 * Since: 2.26
795 */
796 const gchar *
797 g_binding_get_target_property (GBinding *binding)
798 {
799 g_return_val_if_fail (G_IS_BINDING (binding), NULL);
800
801 return binding->target_property;
802 }
803
804 /**
805 * g_object_bind_property_full:
806 * @source: (type GObject.Object): the source #GObject
807 * @source_property: the property on @source to bind
808 * @target: (type GObject.Object): the target #GObject
809 * @target_property: the property on @target to bind
810 * @flags: flags to pass to #GBinding
811 * @transform_to: (scope notified) (allow-none): the transformation function
812 * from the @source to the @target, or %NULL to use the default
813 * @transform_from: (scope notified) (allow-none): the transformation function
814 * from the @target to the @source, or %NULL to use the default
815 * @user_data: custom data to be passed to the transformation functions,
816 * or %NULL
817 * @notify: function to be called when disposing the binding, to free the
818 * resources used by the transformation functions
819 *
820 * Complete version of g_object_bind_property().
821 *
822 * Creates a binding between @source_property on @source and @target_property
823 * on @target, allowing you to set the transformation functions to be used by
824 * the binding.
825 *
826 * If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
827 * if @target_property on @target changes then the @source_property on @source
828 * will be updated as well. The @transform_from function is only used in case
829 * of bidirectional bindings, otherwise it will be ignored
830 *
831 * The binding will automatically be removed when either the @source or the
832 * @target instances are finalized. To remove the binding without affecting the
833 * @source and the @target you can just call g_object_unref() on the returned
834 * #GBinding instance.
835 *
836 * A #GObject can have multiple bindings.
837 *
838 * <note>The same @user_data parameter will be used for both @transform_to
839 * and @transform_from transformation functions; the @notify function will
840 * be called once, when the binding is removed. If you need different data
841 * for each transformation function, please use
842 * g_object_bind_property_with_closures() instead.</note>
843 *
844 * Return value: (transfer none): the #GBinding instance representing the
845 * binding between the two #GObject instances. The binding is released
846 * whenever the #GBinding reference count reaches zero.
847 *
848 * Since: 2.26
849 */
850 GBinding *
851 g_object_bind_property_full (gpointer source,
852 const gchar *source_property,
853 gpointer target,
854 const gchar *target_property,
855 GBindingFlags flags,
856 GBindingTransformFunc transform_to,
857 GBindingTransformFunc transform_from,
858 gpointer user_data,
859 GDestroyNotify notify)
860 {
861 GParamSpec *pspec;
862 GBinding *binding;
863
864 g_return_val_if_fail (G_IS_OBJECT (source), NULL);
865 g_return_val_if_fail (source_property != NULL, NULL);
866 g_return_val_if_fail (G_IS_OBJECT (target), NULL);
867 g_return_val_if_fail (target_property != NULL, NULL);
868
869 if (source == target && g_strcmp0 (source_property, target_property) == 0)
870 {
871 g_warning ("Unable to bind the same property on the same instance");
872 return NULL;
873 }
874
875 /* remove the G_BINDING_INVERT_BOOLEAN flag in case we have
876 * custom transformation functions
877 */
878 if ((flags & G_BINDING_INVERT_BOOLEAN) &&
879 (transform_to != NULL || transform_from != NULL))
880 {
881 flags &= ~G_BINDING_INVERT_BOOLEAN;
882 }
883
884 pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (source), source_property);
885 if (pspec == NULL)
886 {
887 g_warning ("%s: The source object of type %s has no property called '%s'",
888 G_STRLOC,
889 G_OBJECT_TYPE_NAME (source),
890 source_property);
891 return NULL;
892 }
893
894 if (!(pspec->flags & G_PARAM_READABLE))
895 {
896 g_warning ("%s: The source object of type %s has no readable property called '%s'",
897 G_STRLOC,
898 G_OBJECT_TYPE_NAME (source),
899 source_property);
900 return NULL;
901 }
902
903 if ((flags & G_BINDING_BIDIRECTIONAL) &&
904 ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) || !(pspec->flags & G_PARAM_WRITABLE)))
905 {
906 g_warning ("%s: The source object of type %s has no writable property called '%s'",
907 G_STRLOC,
908 G_OBJECT_TYPE_NAME (source),
909 source_property);
910 return NULL;
911 }
912
913 if ((flags & G_BINDING_INVERT_BOOLEAN) &&
914 !(G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_BOOLEAN))
915 {
916 g_warning ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used "
917 "when binding boolean properties; the source property '%s' "
918 "is of type '%s'",
919 G_STRLOC,
920 source_property,
921 g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
922 return NULL;
923 }
924
925 pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (target), target_property);
926 if (pspec == NULL)
927 {
928 g_warning ("%s: The target object of type %s has no property called '%s'",
929 G_STRLOC,
930 G_OBJECT_TYPE_NAME (target),
931 target_property);
932 return NULL;
933 }
934
935 if ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) || !(pspec->flags & G_PARAM_WRITABLE))
936 {
937 g_warning ("%s: The target object of type %s has no writable property called '%s'",
938 G_STRLOC,
939 G_OBJECT_TYPE_NAME (target),
940 target_property);
941 return NULL;
942 }
943
944 if ((flags & G_BINDING_BIDIRECTIONAL) &&
945 !(pspec->flags & G_PARAM_READABLE))
946 {
947 g_warning ("%s: The target object of type %s has no readable property called '%s'",
948 G_STRLOC,
949 G_OBJECT_TYPE_NAME (target),
950 target_property);
951 return NULL;
952 }
953
954 if ((flags & G_BINDING_INVERT_BOOLEAN) &&
955 !(G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_BOOLEAN))
956 {
957 g_warning ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used "
958 "when binding boolean properties; the target property '%s' "
959 "is of type '%s'",
960 G_STRLOC,
961 target_property,
962 g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
963 return NULL;
964 }
965
966 binding = g_object_new (G_TYPE_BINDING,
967 "source", source,
968 "source-property", source_property,
969 "target", target,
970 "target-property", target_property,
971 "flags", flags,
972 NULL);
973
974 if (transform_to != NULL)
975 binding->transform_s2t = transform_to;
976
977 if (transform_from != NULL)
978 binding->transform_t2s = transform_from;
979
980 binding->transform_data = user_data;
981 binding->notify = notify;
982
983 /* synchronize the target with the source by faking an emission of
984 * the ::notify signal for the source property; this will also take
985 * care of the bidirectional binding case because the eventual change
986 * will emit a notification on the target
987 */
988 if (flags & G_BINDING_SYNC_CREATE)
989 on_source_notify (binding->source, binding->source_pspec, binding);
990
991 return binding;
992 }
993
994 /**
995 * g_object_bind_property:
996 * @source: (type GObject.Object): the source #GObject
997 * @source_property: the property on @source to bind
998 * @target: (type GObject.Object): the target #GObject
999 * @target_property: the property on @target to bind
1000 * @flags: flags to pass to #GBinding
1001 *
1002 * Creates a binding between @source_property on @source and @target_property
1003 * on @target. Whenever the @source_property is changed the @target_property is
1004 * updated using the same value. For instance:
1005 *
1006 * |[
1007 * g_object_bind_property (action, "active", widget, "sensitive", 0);
1008 * ]|
1009 *
1010 * Will result in the "sensitive" property of the widget #GObject instance to be
1011 * updated with the same value of the "active" property of the action #GObject
1012 * instance.
1013 *
1014 * If @flags contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
1015 * if @target_property on @target changes then the @source_property on @source
1016 * will be updated as well.
1017 *
1018 * The binding will automatically be removed when either the @source or the
1019 * @target instances are finalized. To remove the binding without affecting the
1020 * @source and the @target you can just call g_object_unref() on the returned
1021 * #GBinding instance.
1022 *
1023 * A #GObject can have multiple bindings.
1024 *
1025 * Return value: (transfer none): the #GBinding instance representing the
1026 * binding between the two #GObject instances. The binding is released
1027 * whenever the #GBinding reference count reaches zero.
1028 *
1029 * Since: 2.26
1030 */
1031 GBinding *
1032 g_object_bind_property (gpointer source,
1033 const gchar *source_property,
1034 gpointer target,
1035 const gchar *target_property,
1036 GBindingFlags flags)
1037 {
1038 /* type checking is done in g_object_bind_property_full() */
1039
1040 return g_object_bind_property_full (source, source_property,
1041 target, target_property,
1042 flags,
1043 NULL,
1044 NULL,
1045 NULL, NULL);
1046 }
1047
1048 typedef struct _TransformData
1049 {
1050 GClosure *transform_to_closure;
1051 GClosure *transform_from_closure;
1052 } TransformData;
1053
1054 static gboolean
1055 bind_with_closures_transform_to (GBinding *binding,
1056 const GValue *source,
1057 GValue *target,
1058 gpointer data)
1059 {
1060 TransformData *t_data = data;
1061 GValue params[3] = { G_VALUE_INIT, G_VALUE_INIT, G_VALUE_INIT };
1062 GValue retval = G_VALUE_INIT;
1063 gboolean res;
1064
1065 g_value_init (&params[0], G_TYPE_BINDING);
1066 g_value_set_object (&params[0], binding);
1067
1068 g_value_init (&params[1], G_TYPE_VALUE);
1069 g_value_set_boxed (&params[1], source);
1070
1071 g_value_init (&params[2], G_TYPE_VALUE);
1072 g_value_set_boxed (&params[2], target);
1073
1074 g_value_init (&retval, G_TYPE_BOOLEAN);
1075 g_value_set_boolean (&retval, FALSE);
1076
1077 g_closure_invoke (t_data->transform_to_closure, &retval, 3, params, NULL);
1078
1079 res = g_value_get_boolean (&retval);
1080 if (res)
1081 {
1082 const GValue *out_value = g_value_get_boxed (&params[2]);
1083
1084 g_assert (out_value != NULL);
1085
1086 g_value_copy (out_value, target);
1087 }
1088
1089 g_value_unset (&params[0]);
1090 g_value_unset (&params[1]);
1091 g_value_unset (&params[2]);
1092 g_value_unset (&retval);
1093
1094 return res;
1095 }
1096
1097 static gboolean
1098 bind_with_closures_transform_from (GBinding *binding,
1099 const GValue *source,
1100 GValue *target,
1101 gpointer data)
1102 {
1103 TransformData *t_data = data;
1104 GValue params[3] = { G_VALUE_INIT, G_VALUE_INIT, G_VALUE_INIT };
1105 GValue retval = G_VALUE_INIT;
1106 gboolean res;
1107
1108 g_value_init (&params[0], G_TYPE_BINDING);
1109 g_value_set_object (&params[0], binding);
1110
1111 g_value_init (&params[1], G_TYPE_VALUE);
1112 g_value_set_boxed (&params[1], source);
1113
1114 g_value_init (&params[2], G_TYPE_VALUE);
1115 g_value_set_boxed (&params[2], target);
1116
1117 g_value_init (&retval, G_TYPE_BOOLEAN);
1118 g_value_set_boolean (&retval, FALSE);
1119
1120 g_closure_invoke (t_data->transform_from_closure, &retval, 3, params, NULL);
1121
1122 res = g_value_get_boolean (&retval);
1123 if (res)
1124 {
1125 const GValue *out_value = g_value_get_boxed (&params[2]);
1126
1127 g_assert (out_value != NULL);
1128
1129 g_value_copy (out_value, target);
1130 }
1131
1132 g_value_unset (&params[0]);
1133 g_value_unset (&params[1]);
1134 g_value_unset (&params[2]);
1135 g_value_unset (&retval);
1136
1137 return res;
1138 }
1139
1140 static void
1141 bind_with_closures_free_func (gpointer data)
1142 {
1143 TransformData *t_data = data;
1144
1145 if (t_data->transform_to_closure != NULL)
1146 g_closure_unref (t_data->transform_to_closure);
1147
1148 if (t_data->transform_from_closure != NULL)
1149 g_closure_unref (t_data->transform_from_closure);
1150
1151 g_slice_free (TransformData, t_data);
1152 }
1153
1154 /**
1155 * g_object_bind_property_with_closures:
1156 * @source: (type GObject.Object): the source #GObject
1157 * @source_property: the property on @source to bind
1158 * @target: (type GObject.Object): the target #GObject
1159 * @target_property: the property on @target to bind
1160 * @flags: flags to pass to #GBinding
1161 * @transform_to: a #GClosure wrapping the transformation function
1162 * from the @source to the @target, or %NULL to use the default
1163 * @transform_from: a #GClosure wrapping the transformation function
1164 * from the @target to the @source, or %NULL to use the default
1165 *
1166 * Creates a binding between @source_property on @source and @target_property
1167 * on @target, allowing you to set the transformation functions to be used by
1168 * the binding.
1169 *
1170 * This function is the language bindings friendly version of
1171 * g_object_bind_property_full(), using #GClosure<!-- -->s instead of
1172 * function pointers.
1173 *
1174 * Rename to: g_object_bind_property_full
1175 *
1176 * Return value: (transfer none): the #GBinding instance representing the
1177 * binding between the two #GObject instances. The binding is released
1178 * whenever the #GBinding reference count reaches zero.
1179 *
1180 * Since: 2.26
1181 */
1182 GBinding *
1183 g_object_bind_property_with_closures (gpointer source,
1184 const gchar *source_property,
1185 gpointer target,
1186 const gchar *target_property,
1187 GBindingFlags flags,
1188 GClosure *transform_to,
1189 GClosure *transform_from)
1190 {
1191 TransformData *data;
1192
1193 data = g_slice_new0 (TransformData);
1194
1195 if (transform_to != NULL)
1196 {
1197 if (G_CLOSURE_NEEDS_MARSHAL (transform_to))
1198 g_closure_set_marshal (transform_to, g_cclosure_user_marshal_BOOLEAN__BOXED_BOXED);
1199
1200 data->transform_to_closure = g_closure_ref (transform_to);
1201 g_closure_sink (data->transform_to_closure);
1202 }
1203
1204 if (transform_from != NULL)
1205 {
1206 if (G_CLOSURE_NEEDS_MARSHAL (transform_from))
1207 g_closure_set_marshal (transform_from, g_cclosure_user_marshal_BOOLEAN__BOXED_BOXED);
1208
1209 data->transform_from_closure = g_closure_ref (transform_from);
1210 g_closure_sink (data->transform_from_closure);
1211 }
1212
1213 return g_object_bind_property_full (source, source_property,
1214 target, target_property,
1215 flags,
1216 transform_to != NULL ? bind_with_closures_transform_to : NULL,
1217 transform_from != NULL ? bind_with_closures_transform_from : NULL,
1218 data,
1219 bind_with_closures_free_func);
1220 }
0 /* gbinding.h: Binding for object properties
1 *
2 * Copyright (C) 2010 Intel Corp.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General
15 * Public License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
17 * Boston, MA 02111-1307, USA.
18 *
19 * Author: Emmanuele Bassi <ebassi@linux.intel.com>
20 */
21
22 #ifndef __G_BINDING_H__
23 #define __G_BINDING_H__
24
25 G_BEGIN_DECLS
26
27 #define G_TYPE_BINDING_FLAGS (g_binding_flags_get_type ())
28
29 #define G_TYPE_BINDING (g_binding_get_type ())
30 #define G_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_BINDING, GBinding))
31 #define G_IS_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_BINDING))
32
33 /**
34 * GBinding:
35 *
36 * <structname>GBinding</structname> is an opaque structure whose members
37 * cannot be accessed directly.
38 *
39 * Since: 2.26
40 */
41 typedef struct _GBinding GBinding;
42
43 /**
44 * GBindingTransformFunc:
45 * @binding: a #GBinding
46 * @source_value: the value of the source property
47 * @target_value: the value of the target property
48 * @user_data: data passed to the transform function
49 *
50 * A function to be called to transform the source property of @source
51 * from @source_value into the target property of @target
52 * using @target_value.
53 *
54 * Return value: %TRUE if the transformation was successful, and %FALSE
55 * otherwise
56 *
57 * Since: 2.26
58 */
59 typedef gboolean (* GBindingTransformFunc) (GBinding *binding,
60 const GValue *source_value,
61 GValue *target_value,
62 gpointer user_data);
63
64 /**
65 * GBindingFlags:
66 * @G_BINDING_DEFAULT: The default binding; if the source property
67 * changes, the target property is updated with its value.
68 * @G_BINDING_BIDIRECTIONAL: Bidirectional binding; if either the
69 * property of the source or the property of the target changes,
70 * the other is updated.
71 * @G_BINDING_SYNC_CREATE: Synchronize the values of the source and
72 * target properties when creating the binding; the direction of
73 * the synchronization is always from the source to the target.
74 * @G_BINDING_INVERT_BOOLEAN: If the two properties being bound are
75 * booleans, setting one to %TRUE will result in the other being
76 * set to %FALSE and vice versa. This flag will only work for
77 * boolean properties, and cannot be used when passing custom
78 * transformation functions to g_object_bind_property_full().
79 *
80 * Flags to be passed to g_object_bind_property() or
81 * g_object_bind_property_full().
82 *
83 * This enumeration can be extended at later date.
84 *
85 * Since: 2.26
86 */
87 typedef enum { /*< prefix=G_BINDING >*/
88 G_BINDING_DEFAULT = 0,
89
90 G_BINDING_BIDIRECTIONAL = 1 << 0,
91 G_BINDING_SYNC_CREATE = 1 << 1,
92 G_BINDING_INVERT_BOOLEAN = 1 << 2
93 } GBindingFlags;
94
95 GType g_binding_flags_get_type (void) G_GNUC_CONST;
96 GType g_binding_get_type (void) G_GNUC_CONST;
97
98 GBindingFlags g_binding_get_flags (GBinding *binding);
99 GObject * g_binding_get_source (GBinding *binding);
100 GObject * g_binding_get_target (GBinding *binding);
101 const gchar * g_binding_get_source_property (GBinding *binding);
102 const gchar * g_binding_get_target_property (GBinding *binding);
103
104 GBinding *g_object_bind_property (gpointer source,
105 const gchar *source_property,
106 gpointer target,
107 const gchar *target_property,
108 GBindingFlags flags);
109 GBinding *g_object_bind_property_full (gpointer source,
110 const gchar *source_property,
111 gpointer target,
112 const gchar *target_property,
113 GBindingFlags flags,
114 GBindingTransformFunc transform_to,
115 GBindingTransformFunc transform_from,
116 gpointer user_data,
117 GDestroyNotify notify);
118 GBinding *g_object_bind_property_with_closures (gpointer source,
119 const gchar *source_property,
120 gpointer target,
121 const gchar *target_property,
122 GBindingFlags flags,
123 GClosure *transform_to,
124 GClosure *transform_from);
125
126 G_END_DECLS
127
128 #endif /* __G_BINDING_H__ */
0 /*
1 * Remote Viewer: A spice/vnc client based on virt-viewer
2 *
3 * Copyright (C) 2011-2012 Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
20 */
21
22 #include <config.h>
23 #include <locale.h>
24 #include <gtk/gtk.h>
25 #include <glib/gi18n.h>
26 #include <stdlib.h>
27 #ifdef G_OS_WIN32
28 #include <windows.h>
29 #include <io.h>
30 #endif
31
32 #ifdef HAVE_GTK_VNC
33 #include <vncdisplay.h>
34 #endif
35 #ifdef HAVE_SPICE_GTK
36 #include <spice-option.h>
37 #endif
38
39 #include "remote-viewer.h"
40 #include "virt-viewer-app.h"
41 #include "virt-viewer-session.h"
42
43 static void
44 remote_viewer_version(void)
45 {
46 g_print(_("remote-viewer version %s\n"), VERSION);
47 exit(EXIT_SUCCESS);
48 }
49
50 gboolean fullscreen = FALSE;
51 gboolean fullscreen_auto_conf = FALSE;
52
53 static gboolean
54 option_fullscreen(G_GNUC_UNUSED const gchar *option_name,
55 const gchar *value,
56 G_GNUC_UNUSED gpointer data, GError **error)
57 {
58 fullscreen = TRUE;
59
60 if (value == NULL)
61 return TRUE;
62
63 if (g_str_equal(value, "auto-conf")) {
64 fullscreen_auto_conf = TRUE;
65 return TRUE;
66 }
67
68 g_set_error(error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED, _("Invalid full-screen argument: %s"), value);
69 return FALSE;
70 }
71
72 static void recent_selection_changed_dialog_cb(GtkRecentChooser *chooser, gpointer data)
73 {
74 GtkRecentInfo *info;
75 GtkWidget *entry = data;
76 const gchar *uri;
77
78 info = gtk_recent_chooser_get_current_item(chooser);
79 if (info == NULL)
80 return;
81
82 uri = gtk_recent_info_get_uri(info);
83 g_return_if_fail(uri != NULL);
84
85 gtk_entry_set_text(GTK_ENTRY(entry), uri);
86
87 gtk_recent_info_unref(info);
88 }
89
90 static void recent_item_activated_dialog_cb(GtkRecentChooser *chooser G_GNUC_UNUSED, gpointer data)
91 {
92 gtk_dialog_response (GTK_DIALOG (data), GTK_RESPONSE_ACCEPT);
93 }
94
95 static gint connect_dialog(gchar **uri)
96 {
97 GtkWidget *dialog, *area, *label, *entry, *recent;
98 GtkRecentFilter *rfilter;
99 GtkTable *table;
100 gint retval;
101
102 /* Create the widgets */
103 dialog = gtk_dialog_new_with_buttons(_("Connection details"),
104 NULL,
105 GTK_DIALOG_DESTROY_WITH_PARENT,
106 GTK_STOCK_CANCEL,
107 GTK_RESPONSE_REJECT,
108 GTK_STOCK_CONNECT,
109 GTK_RESPONSE_ACCEPT,
110 NULL);
111 gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
112 area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
113 table = GTK_TABLE(gtk_table_new(1, 2, 0));
114 gtk_box_pack_start(GTK_BOX(area), GTK_WIDGET(table), TRUE, TRUE, 0);
115 gtk_table_set_row_spacings(table, 5);
116 gtk_table_set_col_spacings(table, 5);
117
118 label = gtk_label_new(_("URL:"));
119 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
120 gtk_table_attach_defaults(table, label, 0, 1, 0, 1);
121 entry = GTK_WIDGET(gtk_entry_new());
122 gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
123 g_object_set(entry, "width-request", 200, NULL);
124 gtk_table_attach_defaults(table, entry, 1, 2, 0, 1);
125
126 label = gtk_label_new(_("Recent connections:"));
127 gtk_box_pack_start(GTK_BOX(area), label, TRUE, TRUE, 0);
128 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
129
130 recent = GTK_WIDGET(gtk_recent_chooser_widget_new());
131 gtk_recent_chooser_set_show_icons(GTK_RECENT_CHOOSER(recent), FALSE);
132 gtk_recent_chooser_set_sort_type(GTK_RECENT_CHOOSER(recent), GTK_RECENT_SORT_MRU);
133 gtk_box_pack_start(GTK_BOX(area), recent, TRUE, TRUE, 0);
134
135 rfilter = gtk_recent_filter_new();
136 gtk_recent_filter_add_mime_type(rfilter, "application/x-spice");
137 gtk_recent_filter_add_mime_type(rfilter, "application/x-vnc");
138 gtk_recent_chooser_set_filter(GTK_RECENT_CHOOSER(recent), rfilter);
139 gtk_recent_chooser_set_local_only(GTK_RECENT_CHOOSER(recent), FALSE);
140 g_signal_connect(recent, "selection-changed",
141 G_CALLBACK(recent_selection_changed_dialog_cb), entry);
142 g_signal_connect(recent, "item-activated",
143 G_CALLBACK(recent_item_activated_dialog_cb), dialog);
144
145 /* show and wait for response */
146 gtk_widget_show_all(dialog);
147 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
148 *uri = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
149 retval = 0;
150 } else {
151 *uri = NULL;
152 retval = -1;
153 }
154 gtk_widget_destroy(dialog);
155
156 return retval;
157 }
158
159 static void
160 recent_add(gchar *uri)
161 {
162 GtkRecentManager *recent;
163 GtkRecentData meta = {
164 .mime_type = (char*)"application/x-spice",
165 .app_name = (char*)"remote-viewer",
166 .app_exec = (char*)"remote-viewer %u",
167 };
168
169 if (uri == NULL)
170 return;
171
172 g_return_if_fail(g_str_has_prefix(uri, "spice://") || g_str_has_prefix(uri, "vnc://"));
173
174 recent = gtk_recent_manager_get_default();
175 meta.display_name = uri;
176 if (!gtk_recent_manager_add_full(recent, uri, &meta))
177 g_warning("Recent item couldn't be added");
178 }
179
180 static void connected(VirtViewerSession *session,
181 VirtViewerApp *self G_GNUC_UNUSED)
182 {
183 gchar *uri = virt_viewer_session_get_uri(session);
184
185 recent_add(uri);
186 g_free(uri);
187 }
188
189 int
190 main(int argc, char **argv)
191 {
192 GOptionContext *context;
193 GError *error = NULL;
194 int ret = 1;
195 int zoom = 100;
196 gchar **args = NULL;
197 gchar *uri = NULL;
198 gboolean verbose = FALSE;
199 gboolean debug = FALSE;
200 gboolean direct = FALSE;
201 RemoteViewer *viewer = NULL;
202 #if HAVE_SPICE_GTK
203 gboolean controller = FALSE;
204 #endif
205 VirtViewerApp *app;
206 const GOptionEntry options [] = {
207 { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
208 remote_viewer_version, N_("Display version information"), NULL },
209 { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
210 N_("Display verbose information"), NULL },
211 { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
212 N_("Direct connection with no automatic tunnels"), NULL },
213 { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
214 N_("Zoom level of window, in percentage"), "ZOOM" },
215 { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
216 N_("Display debugging information"), NULL },
217 { "full-screen", 'f', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_fullscreen,
218 N_("Open in full screen mode (auto-conf adjusts guest resolution to fit the client's)."), N_("<auto-conf>") },
219 #if HAVE_SPICE_GTK
220 { "spice-controller", '\0', 0, G_OPTION_ARG_NONE, &controller,
221 N_("Open connection using Spice controller communication"), NULL },
222 #endif
223 { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
224 NULL, "URI" },
225 { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
226 };
227
228 #ifdef G_OS_WIN32
229 if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) {
230 freopen("CONIN$", "r", stdin);
231 freopen("CONOUT$", "w", stdout);
232 freopen("CONERR$", "w", stderr);
233 dup2(fileno(stdin), STDIN_FILENO);
234 dup2(fileno(stdout), STDOUT_FILENO);
235 dup2(fileno(stderr), STDERR_FILENO);
236 }
237 #endif
238
239 #if !GLIB_CHECK_VERSION(2,31,0)
240 g_thread_init(NULL);
241 #endif
242
243 setlocale(LC_ALL, "");
244 bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
245 bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
246 textdomain(GETTEXT_PACKAGE);
247
248 g_set_application_name(_("Remote Viewer"));
249
250 /* Setup command line options */
251 context = g_option_context_new (_("- Remote viewer client"));
252 g_option_context_add_main_entries (context, options, NULL);
253 g_option_context_add_group (context, gtk_get_option_group (TRUE));
254 #ifdef HAVE_GTK_VNC
255 g_option_context_add_group (context, vnc_display_get_option_group ());
256 #endif
257 #ifdef HAVE_SPICE_GTK
258 g_option_context_add_group (context, spice_get_option_group ());
259 #endif
260 g_option_context_parse (context, &argc, &argv, &error);
261 if (error) {
262 char *basename;
263 basename = g_path_get_basename(argv[0]);
264 g_printerr(_("%s\nRun '%s --help' to see a full list of available command line options\n"),
265 error->message, basename);
266 g_free(basename);
267 g_error_free(error);
268 goto cleanup;
269 }
270
271 g_option_context_free(context);
272
273 #if HAVE_SPICE_GTK
274 if (controller) {
275 if (args) {
276 g_printerr(_("Error: extra arguments given while using Spice controller\n"));
277 goto cleanup;
278 }
279 } else
280 #endif
281 if (!args || g_strv_length(args) == 0) {
282 if (connect_dialog(&uri) != 0)
283 goto cleanup;
284 } else if (g_strv_length(args) > 1) {
285 g_printerr(_("Error: can't handle multiple URIs\n"));
286 goto cleanup;
287 } else {
288 uri = g_strdup(args[0]);
289 }
290
291 if (zoom < 10 || zoom > 200) {
292 g_printerr(_("Zoom level must be within 10-200\n"));
293 goto cleanup;
294 }
295
296 gtk_window_set_default_icon_name("virt-viewer");
297
298 virt_viewer_app_set_debug(debug);
299
300 #if HAVE_SPICE_GTK
301 if (controller) {
302 viewer = remote_viewer_new_with_controller(verbose);
303 g_object_set(viewer, "guest-name", "defined by Spice controller", NULL);
304 } else {
305 #endif
306 viewer = remote_viewer_new(uri, verbose);
307 g_object_set(viewer, "guest-name", uri, NULL);
308 #if HAVE_SPICE_GTK
309 }
310 #endif
311 if (viewer == NULL)
312 goto cleanup;
313
314 app = VIRT_VIEWER_APP(viewer);
315 g_object_set(app,
316 "fullscreen", fullscreen,
317 "fullscreen-auto-conf", fullscreen_auto_conf,
318 NULL);
319 virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
320 virt_viewer_app_set_direct(app, direct);
321
322 if (!virt_viewer_app_start(app))
323 goto cleanup;
324
325 g_signal_connect(virt_viewer_app_get_session(app), "session-connected",
326 G_CALLBACK(connected), app);
327
328 gtk_main();
329
330 ret = 0;
331
332 cleanup:
333 g_free(uri);
334 if (viewer)
335 g_object_unref(viewer);
336 g_strfreev(args);
337
338 return ret;
339 }
340
341 /*
342 * Local variables:
343 * c-indent-level: 4
344 * c-basic-offset: 4
345 * indent-tabs-mode: nil
346 * End:
347 */
0 /*
1 * Virt Viewer: A virtual machine console viewer
2 *
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
5 * Copyright (C) 2010 Marc-André Lureau
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 *
21 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
22 */
23
24 #include <config.h>
25 #include <gtk/gtk.h>
26 #include <glib/gprintf.h>
27 #include <glib/gi18n.h>
28
29 #ifdef HAVE_SPICE_GTK
30 #include <spice-controller.h>
31 #endif
32
33 #ifdef HAVE_SPICE_GTK
34 #include "virt-viewer-session-spice.h"
35 #endif
36 #include "virt-viewer-app.h"
37 #include "remote-viewer.h"
38
39 #ifndef G_VALUE_INIT /* see bug https://bugzilla.gnome.org/show_bug.cgi?id=654793 */
40 #define G_VALUE_INIT { 0, { { 0 } } }
41 #endif
42
43 struct _RemoteViewerPrivate {
44 #ifdef HAVE_SPICE_GTK
45 SpiceCtrlController *controller;
46 SpiceCtrlForeignMenu *ctrl_foreign_menu;
47 #endif
48 GtkWidget *controller_menu;
49 GtkWidget *foreign_menu;
50 };
51
52 G_DEFINE_TYPE (RemoteViewer, remote_viewer, VIRT_VIEWER_TYPE_APP)
53 #define GET_PRIVATE(o) \
54 (G_TYPE_INSTANCE_GET_PRIVATE ((o), REMOTE_VIEWER_TYPE, RemoteViewerPrivate))
55
56 #if HAVE_SPICE_GTK
57 enum {
58 PROP_0,
59 PROP_CONTROLLER,
60 PROP_CTRL_FOREIGN_MENU,
61 };
62 #endif
63
64 static gboolean remote_viewer_start(VirtViewerApp *self);
65 #if HAVE_SPICE_GTK
66 static int remote_viewer_activate(VirtViewerApp *self);
67 static void remote_viewer_window_added(VirtViewerApp *self, VirtViewerWindow *win);
68 static void spice_foreign_menu_updated(RemoteViewer *self);
69 #endif
70
71 #if HAVE_SPICE_GTK
72 static void
73 remote_viewer_get_property (GObject *object, guint property_id,
74 GValue *value, GParamSpec *pspec)
75 {
76 RemoteViewer *self = REMOTE_VIEWER(object);
77 RemoteViewerPrivate *priv = self->priv;
78
79 switch (property_id) {
80 case PROP_CONTROLLER:
81 g_value_set_object(value, priv->controller);
82 break;
83 case PROP_CTRL_FOREIGN_MENU:
84 g_value_set_object(value, priv->ctrl_foreign_menu);
85 break;
86 default:
87 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
88 }
89 }
90
91 static void
92 remote_viewer_set_property (GObject *object, guint property_id,
93 const GValue *value, GParamSpec *pspec)
94 {
95 RemoteViewer *self = REMOTE_VIEWER(object);
96 RemoteViewerPrivate *priv = self->priv;
97
98 switch (property_id) {
99 case PROP_CONTROLLER:
100 g_return_if_fail(priv->controller == NULL);
101 priv->controller = g_value_dup_object(value);
102 break;
103 case PROP_CTRL_FOREIGN_MENU:
104 g_return_if_fail(priv->ctrl_foreign_menu == NULL);
105 priv->ctrl_foreign_menu = g_value_dup_object(value);
106 break;
107 default:
108 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
109 }
110 }
111
112 static void
113 remote_viewer_dispose (GObject *object)
114 {
115 RemoteViewer *self = REMOTE_VIEWER(object);
116 RemoteViewerPrivate *priv = self->priv;
117
118 if (priv->controller) {
119 g_object_unref(priv->controller);
120 priv->controller = NULL;
121 }
122
123 if (priv->ctrl_foreign_menu) {
124 g_object_unref(priv->ctrl_foreign_menu);
125 priv->ctrl_foreign_menu = NULL;
126 }
127
128 G_OBJECT_CLASS(remote_viewer_parent_class)->dispose (object);
129 }
130 #endif
131
132 static void
133 remote_viewer_class_init (RemoteViewerClass *klass)
134 {
135 #if HAVE_SPICE_GTK
136 GObjectClass *object_class = G_OBJECT_CLASS (klass);
137 #endif
138 VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
139
140 g_type_class_add_private (klass, sizeof (RemoteViewerPrivate));
141
142 #if HAVE_SPICE_GTK
143 object_class->get_property = remote_viewer_get_property;
144 object_class->set_property = remote_viewer_set_property;
145 object_class->dispose = remote_viewer_dispose;
146 #endif
147
148 app_class->start = remote_viewer_start;
149 #if HAVE_SPICE_GTK
150 app_class->activate = remote_viewer_activate;
151 app_class->window_added = remote_viewer_window_added;
152 #endif
153
154 #if HAVE_SPICE_GTK
155 g_object_class_install_property(object_class,
156 PROP_CONTROLLER,
157 g_param_spec_object("controller",
158 "Controller",
159 "Spice controller",
160 SPICE_CTRL_TYPE_CONTROLLER,
161 G_PARAM_READWRITE |
162 G_PARAM_CONSTRUCT_ONLY |
163 G_PARAM_STATIC_STRINGS));
164 g_object_class_install_property(object_class,
165 PROP_CTRL_FOREIGN_MENU,
166 g_param_spec_object("foreign-menu",
167 "Foreign Menu",
168 "Spice foreign menu",
169 SPICE_CTRL_TYPE_FOREIGN_MENU,
170 G_PARAM_READWRITE |
171 G_PARAM_CONSTRUCT_ONLY |
172 G_PARAM_STATIC_STRINGS));
173 #endif
174 }
175
176 static void
177 remote_viewer_init(RemoteViewer *self)
178 {
179 self->priv = GET_PRIVATE(self);
180 }
181
182 RemoteViewer *
183 remote_viewer_new(const gchar *uri, gboolean verbose)
184 {
185 return g_object_new(REMOTE_VIEWER_TYPE,
186 "guri", uri,
187 "verbose", verbose,
188 NULL);
189 }
190
191 #if HAVE_SPICE_GTK
192 static void
193 foreign_menu_title_changed(SpiceCtrlForeignMenu *menu G_GNUC_UNUSED,
194 GParamSpec *pspec G_GNUC_UNUSED,
195 RemoteViewer *self)
196 {
197 gboolean has_focus;
198
199 g_object_get(G_OBJECT(self), "has-focus", &has_focus, NULL);
200 /* FIXME: use a proper "new client connected" event
201 ** a foreign menu client set the title when connecting,
202 ** inform of focus state at that time.
203 */
204 spice_ctrl_foreign_menu_app_activated_msg(self->priv->ctrl_foreign_menu, has_focus);
205
206 /* update menu title */
207 spice_foreign_menu_updated(self);
208 }
209
210 RemoteViewer *
211 remote_viewer_new_with_controller(gboolean verbose)
212 {
213 RemoteViewer *self;
214 SpiceCtrlController *ctrl = spice_ctrl_controller_new();
215 SpiceCtrlForeignMenu *menu = spice_ctrl_foreign_menu_new();
216
217 self = g_object_new(REMOTE_VIEWER_TYPE,
218 "controller", ctrl,
219 "foreign-menu", menu,
220 "verbose", verbose,
221 NULL);
222 g_signal_connect(menu, "notify::title",
223 G_CALLBACK(foreign_menu_title_changed),
224 self);
225 g_object_unref(ctrl);
226 g_object_unref(menu);
227
228 return self;
229 }
230
231 static void
232 spice_ctrl_do_connect(SpiceCtrlController *ctrl G_GNUC_UNUSED,
233 VirtViewerApp *self)
234 {
235 if (virt_viewer_app_initial_connect(self) < 0) {
236 virt_viewer_app_simple_message_dialog(self, _("Failed to initiate connection"));
237 }
238 }
239
240 static void
241 spice_ctrl_show(SpiceCtrlController *ctrl G_GNUC_UNUSED, RemoteViewer *self)
242 {
243 virt_viewer_app_show_display(VIRT_VIEWER_APP(self));
244 }
245
246 static void
247 spice_ctrl_hide(SpiceCtrlController *ctrl G_GNUC_UNUSED, RemoteViewer *self)
248 {
249 virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Display disabled by controller"));
250 }
251
252 static void
253 spice_menuitem_activate_cb(GtkMenuItem *mi, GObject *ctrl)
254 {
255 SpiceCtrlMenuItem *menuitem = g_object_get_data(G_OBJECT(mi), "spice-menuitem");
256
257 g_return_if_fail(menuitem != NULL);
258 if (gtk_menu_item_get_submenu(mi))
259 return;
260
261 if (SPICE_CTRL_IS_CONTROLLER(ctrl))
262 spice_ctrl_controller_menu_item_click_msg(SPICE_CTRL_CONTROLLER(ctrl), menuitem->id);
263 else if (SPICE_CTRL_IS_FOREIGN_MENU(ctrl))
264 spice_ctrl_foreign_menu_menu_item_click_msg(SPICE_CTRL_FOREIGN_MENU(ctrl), menuitem->id);
265 }
266
267 static GtkWidget *
268 ctrlmenu_to_gtkmenu (RemoteViewer *self, SpiceCtrlMenu *ctrlmenu, GObject *ctrl)
269 {
270 GList *l;
271 GtkWidget *menu = gtk_menu_new();
272 guint n = 0;
273
274 for (l = ctrlmenu->items; l != NULL; l = l->next) {
275 SpiceCtrlMenuItem *menuitem = l->data;
276 GtkWidget *item;
277 char *s;
278 if (menuitem->text == NULL) {
279 g_warn_if_reached();
280 continue;
281 }
282
283 for (s = menuitem->text; *s; s++)
284 if (*s == '&')
285 *s = '_';
286
287 if (g_str_equal(menuitem->text, "-")) {
288 item = gtk_separator_menu_item_new();
289 } else if (menuitem->flags & CONTROLLER_MENU_FLAGS_CHECKED) {
290 item = gtk_check_menu_item_new_with_mnemonic(menuitem->text);
291 g_object_set(item, "active", TRUE, NULL);
292 } else {
293 item = gtk_menu_item_new_with_mnemonic(menuitem->text);
294 }
295
296 if (menuitem->flags & (CONTROLLER_MENU_FLAGS_GRAYED | CONTROLLER_MENU_FLAGS_DISABLED))
297 gtk_widget_set_sensitive(item, FALSE);
298
299 g_object_set_data_full(G_OBJECT(item), "spice-menuitem",
300 g_object_ref(menuitem), g_object_unref);
301 g_signal_connect(item, "activate", G_CALLBACK(spice_menuitem_activate_cb), ctrl);
302 gtk_menu_attach(GTK_MENU (menu), item, 0, 1, n, n + 1);
303 n += 1;
304
305 if (menuitem->submenu) {
306 gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),
307 ctrlmenu_to_gtkmenu(self, menuitem->submenu, ctrl));
308 }
309 }
310
311 if (n == 0) {
312 g_object_ref_sink(menu);
313 g_object_unref(menu);
314 menu = NULL;
315 }
316
317 gtk_widget_show_all(menu);
318 return menu;
319 }
320
321 static void
322 spice_menu_update(RemoteViewer *self, VirtViewerWindow *win)
323 {
324 GtkWidget *menuitem = g_object_get_data(G_OBJECT(win), "spice-menu");
325 SpiceCtrlMenu *menu;
326
327 if (self->priv->controller == NULL)
328 return;
329
330 if (menuitem != NULL)
331 gtk_widget_destroy(menuitem);
332
333 {
334 GtkMenuShell *shell = GTK_MENU_SHELL(gtk_builder_get_object(virt_viewer_window_get_builder(win), "top-menu"));
335 menuitem = gtk_menu_item_new_with_label("Spice");
336 gtk_menu_shell_append(shell, menuitem);
337 g_object_set_data(G_OBJECT(win), "spice-menu", menuitem);
338 }
339
340 g_object_get(self->priv->controller, "menu", &menu, NULL);
341 if (menu == NULL || g_list_length(menu->items) == 0) {
342 gtk_widget_set_visible(menuitem, FALSE);
343 } else {
344 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem),
345 ctrlmenu_to_gtkmenu(self, menu, G_OBJECT(self->priv->controller)));
346 gtk_widget_set_visible(menuitem, TRUE);
347 }
348
349 if (menu != NULL)
350 g_object_unref(menu);
351 }
352
353 static void
354 spice_menu_update_each(gpointer key G_GNUC_UNUSED,
355 gpointer value,
356 gpointer user_data)
357 {
358 spice_menu_update(REMOTE_VIEWER(user_data), VIRT_VIEWER_WINDOW(value));
359 }
360
361 static void
362 spice_ctrl_menu_updated(RemoteViewer *self)
363 {
364 GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self));
365
366 DEBUG_LOG("Spice controller menu updated");
367
368 g_hash_table_foreach(windows, spice_menu_update_each, self);
369 }
370
371 static void
372 foreign_menu_update(RemoteViewer *self, VirtViewerWindow *win)
373 {
374 GtkWidget *menuitem = g_object_get_data(G_OBJECT(win), "foreign-menu");
375 SpiceCtrlMenu *menu;
376
377 if (self->priv->ctrl_foreign_menu == NULL)
378 return;
379
380 if (menuitem != NULL)
381 gtk_widget_destroy(menuitem);
382
383 {
384 GtkMenuShell *shell = GTK_MENU_SHELL(gtk_builder_get_object(virt_viewer_window_get_builder(win), "top-menu"));
385 const gchar *title = spice_ctrl_foreign_menu_get_title(self->priv->ctrl_foreign_menu);
386 menuitem = gtk_menu_item_new_with_label(title);
387 gtk_menu_shell_append(shell, menuitem);
388 g_object_set_data(G_OBJECT(win), "foreign-menu", menuitem);
389 }
390
391 g_object_get(self->priv->ctrl_foreign_menu, "menu", &menu, NULL);
392 if (menu == NULL || g_list_length(menu->items) == 0) {
393 gtk_widget_set_visible(menuitem, FALSE);
394 } else {
395 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem),
396 ctrlmenu_to_gtkmenu(self, menu, G_OBJECT(self->priv->ctrl_foreign_menu)));
397 gtk_widget_set_visible(menuitem, TRUE);
398 }
399 g_object_unref(menu);
400 }
401
402 static void
403 foreign_menu_update_each(gpointer key G_GNUC_UNUSED,
404 gpointer value,
405 gpointer user_data)
406 {
407 foreign_menu_update(REMOTE_VIEWER(user_data), VIRT_VIEWER_WINDOW(value));
408 }
409
410 static void
411 spice_foreign_menu_updated(RemoteViewer *self)
412 {
413 GHashTable *windows = virt_viewer_app_get_windows(VIRT_VIEWER_APP(self));
414
415 DEBUG_LOG("Spice foreign menu updated");
416
417 g_hash_table_foreach(windows, foreign_menu_update_each, self);
418 }
419
420 static SpiceSession *
421 remote_viewer_get_spice_session(RemoteViewer *self)
422 {
423 VirtViewerSession *vsession = NULL;
424 SpiceSession *session = NULL;
425
426 g_object_get(self, "session", &vsession, NULL);
427 g_return_val_if_fail(vsession != NULL, NULL);
428
429 g_object_get(vsession, "spice-session", &session, NULL);
430
431 g_object_unref(vsession);
432
433 return session;
434 }
435
436 static gchar *
437 ctrl_key_to_gtk_key(const gchar *key)
438 {
439 int i;
440
441 static const struct {
442 const char *ctrl;
443 const char *gtk;
444 } keys[] = {
445 /* FIXME: right alt, right ctrl, right shift, cmds */
446 { "alt", "<Alt>" },
447 { "ralt", "<Alt>" },
448 { "rightalt", "<Alt>" },
449 { "right-alt", "<Alt>" },
450 { "lalt", "<Alt>" },
451 { "leftalt", "<Alt>" },
452 { "left-alt", "<Alt>" },
453
454 { "ctrl", "<Ctrl>" },
455 { "rctrl", "<Ctrl>" },
456 { "rightctrl", "<Ctrl>" },
457 { "right-ctrl", "<Ctrl>" },
458 { "lctrl", "<Ctrl>" },
459 { "leftctrl", "<Ctrl>" },
460 { "left-ctrl", "<Ctrl>" },
461
462 { "shift", "<Shift>" },
463 { "rshift", "<Shift>" },
464 { "rightshift", "<Shift>" },
465 { "right-shift", "<Shift>" },
466 { "lshift", "<Shift>" },
467 { "leftshift", "<Shift>" },
468 { "left-shift", "<Shift>" },
469
470 { "cmd", "<Ctrl>" },
471 { "rcmd", "<Ctrl>" },
472 { "rightcmd", "<Ctrl>" },
473 { "right-cmd", "<Ctrl>" },
474 { "lcmd", "<Ctrl>" },
475 { "leftcmd", "<Ctrl>" },
476 { "left-cmd", "<Ctrl>" },
477
478 { "win", "<Super>" },
479 { "rwin", "<Super>" },
480 { "rightwin", "<Super>" },
481 { "right-win", "<Super>" },
482 { "lwin", "<Super>" },
483 { "leftwin", "<Super>" },
484 { "left-win", "<Super>" },
485
486 { "esc", "Escape" },
487 /* { "escape", "Escape" }, */
488
489 { "ins", "Insert" },
490 /* { "insert", "Insert" }, */
491
492 { "del", "Delete" },
493 /* { "delete", "Delete" }, */
494
495 { "pgup", "Page_Up" },
496 { "pageup", "Page_Up" },
497 { "pgdn", "Page_Down" },
498 { "pagedown", "Page_Down" },
499
500 /* { "home", "home" }, */
501 /* { "end", "end" }, */
502 /* { "space", "space" }, */
503
504 { "enter", "Return" },
505
506 /* { "tab", "tab" }, */
507 /* { "f1", "F1" }, */
508 /* { "f2", "F2" }, */
509 /* { "f3", "F3" }, */
510 /* { "f4", "F4" }, */
511 /* { "f5", "F5" }, */
512 /* { "f6", "F6" }, */
513 /* { "f7", "F7" }, */
514 /* { "f8", "F8" }, */
515 /* { "f9", "F9" }, */
516 /* { "f10", "F10" }, */
517 /* { "f11", "F11" }, */
518 /* { "f12", "F12" } */
519 };
520
521 for (i = 0; i < G_N_ELEMENTS(keys); ++i) {
522 if (g_ascii_strcasecmp(keys[i].ctrl, key) == 0)
523 return g_strdup(keys[i].gtk);
524 }
525
526 return g_ascii_strup(key, -1);
527 }
528
529 static gchar*
530 ctrl_key_to_gtk_accelerator(const gchar *key)
531 {
532 gchar *accel, **k, **keyv;
533
534 keyv = g_strsplit(key, "+", -1);
535 g_return_val_if_fail(keyv != NULL, NULL);
536
537 for (k = keyv; *k != NULL; k++) {
538 gchar *tmp = *k;
539 *k = ctrl_key_to_gtk_key(tmp);
540 g_free(tmp);
541 }
542
543 accel = g_strjoinv(NULL, keyv);
544 g_strfreev(keyv);
545
546 return accel;
547 }
548
549 static void
550 app_notified(VirtViewerApp *app,
551 GParamSpec *pspec,
552 RemoteViewer *self)
553 {
554 GValue value = G_VALUE_INIT;
555
556 g_value_init(&value, pspec->value_type);
557 g_object_get_property(G_OBJECT(app), pspec->name, &value);
558
559 if (g_str_equal(pspec->name, "has-focus")) {
560 if (self->priv->ctrl_foreign_menu)
561 spice_ctrl_foreign_menu_app_activated_msg(self->priv->ctrl_foreign_menu, g_value_get_boolean(&value));
562 }
563
564 g_value_unset(&value);
565 }
566
567 static void
568 spice_ctrl_notified(SpiceCtrlController *ctrl,
569 GParamSpec *pspec,
570 RemoteViewer *self)
571 {
572 SpiceSession *session = remote_viewer_get_spice_session(self);
573 GValue value = G_VALUE_INIT;
574 VirtViewerApp *app = VIRT_VIEWER_APP(self);
575
576 g_return_if_fail(session != NULL);
577
578 g_value_init(&value, pspec->value_type);
579 g_object_get_property(G_OBJECT(ctrl), pspec->name, &value);
580
581 if (g_str_equal(pspec->name, "host") ||
582 g_str_equal(pspec->name, "port") ||
583 g_str_equal(pspec->name, "password") ||
584 g_str_equal(pspec->name, "ca-file") ||
585 g_str_equal(pspec->name, "enable-smartcard") ||
586 g_str_equal(pspec->name, "color-depth") ||
587 g_str_equal(pspec->name, "disable-effects") ||
588 g_str_equal(pspec->name, "enable-usbredir")) {
589 g_object_set_property(G_OBJECT(session), pspec->name, &value);
590 } else if (g_str_equal(pspec->name, "sport")) {
591 g_object_set_property(G_OBJECT(session), "tls-port", &value);
592 } else if (g_str_equal(pspec->name, "tls-ciphers")) {
593 g_object_set_property(G_OBJECT(session), "ciphers", &value);
594 } else if (g_str_equal(pspec->name, "host-subject")) {
595 g_object_set_property(G_OBJECT(session), "cert-subject", &value);
596 } else if (g_str_equal(pspec->name, "enable-usb-autoshare")) {
597 VirtViewerSession *vsession = NULL;
598
599 g_object_get(self, "session", &vsession, NULL);
600 g_object_set_property(G_OBJECT(vsession), "auto-usbredir", &value);
601 g_object_unref(G_OBJECT(vsession));
602 } else if (g_str_equal(pspec->name, "usb-filter")) {
603 SpiceUsbDeviceManager *manager;
604 manager = spice_usb_device_manager_get(session, NULL);
605 if (manager != NULL) {
606 g_object_set_property(G_OBJECT(manager),
607 "auto-connect-filter",
608 &value);
609 }
610 } else if (g_str_equal(pspec->name, "title")) {
611 g_object_set_property(G_OBJECT(app), "title", &value);
612 } else if (g_str_equal(pspec->name, "display-flags")) {
613 guint flags = g_value_get_uint(&value);
614 gboolean fullscreen = flags & CONTROLLER_SET_FULL_SCREEN;
615 gboolean auto_res = flags & CONTROLLER_AUTO_DISPLAY_RES;
616 g_object_set(G_OBJECT(self), "fullscreen", fullscreen, NULL);
617 g_debug("unimplemented resize-guest %d", auto_res);
618 /* g_object_set(G_OBJECT(self), "resize-guest", auto_res, NULL); */
619 } else if (g_str_equal(pspec->name, "menu")) {
620 spice_ctrl_menu_updated(self);
621 } else if (g_str_equal(pspec->name, "hotkeys")) {
622 gchar **hotkey, **hotkeys = g_strsplit(g_value_get_string(&value), ",", -1);
623 if (!hotkeys || g_strv_length(hotkeys) == 0) {
624 g_object_set(app, "enable-accel", FALSE, NULL);
625 goto end;
626 }
627
628 for (hotkey = hotkeys; *hotkey != NULL; hotkey++) {
629 gchar *key = strstr(*hotkey, "=");
630 if (key == NULL) {
631 g_warn_if_reached();
632 continue;
633 }
634 *key = '\0';
635
636 gchar *accel = ctrl_key_to_gtk_accelerator(key + 1);
637 guint accel_key;
638 GdkModifierType accel_mods;
639 gtk_accelerator_parse(accel, &accel_key, &accel_mods);
640 g_free(accel);
641
642 if (g_str_equal(*hotkey, "toggle-fullscreen")) {
643 gtk_accel_map_change_entry("<virt-viewer>/view/fullscreen", accel_key, accel_mods, TRUE);
644 } else if (g_str_equal(*hotkey, "release-cursor")) {
645 gtk_accel_map_change_entry("<virt-viewer>/view/release-cursor", accel_key, accel_mods, TRUE);
646 } else if (g_str_equal(*hotkey, "smartcard-insert")) {
647 gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-insert", accel_key, accel_mods, TRUE);
648 } else if (g_str_equal(*hotkey, "smartcard-remove")) {
649 gtk_accel_map_change_entry("<virt-viewer>/file/smartcard-remove", accel_key, accel_mods, TRUE);
650 } else {
651 g_warning("Unknown hotkey command %s", *hotkey);
652 }
653 }
654 g_strfreev(hotkeys);
655
656 g_object_set(app, "enable-accel", TRUE, NULL);
657 } else {
658 gchar *content = g_strdup_value_contents(&value);
659
660 g_debug("unimplemented property: %s=%s", pspec->name, content);
661 g_free(content);
662 }
663
664 end:
665 g_object_unref(session);
666 g_value_unset(&value);
667 }
668
669 static void
670 spice_ctrl_foreign_menu_notified(SpiceCtrlForeignMenu *ctrl_foreign_menu G_GNUC_UNUSED,
671 GParamSpec *pspec,
672 RemoteViewer *self)
673 {
674 if (g_str_equal(pspec->name, "menu")) {
675 spice_foreign_menu_updated(self);
676 }
677 }
678
679 static void
680 spice_ctrl_listen_async_cb(GObject *object,
681 GAsyncResult *res,
682 gpointer user_data)
683 {
684 GError *error = NULL;
685 VirtViewerApp *app = VIRT_VIEWER_APP(user_data);
686
687 if (SPICE_CTRL_IS_CONTROLLER(object))
688 spice_ctrl_controller_listen_finish(SPICE_CTRL_CONTROLLER(object), res, &error);
689 else if (SPICE_CTRL_IS_FOREIGN_MENU(object)) {
690 spice_ctrl_foreign_menu_listen_finish(SPICE_CTRL_FOREIGN_MENU(object), res, &error);
691 } else
692 g_warn_if_reached();
693
694 if (error != NULL) {
695 virt_viewer_app_simple_message_dialog(app,
696 _("Controller connection failed: %s"),
697 error->message);
698 g_clear_error(&error);
699 exit(EXIT_FAILURE); /* TODO: make start async? */
700 }
701 }
702
703
704 static int
705 remote_viewer_activate(VirtViewerApp *app)
706 {
707 g_return_val_if_fail(REMOTE_VIEWER_IS(app), -1);
708 RemoteViewer *self = REMOTE_VIEWER(app);
709 int ret = -1;
710
711 if (self->priv->controller) {
712 SpiceSession *session = remote_viewer_get_spice_session(self);
713 ret = spice_session_connect(session);
714 g_object_unref(session);
715 } else {
716 ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->activate(app);
717 }
718
719 return ret;
720 }
721
722 static void
723 remote_viewer_window_added(VirtViewerApp *app G_GNUC_UNUSED,
724 VirtViewerWindow *win)
725 {
726 spice_menu_update(REMOTE_VIEWER(app), win);
727 foreign_menu_update(REMOTE_VIEWER(app), win);
728 }
729 #endif
730
731 static gboolean
732 remote_viewer_start(VirtViewerApp *app)
733 {
734 g_return_val_if_fail(REMOTE_VIEWER_IS(app), FALSE);
735
736 #if HAVE_SPICE_GTK
737 RemoteViewer *self = REMOTE_VIEWER(app);
738 RemoteViewerPrivate *priv = self->priv;
739 #endif
740 gboolean ret = FALSE;
741 gchar *guri = NULL;
742 gchar *type = NULL;
743
744 #if HAVE_SPICE_GTK
745 g_signal_connect(app, "notify", G_CALLBACK(app_notified), self);
746
747 if (priv->controller) {
748 if (virt_viewer_app_create_session(app, "spice") < 0) {
749 virt_viewer_app_simple_message_dialog(app, _("Couldn't create a Spice session"));
750 goto cleanup;
751 }
752
753 g_signal_connect(priv->controller, "notify", G_CALLBACK(spice_ctrl_notified), self);
754 g_signal_connect(priv->controller, "do_connect", G_CALLBACK(spice_ctrl_do_connect), self);
755 g_signal_connect(priv->controller, "show", G_CALLBACK(spice_ctrl_show), self);
756 g_signal_connect(priv->controller, "hide", G_CALLBACK(spice_ctrl_hide), self);
757
758 spice_ctrl_controller_listen(priv->controller, NULL, spice_ctrl_listen_async_cb, self);
759
760 g_signal_connect(priv->ctrl_foreign_menu, "notify", G_CALLBACK(spice_ctrl_foreign_menu_notified), self);
761 spice_ctrl_foreign_menu_listen(priv->ctrl_foreign_menu, NULL, spice_ctrl_listen_async_cb, self);
762
763 virt_viewer_app_show_status(VIRT_VIEWER_APP(self), _("Setting up Spice session..."));
764 } else {
765 #endif
766 g_object_get(app, "guri", &guri, NULL);
767 g_return_val_if_fail(guri != NULL, FALSE);
768
769 DEBUG_LOG("Opening display to %s", guri);
770 g_object_set(app, "title", guri, NULL);
771
772 if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0 || type == NULL) {
773 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the connection type from URI"));
774 goto cleanup;
775 }
776
777 if (virt_viewer_app_create_session(app, type) < 0) {
778 virt_viewer_app_simple_message_dialog(app, _("Couldn't create a session for this type: %s"), type);
779 goto cleanup;
780 }
781
782 if (virt_viewer_app_initial_connect(app) < 0) {
783 virt_viewer_app_simple_message_dialog(app, _("Failed to initiate connection"));
784 goto cleanup;
785 }
786 #if HAVE_SPICE_GTK
787 }
788 #endif
789
790 ret = VIRT_VIEWER_APP_CLASS(remote_viewer_parent_class)->start(app);
791
792 cleanup:
793 g_free(guri);
794 g_free(type);
795 return ret;
796 }
797
798 /*
799 * Local variables:
800 * c-indent-level: 4
801 * c-basic-offset: 4
802 * indent-tabs-mode: nil
803 * End:
804 */
0 [Desktop Entry]
1 Name=Remote Viewer
2 Exec=remote-viewer %u
3 Type=Application
4 Terminal=False
5 MimeType=x-scheme-handler/spice
0 /*
1 * Virt Viewer: A virtual machine console viewer
2 *
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Daniel P. Berrange <berrange@redhat.com>
20 */
21
22 #ifndef REMOTE_VIEWER_H
23 #define REMOTE_VIEWER_H
24
25 #include <glib-object.h>
26 #include "virt-viewer-app.h"
27
28 G_BEGIN_DECLS
29
30 #define REMOTE_VIEWER_TYPE remote_viewer_get_type()
31 #define REMOTE_VIEWER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), REMOTE_VIEWER_TYPE, RemoteViewer))
32 #define REMOTE_VIEWER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), REMOTE_VIEWER_TYPE, RemoteViewerClass))
33 #define REMOTE_VIEWER_IS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), REMOTE_VIEWER_TYPE))
34 #define REMOTE_VIEWER_IS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), REMOTE_VIEWER_TYPE))
35 #define REMOTE_VIEWER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), REMOTE_VIEWER_TYPE, RemoteViewerClass))
36
37 typedef struct _RemoteViewerPrivate RemoteViewerPrivate;
38
39 typedef struct {
40 VirtViewerApp parent;
41 RemoteViewerPrivate *priv;
42 } RemoteViewer;
43
44 typedef struct {
45 VirtViewerAppClass parent_class;
46 } RemoteViewerClass;
47
48 GType remote_viewer_get_type (void);
49
50 RemoteViewer* remote_viewer_new(const gchar *uri, gboolean verbose);
51 RemoteViewer* remote_viewer_new_with_controller(gboolean verbose);
52
53 G_END_DECLS
54
55 #endif /* REMOTE_VIEWER_H */
56 /*
57 * Local variables:
58 * c-indent-level: 4
59 * c-basic-offset: 4
60 * indent-tabs-mode: nil
61 * End:
62 */
2828 * moused-over and auto-closes when the mouse leaves.
2929 */
3030
31 #include <config.h>
3132
3233 #include "autoDrawer.h"
3334
213214
214215 /* Is the mouse cursor inside the event box? */
215216
216 {
217 if (gtk_widget_get_window(priv->evBox)) {
217218 int x;
218219 int y;
219
220 #if GTK_CHECK_VERSION(3, 0, 0)
221 GdkDevice *dev;
222 GdkDeviceManager *devmgr;
223
224 devmgr = gdk_display_get_device_manager(gtk_widget_get_display(priv->evBox));
225 dev = gdk_device_manager_get_client_pointer(devmgr);
226
227 gdk_window_get_device_position(gtk_widget_get_window(priv->evBox),
228 dev, &x, &y, NULL);
229 #else
220230 gtk_widget_get_pointer(priv->evBox, &x, &y);
231 #endif
232
221233 gtk_widget_get_allocation(priv->evBox, &allocation);
222234 g_assert(gtk_container_get_border_width( GTK_CONTAINER(priv->evBox))
223235 == 0);
256268 }
257269 #else
258270 if (window->group && window->group->grabs) {
259 grabbed = GTK_WIDGET(window->group->grabs->data);
271 grabbed = GTK_WIDGET(window->group->grabs->data);
260272 }
261273 #endif
262274 if (!grabbed) {
439451
440452 static void
441453 ViewAutoDrawerOnHierarchyChanged(ViewAutoDrawer *that, // IN
442 GtkWidget *oldToplevel) // IN
454 GtkWidget *oldToplevel) // IN
443455 {
444456 GtkWidget *newToplevel = gtk_widget_get_toplevel(GTK_WIDGET(that));
445457
652664
653665 ovBoxClass->set_over = ViewAutoDrawerSetOver;
654666
655 g_type_class_add_private(objectClass, sizeof(ViewAutoDrawerPrivate));
667 g_type_class_add_private(klass, sizeof(ViewAutoDrawerPrivate));
656668 }
657669
658670
688700 sizeof (ViewAutoDrawer),
689701 0, /* n_preallocs */
690702 (GInstanceInitFunc)ViewAutoDrawerInit,
691 NULL,
703 NULL,
692704 };
693705
694706 type = g_type_register_static(VIEW_TYPE_DRAWER, "ViewAutoDrawer", &info, 0);
2727 * sliding smoothly, at constant speed, over another one.
2828 */
2929
30 #include <config.h>
3031
3132 #include "drawer.h"
3233
138139
139140 objectClass->finalize = ViewDrawerFinalize;
140141
141 g_type_class_add_private(objectClass, sizeof(ViewDrawerPrivate));
142 g_type_class_add_private(klass, sizeof(ViewDrawerPrivate));
142143 }
143144
144145
174175 sizeof (ViewDrawer),
175176 0, /* n_preallocs */
176177 (GInstanceInitFunc)ViewDrawerInit,
177 NULL
178 NULL
178179 };
179180
180181 type = g_type_register_static(VIEW_TYPE_OV_BOX, "ViewDrawer", &info, 0);
7171 * --hpreg
7272 */
7373
74 #include <config.h>
7475
7576 #include "ovBox.h"
7677
7778 #if ! GTK_CHECK_VERSION(3, 0, 0)
78 #define gtk_widget_set_realized(widget, val) \
79 #define gtk_widget_set_realized(widget, val) \
7980 GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED)
80 #define gtk_widget_get_realized(widget) \
81 #define gtk_widget_get_realized(widget) \
8182 GTK_WIDGET_REALIZED(widget)
8283 #endif
8384
335336 static void
336337 ViewOvBoxSetBackground(ViewOvBox *that) // IN
337338 {
338 GtkWidget *widget;
339 GtkWidget *widget = GTK_WIDGET(that);
340
341 #if GTK_CHECK_VERSION(3, 0, 0)
342 GtkStyleContext *stylecontext;
343
344 stylecontext = gtk_widget_get_style_context(widget);
345 gtk_style_context_set_background(stylecontext, gtk_widget_get_window(widget));
346 gtk_style_context_set_background(stylecontext, that->priv->underWin);
347 gtk_style_context_set_background(stylecontext, that->priv->overWin);
348 #else
339349 GtkStyle *style;
340350
341 widget = GTK_WIDGET(that);
342351 style = gtk_widget_get_style (widget);
343352 gtk_style_set_background(style, gtk_widget_get_window(widget), GTK_STATE_NORMAL);
344353 gtk_style_set_background(style, that->priv->underWin, GTK_STATE_NORMAL);
345354 gtk_style_set_background(style, that->priv->overWin, GTK_STATE_NORMAL);
355 #endif
346356 }
347357
348358
392402 &attributes, mask);
393403 gtk_widget_set_window(widget, window);
394404 gdk_window_set_user_data(window, that);
405 #if !GTK_CHECK_VERSION(3, 0, 0)
395406 gtk_widget_set_style(widget, gtk_style_attach(gtk_widget_get_style(widget), window));
407 #endif
396408
397409 /*
398410 * The order in which we create the children X window matters: the child
495507 that = VIEW_OV_BOX(widget);
496508 priv = that->priv;
497509
510 #if GTK_CHECK_VERSION(3, 0, 0)
511 gtk_widget_get_preferred_size(priv->under, NULL, &underR);
512 gtk_widget_get_preferred_size(priv->over, NULL, &priv->overR);
513 #else
498514 gtk_widget_size_request(priv->under, &underR);
499515 gtk_widget_size_request(priv->over, &priv->overR);
516 #endif
500517
501518 gtk_container_child_get(GTK_CONTAINER(that), priv->over,
502519 "expand", &expand,
705722 static void
706723 ViewOvBoxClassInit(ViewOvBoxClass *klass) // IN
707724 {
708 GObjectClass *objectClass;
709725 GtkWidgetClass *widgetClass;
710726
711 objectClass = G_OBJECT_CLASS(klass);
712727 widgetClass = GTK_WIDGET_CLASS(klass);
713728
714729 widgetClass->map = ViewOvBoxMap;
728743
729744 parentClass = g_type_class_peek_parent(klass);
730745
731 g_type_class_add_private(objectClass, sizeof(ViewOvBoxPrivate));
746 g_type_class_add_private(klass, sizeof(ViewOvBoxPrivate));
732747 }
733748
734749
764779 sizeof (ViewOvBox),
765780 0, /* n_preallocs */
766781 (GInstanceInitFunc)ViewOvBoxInit,
767 NULL,
782 NULL,
768783 };
769784
770785 type = g_type_register_static(GTK_TYPE_BOX, "ViewOvBox", &info, 0);
0 /*
1 * Virt Viewer: A virtual machine console viewer
2 *
3 * Copyright (C) 2007-2009 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
5 * Copyright (C) 2010 Marc-André Lureau
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 *
21 * Author: Daniel P. Berrange <berrange@redhat.com>
22 */
23
24 #include <config.h>
25
26 #ifndef _VIRT_GLIB_COMPAT_H
27 # define _VIRT_GLIB_COMPAT_H 1
28
29 #include <glib-object.h>
30
31 G_BEGIN_DECLS
32
33 #ifndef g_clear_pointer
34 #define g_clear_pointer(pp, destroy) \
35 G_STMT_START { \
36 G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
37 /* Only one access, please */ \
38 gpointer *_pp = (gpointer *) (pp); \
39 gpointer _p; \
40 /* This assignment is needed to avoid a gcc warning */ \
41 GDestroyNotify _destroy = (GDestroyNotify) (destroy); \
42 \
43 (void) (0 ? (gpointer) *(pp) : 0); \
44 do \
45 _p = g_atomic_pointer_get (_pp); \
46 while G_UNLIKELY (!g_atomic_pointer_compare_and_exchange (_pp, _p, NULL)); \
47 \
48 if (_p) \
49 _destroy (_p); \
50 } G_STMT_END
51 #endif
52
53 G_END_DECLS
54
55 #endif // _VIRT_GLIB_COMPAT_H
0 /*
1 * Virt Viewer: A virtual machine console viewer
2 *
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
5 * Copyright (C) 2010 Marc-André Lureau
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 *
21 * Author: Daniel P. Berrange <berrange@redhat.com>
22 */
23 #ifndef _VIRT_GTK_COMPAT
24 # define _VIRT_GTK_COMPAT
25
26 #include <gdk/gdk.h>
27
28 G_BEGIN_DECLS
29
30 #if GTK_CHECK_VERSION(3, 0, 0)
31 #define GDK_Control_L GDK_KEY_Control_L
32 #define GDK_Alt_L GDK_KEY_Alt_L
33 #define GDK_Delete GDK_KEY_Delete
34 #define GDK_BackSpace GDK_KEY_BackSpace
35 #define GDK_Print GDK_KEY_Print
36 #define GDK_F1 GDK_KEY_F1
37 #define GDK_F2 GDK_KEY_F2
38 #define GDK_F3 GDK_KEY_F3
39 #define GDK_F4 GDK_KEY_F4
40 #define GDK_F5 GDK_KEY_F5
41 #define GDK_F6 GDK_KEY_F6
42 #define GDK_F7 GDK_KEY_F7
43 #define GDK_F8 GDK_KEY_F8
44 #define GDK_F9 GDK_KEY_F9
45 #define GDK_F10 GDK_KEY_F10
46 #define GDK_F11 GDK_KEY_F11
47 #define GDK_F12 GDK_KEY_F12
48 #endif
49
50 G_END_DECLS
51
52 #endif /* _VIRT_GTK_COMPAT */
53
54 /*
55 * Local variables:
56 * c-indent-level: 4
57 * c-basic-offset: 4
58 * indent-tabs-mode: nil
59 * End:
60 */
0 <?xml version="1.0"?>
0 <?xml version="1.0" encoding="UTF-8"?>
11 <interface>
22 <!-- interface-requires gtk+ 2.12 -->
3 <!-- interface-naming-policy toplevel-contextual -->
43 <object class="GtkAboutDialog" id="about">
4 <property name="can_focus">False</property>
55 <property name="border_width">5</property>
66 <property name="title" translatable="yes">About Glade</property>
77 <property name="resizable">False</property>
8 <property name="modal">True</property>
89 <property name="window_position">center-on-parent</property>
10 <property name="destroy_with_parent">True</property>
911 <property name="type_hint">dialog</property>
12 <property name="skip_taskbar_hint">True</property>
13 <property name="skip_pager_hint">True</property>
1014 <property name="program_name">Virtual Machine Viewer</property>
11 <property name="copyright" translatable="yes">Copyright 2007-2011 Daniel P. Berrange
12 Copyright 2007-2011 Red Hat, Inc.</property>
15 <property name="copyright" translatable="yes">Copyright (C) 2007-2012 Daniel P. Berrange
16 Copyright (C) 2007-2012 Red Hat, Inc.</property>
1317 <property name="comments" translatable="yes">A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt</property>
1418 <property name="website">http://virt-manager.org/</property>
1519 <property name="website_label" translatable="yes">virt-manager.org</property>
3135 Marc-André Lureau
3236 </property>
3337 <property name="translator_credits" translatable="yes">The Fedora Translation Team</property>
34 <signal name="response" handler="virt_viewer_app_about_close"/>
35 <signal name="delete_event" handler="virt_viewer_app_about_delete"/>
38 <property name="logo_icon_name">virt-viewer</property>
39 <signal name="delete-event" handler="virt_viewer_app_about_delete" swapped="no"/>
40 <signal name="response" handler="virt_viewer_app_about_close" swapped="no"/>
3641 <child internal-child="vbox">
37 <object class="GtkVBox" id="dialog-vbox1">
42 <object class="GtkBox" id="dialog-vbox1">
3843 <property name="visible">True</property>
44 <property name="can_focus">False</property>
45 <property name="orientation">vertical</property>
3946 <property name="spacing">2</property>
40 <child>
41 <placeholder/>
42 </child>
4347 <child internal-child="action_area">
44 <object class="GtkHButtonBox" id="dialog-action_area1">
48 <object class="GtkButtonBox" id="dialog-action_area1">
4549 <property name="visible">True</property>
50 <property name="can_focus">False</property>
4651 <property name="layout_style">end</property>
4752 </object>
4853 <packing>
4954 <property name="expand">False</property>
55 <property name="fill">True</property>
5056 <property name="pack_type">end</property>
5157 <property name="position">0</property>
5258 </packing>
59 </child>
60 <child>
61 <placeholder/>
5362 </child>
5463 </object>
5564 </child>
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
4949 #include <windows.h>
5050 #endif
5151
52 #include "virt-gtk-compat.h"
5253 #include "virt-viewer-app.h"
5354 #include "virt-viewer-auth.h"
5455 #include "virt-viewer-window.h"
5556 #include "virt-viewer-session.h"
57 #ifdef HAVE_GTK_VNC
5658 #include "virt-viewer-session-vnc.h"
59 #endif
5760 #ifdef HAVE_SPICE_GTK
5861 #include "virt-viewer-session-spice.h"
5962 #endif
6770
6871 /* Internal methods */
6972 static void virt_viewer_app_connected(VirtViewerSession *session,
70 VirtViewerApp *self);
73 VirtViewerApp *self);
7174 static void virt_viewer_app_initialized(VirtViewerSession *session,
72 VirtViewerApp *self);
75 VirtViewerApp *self);
7376 static void virt_viewer_app_disconnected(VirtViewerSession *session,
74 VirtViewerApp *self);
77 VirtViewerApp *self);
7578 static void virt_viewer_app_auth_refused(VirtViewerSession *session,
76 const char *msg,
77 VirtViewerApp *self);
79 const char *msg,
80 VirtViewerApp *self);
7881 static void virt_viewer_app_auth_failed(VirtViewerSession *session,
79 const char *msg,
80 VirtViewerApp *self);
82 const char *msg,
83 VirtViewerApp *self);
84 static void virt_viewer_app_usb_failed(VirtViewerSession *session,
85 const char *msg,
86 VirtViewerApp *self);
8187
8288 static void virt_viewer_app_server_cut_text(VirtViewerSession *session,
83 const gchar *text,
84 VirtViewerApp *self);
89 const gchar *text,
90 VirtViewerApp *self);
8591 static void virt_viewer_app_bell(VirtViewerSession *session,
86 VirtViewerApp *self);
92 VirtViewerApp *self);
93
94 static void virt_viewer_app_cancelled(VirtViewerSession *session,
95 VirtViewerApp *self);
8796
8897 static void virt_viewer_app_channel_open(VirtViewerSession *session,
89 VirtViewerSessionChannel *channel,
90 VirtViewerApp *self);
98 VirtViewerSessionChannel *channel,
99 VirtViewerApp *self);
91100 static void virt_viewer_app_update_pretty_address(VirtViewerApp *self);
92101 static void virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen);
93102 static void virt_viewer_app_update_menu_displays(VirtViewerApp *self);
94103
95104
96105 struct _VirtViewerAppPrivate {
97 VirtViewerWindow *main_window;
98 GtkWidget *main_notebook;
99 GtkWidget *container;
100 GHashTable *windows;
101 gchar *clipboard;
102
103 gboolean direct;
104 gboolean verbose;
105 gboolean authretry;
106 gboolean started;
107 gboolean fullscreen;
108
109 VirtViewerSession *session;
110 gboolean active;
111 gboolean connected;
112 guint reconnect_poll; /* source id */
113 char *unixsock;
114 char *ghost;
115 char *gport;
116 char *host; /* ssh */
117 int port;/* ssh */
118 char *user; /* ssh */
119 char *transport;
120 char *pretty_address;
121 gchar *guest_name;
122 gboolean grabbed;
106 VirtViewerWindow *main_window;
107 GtkWidget *main_notebook;
108 GtkWidget *container;
109 GHashTable *windows;
110 gchar *clipboard;
111
112 gboolean direct;
113 gboolean verbose;
114 gboolean enable_accel;
115 gboolean authretry;
116 gboolean started;
117 gboolean fullscreen;
118 gboolean fullscreen_auto_conf;
119 gboolean attach;
120 gboolean quiting;
121
122 VirtViewerSession *session;
123 gboolean active;
124 gboolean connected;
125 gboolean cancelled;
126 guint reconnect_poll; /* source id */
127 char *unixsock;
128 char *guri; /* prefered over ghost:gport */
129 char *ghost;
130 char *gport;
131 char *gtlsport;
132 char *host; /* ssh */
133 int port;/* ssh */
134 char *user; /* ssh */
135 char *transport;
136 char *pretty_address;
137 gchar *guest_name;
138 gboolean grabbed;
139 char *title;
140
141 gint focused;
123142 };
124143
125144
126145 G_DEFINE_ABSTRACT_TYPE(VirtViewerApp, virt_viewer_app, G_TYPE_OBJECT)
127 #define GET_PRIVATE(o) \
128 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate))
146 #define GET_PRIVATE(o) \
147 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_APP, VirtViewerAppPrivate))
129148
130149 enum {
131 PROP_0,
132 PROP_VERBOSE,
133 PROP_CONTAINER,
134 PROP_SESSION,
135 PROP_GUEST_NAME,
136 PROP_FULLSCREEN,
150 PROP_0,
151 PROP_VERBOSE,
152 PROP_CONTAINER,
153 PROP_SESSION,
154 PROP_GUEST_NAME,
155 PROP_GURI,
156 PROP_FULLSCREEN,
157 PROP_TITLE,
158 PROP_ENABLE_ACCEL,
159 PROP_HAS_FOCUS,
160 PROP_FULLSCREEN_AUTO_CONF,
137161 };
162
163 enum {
164 SIGNAL_WINDOW_ADDED,
165 SIGNAL_WINDOW_REMOVED,
166 SIGNAL_LAST,
167 };
168
169 static guint signals[SIGNAL_LAST];
138170
139171 void
140172 virt_viewer_app_set_debug(gboolean debug)
141173 {
142 doDebug = debug;
174 #if GLIB_CHECK_VERSION(2, 31, 0)
175 if (debug) {
176 const gchar *doms = g_getenv("G_MESSAGES_DEBUG");
177 if (!doms) {
178 g_setenv("G_MESSAGES_DEBUG", G_LOG_DOMAIN, 1);
179 } else if (!strstr(doms, G_LOG_DOMAIN)) {
180 gchar *newdoms = g_strdup_printf("%s %s", doms, G_LOG_DOMAIN);
181 g_setenv("G_MESSAGES_DEBUG", newdoms, 1);
182 g_free(newdoms);
183 }
184 }
185 #endif
186 doDebug = debug;
143187 }
144188
145189 void
146190 virt_viewer_app_simple_message_dialog(VirtViewerApp *self,
147 const char *fmt, ...)
148 {
149 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
150 GtkWindow *window = GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window));
151 GtkWidget *dialog;
152 char *msg;
153 va_list vargs;
154
155 va_start(vargs, fmt);
156
157 msg = g_strdup_vprintf(fmt, vargs);
158
159 va_end(vargs);
160
161 dialog = gtk_message_dialog_new(window,
162 GTK_DIALOG_MODAL |
163 GTK_DIALOG_DESTROY_WITH_PARENT,
164 GTK_MESSAGE_ERROR,
165 GTK_BUTTONS_OK,
166 "%s",
167 msg);
168
169 gtk_dialog_run(GTK_DIALOG(dialog));
170
171 gtk_widget_destroy(dialog);
172
173 g_free(msg);
191 const char *fmt, ...)
192 {
193 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
194 GtkWindow *window = GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window));
195 GtkWidget *dialog;
196 char *msg;
197 va_list vargs;
198
199 va_start(vargs, fmt);
200
201 msg = g_strdup_vprintf(fmt, vargs);
202
203 va_end(vargs);
204
205 dialog = gtk_message_dialog_new(window,
206 GTK_DIALOG_MODAL |
207 GTK_DIALOG_DESTROY_WITH_PARENT,
208 GTK_MESSAGE_ERROR,
209 GTK_BUTTONS_OK,
210 "%s",
211 msg);
212
213 gtk_dialog_run(GTK_DIALOG(dialog));
214
215 gtk_widget_destroy(dialog);
216
217 g_free(msg);
174218 }
175219
176220 void
177221 virt_viewer_app_quit(VirtViewerApp *self)
178222 {
179 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
180 VirtViewerAppPrivate *priv = self->priv;
181
182 if (priv->session)
183 virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
184 gtk_main_quit();
223 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
224 VirtViewerAppPrivate *priv = self->priv;
225
226 if (priv->session) {
227 virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
228 if (priv->connected) {
229 priv->quiting = TRUE;
230 return;
231 }
232 }
233
234 gtk_main_quit();
185235 }
186236
187237 static void count_window_visible(gpointer key G_GNUC_UNUSED,
188 gpointer value,
189 gpointer user_data)
190 {
191 GtkWindow *win = virt_viewer_window_get_window(VIRT_VIEWER_WINDOW(value));
192 guint *n = (guint*)user_data;
193
194 if (gtk_widget_get_visible(GTK_WIDGET(win)))
195 *n += 1;
238 gpointer value,
239 gpointer user_data)
240 {
241 GtkWindow *win = virt_viewer_window_get_window(VIRT_VIEWER_WINDOW(value));
242 guint *n = (guint*)user_data;
243
244 if (gtk_widget_get_visible(GTK_WIDGET(win)))
245 *n += 1;
196246 }
197247
198248 static guint
199249 virt_viewer_app_get_n_windows_visible(VirtViewerApp *self)
200250 {
201 guint n = 0;
202 g_hash_table_foreach(self->priv->windows, count_window_visible, &n);
203 return n;
251 guint n = 0;
252 g_hash_table_foreach(self->priv->windows, count_window_visible, &n);
253 return n;
204254 }
205255
206256 static guint
207257 virt_viewer_app_get_n_windows(VirtViewerApp *self)
208258 {
209 return g_hash_table_size(self->priv->windows);
259 return g_hash_table_size(self->priv->windows);
210260 }
211261
212262 gboolean
213263 virt_viewer_app_window_set_visible(VirtViewerApp *self,
214 VirtViewerWindow *vwin,
215 gboolean visible)
216 {
217 GtkWidget *window;
218 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
219 g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(vwin), FALSE);
220
221 window = GTK_WIDGET(virt_viewer_window_get_window(vwin));
222 if (visible) {
223 gtk_widget_show(window);
224 return TRUE;
225 } else {
226 if (virt_viewer_app_get_n_windows_visible(self) > 1) {
227 gtk_widget_hide(window);
228 return FALSE;
229 } else if (virt_viewer_app_get_n_windows(self) > 1) {
230 GtkWidget *dialog =
231 gtk_message_dialog_new (GTK_WINDOW(window),
232 GTK_DIALOG_DESTROY_WITH_PARENT,
233 GTK_MESSAGE_QUESTION,
234 GTK_BUTTONS_OK_CANCEL,
235 _("This is the last visible display. Do you want to quit?"));
236 gint result = gtk_dialog_run (GTK_DIALOG (dialog));
237 switch (result) {
238 case GTK_RESPONSE_OK:
239 virt_viewer_app_quit(self);
240 break;
241 default:
242 break;
243 }
244 gtk_widget_destroy(dialog);
245 return FALSE;
246 } else {
247 virt_viewer_app_quit(self);
248 return FALSE;
249 }
250 }
251
252 g_warn_if_reached();
253 return FALSE;
254 }
255
256 void
264 VirtViewerWindow *window,
265 gboolean visible)
266 {
267 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
268 g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(window), FALSE);
269
270 if (visible) {
271 virt_viewer_window_show(window);
272 return TRUE;
273 } else {
274 if (virt_viewer_app_get_n_windows_visible(self) > 1) {
275 virt_viewer_window_hide(window);
276 return FALSE;
277 } else if (virt_viewer_app_get_n_windows(self) > 1) {
278 GtkWidget *dialog =
279 gtk_message_dialog_new (virt_viewer_window_get_window(window),
280 GTK_DIALOG_DESTROY_WITH_PARENT,
281 GTK_MESSAGE_QUESTION,
282 GTK_BUTTONS_OK_CANCEL,
283 _("This is the last visible display. Do you want to quit?"));
284 gint result = gtk_dialog_run (GTK_DIALOG (dialog));
285 gtk_widget_destroy(dialog);
286 switch (result) {
287 case GTK_RESPONSE_OK:
288 virt_viewer_app_quit(self);
289 break;
290 default:
291 break;
292 }
293 return FALSE;
294 } else {
295 virt_viewer_app_quit(self);
296 return FALSE;
297 }
298 }
299
300 g_warn_if_reached();
301 return FALSE;
302 }
303
304 G_MODULE_EXPORT void
257305 virt_viewer_app_about_close(GtkWidget *dialog,
258 VirtViewerApp *self G_GNUC_UNUSED)
259 {
260 gtk_widget_hide(dialog);
261 gtk_widget_destroy(dialog);
262 }
263
264 void
306 VirtViewerApp *self G_GNUC_UNUSED)
307 {
308 gtk_widget_hide(dialog);
309 gtk_widget_destroy(dialog);
310 }
311
312 G_MODULE_EXPORT void
265313 virt_viewer_app_about_delete(GtkWidget *dialog,
266 void *dummy G_GNUC_UNUSED,
267 VirtViewerApp *self G_GNUC_UNUSED)
268 {
269 gtk_widget_hide(dialog);
270 gtk_widget_destroy(dialog);
314 void *dummy G_GNUC_UNUSED,
315 VirtViewerApp *self G_GNUC_UNUSED)
316 {
317 gtk_widget_hide(dialog);
318 gtk_widget_destroy(dialog);
271319 }
272320
273321 #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
275323 static int
276324 virt_viewer_app_open_tunnel(const char **cmd)
277325 {
278 int fd[2];
279 pid_t pid;
280
281 if (socketpair(PF_UNIX, SOCK_STREAM, 0, fd) < 0)
282 return -1;
283
284 pid = fork();
285 if (pid == -1) {
286 close(fd[0]);
287 close(fd[1]);
288 return -1;
289 }
290
291 if (pid == 0) { /* child */
292 close(fd[0]);
293 close(0);
294 close(1);
295 if (dup(fd[1]) < 0)
296 _exit(1);
297 if (dup(fd[1]) < 0)
298 _exit(1);
299 close(fd[1]);
300 execvp("ssh", (char *const*)cmd);
301 _exit(1);
302 }
303 close(fd[1]);
304 return fd[0];
326 int fd[2];
327 pid_t pid;
328
329 if (socketpair(PF_UNIX, SOCK_STREAM, 0, fd) < 0)
330 return -1;
331
332 pid = fork();
333 if (pid == -1) {
334 close(fd[0]);
335 close(fd[1]);
336 return -1;
337 }
338
339 if (pid == 0) { /* child */
340 close(fd[0]);
341 close(0);
342 close(1);
343 if (dup(fd[1]) < 0)
344 _exit(1);
345 if (dup(fd[1]) < 0)
346 _exit(1);
347 close(fd[1]);
348 execvp("ssh", (char *const*)cmd);
349 _exit(1);
350 }
351 close(fd[1]);
352 return fd[0];
305353 }
306354
307355
308356 static int
309357 virt_viewer_app_open_tunnel_ssh(const char *sshhost,
310 int sshport,
311 const char *sshuser,
312 const char *host,
313 const char *port,
314 const char *unixsock)
315 {
316 const char *cmd[10];
317 char portstr[50];
318 int n = 0;
319
320 cmd[n++] = "ssh";
321 if (!sshport) {
322 cmd[n++] = "-p";
323 sprintf(portstr, "%d", sshport);
324 cmd[n++] = portstr;
325 }
326 if (sshuser) {
327 cmd[n++] = "-l";
328 cmd[n++] = sshuser;
329 }
330 cmd[n++] = sshhost;
331 cmd[n++] = "nc";
332 if (port) {
333 cmd[n++] = host;
334 cmd[n++] = port;
335 } else {
336 cmd[n++] = "-U";
337 cmd[n++] = unixsock;
338 }
339 cmd[n++] = NULL;
340
341 return virt_viewer_app_open_tunnel(cmd);
358 int sshport,
359 const char *sshuser,
360 const char *host,
361 const char *port,
362 const char *unixsock)
363 {
364 const char *cmd[10];
365 char portstr[50];
366 int n = 0;
367
368 cmd[n++] = "ssh";
369 if (sshport) {
370 cmd[n++] = "-p";
371 sprintf(portstr, "%d", sshport);
372 cmd[n++] = portstr;
373 }
374 if (sshuser) {
375 cmd[n++] = "-l";
376 cmd[n++] = sshuser;
377 }
378 cmd[n++] = sshhost;
379 cmd[n++] = "nc";
380 if (port) {
381 cmd[n++] = host;
382 cmd[n++] = port;
383 } else {
384 cmd[n++] = "-U";
385 cmd[n++] = unixsock;
386 }
387 cmd[n++] = NULL;
388
389 return virt_viewer_app_open_tunnel(cmd);
342390 }
343391
344392 static int
345393 virt_viewer_app_open_unix_sock(const char *unixsock)
346394 {
347 struct sockaddr_un addr;
348 int fd;
349
350 memset(&addr, 0, sizeof addr);
351 addr.sun_family = AF_UNIX;
352 strcpy(addr.sun_path, unixsock);
353
354 if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
355 return -1;
356
357 if (connect(fd, (struct sockaddr *)&addr, sizeof addr) < 0) {
358 close(fd);
359 return -1;
360 }
361
362 return fd;
395 struct sockaddr_un addr;
396 int fd;
397
398 memset(&addr, 0, sizeof addr);
399 addr.sun_family = AF_UNIX;
400 strcpy(addr.sun_path, unixsock);
401
402 if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
403 return -1;
404
405 if (connect(fd, (struct sockaddr *)&addr, sizeof addr) < 0) {
406 close(fd);
407 return -1;
408 }
409
410 return fd;
363411 }
364412
365413 #endif /* defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) */
366414
367415 void
368416 virt_viewer_app_trace(VirtViewerApp *self,
369 const char *fmt, ...)
370 {
371 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
372 va_list ap;
373 VirtViewerAppPrivate *priv = self->priv;
374
375 if (doDebug) {
376 va_start(ap, fmt);
377 g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, fmt, ap);
378 va_end(ap);
379 }
380
381 if (priv->verbose) {
382 va_start(ap, fmt);
383 g_vprintf(fmt, ap);
384 va_end(ap);
385 }
417 const char *fmt, ...)
418 {
419 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
420 va_list ap;
421 VirtViewerAppPrivate *priv = self->priv;
422
423 if (doDebug) {
424 va_start(ap, fmt);
425 g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, fmt, ap);
426 va_end(ap);
427 }
428
429 if (priv->verbose) {
430 va_start(ap, fmt);
431 g_vprintf(fmt, ap);
432 va_end(ap);
433 }
434 }
435
436 static void
437 virt_viewer_app_set_window_subtitle(VirtViewerApp *app,
438 VirtViewerWindow *window,
439 int nth)
440 {
441 gchar *subtitle = NULL;
442
443 if (app->priv->title != NULL) {
444 gchar *d = strstr(app->priv->title, "%d");
445 if (d != NULL) {
446 *d = '\0';
447 subtitle = g_strdup_printf("%s%d%s", app->priv->title, nth + 1, d + 2);
448 *d = '%';
449 } else
450 subtitle = g_strdup_printf("%s (%d)", app->priv->title, nth + 1);
451 }
452
453 g_object_set(window, "subtitle", subtitle, NULL);
454 g_free(subtitle);
455 }
456
457 static void
458 set_title(gpointer key,
459 gpointer value,
460 gpointer user_data)
461 {
462 gint *nth = key;
463 VirtViewerApp *app = user_data;
464 VirtViewerWindow *window = value;
465 virt_viewer_app_set_window_subtitle(app, window, *nth);
466 }
467
468 static void
469 virt_viewer_app_set_all_window_subtitles(VirtViewerApp *app)
470 {
471 g_hash_table_foreach(app->priv->windows, set_title, app);
386472 }
387473
388474 static void update_title(gpointer key G_GNUC_UNUSED,
389 gpointer value,
390 gpointer user_data G_GNUC_UNUSED)
391 {
392 virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(value));
475 gpointer value,
476 gpointer user_data G_GNUC_UNUSED)
477 {
478 virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(value));
393479 }
394480
395481 static void
396482 virt_viewer_app_update_title(VirtViewerApp *self)
397483 {
398 g_hash_table_foreach(self->priv->windows, update_title, NULL);
484 g_hash_table_foreach(self->priv->windows, update_title, NULL);
485 }
486
487 static void set_usb_options_sensitive(gpointer key G_GNUC_UNUSED,
488 gpointer value,
489 gpointer user_data)
490 {
491 virt_viewer_window_set_usb_options_sensitive(VIRT_VIEWER_WINDOW(value),
492 GPOINTER_TO_INT(user_data));
493 }
494
495 static void
496 virt_viewer_app_set_usb_options_sensitive(VirtViewerApp *self, gboolean sensitive)
497 {
498 g_hash_table_foreach(self->priv->windows, set_usb_options_sensitive,
499 GINT_TO_POINTER(sensitive));
399500 }
400501
401502 static VirtViewerWindow *
402503 virt_viewer_app_get_nth_window(VirtViewerApp *self, gint nth)
403504 {
404 return g_hash_table_lookup(self->priv->windows, &nth);
505 return g_hash_table_lookup(self->priv->windows, &nth);
405506 }
406507
407508 static gboolean
408509 virt_viewer_app_remove_nth_window(VirtViewerApp *self, gint nth)
409510 {
410 gboolean removed;
411
412 g_return_val_if_fail(nth != 0, FALSE);
413 removed = g_hash_table_remove(self->priv->windows, &nth);
414 g_warn_if_fail(removed);
415
416 return removed;
511 VirtViewerWindow *win;
512 gboolean removed;
513
514 g_return_val_if_fail(nth != 0, FALSE);
515
516 win = virt_viewer_app_get_nth_window(self, nth);
517 g_return_val_if_fail(win != NULL, FALSE);
518
519 DEBUG_LOG("Remove window %d %p", nth, win);
520 removed = g_hash_table_steal(self->priv->windows, &nth);
521 g_warn_if_fail(removed);
522 virt_viewer_app_update_menu_displays(self);
523
524 if (removed)
525 g_signal_emit(self, signals[SIGNAL_WINDOW_REMOVED], 0, win);
526
527 g_object_unref(win);
528
529 return removed;
417530 }
418531
419532 static void
420533 virt_viewer_app_set_nth_window(VirtViewerApp *self, gint nth, VirtViewerWindow *win)
421534 {
422 gint *key;
423
424 g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
425 key = g_malloc(sizeof(gint));
426 *key = nth;
427 g_hash_table_insert(self->priv->windows, key, win);
535 gint *key;
536
537 g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
538 key = g_malloc(sizeof(gint));
539 *key = nth;
540 DEBUG_LOG("Insert window %d %p", nth, win);
541 g_hash_table_insert(self->priv->windows, key, win);
542 virt_viewer_app_set_window_subtitle(self, win, nth);
543 virt_viewer_app_update_menu_displays(self);
544
545 g_signal_emit(self, signals[SIGNAL_WINDOW_ADDED], 0, win);
428546 }
429547
430548 static void
431549 viewer_window_visible_cb(GtkWidget *widget G_GNUC_UNUSED,
432 gpointer user_data)
433 {
434 virt_viewer_app_update_menu_displays(VIRT_VIEWER_APP(user_data));
435 }
436
550 gpointer user_data)
551 {
552 virt_viewer_app_update_menu_displays(VIRT_VIEWER_APP(user_data));
553 }
554
555 static gboolean
556 viewer_window_focus_in_cb(GtkWindow *window G_GNUC_UNUSED,
557 GdkEvent *event G_GNUC_UNUSED,
558 VirtViewerApp *self)
559 {
560 self->priv->focused += 1;
561
562 if (self->priv->focused == 1)
563 g_object_notify(G_OBJECT(self), "has-focus");
564
565 return FALSE;
566 }
567
568 static gboolean
569 viewer_window_focus_out_cb(GtkWindow *window G_GNUC_UNUSED,
570 GdkEvent *event G_GNUC_UNUSED,
571 VirtViewerApp *self)
572 {
573 self->priv->focused -= 1;
574 g_warn_if_fail(self->priv->focused >= 0);
575
576 if (self->priv->focused <= 0)
577 g_object_notify(G_OBJECT(self), "has-focus");
578
579 return FALSE;
580 }
437581
438582 static VirtViewerWindow*
439583 virt_viewer_app_window_new(VirtViewerApp *self, GtkWidget *container, gint nth)
440584 {
441 VirtViewerWindow* window;
442 GtkWindow *w;
443
444 window = g_object_new(VIRT_VIEWER_TYPE_WINDOW,
445 "app", self,
446 "container", container,
447 NULL);
448 virt_viewer_app_set_nth_window(self, nth, window);
449 w = virt_viewer_window_get_window(window);
450
451 /* this will set new window to fullscreen if necessary */
452 virt_viewer_app_set_fullscreen(self, self->priv->fullscreen);
453 g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self);
454 g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self);
455 return window;
585 VirtViewerWindow* window;
586 GtkWindow *w;
587
588 window = g_object_new(VIRT_VIEWER_TYPE_WINDOW,
589 "app", self,
590 "container", container,
591 NULL);
592 if (self->priv->main_window)
593 virt_viewer_window_set_zoom_level(window, virt_viewer_window_get_zoom_level(self->priv->main_window));
594 virt_viewer_app_set_nth_window(self, nth, window);
595 w = virt_viewer_window_get_window(window);
596
597 /* this will set new window to fullscreen if necessary */
598 virt_viewer_app_set_fullscreen(self, self->priv->fullscreen);
599 g_signal_connect(w, "hide", G_CALLBACK(viewer_window_visible_cb), self);
600 g_signal_connect(w, "show", G_CALLBACK(viewer_window_visible_cb), self);
601 g_signal_connect(w, "focus-in-event", G_CALLBACK(viewer_window_focus_in_cb), self);
602 g_signal_connect(w, "focus-out-event", G_CALLBACK(viewer_window_focus_out_cb), self);
603 return window;
456604 }
457605
458606 static void
459607 display_show_hint(VirtViewerDisplay *display,
460 GParamSpec *pspec G_GNUC_UNUSED,
461 VirtViewerWindow *win)
462 {
463 VirtViewerApp *self;
464 VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win);
465 GtkWindow *w = virt_viewer_window_get_window(win);
466 gint nth, hint;
467
468 g_object_get(win,
469 "app", &self,
470 NULL);
471 g_object_get(display,
472 "nth-display", &nth,
473 "show-hint", &hint,
474 NULL);
475
476 if (hint == VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE) {
477 if (win != self->priv->main_window &&
478 g_getenv("VIRT_VIEWER_HIDE"))
479 gtk_widget_hide(GTK_WIDGET(w));
480 virt_viewer_notebook_show_status(nb, _("Waiting for display %d..."), nth + 1);
481 } else {
482 virt_viewer_notebook_show_display(nb);
483 gtk_widget_show(GTK_WIDGET(w));
484 gtk_window_present(w);
485 }
486
487 g_object_unref(self);
608 GParamSpec *pspec G_GNUC_UNUSED,
609 VirtViewerWindow *win)
610 {
611 VirtViewerApp *self;
612 VirtViewerNotebook *nb = virt_viewer_window_get_notebook(win);
613 gint nth;
614 guint hint;
615
616 g_object_get(win,
617 "app", &self,
618 NULL);
619 g_object_get(display,
620 "nth-display", &nth,
621 "show-hint", &hint,
622 NULL);
623
624 if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) {
625 virt_viewer_window_hide(win);
626 } else if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY) {
627 virt_viewer_notebook_show_display(nb);
628 virt_viewer_window_show(win);
629 gtk_window_present(virt_viewer_window_get_window(win));
630 } else {
631 if (win != self->priv->main_window &&
632 g_getenv("VIRT_VIEWER_HIDE"))
633 virt_viewer_window_hide(win);
634 virt_viewer_notebook_show_status(nb, _("Waiting for display %d..."), nth + 1);
635 }
636
637 g_object_unref(self);
488638 }
489639
490640 static void
491641 virt_viewer_app_display_added(VirtViewerSession *session G_GNUC_UNUSED,
492 VirtViewerDisplay *display,
493 VirtViewerApp *self)
494 {
495 VirtViewerAppPrivate *priv = self->priv;
496 VirtViewerWindow *window;
497 gint nth;
498
499 g_object_get(display, "nth-display", &nth, NULL);
500 if (nth == 0) {
501 window = priv->main_window;
502 } else {
503 if (priv->container) {
504 g_warning("multi-head not yet supported within container");
505 return;
506 }
507
508 g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
509 window = virt_viewer_app_window_new(self, NULL, nth);
510 }
511
512 virt_viewer_window_set_display(window, display);
513 g_signal_connect(display, "notify::show-hint",
514 G_CALLBACK(display_show_hint), window);
515 g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */
642 VirtViewerDisplay *display,
643 VirtViewerApp *self)
644 {
645 VirtViewerAppPrivate *priv = self->priv;
646 VirtViewerWindow *window;
647 gint nth;
648
649 g_object_get(display, "nth-display", &nth, NULL);
650 if (nth == 0) {
651 window = priv->main_window;
652 } else {
653 if (priv->container) {
654 g_warning("multi-head not yet supported within container");
655 return;
656 }
657
658 g_return_if_fail(virt_viewer_app_get_nth_window(self, nth) == NULL);
659 window = virt_viewer_app_window_new(self, NULL, nth);
660 }
661
662 virt_viewer_window_set_display(window, display);
663 virt_viewer_app_update_menu_displays(self);
664 virt_viewer_signal_connect_object(display, "notify::show-hint",
665 G_CALLBACK(display_show_hint), window, 0);
666 g_object_notify(G_OBJECT(display), "show-hint"); /* call display_show_hint */
516667 }
517668
518669
519670 static void
520671 virt_viewer_app_display_removed(VirtViewerSession *session G_GNUC_UNUSED,
521 VirtViewerDisplay *display,
522 VirtViewerApp *self)
523 {
524 VirtViewerWindow *win = NULL;
525 gint nth;
526
527 gtk_widget_hide(GTK_WIDGET(display));
528 g_object_get(display, "nth-display", &nth, NULL);
529 win = virt_viewer_app_get_nth_window(self, nth);
530 virt_viewer_window_set_display(win, NULL);
531
532 if (nth != 0)
533 virt_viewer_app_remove_nth_window(self, nth);
672 VirtViewerDisplay *display,
673 VirtViewerApp *self)
674 {
675 VirtViewerWindow *win = NULL;
676 gint nth;
677
678 gtk_widget_hide(GTK_WIDGET(display));
679 g_object_get(display, "nth-display", &nth, NULL);
680 win = virt_viewer_app_get_nth_window(self, nth);
681 virt_viewer_window_set_display(win, NULL);
682
683 if (nth != 0)
684 virt_viewer_app_remove_nth_window(self, nth);
685 }
686
687 static void
688 virt_viewer_app_display_updated(VirtViewerSession *session G_GNUC_UNUSED,
689 VirtViewerApp *self)
690 {
691 virt_viewer_app_update_menu_displays(self);
534692 }
535693
536694 int
537695 virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type)
538696 {
539 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
540 VirtViewerAppPrivate *priv = self->priv;
541 g_return_val_if_fail(priv->session == NULL, -1);
542
543 if (g_strcasecmp(type, "vnc") == 0) {
544 virt_viewer_app_trace(self, "Guest %s has a %s display\n",
545 priv->guest_name, type);
546 priv->session = virt_viewer_session_vnc_new();
547 } else
697 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
698 VirtViewerAppPrivate *priv = self->priv;
699 g_return_val_if_fail(priv->session == NULL, -1);
700 g_return_val_if_fail(type != NULL, -1);
701
702 #ifdef HAVE_GTK_VNC
703 if (g_ascii_strcasecmp(type, "vnc") == 0) {
704 GtkWindow *window = virt_viewer_window_get_window(priv->main_window);
705 virt_viewer_app_trace(self, "Guest %s has a %s display\n",
706 priv->guest_name, type);
707 priv->session = virt_viewer_session_vnc_new(window);
708 } else
709 #endif
548710 #ifdef HAVE_SPICE_GTK
549 if (g_strcasecmp(type, "spice") == 0) {
550 virt_viewer_app_trace(self, "Guest %s has a %s display\n",
551 priv->guest_name, type);
552 priv->session = virt_viewer_session_spice_new();
553 } else
711 if (g_ascii_strcasecmp(type, "spice") == 0) {
712 GtkWindow *window = virt_viewer_window_get_window(priv->main_window);
713 virt_viewer_app_trace(self, "Guest %s has a %s display\n",
714 priv->guest_name, type);
715 priv->session = virt_viewer_session_spice_new(self, window);
716 } else
554717 #endif
555 {
556 virt_viewer_app_trace(self, "Guest %s has unsupported %s display type\n",
557 priv->guest_name, type);
558 virt_viewer_app_simple_message_dialog(self, _("Unknown graphic type for the guest %s"),
559 priv->guest_name);
560 return -1;
561 }
562
563 g_signal_connect(priv->session, "session-initialized",
564 G_CALLBACK(virt_viewer_app_initialized), self);
565 g_signal_connect(priv->session, "session-connected",
566 G_CALLBACK(virt_viewer_app_connected), self);
567 g_signal_connect(priv->session, "session-disconnected",
568 G_CALLBACK(virt_viewer_app_disconnected), self);
569 g_signal_connect(priv->session, "session-channel-open",
570 G_CALLBACK(virt_viewer_app_channel_open), self);
571 g_signal_connect(priv->session, "session-auth-refused",
572 G_CALLBACK(virt_viewer_app_auth_refused), self);
573 g_signal_connect(priv->session, "session-auth-failed",
574 G_CALLBACK(virt_viewer_app_auth_failed), self);
575 g_signal_connect(priv->session, "session-display-added",
576 G_CALLBACK(virt_viewer_app_display_added), self);
577 g_signal_connect(priv->session, "session-display-removed",
578 G_CALLBACK(virt_viewer_app_display_removed), self);
579
580 g_signal_connect(priv->session, "session-cut-text",
581 G_CALLBACK(virt_viewer_app_server_cut_text), self);
582 g_signal_connect(priv->session, "session-bell",
583 G_CALLBACK(virt_viewer_app_bell), self);
584
585 return 0;
586 }
718 {
719 virt_viewer_app_trace(self, "Guest %s has unsupported %s display type\n",
720 priv->guest_name, type);
721 virt_viewer_app_simple_message_dialog(self, _("Unknown graphic type for the guest %s"),
722 priv->guest_name);
723 return -1;
724 }
725
726 g_signal_connect(priv->session, "session-initialized",
727 G_CALLBACK(virt_viewer_app_initialized), self);
728 g_signal_connect(priv->session, "session-connected",
729 G_CALLBACK(virt_viewer_app_connected), self);
730 g_signal_connect(priv->session, "session-disconnected",
731 G_CALLBACK(virt_viewer_app_disconnected), self);
732 g_signal_connect(priv->session, "session-channel-open",
733 G_CALLBACK(virt_viewer_app_channel_open), self);
734 g_signal_connect(priv->session, "session-auth-refused",
735 G_CALLBACK(virt_viewer_app_auth_refused), self);
736 g_signal_connect(priv->session, "session-auth-failed",
737 G_CALLBACK(virt_viewer_app_auth_failed), self);
738 g_signal_connect(priv->session, "session-usb-failed",
739 G_CALLBACK(virt_viewer_app_usb_failed), self);
740 g_signal_connect(priv->session, "session-display-added",
741 G_CALLBACK(virt_viewer_app_display_added), self);
742 g_signal_connect(priv->session, "session-display-removed",
743 G_CALLBACK(virt_viewer_app_display_removed), self);
744 g_signal_connect(priv->session, "session-display-updated",
745 G_CALLBACK(virt_viewer_app_display_updated), self);
746
747 g_signal_connect(priv->session, "session-cut-text",
748 G_CALLBACK(virt_viewer_app_server_cut_text), self);
749 g_signal_connect(priv->session, "session-bell",
750 G_CALLBACK(virt_viewer_app_bell), self);
751 g_signal_connect(priv->session, "session-cancelled",
752 G_CALLBACK(virt_viewer_app_cancelled), self);
753
754 return 0;
755 }
756
757 static gboolean
758 virt_viewer_app_default_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd)
759 {
760 *fd = -1;
761 return TRUE;
762 }
763
764
765 static int
766 virt_viewer_app_open_connection(VirtViewerApp *self, int *fd)
767 {
768 VirtViewerAppClass *klass;
769
770 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
771 klass = VIRT_VIEWER_APP_GET_CLASS(self);
772
773 return klass->open_connection(self, fd);
774 }
775
587776
588777 #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
589778 static void
590779 virt_viewer_app_channel_open(VirtViewerSession *session,
591 VirtViewerSessionChannel *channel,
592 VirtViewerApp *self)
593 {
594 VirtViewerAppPrivate *priv;
595 int fd = -1;
596
597 g_return_if_fail(self != NULL);
598
599 priv = self->priv;
600 if (priv->transport && g_strcasecmp(priv->transport, "ssh") == 0 &&
601 !priv->direct) {
602 if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, priv->user,
603 priv->ghost, priv->gport, NULL)) < 0)
604 virt_viewer_app_simple_message_dialog(self, _("Connect to ssh failed."));
605 } else {
606 virt_viewer_app_simple_message_dialog(self, _("Can't connect to channel, SSH only supported."));
607 }
608
609 if (fd >= 0)
610 virt_viewer_session_channel_open_fd(session, channel, fd);
780 VirtViewerSessionChannel *channel,
781 VirtViewerApp *self)
782 {
783 VirtViewerAppPrivate *priv;
784 int fd = -1;
785
786 g_return_if_fail(self != NULL);
787
788 if (!virt_viewer_app_open_connection(self, &fd))
789 return;
790
791 DEBUG_LOG("After open connection callback fd=%d", fd);
792
793 priv = self->priv;
794 if (priv->transport && g_ascii_strcasecmp(priv->transport, "ssh") == 0 &&
795 !priv->direct && fd == -1) {
796 if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port, priv->user,
797 priv->ghost, priv->gport, NULL)) < 0)
798 virt_viewer_app_simple_message_dialog(self, _("Connect to ssh failed."));
799 } else if (fd == -1) {
800 virt_viewer_app_simple_message_dialog(self, _("Can't connect to channel, SSH only supported."));
801 }
802
803 if (fd >= 0)
804 virt_viewer_session_channel_open_fd(session, channel, fd);
611805 }
612806 #else
613807 static void
614808 virt_viewer_app_channel_open(VirtViewerSession *session G_GNUC_UNUSED,
615 VirtViewerSessionChannel *channel G_GNUC_UNUSED,
616 VirtViewerApp *self)
617 {
618 virt_viewer_app_simple_message_dialog(self, _("Connect to channel unsupported."));
809 VirtViewerSessionChannel *channel G_GNUC_UNUSED,
810 VirtViewerApp *self)
811 {
812 virt_viewer_app_simple_message_dialog(self, _("Connect to channel unsupported."));
619813 }
620814 #endif
815
816 static int
817 virt_viewer_app_default_activate(VirtViewerApp *self)
818 {
819 VirtViewerAppPrivate *priv = self->priv;
820 int fd = -1;
821
822 if (!virt_viewer_app_open_connection(self, &fd))
823 return -1;
824
825 DEBUG_LOG("After open connection callback fd=%d", fd);
826
827 #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
828 if (priv->transport &&
829 g_ascii_strcasecmp(priv->transport, "ssh") == 0 &&
830 !priv->direct &&
831 fd == -1) {
832 gchar *p = NULL;
833
834 if (priv->gport) {
835 virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n",
836 priv->ghost, priv->gport);
837 } else {
838 virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n",
839 priv->unixsock);
840 }
841 if (priv->port)
842 p = g_strdup_printf(":%d", priv->port);
843
844 virt_viewer_app_trace(self, "Setting up SSH tunnel via %s%s%s%s\n",
845 priv->user ? priv->user : "",
846 priv->user ? "@" : "",
847 priv->host, p ? p : "");
848 g_free(p);
849
850 if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port,
851 priv->user, priv->ghost,
852 priv->gport, priv->unixsock)) < 0)
853 return -1;
854 } else if (priv->unixsock && fd == -1) {
855 virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s",
856 priv->unixsock);
857 if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0)
858 return -1;
859 }
860 #endif
861
862 if (fd >= 0) {
863 return virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), fd);
864 } else if (priv->guri) {
865 virt_viewer_app_trace(self, "Opening connection to display at %s\n", priv->guri);
866 return virt_viewer_session_open_uri(VIRT_VIEWER_SESSION(priv->session), priv->guri);
867 } else {
868 virt_viewer_app_trace(self, "Opening direct TCP connection to display at %s:%s:%s\n",
869 priv->ghost, priv->gport, priv->gtlsport ? priv->gtlsport : "-1");
870 return virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session),
871 priv->ghost, priv->gport, priv->gtlsport);
872 }
873
874 return -1;
875 }
621876
622877 int
623878 virt_viewer_app_activate(VirtViewerApp *self)
624879 {
625 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
626 VirtViewerAppPrivate *priv = self->priv;
627 int fd = -1;
628 int ret = -1;
629
630 if (priv->active)
631 goto cleanup;
632
633 #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK)
634 if (priv->transport &&
635 g_strcasecmp(priv->transport, "ssh") == 0 &&
636 !priv->direct) {
637 if (priv->gport) {
638 virt_viewer_app_trace(self, "Opening indirect TCP connection to display at %s:%s\n",
639 priv->ghost, priv->gport);
640 } else {
641 virt_viewer_app_trace(self, "Opening indirect UNIX connection to display at %s\n",
642 priv->unixsock);
643 }
644 virt_viewer_app_trace(self, "Setting up SSH tunnel via %s@%s:%d\n",
645 priv->user, priv->host, priv->port ? priv->port : 22);
646
647 if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, priv->port,
648 priv->user, priv->ghost,
649 priv->gport, priv->unixsock)) < 0)
650 return -1;
651 } else if (priv->unixsock) {
652 virt_viewer_app_trace(self, "Opening direct UNIX connection to display at %s",
653 priv->unixsock);
654 if ((fd = virt_viewer_app_open_unix_sock(priv->unixsock)) < 0)
655 return -1;
656 }
657 #endif
658
659 if (fd >= 0) {
660 ret = virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), fd);
661 } else {
662 virt_viewer_app_trace(self, "Opening direct TCP connection to display at %s:%s\n",
663 priv->ghost, priv->gport);
664 ret = virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session),
665 priv->ghost, priv->gport);
666 }
667
668 virt_viewer_app_show_status(self, _("Connecting to graphic server"));
669
670 priv->connected = FALSE;
671 priv->active = TRUE;
672 priv->grabbed = FALSE;
673 virt_viewer_app_update_title(self);
674
675 cleanup:
676 return ret;
880 VirtViewerAppPrivate *priv;
881 int ret;
882
883 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
884
885 priv = self->priv;
886 if (priv->active)
887 return -1;
888
889 ret = VIRT_VIEWER_APP_GET_CLASS(self)->activate(self);
890
891 if (ret != -1) {
892 virt_viewer_app_show_status(self, _("Connecting to graphic server"));
893 priv->connected = FALSE;
894 priv->cancelled = FALSE;
895 priv->active = TRUE;
896 priv->grabbed = FALSE;
897 virt_viewer_app_update_title(self);
898 }
899
900 return ret;
677901 }
678902
679903 /* text was actually requested */
680904 static void
681905 virt_viewer_app_clipboard_copy(GtkClipboard *clipboard G_GNUC_UNUSED,
682 GtkSelectionData *data,
683 guint info G_GNUC_UNUSED,
684 VirtViewerApp *self)
685 {
686 VirtViewerAppPrivate *priv = self->priv;
687
688 gtk_selection_data_set_text(data, priv->clipboard, -1);
906 GtkSelectionData *data,
907 guint info G_GNUC_UNUSED,
908 VirtViewerApp *self)
909 {
910 VirtViewerAppPrivate *priv = self->priv;
911
912 gtk_selection_data_set_text(data, priv->clipboard, -1);
689913 }
690914
691915 static void
692916 virt_viewer_app_server_cut_text(VirtViewerSession *session G_GNUC_UNUSED,
693 const gchar *text,
694 VirtViewerApp *self)
695 {
696 GtkClipboard *cb;
697 gsize a, b;
698 VirtViewerAppPrivate *priv = self->priv;
699 GtkTargetEntry targets[] = {
700 {g_strdup("UTF8_STRING"), 0, 0},
701 {g_strdup("COMPOUND_TEXT"), 0, 0},
702 {g_strdup("TEXT"), 0, 0},
703 {g_strdup("STRING"), 0, 0},
704 };
705
706 if (!text)
707 return;
708
709 g_free (priv->clipboard);
710 priv->clipboard = g_convert (text, -1, "utf-8", "iso8859-1", &a, &b, NULL);
711
712 if (priv->clipboard) {
713 cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
714
715 gtk_clipboard_set_with_owner (cb,
716 targets,
717 G_N_ELEMENTS(targets),
718 (GtkClipboardGetFunc)virt_viewer_app_clipboard_copy,
719 NULL,
720 G_OBJECT (self));
721 }
917 const gchar *text,
918 VirtViewerApp *self)
919 {
920 GtkClipboard *cb;
921 gsize a, b;
922 VirtViewerAppPrivate *priv = self->priv;
923 GtkTargetEntry targets[] = {
924 {g_strdup("UTF8_STRING"), 0, 0},
925 {g_strdup("COMPOUND_TEXT"), 0, 0},
926 {g_strdup("TEXT"), 0, 0},
927 {g_strdup("STRING"), 0, 0},
928 };
929
930 if (!text)
931 return;
932
933 g_free (priv->clipboard);
934 priv->clipboard = g_convert (text, -1, "utf-8", "iso8859-1", &a, &b, NULL);
935
936 if (priv->clipboard) {
937 cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
938
939 gtk_clipboard_set_with_owner (cb,
940 targets,
941 G_N_ELEMENTS(targets),
942 (GtkClipboardGetFunc)virt_viewer_app_clipboard_copy,
943 NULL,
944 G_OBJECT (self));
945 }
722946 }
723947
724948
725949 static void virt_viewer_app_bell(VirtViewerSession *session G_GNUC_UNUSED,
726 VirtViewerApp *self)
727 {
728 VirtViewerAppPrivate *priv = self->priv;
729
730 gdk_window_beep(gtk_widget_get_window(GTK_WIDGET(virt_viewer_window_get_window(priv->main_window))));
950 VirtViewerApp *self)
951 {
952 VirtViewerAppPrivate *priv = self->priv;
953
954 gdk_window_beep(gtk_widget_get_window(GTK_WIDGET(virt_viewer_window_get_window(priv->main_window))));
731955 }
732956
733957
734958 static int
735959 virt_viewer_app_default_initial_connect(VirtViewerApp *self)
736960 {
737 return virt_viewer_app_activate(self);
961 return virt_viewer_app_activate(self);
738962 }
739963
740964 int
741965 virt_viewer_app_initial_connect(VirtViewerApp *self)
742966 {
743 VirtViewerAppClass *klass;
744
745 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
746 klass = VIRT_VIEWER_APP_GET_CLASS(self);
747
748 return klass->initial_connect(self);
967 VirtViewerAppClass *klass;
968
969 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), -1);
970 klass = VIRT_VIEWER_APP_GET_CLASS(self);
971
972 return klass->initial_connect(self);
749973 }
750974
751975 static gboolean
752976 virt_viewer_app_retryauth(gpointer opaque)
753977 {
754 VirtViewerApp *self = opaque;
755
756 virt_viewer_app_initial_connect(self);
757
758 return FALSE;
978 VirtViewerApp *self = opaque;
979
980 virt_viewer_app_initial_connect(self);
981
982 return FALSE;
759983 }
760984
761985 static gboolean
762986 virt_viewer_app_connect_timer(void *opaque)
763987 {
764 VirtViewerApp *self = opaque;
765 VirtViewerAppPrivate *priv = self->priv;
766
767 DEBUG_LOG("Connect timer fired");
768
769 if (!priv->active &&
770 virt_viewer_app_initial_connect(self) < 0)
771 gtk_main_quit();
772
773 if (priv->active) {
774 priv->reconnect_poll = 0;
775 return FALSE;
776 }
777
778 return TRUE;
988 VirtViewerApp *self = opaque;
989 VirtViewerAppPrivate *priv = self->priv;
990
991 DEBUG_LOG("Connect timer fired");
992
993 if (!priv->active &&
994 virt_viewer_app_initial_connect(self) < 0)
995 gtk_main_quit();
996
997 if (priv->active) {
998 priv->reconnect_poll = 0;
999 return FALSE;
1000 }
1001
1002 return TRUE;
7791003 }
7801004
7811005 void
7821006 virt_viewer_app_start_reconnect_poll(VirtViewerApp *self)
7831007 {
784 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
785 VirtViewerAppPrivate *priv = self->priv;
786
787 if (priv->reconnect_poll != 0)
788 return;
789
790 priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self);
1008 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1009 VirtViewerAppPrivate *priv = self->priv;
1010
1011 if (priv->reconnect_poll != 0)
1012 return;
1013
1014 priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self);
7911015 }
7921016
7931017 static void
7941018 virt_viewer_app_default_deactivated(VirtViewerApp *self)
7951019 {
796 VirtViewerAppPrivate *priv = self->priv;
797
798 virt_viewer_app_show_status(self, _("Guest domain has shutdown"));
799 virt_viewer_app_trace(self, "Guest %s display has disconnected, shutting down",
800 priv->guest_name);
801 gtk_main_quit();
1020 VirtViewerAppPrivate *priv = self->priv;
1021
1022 virt_viewer_app_show_status(self, _("Guest domain has shutdown"));
1023 virt_viewer_app_trace(self, "Guest %s display has disconnected, shutting down",
1024 priv->guest_name);
1025 gtk_main_quit();
8021026 }
8031027
8041028 static void
8051029 virt_viewer_app_deactivated(VirtViewerApp *self)
8061030 {
807 VirtViewerAppClass *klass;
808 klass = VIRT_VIEWER_APP_GET_CLASS(self);
809
810 klass->deactivated(self);
1031 VirtViewerAppClass *klass;
1032 klass = VIRT_VIEWER_APP_GET_CLASS(self);
1033
1034 klass->deactivated(self);
8111035 }
8121036
8131037 static void
8141038 virt_viewer_app_deactivate(VirtViewerApp *self)
8151039 {
816 VirtViewerAppPrivate *priv = self->priv;
817
818 if (!priv->active)
819 return;
820
821 if (priv->session)
822 virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
823
824 priv->connected = FALSE;
825 priv->active = FALSE;
1040 VirtViewerAppPrivate *priv = self->priv;
1041
1042 if (!priv->active)
1043 return;
1044
1045 if (priv->session)
1046 virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
1047
1048 priv->connected = FALSE;
1049 priv->active = FALSE;
8261050 #if 0
827 g_free(priv->pretty_address);
828 priv->pretty_address = NULL;
1051 g_free(priv->pretty_address);
1052 priv->pretty_address = NULL;
8291053 #endif
830 priv->grabbed = FALSE;
831 virt_viewer_app_update_title(self);
832
833 if (priv->authretry) {
834 priv->authretry = FALSE;
835 g_idle_add(virt_viewer_app_retryauth, self);
836 } else
837 virt_viewer_app_deactivated(self);
1054 priv->grabbed = FALSE;
1055 virt_viewer_app_update_title(self);
1056
1057 if (priv->authretry) {
1058 priv->authretry = FALSE;
1059 g_idle_add(virt_viewer_app_retryauth, self);
1060 } else
1061 virt_viewer_app_deactivated(self);
8381062
8391063 }
8401064
8411065 static void
8421066 virt_viewer_app_connected(VirtViewerSession *session G_GNUC_UNUSED,
843 VirtViewerApp *self)
844 {
845 VirtViewerAppPrivate *priv = self->priv;
846
847 priv->connected = TRUE;
848 virt_viewer_app_show_status(self, _("Connected to graphic server"));
1067 VirtViewerApp *self)
1068 {
1069 VirtViewerAppPrivate *priv = self->priv;
1070
1071 priv->connected = TRUE;
1072 virt_viewer_app_show_status(self, _("Connected to graphic server"));
8491073 }
8501074
8511075
8521076
8531077 static void
8541078 virt_viewer_app_initialized(VirtViewerSession *session G_GNUC_UNUSED,
855 VirtViewerApp *self)
856 {
857 virt_viewer_app_update_title(self);
1079 VirtViewerApp *self)
1080 {
1081 gboolean has_usb = virt_viewer_session_has_usb(self->priv->session);
1082
1083 virt_viewer_app_update_title(self);
1084 virt_viewer_app_set_usb_options_sensitive(self, has_usb);
8581085 }
8591086
8601087 static void
8611088 virt_viewer_app_disconnected(VirtViewerSession *session G_GNUC_UNUSED,
862 VirtViewerApp *self)
863 {
864 VirtViewerAppPrivate *priv = self->priv;
865
866 if (!priv->connected) {
867 virt_viewer_app_simple_message_dialog(self,
868 _("Unable to connect to the graphic server %s"),
869 priv->pretty_address);
870 }
871 virt_viewer_app_deactivate(self);
1089 VirtViewerApp *self)
1090 {
1091 VirtViewerAppPrivate *priv = self->priv;
1092
1093 if (priv->quiting)
1094 gtk_main_quit();
1095
1096 if (!priv->connected && !priv->cancelled) {
1097 virt_viewer_app_simple_message_dialog(self,
1098 _("Unable to connect to the graphic server %s"),
1099 priv->pretty_address);
1100 }
1101 virt_viewer_app_set_usb_options_sensitive(self, FALSE);
1102 virt_viewer_app_deactivate(self);
1103 }
1104
1105 static void virt_viewer_app_cancelled(VirtViewerSession *session,
1106 VirtViewerApp *self)
1107 {
1108 VirtViewerAppPrivate *priv = self->priv;
1109 priv->cancelled = TRUE;
1110 virt_viewer_app_disconnected(session, self);
8721111 }
8731112
8741113
8751114 static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSED,
876 const char *msg,
877 VirtViewerApp *self)
878 {
879 GtkWidget *dialog;
880 int ret;
881 VirtViewerAppPrivate *priv = self->priv;
882
883 dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window),
884 GTK_DIALOG_MODAL |
885 GTK_DIALOG_DESTROY_WITH_PARENT,
886 GTK_MESSAGE_ERROR,
887 GTK_BUTTONS_YES_NO,
888 _("Unable to authenticate with remote desktop server at %s: %s\n"
889 "Retry connection again?"),
890 priv->pretty_address, msg);
891
892 ret = gtk_dialog_run(GTK_DIALOG(dialog));
893
894 gtk_widget_destroy(dialog);
895
896 if (ret == GTK_RESPONSE_YES)
897 priv->authretry = TRUE;
898 else
899 priv->authretry = FALSE;
1115 const char *msg,
1116 VirtViewerApp *self)
1117 {
1118 GtkWidget *dialog;
1119 int ret;
1120 VirtViewerAppPrivate *priv = self->priv;
1121
1122 dialog = gtk_message_dialog_new(virt_viewer_window_get_window(priv->main_window),
1123 GTK_DIALOG_MODAL |
1124 GTK_DIALOG_DESTROY_WITH_PARENT,
1125 GTK_MESSAGE_ERROR,
1126 GTK_BUTTONS_YES_NO,
1127 _("Unable to authenticate with remote desktop server at %s: %s\n"
1128 "Retry connection again?"),
1129 priv->pretty_address, msg);
1130
1131 ret = gtk_dialog_run(GTK_DIALOG(dialog));
1132
1133 gtk_widget_destroy(dialog);
1134
1135 if (ret == GTK_RESPONSE_YES)
1136 priv->authretry = TRUE;
1137 else
1138 priv->authretry = FALSE;
9001139 }
9011140
9021141
9031142 static void virt_viewer_app_auth_failed(VirtViewerSession *session G_GNUC_UNUSED,
904 const char *msg,
905 VirtViewerApp *self)
906 {
907 VirtViewerAppPrivate *priv = self->priv;
908
909 virt_viewer_app_simple_message_dialog(self,
910 _("Unable to authenticate with remote desktop server at %s"),
911 priv->pretty_address, msg);
1143 const char *msg,
1144 VirtViewerApp *self)
1145 {
1146 virt_viewer_app_simple_message_dialog(self,
1147 _("Unable to authenticate with remote desktop server: %s"),
1148 msg);
1149 }
1150
1151 static void virt_viewer_app_usb_failed(VirtViewerSession *session G_GNUC_UNUSED,
1152 const gchar *msg,
1153 VirtViewerApp *self)
1154 {
1155 virt_viewer_app_simple_message_dialog(self, _("USB redirection error: %s"), msg);
9121156 }
9131157
9141158 static void
9151159 virt_viewer_app_get_property (GObject *object, guint property_id,
916 GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
917 {
918 g_return_if_fail(VIRT_VIEWER_IS_APP(object));
919 VirtViewerApp *self = VIRT_VIEWER_APP(object);
920 VirtViewerAppPrivate *priv = self->priv;
921
922 switch (property_id) {
923 case PROP_VERBOSE:
924 g_value_set_boolean(value, priv->verbose);
925 break;
926
927 case PROP_CONTAINER:
928 g_value_set_object(value, priv->container);
929 break;
930
931 case PROP_SESSION:
932 g_value_set_object(value, priv->session);
933 break;
934
935 case PROP_GUEST_NAME:
936 g_value_set_string(value, priv->guest_name);
937 break;
938
939 case PROP_FULLSCREEN:
940 g_value_set_boolean(value, priv->fullscreen);
941 break;
942
943 default:
944 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
945 }
1160 GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
1161 {
1162 g_return_if_fail(VIRT_VIEWER_IS_APP(object));
1163 VirtViewerApp *self = VIRT_VIEWER_APP(object);
1164 VirtViewerAppPrivate *priv = self->priv;
1165
1166 switch (property_id) {
1167 case PROP_VERBOSE:
1168 g_value_set_boolean(value, priv->verbose);
1169 break;
1170
1171 case PROP_CONTAINER:
1172 g_value_set_object(value, priv->container);
1173 break;
1174
1175 case PROP_SESSION:
1176 g_value_set_object(value, priv->session);
1177 break;
1178
1179 case PROP_GUEST_NAME:
1180 g_value_set_string(value, priv->guest_name);
1181 break;
1182
1183 case PROP_GURI:
1184 g_value_set_string(value, priv->guri);
1185 break;
1186
1187 case PROP_FULLSCREEN:
1188 g_value_set_boolean(value, priv->fullscreen);
1189 break;
1190
1191 case PROP_TITLE:
1192 g_value_set_string(value, priv->title);
1193 break;
1194
1195 case PROP_ENABLE_ACCEL:
1196 g_value_set_boolean(value, virt_viewer_app_get_enable_accel(self));
1197 break;
1198
1199 case PROP_HAS_FOCUS:
1200 g_value_set_boolean(value, priv->focused > 0);
1201 break;
1202
1203 case PROP_FULLSCREEN_AUTO_CONF:
1204 g_value_set_boolean(value, priv->fullscreen_auto_conf);
1205 break;
1206
1207 default:
1208 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1209 }
9461210 }
9471211
9481212 static void
9491213 virt_viewer_app_set_property (GObject *object, guint property_id,
950 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
951 {
952 g_return_if_fail(VIRT_VIEWER_IS_APP(object));
953 VirtViewerApp *self = VIRT_VIEWER_APP(object);
954 VirtViewerAppPrivate *priv = self->priv;
955
956 switch (property_id) {
957 case PROP_VERBOSE:
958 priv->verbose = g_value_get_boolean(value);
959 break;
960
961 case PROP_CONTAINER:
962 g_return_if_fail(priv->container == NULL);
963 priv->container = g_value_dup_object(value);
964 break;
965
966 case PROP_GUEST_NAME:
967 g_free(priv->guest_name);
968 priv->guest_name = g_value_dup_string(value);
969 break;
970
971 case PROP_FULLSCREEN:
972 virt_viewer_app_set_fullscreen(self, g_value_get_boolean(value));
973 break;
974
975 default:
976 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
977 }
1214 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
1215 {
1216 g_return_if_fail(VIRT_VIEWER_IS_APP(object));
1217 VirtViewerApp *self = VIRT_VIEWER_APP(object);
1218 VirtViewerAppPrivate *priv = self->priv;
1219
1220 switch (property_id) {
1221 case PROP_VERBOSE:
1222 priv->verbose = g_value_get_boolean(value);
1223 break;
1224
1225 case PROP_CONTAINER:
1226 g_return_if_fail(priv->container == NULL);
1227 priv->container = g_value_dup_object(value);
1228 break;
1229
1230 case PROP_GUEST_NAME:
1231 g_free(priv->guest_name);
1232 priv->guest_name = g_value_dup_string(value);
1233 break;
1234
1235 case PROP_GURI:
1236 g_free(priv->guri);
1237 priv->guri = g_value_dup_string(value);
1238 virt_viewer_app_update_pretty_address(self);
1239 break;
1240
1241 case PROP_FULLSCREEN:
1242 virt_viewer_app_set_fullscreen(self, g_value_get_boolean(value));
1243 break;
1244
1245 case PROP_TITLE:
1246 g_free(priv->title);
1247 priv->title = g_value_dup_string(value);
1248 virt_viewer_app_set_all_window_subtitles(self);
1249 break;
1250
1251 case PROP_ENABLE_ACCEL:
1252 priv->enable_accel = g_value_get_boolean(value);
1253 break;
1254
1255 case PROP_FULLSCREEN_AUTO_CONF:
1256 priv->fullscreen_auto_conf = g_value_get_boolean(value);
1257 break;
1258
1259 default:
1260 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1261 }
9781262 }
9791263
9801264 static void
9811265 virt_viewer_app_dispose (GObject *object)
9821266 {
983 VirtViewerApp *self = VIRT_VIEWER_APP(object);
984 VirtViewerAppPrivate *priv = self->priv;
985
986 if (priv->windows) {
987 g_hash_table_unref(priv->windows);
988 priv->windows = NULL;
989 }
990
991 if (priv->main_window) {
992 g_object_unref(priv->main_window);
993 priv->main_window = NULL;
994 }
995
996 if (priv->container) {
997 g_object_unref(priv->container);
998 priv->container = NULL;
999 }
1000
1001 virt_viewer_app_free_connect_info(self);
1002
1003 G_OBJECT_CLASS (virt_viewer_app_parent_class)->dispose (object);
1267 VirtViewerApp *self = VIRT_VIEWER_APP(object);
1268 VirtViewerAppPrivate *priv = self->priv;
1269
1270 if (priv->windows) {
1271 GHashTable *tmp = priv->windows;
1272 /* null-ify before unrefing, because we need
1273 * to prevent callbacks using priv->windows
1274 * while it is being disposed off. */
1275 priv->windows = NULL;
1276 priv->main_window = NULL;
1277 g_hash_table_unref(tmp);
1278 }
1279
1280 if (priv->container) {
1281 g_object_unref(priv->container);
1282 priv->container = NULL;
1283 }
1284
1285 if (priv->session) {
1286 g_object_unref(priv->session);
1287 priv->session = NULL;
1288 }
1289 g_free(priv->title);
1290 priv->title = NULL;
1291 g_free(priv->guest_name);
1292 priv->guest_name = NULL;
1293 g_free(priv->pretty_address);
1294 priv->pretty_address = NULL;
1295 g_free(priv->guri);
1296 priv->guri = NULL;
1297 g_free(priv->title);
1298 priv->title = NULL;
1299
1300 virt_viewer_app_free_connect_info(self);
1301
1302 G_OBJECT_CLASS (virt_viewer_app_parent_class)->dispose (object);
10041303 }
10051304
10061305 static gboolean
10071306 virt_viewer_app_default_start(VirtViewerApp *self)
10081307 {
1009 VirtViewerAppPrivate *priv;
1010 GtkWindow *win;
1011 priv = self->priv;
1012
1013 win = virt_viewer_window_get_window(priv->main_window);
1014 if (win)
1015 gtk_widget_show(GTK_WIDGET(win));
1016 else {
1017 gtk_box_pack_end(GTK_BOX(priv->container), priv->main_notebook, TRUE, TRUE, 0);
1018 gtk_widget_show(GTK_WIDGET(priv->main_notebook));
1019 }
1020
1021 return TRUE;
1308 virt_viewer_window_show(self->priv->main_window);
1309 return TRUE;
10221310 }
10231311
10241312 gboolean virt_viewer_app_start(VirtViewerApp *self)
10251313 {
1026 VirtViewerAppClass *klass;
1027
1028 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1029 klass = VIRT_VIEWER_APP_GET_CLASS(self);
1030
1031 g_return_val_if_fail(!self->priv->started, TRUE);
1032
1033 self->priv->started = klass->start(self);
1034 return self->priv->started;
1314 VirtViewerAppClass *klass;
1315
1316 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1317 klass = VIRT_VIEWER_APP_GET_CLASS(self);
1318
1319 g_return_val_if_fail(!self->priv->started, TRUE);
1320
1321 self->priv->started = klass->start(self);
1322 return self->priv->started;
10351323 }
10361324
10371325 static void
10381326 virt_viewer_app_init (VirtViewerApp *self)
10391327 {
1040 self->priv = GET_PRIVATE(self);
1041 self->priv->windows = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_object_unref);
1328 self->priv = GET_PRIVATE(self);
1329 self->priv->windows = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_object_unref);
10421330 }
10431331
10441332 static GObject *
10451333 virt_viewer_app_constructor (GType gtype,
1046 guint n_properties,
1047 GObjectConstructParam *properties)
1048 {
1049 GObject *obj;
1050 VirtViewerApp *self;
1051 VirtViewerAppPrivate *priv;
1052
1053 obj = G_OBJECT_CLASS (virt_viewer_app_parent_class)->constructor (gtype, n_properties, properties);
1054 self = VIRT_VIEWER_APP(obj);
1055 priv = self->priv;
1056
1057 priv->main_window = virt_viewer_app_window_new(self, priv->container, 0);
1058 priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window));
1059
1060 return obj;
1334 guint n_properties,
1335 GObjectConstructParam *properties)
1336 {
1337 GObject *obj;
1338 VirtViewerApp *self;
1339 VirtViewerAppPrivate *priv;
1340
1341 obj = G_OBJECT_CLASS (virt_viewer_app_parent_class)->constructor (gtype, n_properties, properties);
1342 self = VIRT_VIEWER_APP(obj);
1343 priv = self->priv;
1344
1345 priv->main_window = virt_viewer_app_window_new(self, priv->container, 0);
1346 priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window));
1347
1348 gtk_accel_map_add_entry("<virt-viewer>/file/smartcard-insert", GDK_F8, GDK_SHIFT_MASK);
1349 gtk_accel_map_add_entry("<virt-viewer>/file/smartcard-remove", GDK_F9, GDK_SHIFT_MASK);
1350 gtk_accel_map_add_entry("<virt-viewer>/view/fullscreen", GDK_F11, 0);
1351 gtk_accel_map_add_entry("<virt-viewer>/view/release-cursor", GDK_F12, GDK_SHIFT_MASK);
1352
1353 return obj;
10611354 }
10621355
10631356 static void
10641357 virt_viewer_app_class_init (VirtViewerAppClass *klass)
10651358 {
1066 GObjectClass *object_class = G_OBJECT_CLASS (klass);
1067
1068 g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate));
1069
1070 object_class->constructor = virt_viewer_app_constructor;
1071 object_class->get_property = virt_viewer_app_get_property;
1072 object_class->set_property = virt_viewer_app_set_property;
1073 object_class->dispose = virt_viewer_app_dispose;
1074
1075 klass->start = virt_viewer_app_default_start;
1076 klass->initial_connect = virt_viewer_app_default_initial_connect;
1077 klass->deactivated = virt_viewer_app_default_deactivated;
1078
1079 g_object_class_install_property(object_class,
1080 PROP_VERBOSE,
1081 g_param_spec_boolean("verbose",
1082 "Verbose",
1083 "Verbose trace",
1084 FALSE,
1085 G_PARAM_READABLE |
1086 G_PARAM_WRITABLE |
1087 G_PARAM_STATIC_STRINGS));
1088
1089 g_object_class_install_property(object_class,
1090 PROP_CONTAINER,
1091 g_param_spec_object("container",
1092 "Container",
1093 "Widget container",
1094 GTK_TYPE_WIDGET,
1095 G_PARAM_READABLE |
1096 G_PARAM_WRITABLE |
1097 G_PARAM_CONSTRUCT_ONLY |
1098 G_PARAM_STATIC_STRINGS));
1099
1100 g_object_class_install_property(object_class,
1101 PROP_SESSION,
1102 g_param_spec_object("session",
1103 "Session",
1104 "ViewerSession",
1105 VIRT_VIEWER_TYPE_SESSION,
1106 G_PARAM_READABLE |
1107 G_PARAM_STATIC_STRINGS));
1108
1109 g_object_class_install_property(object_class,
1110 PROP_GUEST_NAME,
1111 g_param_spec_string("guest-name",
1112 "Guest name",
1113 "Guest name",
1114 "",
1115 G_PARAM_READABLE |
1116 G_PARAM_WRITABLE |
1117 G_PARAM_STATIC_STRINGS));
1118
1119 g_object_class_install_property(object_class,
1120 PROP_FULLSCREEN,
1121 g_param_spec_boolean("fullscreen",
1122 "Fullscreen",
1123 "Fullscreen",
1124 FALSE,
1125 G_PARAM_READABLE |
1126 G_PARAM_WRITABLE |
1127 G_PARAM_STATIC_STRINGS));
1359 GObjectClass *object_class = G_OBJECT_CLASS (klass);
1360
1361 g_type_class_add_private (klass, sizeof (VirtViewerAppPrivate));
1362
1363 object_class->constructor = virt_viewer_app_constructor;
1364 object_class->get_property = virt_viewer_app_get_property;
1365 object_class->set_property = virt_viewer_app_set_property;
1366 object_class->dispose = virt_viewer_app_dispose;
1367
1368 klass->start = virt_viewer_app_default_start;
1369 klass->initial_connect = virt_viewer_app_default_initial_connect;
1370 klass->activate = virt_viewer_app_default_activate;
1371 klass->deactivated = virt_viewer_app_default_deactivated;
1372 klass->open_connection = virt_viewer_app_default_open_connection;
1373
1374 g_object_class_install_property(object_class,
1375 PROP_VERBOSE,
1376 g_param_spec_boolean("verbose",
1377 "Verbose",
1378 "Verbose trace",
1379 FALSE,
1380 G_PARAM_READABLE |
1381 G_PARAM_WRITABLE |
1382 G_PARAM_STATIC_STRINGS));
1383
1384 g_object_class_install_property(object_class,
1385 PROP_CONTAINER,
1386 g_param_spec_object("container",
1387 "Container",
1388 "Widget container",
1389 GTK_TYPE_WIDGET,
1390 G_PARAM_READABLE |
1391 G_PARAM_WRITABLE |
1392 G_PARAM_CONSTRUCT_ONLY |
1393 G_PARAM_STATIC_STRINGS));
1394
1395 g_object_class_install_property(object_class,
1396 PROP_SESSION,
1397 g_param_spec_object("session",
1398 "Session",
1399 "ViewerSession",
1400 VIRT_VIEWER_TYPE_SESSION,
1401 G_PARAM_READABLE |
1402 G_PARAM_STATIC_STRINGS));
1403
1404 g_object_class_install_property(object_class,
1405 PROP_GUEST_NAME,
1406 g_param_spec_string("guest-name",
1407 "Guest name",
1408 "Guest name",
1409 "",
1410 G_PARAM_READABLE |
1411 G_PARAM_WRITABLE |
1412 G_PARAM_STATIC_STRINGS));
1413
1414 g_object_class_install_property(object_class,
1415 PROP_GURI,
1416 g_param_spec_string("guri",
1417 "guri",
1418 "Remote graphical URI",
1419 "",
1420 G_PARAM_READABLE |
1421 G_PARAM_WRITABLE |
1422 G_PARAM_CONSTRUCT_ONLY |
1423 G_PARAM_STATIC_STRINGS));
1424
1425 g_object_class_install_property(object_class,
1426 PROP_FULLSCREEN,
1427 g_param_spec_boolean("fullscreen",
1428 "Fullscreen",
1429 "Fullscreen",
1430 FALSE,
1431 G_PARAM_READWRITE |
1432 G_PARAM_STATIC_STRINGS));
1433
1434 g_object_class_install_property(object_class,
1435 PROP_FULLSCREEN_AUTO_CONF,
1436 g_param_spec_boolean("fullscreen-auto-conf",
1437 "auto conf",
1438 "Automatic display configuration in full screen",
1439 FALSE,
1440 G_PARAM_READWRITE |
1441 G_PARAM_STATIC_STRINGS));
1442
1443 g_object_class_install_property(object_class,
1444 PROP_TITLE,
1445 g_param_spec_string("title",
1446 "Title",
1447 "Title",
1448 "",
1449 G_PARAM_READABLE |
1450 G_PARAM_WRITABLE |
1451 G_PARAM_STATIC_STRINGS));
1452
1453 g_object_class_install_property(object_class,
1454 PROP_ENABLE_ACCEL,
1455 g_param_spec_boolean("enable-accel",
1456 "Enable Accel",
1457 "Enable accelerators",
1458 FALSE,
1459 G_PARAM_CONSTRUCT |
1460 G_PARAM_READWRITE |
1461 G_PARAM_STATIC_STRINGS));
1462
1463 g_object_class_install_property(object_class,
1464 PROP_HAS_FOCUS,
1465 g_param_spec_boolean("has-focus",
1466 "Has Focus",
1467 "Application has focus",
1468 FALSE,
1469 G_PARAM_READABLE |
1470 G_PARAM_STATIC_STRINGS));
1471
1472 signals[SIGNAL_WINDOW_ADDED] =
1473 g_signal_new("window-added",
1474 G_OBJECT_CLASS_TYPE(object_class),
1475 G_SIGNAL_RUN_LAST,
1476 G_STRUCT_OFFSET(VirtViewerAppClass, window_added),
1477 NULL, NULL,
1478 g_cclosure_marshal_VOID__OBJECT,
1479 G_TYPE_NONE,
1480 1,
1481 G_TYPE_OBJECT);
1482
1483 signals[SIGNAL_WINDOW_REMOVED] =
1484 g_signal_new("window-removed",
1485 G_OBJECT_CLASS_TYPE(object_class),
1486 G_SIGNAL_RUN_LAST,
1487 G_STRUCT_OFFSET(VirtViewerAppClass, window_removed),
1488 NULL, NULL,
1489 g_cclosure_marshal_VOID__OBJECT,
1490 G_TYPE_NONE,
1491 1,
1492 G_TYPE_OBJECT);
11281493 }
11291494
11301495 void
11311496 virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct)
11321497 {
1133 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1134
1135 self->priv->direct = direct;
1498 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1499
1500 self->priv->direct = direct;
1501 }
1502
1503 void
1504 virt_viewer_app_set_attach(VirtViewerApp *self, gboolean attach)
1505 {
1506 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1507
1508 self->priv->attach = attach;
1509 }
1510
1511 gboolean
1512 virt_viewer_app_get_attach(VirtViewerApp *self)
1513 {
1514 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1515
1516 return self->priv->attach;
11361517 }
11371518
11381519 gboolean
11391520 virt_viewer_app_is_active(VirtViewerApp *self)
11401521 {
1141 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1142
1143 return self->priv->active;
1522 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1523
1524 return self->priv->active;
11441525 }
11451526
11461527 gboolean
11471528 virt_viewer_app_has_session(VirtViewerApp *self)
11481529 {
1149 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1150
1151 return self->priv->session != NULL;
1530 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1531
1532 return self->priv->session != NULL;
11521533 }
11531534
11541535 static void
11551536 virt_viewer_app_update_pretty_address(VirtViewerApp *self)
11561537 {
1157 VirtViewerAppPrivate *priv;
1158
1159 priv = self->priv;
1160 g_free(priv->pretty_address);
1161 if (priv->gport)
1162 priv->pretty_address = g_strdup_printf("%s:%s", priv->ghost, priv->gport);
1163 else
1164 priv->pretty_address = g_strdup_printf("%s:%s", priv->host, priv->unixsock);
1538 VirtViewerAppPrivate *priv;
1539
1540 priv = self->priv;
1541 g_free(priv->pretty_address);
1542 if (priv->guri)
1543 priv->pretty_address = g_strdup(priv->guri);
1544 else if (priv->gport)
1545 priv->pretty_address = g_strdup_printf("%s:%s", priv->ghost, priv->gport);
1546 else
1547 priv->pretty_address = g_strdup_printf("%s:%s", priv->host, priv->unixsock);
11651548 }
11661549
11671550 typedef struct {
1168 gboolean fullscreen;
1169 gboolean move;
1551 gboolean fullscreen;
1552 gboolean move;
11701553 } FullscreenOptions;
11711554
11721555 static void fullscreen_cb(gpointer key,
1173 gpointer value,
1174 gpointer user_data)
1175 {
1176 gint nth = *(gint*)key;
1177 FullscreenOptions *options = (FullscreenOptions *)user_data;
1178 VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(value);
1179
1180 DEBUG_LOG("fullscreen display %d: %d", nth, options->fullscreen);
1181 if (options->fullscreen) {
1182 GdkScreen *screen = gdk_screen_get_default ();
1183 GdkRectangle mon;
1184
1185 if (nth >= gdk_screen_get_n_monitors(screen)) {
1186 DEBUG_LOG("skipping display %d", nth);
1187 return;
1188 }
1189 gdk_screen_get_monitor_geometry(screen, nth, &mon);
1190 virt_viewer_window_enter_fullscreen(vwin, options->move, mon.x, mon.y);
1191 } else
1192 virt_viewer_window_leave_fullscreen(vwin);
1556 gpointer value,
1557 gpointer user_data)
1558 {
1559 gint nth = *(gint*)key;
1560 FullscreenOptions *options = (FullscreenOptions *)user_data;
1561 VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(value);
1562
1563 DEBUG_LOG("fullscreen display %d: %d", nth, options->fullscreen);
1564 if (options->fullscreen) {
1565 GdkScreen *screen = gdk_screen_get_default();
1566 GdkRectangle mon;
1567
1568 if (nth >= gdk_screen_get_n_monitors(screen)) {
1569 DEBUG_LOG("skipping display %d", nth);
1570 return;
1571 }
1572 gdk_screen_get_monitor_geometry(screen, nth, &mon);
1573 virt_viewer_window_enter_fullscreen(vwin, options->move, mon.x, mon.y);
1574 } else
1575 virt_viewer_window_leave_fullscreen(vwin);
11931576 }
11941577
11951578 static void
11961579 virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen)
11971580 {
1198 VirtViewerAppPrivate *priv = self->priv;
1199 FullscreenOptions options = {
1200 .fullscreen = fullscreen,
1201 .move = virt_viewer_app_get_n_windows_visible(self) > 1,
1202 };
1203
1204 /* we iterate unconditionnaly, even if it was set before to update new windows */
1205 priv->fullscreen = fullscreen;
1206 g_hash_table_foreach(priv->windows, fullscreen_cb, &options);
1581 VirtViewerAppPrivate *priv = self->priv;
1582 FullscreenOptions options = {
1583 .fullscreen = fullscreen,
1584 .move = virt_viewer_app_get_n_windows_visible(self) > 1 || self->priv->fullscreen_auto_conf,
1585 };
1586
1587 /* we iterate unconditionnaly, even if it was set before to update new windows */
1588 priv->fullscreen = fullscreen;
1589 g_hash_table_foreach(priv->windows, fullscreen_cb, &options);
1590
1591 g_object_notify(G_OBJECT(self), "fullscreen");
12071592 }
12081593
12091594 static void
12101595 menu_display_visible_toggled_cb(GtkCheckMenuItem *checkmenuitem,
1211 VirtViewerWindow *vwin)
1212 {
1213 VirtViewerApp *self;
1214 gboolean visible;
1215 static gboolean reentering = FALSE;
1216
1217 if (reentering) /* do not reenter if I switch you back */
1218 return;
1219
1220 reentering = TRUE;
1221 g_object_get(vwin, "app", &self, NULL);
1222 visible = virt_viewer_app_window_set_visible(self, vwin,
1223 gtk_check_menu_item_get_active(checkmenuitem));
1224 gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible);
1225 g_object_unref(self);
1226 reentering = FALSE;
1596 VirtViewerWindow *vwin)
1597 {
1598 VirtViewerApp *self;
1599 gboolean visible;
1600 static gboolean reentering = FALSE;
1601
1602 if (reentering) /* do not reenter if I switch you back */
1603 return;
1604
1605 reentering = TRUE;
1606 g_object_get(vwin, "app", &self, NULL);
1607 visible = virt_viewer_app_window_set_visible(self, vwin,
1608 gtk_check_menu_item_get_active(checkmenuitem));
1609 gtk_check_menu_item_set_active(checkmenuitem, /* will be toggled again */ !visible);
1610 g_object_unref(self);
1611 reentering = FALSE;
12271612 }
12281613
12291614 static gint
12301615 update_menu_displays_sort(gconstpointer a, gconstpointer b)
12311616 {
1232 const int *ai = a;
1233 const int *bi = b;
1234
1235 if (*ai > *bi)
1236 return 1;
1237 else if (*ai < *bi)
1238 return -1;
1239 else
1240 return 0;
1617 const int *ai = a;
1618 const int *bi = b;
1619
1620 if (*ai > *bi)
1621 return 1;
1622 else if (*ai < *bi)
1623 return -1;
1624 else
1625 return 0;
12411626 }
12421627
12431628 static void
12441629 window_update_menu_displays_cb(gpointer key G_GNUC_UNUSED,
1245 gpointer value,
1246 gpointer user_data)
1247 {
1248 VirtViewerApp *self = VIRT_VIEWER_APP(user_data);
1249 VirtViewerWindow *window = VIRT_VIEWER_WINDOW(value);
1250 GtkMenuShell *submenu = GTK_MENU_SHELL(gtk_menu_new());
1251 GtkMenuItem *menu = virt_viewer_window_get_menu_displays(window);
1252 GList *keys = g_hash_table_get_keys(self->priv->windows);
1253 GList *tmp;
1254
1255 keys = g_list_sort(keys, update_menu_displays_sort);
1256
1257 tmp = keys;
1258 while (tmp) {
1259 int *nth = tmp->data;
1260 VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth));
1261 GtkWidget *item;
1262 gboolean visible;
1263
1264 item = gtk_check_menu_item_new_with_label(g_strdup_printf("Display %d", *nth));
1265 visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin)));
1266 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible);
1267 g_signal_connect(G_OBJECT(item),
1268 "toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin);
1269 gtk_menu_shell_append(submenu, item);
1270 tmp = tmp->next;
1271 }
1272
1273 gtk_widget_show_all(GTK_WIDGET(submenu));
1274 gtk_menu_item_set_submenu(menu, GTK_WIDGET(submenu));
1275 g_list_free(keys);
1630 gpointer value,
1631 gpointer user_data)
1632 {
1633 VirtViewerApp *self = VIRT_VIEWER_APP(user_data);
1634 VirtViewerWindow *window = VIRT_VIEWER_WINDOW(value);
1635 GtkMenuShell *submenu = GTK_MENU_SHELL(gtk_menu_new());
1636 GtkMenuItem *menu = virt_viewer_window_get_menu_displays(window);
1637 GList *keys = g_hash_table_get_keys(self->priv->windows);
1638 GList *tmp;
1639
1640 keys = g_list_sort(keys, update_menu_displays_sort);
1641
1642 tmp = keys;
1643 while (tmp) {
1644 int *nth = tmp->data;
1645 VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth));
1646 VirtViewerDisplay *display = virt_viewer_window_get_display(vwin);
1647 GtkWidget *item;
1648 gboolean visible, sensitive = FALSE;
1649 gchar *label;
1650
1651 label = g_strdup_printf(_("Display %d"), *nth + 1);
1652 item = gtk_check_menu_item_new_with_label(label);
1653 g_free(label);
1654
1655 visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin)));
1656 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible);
1657
1658 if (display) {
1659 guint hint = virt_viewer_display_get_show_hint(display);
1660
1661 if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY)
1662 sensitive = TRUE;
1663
1664 if ((hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) &&
1665 virt_viewer_display_get_selectable(display))
1666 sensitive = TRUE;
1667 }
1668
1669 gtk_widget_set_sensitive(item, sensitive);
1670
1671 g_signal_connect(G_OBJECT(item),
1672 "toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin);
1673 gtk_menu_shell_append(submenu, item);
1674 tmp = tmp->next;
1675 }
1676
1677 gtk_widget_show_all(GTK_WIDGET(submenu));
1678 gtk_menu_item_set_submenu(menu, GTK_WIDGET(submenu));
1679 g_list_free(keys);
12761680 }
12771681
12781682 static void
12791683 virt_viewer_app_update_menu_displays(VirtViewerApp *self)
12801684 {
1281 g_hash_table_foreach(self->priv->windows, window_update_menu_displays_cb, self);
1685 if (!self->priv->windows)
1686 return;
1687 g_hash_table_foreach(self->priv->windows, window_update_menu_displays_cb, self);
12821688 }
12831689
12841690 void
12851691 virt_viewer_app_set_connect_info(VirtViewerApp *self,
1286 const gchar *host,
1287 const gchar *ghost,
1288 const gchar *gport,
1289 const gchar *transport,
1290 const gchar *unixsock,
1291 const gchar *user,
1292 gint port)
1293 {
1294 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1295 VirtViewerAppPrivate *priv = self->priv;
1296
1297 DEBUG_LOG("Set connect info: %s,%s,%s,%s,%s,%s,%d",
1298 host, ghost, gport, transport, unixsock, user, port);
1299
1300 g_free(priv->host);
1301 g_free(priv->ghost);
1302 g_free(priv->gport);
1303 g_free(priv->transport);
1304 g_free(priv->unixsock);
1305 g_free(priv->user);
1306
1307 priv->host = g_strdup(host);
1308 priv->ghost = g_strdup(ghost);
1309 priv->gport = g_strdup(gport);
1310 priv->transport = g_strdup(transport);
1311 priv->unixsock = g_strdup(unixsock);
1312 priv->user = g_strdup(user);
1313 priv->port = 0;
1314
1315 virt_viewer_app_update_pretty_address(self);
1692 const gchar *host,
1693 const gchar *ghost,
1694 const gchar *gport,
1695 const gchar *gtlsport,
1696 const gchar *transport,
1697 const gchar *unixsock,
1698 const gchar *user,
1699 gint port,
1700 const gchar *guri)
1701 {
1702 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1703 VirtViewerAppPrivate *priv = self->priv;
1704
1705 DEBUG_LOG("Set connect info: %s,%s,%s,%s,%s,%s,%s,%d",
1706 host, ghost, gport, gtlsport ? gtlsport : "-1", transport, unixsock, user, port);
1707
1708 g_free(priv->host);
1709 g_free(priv->ghost);
1710 g_free(priv->gport);
1711 g_free(priv->gtlsport);
1712 g_free(priv->transport);
1713 g_free(priv->unixsock);
1714 g_free(priv->user);
1715 g_free(priv->guri);
1716
1717 priv->host = g_strdup(host);
1718 priv->ghost = g_strdup(ghost);
1719 priv->gport = g_strdup(gport);
1720 priv->gtlsport = gtlsport ? g_strdup(gtlsport) : NULL;
1721 priv->transport = g_strdup(transport);
1722 priv->unixsock = g_strdup(unixsock);
1723 priv->user = g_strdup(user);
1724 priv->guri = g_strdup(guri);
1725 priv->port = port;
1726
1727 virt_viewer_app_update_pretty_address(self);
13161728 }
13171729
13181730 void
13191731 virt_viewer_app_free_connect_info(VirtViewerApp *self)
13201732 {
1321 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1322
1323 virt_viewer_app_set_connect_info(self, NULL, NULL, NULL, NULL, NULL, NULL, 0);
1733 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1734
1735 virt_viewer_app_set_connect_info(self, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL);
13241736 }
13251737
13261738 VirtViewerWindow*
13271739 virt_viewer_app_get_main_window(VirtViewerApp *self)
13281740 {
1329 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
1330
1331 return self->priv->main_window;
1741 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
1742
1743 return self->priv->main_window;
13321744 }
13331745
13341746 static void
13351747 show_status_cb(gpointer key G_GNUC_UNUSED,
1336 gpointer value,
1337 gpointer user_data)
1338 {
1339 VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
1340 gchar *text = (gchar*)user_data;
1341
1342 virt_viewer_notebook_show_status(nb, text);
1748 gpointer value,
1749 gpointer user_data)
1750 {
1751 VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
1752 gchar *text = (gchar*)user_data;
1753
1754 virt_viewer_notebook_show_status(nb, text);
13431755 }
13441756
13451757 void
13461758 virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...)
13471759 {
1348 va_list args;
1349 gchar *text;
1350
1351 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1352
1353 va_start(args, fmt);
1354 text = g_strdup_vprintf(fmt, args);
1355 va_end(args);
1356
1357 g_hash_table_foreach(self->priv->windows, show_status_cb, text);
1358 g_free(text);
1760 va_list args;
1761 gchar *text;
1762
1763 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1764 g_return_if_fail(fmt != NULL);
1765
1766 va_start(args, fmt);
1767 text = g_strdup_vprintf(fmt, args);
1768 va_end(args);
1769
1770 g_hash_table_foreach(self->priv->windows, show_status_cb, text);
1771 g_free(text);
1772 }
1773
1774 static void
1775 show_display_cb(gpointer key G_GNUC_UNUSED,
1776 gpointer value,
1777 gpointer user_data G_GNUC_UNUSED)
1778 {
1779 VirtViewerNotebook *nb = virt_viewer_window_get_notebook(VIRT_VIEWER_WINDOW(value));
1780
1781 virt_viewer_notebook_show_display(nb);
1782 }
1783
1784 void
1785 virt_viewer_app_show_display(VirtViewerApp *self)
1786 {
1787 g_return_if_fail(VIRT_VIEWER_IS_APP(self));
1788 g_hash_table_foreach(self->priv->windows, show_display_cb, self);
1789 }
1790
1791 gboolean
1792 virt_viewer_app_get_enable_accel(VirtViewerApp *self)
1793 {
1794 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1795
1796 return self->priv->enable_accel;
1797 }
1798
1799 VirtViewerSession*
1800 virt_viewer_app_get_session(VirtViewerApp *self)
1801 {
1802 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), FALSE);
1803
1804 return self->priv->session;
1805 }
1806
1807 GHashTable*
1808 virt_viewer_app_get_windows(VirtViewerApp *self)
1809 {
1810 g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
1811 return self->priv->windows;
13591812 }
13601813
13611814 /*
13621815 * Local variables:
1363 * c-indent-level: 8
1364 * c-basic-offset: 8
1365 * tab-width: 8
1366 * indent-tabs-mode: t
1816 * c-indent-level: 4
1817 * c-basic-offset: 4
1818 * indent-tabs-mode: nil
13671819 * End:
13681820 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007 Red Hat,
3 * Copyright (C) 2007-2012 Red Hat, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
3838 typedef struct _VirtViewerAppPrivate VirtViewerAppPrivate;
3939
4040 typedef struct {
41 GObject parent;
42 VirtViewerAppPrivate *priv;
41 GObject parent;
42 VirtViewerAppPrivate *priv;
4343 } VirtViewerApp;
4444
4545 typedef struct {
46 GObjectClass parent_class;
46 GObjectClass parent_class;
4747
48 gboolean (*start) (VirtViewerApp *self);
49 int (*initial_connect) (VirtViewerApp *self);
50 void (*deactivated) (VirtViewerApp *self);
48 /* signals */
49 void (*window_added) (VirtViewerApp *self, VirtViewerWindow *window);
50 void (*window_removed) (VirtViewerApp *self, VirtViewerWindow *window);
51
52 /*< private >*/
53 gboolean (*start) (VirtViewerApp *self);
54 int (*initial_connect) (VirtViewerApp *self);
55 int (*activate) (VirtViewerApp *self);
56 void (*deactivated) (VirtViewerApp *self);
57 gboolean (*open_connection)(VirtViewerApp *self, int *fd);
5158 } VirtViewerAppClass;
5259
5360 GType virt_viewer_app_get_type (void);
6673 void virt_viewer_app_start_reconnect_poll(VirtViewerApp *self);
6774 void virt_viewer_app_set_zoom_level(VirtViewerApp *self, gint zoom_level);
6875 void virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct);
76 void virt_viewer_app_set_attach(VirtViewerApp *self, gboolean attach);
77 gboolean virt_viewer_app_get_attach(VirtViewerApp *self);
6978 gboolean virt_viewer_app_has_session(VirtViewerApp *self);
7079 void virt_viewer_app_set_connect_info(VirtViewerApp *self,
7180 const gchar *host,
7281 const gchar *ghost,
7382 const gchar *gport,
83 const gchar *gtlsport,
7484 const gchar *transport,
7585 const gchar *unixsock,
7686 const gchar *user,
77 gint port);
87 gint port,
88 const gchar *guri);
7889 gboolean virt_viewer_app_window_set_visible(VirtViewerApp *self, VirtViewerWindow *window, gboolean visible);
7990 void virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...);
91 void virt_viewer_app_show_display(VirtViewerApp *self);
92 GHashTable* virt_viewer_app_get_windows(VirtViewerApp *self);
93 gboolean virt_viewer_app_get_enable_accel(VirtViewerApp *self);
94 VirtViewerSession* virt_viewer_app_get_session(VirtViewerApp *self);
8095
8196 G_END_DECLS
8297
8398 #endif /* VIRT_VIEWER_APP_H */
99 /*
100 * Local variables:
101 * c-indent-level: 4
102 * c-basic-offset: 4
103 * indent-tabs-mode: nil
104 * End:
105 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
3 * Copyright (C) 2007-2012 Red Hat, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
2121
2222 #include <config.h>
2323
24 #include <vncdisplay.h>
2524 #include <gtk/gtk.h>
2625 #include <string.h>
26
27 #ifdef HAVE_GTK_VNC
28 #include <vncdisplay.h>
29 #endif
2730
2831 #include "virt-viewer-auth.h"
2932
3033
3134 int
32 virt_viewer_auth_collect_credentials(const char *type,
33 const char *address,
34 char **username,
35 char **password)
35 virt_viewer_auth_collect_credentials(GtkWindow *window,
36 const char *type,
37 const char *address,
38 char **username,
39 char **password)
3640 {
37 GtkWidget *dialog = NULL;
38 GtkBuilder *creds = virt_viewer_util_load_ui("virt-viewer-auth.xml");
39 GtkWidget *credUsername;
40 GtkWidget *credPassword;
41 GtkWidget *promptUsername;
42 GtkWidget *promptPassword;
43 GtkWidget *labelMessage;
44 int response;
45 char *message;
41 GtkWidget *dialog = NULL;
42 GtkBuilder *creds = virt_viewer_util_load_ui("virt-viewer-auth.xml");
43 GtkWidget *credUsername;
44 GtkWidget *credPassword;
45 GtkWidget *promptUsername;
46 GtkWidget *promptPassword;
47 GtkWidget *labelMessage;
48 int response;
49 char *message;
4650
47 dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth"));
48 gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
51 dialog = GTK_WIDGET(gtk_builder_get_object(creds, "auth"));
52 gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
53 gtk_window_set_transient_for(GTK_WINDOW(dialog), window);
4954
50 labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message"));
51 credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username"));
52 promptUsername = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-username"));
53 credPassword = GTK_WIDGET(gtk_builder_get_object(creds, "cred-password"));
54 promptPassword = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-password"));
55 labelMessage = GTK_WIDGET(gtk_builder_get_object(creds, "message"));
56 credUsername = GTK_WIDGET(gtk_builder_get_object(creds, "cred-username"));
57 promptUsername = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-username"));
58 credPassword = GTK_WIDGET(gtk_builder_get_object(creds, "cred-password"));
59 promptPassword = GTK_WIDGET(gtk_builder_get_object(creds, "prompt-password"));
5560
56 gtk_widget_set_sensitive(credUsername, username != NULL);
57 gtk_widget_set_sensitive(promptUsername, username != NULL);
58 gtk_widget_set_sensitive(credPassword, password != NULL);
59 gtk_widget_set_sensitive(promptPassword, password != NULL);
61 gtk_widget_set_sensitive(credUsername, username != NULL);
62 gtk_widget_set_sensitive(promptUsername, username != NULL);
63 gtk_widget_set_sensitive(credPassword, password != NULL);
64 gtk_widget_set_sensitive(promptPassword, password != NULL);
6065
61 if (address) {
62 message = g_strdup_printf("Authentication is required for the %s connection to:\n\n"
63 "<b>%s</b>\n\n",
64 type,
65 address);
66 } else {
67 message = g_strdup_printf("Authentication is required for the %s connection:\n",
68 type);
69 }
66 if (address) {
67 message = g_strdup_printf("Authentication is required for the %s connection to:\n\n"
68 "<b>%s</b>\n\n",
69 type,
70 address);
71 } else {
72 message = g_strdup_printf("Authentication is required for the %s connection:\n",
73 type);
74 }
7075
71 gtk_label_set_markup(GTK_LABEL(labelMessage), message);
72 g_free(message);
76 gtk_label_set_markup(GTK_LABEL(labelMessage), message);
77 g_free(message);
7378
74 gtk_widget_show_all(dialog);
75 response = gtk_dialog_run(GTK_DIALOG(dialog));
76 gtk_widget_hide(dialog);
79 gtk_widget_show_all(dialog);
80 response = gtk_dialog_run(GTK_DIALOG(dialog));
81 gtk_widget_hide(dialog);
7782
78 if (response == GTK_RESPONSE_OK) {
79 if (username)
80 *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(credUsername)));
81 if (password)
82 *password = g_strdup(gtk_entry_get_text(GTK_ENTRY(credPassword)));
83 }
83 if (response == GTK_RESPONSE_OK) {
84 if (username)
85 *username = g_strdup(gtk_entry_get_text(GTK_ENTRY(credUsername)));
86 if (password)
87 *password = g_strdup(gtk_entry_get_text(GTK_ENTRY(credPassword)));
88 }
8489
85 gtk_widget_destroy(GTK_WIDGET(dialog));
90 gtk_widget_destroy(GTK_WIDGET(dialog));
91 g_object_unref(G_OBJECT(creds));
8692
87 return response == GTK_RESPONSE_OK ? 0 : -1;
93 return response == GTK_RESPONSE_OK ? 0 : -1;
8894 }
8995
96 #ifdef HAVE_GTK_VNC
9097 void
91 virt_viewer_auth_vnc_credentials(GtkWidget *vnc,
92 GValueArray *credList,
93 char **vncAddress)
98 virt_viewer_auth_vnc_credentials(GtkWindow *window,
99 GtkWidget *vnc,
100 GValueArray *credList,
101 char *vncAddress)
94102 {
95 char *username = NULL, *password = NULL;
96 gboolean wantPassword = FALSE, wantUsername = FALSE;
97 int i;
103 char *username = NULL, *password = NULL;
104 gboolean wantPassword = FALSE, wantUsername = FALSE;
105 int i;
98106
99 DEBUG_LOG("Got VNC credential request for %d credential(s)", credList->n_values);
107 DEBUG_LOG("Got VNC credential request for %d credential(s)", credList->n_values);
100108
101 for (i = 0 ; i < credList->n_values ; i++) {
102 GValue *cred = g_value_array_get_nth(credList, i);
103 switch (g_value_get_enum(cred)) {
104 case VNC_DISPLAY_CREDENTIAL_USERNAME:
105 wantUsername = TRUE;
106 break;
107 case VNC_DISPLAY_CREDENTIAL_PASSWORD:
108 wantPassword = TRUE;
109 break;
110 case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
111 break;
112 default:
113 DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
114 vnc_display_close(VNC_DISPLAY(vnc));
115 goto cleanup;
116 }
109 for (i = 0 ; i < credList->n_values ; i++) {
110 GValue *cred = g_value_array_get_nth(credList, i);
111 switch (g_value_get_enum(cred)) {
112 case VNC_DISPLAY_CREDENTIAL_USERNAME:
113 wantUsername = TRUE;
114 break;
115 case VNC_DISPLAY_CREDENTIAL_PASSWORD:
116 wantPassword = TRUE;
117 break;
118 case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
119 break;
120 default:
121 DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
122 vnc_display_close(VNC_DISPLAY(vnc));
123 goto cleanup;
117124 }
125 }
118126
119 if (wantUsername || wantPassword) {
120 int ret = virt_viewer_auth_collect_credentials("VNC", vncAddress ? *vncAddress : NULL,
121 wantUsername ? &username : NULL,
122 wantPassword ? &password : NULL);
127 if (wantUsername || wantPassword) {
128 int ret = virt_viewer_auth_collect_credentials(window,
129 "VNC", vncAddress,
130 wantUsername ? &username : NULL,
131 wantPassword ? &password : NULL);
123132
124 if (ret < 0) {
125 vnc_display_close(VNC_DISPLAY(vnc));
126 goto cleanup;
127 }
133 if (ret < 0) {
134 vnc_display_close(VNC_DISPLAY(vnc));
135 goto cleanup;
128136 }
137 }
129138
130 for (i = 0 ; i < credList->n_values ; i++) {
131 GValue *cred = g_value_array_get_nth(credList, i);
132 switch (g_value_get_enum(cred)) {
133 case VNC_DISPLAY_CREDENTIAL_USERNAME:
134 if (!username ||
135 vnc_display_set_credential(VNC_DISPLAY(vnc),
136 g_value_get_enum(cred),
137 username)) {
138 DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
139 vnc_display_close(VNC_DISPLAY(vnc));
140 }
141 break;
142 case VNC_DISPLAY_CREDENTIAL_PASSWORD:
143 if (!password ||
144 vnc_display_set_credential(VNC_DISPLAY(vnc),
145 g_value_get_enum(cred),
146 password)) {
147 DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
148 vnc_display_close(VNC_DISPLAY(vnc));
149 }
150 break;
151 case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
152 if (vnc_display_set_credential(VNC_DISPLAY(vnc),
153 g_value_get_enum(cred),
154 "libvirt")) {
155 DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
156 vnc_display_close(VNC_DISPLAY(vnc));
157 }
158 break;
159 default:
160 DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
161 vnc_display_close(VNC_DISPLAY(vnc));
162 }
139 for (i = 0 ; i < credList->n_values ; i++) {
140 GValue *cred = g_value_array_get_nth(credList, i);
141 switch (g_value_get_enum(cred)) {
142 case VNC_DISPLAY_CREDENTIAL_USERNAME:
143 if (!username ||
144 vnc_display_set_credential(VNC_DISPLAY(vnc),
145 g_value_get_enum(cred),
146 username)) {
147 DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
148 vnc_display_close(VNC_DISPLAY(vnc));
149 }
150 break;
151 case VNC_DISPLAY_CREDENTIAL_PASSWORD:
152 if (!password ||
153 vnc_display_set_credential(VNC_DISPLAY(vnc),
154 g_value_get_enum(cred),
155 password)) {
156 DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
157 vnc_display_close(VNC_DISPLAY(vnc));
158 }
159 break;
160 case VNC_DISPLAY_CREDENTIAL_CLIENTNAME:
161 if (vnc_display_set_credential(VNC_DISPLAY(vnc),
162 g_value_get_enum(cred),
163 "libvirt")) {
164 DEBUG_LOG("Failed to set credential type %d", g_value_get_enum(cred));
165 vnc_display_close(VNC_DISPLAY(vnc));
166 }
167 break;
168 default:
169 DEBUG_LOG("Unsupported credential type %d", g_value_get_enum(cred));
170 vnc_display_close(VNC_DISPLAY(vnc));
163171 }
172 }
164173
165174 cleanup:
166 g_free(username);
167 g_free(password);
175 g_free(username);
176 g_free(password);
168177 }
169
170
171
172 int
173 virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred,
174 unsigned int ncred,
175 void *cbdata)
176 {
177 char **username = NULL, **password = NULL;
178 const char *uri = cbdata;
179 int i;
180 int ret = -1;
181
182 DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred);
183
184 for (i = 0 ; i < ncred ; i++) {
185 switch (cred[i].type) {
186 case VIR_CRED_USERNAME:
187 case VIR_CRED_AUTHNAME:
188 username = &cred[i].result;
189 break;
190 case VIR_CRED_PASSPHRASE:
191 password = &cred[i].result;
192 break;
193 default:
194 DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type);
195 return -1;
196 }
197 }
198
199 if (username || password) {
200 ret = virt_viewer_auth_collect_credentials("libvirt", uri,
201 username, password);
202 if (ret < 0)
203 goto cleanup;
204 } else {
205 ret = 0;
206 }
207
208 for (i = 0 ; i < ncred ; i++) {
209 switch (cred[i].type) {
210 case VIR_CRED_AUTHNAME:
211 case VIR_CRED_USERNAME:
212 case VIR_CRED_PASSPHRASE:
213 if (cred[i].result)
214 cred[i].resultlen = strlen(cred[i].result);
215 else
216 cred[i].resultlen = 0;
217 DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type);
218 break;
219 }
220 }
221
222 cleanup:
223 DEBUG_LOG("Return %d", ret);
224 return ret;
225 }
226
227
228
178 #endif
229179
230180 /*
231181 * Local variables:
232 * c-indent-level: 8
233 * c-basic-offset: 8
234 * tab-width: 8
182 * c-indent-level: 4
183 * c-basic-offset: 4
184 * indent-tabs-mode: nil
235185 * End:
236186 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
3 * Copyright (C) 2007-2012 Red Hat, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
2222 #ifndef VIRT_VIEWER_AUTH_H
2323 #define VIRT_VIEWER_AUTH_H
2424
25 #include "config.h"
26
27 #ifdef HAVE_LIBVIRT
2528 #include <libvirt/libvirt.h>
29 #endif
2630
2731 #include "virt-viewer-util.h"
2832
29 void virt_viewer_auth_vnc_credentials(GtkWidget *vnc,
30 GValueArray *credList,
31 char **message);
33 void virt_viewer_auth_vnc_credentials(GtkWindow *window,
34 GtkWidget *vnc,
35 GValueArray *credList,
36 char *vncAddress);
3237
33 int virt_viewer_auth_collect_credentials(const char *type,
34 const char *address,
35 char **username,
36 char **password);
37
38 int virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred,
39 unsigned int ncred,
40 void *cbdata);
38 int virt_viewer_auth_collect_credentials(GtkWindow *window,
39 const char *type,
40 const char *address,
41 char **username,
42 char **password);
4143
4244 #endif
45 /*
46 * Local variables:
47 * c-indent-level: 4
48 * c-basic-offset: 4
49 * indent-tabs-mode: nil
50 * End:
51 */
0 <?xml version="1.0"?>
0 <?xml version="1.0" encoding="UTF-8"?>
11 <interface>
22 <!-- interface-requires gtk+ 2.12 -->
3 <!-- interface-naming-policy toplevel-contextual -->
43 <object class="GtkDialog" id="auth">
4 <property name="can_focus">False</property>
55 <property name="border_width">5</property>
66 <property name="title" translatable="yes">Authentication required</property>
7 <property name="modal">True</property>
78 <property name="window_position">center-on-parent</property>
9 <property name="destroy_with_parent">True</property>
810 <property name="type_hint">dialog</property>
11 <property name="skip_taskbar_hint">True</property>
12 <property name="skip_pager_hint">True</property>
913 <child internal-child="vbox">
10 <object class="GtkVBox" id="dialog-vbox1">
14 <object class="GtkBox" id="dialog-vbox1">
1115 <property name="visible">True</property>
16 <property name="can_focus">False</property>
17 <property name="orientation">vertical</property>
1218 <property name="spacing">2</property>
19 <child internal-child="action_area">
20 <object class="GtkButtonBox" id="dialog-action_area1">
21 <property name="visible">True</property>
22 <property name="can_focus">False</property>
23 <property name="layout_style">end</property>
24 <child>
25 <object class="GtkButton" id="button-cancel">
26 <property name="label">gtk-cancel</property>
27 <property name="visible">True</property>
28 <property name="can_focus">True</property>
29 <property name="receives_default">True</property>
30 <property name="use_action_appearance">False</property>
31 <property name="use_stock">True</property>
32 </object>
33 <packing>
34 <property name="expand">False</property>
35 <property name="fill">False</property>
36 <property name="position">0</property>
37 </packing>
38 </child>
39 <child>
40 <object class="GtkButton" id="button-ok">
41 <property name="label">gtk-ok</property>
42 <property name="visible">True</property>
43 <property name="can_focus">True</property>
44 <property name="can_default">True</property>
45 <property name="has_default">True</property>
46 <property name="receives_default">True</property>
47 <property name="use_action_appearance">False</property>
48 <property name="use_stock">True</property>
49 </object>
50 <packing>
51 <property name="expand">False</property>
52 <property name="fill">False</property>
53 <property name="position">3</property>
54 </packing>
55 </child>
56 </object>
57 <packing>
58 <property name="expand">False</property>
59 <property name="fill">True</property>
60 <property name="pack_type">end</property>
61 <property name="position">0</property>
62 </packing>
63 </child>
1364 <child>
1465 <object class="GtkLabel" id="message">
1566 <property name="visible">True</property>
67 <property name="can_focus">False</property>
1668 <property name="xalign">0</property>
1769 <property name="yalign">0</property>
1870 <property name="label" translatable="yes">label</property>
1971 <property name="use_markup">True</property>
2072 </object>
2173 <packing>
74 <property name="expand">False</property>
75 <property name="fill">True</property>
2276 <property name="position">1</property>
2377 </packing>
2478 </child>
2579 <child>
2680 <object class="GtkTable" id="table1">
2781 <property name="visible">True</property>
82 <property name="can_focus">False</property>
2883 <property name="n_rows">2</property>
2984 <property name="n_columns">2</property>
3085 <property name="column_spacing">6</property>
3287 <child>
3388 <object class="GtkLabel" id="prompt-password">
3489 <property name="visible">True</property>
90 <property name="can_focus">False</property>
3591 <property name="xalign">1</property>
3692 <property name="label" translatable="yes">Password:</property>
3793 </object>
4399 <child>
44100 <object class="GtkLabel" id="prompt-username">
45101 <property name="visible">True</property>
102 <property name="can_focus">False</property>
46103 <property name="xalign">1</property>
47104 <property name="label" translatable="yes">Username:</property>
48105 </object>
62119 <property name="visible">True</property>
63120 <property name="can_focus">True</property>
64121 <property name="visibility">False</property>
122 <property name="activates_default">True</property>
65123 </object>
66124 <packing>
67125 <property name="left_attach">1</property>
72130 </child>
73131 </object>
74132 <packing>
133 <property name="expand">False</property>
134 <property name="fill">True</property>
75135 <property name="position">2</property>
76 </packing>
77 </child>
78 <child internal-child="action_area">
79 <object class="GtkHButtonBox" id="dialog-action_area1">
80 <property name="visible">True</property>
81 <property name="layout_style">end</property>
82 <child>
83 <object class="GtkButton" id="button-cancel">
84 <property name="label">gtk-cancel</property>
85 <property name="visible">True</property>
86 <property name="can_focus">True</property>
87 <property name="receives_default">True</property>
88 <property name="use_stock">True</property>
89 </object>
90 <packing>
91 <property name="expand">False</property>
92 <property name="fill">False</property>
93 <property name="position">0</property>
94 </packing>
95 </child>
96 <child>
97 <object class="GtkButton" id="button-ok">
98 <property name="label">gtk-ok</property>
99 <property name="visible">True</property>
100 <property name="can_focus">True</property>
101 <property name="can_default">True</property>
102 <property name="has_default">True</property>
103 <property name="receives_default">True</property>
104 <property name="use_stock">True</property>
105 </object>
106 <packing>
107 <property name="expand">False</property>
108 <property name="fill">False</property>
109 <property name="position">3</property>
110 </packing>
111 </child>
112 </object>
113 <packing>
114 <property name="expand">False</property>
115 <property name="pack_type">end</property>
116 <property name="position">0</property>
117136 </packing>
118137 </child>
119138 </object>
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2009 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2121 * Author: Daniel P. Berrange <berrange@redhat.com>
2222 */
2323
24 #include <config.h>
25
2426 #include <spice-audio.h>
2527
2628 #include <glib/gi18n.h>
3234 G_DEFINE_TYPE (VirtViewerDisplaySpice, virt_viewer_display_spice, VIRT_VIEWER_TYPE_DISPLAY)
3335
3436 struct _VirtViewerDisplaySpicePrivate {
35 SpiceChannel *channel;
36 SpiceDisplay *display;
37 SpiceChannel *channel; /* weak reference */
38 SpiceDisplay *display;
3739 };
3840
3941 #define VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpicePrivate))
4042
4143 static void virt_viewer_display_spice_send_keys(VirtViewerDisplay *display,
42 const guint *keyvals,
43 int nkeyvals);
44 const guint *keyvals,
45 int nkeyvals);
4446 static GdkPixbuf *virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display);
47 static void virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display);
48 static void virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED);
49 static gboolean virt_viewer_display_spice_selectable(VirtViewerDisplay *display);
4550
4651 static void
4752 virt_viewer_display_spice_finalize(GObject *obj)
4853 {
49 VirtViewerDisplaySpice *spice = VIRT_VIEWER_DISPLAY_SPICE(obj);
50
51 g_object_unref(spice->priv->display);
52 g_object_unref(spice->priv->channel);
53
54 G_OBJECT_CLASS(virt_viewer_display_spice_parent_class)->finalize(obj);
54 VirtViewerDisplaySpice *spice = VIRT_VIEWER_DISPLAY_SPICE(obj);
55
56 g_object_unref(spice->priv->display);
57
58 G_OBJECT_CLASS(virt_viewer_display_spice_parent_class)->finalize(obj);
5559 }
5660
5761 static void
5862 virt_viewer_display_spice_class_init(VirtViewerDisplaySpiceClass *klass)
5963 {
60 VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
61 GObjectClass *oclass = G_OBJECT_CLASS(klass);
62
63 oclass->finalize = virt_viewer_display_spice_finalize;
64
65 dclass->send_keys = virt_viewer_display_spice_send_keys;
66 dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf;
67
68 g_type_class_add_private(oclass, sizeof(VirtViewerDisplaySpicePrivate));
64 VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
65 GObjectClass *oclass = G_OBJECT_CLASS(klass);
66
67 oclass->finalize = virt_viewer_display_spice_finalize;
68
69 dclass->send_keys = virt_viewer_display_spice_send_keys;
70 dclass->get_pixbuf = virt_viewer_display_spice_get_pixbuf;
71 dclass->release_cursor = virt_viewer_display_spice_release_cursor;
72 dclass->close = virt_viewer_display_spice_close;
73 dclass->selectable = virt_viewer_display_spice_selectable;
74
75 g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate));
76 }
77
78 static SpiceMainChannel*
79 get_main(VirtViewerDisplay *self)
80 {
81 VirtViewerSessionSpice *session;
82
83 session = VIRT_VIEWER_SESSION_SPICE(virt_viewer_display_get_session(self));
84
85 return virt_viewer_session_spice_get_main_channel(session);
86 }
87
88 static void
89 show_hint_changed(VirtViewerDisplay *self)
90 {
91 SpiceMainChannel *main_channel = get_main(self);
92 guint enabled = TRUE;
93 guint nth;
94
95 /* this may happen when finalizing */
96 if (!main_channel)
97 return;
98
99 g_object_get(self, "nth-display", &nth, NULL);
100 if (virt_viewer_display_get_show_hint(self) & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED)
101 enabled = FALSE;
102
103 spice_main_set_display_enabled(main_channel, nth, enabled);
69104 }
70105
71106 static void
72107 virt_viewer_display_spice_init(VirtViewerDisplaySpice *self G_GNUC_UNUSED)
73108 {
74 self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self);
109 self->priv = VIRT_VIEWER_DISPLAY_SPICE_GET_PRIVATE(self);
110
111 g_signal_connect(self, "notify::show-hint", G_CALLBACK(show_hint_changed), NULL);
75112 }
76113
77114 static void
78115 virt_viewer_display_spice_send_keys(VirtViewerDisplay *display,
79 const guint *keyvals,
80 int nkeyvals)
81 {
82 VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
83
84 g_return_if_fail(self != NULL);
85 g_return_if_fail(self->priv->display != NULL);
86
87 spice_display_send_keys(self->priv->display, keyvals, nkeyvals, SPICE_DISPLAY_KEY_EVENT_CLICK);
116 const guint *keyvals,
117 int nkeyvals)
118 {
119 VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
120
121 g_return_if_fail(self != NULL);
122 g_return_if_fail(self->priv->display != NULL);
123
124 spice_display_send_keys(self->priv->display, keyvals, nkeyvals, SPICE_DISPLAY_KEY_EVENT_CLICK);
88125 }
89126
90127 static GdkPixbuf *
91128 virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *display)
92129 {
93 VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
94
95 g_return_val_if_fail(self != NULL, NULL);
96 g_return_val_if_fail(self->priv->display != NULL, NULL);
97
98 return spice_display_get_pixbuf(self->priv->display);
99 }
100
101 static void
102 display_mark(SpiceChannel *channel G_GNUC_UNUSED,
103 gint mark,
104 VirtViewerDisplay *display)
105 {
106 DEBUG_LOG("display mark %d", mark);
107
108 virt_viewer_display_set_show_hint(display, mark);
109 }
110
111 static void
112 primary_create(SpiceChannel *channel G_GNUC_UNUSED,
113 gint format G_GNUC_UNUSED,
114 gint width,
115 gint height,
116 gint stride G_GNUC_UNUSED,
117 gint shmid G_GNUC_UNUSED,
118 gpointer imgdata G_GNUC_UNUSED,
119 VirtViewerDisplay *display)
120 {
121 DEBUG_LOG("spice desktop resize %dx%d", width, height);
122
123 virt_viewer_display_set_desktop_size(display, width, height);
124 g_signal_emit_by_name(display, "display-desktop-resize");
125 }
126
130 VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
131
132 g_return_val_if_fail(self != NULL, NULL);
133 g_return_val_if_fail(self->priv->display != NULL, NULL);
134
135 return spice_display_get_pixbuf(self->priv->display);
136 }
137
138 static void
139 display_ready(GObject *display,
140 GParamSpec *pspec G_GNUC_UNUSED,
141 VirtViewerDisplay *self)
142 {
143 gboolean ready;
144
145 g_object_get(display, "ready", &ready, NULL);
146 DEBUG_LOG("display %p ready:%d", self, ready);
147
148 virt_viewer_display_set_show_hint(self, VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, ready);
149 }
150
151 static void
152 virt_viewer_display_spice_keyboard_grab(SpiceDisplay *display G_GNUC_UNUSED,
153 int grabbed,
154 VirtViewerDisplaySpice *self)
155 {
156 if (grabbed)
157 g_signal_emit_by_name(self, "display-keyboard-grab");
158 else
159 g_signal_emit_by_name(self, "display-keyboard-ungrab");
160 }
161
162
163 static void
164 virt_viewer_display_spice_mouse_grab(SpiceDisplay *display G_GNUC_UNUSED,
165 int grabbed,
166 VirtViewerDisplaySpice *self)
167 {
168 if (grabbed)
169 g_signal_emit_by_name(self, "display-pointer-grab");
170 else
171 g_signal_emit_by_name(self, "display-pointer-ungrab");
172 }
173
174
175 static void
176 virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
177 GtkAllocation *allocation,
178 gpointer data G_GNUC_UNUSED)
179 {
180 gdouble dw = allocation->width, dh = allocation->height;
181 guint zoom = 100;
182 guint nth;
183
184 if (virt_viewer_display_get_auto_resize(VIRT_VIEWER_DISPLAY(self)) == FALSE)
185 return;
186
187 if (virt_viewer_display_get_show_hint(VIRT_VIEWER_DISPLAY(self)) & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED)
188 return;
189
190 if (virt_viewer_display_get_zoom(VIRT_VIEWER_DISPLAY(self))) {
191 zoom = virt_viewer_display_get_zoom_level(VIRT_VIEWER_DISPLAY(self));
192
193 dw /= ((double)zoom / 100.0);
194 dh /= ((double)zoom / 100.0);
195 }
196
197 g_object_get(self, "nth-display", &nth, NULL);
198
199 spice_main_set_display(get_main(VIRT_VIEWER_DISPLAY(self)),
200 nth, 0, 0, dw, dh);
201 }
202
203 static void
204 enable_accel_changed(VirtViewerApp *app,
205 GParamSpec *pspec G_GNUC_UNUSED,
206 VirtViewerDisplaySpice *self)
207 {
208 if (virt_viewer_app_get_enable_accel(app)) {
209 /* disable default grab sequence */
210 spice_display_set_grab_keys(self->priv->display,
211 spice_grab_sequence_new(0, NULL));
212 } else {
213 spice_display_set_grab_keys(self->priv->display, NULL);
214 }
215 }
127216
128217 GtkWidget *
129 virt_viewer_display_spice_new(SpiceChannel *channel,
130 SpiceDisplay *display)
131 {
132 VirtViewerDisplaySpice *self;
133 gint channelid;
134
135 g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL);
136 g_return_val_if_fail(SPICE_IS_DISPLAY(display), NULL);
137
138 g_object_get(channel, "channel-id", &channelid, NULL);
139
140 self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE,
141 "nth-display", channelid,
142 NULL);
143 self->priv->channel = g_object_ref(channel);
144 self->priv->display = g_object_ref(display);
145
146 g_signal_connect(channel, "display-primary-create",
147 G_CALLBACK(primary_create), self);
148 g_signal_connect(channel, "display-mark",
149 G_CALLBACK(display_mark), self);
150
151 gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(self->priv->display));
152 gtk_widget_show(GTK_WIDGET(self->priv->display));
153 g_object_set(self->priv->display,
154 "grab-keyboard", TRUE,
155 "grab-mouse", TRUE,
156 "resize-guest", FALSE,
157 "scaling", TRUE,
158 "auto-clipboard", TRUE,
159 NULL);
160
161 return GTK_WIDGET(self);
162 }
218 virt_viewer_display_spice_new(VirtViewerSessionSpice *session,
219 SpiceChannel *channel,
220 gint monitorid)
221 {
222 VirtViewerDisplaySpice *self;
223 VirtViewerApp *app;
224 gint channelid;
225 SpiceSession *s;
226
227 g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL);
228
229 g_object_get(channel, "channel-id", &channelid, NULL);
230 // We don't allow monitorid != 0 && channelid != 0
231 g_return_val_if_fail(channelid == 0 || monitorid == 0, NULL);
232
233 self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE,
234 "session", session,
235 // either monitorid is always 0 or channelid
236 // is, we can't have display (0, 2) and (2, 0)
237 // for example
238 "nth-display", channelid + monitorid,
239 NULL);
240 self->priv->channel = channel;
241
242 g_object_get(session, "spice-session", &s, NULL);
243 self->priv->display = spice_display_new_with_monitor(s, channelid, monitorid);
244 g_object_unref(s);
245
246 virt_viewer_signal_connect_object(self->priv->display, "notify::ready",
247 G_CALLBACK(display_ready), self, 0);
248
249 gtk_container_add(GTK_CONTAINER(self), g_object_ref(self->priv->display));
250 gtk_widget_show(GTK_WIDGET(self->priv->display));
251 g_object_set(self->priv->display,
252 "grab-keyboard", TRUE,
253 "grab-mouse", TRUE,
254 "resize-guest", FALSE,
255 "scaling", TRUE,
256 NULL);
257
258 virt_viewer_signal_connect_object(self->priv->display, "keyboard-grab",
259 G_CALLBACK(virt_viewer_display_spice_keyboard_grab), self, 0);
260 virt_viewer_signal_connect_object(self->priv->display, "mouse-grab",
261 G_CALLBACK(virt_viewer_display_spice_mouse_grab), self, 0);
262 virt_viewer_signal_connect_object(self, "size-allocate",
263 G_CALLBACK(virt_viewer_display_spice_size_allocate), self, 0);
264
265
266 app = virt_viewer_session_get_app(VIRT_VIEWER_SESSION(session));
267 virt_viewer_signal_connect_object(app, "notify::enable-accel",
268 G_CALLBACK(enable_accel_changed), self, 0);
269 enable_accel_changed(app, NULL, self);
270
271 return GTK_WIDGET(self);
272 }
273
274 static void
275 virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display)
276 {
277 VirtViewerDisplaySpice *self = VIRT_VIEWER_DISPLAY_SPICE(display);
278
279 spice_display_mouse_ungrab(self->priv->display);
280 }
281
282
283 static void
284 virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED)
285 {
286 }
287
288 static gboolean
289 virt_viewer_display_spice_selectable(VirtViewerDisplay *self)
290 {
291 gboolean agent_connected;
292 SpiceMainChannel *mainc;
293
294 mainc = get_main(self);
295 g_object_get(mainc,
296 "agent-connected", &agent_connected,
297 NULL);
298
299 return agent_connected;
300 }
301
163302
164303 /*
165304 * Local variables:
166 * c-indent-level: 8
167 * c-basic-offset: 8
168 * tab-width: 8
169 * indent-tabs-mode: t
305 * c-indent-level: 4
306 * c-basic-offset: 4
307 * indent-tabs-mode: nil
170308 * End:
171309 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2828 #include <spice-audio.h>
2929
3030 #include "virt-viewer-display.h"
31 #include "virt-viewer-session-spice.h"
3132
3233 G_BEGIN_DECLS
3334
3435 #define VIRT_VIEWER_TYPE_DISPLAY_SPICE virt_viewer_display_spice_get_type()
3536
36 #define VIRT_VIEWER_DISPLAY_SPICE(obj) \
37 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpice))
37 #define VIRT_VIEWER_DISPLAY_SPICE(obj) \
38 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpice))
3839
39 #define VIRT_VIEWER_DISPLAY_SPICE_CLASS(klass) \
40 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
40 #define VIRT_VIEWER_DISPLAY_SPICE_CLASS(klass) \
41 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
4142
42 #define VIRT_VIEWER_IS_DISPLAY_SPICE(obj) \
43 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
43 #define VIRT_VIEWER_IS_DISPLAY_SPICE(obj) \
44 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
4445
45 #define VIRT_VIEWER_IS_DISPLAY_SPICE_CLASS(klass) \
46 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
46 #define VIRT_VIEWER_IS_DISPLAY_SPICE_CLASS(klass) \
47 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_SPICE))
4748
48 #define VIRT_VIEWER_DISPLAY_SPICE_GET_CLASS(obj) \
49 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
49 #define VIRT_VIEWER_DISPLAY_SPICE_GET_CLASS(obj) \
50 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_SPICE, VirtViewerDisplaySpiceClass))
5051
5152 typedef struct _VirtViewerDisplaySpice VirtViewerDisplaySpice;
5253 typedef struct _VirtViewerDisplaySpiceClass VirtViewerDisplaySpiceClass;
5354 typedef struct _VirtViewerDisplaySpicePrivate VirtViewerDisplaySpicePrivate;
5455
5556 struct _VirtViewerDisplaySpice {
56 VirtViewerDisplay parent;
57 VirtViewerDisplay parent;
5758
58 VirtViewerDisplaySpicePrivate *priv;
59 VirtViewerDisplaySpicePrivate *priv;
5960 };
6061
6162 struct _VirtViewerDisplaySpiceClass {
62 VirtViewerDisplayClass parent_class;
63 VirtViewerDisplayClass parent_class;
6364 };
6465
6566 GType virt_viewer_display_spice_get_type(void);
6667
67 GtkWidget* virt_viewer_display_spice_new(SpiceChannel *channel,
68 SpiceDisplay *display);
68 GtkWidget* virt_viewer_display_spice_new(VirtViewerSessionSpice *session, SpiceChannel *channel, gint monitorid);
6969
7070 G_END_DECLS
7171
7272 #endif /* _VIRT_VIEWER_DISPLAY_SPICE_H */
73
7473 /*
7574 * Local variables:
76 * c-indent-level: 8
77 * c-basic-offset: 8
78 * tab-width: 8
75 * c-indent-level: 4
76 * c-basic-offset: 4
77 * indent-tabs-mode: nil
7978 * End:
8079 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2121 * Author: Daniel P. Berrange <berrange@redhat.com>
2222 */
2323
24 #include <config.h>
25
2426 #include "virt-viewer-auth.h"
2527 #include "virt-viewer-display-vnc.h"
2628
2931 G_DEFINE_TYPE(VirtViewerDisplayVnc, virt_viewer_display_vnc, VIRT_VIEWER_TYPE_DISPLAY)
3032
3133 struct _VirtViewerDisplayVncPrivate {
32 VncDisplay *vnc;
34 VncDisplay *vnc;
3335 };
3436
3537 #define VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncPrivate))
3638
3739 static void virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display, const guint *keyvals, int nkeyvals);
3840 static GdkPixbuf *virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display);
41 static void virt_viewer_display_vnc_close(VirtViewerDisplay *display);
3942
4043 static void
4144 virt_viewer_display_vnc_finalize(GObject *obj)
4245 {
43 VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj);
44
45 g_object_unref(vnc->priv->vnc);
46
47 G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj);
46 VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(obj);
47
48 g_object_unref(vnc->priv->vnc);
49
50 G_OBJECT_CLASS(virt_viewer_display_vnc_parent_class)->finalize(obj);
4851 }
4952
5053
5154 static void
5255 virt_viewer_display_vnc_class_init(VirtViewerDisplayVncClass *klass)
5356 {
54 VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
55 GObjectClass *oclass = G_OBJECT_CLASS(klass);
56
57 oclass->finalize = virt_viewer_display_vnc_finalize;
58
59 dclass->send_keys = virt_viewer_display_vnc_send_keys;
60 dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf;
61
62 g_type_class_add_private(oclass, sizeof(VirtViewerDisplayVncPrivate));
57 VirtViewerDisplayClass *dclass = VIRT_VIEWER_DISPLAY_CLASS(klass);
58 GObjectClass *oclass = G_OBJECT_CLASS(klass);
59
60 oclass->finalize = virt_viewer_display_vnc_finalize;
61
62 dclass->send_keys = virt_viewer_display_vnc_send_keys;
63 dclass->get_pixbuf = virt_viewer_display_vnc_get_pixbuf;
64 dclass->close = virt_viewer_display_vnc_close;
65
66 g_type_class_add_private(klass, sizeof(VirtViewerDisplayVncPrivate));
6367 }
6468
6569 static void
6670 virt_viewer_display_vnc_init(VirtViewerDisplayVnc *self G_GNUC_UNUSED)
6771 {
68 self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self);
72 self->priv = VIRT_VIEWER_DISPLAY_VNC_GET_PRIVATE(self);
6973 }
7074
7175
7276 static void
7377 virt_viewer_display_vnc_mouse_grab(VncDisplay *vnc G_GNUC_UNUSED,
74 VirtViewerDisplay *display)
75 {
76 g_signal_emit_by_name(display, "display-pointer-grab");
78 VirtViewerDisplay *display)
79 {
80 g_signal_emit_by_name(display, "display-pointer-grab");
7781 }
7882
7983
8084 static void
8185 virt_viewer_display_vnc_mouse_ungrab(VncDisplay *vnc G_GNUC_UNUSED,
82 VirtViewerDisplay *display)
83 {
84 g_signal_emit_by_name(display, "display-pointer-ungrab");
86 VirtViewerDisplay *display)
87 {
88 g_signal_emit_by_name(display, "display-pointer-ungrab");
8589 }
8690
8791 static void
8892 virt_viewer_display_vnc_key_grab(VncDisplay *vnc G_GNUC_UNUSED,
89 VirtViewerDisplay *display)
90 {
91 g_signal_emit_by_name(display, "display-keyboard-grab");
93 VirtViewerDisplay *display)
94 {
95 g_signal_emit_by_name(display, "display-keyboard-grab");
9296 }
9397
9498 static void
9599 virt_viewer_display_vnc_key_ungrab(VncDisplay *vnc G_GNUC_UNUSED,
96 VirtViewerDisplay *display)
97 {
98 g_signal_emit_by_name(display, "display-keyboard-ungrab");
100 VirtViewerDisplay *display)
101 {
102 g_signal_emit_by_name(display, "display-keyboard-ungrab");
99103 }
100104
101105 static void
102106 virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display,
103 const guint *keyvals,
104 int nkeyvals)
105 {
106 VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
107
108 g_return_if_fail(self != NULL);
109 g_return_if_fail(keyvals != NULL);
110 g_return_if_fail(self->priv->vnc != NULL);
111
112 vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals);
107 const guint *keyvals,
108 int nkeyvals)
109 {
110 VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
111
112 g_return_if_fail(self != NULL);
113 g_return_if_fail(keyvals != NULL);
114 g_return_if_fail(self->priv->vnc != NULL);
115
116 vnc_display_send_keys(self->priv->vnc, keyvals, nkeyvals);
113117 }
114118
115119
116120 static GdkPixbuf *
117121 virt_viewer_display_vnc_get_pixbuf(VirtViewerDisplay* display)
118122 {
119 VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
120
121 g_return_val_if_fail(self != NULL, NULL);
122 g_return_val_if_fail(self->priv->vnc != NULL, NULL);
123
124 return vnc_display_get_pixbuf(self->priv->vnc);
123 VirtViewerDisplayVnc *self = VIRT_VIEWER_DISPLAY_VNC(display);
124
125 g_return_val_if_fail(self != NULL, NULL);
126 g_return_val_if_fail(self->priv->vnc != NULL, NULL);
127
128 return vnc_display_get_pixbuf(self->priv->vnc);
125129 }
126130
127131
133137 */
134138 static void
135139 virt_viewer_display_vnc_resize_desktop(VncDisplay *vnc G_GNUC_UNUSED,
136 int width, int height,
137 VirtViewerDisplay *display)
138 {
139 DEBUG_LOG("desktop resize %dx%d", width, height);
140
141 virt_viewer_display_set_desktop_size(display, width, height);
142 g_signal_emit_by_name(display, "display-desktop-resize");
140 int width, int height,
141 VirtViewerDisplay *display)
142 {
143 DEBUG_LOG("desktop resize %dx%d", width, height);
144
145 virt_viewer_display_set_desktop_size(display, width, height);
143146 }
144147
145148
146149 GtkWidget *
147150 virt_viewer_display_vnc_new(VncDisplay *vnc)
148151 {
149 VirtViewerDisplayVnc *display;
150
151 display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, NULL);
152
153 g_object_ref(vnc);
154 g_object_ref(vnc); /* Because gtk_container_add steals the first ref */
155 display->priv->vnc = vnc;
156
157 gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc));
158 vnc_display_set_keyboard_grab(display->priv->vnc, TRUE);
159 vnc_display_set_pointer_grab(display->priv->vnc, TRUE);
160
161 /*
162 * In auto-resize mode we have things setup so that we always
163 * automatically resize the top level window to be exactly the
164 * same size as the VNC desktop, except when it won't fit on
165 * the local screen, at which point we let it scale down.
166 * The upshot is, we always want scaling enabled.
167 * We disable force_size because we want to allow user to
168 * manually size the widget smaller too
169 */
170 vnc_display_set_force_size(display->priv->vnc, FALSE);
171 vnc_display_set_scaling(display->priv->vnc, TRUE);
172
173 /* When VNC desktop resizes, we have to resize the containing widget */
174 g_signal_connect(display->priv->vnc, "vnc-desktop-resize",
175 G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display);
176
177 g_signal_connect(display->priv->vnc, "vnc-pointer-grab",
178 G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display);
179 g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab",
180 G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display);
181 g_signal_connect(display->priv->vnc, "vnc-keyboard-grab",
182 G_CALLBACK(virt_viewer_display_vnc_key_grab), display);
183 g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab",
184 G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display);
185
186 return GTK_WIDGET(display);
187 }
188
189
190
152 VirtViewerDisplayVnc *display;
153
154 display = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VNC, NULL);
155
156 g_object_ref(vnc);
157 display->priv->vnc = vnc;
158
159 gtk_container_add(GTK_CONTAINER(display), GTK_WIDGET(display->priv->vnc));
160 vnc_display_set_keyboard_grab(display->priv->vnc, TRUE);
161 vnc_display_set_pointer_grab(display->priv->vnc, TRUE);
162
163 /*
164 * In auto-resize mode we have things setup so that we always
165 * automatically resize the top level window to be exactly the
166 * same size as the VNC desktop, except when it won't fit on
167 * the local screen, at which point we let it scale down.
168 * The upshot is, we always want scaling enabled.
169 * We disable force_size because we want to allow user to
170 * manually size the widget smaller too
171 */
172 vnc_display_set_force_size(display->priv->vnc, FALSE);
173 vnc_display_set_scaling(display->priv->vnc, TRUE);
174
175 /* When VNC desktop resizes, we have to resize the containing widget */
176 g_signal_connect(display->priv->vnc, "vnc-desktop-resize",
177 G_CALLBACK(virt_viewer_display_vnc_resize_desktop), display);
178
179 g_signal_connect(display->priv->vnc, "vnc-pointer-grab",
180 G_CALLBACK(virt_viewer_display_vnc_mouse_grab), display);
181 g_signal_connect(display->priv->vnc, "vnc-pointer-ungrab",
182 G_CALLBACK(virt_viewer_display_vnc_mouse_ungrab), display);
183 g_signal_connect(display->priv->vnc, "vnc-keyboard-grab",
184 G_CALLBACK(virt_viewer_display_vnc_key_grab), display);
185 g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab",
186 G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display);
187
188 return GTK_WIDGET(display);
189 }
190
191
192 static void
193 virt_viewer_display_vnc_close(VirtViewerDisplay *display)
194 {
195 VirtViewerDisplayVnc *vnc = VIRT_VIEWER_DISPLAY_VNC(display);
196
197 /* We're not the real owner, so we shouldn't be letting the container
198 * destroy the widget. There are still signals that need to be
199 * propagated to the VirtViewerSession
200 */
201 gtk_container_remove(GTK_CONTAINER(display), GTK_WIDGET(vnc->priv->vnc));
202 }
191203
192204 /*
193205 * Local variables:
194 * c-indent-level: 8
195 * c-basic-offset: 8
196 * tab-width: 8
206 * c-indent-level: 4
207 * c-basic-offset: 4
208 * indent-tabs-mode: nil
197209 * End:
198210 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3232
3333 #define VIRT_VIEWER_TYPE_DISPLAY_VNC virt_viewer_display_vnc_get_type()
3434
35 #define VIRT_VIEWER_DISPLAY_VNC(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc))
35 #define VIRT_VIEWER_DISPLAY_VNC(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVnc))
3737
38 #define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
38 #define VIRT_VIEWER_DISPLAY_VNC_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
4040
41 #define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC))
41 #define VIRT_VIEWER_IS_DISPLAY_VNC(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC))
4343
44 #define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \
45 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC))
44 #define VIRT_VIEWER_IS_DISPLAY_VNC_CLASS(klass) \
45 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY_VNC))
4646
47 #define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
47 #define VIRT_VIEWER_DISPLAY_VNC_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY_VNC, VirtViewerDisplayVncClass))
4949
5050 typedef struct _VirtViewerDisplayVnc VirtViewerDisplayVnc;
5151 typedef struct _VirtViewerDisplayVncClass VirtViewerDisplayVncClass;
5252 typedef struct _VirtViewerDisplayVncPrivate VirtViewerDisplayVncPrivate;
5353
5454 struct _VirtViewerDisplayVnc {
55 VirtViewerDisplay parent;
55 VirtViewerDisplay parent;
5656
57 VirtViewerDisplayVncPrivate *priv;
57 VirtViewerDisplayVncPrivate *priv;
5858 };
5959
6060 struct _VirtViewerDisplayVncClass {
61 VirtViewerDisplayClass parent_class;
61 VirtViewerDisplayClass parent_class;
6262 };
6363
6464 GType virt_viewer_display_vnc_get_type(void);
6868 G_END_DECLS
6969
7070 #endif /* _VIRT_VIEWER_DISPLAY_VNC_H */
71
7271 /*
7372 * Local variables:
74 * c-indent-level: 8
75 * c-basic-offset: 8
76 * tab-width: 8
73 * c-indent-level: 4
74 * c-basic-offset: 4
75 * indent-tabs-mode: nil
7776 * End:
7877 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2424 #include <config.h>
2525
2626 #include <locale.h>
27
27 #include <math.h>
28
29 #include "virt-viewer-session.h"
2830 #include "virt-viewer-display.h"
2931 #include "virt-viewer-util.h"
3032
3234
3335 struct _VirtViewerDisplayPrivate
3436 {
35 gboolean dirty;
36 guint desktopWidth;
37 guint desktopHeight;
38 guint zoom_level;
39 gboolean zoom;
40 gint nth_display;
41 gint show_hint;
37 gboolean dirty;
38 guint desktopWidth;
39 guint desktopHeight;
40 guint zoom_level;
41 gboolean zoom;
42 gint nth_display;
43 guint show_hint;
44 VirtViewerSession *session;
45 gboolean auto_resize;
4246 };
4347
4448 static void virt_viewer_display_size_request(GtkWidget *widget,
45 GtkRequisition *requisition);
49 GtkRequisition *requisition);
4650 #if GTK_CHECK_VERSION(3, 0, 0)
4751 static void virt_viewer_display_get_preferred_width(GtkWidget *widget,
48 int *minwidth,
49 int *defwidth);
52 int *minwidth,
53 int *defwidth);
5054 static void virt_viewer_display_get_preferred_height(GtkWidget *widget,
51 int *minheight,
52 int *defheight);
55 int *minheight,
56 int *defheight);
5357 #endif
5458 static void virt_viewer_display_size_allocate(GtkWidget *widget,
55 GtkAllocation *allocation);
59 GtkAllocation *allocation);
5660 static void virt_viewer_display_set_property(GObject *object,
57 guint prop_id,
58 const GValue *value,
59 GParamSpec *pspec);
61 guint prop_id,
62 const GValue *value,
63 GParamSpec *pspec);
6064 static void virt_viewer_display_get_property(GObject *object,
61 guint prop_id,
62 GValue *value,
63 GParamSpec *pspec);
65 guint prop_id,
66 GValue *value,
67 GParamSpec *pspec);
68 static void virt_viewer_display_grab_focus(GtkWidget *widget);
6469
6570 G_DEFINE_ABSTRACT_TYPE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN)
6671
6772 enum {
68 PROP_0,
69
70 PROP_DESKTOP_WIDTH,
71 PROP_DESKTOP_HEIGHT,
72 PROP_NTH_DISPLAY,
73 PROP_ZOOM,
74 PROP_ZOOM_LEVEL,
75 PROP_SHOW_HINT,
73 PROP_0,
74
75 PROP_DESKTOP_WIDTH,
76 PROP_DESKTOP_HEIGHT,
77 PROP_NTH_DISPLAY,
78 PROP_ZOOM,
79 PROP_ZOOM_LEVEL,
80 PROP_SHOW_HINT,
81 PROP_SESSION,
82 PROP_SELECTABLE,
7683 };
7784
7885 static void
7986 virt_viewer_display_class_init(VirtViewerDisplayClass *class)
8087 {
81 GObjectClass *object_class = G_OBJECT_CLASS(class);
82 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class);
83
84 object_class->set_property = virt_viewer_display_set_property;
85 object_class->get_property = virt_viewer_display_get_property;
88 GObjectClass *object_class = G_OBJECT_CLASS(class);
89 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class);
90
91 object_class->set_property = virt_viewer_display_set_property;
92 object_class->get_property = virt_viewer_display_get_property;
8693
8794 #if GTK_CHECK_VERSION(3, 0, 0)
88 widget_class->get_preferred_width = virt_viewer_display_get_preferred_width;
89 widget_class->get_preferred_height = virt_viewer_display_get_preferred_height;
95 widget_class->get_preferred_width = virt_viewer_display_get_preferred_width;
96 widget_class->get_preferred_height = virt_viewer_display_get_preferred_height;
9097 #else
91 widget_class->size_request = virt_viewer_display_size_request;
98 widget_class->size_request = virt_viewer_display_size_request;
9299 #endif
93 widget_class->size_allocate = virt_viewer_display_size_allocate;
94
95 g_object_class_install_property(object_class,
96 PROP_DESKTOP_WIDTH,
97 g_param_spec_int("desktop-width",
98 "Width",
99 "Desktop width",
100 100,
101 G_MAXINT32,
102 100,
103 G_PARAM_READWRITE));
104
105 g_object_class_install_property(object_class,
106 PROP_DESKTOP_HEIGHT,
107 g_param_spec_int("desktop-height",
108 "Height",
109 "Desktop height",
110 100,
111 G_MAXINT32,
112 100,
113 G_PARAM_READWRITE));
114
115 g_object_class_install_property(object_class,
116 PROP_ZOOM,
117 g_param_spec_boolean("zoom",
118 "Zoom",
119 "Zoom",
120 TRUE,
121 G_PARAM_READWRITE));
122
123 g_object_class_install_property(object_class,
124 PROP_ZOOM_LEVEL,
125 g_param_spec_int("zoom-level",
126 "Zoom",
127 "Zoom level",
128 10,
129 400,
130 100,
131 G_PARAM_READWRITE));
132
133 g_object_class_install_property(object_class,
134 PROP_NTH_DISPLAY,
135 g_param_spec_int("nth-display",
136 "Nth display",
137 "Nth display",
138 0,
139 G_MAXINT32,
140 0,
141 G_PARAM_READWRITE |
142 G_PARAM_CONSTRUCT_ONLY));
143
144 g_object_class_install_property(object_class,
145 PROP_SHOW_HINT,
146 g_param_spec_int("show-hint",
147 "Show hint",
148 "Show state hint",
149 0,
150 G_MAXINT32,
151 0,
152 G_PARAM_READABLE));
153
154
155 g_signal_new("display-pointer-grab",
156 G_OBJECT_CLASS_TYPE(object_class),
157 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
158 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab),
159 NULL,
160 NULL,
161 g_cclosure_marshal_VOID__VOID,
162 G_TYPE_NONE,
163 0);
164
165 g_signal_new("display-pointer-ungrab",
166 G_OBJECT_CLASS_TYPE(object_class),
167 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
168 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab),
169 NULL,
170 NULL,
171 g_cclosure_marshal_VOID__VOID,
172 G_TYPE_NONE,
173 0);
174
175 g_signal_new("display-keyboard-grab",
176 G_OBJECT_CLASS_TYPE(object_class),
177 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
178 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab),
179 NULL,
180 NULL,
181 g_cclosure_marshal_VOID__VOID,
182 G_TYPE_NONE,
183 0);
184
185 g_signal_new("display-keyboard-ungrab",
186 G_OBJECT_CLASS_TYPE(object_class),
187 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
188 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab),
189 NULL,
190 NULL,
191 g_cclosure_marshal_VOID__VOID,
192 G_TYPE_NONE,
193 0);
194
195 g_signal_new("display-desktop-resize",
196 G_OBJECT_CLASS_TYPE(object_class),
197 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
198 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize),
199 NULL,
200 NULL,
201 g_cclosure_marshal_VOID__VOID,
202 G_TYPE_NONE,
203 0);
204
205 g_type_class_add_private(object_class, sizeof(VirtViewerDisplayPrivate));
100 widget_class->size_allocate = virt_viewer_display_size_allocate;
101 widget_class->grab_focus = virt_viewer_display_grab_focus;
102
103 g_object_class_install_property(object_class,
104 PROP_DESKTOP_WIDTH,
105 g_param_spec_int("desktop-width",
106 "Width",
107 "Desktop width",
108 100,
109 G_MAXINT32,
110 100,
111 G_PARAM_READWRITE));
112
113 g_object_class_install_property(object_class,
114 PROP_DESKTOP_HEIGHT,
115 g_param_spec_int("desktop-height",
116 "Height",
117 "Desktop height",
118 100,
119 G_MAXINT32,
120 100,
121 G_PARAM_READWRITE));
122
123 g_object_class_install_property(object_class,
124 PROP_ZOOM,
125 g_param_spec_boolean("zoom",
126 "Zoom",
127 "Zoom",
128 TRUE,
129 G_PARAM_READWRITE));
130
131 g_object_class_install_property(object_class,
132 PROP_ZOOM_LEVEL,
133 g_param_spec_int("zoom-level",
134 "Zoom",
135 "Zoom level",
136 10,
137 400,
138 100,
139 G_PARAM_READWRITE));
140
141 g_object_class_install_property(object_class,
142 PROP_NTH_DISPLAY,
143 g_param_spec_int("nth-display",
144 "Nth display",
145 "Nth display",
146 0,
147 G_MAXINT32,
148 0,
149 G_PARAM_READWRITE |
150 G_PARAM_CONSTRUCT_ONLY));
151
152 g_object_class_install_property(object_class,
153 PROP_SHOW_HINT,
154 g_param_spec_flags("show-hint",
155 "Show hint",
156 "Show state hint",
157 VIRT_VIEWER_TYPE_DISPLAY_SHOW_HINT_FLAGS,
158 0,
159 G_PARAM_READABLE));
160
161 g_object_class_install_property(object_class,
162 PROP_SESSION,
163 g_param_spec_object("session",
164 "Session",
165 "VirtSession",
166 VIRT_VIEWER_TYPE_SESSION,
167 G_PARAM_READWRITE |
168 G_PARAM_CONSTRUCT_ONLY));
169
170 g_object_class_install_property(object_class,
171 PROP_SELECTABLE,
172 g_param_spec_boolean("selectable",
173 "Selectable",
174 "Selectable",
175 FALSE,
176 G_PARAM_READABLE));
177
178 g_signal_new("display-pointer-grab",
179 G_OBJECT_CLASS_TYPE(object_class),
180 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
181 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_grab),
182 NULL,
183 NULL,
184 g_cclosure_marshal_VOID__VOID,
185 G_TYPE_NONE,
186 0);
187
188 g_signal_new("display-pointer-ungrab",
189 G_OBJECT_CLASS_TYPE(object_class),
190 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
191 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_pointer_ungrab),
192 NULL,
193 NULL,
194 g_cclosure_marshal_VOID__VOID,
195 G_TYPE_NONE,
196 0);
197
198 g_signal_new("display-keyboard-grab",
199 G_OBJECT_CLASS_TYPE(object_class),
200 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
201 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_grab),
202 NULL,
203 NULL,
204 g_cclosure_marshal_VOID__VOID,
205 G_TYPE_NONE,
206 0);
207
208 g_signal_new("display-keyboard-ungrab",
209 G_OBJECT_CLASS_TYPE(object_class),
210 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
211 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_keyboard_ungrab),
212 NULL,
213 NULL,
214 g_cclosure_marshal_VOID__VOID,
215 G_TYPE_NONE,
216 0);
217
218 g_signal_new("display-desktop-resize",
219 G_OBJECT_CLASS_TYPE(object_class),
220 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
221 G_STRUCT_OFFSET(VirtViewerDisplayClass, display_desktop_resize),
222 NULL,
223 NULL,
224 g_cclosure_marshal_VOID__VOID,
225 G_TYPE_NONE,
226 0);
227
228 g_type_class_add_private(class, sizeof(VirtViewerDisplayPrivate));
206229 }
207230
208231 static void
209232 virt_viewer_display_init(VirtViewerDisplay *display)
210233 {
211 gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
212 gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
213
214 display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display);
215
216 display->priv->desktopWidth = 100;
217 display->priv->desktopHeight = 100;
218 display->priv->zoom_level = 100;
219 display->priv->zoom = TRUE;
234 gtk_widget_set_has_window(GTK_WIDGET(display), FALSE);
235 gtk_widget_set_redraw_on_allocate(GTK_WIDGET(display), FALSE);
236
237 display->priv = VIRT_VIEWER_DISPLAY_GET_PRIVATE(display);
238
239 display->priv->desktopWidth = 100;
240 display->priv->desktopHeight = 100;
241 display->priv->zoom_level = 100;
242 display->priv->zoom = TRUE;
243 display->priv->dirty = TRUE;
244 display->priv->auto_resize = TRUE;
220245 }
221246
222247 GtkWidget*
223248 virt_viewer_display_new(void)
224249 {
225 return g_object_new(VIRT_VIEWER_TYPE_DISPLAY, NULL);
250 return g_object_new(VIRT_VIEWER_TYPE_DISPLAY, NULL);
226251 }
227252
228253 static void
229254 virt_viewer_display_set_property(GObject *object,
230 guint prop_id,
231 const GValue *value,
232 GParamSpec *pspec)
233 {
234 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
235 VirtViewerDisplayPrivate *priv = display->priv;
236
237 switch (prop_id) {
238 case PROP_DESKTOP_WIDTH:
239 virt_viewer_display_set_desktop_size(display,
240 g_value_get_int(value),
241 priv->desktopHeight);
242 break;
243 case PROP_DESKTOP_HEIGHT:
244 virt_viewer_display_set_desktop_size(display,
245 priv->desktopWidth,
246 g_value_get_int(value));
247 break;
248 case PROP_NTH_DISPLAY:
249 priv->nth_display = g_value_get_int(value);
250 break;
251 default:
252 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
253 break;
254 }
255 guint prop_id,
256 const GValue *value,
257 GParamSpec *pspec)
258 {
259 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
260 VirtViewerDisplayPrivate *priv = display->priv;
261
262 switch (prop_id) {
263 case PROP_DESKTOP_WIDTH:
264 virt_viewer_display_set_desktop_size(display,
265 g_value_get_int(value),
266 priv->desktopHeight);
267 break;
268 case PROP_DESKTOP_HEIGHT:
269 virt_viewer_display_set_desktop_size(display,
270 priv->desktopWidth,
271 g_value_get_int(value));
272 break;
273 case PROP_NTH_DISPLAY:
274 priv->nth_display = g_value_get_int(value);
275 break;
276 case PROP_SESSION:
277 g_warn_if_fail(priv->session == NULL);
278 priv->session = g_value_get_object(value);
279 break;
280
281 default:
282 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
283 break;
284 }
255285 }
256286
257287 static void
258288 virt_viewer_display_get_property(GObject *object,
259 guint prop_id,
260 GValue *value,
261 GParamSpec *pspec)
262 {
263 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
264 VirtViewerDisplayPrivate *priv = display->priv;
265
266 switch (prop_id) {
267 case PROP_DESKTOP_WIDTH:
268 g_value_set_int(value, priv->desktopWidth);
269 break;
270 case PROP_DESKTOP_HEIGHT:
271 g_value_set_int(value, priv->desktopHeight);
272 break;
273 case PROP_NTH_DISPLAY:
274 g_value_set_int(value, priv->nth_display);
275 break;
276 case PROP_SHOW_HINT:
277 g_value_set_int(value, priv->show_hint);
278 break;
279
280 default:
281 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
282 break;
283 }
289 guint prop_id,
290 GValue *value,
291 GParamSpec *pspec)
292 {
293 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(object);
294 VirtViewerDisplayPrivate *priv = display->priv;
295
296 switch (prop_id) {
297 case PROP_DESKTOP_WIDTH:
298 g_value_set_int(value, priv->desktopWidth);
299 break;
300 case PROP_DESKTOP_HEIGHT:
301 g_value_set_int(value, priv->desktopHeight);
302 break;
303 case PROP_NTH_DISPLAY:
304 g_value_set_int(value, priv->nth_display);
305 break;
306 case PROP_SHOW_HINT:
307 g_value_set_flags(value, priv->show_hint);
308 break;
309 case PROP_SESSION:
310 g_value_set_object(value, virt_viewer_display_get_session(display));
311 break;
312 case PROP_SELECTABLE:
313 g_value_set_boolean(value, virt_viewer_display_get_selectable(display));
314 break;
315
316 default:
317 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
318 break;
319 }
320 }
321
322
323 static void
324 virt_viewer_display_grab_focus(GtkWidget *widget)
325 {
326 GtkBin *bin = GTK_BIN(widget);
327
328 gtk_widget_grab_focus(gtk_bin_get_child(bin));
284329 }
285330
286331
287332 static gboolean
288333 virt_viewer_display_idle(gpointer opaque)
289334 {
290 VirtViewerDisplay *display = opaque;
291 VirtViewerDisplayPrivate *priv = display->priv;
292 if (!priv->dirty)
293 gtk_widget_queue_resize_no_redraw(GTK_WIDGET(display));
294 return FALSE;
335 VirtViewerDisplay *display = opaque;
336 VirtViewerDisplayPrivate *priv = display->priv;
337 if (!priv->dirty)
338 gtk_widget_queue_resize_no_redraw(GTK_WIDGET(display));
339 return FALSE;
295340 }
296341
297342
298343 static void
299344 virt_viewer_display_size_request(GtkWidget *widget,
300 GtkRequisition *requisition)
301 {
302 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
303 VirtViewerDisplayPrivate *priv = display->priv;
304 int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget));
305
306 requisition->width = border_width * 2;
307 requisition->height = border_width * 2;
308
309 if (priv->dirty) {
310 if (priv->zoom)
311 requisition->width += priv->desktopWidth * priv->zoom_level / 100;
312 else
313 requisition->width += priv->desktopWidth;
314 } else {
315 requisition->width += 50;
316 }
317 if (priv->dirty) {
318 if (priv->zoom)
319 requisition->height += priv->desktopHeight * priv->zoom_level / 100;
320 else
321 requisition->height += priv->desktopHeight;
322 } else {
323 requisition->height += 50;
324 }
325
326 DEBUG_LOG("Display size request %dx%d (desktop %dx%d)",
327 requisition->width, requisition->height,
328 priv->desktopWidth, priv->desktopHeight);
345 GtkRequisition *requisition)
346 {
347 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
348 VirtViewerDisplayPrivate *priv = display->priv;
349 int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget));
350
351 requisition->width = border_width * 2;
352 requisition->height = border_width * 2;
353
354 if (priv->dirty) {
355 if (priv->zoom) {
356 requisition->width += priv->desktopWidth * priv->zoom_level / 100;
357 requisition->height += priv->desktopHeight * priv->zoom_level / 100;
358 } else {
359 requisition->width += priv->desktopWidth;
360 requisition->height += priv->desktopHeight;
361 }
362 } else {
363 requisition->width += 50;
364 requisition->height += 50;
365 }
366
367 DEBUG_LOG("Display size request %dx%d (desktop %dx%d)",
368 requisition->width, requisition->height,
369 priv->desktopWidth, priv->desktopHeight);
329370 }
330371
331372
332373 #if GTK_CHECK_VERSION(3, 0, 0)
333374 static void virt_viewer_display_get_preferred_width(GtkWidget *widget,
334 int *minwidth,
335 int *defwidth)
336 {
337 GtkRequisition req;
338
339 virt_viewer_display_size_request(widget, &req);
340
341 *minwidth = *defwidth = req.width;
375 int *minwidth,
376 int *defwidth)
377 {
378 GtkRequisition req;
379
380 virt_viewer_display_size_request(widget, &req);
381
382 *minwidth = *defwidth = req.width;
342383 }
343384
344385
345386 static void virt_viewer_display_get_preferred_height(GtkWidget *widget,
346 int *minheight,
347 int *defheight)
348 {
349 GtkRequisition req;
350
351 virt_viewer_display_size_request(widget, &req);
352
353 *minheight = *defheight = req.height;
387 int *minheight,
388 int *defheight)
389 {
390 GtkRequisition req;
391
392 virt_viewer_display_size_request(widget, &req);
393
394 *minheight = *defheight = req.height;
354395 }
355396 #endif
356397
357398
358399 static void
359400 virt_viewer_display_size_allocate(GtkWidget *widget,
360 GtkAllocation *allocation)
361 {
362 GtkBin *bin = GTK_BIN(widget);
363 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
364 VirtViewerDisplayPrivate *priv = display->priv;
365 GtkAllocation child_allocation;
366 gint width, height;
367 gint border_width;
368 double desktopAspect;
369 double actualAspect;
370 GtkWidget *child = gtk_bin_get_child(bin);
371
372 DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height);
373 gtk_widget_set_allocation(widget, allocation);
374
375 desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight;
376
377 if (child && gtk_widget_get_visible(child)) {
378 border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
379
380 width = MAX(1, allocation->width - 2 * border_width);
381 height = MAX(1, allocation->height - 2 * border_width);
382 actualAspect = (double)width / (double)height;
383
384 if (actualAspect > desktopAspect) {
385 child_allocation.width = height * desktopAspect;
386 child_allocation.height = height;
387 } else {
388 child_allocation.width = width;
389 child_allocation.height = width / desktopAspect;
390 }
391
392 child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width;
393 child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width;
394
395 DEBUG_LOG("Child allocate %dx%d", child_allocation.width, child_allocation.height);
396 gtk_widget_size_allocate(child, &child_allocation);
397 }
398
399
400 /* This unsets the size request, so that the user can
401 * manually resize the window smaller again
402 */
403 if (priv->dirty) {
404 g_idle_add(virt_viewer_display_idle, widget);
405 priv->dirty = FALSE;
406 }
401 GtkAllocation *allocation)
402 {
403 GtkBin *bin = GTK_BIN(widget);
404 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
405 VirtViewerDisplayPrivate *priv = display->priv;
406 GtkAllocation child_allocation;
407 gint width, height;
408 gint border_width;
409 double desktopAspect;
410 double actualAspect;
411 GtkWidget *child = gtk_bin_get_child(bin);
412
413 DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height);
414 gtk_widget_set_allocation(widget, allocation);
415
416 if (priv->desktopWidth == 0 ||
417 priv->desktopHeight == 0)
418 goto end;
419
420 desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight;
421
422 if (child && gtk_widget_get_visible(child)) {
423 border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
424
425 width = MAX(1, allocation->width - 2 * border_width);
426 height = MAX(1, allocation->height - 2 * border_width);
427 actualAspect = (double)width / (double)height;
428
429 if (actualAspect > desktopAspect) {
430 child_allocation.width = round(height * desktopAspect);
431 child_allocation.height = height;
432 } else {
433 child_allocation.width = width;
434 child_allocation.height = round(width / desktopAspect);
435 }
436
437 child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width;
438 child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width;
439
440 DEBUG_LOG("Child allocate %dx%d", child_allocation.width, child_allocation.height);
441 gtk_widget_size_allocate(child, &child_allocation);
442 }
443
444 end:
445 /* This unsets the size request, so that the user can
446 * manually resize the window smaller again
447 */
448 if (priv->dirty) {
449 g_idle_add(virt_viewer_display_idle, widget);
450 priv->dirty = FALSE;
451 }
407452 }
408453
409454
410455 void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display,
411 guint width,
412 guint height)
413 {
414 VirtViewerDisplayPrivate *priv = display->priv;
415
416 priv->desktopWidth = width;
417 priv->desktopHeight = height;
418 priv->dirty = TRUE;
419
420 gtk_widget_queue_resize(GTK_WIDGET(display));
456 guint width,
457 guint height)
458 {
459 VirtViewerDisplayPrivate *priv = display->priv;
460
461 if (width == priv->desktopWidth && height == priv->desktopHeight)
462 return;
463
464 priv->desktopWidth = width;
465 priv->desktopHeight = height;
466 priv->dirty = TRUE;
467
468 gtk_widget_queue_resize(GTK_WIDGET(display));
469 g_signal_emit_by_name(display, "display-desktop-resize");
421470 }
422471
423472
424473 void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display,
425 guint *width,
426 guint *height)
427 {
428 VirtViewerDisplayPrivate *priv = display->priv;
429
430 *width = priv->desktopWidth;
431 *height = priv->desktopHeight;
474 guint *width,
475 guint *height)
476 {
477 VirtViewerDisplayPrivate *priv = display->priv;
478
479 *width = priv->desktopWidth;
480 *height = priv->desktopHeight;
432481 }
433482
434483
435484 void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
436 guint zoom)
437 {
438 VirtViewerDisplayPrivate *priv = display->priv;
439 GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
440
441 if (zoom < 10)
442 zoom = 10;
443 if (zoom > 400)
444 zoom = 400;
445 priv->zoom_level = zoom;
446
447 if (child && gtk_widget_get_visible(child)) {
448 priv->dirty = TRUE;
449 gtk_widget_queue_resize(GTK_WIDGET(display));
450 }
485 guint zoom)
486 {
487 VirtViewerDisplayPrivate *priv = display->priv;
488 GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
489
490 if (zoom < 10)
491 zoom = 10;
492 if (zoom > 400)
493 zoom = 400;
494 priv->zoom_level = zoom;
495
496 if (child && gtk_widget_get_visible(child)) {
497 priv->dirty = TRUE;
498 gtk_widget_queue_resize(GTK_WIDGET(display));
499 }
500 }
501
502
503 guint virt_viewer_display_get_zoom_level(VirtViewerDisplay *display)
504 {
505 VirtViewerDisplayPrivate *priv = display->priv;
506 return priv->zoom_level;
451507 }
452508
453509
454510 void virt_viewer_display_set_zoom(VirtViewerDisplay *display,
455 gboolean zoom)
456 {
457 VirtViewerDisplayPrivate *priv = display->priv;
458 GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
459
460 priv->zoom = zoom;
461 if (child && gtk_widget_get_visible(child)) {
462 priv->dirty = TRUE;
463 gtk_widget_queue_resize(GTK_WIDGET(display));
464 }
465 }
511 gboolean zoom)
512 {
513 VirtViewerDisplayPrivate *priv = display->priv;
514 GtkWidget *child = gtk_bin_get_child(GTK_BIN(display));
515
516 priv->zoom = zoom;
517 if (child && gtk_widget_get_visible(child)) {
518 priv->dirty = TRUE;
519 gtk_widget_queue_resize(GTK_WIDGET(display));
520 }
521 }
522
523
524 gboolean virt_viewer_display_get_zoom(VirtViewerDisplay *display)
525 {
526 VirtViewerDisplayPrivate *priv = display->priv;
527 return priv->zoom;
528 }
529
466530
467531 void virt_viewer_display_send_keys(VirtViewerDisplay *display,
468 const guint *keyvals, int nkeyvals)
469 {
470 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display));
471
472 VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys(display, keyvals, nkeyvals);
532 const guint *keyvals, int nkeyvals)
533 {
534 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(display));
535
536 VIRT_VIEWER_DISPLAY_GET_CLASS(display)->send_keys(display, keyvals, nkeyvals);
473537 }
474538
475539 GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display)
476540 {
477 g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(display), NULL);
478
479 return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display);
480 }
481
482 void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, gint hint)
483 {
484 VirtViewerDisplayPrivate *priv;
485 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
486
487 priv = self->priv;
488 if (priv->show_hint == hint)
489 return;
490
491 priv->show_hint = hint;
492 g_object_notify(G_OBJECT(self), "show-hint");
541 g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(display), NULL);
542
543 return VIRT_VIEWER_DISPLAY_GET_CLASS(display)->get_pixbuf(display);
544 }
545
546 guint virt_viewer_display_get_show_hint(VirtViewerDisplay *self)
547 {
548 g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), 0);
549
550 return self->priv->show_hint;
551 }
552
553 void virt_viewer_display_set_show_hint(VirtViewerDisplay *self, guint mask, gboolean enable)
554 {
555 VirtViewerDisplayPrivate *priv;
556 guint hint;
557 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
558
559 priv = self->priv;
560 hint = priv->show_hint;
561
562 if (enable)
563 hint |= mask;
564 else
565 hint &= ~mask;
566
567 if (priv->show_hint == hint)
568 return;
569
570 priv->show_hint = hint;
571 g_object_notify(G_OBJECT(self), "show-hint");
572 }
573
574 void virt_viewer_display_set_enabled(VirtViewerDisplay *self, gboolean enabled)
575 {
576 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
577
578 virt_viewer_display_set_show_hint(self, VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED, !enabled);
579 }
580
581 VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *self)
582 {
583 g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), NULL);
584
585 return self->priv->session;
586 }
587
588 void virt_viewer_display_set_auto_resize(VirtViewerDisplay *self, gboolean auto_resize)
589 {
590 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
591
592 self->priv->auto_resize = auto_resize;
593 }
594
595 gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *self)
596 {
597 g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE);
598
599 return self->priv->auto_resize;
600 }
601
602 void virt_viewer_display_release_cursor(VirtViewerDisplay *self)
603 {
604 VirtViewerDisplayClass *klass;
605
606 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
607
608 klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self);
609 g_return_if_fail(klass->release_cursor != NULL);
610
611 klass->release_cursor(self);
612 }
613
614 gboolean virt_viewer_display_get_selectable(VirtViewerDisplay *self)
615 {
616 VirtViewerDisplayClass *klass;
617
618 g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE);
619
620 klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self);
621 if (klass->selectable)
622 return klass->selectable(self);
623
624 return TRUE;
625 }
626
627 void virt_viewer_display_close(VirtViewerDisplay *self)
628 {
629 VirtViewerDisplayClass *klass;
630
631 g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
632
633 klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self);
634 g_return_if_fail(klass->close != NULL);
635
636 klass->close(self);
493637 }
494638
495639 /*
496640 * Local variables:
497 * c-indent-level: 8
498 * c-basic-offset: 8
499 * tab-width: 8
641 * c-indent-level: 4
642 * c-basic-offset: 4
643 * indent-tabs-mode: nil
500644 * End:
501645 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2424 #define _VIRT_VIEWER_DISPLAY_H
2525
2626 #include <gtk/gtk.h>
27 #include "virt-viewer-enums.h"
2728
2829 G_BEGIN_DECLS
2930
3031 #define VIRT_VIEWER_TYPE_DISPLAY virt_viewer_display_get_type()
3132
32 #define VIRT_VIEWER_DISPLAY(obj) \
33 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay))
33 #define VIRT_VIEWER_DISPLAY(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplay))
3435
35 #define VIRT_VIEWER_DISPLAY_CLASS(klass) \
36 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
36 #define VIRT_VIEWER_DISPLAY_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
3738
3839 #define VIRT_VIEWER_IS_DISPLAY(obj) \
39 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY))
40 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_DISPLAY))
4041
4142 #define VIRT_VIEWER_IS_DISPLAY_CLASS(klass) \
42 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY))
43 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_DISPLAY))
4344
44 #define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \
45 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
45 #define VIRT_VIEWER_DISPLAY_GET_CLASS(obj) \
46 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_DISPLAY, VirtViewerDisplayClass))
47
48 typedef struct _VirtViewerSession VirtViewerSession;
49 typedef struct _VirtViewerSessionClass VirtViewerSessionClass;
4650
4751 typedef struct _VirtViewerDisplay VirtViewerDisplay;
4852 typedef struct _VirtViewerDisplayClass VirtViewerDisplayClass;
5054
5155 typedef struct _VirtViewerDisplayChannel VirtViewerDisplayChannel;
5256
53 enum {
54 VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE = 0,
55 VIRT_VIEWER_DISPLAY_SHOW_HINT_READY,
56 };
57 typedef enum {
58 VIRT_VIEWER_DISPLAY_SHOW_HINT_READY = 1 << 0,
59 VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED = 1 << 1,
60 } VirtViewerDisplayShowHintFlags;
5761
5862 /* perhaps this become an interface, and be pushed in gtkvnc and spice? */
5963 struct _VirtViewerDisplay {
60 GtkBin parent;
64 GtkBin parent;
6165
62 VirtViewerDisplayPrivate *priv;
66 VirtViewerDisplayPrivate *priv;
6367 };
6468
6569 struct _VirtViewerDisplayClass {
66 GtkBinClass parent_class;
70 GtkBinClass parent_class;
6771
68 /* virtual methods */
69 void (*send_keys)(VirtViewerDisplay* display,
70 const guint *keyvals, int nkeyvals);
71 GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay* display);
72 /* virtual methods */
73 void (*send_keys)(VirtViewerDisplay *display,
74 const guint *keyvals, int nkeyvals);
75 GdkPixbuf *(*get_pixbuf)(VirtViewerDisplay *display);
76 void (*release_cursor)(VirtViewerDisplay *display);
7277
73 /* signals */
74 void (*display_pointer_grab)(VirtViewerDisplay *display);
75 void (*display_pointer_ungrab)(VirtViewerDisplay *display);
76 void (*display_keyboard_grab)(VirtViewerDisplay *display);
77 void (*display_keyboard_ungrab)(VirtViewerDisplay *display);
78 void (*close)(VirtViewerDisplay *display);
79 gboolean (*selectable)(VirtViewerDisplay *display);
7880
79 void (*display_desktop_resize)(VirtViewerDisplay *display);
81 /* signals */
82 void (*display_pointer_grab)(VirtViewerDisplay *display);
83 void (*display_pointer_ungrab)(VirtViewerDisplay *display);
84 void (*display_keyboard_grab)(VirtViewerDisplay *display);
85 void (*display_keyboard_ungrab)(VirtViewerDisplay *display);
86
87 void (*display_desktop_resize)(VirtViewerDisplay *display);
8088 };
8189
8290 GType virt_viewer_display_get_type(void);
8492 GtkWidget *virt_viewer_display_new(void);
8593
8694 void virt_viewer_display_set_desktop_size(VirtViewerDisplay *display,
87 guint width,
88 guint height);
95 guint width,
96 guint height);
8997
9098 void virt_viewer_display_get_desktop_size(VirtViewerDisplay *display,
91 guint *width,
92 guint *height);
99 guint *width,
100 guint *height);
93101
94102 void virt_viewer_display_set_zoom_level(VirtViewerDisplay *display,
95 guint zoom);
103 guint zoom);
104 guint virt_viewer_display_get_zoom_level(VirtViewerDisplay *display);
96105 void virt_viewer_display_set_zoom(VirtViewerDisplay *display,
97 gboolean zoom);
106 gboolean zoom);
107 gboolean virt_viewer_display_get_zoom(VirtViewerDisplay *display);
98108
99109 void virt_viewer_display_send_keys(VirtViewerDisplay *display,
100 const guint *keyvals, int nkeyvals);
110 const guint *keyvals, int nkeyvals);
101111 GdkPixbuf* virt_viewer_display_get_pixbuf(VirtViewerDisplay *display);
102 void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, gint hint);
112 void virt_viewer_display_set_show_hint(VirtViewerDisplay *display, guint mask, gboolean enable);
113 guint virt_viewer_display_get_show_hint(VirtViewerDisplay *display);
114 VirtViewerSession* virt_viewer_display_get_session(VirtViewerDisplay *display);
115 void virt_viewer_display_set_auto_resize(VirtViewerDisplay *display, gboolean auto_resize);
116 gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *display);
117 void virt_viewer_display_release_cursor(VirtViewerDisplay *display);
118
119 void virt_viewer_display_close(VirtViewerDisplay *display);
120 void virt_viewer_display_set_enabled(VirtViewerDisplay *display, gboolean enabled);
121 gboolean virt_viewer_display_get_selectable(VirtViewerDisplay *display);
103122
104123 G_END_DECLS
105124
106125 #endif /* _VIRT_VIEWER_DISPLAY_H */
107126 /*
108127 * Local variables:
109 * c-indent-level: 8
110 * c-basic-offset: 8
111 * tab-width: 8
128 * c-indent-level: 4
129 * c-basic-offset: 4
130 * indent-tabs-mode: nil
112131 * End:
113132 */
0
1 /* Generated data (by glib-mkenums) */
2
3 /*
4 * Virt Viewer: A virtual machine console viewer
5 *
6 * Copyright (C) 2007-2012 Red Hat, Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 *
22 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
23 */
24
25 #include "virt-viewer-enums.h"
26
27 #include "virt-viewer-display.h"
28
29 GType
30 virt_viewer_display_show_hint_flags_get_type (void)
31 {
32 static volatile gsize g_define_type_id__volatile = 0;
33
34 if (g_once_init_enter (&g_define_type_id__volatile))
35 {
36 static const GFlagsValue values[] = {
37 { VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, "VIRT_VIEWER_DISPLAY_SHOW_HINT_READY", "ready" },
38 { VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED, "VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED", "disabled" },
39 { 0, NULL, NULL }
40 };
41 GType g_define_type_id =
42 g_flags_register_static (g_intern_static_string ("VirtViewerDisplayShowHintFlags"), values);
43 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
44 }
45
46 return g_define_type_id__volatile;
47 }
48
49
50 /* Generated data ends here */
51
0 /*** BEGIN file-header ***/
1 /*
2 * Virt Viewer: A virtual machine console viewer
3 *
4 * Copyright (C) 2007-2012 Red Hat, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
21 */
22
23 #include "virt-viewer-enums.h"
24
25 /*** END file-header ***/
26
27 /*** BEGIN file-production ***/
28 #include "@filename@"
29 /*** END file-production ***/
30
31
32 /*** BEGIN value-header ***/
33
34 GType
35 @enum_name@_get_type (void)
36 {
37 static volatile gsize g_define_type_id__volatile = 0;
38
39 if (g_once_init_enter (&g_define_type_id__volatile))
40 {
41 static const G@Type@Value values[] = {
42 /*** END value-header ***/
43
44 /*** BEGIN value-production ***/
45 { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
46 /*** END value-production ***/
47
48 /*** BEGIN value-tail ***/
49 { 0, NULL, NULL }
50 };
51 GType g_define_type_id =
52 g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
53 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
54 }
55
56 return g_define_type_id__volatile;
57 }
58
59 /*** END value-tail ***/
0
1 /* Generated data (by glib-mkenums) */
2
3 /*
4 * Virt Viewer: A virtual machine console viewer
5 *
6 * Copyright (C) 2007-2012 Red Hat, Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 *
22 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
23 */
24
25 #ifndef VIRT_VIEWER_ENUMS_H
26 #define VIRT_VIEWER_ENUMS_H
27
28 #include <glib-object.h>
29
30 G_BEGIN_DECLS
31 GType virt_viewer_display_show_hint_flags_get_type (void) G_GNUC_CONST;
32 #define VIRT_VIEWER_TYPE_DISPLAY_SHOW_HINT_FLAGS (virt_viewer_display_show_hint_flags_get_type ())
33 G_END_DECLS
34
35 #endif
36
37 /* Generated data ends here */
38
0 /*** BEGIN file-header ***/
1 /*
2 * Virt Viewer: A virtual machine console viewer
3 *
4 * Copyright (C) 2007-2012 Red Hat, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
21 */
22
23 #ifndef VIRT_VIEWER_ENUMS_H
24 #define VIRT_VIEWER_ENUMS_H
25
26 #include <glib-object.h>
27
28 G_BEGIN_DECLS
29 /*** END file-header ***/
30
31 /*** BEGIN value-header ***/
32 GType @enum_name@_get_type (void) G_GNUC_CONST;
33 #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
34 /*** END value-header ***/
35
36 /*** BEGIN file-tail ***/
37 G_END_DECLS
38
39 #endif
40 /*** END file-tail ***/
00 /*
11 * events.c: event loop integration
22 *
3 * Copyright (C) 2008-2009 Daniel P. Berrange
3 * Copyright (C) 2008-2012 Daniel P. Berrange
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
1919 * Author: Daniel P. Berrange <berrange@redhat.com>
2020 */
2121
22 #include <config.h>
2223
2324 #include <stdio.h>
2425 #include <string.h>
4748
4849 static gboolean
4950 virt_viewer_events_dispatch_handle(GIOChannel *source G_GNUC_UNUSED,
50 GIOCondition condition,
51 gpointer opaque)
51 GIOCondition condition,
52 gpointer opaque)
5253 {
5354 struct virt_viewer_events_handle *data = opaque;
5455 int events = 0;
7273
7374 static
7475 int virt_viewer_events_add_handle(int fd,
75 int events,
76 virEventHandleCallback cb,
77 void *opaque,
78 virFreeCallback ff)
76 int events,
77 virEventHandleCallback cb,
78 void *opaque,
79 virFreeCallback ff)
7980 {
8081 struct virt_viewer_events_handle *data;
8182 GIOCondition cond = 0;
122123
123124 static void
124125 virt_viewer_events_update_handle(int watch,
125 int events)
126 int events)
126127 {
127128 struct virt_viewer_events_handle *data = virt_viewer_events_find_handle(watch);
128129
159160 }
160161 }
161162
163
164 static gboolean
165 virt_viewer_events_cleanup_handle(gpointer user_data)
166 {
167 struct virt_viewer_events_handle *data = user_data;
168
169 DEBUG_LOG("Cleanup of handle %p", data);
170 g_return_val_if_fail(data != NULL, FALSE);
171
172 if (data->ff)
173 (data->ff)(data->opaque);
174
175 free(data);
176 return FALSE;
177 }
178
179
162180 static int
163181 virt_viewer_events_remove_handle(int watch)
164182 {
171189
172190 DEBUG_LOG("Remove handle %d %d", watch, data->fd);
173191
192 if (!data->source)
193 return -1;
194
174195 g_source_remove(data->source);
175196 data->source = 0;
176197 data->events = 0;
177 if (data->ff)
178 (data->ff)(data->opaque);
179 free(data);
180
198
199 g_idle_add(virt_viewer_events_cleanup_handle, data);
181200 return 0;
182201 }
183202
208227
209228 static int
210229 virt_viewer_events_add_timeout(int interval,
211 virEventTimeoutCallback cb,
212 void *opaque,
213 virFreeCallback ff)
230 virEventTimeoutCallback cb,
231 void *opaque,
232 virFreeCallback ff)
214233 {
215234 struct virt_viewer_events_timeout *data;
216235
250269
251270 static void
252271 virt_viewer_events_update_timeout(int timer,
253 int interval)
272 int interval)
254273 {
255274 struct virt_viewer_events_timeout *data = virt_viewer_events_find_timeout(timer);
256275
278297 }
279298 }
280299
300
301 static gboolean
302 virt_viewer_events_cleanup_timeout(gpointer user_data)
303 {
304 struct virt_viewer_events_timeout *data = user_data;
305
306 DEBUG_LOG("Cleanup of timeout %p", data);
307 g_return_val_if_fail(data != NULL, FALSE);
308
309 if (data->ff)
310 (data->ff)(data->opaque);
311
312 free(data);
313 return FALSE;
314 }
315
316
281317 static int
282318 virt_viewer_events_remove_timeout(int timer)
283319 {
296332 g_source_remove(data->source);
297333 data->source = 0;
298334
299 if (data->ff)
300 (data->ff)(data->opaque);
301
302 free(data);
303
335 g_idle_add(virt_viewer_events_cleanup_timeout, data);
304336 return 0;
305337 }
306338
314346 virt_viewer_events_remove_timeout);
315347 }
316348
349 /*
350 * Local variables:
351 * c-indent-level: 4
352 * c-basic-offset: 4
353 * indent-tabs-mode: nil
354 * End:
355 */
00 /*
11 * events.h: event loop integration
22 *
3 * Copyright (C) 2008-2009 Daniel P. Berrange
3 * Copyright (C) 2008-2012 Daniel P. Berrange
44 *
55 * This library is free software; you can redistribute it and/or
66 * modify it under the terms of the GNU Lesser General Public
2727 void virt_viewer_events_register(void);
2828
2929 #endif
30 /*
31 * Local variables:
32 * c-indent-level: 4
33 * c-basic-offset: 4
34 * indent-tabs-mode: nil
35 * End:
36 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007 Red Hat,
3 * Copyright (C) 2007-2012 Red Hat, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
2121
2222 #include <config.h>
2323 #include <locale.h>
24 #include <vncdisplay.h>
2524 #include <gtk/gtk.h>
2625 #include <glib/gi18n.h>
2726 #include <stdlib.h>
28
27 #ifdef HAVE_GTK_VNC
28 #include <vncdisplay.h>
29 #endif
30 #ifdef HAVE_SPICE_GTK
31 #include <spice-option.h>
32 #endif
2933 #include "virt-viewer.h"
3034
3135 static void virt_viewer_version(void)
3236 {
33 g_print(_("%s version %s\n"), PACKAGE, VERSION);
37 g_print(_("%s version %s\n"), PACKAGE, VERSION);
3438
35 exit(0);
39 exit(EXIT_SUCCESS);
3640 }
3741
3842
3943 int main(int argc, char **argv)
4044 {
41 GOptionContext *context;
42 GError *error = NULL;
43 int ret = 1;
44 char *uri = NULL;
45 int zoom = 100;
46 gchar **args = NULL;
47 gboolean verbose = FALSE;
48 gboolean debug = FALSE;
49 gboolean direct = FALSE;
50 gboolean waitvm = FALSE;
51 gboolean reconnect = FALSE;
52 gboolean fullscreen = FALSE;
53 VirtViewer *viewer = NULL;
54 const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options");
55 const GOptionEntry options [] = {
56 { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
57 virt_viewer_version, N_("display version information"), NULL },
58 { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
59 N_("display verbose information"), NULL },
60 { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
61 N_("direct connection with no automatic tunnels"), NULL },
62 { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri,
63 N_("connect to hypervisor"), "URI"},
64 { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm,
65 N_("wait for domain to start"), NULL },
66 { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect,
67 N_("reconnect to domain upon restart"), NULL },
68 { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
69 N_("Zoom level of window, in percentage"), "ZOOM" },
70 { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
71 N_("display debugging information"), NULL },
72 { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
73 N_("Open in full screen mode"), NULL },
74 { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
75 NULL, "DOMAIN-NAME|ID|UUID" },
76 { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
77 };
45 GOptionContext *context;
46 GError *error = NULL;
47 int ret = 1;
48 char *uri = NULL;
49 int zoom = 100;
50 gchar **args = NULL;
51 gboolean verbose = FALSE;
52 gboolean debug = FALSE;
53 gboolean direct = FALSE;
54 gboolean attach = FALSE;
55 gboolean waitvm = FALSE;
56 gboolean reconnect = FALSE;
57 gboolean fullscreen = FALSE;
58 VirtViewer *viewer = NULL;
59 char *basename;
60 char *help_msg = NULL;
61 const GOptionEntry options [] = {
62 { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
63 virt_viewer_version, N_("Display version information"), NULL },
64 { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
65 N_("Display verbose information"), NULL },
66 { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
67 N_("Direct connection with no automatic tunnels"), NULL },
68 { "attach", 'a', 0, G_OPTION_ARG_NONE, &attach,
69 N_("Attach to the local display using libvirt"), NULL },
70 { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri,
71 N_("Connect to hypervisor"), "URI"},
72 { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm,
73 N_("Wait for domain to start"), NULL },
74 { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect,
75 N_("Reconnect to domain upon restart"), NULL },
76 { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
77 N_("Zoom level of window, in percentage"), "ZOOM" },
78 { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug,
79 N_("Display debugging information"), NULL },
80 { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
81 N_("Open in full screen mode"), NULL },
82 { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args,
83 NULL, "DOMAIN-NAME|ID|UUID" },
84 { NULL, 0, 0, G_OPTION_ARG_NONE, NULL, NULL, NULL }
85 };
7886
79 setlocale(LC_ALL, "");
80 bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
81 bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
82 textdomain(GETTEXT_PACKAGE);
87 #if !GLIB_CHECK_VERSION(2,31,0)
88 g_thread_init(NULL);
89 #endif
8390
84 /* Setup command line options */
85 context = g_option_context_new (_("- Virtual machine graphical console"));
86 g_option_context_add_main_entries (context, options, NULL);
87 g_option_context_add_group (context, gtk_get_option_group (TRUE));
88 g_option_context_add_group (context, vnc_display_get_option_group ());
89 g_option_context_parse (context, &argc, &argv, &error);
90 if (error) {
91 g_printerr("%s\n%s\n",
92 error->message,
93 gettext(help_msg));
94 g_error_free(error);
95 goto cleanup;
96 }
91 setlocale(LC_ALL, "");
92 bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
93 bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
94 textdomain(GETTEXT_PACKAGE);
9795
98 g_option_context_free(context);
96 g_set_application_name(_("Virt Viewer"));
9997
100 if (!args || (g_strv_length(args) != 1)) {
101 fprintf(stderr, _("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg);
102 goto cleanup;
103 }
10498
105 if (zoom < 10 || zoom > 200) {
106 fprintf(stderr, "Zoom level must be within 10-200\n");
107 goto cleanup;
108 }
99 basename = g_path_get_basename(argv[0]);
100 help_msg = g_strdup_printf(_("Run '%s --help' to see a full list of available command line options"),
101 basename);
102 g_free(basename);
109103
110 virt_viewer_app_set_debug(debug);
104 /* Setup command line options */
105 context = g_option_context_new (_("- Virtual machine graphical console"));
106 g_option_context_add_main_entries (context, options, NULL);
107 g_option_context_add_group (context, gtk_get_option_group (TRUE));
108 #ifdef HAVE_GTK_VNC
109 g_option_context_add_group (context, vnc_display_get_option_group ());
110 #endif
111 #ifdef HAVE_SPICE_GTK
112 g_option_context_add_group (context, spice_get_option_group ());
113 #endif
114 g_option_context_parse (context, &argc, &argv, &error);
115 if (error) {
116 g_printerr("%s\n%s\n",
117 error->message, help_msg);
118 g_error_free(error);
119 goto cleanup;
120 }
111121
112 viewer = virt_viewer_new(uri, args[0], zoom, direct, waitvm, reconnect, verbose, NULL);
113 if (viewer == NULL)
114 goto cleanup;
122 g_option_context_free(context);
115123
116 g_object_set(viewer, "fullscreen", fullscreen, NULL);
117 if (!virt_viewer_app_start(VIRT_VIEWER_APP(viewer)))
118 goto cleanup;
124 if (!args || (g_strv_length(args) != 1)) {
125 g_printerr(_("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg);
126 goto cleanup;
127 }
119128
120 gtk_main();
129 if (zoom < 10 || zoom > 200) {
130 g_printerr(_("Zoom level must be within 10-200\n"));
131 goto cleanup;
132 }
121133
122 ret = 0;
134 gtk_window_set_default_icon_name("virt-viewer");
123135
124 cleanup:
125 if (viewer)
126 g_object_unref(viewer);
127 g_free(uri);
128 g_strfreev(args);
136 virt_viewer_app_set_debug(debug);
129137
130 return ret;
138 viewer = virt_viewer_new(uri, args[0], zoom, direct, attach, waitvm, reconnect, verbose, NULL);
139 if (viewer == NULL)
140 goto cleanup;
141
142 g_object_set(viewer, "fullscreen", fullscreen, NULL);
143 if (!virt_viewer_app_start(VIRT_VIEWER_APP(viewer)))
144 goto cleanup;
145
146 gtk_main();
147
148 ret = 0;
149
150 cleanup:
151 if (viewer)
152 g_object_unref(viewer);
153 g_free(uri);
154 g_strfreev(args);
155 g_free(help_msg);
156
157 return ret;
131158 }
132159
133160 /*
134161 * Local variables:
135 * c-indent-level: 8
136 * c-basic-offset: 8
137 * tab-width: 8
138 * indent-tabs-mode: t
162 * c-indent-level: 4
163 * c-basic-offset: 4
164 * indent-tabs-mode: nil
139165 * End:
140166 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2020 *
2121 * Author: Daniel P. Berrange <berrange@redhat.com>
2222 */
23
24 #include <config.h>
25
2326 #include "virt-viewer-notebook.h"
2427 #include "virt-viewer-util.h"
2528
2629 G_DEFINE_TYPE (VirtViewerNotebook, virt_viewer_notebook, GTK_TYPE_NOTEBOOK)
2730
28 #define GET_PRIVATE(o) \
29 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate))
31 #define GET_PRIVATE(o) \
32 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookPrivate))
3033
3134 struct _VirtViewerNotebookPrivate {
32 GtkWidget *status;
35 GtkWidget *status;
3336 };
3437
3538 static void
3639 virt_viewer_notebook_get_property (GObject *object, guint property_id,
37 GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
40 GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
3841 {
39 switch (property_id) {
40 default:
41 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
42 }
42 switch (property_id) {
43 default:
44 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
45 }
4346 }
4447
4548 static void
4649 virt_viewer_notebook_set_property (GObject *object, guint property_id,
47 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
50 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
4851 {
49 switch (property_id) {
50 default:
51 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
52 }
52 switch (property_id) {
53 default:
54 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
55 }
5356 }
5457
5558 static void
5659 virt_viewer_notebook_dispose (GObject *object)
5760 {
58 G_OBJECT_CLASS (virt_viewer_notebook_parent_class)->dispose (object);
61 G_OBJECT_CLASS (virt_viewer_notebook_parent_class)->dispose (object);
5962 }
6063
6164 static void
6265 virt_viewer_notebook_class_init (VirtViewerNotebookClass *klass)
6366 {
64 GObjectClass *object_class = G_OBJECT_CLASS (klass);
67 GObjectClass *object_class = G_OBJECT_CLASS (klass);
6568
66 g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate));
69 g_type_class_add_private (klass, sizeof (VirtViewerNotebookPrivate));
6770
68 object_class->get_property = virt_viewer_notebook_get_property;
69 object_class->set_property = virt_viewer_notebook_set_property;
70 object_class->dispose = virt_viewer_notebook_dispose;
71 object_class->get_property = virt_viewer_notebook_get_property;
72 object_class->set_property = virt_viewer_notebook_set_property;
73 object_class->dispose = virt_viewer_notebook_dispose;
7174 }
7275
7376 static void
7477 virt_viewer_notebook_init (VirtViewerNotebook *self)
7578 {
76 VirtViewerNotebookPrivate *priv;
77 GdkColor color;
79 VirtViewerNotebookPrivate *priv;
80 GdkColor color;
7881
79 self->priv = GET_PRIVATE(self);
80 priv = self->priv;
82 self->priv = GET_PRIVATE(self);
83 priv = self->priv;
8184
82 priv->status = gtk_label_new("");
83 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE);
84 gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE);
85 gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL);
86 gdk_color_parse("white", &color);
87 gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color);
85 priv->status = gtk_label_new("");
86 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE);
87 gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE);
88 gtk_widget_show_all(priv->status);
89 gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL);
90 gdk_color_parse("white", &color);
91 gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color);
8892 }
8993
9094 void
9195 virt_viewer_notebook_show_status_va(VirtViewerNotebook *self, const gchar *fmt, va_list args)
9296 {
93 VirtViewerNotebookPrivate *priv;
94 gchar *text;
97 VirtViewerNotebookPrivate *priv;
98 gchar *text;
9599
96 DEBUG_LOG("notebook show status %p", self);
97 g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
100 DEBUG_LOG("notebook show status %p", self);
101 g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
98102
99 text = g_strdup_vprintf(fmt, args);
100 priv = self->priv;
101 gtk_label_set_text(GTK_LABEL(priv->status), text);
102 gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 0);
103 gtk_widget_show_all(GTK_WIDGET(self));
104 g_free(text);
103 text = g_strdup_vprintf(fmt, args);
104 priv = self->priv;
105 gtk_label_set_text(GTK_LABEL(priv->status), text);
106 gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 0);
107 gtk_widget_show_all(GTK_WIDGET(self));
108 g_free(text);
105109 }
106110
107111 void
108112 virt_viewer_notebook_show_status(VirtViewerNotebook *self, const gchar *fmt, ...)
109113 {
110 va_list args;
114 va_list args;
111115
112 g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
116 g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
113117
114 va_start(args, fmt);
115 virt_viewer_notebook_show_status_va(self, fmt, args);
116 va_end(args);
118 va_start(args, fmt);
119 virt_viewer_notebook_show_status_va(self, fmt, args);
120 va_end(args);
117121 }
118122
119123 void
120124 virt_viewer_notebook_show_display(VirtViewerNotebook *self)
121125 {
122 GtkWidget *display;
126 GtkWidget *display;
123127
124 DEBUG_LOG("notebook show display %p", self);
125 g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
128 DEBUG_LOG("notebook show display %p", self);
129 g_return_if_fail(VIRT_VIEWER_IS_NOTEBOOK(self));
126130
127 display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1);
128 g_warn_if_fail(display != NULL);
131 display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1);
132 if (display == NULL)
133 DEBUG_LOG("FIXME: showing display although it's not ready yet");
134 else
135 gtk_widget_grab_focus(display);
129136
130 gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1);
131 gtk_widget_show_all(GTK_WIDGET(self));
137 gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1);
138 gtk_widget_show_all(GTK_WIDGET(self));
132139 }
133140
134141 VirtViewerNotebook*
135142 virt_viewer_notebook_new (void)
136143 {
137 return g_object_new (VIRT_VIEWER_TYPE_NOTEBOOK, NULL);
144 return g_object_new (VIRT_VIEWER_TYPE_NOTEBOOK, NULL);
138145 }
139146
140147 /*
141148 * Local variables:
142 * c-indent-level: 8
143 * c-basic-offset: 8
144 * tab-width: 8
145 * indent-tabs-mode: t
149 * c-indent-level: 4
150 * c-basic-offset: 4
151 * indent-tabs-mode: nil
146152 * End:
147153 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3030
3131 #define VIRT_VIEWER_TYPE_NOTEBOOK virt_viewer_notebook_get_type()
3232
33 #define VIRT_VIEWER_NOTEBOOK(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebook))
33 #define VIRT_VIEWER_NOTEBOOK(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebook))
3535
36 #define VIRT_VIEWER_NOTEBOOK_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
36 #define VIRT_VIEWER_NOTEBOOK_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
3838
39 #define VIRT_VIEWER_IS_NOTEBOOK(obj) \
40 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_NOTEBOOK))
39 #define VIRT_VIEWER_IS_NOTEBOOK(obj) \
40 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_NOTEBOOK))
4141
42 #define VIRT_VIEWER_IS_NOTEBOOK_CLASS(klass) \
43 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_NOTEBOOK))
42 #define VIRT_VIEWER_IS_NOTEBOOK_CLASS(klass) \
43 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_NOTEBOOK))
4444
45 #define VIRT_VIEWER_NOTEBOOK_GET_CLASS(obj) \
46 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
45 #define VIRT_VIEWER_NOTEBOOK_GET_CLASS(obj) \
46 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_NOTEBOOK, VirtViewerNotebookClass))
4747
4848 typedef struct _VirtViewerNotebookPrivate VirtViewerNotebookPrivate;
4949
5050 typedef struct {
51 GtkNotebook parent;
52 VirtViewerNotebookPrivate *priv;
51 GtkNotebook parent;
52 VirtViewerNotebookPrivate *priv;
5353 } VirtViewerNotebook;
5454
5555 typedef struct {
56 GtkNotebookClass parent_class;
56 GtkNotebookClass parent_class;
5757 } VirtViewerNotebookClass;
5858
5959 GType virt_viewer_notebook_get_type (void);
6666 G_END_DECLS
6767
6868 #endif /* _VIRT_VIEWER_NOTEBOOK */
69
7069 /*
7170 * Local variables:
72 * c-indent-level: 8
73 * c-basic-offset: 8
74 * tab-width: 8
75 * indent-tabs-mode: t
71 * c-indent-level: 4
72 * c-basic-offset: 4
73 * indent-tabs-mode: nil
7674 * End:
7775 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2121 * Author: Daniel P. Berrange <berrange@redhat.com>
2222 */
2323
24 #include <config.h>
25
2426 #include <spice-audio.h>
25
2627 #include <glib/gi18n.h>
2728
29 #include <spice-option.h>
30 #include <usb-device-widget.h>
2831 #include "virt-viewer-util.h"
2932 #include "virt-viewer-session-spice.h"
3033 #include "virt-viewer-display-spice.h"
3134 #include "virt-viewer-auth.h"
35 #include "virt-glib-compat.h"
36
37 #if !GLIB_CHECK_VERSION(2, 26, 0)
38 #include "gbinding.h"
39 #include "gbinding.c"
40 #endif
3241
3342 G_DEFINE_TYPE (VirtViewerSessionSpice, virt_viewer_session_spice, VIRT_VIEWER_TYPE_SESSION)
3443
3544
3645 struct _VirtViewerSessionSpicePrivate {
37 SpiceSession *session;
38 SpiceAudio *audio;
46 GtkWindow *main_window;
47 SpiceSession *session;
48 SpiceGtkSession *gtk_session;
49 SpiceMainChannel *main_channel;
50 const SpiceAudio *audio;
51 int channel_count;
3952 };
4053
4154 #define VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpicePrivate))
55
56 enum {
57 PROP_0,
58 PROP_SPICE_SESSION,
59 };
60
4261
4362 static void virt_viewer_session_spice_close(VirtViewerSession *session);
4463 static gboolean virt_viewer_session_spice_open_fd(VirtViewerSession *session, int fd);
45 static gboolean virt_viewer_session_spice_open_host(VirtViewerSession *session, char *host, char *port);
64 static gboolean virt_viewer_session_spice_open_host(VirtViewerSession *session, const gchar *host, const gchar *port, const gchar *tlsport);
65 static gboolean virt_viewer_session_spice_open_uri(VirtViewerSession *session, const gchar *uri);
4666 static gboolean virt_viewer_session_spice_channel_open_fd(VirtViewerSession *session, VirtViewerSessionChannel *channel, int fd);
67 static gboolean virt_viewer_session_spice_has_usb(VirtViewerSession *session);
68 static void virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session, GtkWindow *parent);
4769 static void virt_viewer_session_spice_channel_new(SpiceSession *s,
48 SpiceChannel *channel,
49 VirtViewerSession *session);
70 SpiceChannel *channel,
71 VirtViewerSession *session);
5072 static void virt_viewer_session_spice_channel_destroy(SpiceSession *s,
51 SpiceChannel *channel,
52 VirtViewerSession *session);
53
54
55 static void
56 virt_viewer_session_spice_finalize(GObject *obj)
57 {
58 VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj);
59
60 if (spice->priv->session) {
61 spice_session_disconnect(spice->priv->session);
62 g_object_unref(spice->priv->session);
63 }
64 if (spice->priv->audio)
65 g_object_unref(spice->priv->audio);
66
67 G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->finalize(obj);
73 SpiceChannel *channel,
74 VirtViewerSession *session);
75 static void virt_viewer_session_spice_smartcard_insert(VirtViewerSession *session);
76 static void virt_viewer_session_spice_smartcard_remove(VirtViewerSession *session);
77 static gboolean virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self);
78
79 static void
80 virt_viewer_session_spice_get_property(GObject *object, guint property_id,
81 GValue *value, GParamSpec *pspec)
82 {
83 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(object);
84 VirtViewerSessionSpicePrivate *priv = self->priv;
85
86 switch (property_id) {
87 case PROP_SPICE_SESSION:
88 g_value_set_object(value, priv->session);
89 break;
90 default:
91 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
92 }
93 }
94
95 static void
96 virt_viewer_session_spice_set_property(GObject *object, guint property_id,
97 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
98 {
99 switch (property_id) {
100 default:
101 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
102 }
103 }
104
105 static void
106 virt_viewer_session_spice_dispose(GObject *obj)
107 {
108 VirtViewerSessionSpice *spice = VIRT_VIEWER_SESSION_SPICE(obj);
109
110 if (spice->priv->session) {
111 spice_session_disconnect(spice->priv->session);
112 g_object_unref(spice->priv->session);
113 spice->priv->session = NULL;
114 }
115
116 spice->priv->audio = NULL;
117
118 if (spice->priv->main_window)
119 g_object_unref(spice->priv->main_window);
120
121 G_OBJECT_CLASS(virt_viewer_session_spice_parent_class)->dispose(obj);
68122 }
69123
70124
71125 static void
72126 virt_viewer_session_spice_class_init(VirtViewerSessionSpiceClass *klass)
73127 {
74 VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
75 GObjectClass *oclass = G_OBJECT_CLASS(klass);
76
77 oclass->finalize = virt_viewer_session_spice_finalize;
78
79 dclass->close = virt_viewer_session_spice_close;
80 dclass->open_fd = virt_viewer_session_spice_open_fd;
81 dclass->open_host = virt_viewer_session_spice_open_host;
82 dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd;
83
84 g_type_class_add_private(oclass, sizeof(VirtViewerSessionSpicePrivate));
128 VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
129 GObjectClass *oclass = G_OBJECT_CLASS(klass);
130
131 oclass->get_property = virt_viewer_session_spice_get_property;
132 oclass->set_property = virt_viewer_session_spice_set_property;
133 oclass->dispose = virt_viewer_session_spice_dispose;
134
135 dclass->close = virt_viewer_session_spice_close;
136 dclass->open_fd = virt_viewer_session_spice_open_fd;
137 dclass->open_host = virt_viewer_session_spice_open_host;
138 dclass->open_uri = virt_viewer_session_spice_open_uri;
139 dclass->channel_open_fd = virt_viewer_session_spice_channel_open_fd;
140 dclass->has_usb = virt_viewer_session_spice_has_usb;
141 dclass->usb_device_selection = virt_viewer_session_spice_usb_device_selection;
142 dclass->smartcard_insert = virt_viewer_session_spice_smartcard_insert;
143 dclass->smartcard_remove = virt_viewer_session_spice_smartcard_remove;
144
145 g_type_class_add_private(klass, sizeof(VirtViewerSessionSpicePrivate));
146
147 g_object_class_install_property(oclass,
148 PROP_SPICE_SESSION,
149 g_param_spec_object("spice-session",
150 "Spice session",
151 "Spice session",
152 SPICE_TYPE_SESSION,
153 G_PARAM_READABLE |
154 G_PARAM_STATIC_STRINGS));
85155 }
86156
87157 static void
88158 virt_viewer_session_spice_init(VirtViewerSessionSpice *self G_GNUC_UNUSED)
89159 {
90 self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self);
160 self->priv = VIRT_VIEWER_SESSION_SPICE_GET_PRIVATE(self);
161 }
162
163 static void
164 usb_connect_failed(GObject *object G_GNUC_UNUSED,
165 SpiceUsbDevice *device G_GNUC_UNUSED,
166 GError *error, VirtViewerSessionSpice *self)
167 {
168 if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
169 return;
170
171 g_signal_emit_by_name(self, "session-usb-failed", error->message);
172 }
173
174 static void
175 create_spice_session(VirtViewerSessionSpice *self)
176 {
177 SpiceUsbDeviceManager *manager;
178
179 g_return_if_fail(self != NULL);
180 g_return_if_fail(self->priv->session == NULL);
181
182 self->priv->session = spice_session_new();
183 spice_set_session_option(self->priv->session);
184
185 self->priv->gtk_session = spice_gtk_session_get(self->priv->session);
186 g_object_set(self->priv->gtk_session, "auto-clipboard", TRUE, NULL);
187
188 g_signal_connect(self->priv->session, "channel-new",
189 G_CALLBACK(virt_viewer_session_spice_channel_new), self);
190 g_signal_connect(self->priv->session, "channel-destroy",
191 G_CALLBACK(virt_viewer_session_spice_channel_destroy), self);
192
193 manager = spice_usb_device_manager_get(self->priv->session, NULL);
194 if (manager) {
195 g_signal_connect(manager, "auto-connect-failed",
196 G_CALLBACK(usb_connect_failed), self);
197 g_signal_connect(manager, "device-error",
198 G_CALLBACK(usb_connect_failed), self);
199 }
200
201 g_object_bind_property(self, "auto-usbredir",
202 self->priv->gtk_session, "auto-usbredir",
203 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
91204 }
92205
93206 static void
94207 virt_viewer_session_spice_close(VirtViewerSession *session)
95208 {
96 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
97
98 g_return_if_fail(self != NULL);
99
100 virt_viewer_session_clear_displays(session);
101
102 if (self->priv->session) {
103 spice_session_disconnect(self->priv->session);
104 g_object_unref(self->priv->session);
105
106 if (self->priv->audio)
107 g_object_unref(self->priv->audio);
108 self->priv->audio = NULL;
109 }
110
111 self->priv->session = spice_session_new();
112 g_signal_connect(self->priv->session, "channel-new",
113 G_CALLBACK(virt_viewer_session_spice_channel_new), self);
114 g_signal_connect(self->priv->session, "channel-destroy",
115 G_CALLBACK(virt_viewer_session_spice_channel_destroy), self);
116
209 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
210
211 g_return_if_fail(self != NULL);
212
213 virt_viewer_session_clear_displays(session);
214
215 if (self->priv->session) {
216 spice_session_disconnect(self->priv->session);
217 g_object_unref(self->priv->session);
218 self->priv->session = NULL;
219 self->priv->gtk_session = NULL;
220 self->priv->audio = NULL;
221 }
222
223 /* FIXME: version 0.7 of spice-gtk allows reuse of session */
224 create_spice_session(self);
117225 }
118226
119227 static gboolean
120228 virt_viewer_session_spice_open_host(VirtViewerSession *session,
121 char *host,
122 char *port)
123 {
124 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
125
126 g_return_val_if_fail(self != NULL, FALSE);
127 g_return_val_if_fail(self->priv->session != NULL, FALSE);
128
129 g_object_set(self->priv->session,
130 "host", host,
131 "port", port,
132 NULL);
133
134 return spice_session_connect(self->priv->session);
229 const gchar *host,
230 const gchar *port,
231 const gchar *tlsport)
232 {
233 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
234
235 g_return_val_if_fail(self != NULL, FALSE);
236 g_return_val_if_fail(self->priv->session != NULL, FALSE);
237
238 g_object_set(self->priv->session,
239 "host", host,
240 "port", port,
241 "tls-port", tlsport,
242 NULL);
243
244 return spice_session_connect(self->priv->session);
245 }
246
247 static gboolean
248 virt_viewer_session_spice_open_uri(VirtViewerSession *session,
249 const gchar *uri)
250 {
251 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
252
253 g_return_val_if_fail(self != NULL, FALSE);
254 g_return_val_if_fail(self->priv->session != NULL, FALSE);
255
256 g_object_set(self->priv->session, "uri", uri, NULL);
257
258 return spice_session_connect(self->priv->session);
135259 }
136260
137261 static gboolean
138262 virt_viewer_session_spice_open_fd(VirtViewerSession *session,
139 int fd)
140 {
141 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
142
143 g_return_val_if_fail(self != NULL, FALSE);
144
145 return spice_session_open_fd(self->priv->session, fd);
263 int fd)
264 {
265 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
266
267 g_return_val_if_fail(self != NULL, FALSE);
268
269 return spice_session_open_fd(self->priv->session, fd);
146270 }
147271
148272 static gboolean
149273 virt_viewer_session_spice_channel_open_fd(VirtViewerSession *session,
150 VirtViewerSessionChannel *channel,
151 int fd)
152 {
153 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
154
155 g_return_val_if_fail(self != NULL, FALSE);
156
157 return spice_channel_open_fd(SPICE_CHANNEL(channel), fd);
274 VirtViewerSessionChannel *channel,
275 int fd)
276 {
277 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
278
279 g_return_val_if_fail(self != NULL, FALSE);
280
281 return spice_channel_open_fd(SPICE_CHANNEL(channel), fd);
158282 }
159283
160284 static void
161285 virt_viewer_session_spice_channel_open_fd_request(SpiceChannel *channel,
162 gint tls G_GNUC_UNUSED,
163 VirtViewerSession *session)
164 {
165 g_signal_emit_by_name(session, "session-channel-open", channel);
286 gint tls G_GNUC_UNUSED,
287 VirtViewerSession *session)
288 {
289 g_signal_emit_by_name(session, "session-channel-open", channel);
166290 }
167291
168292 static void
169293 virt_viewer_session_spice_main_channel_event(SpiceChannel *channel G_GNUC_UNUSED,
170 SpiceChannelEvent event,
171 VirtViewerSession *session)
172 {
173 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
174 char *password = NULL;
175
176 g_return_if_fail(self != NULL);
177
178 switch (event) {
179 case SPICE_CHANNEL_OPENED:
180 DEBUG_LOG("main channel: opened");
181 break;
182 case SPICE_CHANNEL_CLOSED:
183 DEBUG_LOG("main channel: closed");
184 g_signal_emit_by_name(session, "session-disconnected");
185 break;
186 case SPICE_CHANNEL_ERROR_CONNECT:
187 DEBUG_LOG("main channel: failed to connect");
188 g_signal_emit_by_name(session, "session-disconnected");
189 break;
190 case SPICE_CHANNEL_ERROR_AUTH:
191 DEBUG_LOG("main channel: auth failure (wrong password?)");
192 int ret = virt_viewer_auth_collect_credentials("SPICE",
193 NULL,
194 NULL, &password);
195 if (ret < 0) {
196 g_signal_emit_by_name(session, "session-auth-refused",
197 _("Unable to collect credentials"));
198 } else {
199 g_object_set(self->priv->session, "password", password, NULL);
200 spice_session_connect(self->priv->session);
201 }
202 break;
203 default:
204 g_warning("unknown main channel event: %d", event);
205 g_signal_emit_by_name(session, "session-disconnected");
206 break;
207 }
208
209 g_free(password);
210 }
211
294 SpiceChannelEvent event,
295 VirtViewerSession *session)
296 {
297 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
298 gchar *password = NULL;
299
300 g_return_if_fail(self != NULL);
301
302 switch (event) {
303 case SPICE_CHANNEL_OPENED:
304 DEBUG_LOG("main channel: opened");
305 break;
306 case SPICE_CHANNEL_CLOSED:
307 DEBUG_LOG("main channel: closed");
308 /* Ensure the other channels get closed too */
309 virt_viewer_session_clear_displays(session);
310 if (self->priv->session)
311 spice_session_disconnect(self->priv->session);
312 break;
313 case SPICE_CHANNEL_SWITCHING:
314 DEBUG_LOG("main channel: switching host");
315 break;
316 case SPICE_CHANNEL_ERROR_AUTH:
317 DEBUG_LOG("main channel: auth failure (wrong password?)");
318 int ret = virt_viewer_auth_collect_credentials(self->priv->main_window,
319 "SPICE",
320 NULL,
321 NULL, &password);
322 if (ret < 0) {
323 g_signal_emit_by_name(session, "session-cancelled");
324 } else {
325 gboolean openfd;
326
327 g_object_set(self->priv->session, "password", password, NULL);
328 g_free(password);
329 g_object_get(self->priv->session, "client-sockets", &openfd, NULL);
330
331 if (openfd)
332 spice_session_open_fd(self->priv->session, -1);
333 else
334 spice_session_connect(self->priv->session);
335 }
336 break;
337 case SPICE_CHANNEL_ERROR_CONNECT:
338 DEBUG_LOG("main channel: failed to connect");
339 g_signal_emit_by_name(session, "session-disconnected");
340 break;
341 case SPICE_CHANNEL_ERROR_IO:
342 case SPICE_CHANNEL_ERROR_LINK:
343 case SPICE_CHANNEL_ERROR_TLS:
344 g_signal_emit_by_name(session, "session-disconnected");
345 break;
346 default:
347 g_warning("unhandled spice main channel event: %d", event);
348 break;
349 }
350
351 g_free(password);
352 }
353
354 static gboolean
355 virt_viewer_session_spice_has_usb(VirtViewerSession *session)
356 {
357 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
358 VirtViewerSessionSpicePrivate *priv = self->priv;
359
360 return spice_usb_device_manager_get(priv->session, NULL) &&
361 spice_session_has_channel_type(priv->session,
362 SPICE_CHANNEL_USBREDIR);
363 }
364
365 static void remove_cb(GtkContainer *container G_GNUC_UNUSED,
366 GtkWidget *widget G_GNUC_UNUSED,
367 void *user_data)
368 {
369 gtk_window_resize(GTK_WINDOW(user_data), 1, 1);
370 }
371
372 static void
373 virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session,
374 GtkWindow *parent)
375 {
376 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
377 VirtViewerSessionSpicePrivate *priv = self->priv;
378 GtkWidget *dialog, *area, *usb_device_widget;
379
380 /* Create the widgets */
381 dialog = gtk_dialog_new_with_buttons(_("Select USB devices for redirection"), parent,
382 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
383 GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT,
384 NULL);
385 gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
386 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12);
387 gtk_box_set_spacing(GTK_BOX(gtk_bin_get_child(GTK_BIN(dialog))), 12);
388
389 area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
390
391 usb_device_widget = spice_usb_device_widget_new(priv->session,
392 "%s %s");
393 g_signal_connect(usb_device_widget, "connect-failed",
394 G_CALLBACK(usb_connect_failed), self);
395 gtk_box_pack_start(GTK_BOX(area), usb_device_widget, TRUE, TRUE, 0);
396
397 /* This shrinks the dialog when USB devices are unplugged */
398 g_signal_connect(usb_device_widget, "remove",
399 G_CALLBACK(remove_cb), dialog);
400
401 /* show and run */
402 gtk_widget_show_all(dialog);
403 gtk_dialog_run(GTK_DIALOG(dialog));
404 gtk_widget_destroy(dialog);
405 }
406
407 static void
408 agent_connected_changed(SpiceChannel *cmain G_GNUC_UNUSED,
409 GParamSpec *pspec G_GNUC_UNUSED,
410 VirtViewerSessionSpice *self)
411 {
412 // this will force refresh of application menu
413 g_signal_emit_by_name(self, "session-display-updated");
414 }
415
416 static void
417 agent_connected_fullscreen_auto_conf(SpiceChannel *cmain,
418 GParamSpec *pspec G_GNUC_UNUSED,
419 VirtViewerSessionSpice *self)
420 {
421 if (virt_viewer_session_spice_fullscreen_auto_conf(self))
422 g_signal_handlers_disconnect_by_func(cmain, agent_connected_fullscreen_auto_conf, self);
423 }
424
425 static void
426 destroy_display(gpointer data)
427 {
428 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(data);
429 VirtViewerSession *session = virt_viewer_display_get_session(display);
430
431 DEBUG_LOG("Destroying spice display %p", display);
432 virt_viewer_session_remove_display(session, display);
433 g_object_unref(display);
434 }
435
436 static void
437 virt_viewer_session_spice_display_monitors(SpiceChannel *channel,
438 GParamSpec *pspec G_GNUC_UNUSED,
439 VirtViewerSessionSpice *self)
440 {
441 GArray *monitors = NULL;
442 GPtrArray *displays = NULL;
443 GtkWidget *display;
444 guint i, monitors_max;
445
446 g_object_get(channel,
447 "monitors", &monitors,
448 "monitors-max", &monitors_max,
449 NULL);
450 g_return_if_fail(monitors != NULL);
451 g_return_if_fail(monitors->len <= monitors_max);
452
453 displays = g_object_get_data(G_OBJECT(channel), "virt-viewer-displays");
454 if (displays == NULL) {
455 displays = g_ptr_array_new();
456 g_ptr_array_set_free_func(displays, destroy_display);
457 g_object_set_data_full(G_OBJECT(channel), "virt-viewer-displays",
458 displays, (GDestroyNotify)g_ptr_array_unref);
459 }
460
461 g_ptr_array_set_size(displays, monitors_max);
462
463 for (i = 0; i < monitors_max; i++) {
464 display = g_ptr_array_index(displays, i);
465 if (display == NULL) {
466 display = virt_viewer_display_spice_new(self, channel, i);
467 DEBUG_LOG("creating spice display (#:%d)", i);
468 g_ptr_array_index(displays, i) = g_object_ref(display);
469 }
470
471 g_object_freeze_notify(G_OBJECT(display));
472 virt_viewer_display_set_enabled(VIRT_VIEWER_DISPLAY(display), FALSE);
473 virt_viewer_session_add_display(VIRT_VIEWER_SESSION(self),
474 VIRT_VIEWER_DISPLAY(display));
475 }
476
477 for (i = 0; i < monitors->len; i++) {
478 SpiceDisplayMonitorConfig *monitor = &g_array_index(monitors, SpiceDisplayMonitorConfig, i);
479 display = g_ptr_array_index(displays, monitor->id);
480 g_return_if_fail(display != NULL);
481
482 if (monitor->width == 0 || monitor->width == 0)
483 continue;
484
485 virt_viewer_display_set_enabled(VIRT_VIEWER_DISPLAY(display), TRUE);
486 virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(display),
487 monitor->width, monitor->height);
488 }
489
490 for (i = 0; i < monitors_max; i++)
491 g_object_thaw_notify(g_ptr_array_index(displays, i));
492
493 g_clear_pointer(&monitors, g_array_unref);
494
495 }
212496
213497 static void
214498 virt_viewer_session_spice_channel_new(SpiceSession *s,
215 SpiceChannel *channel,
216 VirtViewerSession *session)
217 {
218 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
219 int id;
220
221 g_return_if_fail(self != NULL);
222
223 g_signal_connect(channel, "open-fd",
224 G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self);
225
226 g_object_get(channel, "channel-id", &id, NULL);
227
228 if (SPICE_IS_MAIN_CHANNEL(channel)) {
229 g_signal_connect(channel, "channel-event",
230 G_CALLBACK(virt_viewer_session_spice_main_channel_event), self);
231 }
232
233 if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
234 GtkWidget *display;
235
236 g_signal_emit_by_name(session, "session-connected");
237
238 DEBUG_LOG("new session channel (#%d)", id);
239 display = virt_viewer_display_spice_new(channel,
240 spice_display_new(s, id));
241
242 virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
243 VIRT_VIEWER_DISPLAY(display));
244
245 g_signal_emit_by_name(session, "session-initialized");
246 }
247
248 if (SPICE_IS_INPUTS_CHANNEL(channel)) {
249 DEBUG_LOG("new inputs channel");
250 }
251
252 if (SPICE_IS_PLAYBACK_CHANNEL(channel)) {
253 DEBUG_LOG("new audio channel");
254 if (self->priv->audio != NULL)
255 return;
256 self->priv->audio = spice_audio_new(s, NULL, NULL);
257 }
499 SpiceChannel *channel,
500 VirtViewerSession *session)
501 {
502 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
503 int id;
504
505 g_return_if_fail(self != NULL);
506
507 g_signal_connect(channel, "open-fd",
508 G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self);
509
510 g_object_get(channel, "channel-id", &id, NULL);
511
512 DEBUG_LOG("New spice channel %p %s %d", channel, g_type_name(G_OBJECT_TYPE(channel)), id);
513
514 if (SPICE_IS_MAIN_CHANNEL(channel)) {
515 if (self->priv->main_channel != NULL)
516 g_signal_handlers_disconnect_by_func(self->priv->main_channel,
517 virt_viewer_session_spice_main_channel_event, self);
518
519 g_signal_connect(channel, "channel-event",
520 G_CALLBACK(virt_viewer_session_spice_main_channel_event), self);
521 self->priv->main_channel = SPICE_MAIN_CHANNEL(channel);
522
523 g_signal_connect(channel, "notify::agent-connected", G_CALLBACK(agent_connected_changed), self);
524 g_signal_connect(channel, "notify::agent-connected", G_CALLBACK(agent_connected_fullscreen_auto_conf), self);
525 agent_connected_fullscreen_auto_conf(channel, NULL, self);
526
527 g_signal_emit_by_name(session, "session-connected");
528 }
529
530 if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
531 g_signal_emit_by_name(session, "session-initialized");
532
533 g_signal_connect(channel, "notify::monitors",
534 G_CALLBACK(virt_viewer_session_spice_display_monitors), self);
535
536 spice_channel_connect(channel);
537 }
538
539 if (SPICE_IS_INPUTS_CHANNEL(channel)) {
540 DEBUG_LOG("new inputs channel");
541 }
542
543 if (SPICE_IS_PLAYBACK_CHANNEL(channel)) {
544 DEBUG_LOG("new audio channel");
545 if (self->priv->audio == NULL)
546 self->priv->audio = spice_audio_get(s, NULL);
547 }
548
549 self->priv->channel_count++;
550 }
551
552 static gboolean
553 virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self)
554 {
555 GdkScreen *screen = gdk_screen_get_default();
556 SpiceMainChannel* cmain = virt_viewer_session_spice_get_main_channel(self);
557 VirtViewerApp *app = NULL;
558 GdkRectangle dest;
559 gboolean auto_conf, agent_connected;
560 gint i;
561
562 app = virt_viewer_session_get_app(VIRT_VIEWER_SESSION(self));
563 g_return_val_if_fail(VIRT_VIEWER_IS_APP(app), TRUE);
564
565 DEBUG_LOG("Checking full screen auto-conf");
566 g_object_get(app, "fullscreen-auto-conf", &auto_conf, NULL);
567 if (!auto_conf)
568 return TRUE;
569
570 if (cmain == NULL)
571 return FALSE;
572
573 g_object_get(cmain, "agent-connected", &agent_connected, NULL);
574 if (!agent_connected) {
575 DEBUG_LOG("Agent not connected, skipping autoconf");
576 return FALSE;
577 }
578
579 DEBUG_LOG("Performing full screen auto-conf, %d host monitors",
580 gdk_screen_get_n_monitors(screen));
581 g_object_set(G_OBJECT(cmain),
582 "disable-display-position", FALSE,
583 "disable-display-align", TRUE,
584 NULL);
585 spice_main_set_display_enabled(cmain, -1, FALSE);
586 for (i = 0; i < gdk_screen_get_n_monitors(screen); i++) {
587 gdk_screen_get_monitor_geometry(screen, i, &dest);
588 DEBUG_LOG("Set SPICE display %d to (%d,%d)-(%dx%d)",
589 i, dest.x, dest.y, dest.width, dest.height);
590 spice_main_set_display(cmain, i, dest.x, dest.y, dest.width, dest.height);
591 spice_main_set_display_enabled(cmain, i, TRUE);
592 }
593
594 spice_main_send_monitor_config(cmain);
595 return TRUE;
258596 }
259597
260598 static void
261599 virt_viewer_session_spice_channel_destroy(G_GNUC_UNUSED SpiceSession *s,
262 SpiceChannel *channel,
263 VirtViewerSession *session)
264 {
265 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
266 int id;
267
268 g_return_if_fail(self != NULL);
269
270 g_object_get(channel, "channel-id", &id, NULL);
271 if (SPICE_IS_MAIN_CHANNEL(channel)) {
272 DEBUG_LOG("zap main channel");
273 }
274
275 if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
276 DEBUG_LOG("zap session channel (#%d)", id);
277 }
278
279 if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) {
280 DEBUG_LOG("zap audio channel");
281 g_object_unref(self->priv->audio);
282 self->priv->audio = NULL;
283 }
600 SpiceChannel *channel,
601 VirtViewerSession *session)
602 {
603 VirtViewerSessionSpice *self = VIRT_VIEWER_SESSION_SPICE(session);
604 int id;
605
606 g_return_if_fail(self != NULL);
607
608 g_object_get(channel, "channel-id", &id, NULL);
609 DEBUG_LOG("Destroy SPICE channel %s %d", g_type_name(G_OBJECT_TYPE(channel)), id);
610
611 if (SPICE_IS_MAIN_CHANNEL(channel)) {
612 DEBUG_LOG("zap main channel");
613 if (channel == SPICE_CHANNEL(self->priv->main_channel))
614 self->priv->main_channel = NULL;
615 }
616
617 if (SPICE_IS_DISPLAY_CHANNEL(channel)) {
618 VirtViewerDisplay *display = g_object_get_data(G_OBJECT(channel), "virt-viewer-display");
619 DEBUG_LOG("zap display channel (#%d, %p)", id, display);
620 }
621
622 if (SPICE_IS_PLAYBACK_CHANNEL(channel) && self->priv->audio) {
623 DEBUG_LOG("zap audio channel");
624 self->priv->audio = NULL;
625 }
626
627 self->priv->channel_count--;
628 if (self->priv->channel_count == 0)
629 g_signal_emit_by_name(self, "session-disconnected");
630 }
631
632 static void
633 fullscreen_changed(GObject *gobject G_GNUC_UNUSED,
634 GParamSpec *pspec G_GNUC_UNUSED,
635 VirtViewerSessionSpice *self)
636 {
637 virt_viewer_session_spice_fullscreen_auto_conf(self);
284638 }
285639
286640 VirtViewerSession *
287 virt_viewer_session_spice_new(void)
288 {
289 VirtViewerSessionSpice *self;
290
291 self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, NULL);
292
293 self->priv->session = spice_session_new();
294 g_signal_connect(self->priv->session, "channel-new",
295 G_CALLBACK(virt_viewer_session_spice_channel_new), self);
296 g_signal_connect(self->priv->session, "channel-destroy",
297 G_CALLBACK(virt_viewer_session_spice_channel_destroy), self);
298
299 return VIRT_VIEWER_SESSION(self);
641 virt_viewer_session_spice_new(VirtViewerApp *app, GtkWindow *main_window)
642 {
643 VirtViewerSessionSpice *self;
644
645 self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, "app", app, NULL);
646
647 create_spice_session(self);
648 self->priv->main_window = g_object_ref(main_window);
649
650 g_signal_connect(app, "notify::fullscreen", G_CALLBACK(fullscreen_changed), self);
651
652 return VIRT_VIEWER_SESSION(self);
653 }
654
655 SpiceMainChannel*
656 virt_viewer_session_spice_get_main_channel(VirtViewerSessionSpice *self)
657 {
658 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION_SPICE(self), NULL);
659
660 return self->priv->main_channel;
661 }
662
663 static void
664 virt_viewer_session_spice_smartcard_insert(VirtViewerSession *session G_GNUC_UNUSED)
665 {
666 spice_smartcard_manager_insert_card(spice_smartcard_manager_get());
667 }
668
669 static void
670 virt_viewer_session_spice_smartcard_remove(VirtViewerSession *session G_GNUC_UNUSED)
671 {
672 spice_smartcard_manager_remove_card(spice_smartcard_manager_get());
300673 }
301674
302675 /*
303676 * Local variables:
304 * c-indent-level: 8
305 * c-basic-offset: 8
306 * tab-width: 8
307 * indent-tabs-mode: t
677 * c-indent-level: 4
678 * c-basic-offset: 4
679 * indent-tabs-mode: nil
308680 * End:
309681 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3333
3434 #define VIRT_VIEWER_TYPE_SESSION_SPICE virt_viewer_session_spice_get_type()
3535
36 #define VIRT_VIEWER_SESSION_SPICE(obj) \
37 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpice))
36 #define VIRT_VIEWER_SESSION_SPICE(obj) \
37 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpice))
3838
39 #define VIRT_VIEWER_SESSION_SPICE_CLASS(klass) \
40 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
39 #define VIRT_VIEWER_SESSION_SPICE_CLASS(klass) \
40 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
4141
42 #define VIRT_VIEWER_IS_SESSION_SPICE(obj) \
43 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE))
42 #define VIRT_VIEWER_IS_SESSION_SPICE(obj) \
43 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE))
4444
45 #define VIRT_VIEWER_IS_SESSION_SPICE_CLASS(klass) \
46 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE))
45 #define VIRT_VIEWER_IS_SESSION_SPICE_CLASS(klass) \
46 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_SPICE))
4747
48 #define VIRT_VIEWER_SESSION_SPICE_GET_CLASS(obj) \
49 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
48 #define VIRT_VIEWER_SESSION_SPICE_GET_CLASS(obj) \
49 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_SPICE, VirtViewerSessionSpiceClass))
5050
5151 typedef struct _VirtViewerSessionSpice VirtViewerSessionSpice;
5252 typedef struct _VirtViewerSessionSpiceClass VirtViewerSessionSpiceClass;
5353 typedef struct _VirtViewerSessionSpicePrivate VirtViewerSessionSpicePrivate;
5454
5555 struct _VirtViewerSessionSpice {
56 VirtViewerSession parent;
56 VirtViewerSession parent;
5757
58 VirtViewerSessionSpicePrivate *priv;
58 VirtViewerSessionSpicePrivate *priv;
5959 };
6060
6161 struct _VirtViewerSessionSpiceClass {
62 VirtViewerSessionClass parent_class;
62 VirtViewerSessionClass parent_class;
6363 };
6464
6565 GType virt_viewer_session_spice_get_type(void);
6666
67 VirtViewerSession* virt_viewer_session_spice_new(void);
67 VirtViewerSession* virt_viewer_session_spice_new(VirtViewerApp *app, GtkWindow *main_window);
68 SpiceMainChannel* virt_viewer_session_spice_get_main_channel(VirtViewerSessionSpice *self);
6869
6970 G_END_DECLS
7071
7172 #endif /* _VIRT_VIEWER_SESSION_SPICE_H */
72
7373 /*
7474 * Local variables:
75 * c-indent-level: 8
76 * c-basic-offset: 8
77 * tab-width: 8
75 * c-indent-level: 4
76 * c-basic-offset: 4
77 * indent-tabs-mode: nil
7878 * End:
7979 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2121 * Author: Daniel P. Berrange <berrange@redhat.com>
2222 */
2323
24 #include <config.h>
25
2426 #include "virt-viewer-auth.h"
2527 #include "virt-viewer-session-vnc.h"
2628 #include "virt-viewer-display-vnc.h"
2729
2830 #include <glib/gi18n.h>
31 #include <libxml/uri.h>
2932
3033 G_DEFINE_TYPE(VirtViewerSessionVnc, virt_viewer_session_vnc, VIRT_VIEWER_TYPE_SESSION)
3134
3235 struct _VirtViewerSessionVncPrivate {
33 /* XXX we should really just have a VncConnection */
34 VncDisplay *vnc;
36 GtkWindow *main_window;
37 /* XXX we should really just have a VncConnection */
38 VncDisplay *vnc;
3539 };
3640
3741 #define VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncPrivate))
3842
3943 static void virt_viewer_session_vnc_close(VirtViewerSession* session);
4044 static gboolean virt_viewer_session_vnc_open_fd(VirtViewerSession* session, int fd);
41 static gboolean virt_viewer_session_vnc_open_host(VirtViewerSession* session, char *host, char *port);
45 static gboolean virt_viewer_session_vnc_open_host(VirtViewerSession* session, const gchar *host, const gchar *port, const gchar *tlsport);
46 static gboolean virt_viewer_session_vnc_open_uri(VirtViewerSession* session, const gchar *uri);
4247 static gboolean virt_viewer_session_vnc_channel_open_fd(VirtViewerSession* session,
43 VirtViewerSessionChannel* channel, int fd);
48 VirtViewerSessionChannel* channel, int fd);
4449
4550
4651 static void
4752 virt_viewer_session_vnc_finalize(GObject *obj)
4853 {
49 VirtViewerSessionVnc *vnc = VIRT_VIEWER_SESSION_VNC(obj);
50
51 if (vnc->priv->vnc) {
52 vnc_display_close(vnc->priv->vnc);
53 g_object_unref(vnc->priv->vnc);
54 }
55
56 G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj);
54 VirtViewerSessionVnc *vnc = VIRT_VIEWER_SESSION_VNC(obj);
55
56 if (vnc->priv->vnc) {
57 vnc_display_close(vnc->priv->vnc);
58 g_object_unref(vnc->priv->vnc);
59 }
60 if (vnc->priv->main_window)
61 g_object_unref(vnc->priv->main_window);
62
63 G_OBJECT_CLASS(virt_viewer_session_vnc_parent_class)->finalize(obj);
5764 }
5865
5966
6067 static void
6168 virt_viewer_session_vnc_class_init(VirtViewerSessionVncClass *klass)
6269 {
63 VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
64 GObjectClass *oclass = G_OBJECT_CLASS(klass);
65
66 oclass->finalize = virt_viewer_session_vnc_finalize;
67
68 dclass->close = virt_viewer_session_vnc_close;
69 dclass->open_fd = virt_viewer_session_vnc_open_fd;
70 dclass->open_host = virt_viewer_session_vnc_open_host;
71 dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd;
72
73 g_type_class_add_private(oclass, sizeof(VirtViewerSessionVncPrivate));
70 VirtViewerSessionClass *dclass = VIRT_VIEWER_SESSION_CLASS(klass);
71 GObjectClass *oclass = G_OBJECT_CLASS(klass);
72
73 oclass->finalize = virt_viewer_session_vnc_finalize;
74
75 dclass->close = virt_viewer_session_vnc_close;
76 dclass->open_fd = virt_viewer_session_vnc_open_fd;
77 dclass->open_host = virt_viewer_session_vnc_open_host;
78 dclass->open_uri = virt_viewer_session_vnc_open_uri;
79 dclass->channel_open_fd = virt_viewer_session_vnc_channel_open_fd;
80
81 g_type_class_add_private(klass, sizeof(VirtViewerSessionVncPrivate));
7482 }
7583
7684 static void
7785 virt_viewer_session_vnc_init(VirtViewerSessionVnc *self G_GNUC_UNUSED)
7886 {
79 self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self);
87 self->priv = VIRT_VIEWER_SESSION_VNC_GET_PRIVATE(self);
8088 }
8189
8290 static void
8391 virt_viewer_session_vnc_connected(VncDisplay *vnc G_GNUC_UNUSED,
84 VirtViewerSessionVnc *session)
85 {
86 GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc);
87 g_signal_emit_by_name(session, "session-connected");
88 virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display),
89 VIRT_VIEWER_DISPLAY_SHOW_HINT_READY);
90 virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
91 VIRT_VIEWER_DISPLAY(display));
92 VirtViewerSessionVnc *session)
93 {
94 GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc);
95 g_signal_emit_by_name(session, "session-connected");
96 virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display),
97 VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, TRUE);
98 virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
99 VIRT_VIEWER_DISPLAY(display));
92100 }
93101
94102 static void
95103 virt_viewer_session_vnc_disconnected(VncDisplay *vnc G_GNUC_UNUSED,
96 VirtViewerSessionVnc *session)
97 {
98 g_signal_emit_by_name(session, "session-disconnected");
99 /* TODO perhaps? */
100 /* virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(session->priv->vnc), */
101 /* VIRT_VIEWER_DISPLAY_SHOW_HINT_HIDE); */
104 VirtViewerSessionVnc *session)
105 {
106 GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc);
107 DEBUG_LOG("Disconnected");
108 g_signal_emit_by_name(session, "session-disconnected");
109 virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display),
110 VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, FALSE);
102111 }
103112
104113 static void
105114 virt_viewer_session_vnc_initialized(VncDisplay *vnc G_GNUC_UNUSED,
106 VirtViewerSessionVnc *session)
107 {
108 g_signal_emit_by_name(session, "session-initialized");
115 VirtViewerSessionVnc *session)
116 {
117 g_signal_emit_by_name(session, "session-initialized");
109118 }
110119
111120 static void
112121 virt_viewer_session_vnc_cut_text(VncDisplay *vnc G_GNUC_UNUSED,
113 const char *text,
114 VirtViewerSession *session)
115 {
116 g_signal_emit_by_name(session, "session-cut-text", text);
122 const gchar *text,
123 VirtViewerSession *session)
124 {
125 g_signal_emit_by_name(session, "session-cut-text", text);
117126 }
118127
119128 static void
120129 virt_viewer_session_vnc_bell(VncDisplay *vnc G_GNUC_UNUSED,
121 VirtViewerSession *session)
122 {
123 g_signal_emit_by_name(session, "session-bell");
130 VirtViewerSession *session)
131 {
132 g_signal_emit_by_name(session, "session-bell");
124133 }
125134
126135 static void
127136 virt_viewer_session_vnc_auth_unsupported(VncDisplay *vnc G_GNUC_UNUSED,
128 unsigned int authType,
129 VirtViewerSession *session)
130 {
131 char *msg = g_strdup_printf(_("Unsupported authentication type %d"),
132 authType);
133 g_signal_emit_by_name(session, "session-auth-failed", msg);
134 g_free(msg);
137 unsigned int authType,
138 VirtViewerSession *session)
139 {
140 gchar *msg = g_strdup_printf(_("Unsupported authentication type %d"),
141 authType);
142 g_signal_emit_by_name(session, "session-auth-failed", msg);
143 g_free(msg);
135144 }
136145
137146 static void
138147 virt_viewer_session_vnc_auth_failure(VncDisplay *vnc G_GNUC_UNUSED,
139 const char *reason,
140 VirtViewerSession *session)
141 {
142
143 g_signal_emit_by_name(session, "session-auth-refused", reason);
148 const gchar *reason,
149 VirtViewerSession *session)
150 {
151
152 g_signal_emit_by_name(session, "session-auth-refused", reason);
144153 }
145154
146155
147156
148157 static gboolean
149158 virt_viewer_session_vnc_open_fd(VirtViewerSession* session,
150 int fd)
151 {
152 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
153
154 g_return_val_if_fail(self != NULL, FALSE);
155 g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
156
157 return vnc_display_open_fd(self->priv->vnc, fd);
159 int fd)
160 {
161 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
162
163 g_return_val_if_fail(self != NULL, FALSE);
164 g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
165
166 return vnc_display_open_fd(self->priv->vnc, fd);
158167 }
159168
160169 static gboolean
161170 virt_viewer_session_vnc_channel_open_fd(VirtViewerSession* session G_GNUC_UNUSED,
162 VirtViewerSessionChannel* channel G_GNUC_UNUSED,
163 int fd G_GNUC_UNUSED)
164 {
165 g_warning("channel_open_fd is not supported by VNC");
166 return FALSE;
171 VirtViewerSessionChannel* channel G_GNUC_UNUSED,
172 int fd G_GNUC_UNUSED)
173 {
174 g_warning("channel_open_fd is not supported by VNC");
175 return FALSE;
167176 }
168177
169178 static gboolean
170179 virt_viewer_session_vnc_open_host(VirtViewerSession* session,
171 char *host,
172 char *port)
173 {
174 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
175
176 g_return_val_if_fail(self != NULL, FALSE);
177 g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
178
179 return vnc_display_open_host(self->priv->vnc, host, port);
180 }
180 const gchar *host,
181 const gchar *port,
182 const gchar *tlsport G_GNUC_UNUSED)
183 {
184 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
185
186 g_return_val_if_fail(self != NULL, FALSE);
187 g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
188
189 return vnc_display_open_host(self->priv->vnc, host, port);
190 }
191
192 static gboolean
193 virt_viewer_session_vnc_open_uri(VirtViewerSession* session,
194 const gchar *uristr)
195 {
196 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
197 xmlURIPtr uri = NULL;
198 gchar *portstr;
199 gchar *hoststr = NULL;
200 gboolean ret;
201
202 g_return_val_if_fail(self != NULL, FALSE);
203 g_return_val_if_fail(self->priv->vnc != NULL, FALSE);
204
205 if (!(uri = xmlParseURI(uristr)))
206 return FALSE;
207
208 portstr = g_strdup_printf("%d", uri->port);
209
210 if (uri->server) {
211 if (uri->server[0] == '[') {
212 gchar *tmp;
213 hoststr = g_strdup(uri->server + 1);
214 if ((tmp = strchr(hoststr, ']')))
215 *tmp = '\0';
216 } else {
217 hoststr = g_strdup(uri->server);
218 }
219 }
220
221 ret = vnc_display_open_host(self->priv->vnc,
222 hoststr,
223 portstr);
224 g_free(portstr);
225 g_free(hoststr);
226 xmlFreeURI(uri);
227 return ret;
228 }
229
230
231 static void
232 virt_viewer_session_vnc_auth_credential(GtkWidget *src,
233 GValueArray *credList,
234 VirtViewerSession *session)
235 {
236 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
237
238 virt_viewer_auth_vnc_credentials(self->priv->main_window,
239 src,
240 credList,
241 NULL);
242 }
243
181244
182245 static void
183246 virt_viewer_session_vnc_close(VirtViewerSession* session)
184247 {
185 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
186
187 g_return_if_fail(self != NULL);
188
189 if (self->priv->vnc != NULL) {
190 virt_viewer_session_clear_displays(session);
191 vnc_display_close(self->priv->vnc);
192 g_object_unref(self->priv->vnc);
193 }
194
195 self->priv->vnc = VNC_DISPLAY(vnc_display_new());
196
197 g_signal_connect(self->priv->vnc, "vnc-connected",
198 G_CALLBACK(virt_viewer_session_vnc_connected), session);
199 g_signal_connect(self->priv->vnc, "vnc-initialized",
200 G_CALLBACK(virt_viewer_session_vnc_initialized), session);
201 g_signal_connect(self->priv->vnc, "vnc-disconnected",
202 G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
203
204 g_signal_connect(self->priv->vnc, "vnc-bell",
205 G_CALLBACK(virt_viewer_session_vnc_bell), session);
206 g_signal_connect(self->priv->vnc, "vnc-auth-failure",
207 G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
208 g_signal_connect(self->priv->vnc, "vnc-auth-unsupported",
209 G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
210 g_signal_connect(self->priv->vnc, "vnc-server-cut-text",
211 G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
212
213 g_signal_connect(self->priv->vnc, "vnc-auth-credential",
214 G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL);
215
216 }
248 VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
249
250 g_return_if_fail(self != NULL);
251
252 DEBUG_LOG("close vnc=%p", self->priv->vnc);
253 if (self->priv->vnc != NULL) {
254 virt_viewer_session_clear_displays(session);
255 vnc_display_close(self->priv->vnc);
256 g_object_unref(self->priv->vnc);
257 }
258
259 self->priv->vnc = VNC_DISPLAY(vnc_display_new());
260 g_object_ref_sink(self->priv->vnc);
261
262 g_signal_connect(self->priv->vnc, "vnc-connected",
263 G_CALLBACK(virt_viewer_session_vnc_connected), session);
264 g_signal_connect(self->priv->vnc, "vnc-initialized",
265 G_CALLBACK(virt_viewer_session_vnc_initialized), session);
266 g_signal_connect(self->priv->vnc, "vnc-disconnected",
267 G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
268
269 g_signal_connect(self->priv->vnc, "vnc-bell",
270 G_CALLBACK(virt_viewer_session_vnc_bell), session);
271 g_signal_connect(self->priv->vnc, "vnc-auth-failure",
272 G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
273 g_signal_connect(self->priv->vnc, "vnc-auth-unsupported",
274 G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
275 g_signal_connect(self->priv->vnc, "vnc-server-cut-text",
276 G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
277
278 g_signal_connect(self->priv->vnc, "vnc-auth-credential",
279 G_CALLBACK(virt_viewer_session_vnc_auth_credential), session);
280
281 }
217282
218283 VirtViewerSession *
219 virt_viewer_session_vnc_new(void)
220 {
221 VirtViewerSessionVnc *session;
222
223 session = g_object_new(VIRT_VIEWER_TYPE_SESSION_VNC, NULL);
224
225 session->priv->vnc = VNC_DISPLAY(vnc_display_new());
226
227 g_signal_connect(session->priv->vnc, "vnc-connected",
228 G_CALLBACK(virt_viewer_session_vnc_connected), session);
229 g_signal_connect(session->priv->vnc, "vnc-initialized",
230 G_CALLBACK(virt_viewer_session_vnc_initialized), session);
231 g_signal_connect(session->priv->vnc, "vnc-disconnected",
232 G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
233
234 g_signal_connect(session->priv->vnc, "vnc-bell",
235 G_CALLBACK(virt_viewer_session_vnc_bell), session);
236 g_signal_connect(session->priv->vnc, "vnc-auth-failure",
237 G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
238 g_signal_connect(session->priv->vnc, "vnc-auth-unsupported",
239 G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
240 g_signal_connect(session->priv->vnc, "vnc-server-cut-text",
241 G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
242
243 g_signal_connect(session->priv->vnc, "vnc-auth-credential",
244 G_CALLBACK(virt_viewer_auth_vnc_credentials), NULL);
245
246 return VIRT_VIEWER_SESSION(session);
247 }
248
249
250
284 virt_viewer_session_vnc_new(GtkWindow *main_window)
285 {
286 VirtViewerSessionVnc *session;
287
288 session = g_object_new(VIRT_VIEWER_TYPE_SESSION_VNC, NULL);
289
290 session->priv->vnc = VNC_DISPLAY(vnc_display_new());
291 g_object_ref_sink(session->priv->vnc);
292 session->priv->main_window = g_object_ref(main_window);
293
294 g_signal_connect(session->priv->vnc, "vnc-connected",
295 G_CALLBACK(virt_viewer_session_vnc_connected), session);
296 g_signal_connect(session->priv->vnc, "vnc-initialized",
297 G_CALLBACK(virt_viewer_session_vnc_initialized), session);
298 g_signal_connect(session->priv->vnc, "vnc-disconnected",
299 G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
300
301 g_signal_connect(session->priv->vnc, "vnc-bell",
302 G_CALLBACK(virt_viewer_session_vnc_bell), session);
303 g_signal_connect(session->priv->vnc, "vnc-auth-failure",
304 G_CALLBACK(virt_viewer_session_vnc_auth_failure), session);
305 g_signal_connect(session->priv->vnc, "vnc-auth-unsupported",
306 G_CALLBACK(virt_viewer_session_vnc_auth_unsupported), session);
307 g_signal_connect(session->priv->vnc, "vnc-server-cut-text",
308 G_CALLBACK(virt_viewer_session_vnc_cut_text), session);
309
310 g_signal_connect(session->priv->vnc, "vnc-auth-credential",
311 G_CALLBACK(virt_viewer_session_vnc_auth_credential), session);
312
313 return VIRT_VIEWER_SESSION(session);
314 }
251315
252316 /*
253317 * Local variables:
254 * c-indent-level: 8
255 * c-basic-offset: 8
256 * tab-width: 8
318 * c-indent-level: 4
319 * c-basic-offset: 4
320 * indent-tabs-mode: nil
257321 * End:
258322 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3232
3333 #define VIRT_VIEWER_TYPE_SESSION_VNC virt_viewer_session_vnc_get_type()
3434
35 #define VIRT_VIEWER_SESSION_VNC(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVnc))
35 #define VIRT_VIEWER_SESSION_VNC(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVnc))
3737
38 #define VIRT_VIEWER_SESSION_VNC_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
38 #define VIRT_VIEWER_SESSION_VNC_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
4040
41 #define VIRT_VIEWER_IS_SESSION_VNC(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_VNC))
41 #define VIRT_VIEWER_IS_SESSION_VNC(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION_VNC))
4343
44 #define VIRT_VIEWER_IS_SESSION_VNC_CLASS(klass) \
45 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_VNC))
44 #define VIRT_VIEWER_IS_SESSION_VNC_CLASS(klass) \
45 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION_VNC))
4646
47 #define VIRT_VIEWER_SESSION_VNC_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
47 #define VIRT_VIEWER_SESSION_VNC_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION_VNC, VirtViewerSessionVncClass))
4949
5050 typedef struct _VirtViewerSessionVnc VirtViewerSessionVnc;
5151 typedef struct _VirtViewerSessionVncClass VirtViewerSessionVncClass;
5252 typedef struct _VirtViewerSessionVncPrivate VirtViewerSessionVncPrivate;
5353
5454 struct _VirtViewerSessionVnc {
55 VirtViewerSession parent;
55 VirtViewerSession parent;
5656
57 VirtViewerSessionVncPrivate *priv;
57 VirtViewerSessionVncPrivate *priv;
5858 };
5959
6060 struct _VirtViewerSessionVncClass {
61 VirtViewerSessionClass parent_class;
61 VirtViewerSessionClass parent_class;
6262 };
6363
6464 GType virt_viewer_session_vnc_get_type(void);
6565
66 VirtViewerSession *virt_viewer_session_vnc_new(void);
66 VirtViewerSession *virt_viewer_session_vnc_new(GtkWindow *main_window);
6767
6868 G_END_DECLS
6969
7070 #endif /* _VIRT_VIEWER_SESSION_VNC_H */
71
7271 /*
7372 * Local variables:
74 * c-indent-level: 8
75 * c-basic-offset: 8
76 * tab-width: 8
73 * c-indent-level: 4
74 * c-basic-offset: 4
75 * indent-tabs-mode: nil
7776 * End:
7877 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3333
3434 struct _VirtViewerSessionPrivate
3535 {
36 GList *displays;
36 GList *displays;
37 VirtViewerApp *app;
38 gboolean auto_usbredir;
39 gchar *uri;
3740 };
3841
3942 G_DEFINE_ABSTRACT_TYPE(VirtViewerSession, virt_viewer_session, G_TYPE_OBJECT)
43
44 enum {
45 PROP_0,
46
47 PROP_APP,
48 PROP_AUTO_USBREDIR,
49 };
4050
4151 static void
4252 virt_viewer_session_finalize(GObject *obj)
4353 {
44 VirtViewerSession *session = VIRT_VIEWER_SESSION(obj);
45 GList *tmp = session->priv->displays;
46
47 while (tmp) {
48 g_object_unref(tmp->data);
49 tmp = tmp->next;
50 }
51 g_list_free(session->priv->displays);
52
53 G_OBJECT_CLASS(virt_viewer_session_parent_class)->finalize(obj);
54 VirtViewerSession *session = VIRT_VIEWER_SESSION(obj);
55 GList *tmp = session->priv->displays;
56
57 while (tmp) {
58 g_object_unref(tmp->data);
59 tmp = tmp->next;
60 }
61 g_list_free(session->priv->displays);
62
63 g_free(session->priv->uri);
64
65 G_OBJECT_CLASS(virt_viewer_session_parent_class)->finalize(obj);
66 }
67
68 static void
69 virt_viewer_session_set_property(GObject *object,
70 guint prop_id,
71 const GValue *value,
72 GParamSpec *pspec)
73 {
74 VirtViewerSession *self = VIRT_VIEWER_SESSION(object);
75
76 switch (prop_id) {
77 case PROP_AUTO_USBREDIR:
78 virt_viewer_session_set_auto_usbredir(self, g_value_get_boolean(value));
79 break;
80
81 case PROP_APP:
82 self->priv->app = g_value_get_object(value);
83 break;
84
85 default:
86 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
87 break;
88 }
89 }
90
91 static void
92 virt_viewer_session_get_property(GObject *object,
93 guint prop_id,
94 GValue *value,
95 GParamSpec *pspec)
96 {
97 VirtViewerSession *self = VIRT_VIEWER_SESSION(object);
98
99 switch (prop_id) {
100 case PROP_AUTO_USBREDIR:
101 g_value_set_boolean(value, virt_viewer_session_get_auto_usbredir(self));
102 break;
103
104 case PROP_APP:
105 g_value_set_object(value, self->priv->app);
106 break;
107
108 default:
109 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
110 break;
111 }
54112 }
55113
56114 static void
57115 virt_viewer_session_class_init(VirtViewerSessionClass *class)
58116 {
59 GObjectClass *object_class = G_OBJECT_CLASS(class);
60
61 object_class->finalize = virt_viewer_session_finalize;
62
63 g_signal_new("session-connected",
64 G_OBJECT_CLASS_TYPE(object_class),
65 G_SIGNAL_RUN_FIRST,
66 G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected),
67 NULL, NULL,
68 g_cclosure_marshal_VOID__VOID,
69 G_TYPE_NONE,
70 0);
71
72 g_signal_new("session-initialized",
73 G_OBJECT_CLASS_TYPE(object_class),
74 G_SIGNAL_RUN_FIRST,
75 G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized),
76 NULL, NULL,
77 g_cclosure_marshal_VOID__VOID,
78 G_TYPE_NONE,
79 0);
80
81 g_signal_new("session-disconnected",
82 G_OBJECT_CLASS_TYPE(object_class),
83 G_SIGNAL_RUN_FIRST,
84 G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected),
85 NULL, NULL,
86 g_cclosure_marshal_VOID__VOID,
87 G_TYPE_NONE,
88 0);
89
90 g_signal_new("session-channel-open",
91 G_OBJECT_CLASS_TYPE(object_class),
92 G_SIGNAL_RUN_FIRST,
93 G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open),
94 NULL, NULL,
95 g_cclosure_marshal_VOID__OBJECT,
96 G_TYPE_NONE,
97 1,
98 G_TYPE_OBJECT);
99
100 g_signal_new("session-auth-refused",
101 G_OBJECT_CLASS_TYPE(object_class),
102 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
103 G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused),
104 NULL,
105 NULL,
106 g_cclosure_marshal_VOID__STRING,
107 G_TYPE_NONE,
108 1,
109 G_TYPE_STRING);
110
111 g_signal_new("session-auth-failed",
112 G_OBJECT_CLASS_TYPE(object_class),
113 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
114 G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_failed),
115 NULL,
116 NULL,
117 g_cclosure_marshal_VOID__STRING,
118 G_TYPE_NONE,
119 1,
120 G_TYPE_STRING);
121
122
123 g_signal_new("session-display-added",
124 G_OBJECT_CLASS_TYPE(object_class),
125 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
126 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added),
127 NULL,
128 NULL,
129 g_cclosure_marshal_VOID__OBJECT,
130 G_TYPE_NONE,
131 1,
132 VIRT_VIEWER_TYPE_DISPLAY);
133
134 g_signal_new("session-display-removed",
135 G_OBJECT_CLASS_TYPE(object_class),
136 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
137 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed),
138 NULL,
139 NULL,
140 g_cclosure_marshal_VOID__OBJECT,
141 G_TYPE_NONE,
142 1,
143 VIRT_VIEWER_TYPE_DISPLAY);
144
145 g_signal_new("session-cut-text",
146 G_OBJECT_CLASS_TYPE(object_class),
147 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
148 G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text),
149 NULL,
150 NULL,
151 g_cclosure_marshal_VOID__STRING,
152 G_TYPE_NONE,
153 1,
154 G_TYPE_STRING);
155
156 g_signal_new("session-bell",
157 G_OBJECT_CLASS_TYPE(object_class),
158 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
159 G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell),
160 NULL,
161 NULL,
162 g_cclosure_marshal_VOID__VOID,
163 G_TYPE_NONE,
164 0);
165
166 g_type_class_add_private(object_class, sizeof(VirtViewerSessionPrivate));
117 GObjectClass *object_class = G_OBJECT_CLASS(class);
118
119 object_class->set_property = virt_viewer_session_set_property;
120 object_class->get_property = virt_viewer_session_get_property;
121 object_class->finalize = virt_viewer_session_finalize;
122
123 g_object_class_install_property(object_class,
124 PROP_AUTO_USBREDIR,
125 g_param_spec_boolean("auto-usbredir",
126 "USB redirection",
127 "USB redirection",
128 TRUE,
129 G_PARAM_READWRITE |
130 G_PARAM_CONSTRUCT |
131 G_PARAM_STATIC_STRINGS));
132
133 g_object_class_install_property(object_class,
134 PROP_APP,
135 g_param_spec_object("app",
136 "VirtViewerApp",
137 "VirtViewerApp",
138 VIRT_VIEWER_TYPE_APP,
139 G_PARAM_READWRITE |
140 G_PARAM_CONSTRUCT |
141 G_PARAM_STATIC_STRINGS));
142
143 g_signal_new("session-connected",
144 G_OBJECT_CLASS_TYPE(object_class),
145 G_SIGNAL_RUN_FIRST,
146 G_STRUCT_OFFSET(VirtViewerSessionClass, session_connected),
147 NULL, NULL,
148 g_cclosure_marshal_VOID__VOID,
149 G_TYPE_NONE,
150 0);
151
152 g_signal_new("session-initialized",
153 G_OBJECT_CLASS_TYPE(object_class),
154 G_SIGNAL_RUN_FIRST,
155 G_STRUCT_OFFSET(VirtViewerSessionClass, session_initialized),
156 NULL, NULL,
157 g_cclosure_marshal_VOID__VOID,
158 G_TYPE_NONE,
159 0);
160
161 g_signal_new("session-disconnected",
162 G_OBJECT_CLASS_TYPE(object_class),
163 G_SIGNAL_RUN_FIRST,
164 G_STRUCT_OFFSET(VirtViewerSessionClass, session_disconnected),
165 NULL, NULL,
166 g_cclosure_marshal_VOID__VOID,
167 G_TYPE_NONE,
168 0);
169
170 g_signal_new("session-channel-open",
171 G_OBJECT_CLASS_TYPE(object_class),
172 G_SIGNAL_RUN_FIRST,
173 G_STRUCT_OFFSET(VirtViewerSessionClass, session_channel_open),
174 NULL, NULL,
175 g_cclosure_marshal_VOID__OBJECT,
176 G_TYPE_NONE,
177 1,
178 G_TYPE_OBJECT);
179
180 g_signal_new("session-auth-refused",
181 G_OBJECT_CLASS_TYPE(object_class),
182 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
183 G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_refused),
184 NULL,
185 NULL,
186 g_cclosure_marshal_VOID__STRING,
187 G_TYPE_NONE,
188 1,
189 G_TYPE_STRING);
190
191 g_signal_new("session-auth-failed",
192 G_OBJECT_CLASS_TYPE(object_class),
193 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
194 G_STRUCT_OFFSET(VirtViewerSessionClass, session_auth_failed),
195 NULL,
196 NULL,
197 g_cclosure_marshal_VOID__STRING,
198 G_TYPE_NONE,
199 1,
200 G_TYPE_STRING);
201
202 g_signal_new("session-usb-failed",
203 G_OBJECT_CLASS_TYPE(object_class),
204 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
205 G_STRUCT_OFFSET(VirtViewerSessionClass, session_usb_failed),
206 NULL,
207 NULL,
208 g_cclosure_marshal_VOID__STRING,
209 G_TYPE_NONE,
210 1,
211 G_TYPE_STRING);
212
213 g_signal_new("session-display-added",
214 G_OBJECT_CLASS_TYPE(object_class),
215 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
216 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_added),
217 NULL,
218 NULL,
219 g_cclosure_marshal_VOID__OBJECT,
220 G_TYPE_NONE,
221 1,
222 VIRT_VIEWER_TYPE_DISPLAY);
223
224 g_signal_new("session-display-removed",
225 G_OBJECT_CLASS_TYPE(object_class),
226 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
227 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_removed),
228 NULL,
229 NULL,
230 g_cclosure_marshal_VOID__OBJECT,
231 G_TYPE_NONE,
232 1,
233 VIRT_VIEWER_TYPE_DISPLAY);
234
235 g_signal_new("session-display-updated",
236 G_OBJECT_CLASS_TYPE(object_class),
237 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
238 G_STRUCT_OFFSET(VirtViewerSessionClass, session_display_updated),
239 NULL,
240 NULL,
241 g_cclosure_marshal_VOID__VOID,
242 G_TYPE_NONE,
243 0);
244
245 g_signal_new("session-cut-text",
246 G_OBJECT_CLASS_TYPE(object_class),
247 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
248 G_STRUCT_OFFSET(VirtViewerSessionClass, session_cut_text),
249 NULL,
250 NULL,
251 g_cclosure_marshal_VOID__STRING,
252 G_TYPE_NONE,
253 1,
254 G_TYPE_STRING);
255
256 g_signal_new("session-bell",
257 G_OBJECT_CLASS_TYPE(object_class),
258 G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
259 G_STRUCT_OFFSET(VirtViewerSessionClass, session_bell),
260 NULL,
261 NULL,
262 g_cclosure_marshal_VOID__VOID,
263 G_TYPE_NONE,
264 0);
265
266 g_signal_new("session-cancelled",
267 G_OBJECT_CLASS_TYPE(object_class),
268 G_SIGNAL_RUN_FIRST,
269 G_STRUCT_OFFSET(VirtViewerSessionClass, session_cancelled),
270 NULL, NULL,
271 g_cclosure_marshal_VOID__VOID,
272 G_TYPE_NONE,
273 0);
274
275 g_type_class_add_private(class, sizeof(VirtViewerSessionPrivate));
167276 }
168277
169278 static void
170279 virt_viewer_session_init(VirtViewerSession *session)
171280 {
172 session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session);
281 session->priv = VIRT_VIEWER_SESSION_GET_PRIVATE(session);
173282 }
174283
175284 GtkWidget*
176285 virt_viewer_session_new(void)
177286 {
178 return g_object_new(VIRT_VIEWER_TYPE_SESSION, NULL);
287 return g_object_new(VIRT_VIEWER_TYPE_SESSION, NULL);
179288 }
180289
181290
182291 void virt_viewer_session_add_display(VirtViewerSession *session,
183 VirtViewerDisplay *display)
184 {
185 session->priv->displays = g_list_append(session->priv->displays, display);
186 g_object_ref(display);
187 g_signal_emit_by_name(session, "session-display-added", display);
292 VirtViewerDisplay *display)
293 {
294 if (g_list_find(session->priv->displays, display))
295 return;
296
297 session->priv->displays = g_list_append(session->priv->displays, display);
298 g_object_ref(display);
299 g_signal_emit_by_name(session, "session-display-added", display);
188300 }
189301
190302
191303 void virt_viewer_session_remove_display(VirtViewerSession *session,
192 VirtViewerDisplay *display)
193 {
194 if (!g_list_find(session->priv->displays, display))
195 return;
196
197 session->priv->displays = g_list_remove(session->priv->displays, display);
198 g_signal_emit_by_name(session, "session-display-removed", display);
199 g_object_unref(display);
304 VirtViewerDisplay *display)
305 {
306 if (!g_list_find(session->priv->displays, display))
307 return;
308
309 session->priv->displays = g_list_remove(session->priv->displays, display);
310 g_signal_emit_by_name(session, "session-display-removed", display);
311 g_object_unref(display);
200312 }
201313
202314 void virt_viewer_session_clear_displays(VirtViewerSession *session)
203315 {
204 GList *tmp = session->priv->displays;
205
206 while (tmp) {
207 g_signal_emit_by_name(session, "session-display-removed", tmp->data);
208 g_object_unref(tmp->data);
209 tmp = tmp->next;
210 }
211 g_list_free(session->priv->displays);
212 session->priv->displays = NULL;
316 GList *tmp = session->priv->displays;
317
318 while (tmp) {
319 VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(tmp->data);
320 g_signal_emit_by_name(session, "session-display-removed", display);
321 virt_viewer_display_close(display);
322 g_object_unref(display);
323 tmp = tmp->next;
324 }
325 g_list_free(session->priv->displays);
326 session->priv->displays = NULL;
213327 }
214328
215329
216330
217331 void virt_viewer_session_close(VirtViewerSession *session)
218332 {
219 g_return_if_fail(VIRT_VIEWER_IS_SESSION(session));
220
221 VIRT_VIEWER_SESSION_GET_CLASS(session)->close(session);
333 g_return_if_fail(VIRT_VIEWER_IS_SESSION(session));
334
335 VIRT_VIEWER_SESSION_GET_CLASS(session)->close(session);
222336 }
223337
224338 gboolean virt_viewer_session_open_fd(VirtViewerSession *session, int fd)
225339 {
226 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
227
228 return VIRT_VIEWER_SESSION_GET_CLASS(session)->open_fd(session, fd);
229 }
230
231 gboolean virt_viewer_session_open_host(VirtViewerSession *session, char *host, char *port)
232 {
233 VirtViewerSessionClass *klass;
234
235 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
236
237 klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
238 return klass->open_host(session, host, port);
340 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
341
342 return VIRT_VIEWER_SESSION_GET_CLASS(session)->open_fd(session, fd);
343 }
344
345 gboolean virt_viewer_session_open_host(VirtViewerSession *session, const gchar *host, const gchar *port, const gchar *tlsport)
346 {
347 VirtViewerSessionClass *klass;
348
349 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
350
351 klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
352 return klass->open_host(session, host, port, tlsport);
353 }
354
355 gboolean virt_viewer_session_open_uri(VirtViewerSession *session, const gchar *uri)
356 {
357 VirtViewerSessionClass *klass;
358
359 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
360
361 klass = VIRT_VIEWER_SESSION_GET_CLASS(session);
362 g_return_val_if_fail(klass->open_uri != NULL, FALSE);
363
364 session->priv->uri = g_strdup(uri);
365
366 return klass->open_uri(session, uri);
239367 }
240368
241369 gboolean virt_viewer_session_channel_open_fd(VirtViewerSession *session,
242 VirtViewerSessionChannel *channel, int fd)
243 {
244 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
245
246 return VIRT_VIEWER_SESSION_GET_CLASS(session)->channel_open_fd(session, channel, fd);
247 }
370 VirtViewerSessionChannel *channel, int fd)
371 {
372 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(session), FALSE);
373
374 return VIRT_VIEWER_SESSION_GET_CLASS(session)->channel_open_fd(session, channel, fd);
375 }
376
377 void virt_viewer_session_set_auto_usbredir(VirtViewerSession *self, gboolean auto_usbredir)
378 {
379 g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
380
381 if (self->priv->auto_usbredir == auto_usbredir)
382 return;
383
384 self->priv->auto_usbredir = auto_usbredir;
385 g_object_notify(G_OBJECT(self), "auto-usbredir");
386 }
387
388 gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession *self)
389 {
390 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
391
392 return self->priv->auto_usbredir;
393 }
394
395 gboolean virt_viewer_session_has_usb(VirtViewerSession *self)
396 {
397 VirtViewerSessionClass *klass;
398
399 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
400
401 klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
402 if (klass->has_usb == NULL)
403 return FALSE;
404
405 return klass->has_usb(self);
406 }
407
408 void virt_viewer_session_usb_device_selection(VirtViewerSession *self,
409 GtkWindow *parent)
410 {
411 VirtViewerSessionClass *klass;
412
413 g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
414
415 klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
416 g_return_if_fail(klass->usb_device_selection != NULL);
417
418 klass->usb_device_selection(self, parent);
419 }
420
421 void virt_viewer_session_smartcard_insert(VirtViewerSession *self)
422 {
423 VirtViewerSessionClass *klass;
424
425 g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
426
427 klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
428 if (klass->smartcard_insert == NULL) {
429 g_debug("No session smartcard support");
430 return;
431 }
432
433 klass->smartcard_insert(self);
434 }
435
436 void virt_viewer_session_smartcard_remove(VirtViewerSession *self)
437 {
438 VirtViewerSessionClass *klass;
439
440 g_return_if_fail(VIRT_VIEWER_IS_SESSION(self));
441
442 klass = VIRT_VIEWER_SESSION_GET_CLASS(self);
443 if (klass->smartcard_remove == NULL) {
444 g_debug("No session smartcard support");
445 return;
446 }
447
448 klass->smartcard_remove(self);
449 }
450
451 VirtViewerApp* virt_viewer_session_get_app(VirtViewerSession *self)
452 {
453 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), NULL);
454
455 return self->priv->app;
456 }
457
458 gchar* virt_viewer_session_get_uri(VirtViewerSession *self)
459 {
460 g_return_val_if_fail(VIRT_VIEWER_IS_SESSION(self), FALSE);
461
462 return g_strdup(self->priv->uri);
463 }
464
248465
249466 /*
250467 * Local variables:
251 * c-indent-level: 8
252 * c-basic-offset: 8
253 * tab-width: 8
468 * c-indent-level: 4
469 * c-basic-offset: 4
470 * indent-tabs-mode: nil
254471 * End:
255472 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
2525
2626 #include <gtk/gtk.h>
2727
28 #include "virt-viewer-app.h"
2829 #include "virt-viewer-display.h"
2930
3031 G_BEGIN_DECLS
3132
3233 #define VIRT_VIEWER_TYPE_SESSION virt_viewer_session_get_type()
3334
34 #define VIRT_VIEWER_SESSION(obj) \
35 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSession))
35 #define VIRT_VIEWER_SESSION(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSession))
3637
37 #define VIRT_VIEWER_SESSION_CLASS(klass) \
38 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
38 #define VIRT_VIEWER_SESSION_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
3940
4041 #define VIRT_VIEWER_IS_SESSION(obj) \
41 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION))
42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_SESSION))
4243
4344 #define VIRT_VIEWER_IS_SESSION_CLASS(klass) \
44 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION))
45 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_SESSION))
4546
46 #define VIRT_VIEWER_SESSION_GET_CLASS(obj) \
47 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
47 #define VIRT_VIEWER_SESSION_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_SESSION, VirtViewerSessionClass))
4849
49 typedef struct _VirtViewerSession VirtViewerSession;
50 typedef struct _VirtViewerSessionClass VirtViewerSessionClass;
5150 typedef struct _VirtViewerSessionPrivate VirtViewerSessionPrivate;
5251
5352 typedef struct _VirtViewerSessionChannel VirtViewerSessionChannel;
5554
5655 /* perhaps this become an interface, and be pushed in gtkvnc and spice? */
5756 struct _VirtViewerSession {
58 GObject parent;
57 GObject parent;
5958
60 VirtViewerSessionPrivate *priv;
59 VirtViewerSessionPrivate *priv;
6160 };
6261
6362 struct _VirtViewerSessionClass {
64 GObjectClass parent_class;
63 GObjectClass parent_class;
6564
66 /* virtual methods */
67 void (* close) (VirtViewerSession* session);
68 gboolean (* open_fd) (VirtViewerSession* session, int fd);
69 gboolean (* open_host) (VirtViewerSession* session, char *host, char *port);
70 gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd);
65 /* virtual methods */
66 void (* close) (VirtViewerSession* session);
67 gboolean (* open_fd) (VirtViewerSession* session, int fd);
68 gboolean (* open_host) (VirtViewerSession* session, const gchar *host, const gchar *port, const gchar *tlsport);
69 gboolean (* open_uri) (VirtViewerSession* session, const gchar *uri);
70 gboolean (* channel_open_fd) (VirtViewerSession* session, VirtViewerSessionChannel *channel, int fd);
71 gboolean (* has_usb) (VirtViewerSession* session);
72 void (* usb_device_selection) (VirtViewerSession* session, GtkWindow *parent);
73 void (* smartcard_insert) (VirtViewerSession* session);
74 void (* smartcard_remove) (VirtViewerSession* session);
7175
72 /* signals */
73 void (*session_connected)(VirtViewerSession *session);
74 void (*session_initialized)(VirtViewerSession *session);
75 void (*session_disconnected)(VirtViewerSession *session);
76 void (*session_auth_refused)(VirtViewerSession *session, const char *msg);
77 void (*session_auth_failed)(VirtViewerSession *session, const char *msg);
76 /* signals */
77 void (*session_connected)(VirtViewerSession *session);
78 void (*session_initialized)(VirtViewerSession *session);
79 void (*session_disconnected)(VirtViewerSession *session);
80 void (*session_auth_refused)(VirtViewerSession *session, const gchar *msg);
81 void (*session_auth_failed)(VirtViewerSession *session, const gchar *msg);
82 void (*session_usb_failed)(VirtViewerSession *session, const gchar *msg);
7883
79 void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel);
84 void (*session_channel_open)(VirtViewerSession *session, VirtViewerSessionChannel *channel);
8085
81 void (*session_display_added)(VirtViewerSession *session,
82 VirtViewerDisplay *display);
83 void (*session_display_removed)(VirtViewerSession *session,
84 VirtViewerDisplay *display);
86 void (*session_display_added)(VirtViewerSession *session,
87 VirtViewerDisplay *display);
88 void (*session_display_removed)(VirtViewerSession *session,
89 VirtViewerDisplay *display);
90 void (*session_display_updated)(VirtViewerSession *session);
8591
86 void (*session_cut_text)(VirtViewerSession *session, const char *str);
87 void (*session_bell)(VirtViewerSession *session);
92 void (*session_cut_text)(VirtViewerSession *session, const gchar *str);
93 void (*session_bell)(VirtViewerSession *session);
94 void (*session_cancelled)(VirtViewerSession *session);
8895 };
8996
9097 GType virt_viewer_session_get_type(void);
9299 GtkWidget *virt_viewer_session_new(void);
93100
94101 void virt_viewer_session_add_display(VirtViewerSession *session,
95 VirtViewerDisplay *display);
102 VirtViewerDisplay *display);
96103 void virt_viewer_session_remove_display(VirtViewerSession *session,
97 VirtViewerDisplay *display);
104 VirtViewerDisplay *display);
98105 void virt_viewer_session_clear_displays(VirtViewerSession *session);
99106
100107 void virt_viewer_session_close(VirtViewerSession* session);
101108 gboolean virt_viewer_session_open_fd(VirtViewerSession* session, int fd);
102 gboolean virt_viewer_session_open_host(VirtViewerSession* session, char *host, char *port);
109 gboolean virt_viewer_session_open_host(VirtViewerSession* session, const gchar *host, const gchar *port, const gchar *tlsport);
103110 GObject* virt_viewer_session_get(VirtViewerSession* session);
104111 gboolean virt_viewer_session_channel_open_fd(VirtViewerSession* session,
105 VirtViewerSessionChannel* channel, int fd);
112 VirtViewerSessionChannel* channel, int fd);
113 gboolean virt_viewer_session_open_uri(VirtViewerSession *session, const gchar *uri);
114
115 void virt_viewer_session_set_auto_usbredir(VirtViewerSession* session, gboolean auto_usbredir);
116 gboolean virt_viewer_session_get_auto_usbredir(VirtViewerSession* session);
117
118 gboolean virt_viewer_session_has_usb(VirtViewerSession *self);
119 void virt_viewer_session_usb_device_selection(VirtViewerSession *self, GtkWindow *parent);
120 void virt_viewer_session_smartcard_insert(VirtViewerSession *self);
121 void virt_viewer_session_smartcard_remove(VirtViewerSession *self);
122 VirtViewerApp* virt_viewer_session_get_app(VirtViewerSession *self);
123 gchar* virt_viewer_session_get_uri(VirtViewerSession *self);
106124
107125 G_END_DECLS
108126
109127 #endif /* _VIRT_VIEWER_SESSION_H */
128
110129 /*
111130 * Local variables:
112 * c-indent-level: 8
113 * c-basic-offset: 8
114 * tab-width: 8
131 * c-indent-level: 4
132 * c-basic-offset: 4
133 * indent-tabs-mode: nil
115134 * End:
116135 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 *
66 * This program is free software; you can redistribute it and/or modify
77 * it under the terms of the GNU General Public License as published by
3333
3434 GtkBuilder *virt_viewer_util_load_ui(const char *name)
3535 {
36 struct stat sb;
37 GtkBuilder *builder;
38 GError *error = NULL;
39
40 builder = gtk_builder_new();
41 if (stat(name, &sb) >= 0) {
42 gtk_builder_add_from_file(builder, name, &error);
43 } else {
44 gchar *path = g_strdup_printf("%s/%s", BUILDER_XML_DIR, name);
45 gtk_builder_add_from_file(builder, path, &error);
46 g_free(path);
47 }
48
49 if (error)
50 g_error("Cannot load UI description %s: %s", name,
51 error->message);
52
53 return builder;
36 struct stat sb;
37 GtkBuilder *builder;
38 GError *error = NULL;
39
40 builder = gtk_builder_new();
41 if (stat(name, &sb) >= 0) {
42 gtk_builder_add_from_file(builder, name, &error);
43 } else {
44 const gchar * const * dirs = g_get_system_data_dirs();
45 g_return_val_if_fail(dirs != NULL, NULL);
46
47 while (dirs[0] != NULL) {
48 gchar *path = g_build_filename(dirs[0], PACKAGE, "ui", name, NULL);
49 if (gtk_builder_add_from_file(builder, path, NULL) != 0) {
50 g_free(path);
51 break;
52 }
53 g_free(path);
54 dirs++;
55 }
56 if (dirs[0] == NULL)
57 goto failed;
58 }
59
60 if (error) {
61 g_error("Cannot load UI description %s: %s", name,
62 error->message);
63 g_clear_error(&error);
64 goto failed;
65 }
66
67 return builder;
68 failed:
69 g_error("failed to find UI description file");
70 g_object_unref(builder);
71 return NULL;
5472 }
5573
5674 int
6179 char **user,
6280 int *port)
6381 {
64 xmlURIPtr uri;
65 char *offset;
66
67 if (uristr == NULL ||
68 !g_strcasecmp(uristr, "xen"))
69 uristr = "xen:///";
70
71 uri = xmlParseURI(uristr);
72 if (host) {
73 if (!uri || !uri->server)
74 *host = g_strdup("localhost");
75 else
76 *host = g_strdup(uri->server);
82 xmlURIPtr uri;
83 char *offset = NULL;
84
85 if (uristr == NULL ||
86 !g_ascii_strcasecmp(uristr, "xen"))
87 uristr = "xen:///";
88
89 uri = xmlParseURI(uristr);
90 g_return_val_if_fail(uri != NULL, 1);
91
92 if (host) {
93 if (!uri || !uri->server) {
94 *host = g_strdup("localhost");
95 } else {
96 if (uri->server[0] == '[') {
97 gchar *tmp;
98 *host = g_strdup(uri->server + 1);
99 if ((tmp = strchr(*host, ']')))
100 *tmp = '\0';
101 } else {
102 *host = g_strdup(uri->server);
103 }
77104 }
78
79 if (user) {
80 if (uri->user)
81 *user = g_strdup(uri->user);
82 else
83 *user = NULL;
84 }
85
86 if (port)
87 *port = uri->port;
88
89 offset = strchr(uri->scheme, '+');
90
91 if (transport) {
92 if (offset)
93 *transport = g_strdup(offset+1);
94 else
95 *transport = NULL;
96 }
97
98 if (scheme) {
99 if (offset)
100 *scheme = g_strndup(uri->scheme, offset - uri->scheme);
101 else
102 *scheme = g_strdup(uri->scheme);
103 }
104
105 xmlFreeURI(uri);
106 return 0;
107 }
105 }
106
107 if (user) {
108 if (uri->user)
109 *user = g_strdup(uri->user);
110 else
111 *user = NULL;
112 }
113
114 if (port)
115 *port = uri->port;
116
117 if (uri->scheme)
118 offset = strchr(uri->scheme, '+');
119
120 if (transport) {
121 if (offset)
122 *transport = g_strdup(offset + 1);
123 else
124 *transport = NULL;
125 }
126
127 if (scheme && uri->scheme) {
128 if (offset)
129 *scheme = g_strndup(uri->scheme, offset - uri->scheme);
130 else
131 *scheme = g_strdup(uri->scheme);
132 }
133
134 xmlFreeURI(uri);
135 return 0;
136 }
137
138 typedef struct {
139 GObject *instance;
140 GObject *observer;
141 GClosure *closure;
142 gulong handler_id;
143 } WeakHandlerCtx;
144
145 static WeakHandlerCtx *
146 whc_new(GObject *instance,
147 GObject *observer)
148 {
149 WeakHandlerCtx *ctx = g_slice_new0(WeakHandlerCtx);
150
151 ctx->instance = instance;
152 ctx->observer = observer;
153
154 return ctx;
155 }
156
157 static void
158 whc_free(WeakHandlerCtx *ctx)
159 {
160 g_slice_free(WeakHandlerCtx, ctx);
161 }
162
163 static void observer_destroyed_cb(gpointer, GObject *);
164 static void closure_invalidated_cb(gpointer, GClosure *);
165
166 /*
167 * If signal handlers are removed before the object is destroyed, this
168 * callback will never get triggered.
169 */
170 static void
171 instance_destroyed_cb(gpointer ctx_,
172 GObject *where_the_instance_was G_GNUC_UNUSED)
173 {
174 WeakHandlerCtx *ctx = ctx_;
175
176 /* No need to disconnect the signal here, the instance has gone away. */
177 g_object_weak_unref(ctx->observer, observer_destroyed_cb, ctx);
178 g_closure_remove_invalidate_notifier(ctx->closure, ctx,
179 closure_invalidated_cb);
180 whc_free(ctx);
181 }
182
183 /* Triggered when the observer is destroyed. */
184 static void
185 observer_destroyed_cb(gpointer ctx_,
186 GObject *where_the_observer_was G_GNUC_UNUSED)
187 {
188 WeakHandlerCtx *ctx = ctx_;
189
190 g_closure_remove_invalidate_notifier(ctx->closure, ctx,
191 closure_invalidated_cb);
192 g_signal_handler_disconnect(ctx->instance, ctx->handler_id);
193 g_object_weak_unref(ctx->instance, instance_destroyed_cb, ctx);
194 whc_free(ctx);
195 }
196
197 /* Triggered when either object is destroyed or the handler is disconnected. */
198 static void
199 closure_invalidated_cb(gpointer ctx_,
200 GClosure *where_the_closure_was G_GNUC_UNUSED)
201 {
202 WeakHandlerCtx *ctx = ctx_;
203
204 g_object_weak_unref(ctx->instance, instance_destroyed_cb, ctx);
205 g_object_weak_unref(ctx->observer, observer_destroyed_cb, ctx);
206 whc_free(ctx);
207 }
208
209 /* Copied from tp_g_signal_connect_object. */
210 /**
211 * virt_viewer_signal_connect_object: (skip)
212 * @instance: the instance to connect to.
213 * @detailed_signal: a string of the form "signal-name::detail".
214 * @c_handler: the #GCallback to connect.
215 * @gobject: the object to pass as data to @c_handler.
216 * @connect_flags: a combination of #GConnectFlags.
217 *
218 * Similar to g_signal_connect_object() but will delete connection
219 * when any of the objects is destroyed.
220 *
221 * Returns: the handler id.
222 */
223 gulong virt_viewer_signal_connect_object(gpointer instance,
224 const gchar *detailed_signal,
225 GCallback c_handler,
226 gpointer gobject,
227 GConnectFlags connect_flags)
228 {
229 GObject *instance_obj = G_OBJECT(instance);
230 WeakHandlerCtx *ctx = whc_new(instance_obj, gobject);
231
232 g_return_val_if_fail(G_TYPE_CHECK_INSTANCE (instance), 0);
233 g_return_val_if_fail(detailed_signal != NULL, 0);
234 g_return_val_if_fail(c_handler != NULL, 0);
235 g_return_val_if_fail(G_IS_OBJECT (gobject), 0);
236 g_return_val_if_fail((connect_flags & ~(G_CONNECT_AFTER|G_CONNECT_SWAPPED)) == 0, 0);
237
238 if (connect_flags & G_CONNECT_SWAPPED)
239 ctx->closure = g_cclosure_new_object_swap(c_handler, gobject);
240 else
241 ctx->closure = g_cclosure_new_object(c_handler, gobject);
242
243 ctx->handler_id = g_signal_connect_closure(instance, detailed_signal,
244 ctx->closure, (connect_flags & G_CONNECT_AFTER) ? TRUE : FALSE);
245
246 g_object_weak_ref(instance_obj, instance_destroyed_cb, ctx);
247 g_object_weak_ref(gobject, observer_destroyed_cb, ctx);
248 g_closure_add_invalidate_notifier(ctx->closure, ctx,
249 closure_invalidated_cb);
250
251 return ctx->handler_id;
252 }
253
108254
109255 /*
110256 * Local variables:
111 * c-indent-level: 8
112 * c-basic-offset: 8
113 * tab-width: 8
257 * c-indent-level: 4
258 * c-basic-offset: 4
259 * indent-tabs-mode: nil
114260 * End:
115261 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 *
66 * This program is free software; you can redistribute it and/or modify
77 * it under the terms of the GNU General Public License as published by
3939 char **user,
4040 int *port);
4141
42 gulong virt_viewer_signal_connect_object(gpointer instance,
43 const gchar *detailed_signal,
44 GCallback c_handler,
45 gpointer gobject,
46 GConnectFlags connect_flags);
47
4248 #endif
49
50 /*
51 * Local variables:
52 * c-indent-level: 4
53 * c-basic-offset: 4
54 * indent-tabs-mode: nil
55 * End:
56 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3434 #include <glib/gprintf.h>
3535 #include <glib/gi18n.h>
3636
37 #include "virt-gtk-compat.h"
3738 #include "virt-viewer-window.h"
39 #include "virt-viewer-session.h"
3840 #include "virt-viewer-app.h"
3941 #include "virt-viewer-util.h"
4042 #include "view/autoDrawer.h"
5052 void virt_viewer_window_menu_view_resize(GtkWidget *menu, VirtViewerWindow *self);
5153 void virt_viewer_window_menu_send(GtkWidget *menu, VirtViewerWindow *self);
5254 void virt_viewer_window_menu_file_screenshot(GtkWidget *menu, VirtViewerWindow *self);
55 void virt_viewer_window_menu_file_usb_device_selection(GtkWidget *menu, VirtViewerWindow *self);
56 void virt_viewer_window_menu_file_smartcard_insert(GtkWidget *menu, VirtViewerWindow *self);
57 void virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu, VirtViewerWindow *self);
58 void virt_viewer_window_menu_view_release_cursor(GtkWidget *menu, VirtViewerWindow *self);
5359
5460 /* Internal methods */
5561 static void virt_viewer_window_enable_modifiers(VirtViewerWindow *self);
5662 static void virt_viewer_window_disable_modifiers(VirtViewerWindow *self);
5763 static void virt_viewer_window_resize(VirtViewerWindow *self);
5864 static void virt_viewer_window_toolbar_setup(VirtViewerWindow *self);
65 static GtkMenu* virt_viewer_window_get_keycombo_menu(VirtViewerWindow *self);
5966
6067 G_DEFINE_TYPE (VirtViewerWindow, virt_viewer_window, G_TYPE_OBJECT)
6168
62 #define GET_PRIVATE(o) \
63 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate))
69 #define GET_PRIVATE(o) \
70 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowPrivate))
6471
6572 enum {
66 PROP_0,
67 PROP_WINDOW,
68 PROP_DISPLAY,
69 PROP_SUBTITLE,
70 PROP_CONTAINER,
71 PROP_APP,
73 PROP_0,
74 PROP_WINDOW,
75 PROP_DISPLAY,
76 PROP_SUBTITLE,
77 PROP_CONTAINER,
78 PROP_APP,
7279 };
7380
74 enum menuNums {
75 FILE_MENU,
76 VIEW_MENU,
77 SEND_KEY_MENU,
78 HELP_MENU,
79 LAST_MENU // sentinel
81 struct _VirtViewerWindowPrivate {
82 VirtViewerApp *app;
83 GtkContainer *container; /* if any, then there is no window */
84
85 GtkBuilder *builder;
86 GtkWidget *window;
87 GtkWidget *layout;
88 GtkWidget *toolbar;
89 GtkWidget *toolbar_usb_device_selection;
90 GtkWidget *toolbar_send_key;
91 GtkAccelGroup *accel_group;
92 VirtViewerNotebook *notebook;
93 VirtViewerDisplay *display;
94
95 gboolean accel_enabled;
96 GValue accel_setting;
97 GSList *accel_list;
98 gboolean enable_mnemonics_save;
99 gboolean grabbed;
100 gboolean before_saved;
101 GdkRectangle before_fullscreen;
102 gboolean desktop_resize_pending;
103
104 gint zoomlevel;
105 gboolean auto_resize;
106 gboolean fullscreen;
107 gchar *subtitle;
80108 };
81109
82 struct _VirtViewerWindowPrivate {
83 VirtViewerApp *app;
84 GtkContainer *container; /* if any, then there is no window */
85
86 GtkBuilder *builder;
87 GtkWidget *window;
88 GtkWidget *layout;
89 GtkWidget *toolbar;
90 VirtViewerNotebook *notebook;
91 VirtViewerDisplay *display;
92
93 gboolean accel_enabled;
94 GValue accel_setting;
95 GSList *accel_list;
96 int accel_menu_sig[LAST_MENU];
97 gboolean grabbed;
98 gboolean before_saved;
99 GdkRectangle before_fullscreen;
100
101 gint zoomlevel;
102 gboolean auto_resize;
103 gboolean fullscreen;
104 gchar *subtitle;
105 };
106
110 static void
111 virt_viewer_window_get_property (GObject *object, guint property_id,
112 GValue *value, GParamSpec *pspec)
113 {
114 VirtViewerWindow *self = VIRT_VIEWER_WINDOW(object);
115 VirtViewerWindowPrivate *priv = self->priv;
116
117 switch (property_id) {
118 case PROP_SUBTITLE:
119 g_value_set_string(value, priv->subtitle);
120 break;
121
122 case PROP_WINDOW:
123 g_value_set_object(value, priv->window);
124 break;
125
126 case PROP_DISPLAY:
127 g_value_set_object(value, virt_viewer_window_get_display(self));
128 break;
129
130 case PROP_CONTAINER:
131 g_value_set_object(value, priv->container);
132 break;
133
134 case PROP_APP:
135 g_value_set_object(value, priv->app);
136 break;
137
138 default:
139 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
140 }
141 }
142
143 static void
144 virt_viewer_window_set_property (GObject *object, guint property_id,
145 const GValue *value, GParamSpec *pspec)
146 {
147 VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
148
149 switch (property_id) {
150 case PROP_SUBTITLE:
151 g_free(priv->subtitle);
152 priv->subtitle = g_value_dup_string(value);
153 virt_viewer_window_update_title(VIRT_VIEWER_WINDOW(object));
154 break;
155
156 case PROP_CONTAINER:
157 g_return_if_fail(priv->container == NULL);
158 priv->container = g_value_dup_object(value);
159 break;
160
161 case PROP_APP:
162 g_return_if_fail(priv->app == NULL);
163 priv->app = g_value_get_object(value);
164 break;
165
166 default:
167 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
168 }
169 }
170
171 static void
172 virt_viewer_window_dispose (GObject *object)
173 {
174 VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
175 GSList *it;
176
177 G_OBJECT_CLASS (virt_viewer_window_parent_class)->dispose (object);
178
179 if (priv->display) {
180 g_object_unref(priv->display);
181 priv->display = NULL;
182 }
183
184 DEBUG_LOG("Disposing window %p\n", object);
185
186 if (priv->window) {
187 gtk_widget_destroy(priv->window);
188 priv->window = NULL;
189 }
190 if (priv->builder) {
191 g_object_unref(priv->builder);
192 priv->builder = NULL;
193 }
194
195 for (it = priv->accel_list ; it != NULL ; it = it->next) {
196 g_object_unref(G_OBJECT(it->data));
197 }
198 g_slist_free(priv->accel_list);
199 priv->accel_list = NULL;
200
201 g_free(priv->subtitle);
202 priv->subtitle = NULL;
203
204 g_value_unset(&priv->accel_setting);
205 }
206
207 static void
208 virt_viewer_window_class_init (VirtViewerWindowClass *klass)
209 {
210 GObjectClass *object_class = G_OBJECT_CLASS (klass);
211
212 g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate));
213
214 object_class->get_property = virt_viewer_window_get_property;
215 object_class->set_property = virt_viewer_window_set_property;
216 object_class->dispose = virt_viewer_window_dispose;
217
218 g_object_class_install_property(object_class,
219 PROP_SUBTITLE,
220 g_param_spec_string("subtitle",
221 "Subtitle",
222 "Window subtitle",
223 "",
224 G_PARAM_READABLE |
225 G_PARAM_WRITABLE |
226 G_PARAM_STATIC_STRINGS));
227
228 g_object_class_install_property(object_class,
229 PROP_WINDOW,
230 g_param_spec_object("window",
231 "Window",
232 "GtkWindow",
233 GTK_TYPE_WIDGET,
234 G_PARAM_READABLE |
235 G_PARAM_STATIC_STRINGS));
236
237 g_object_class_install_property(object_class,
238 PROP_DISPLAY,
239 g_param_spec_object("display",
240 "Display",
241 "VirtDisplay",
242 VIRT_VIEWER_TYPE_DISPLAY,
243 G_PARAM_READABLE |
244 G_PARAM_STATIC_STRINGS));
245
246 g_object_class_install_property(object_class,
247 PROP_CONTAINER,
248 g_param_spec_object("container",
249 "Container",
250 "Container widget",
251 VIRT_VIEWER_TYPE_DISPLAY,
252 G_PARAM_READABLE |
253 G_PARAM_WRITABLE |
254 G_PARAM_CONSTRUCT_ONLY |
255 G_PARAM_STATIC_STRINGS));
256
257 g_object_class_install_property(object_class,
258 PROP_APP,
259 g_param_spec_object("app",
260 "App",
261 "VirtViewerApp",
262 VIRT_VIEWER_TYPE_APP,
263 G_PARAM_READABLE |
264 G_PARAM_WRITABLE |
265 G_PARAM_CONSTRUCT_ONLY |
266 G_PARAM_STATIC_STRINGS));
267 }
268
269 static gboolean
270 can_activate_cb (GtkWidget *widget G_GNUC_UNUSED,
271 guint signal_id G_GNUC_UNUSED,
272 VirtViewerWindow *self G_GNUC_UNUSED)
273 {
274 return TRUE;
275 }
276
277 static void
278 virt_viewer_window_init (VirtViewerWindow *self)
279 {
280 VirtViewerWindowPrivate *priv;
281 GtkWidget *vbox;
282 GtkWidget *menu;
283 GdkColor color;
284 GSList *accels;
285
286 self->priv = GET_PRIVATE(self);
287 priv = self->priv;
288
289 priv->auto_resize = TRUE;
290 g_value_init(&priv->accel_setting, G_TYPE_STRING);
291
292 priv->notebook = virt_viewer_notebook_new();
293 priv->builder = virt_viewer_util_load_ui("virt-viewer.xml");
294
295 menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize"));
296 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
297 gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), FALSE);
298 gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), FALSE);
299
300 gtk_builder_connect_signals(priv->builder, self);
301
302 priv->accel_group = GTK_ACCEL_GROUP(gtk_builder_get_object(priv->builder, "accelgroup"));
303
304 /* make sure they can be activated even if the menu item is not visible */
305 g_signal_connect(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"),
306 "can-activate-accel", G_CALLBACK(can_activate_cb), self);
307 g_signal_connect(gtk_builder_get_object(priv->builder, "menu-file-smartcard-insert"),
308 "can-activate-accel", G_CALLBACK(can_activate_cb), self);
309 g_signal_connect(gtk_builder_get_object(priv->builder, "menu-file-smartcard-remove"),
310 "can-activate-accel", G_CALLBACK(can_activate_cb), self);
311 g_signal_connect(gtk_builder_get_object(priv->builder, "menu-view-release-cursor"),
312 "can-activate-accel", G_CALLBACK(can_activate_cb), self);
313
314 vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box"));
315 virt_viewer_window_toolbar_setup(self);
316
317 gtk_box_pack_end(GTK_BOX(vbox), priv->layout, TRUE, TRUE, 0);
318 gdk_color_parse("black", &color);
319 gtk_widget_modify_bg(priv->layout, GTK_STATE_NORMAL, &color);
320
321 priv->window = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer"));
322 gtk_window_add_accel_group(GTK_WINDOW(priv->window), priv->accel_group);
323
324 virt_viewer_window_update_title(self);
325 gtk_window_set_resizable(GTK_WINDOW(priv->window), TRUE);
107326 #if GTK_CHECK_VERSION(3, 0, 0)
108 #define GDK_Control_L GDK_KEY_Control_L
109 #define GDK_Alt_L GDK_KEY_Alt_L
110 #define GDK_Delete GDK_KEY_Delete
111 #define GDK_BackSpace GDK_KEY_BackSpace
112 #define GDK_Print GDK_KEY_Print
113 #define GDK_F1 GDK_KEY_F1
114 #define GDK_F2 GDK_KEY_F2
115 #define GDK_F3 GDK_KEY_F3
116 #define GDK_F4 GDK_KEY_F4
117 #define GDK_F5 GDK_KEY_F5
118 #define GDK_F6 GDK_KEY_F6
119 #define GDK_F7 GDK_KEY_F7
120 #define GDK_F8 GDK_KEY_F8
121 #define GDK_F9 GDK_KEY_F9
122 #define GDK_F10 GDK_KEY_F10
123 #define GDK_F11 GDK_KEY_F11
124 #define GDK_F12 GDK_KEY_F12
327 gtk_window_set_has_resize_grip(GTK_WINDOW(priv->window), FALSE);
125328 #endif
126
127 static void
128 virt_viewer_window_get_property (GObject *object, guint property_id,
129 GValue *value, GParamSpec *pspec)
130 {
131 VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
132
133 switch (property_id) {
134 case PROP_SUBTITLE:
135 g_value_set_string(value, priv->subtitle);
136 break;
137
138 case PROP_WINDOW:
139 g_value_set_object(value, priv->window);
140 break;
141
142 case PROP_DISPLAY:
143 g_value_set_object(value, priv->display);
144 break;
145
146 case PROP_CONTAINER:
147 g_value_set_object(value, priv->container);
148 break;
149
150 case PROP_APP:
151 g_value_set_object(value, priv->app);
152 break;
153
154 default:
155 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
156 }
157 }
158
159 static void
160 virt_viewer_window_set_property (GObject *object, guint property_id,
161 const GValue *value, GParamSpec *pspec)
162 {
163 VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
164
165 switch (property_id) {
166 case PROP_SUBTITLE:
167 g_free(priv->subtitle);
168 priv->subtitle = g_value_dup_string(value);
169 break;
170
171 case PROP_CONTAINER:
172 g_return_if_fail(priv->container == NULL);
173 priv->container = g_value_dup_object(value);
174 break;
175
176 case PROP_APP:
177 g_return_if_fail(priv->app == NULL);
178 priv->app = g_value_dup_object(value);
179 break;
180
181 default:
182 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
183 }
184 }
185
186 static void
187 virt_viewer_window_dispose (GObject *object)
188 {
189 VirtViewerWindowPrivate *priv = VIRT_VIEWER_WINDOW(object)->priv;
190 G_OBJECT_CLASS (virt_viewer_window_parent_class)->dispose (object);
191
192 if (priv->display) {
193 g_object_unref(priv->display);
194 priv->display = NULL;
195 }
196
197 if (priv->app) {
198 g_object_unref(priv->app);
199 priv->app = NULL;
200 }
201
202 g_free(priv->subtitle);
203 priv->subtitle = NULL;
204 }
205
206 static void
207 virt_viewer_window_class_init (VirtViewerWindowClass *klass)
208 {
209 GObjectClass *object_class = G_OBJECT_CLASS (klass);
210
211 g_type_class_add_private (klass, sizeof (VirtViewerWindowPrivate));
212
213 object_class->get_property = virt_viewer_window_get_property;
214 object_class->set_property = virt_viewer_window_set_property;
215 object_class->dispose = virt_viewer_window_dispose;
216
217 g_object_class_install_property(object_class,
218 PROP_SUBTITLE,
219 g_param_spec_string("subtitle",
220 "Subtitle",
221 "Window subtitle",
222 "",
223 G_PARAM_READABLE |
224 G_PARAM_WRITABLE |
225 G_PARAM_STATIC_STRINGS));
226
227 g_object_class_install_property(object_class,
228 PROP_WINDOW,
229 g_param_spec_object("window",
230 "Window",
231 "GtkWindow",
232 GTK_TYPE_WIDGET,
233 G_PARAM_READABLE |
234 G_PARAM_STATIC_STRINGS));
235
236 g_object_class_install_property(object_class,
237 PROP_DISPLAY,
238 g_param_spec_object("display",
239 "Display",
240 "VirtDisplay",
241 VIRT_VIEWER_TYPE_DISPLAY,
242 G_PARAM_READABLE |
243 G_PARAM_STATIC_STRINGS));
244
245 g_object_class_install_property(object_class,
246 PROP_CONTAINER,
247 g_param_spec_object("container",
248 "Container",
249 "Container widget",
250 VIRT_VIEWER_TYPE_DISPLAY,
251 G_PARAM_READABLE |
252 G_PARAM_WRITABLE |
253 G_PARAM_CONSTRUCT_ONLY |
254 G_PARAM_STATIC_STRINGS));
255
256 g_object_class_install_property(object_class,
257 PROP_APP,
258 g_param_spec_object("app",
259 "App",
260 "VirtViewerApp",
261 VIRT_VIEWER_TYPE_APP,
262 G_PARAM_READABLE |
263 G_PARAM_WRITABLE |
264 G_PARAM_CONSTRUCT_ONLY |
265 G_PARAM_STATIC_STRINGS));
266 }
267
268 static void
269 virt_viewer_window_init (VirtViewerWindow *self)
270 {
271 VirtViewerWindowPrivate *priv;
272 GtkWidget *vbox;
273 GtkWidget *menu;
274 GdkColor color;
275 GSList *accels;
276
277 self->priv = GET_PRIVATE(self);
278 priv = self->priv;
279
280 priv->auto_resize = TRUE;
281 g_value_init(&priv->accel_setting, G_TYPE_STRING);
282
283 priv->notebook = virt_viewer_notebook_new();
284 priv->builder = virt_viewer_util_load_ui("virt-viewer.xml");
285
286 menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize"));
287 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
288
289 gtk_builder_connect_signals(priv->builder, self);
290
291 vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box"));
292 virt_viewer_window_toolbar_setup(self);
293
294 gtk_box_pack_end(GTK_BOX(vbox), priv->layout, TRUE, TRUE, 0);
295 gdk_color_parse("black", &color);
296 gtk_widget_modify_bg(priv->layout, GTK_STATE_NORMAL, &color);
297
298 priv->window = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer"));
299
300 virt_viewer_window_update_title(self);
301 gtk_window_set_resizable(GTK_WINDOW(priv->window), TRUE);
302 #if GTK_CHECK_VERSION(3, 0, 0)
303 gtk_window_set_has_resize_grip(GTK_WINDOW(priv->window), FALSE);
304 #endif
305 priv->accel_enabled = TRUE;
306
307 accels = gtk_accel_groups_from_object(G_OBJECT(priv->window));
308 for ( ; accels ; accels = accels->next) {
309 priv->accel_list = g_slist_append(priv->accel_list, accels->data);
310 g_object_ref(G_OBJECT(accels->data));
311 }
329 priv->accel_enabled = TRUE;
330
331 accels = gtk_accel_groups_from_object(G_OBJECT(priv->window));
332 for ( ; accels ; accels = accels->next) {
333 priv->accel_list = g_slist_append(priv->accel_list, accels->data);
334 g_object_ref(G_OBJECT(accels->data));
335 }
336
337 priv->zoomlevel = 100;
312338 }
313339
314340 static void
315341 virt_viewer_window_desktop_resize(VirtViewerDisplay *display G_GNUC_UNUSED,
316 VirtViewerWindow *self)
317 {
318 VirtViewerWindowPrivate *priv = self->priv;
319 if (priv->auto_resize && priv->window && !priv->fullscreen)
320 virt_viewer_window_resize(self);
321 }
322
323
324 void
342 VirtViewerWindow *self)
343 {
344 if (!gtk_widget_get_visible(self->priv->window)) {
345 self->priv->desktop_resize_pending = TRUE;
346 return;
347 }
348 virt_viewer_window_resize(self);
349 }
350
351
352 G_MODULE_EXPORT void
325353 virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED,
326 VirtViewerWindow *self)
327 {
328 VirtViewerWindowPrivate *priv = self->priv;
329
330 if (priv->zoomlevel > 10)
331 priv->zoomlevel -= 10;
332
333 if (!priv->display)
334 return;
335
336 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
337 if (priv->display)
338 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
339 }
340
341 void
354 VirtViewerWindow *self)
355 {
356 VirtViewerWindowPrivate *priv = self->priv;
357
358 if (priv->zoomlevel > 10)
359 priv->zoomlevel -= 10;
360
361 if (!priv->display)
362 return;
363
364 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
365 if (priv->display)
366 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
367 }
368
369 G_MODULE_EXPORT void
342370 virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED,
343 VirtViewerWindow *self)
344 {
345 VirtViewerWindowPrivate *priv = self->priv;
346
347 if (priv->zoomlevel < 400)
348 priv->zoomlevel += 10;
349
350 if (!priv->display)
351 return;
352
353 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
354 if (priv->display)
355 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
356 }
357
358 void
371 VirtViewerWindow *self)
372 {
373 VirtViewerWindowPrivate *priv = self->priv;
374
375 if (priv->zoomlevel < 400)
376 priv->zoomlevel += 10;
377
378 if (!priv->display)
379 return;
380
381 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
382 if (priv->display)
383 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
384 }
385
386 G_MODULE_EXPORT void
359387 virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED,
360 VirtViewerWindow *self)
361 {
362 VirtViewerWindowPrivate *priv = self->priv;
363 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
364 priv->zoomlevel = 100;
365
366 if (priv->display)
367 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
388 VirtViewerWindow *self)
389 {
390 VirtViewerWindowPrivate *priv = self->priv;
391 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
392 priv->zoomlevel = 100;
393
394 if (priv->display)
395 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
368396 }
369397
370398 /*
376404 static void
377405 virt_viewer_window_resize(VirtViewerWindow *self)
378406 {
379 GdkRectangle fullscreen;
380 GdkScreen *screen;
381 int width, height;
382 double desktopAspect;
383 double screenAspect;
384 guint desktopWidth;
385 guint desktopHeight;
386 VirtViewerWindowPrivate *priv = self->priv;
387
388 DEBUG_LOG("Preparing main window resize");
389 if (!priv->display) {
390 DEBUG_LOG("Skipping inactive resize");
391 return;
392 }
393
394 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
395
396 virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
397 &desktopWidth, &desktopHeight);
398
399 screen = gtk_widget_get_screen(priv->window);
400 gdk_screen_get_monitor_geometry(screen,
401 gdk_screen_get_monitor_at_window
402 (screen, gtk_widget_get_window(priv->window)),
403 &fullscreen);
404
405 desktopAspect = (double)desktopWidth / (double)desktopHeight;
406 screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128);
407
408 if ((desktopWidth > (fullscreen.width - 128)) ||
409 (desktopHeight > (fullscreen.height - 128))) {
410 /* Doesn't fit native res, so go as large as possible
411 maintaining aspect ratio */
412 if (screenAspect > desktopAspect) {
413 width = desktopHeight * desktopAspect;
414 height = desktopHeight;
415 } else {
416 width = desktopWidth;
417 height = desktopWidth / desktopAspect;
418 }
419 } else {
420 width = desktopWidth;
421 height = desktopHeight;
422 }
423
424 DEBUG_LOG("Decided todo %dx%d (desktop is %dx%d, fullscreen is %dx%d",
425 width, height, desktopWidth, desktopHeight,
426 fullscreen.width, fullscreen.height);
427
428 virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
429 width, height);
407 GdkRectangle fullscreen;
408 GdkScreen *screen;
409 int width, height;
410 double desktopAspect;
411 double screenAspect;
412 guint desktopWidth;
413 guint desktopHeight;
414 VirtViewerWindowPrivate *priv = self->priv;
415
416 if (!priv->auto_resize || priv->fullscreen)
417 return;
418
419 DEBUG_LOG("Preparing main window resize");
420 if (!priv->display) {
421 DEBUG_LOG("Skipping inactive resize");
422 return;
423 }
424
425 gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
426
427 virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
428 &desktopWidth, &desktopHeight);
429
430 screen = gtk_widget_get_screen(priv->window);
431 gdk_screen_get_monitor_geometry(screen,
432 gdk_screen_get_monitor_at_window
433 (screen, gtk_widget_get_window(priv->window)),
434 &fullscreen);
435
436 g_return_if_fail(fullscreen.height > 128);
437 g_return_if_fail(fullscreen.width > 128);
438 g_return_if_fail(desktopWidth > 0);
439 g_return_if_fail(desktopHeight > 0);
440
441 desktopAspect = (double)desktopWidth / (double)desktopHeight;
442 screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128);
443
444 if ((desktopWidth > (fullscreen.width - 128)) ||
445 (desktopHeight > (fullscreen.height - 128))) {
446 /* Doesn't fit native res, so go as large as possible
447 maintaining aspect ratio */
448 if (screenAspect > desktopAspect) {
449 width = desktopHeight * desktopAspect;
450 height = desktopHeight;
451 } else {
452 width = desktopWidth;
453 height = desktopWidth / desktopAspect;
454 }
455 } else {
456 width = desktopWidth;
457 height = desktopHeight;
458 }
459
460 DEBUG_LOG("Decided todo %dx%d (desktop is %dx%d, fullscreen is %dx%d",
461 width, height, desktopWidth, desktopHeight,
462 fullscreen.width, fullscreen.height);
463
464 virt_viewer_display_set_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
465 width, height);
430466 }
431467
432468 void
433469 virt_viewer_window_leave_fullscreen(VirtViewerWindow *self)
434470 {
435 VirtViewerWindowPrivate *priv = self->priv;
436 GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
437 GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
438
439 if (!priv->fullscreen)
440 return;
441
442 gtk_check_menu_item_set_active(check, FALSE);
443 priv->fullscreen = FALSE;
444 ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
445 gtk_widget_show(menu);
446 gtk_widget_hide(priv->toolbar);
447 gtk_window_unfullscreen(GTK_WINDOW(priv->window));
448
449 if (priv->before_saved) {
450 gtk_window_move(GTK_WINDOW(priv->window),
451 priv->before_fullscreen.x,
452 priv->before_fullscreen.y);
453 gtk_window_resize(GTK_WINDOW(priv->window),
454 priv->before_fullscreen.width,
455 priv->before_fullscreen.height);
456 priv->before_saved = FALSE;
457 }
471 VirtViewerWindowPrivate *priv = self->priv;
472 GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
473 GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
474
475 if (!priv->fullscreen)
476 return;
477
478 gtk_check_menu_item_set_active(check, FALSE);
479 priv->fullscreen = FALSE;
480 ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
481 gtk_widget_show(menu);
482 gtk_widget_hide(priv->toolbar);
483 #ifdef G_OS_WIN32
484 gtk_widget_set_size_request(GTK_WIDGET(priv->window), -1, -1);
485 #endif
486 gtk_window_unfullscreen(GTK_WINDOW(priv->window));
487
488 if (priv->before_saved) {
489 gtk_window_move(GTK_WINDOW(priv->window),
490 priv->before_fullscreen.x,
491 priv->before_fullscreen.y);
492 gtk_window_resize(GTK_WINDOW(priv->window),
493 priv->before_fullscreen.width,
494 priv->before_fullscreen.height);
495 priv->before_saved = FALSE;
496 }
458497 }
459498
460499 void
461500 virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y)
462501 {
463 VirtViewerWindowPrivate *priv = self->priv;
464 GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
465 GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
466
467 if (!priv->before_saved) {
468 gtk_window_get_position(GTK_WINDOW(priv->window),
469 &priv->before_fullscreen.x,
470 &priv->before_fullscreen.y);
471 gtk_window_get_size(GTK_WINDOW(priv->window),
472 &priv->before_fullscreen.width,
473 &priv->before_fullscreen.height);
474 priv->before_saved = TRUE;
475 }
476
477 if (!priv->fullscreen) {
478 gtk_check_menu_item_set_active(check, TRUE);
479 priv->fullscreen = TRUE;
480 gtk_widget_hide(menu);
481 gtk_widget_show(priv->toolbar);
482 ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE);
483 ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout));
484 }
485
486 if (move)
487 gtk_window_move(GTK_WINDOW(priv->window), x, y);
488
489 gtk_window_fullscreen(GTK_WINDOW(priv->window));
502 VirtViewerWindowPrivate *priv = self->priv;
503 GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
504 GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
505
506 if (!priv->before_saved) {
507 gtk_window_get_position(GTK_WINDOW(priv->window),
508 &priv->before_fullscreen.x,
509 &priv->before_fullscreen.y);
510 gtk_window_get_size(GTK_WINDOW(priv->window),
511 &priv->before_fullscreen.width,
512 &priv->before_fullscreen.height);
513 priv->before_saved = TRUE;
514 }
515
516 if (priv->fullscreen)
517 return;
518 priv->fullscreen = TRUE;
519
520 gtk_check_menu_item_set_active(check, TRUE);
521 gtk_widget_hide(menu);
522 gtk_widget_show(priv->toolbar);
523 ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE);
524 ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout));
525
526 /* g_debug("enter fullscreen move:%d %d+%d", move, x, y); */
527 if (move)
528 gtk_window_move(GTK_WINDOW(priv->window), x, y);
529
530 gtk_window_fullscreen(GTK_WINDOW(priv->window));
531 #ifdef G_OS_WIN32
532 /* on windows, fullscreen doesn't always hide the taskbar
533 See https://bugzilla.gnome.org/show_bug.cgi?id=652049 */
534 gtk_widget_set_size_request(GTK_WIDGET(priv->window),
535 gdk_screen_width(),
536 gdk_screen_height());
537 #endif
490538 }
491539
492540 #define MAX_KEY_COMBO 3
493 struct keyComboDef {
494 guint keys[MAX_KEY_COMBO];
495 guint nkeys;
496 const char *label;
541 struct keyComboDef {
542 guint keys[MAX_KEY_COMBO];
543 guint nkeys;
544 const char *label;
497545 };
498546
499547 static const struct keyComboDef keyCombos[] = {
500 { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"},
501 { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"},
502 { {}, 0, "" },
503 { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"},
504 { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"},
505 { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"},
506 { { GDK_Control_L, GDK_Alt_L, GDK_F4 }, 3, "Ctrl+Alt+F_4"},
507 { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_5"},
508 { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"},
509 { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"},
510 { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"},
511 { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_9"},
512 { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F1_0"},
513 { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F11"},
514 { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F12"},
515 { {}, 0, "" },
516 { { GDK_Print }, 1, "_PrintScreen"},
548 { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"},
549 { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"},
550 { {}, 0, "" },
551 { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"},
552 { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"},
553 { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"},
554 { { GDK_Control_L, GDK_Alt_L, GDK_F4 }, 3, "Ctrl+Alt+F_4"},
555 { { GDK_Control_L, GDK_Alt_L, GDK_F5 }, 3, "Ctrl+Alt+F_5"},
556 { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"},
557 { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"},
558 { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"},
559 { { GDK_Control_L, GDK_Alt_L, GDK_F9 }, 3, "Ctrl+Alt+F_9"},
560 { { GDK_Control_L, GDK_Alt_L, GDK_F10 }, 3, "Ctrl+Alt+F1_0"},
561 { { GDK_Control_L, GDK_Alt_L, GDK_F11 }, 3, "Ctrl+Alt+F11"},
562 { { GDK_Control_L, GDK_Alt_L, GDK_F12 }, 3, "Ctrl+Alt+F12"},
563 { {}, 0, "" },
564 { { GDK_Print }, 1, "_PrintScreen"},
517565 };
518566
519 void
520 virt_viewer_window_menu_send(GtkWidget *menu G_GNUC_UNUSED,
521 VirtViewerWindow *self)
522 {
523 int i;
524 GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu));
525 const char *text = gtk_label_get_label(GTK_LABEL(label));
526 VirtViewerWindowPrivate *priv = self->priv;
527
528 for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) {
529 if (!strcmp(text, keyCombos[i].label)) {
530 DEBUG_LOG("Sending key combo %s", gtk_label_get_text(GTK_LABEL(label)));
531 virt_viewer_display_send_keys(VIRT_VIEWER_DISPLAY(priv->display),
532 keyCombos[i].keys,
533 keyCombos[i].nkeys);
534 return;
535 }
536 }
537 DEBUG_LOG("Failed to find key combo %s", gtk_label_get_text(GTK_LABEL(label)));
538 }
539
540 static gboolean
541 virt_viewer_window_ignore_accel(GtkWidget *menu G_GNUC_UNUSED,
542 VirtViewerWindow *self G_GNUC_UNUSED)
543 {
544 /* ignore accelerator */
545 return TRUE;
546 }
547
548 static const char * const menuNames[LAST_MENU] = {
549 "menu-file", "menu-view", "menu-send", "menu-help"
550 };
567 G_MODULE_EXPORT void
568 virt_viewer_window_menu_send(GtkWidget *menu,
569 VirtViewerWindow *self)
570 {
571 int i;
572 GtkWidget *label = gtk_bin_get_child(GTK_BIN(menu));
573 const char *text = gtk_label_get_label(GTK_LABEL(label));
574 VirtViewerWindowPrivate *priv = self->priv;
575
576 for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) {
577 if (!strcmp(text, keyCombos[i].label)) {
578 DEBUG_LOG("Sending key combo %s", gtk_label_get_text(GTK_LABEL(label)));
579 virt_viewer_display_send_keys(VIRT_VIEWER_DISPLAY(priv->display),
580 keyCombos[i].keys,
581 keyCombos[i].nkeys);
582 return;
583 }
584 }
585 DEBUG_LOG("Failed to find key combo %s", gtk_label_get_text(GTK_LABEL(label)));
586 }
587
588 static GtkMenu*
589 virt_viewer_window_get_keycombo_menu(VirtViewerWindow *self)
590 {
591 gint i;
592 GtkMenu *menu = GTK_MENU(gtk_menu_new());
593
594 for (i = 0 ; i < G_N_ELEMENTS(keyCombos) ; i++) {
595 GtkWidget *item;
596 if (keyCombos[i].nkeys == 0) {
597 item = gtk_separator_menu_item_new ();
598 } else {
599 item = gtk_menu_item_new_with_mnemonic(keyCombos[i].label);
600 g_signal_connect(item, "activate", G_CALLBACK(virt_viewer_window_menu_send), self);
601 }
602 gtk_container_add(GTK_CONTAINER(menu), item);
603 }
604
605 gtk_widget_show_all(GTK_WIDGET(menu));
606 return g_object_ref_sink(menu);
607 }
551608
552609 void
553610 virt_viewer_window_disable_modifiers(VirtViewerWindow *self)
554611 {
555 GtkSettings *settings = gtk_settings_get_default();
556 VirtViewerWindowPrivate *priv = self->priv;
557 GValue empty;
558 GSList *accels;
559 int i;
560
561 if (!priv->window)
562 return;
563
564 if (!priv->accel_enabled)
565 return;
566
567 /* This stops F10 activating menu bar */
568 memset(&empty, 0, sizeof empty);
569 g_value_init(&empty, G_TYPE_STRING);
570 g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
571 g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty);
572
573 /* This stops global accelerators like Ctrl+Q == Quit */
574 for (accels = priv->accel_list ; accels ; accels = accels->next) {
575 gtk_window_remove_accel_group(GTK_WINDOW(priv->window), accels->data);
576 }
577
578 /* This stops menu bar shortcuts like Alt+F == File */
579 for (i = 0 ; i < LAST_MENU ; i++) {
580 GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i]));
581 priv->accel_menu_sig[i] =
582 g_signal_connect(menu, "mnemonic-activate",
583 G_CALLBACK(virt_viewer_window_ignore_accel), self);
584 }
585
586 priv->accel_enabled = FALSE;
612 GtkSettings *settings = gtk_settings_get_default();
613 VirtViewerWindowPrivate *priv = self->priv;
614 GValue empty;
615 GSList *accels;
616
617 if (!priv->accel_enabled)
618 return;
619
620 /* This stops F10 activating menu bar */
621 memset(&empty, 0, sizeof empty);
622 g_value_init(&empty, G_TYPE_STRING);
623 g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
624 g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty);
625
626 /* This stops global accelerators like Ctrl+Q == Quit */
627 for (accels = priv->accel_list ; accels ; accels = accels->next) {
628 if (virt_viewer_app_get_enable_accel(priv->app) &&
629 priv->accel_group == accels->data)
630 continue;
631 gtk_window_remove_accel_group(GTK_WINDOW(priv->window), accels->data);
632 }
633
634 /* This stops menu bar shortcuts like Alt+F == File */
635 g_object_get(settings,
636 "gtk-enable-mnemonics", &priv->enable_mnemonics_save,
637 NULL);
638 g_object_set(settings,
639 "gtk-enable-mnemonics", FALSE,
640 NULL);
641
642 priv->accel_enabled = FALSE;
587643 }
588644
589645 void
590646 virt_viewer_window_enable_modifiers(VirtViewerWindow *self)
591647 {
592 GtkSettings *settings = gtk_settings_get_default();
593 VirtViewerWindowPrivate *priv = self->priv;
594 GSList *accels;
595 int i;
596
597 if (!priv->window)
598 return;
599
600 if (priv->accel_enabled)
601 return;
602
603 /* This allows F10 activating menu bar */
604 g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
605
606 /* This allows global accelerators like Ctrl+Q == Quit */
607 for (accels = priv->accel_list ; accels ; accels = accels->next) {
608 gtk_window_add_accel_group(GTK_WINDOW(priv->window), accels->data);
609 }
610
611 /* This allows menu bar shortcuts like Alt+F == File */
612 for (i = 0 ; i < LAST_MENU ; i++) {
613 GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i]));
614 g_signal_handler_disconnect(menu, priv->accel_menu_sig[i]);
615 }
616
617 priv->accel_enabled = TRUE;
618 }
619
620
621 gboolean
648 GtkSettings *settings = gtk_settings_get_default();
649 VirtViewerWindowPrivate *priv = self->priv;
650 GSList *accels;
651
652 if (priv->accel_enabled)
653 return;
654
655 /* This allows F10 activating menu bar */
656 g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &priv->accel_setting);
657
658 /* This allows global accelerators like Ctrl+Q == Quit */
659 for (accels = priv->accel_list ; accels ; accels = accels->next) {
660 if (virt_viewer_app_get_enable_accel(priv->app) &&
661 priv->accel_group == accels->data)
662 continue;
663 gtk_window_add_accel_group(GTK_WINDOW(priv->window), accels->data);
664 }
665
666 /* This allows menu bar shortcuts like Alt+F == File */
667 g_object_set(settings,
668 "gtk-enable-mnemonics", priv->enable_mnemonics_save,
669 NULL);
670
671 priv->accel_enabled = TRUE;
672 }
673
674
675 G_MODULE_EXPORT gboolean
622676 virt_viewer_window_delete(GtkWidget *src G_GNUC_UNUSED,
623 void *dummy G_GNUC_UNUSED,
624 VirtViewerWindow *self)
625 {
626 virt_viewer_app_window_set_visible(self->priv->app, self, FALSE);
627 return TRUE;
628 }
629
630
631 void
677 void *dummy G_GNUC_UNUSED,
678 VirtViewerWindow *self)
679 {
680 DEBUG_LOG("Window closed");
681 virt_viewer_app_window_set_visible(self->priv->app, self, FALSE);
682 return TRUE;
683 }
684
685
686 G_MODULE_EXPORT void
632687 virt_viewer_window_menu_file_quit(GtkWidget *src G_GNUC_UNUSED,
633 VirtViewerWindow *self)
634 {
635 virt_viewer_app_quit(self->priv->app);
688 VirtViewerWindow *self)
689 {
690 virt_viewer_app_quit(self->priv->app);
636691 }
637692
638693
639694 static void
640695 virt_viewer_window_toolbar_leave_fullscreen(GtkWidget *button G_GNUC_UNUSED,
641 VirtViewerWindow *self)
642 {
643 g_object_set(self->priv->app, "fullscreen", FALSE, NULL);
644 }
645
646
647 void
696 VirtViewerWindow *self)
697 {
698 g_object_set(self->priv->app, "fullscreen", FALSE, NULL);
699 }
700
701 static void keycombo_menu_location(GtkMenu *menu G_GNUC_UNUSED, gint *x, gint *y,
702 gboolean *push_in, gpointer user_data)
703 {
704 VirtViewerWindow *self = user_data;
705 GtkAllocation allocation;
706
707 *push_in = TRUE;
708 gdk_window_get_origin(gtk_widget_get_window(self->priv->toolbar_send_key), x, y);
709 gtk_widget_translate_coordinates(self->priv->toolbar_send_key, gtk_widget_get_toplevel(self->priv->toolbar_send_key),
710 0, 0, x, y);
711 gtk_widget_get_allocation(self->priv->toolbar_send_key, &allocation);
712 *y += allocation.height;
713 }
714
715 static void
716 virt_viewer_window_toolbar_send_key(GtkWidget *button G_GNUC_UNUSED,
717 VirtViewerWindow *self)
718 {
719 GtkMenu *menu = virt_viewer_window_get_keycombo_menu(self);
720 gtk_menu_popup(menu, NULL, NULL, keycombo_menu_location, self,
721 0, gtk_get_current_event_time());
722 g_object_unref(menu);
723 }
724
725
726 G_MODULE_EXPORT void
648727 virt_viewer_window_menu_view_fullscreen(GtkWidget *menu,
649 VirtViewerWindow *self)
650 {
651 gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu));
652
653 g_object_set(self->priv->app, "fullscreen", fullscreen, NULL);
654 }
655
656 void
728 VirtViewerWindow *self)
729 {
730 gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu));
731
732 g_object_set(self->priv->app, "fullscreen", fullscreen, NULL);
733 }
734
735 G_MODULE_EXPORT void
657736 virt_viewer_window_menu_view_resize(GtkWidget *menu,
658 VirtViewerWindow *self)
659 {
660 VirtViewerWindowPrivate *priv = self->priv;
661
662 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) {
663 priv->auto_resize = TRUE;
664 if (!priv->fullscreen)
665 virt_viewer_window_resize(self);
666 } else {
667 priv->auto_resize = FALSE;
668 }
737 VirtViewerWindow *self)
738 {
739 VirtViewerWindowPrivate *priv = self->priv;
740
741 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) {
742 priv->auto_resize = TRUE;
743 virt_viewer_window_resize(self);
744 } else {
745 priv->auto_resize = FALSE;
746 }
747
748 virt_viewer_display_set_auto_resize(priv->display, priv->auto_resize);
669749 }
670750
671751 static void
672752 virt_viewer_window_save_screenshot(VirtViewerWindow *self,
673 const char *file)
674 {
675 VirtViewerWindowPrivate *priv = self->priv;
676 GdkPixbuf *pix = virt_viewer_display_get_pixbuf(VIRT_VIEWER_DISPLAY(priv->display));
677
678 gdk_pixbuf_save(pix, file, "png", NULL,
679 "tEXt::Generator App", PACKAGE, NULL);
680 gdk_pixbuf_unref(pix);
681 }
682
683 void
753 const char *file)
754 {
755 VirtViewerWindowPrivate *priv = self->priv;
756 GdkPixbuf *pix = virt_viewer_display_get_pixbuf(VIRT_VIEWER_DISPLAY(priv->display));
757
758 gdk_pixbuf_save(pix, file, "png", NULL,
759 "tEXt::Generator App", PACKAGE, NULL);
760 g_object_unref(pix);
761 }
762
763 G_MODULE_EXPORT void
684764 virt_viewer_window_menu_file_screenshot(GtkWidget *menu G_GNUC_UNUSED,
685 VirtViewerWindow *self)
686 {
687 GtkWidget *dialog;
688 VirtViewerWindowPrivate *priv = self->priv;
689
690 g_return_if_fail(priv->display != NULL);
691
692 dialog = gtk_file_chooser_dialog_new ("Save screenshot",
693 NULL,
694 GTK_FILE_CHOOSER_ACTION_SAVE,
695 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
696 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
697 NULL);
698 gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
699
700 //gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving);
701 //gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Screenshot");
702
703 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
704 char *filename;
705
706 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
707 virt_viewer_window_save_screenshot(self, filename);
708 g_free (filename);
709 }
710
711 gtk_widget_destroy (dialog);
712 }
713
714 void
765 VirtViewerWindow *self)
766 {
767 GtkWidget *dialog;
768 VirtViewerWindowPrivate *priv = self->priv;
769
770 g_return_if_fail(priv->display != NULL);
771
772 dialog = gtk_file_chooser_dialog_new("Save screenshot",
773 NULL,
774 GTK_FILE_CHOOSER_ACTION_SAVE,
775 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
776 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
777 NULL);
778 gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (dialog), TRUE);
779 gtk_window_set_transient_for(GTK_WINDOW(dialog),
780 GTK_WINDOW(self->priv->window));
781
782 //gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving);
783 //gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Screenshot");
784
785 if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
786 char *filename;
787
788 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog));
789 virt_viewer_window_save_screenshot(self, filename);
790 g_free(filename);
791 }
792
793 gtk_widget_destroy(dialog);
794 }
795
796 G_MODULE_EXPORT void
797 virt_viewer_window_menu_file_usb_device_selection(GtkWidget *menu G_GNUC_UNUSED,
798 VirtViewerWindow *self)
799 {
800 virt_viewer_session_usb_device_selection(virt_viewer_app_get_session(self->priv->app),
801 GTK_WINDOW(self->priv->window));
802 }
803
804 G_MODULE_EXPORT void
805 virt_viewer_window_menu_file_smartcard_insert(GtkWidget *menu G_GNUC_UNUSED,
806 VirtViewerWindow *self)
807 {
808 virt_viewer_session_smartcard_insert(virt_viewer_app_get_session(self->priv->app));
809 }
810
811 G_MODULE_EXPORT void
812 virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu G_GNUC_UNUSED,
813 VirtViewerWindow *self)
814 {
815 virt_viewer_session_smartcard_remove(virt_viewer_app_get_session(self->priv->app));
816 }
817
818 G_MODULE_EXPORT void
819 virt_viewer_window_menu_view_release_cursor(GtkWidget *menu G_GNUC_UNUSED,
820 VirtViewerWindow *self)
821 {
822 virt_viewer_display_release_cursor(VIRT_VIEWER_DISPLAY(self->priv->display));
823 }
824
825 G_MODULE_EXPORT void
715826 virt_viewer_window_menu_help_about(GtkWidget *menu G_GNUC_UNUSED,
716 VirtViewerWindow *self)
717 {
718 GtkBuilder *about = virt_viewer_util_load_ui("virt-viewer-about.xml");
719
720 GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(about, "about"));
721 gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION);
722
723 gtk_builder_connect_signals(about, self);
724
725 gtk_widget_show_all(dialog);
726
727 g_object_unref(G_OBJECT(about));
827 VirtViewerWindow *self)
828 {
829 GtkBuilder *about = virt_viewer_util_load_ui("virt-viewer-about.xml");
830
831 GtkWidget *dialog = GTK_WIDGET(gtk_builder_get_object(about, "about"));
832 gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION);
833
834 gtk_window_set_transient_for(GTK_WINDOW(dialog),
835 GTK_WINDOW(self->priv->window));
836
837 gtk_builder_connect_signals(about, self);
838
839 gtk_widget_show_all(dialog);
840
841 g_object_unref(G_OBJECT(about));
728842 }
729843
730844
731845 static void
732846 virt_viewer_window_toolbar_setup(VirtViewerWindow *self)
733847 {
734 GtkWidget *button;
735 VirtViewerWindowPrivate *priv = self->priv;
736
737 priv->toolbar = gtk_toolbar_new();
738 gtk_toolbar_set_show_arrow(GTK_TOOLBAR(priv->toolbar), FALSE);
739 gtk_widget_set_no_show_all(priv->toolbar, TRUE);
740 gtk_toolbar_set_style(GTK_TOOLBAR(priv->toolbar), GTK_TOOLBAR_BOTH_HORIZ);
741
742 /* Close connection */
743 button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE));
744 gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Disconnect"));
745 gtk_widget_show(GTK_WIDGET(button));
746 gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM (button), 0);
747 g_signal_connect(button, "clicked", G_CALLBACK(gtk_main_quit), NULL);
748
749 /* Leave fullscreen */
750 button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN));
751 gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("Leave fullscreen"));
752 gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Leave fullscreen"));
753 gtk_tool_item_set_is_important(GTK_TOOL_ITEM(button), TRUE);
754 gtk_widget_show(GTK_WIDGET(button));
755 gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
756 g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_leave_fullscreen), self);
757
758 priv->layout = ViewAutoDrawer_New();
759
760 ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
761 ViewOvBox_SetOver(VIEW_OV_BOX(priv->layout), priv->toolbar);
762 ViewOvBox_SetUnder(VIEW_OV_BOX(priv->layout), GTK_WIDGET(priv->notebook));
763 ViewAutoDrawer_SetOffset(VIEW_AUTODRAWER(priv->layout), -1);
764 ViewAutoDrawer_SetFill(VIEW_AUTODRAWER(priv->layout), FALSE);
765 ViewAutoDrawer_SetOverlapPixels(VIEW_AUTODRAWER(priv->layout), 1);
766 ViewAutoDrawer_SetNoOverlapPixels(VIEW_AUTODRAWER(priv->layout), 0);
767 gtk_widget_show(priv->layout);
848 GtkWidget *button;
849 VirtViewerWindowPrivate *priv = self->priv;
850
851 priv->toolbar = gtk_toolbar_new();
852 gtk_toolbar_set_show_arrow(GTK_TOOLBAR(priv->toolbar), FALSE);
853 gtk_widget_set_no_show_all(priv->toolbar, TRUE);
854 gtk_toolbar_set_style(GTK_TOOLBAR(priv->toolbar), GTK_TOOLBAR_BOTH_HORIZ);
855
856 /* Close connection */
857 button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_CLOSE));
858 gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Disconnect"));
859 gtk_widget_show(GTK_WIDGET(button));
860 gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM (button), 0);
861 g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_menu_file_quit), self);
862
863 /* USB Device selection */
864 button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_PREFERENCES));
865 gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("USB device selection"));
866 gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("USB device selection"));
867 gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
868 g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_menu_file_usb_device_selection), self);
869 priv->toolbar_usb_device_selection = button;
870
871 /* Send key */
872 button = GTK_WIDGET(gtk_tool_button_new(NULL, NULL));
873 gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(button), "preferences-desktop-keyboard-shortcuts");
874 gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Send key combination"));
875 gtk_widget_show(GTK_WIDGET(button));
876 gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
877 g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_send_key), self);
878 gtk_widget_set_sensitive(button, FALSE);
879 priv->toolbar_send_key = button;
880
881 /* Leave fullscreen */
882 button = GTK_WIDGET(gtk_tool_button_new_from_stock(GTK_STOCK_LEAVE_FULLSCREEN));
883 gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), _("Leave fullscreen"));
884 gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(button), _("Leave fullscreen"));
885 gtk_tool_item_set_is_important(GTK_TOOL_ITEM(button), TRUE);
886 gtk_widget_show(GTK_WIDGET(button));
887 gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
888 g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_leave_fullscreen), self);
889
890 priv->layout = ViewAutoDrawer_New();
891
892 ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE);
893 ViewOvBox_SetOver(VIEW_OV_BOX(priv->layout), priv->toolbar);
894 ViewOvBox_SetUnder(VIEW_OV_BOX(priv->layout), GTK_WIDGET(priv->notebook));
895 ViewAutoDrawer_SetOffset(VIEW_AUTODRAWER(priv->layout), -1);
896 ViewAutoDrawer_SetFill(VIEW_AUTODRAWER(priv->layout), FALSE);
897 ViewAutoDrawer_SetOverlapPixels(VIEW_AUTODRAWER(priv->layout), 1);
898 ViewAutoDrawer_SetNoOverlapPixels(VIEW_AUTODRAWER(priv->layout), 0);
899 gtk_widget_show(priv->layout);
768900 }
769901
770902 VirtViewerNotebook*
771903 virt_viewer_window_get_notebook (VirtViewerWindow *self)
772904 {
773 return VIRT_VIEWER_NOTEBOOK(self->priv->notebook);
905 return VIRT_VIEWER_NOTEBOOK(self->priv->notebook);
774906 }
775907
776908 GtkWindow*
777909 virt_viewer_window_get_window (VirtViewerWindow *self)
778910 {
779 return GTK_WINDOW(self->priv->window);
911 return GTK_WINDOW(self->priv->window);
780912 }
781913
782914 static void
783915 virt_viewer_window_pointer_grab(VirtViewerDisplay *display G_GNUC_UNUSED,
784 VirtViewerWindow *self)
785 {
786 VirtViewerWindowPrivate *priv = self->priv;
787
788 priv->grabbed = TRUE;
789 virt_viewer_window_update_title(self);
916 VirtViewerWindow *self)
917 {
918 VirtViewerWindowPrivate *priv = self->priv;
919
920 priv->grabbed = TRUE;
921 virt_viewer_window_update_title(self);
790922 }
791923
792924 static void
793925 virt_viewer_window_pointer_ungrab(VirtViewerDisplay *display G_GNUC_UNUSED,
794 VirtViewerWindow *self)
795 {
796 VirtViewerWindowPrivate *priv = self->priv;
797
798 priv->grabbed = FALSE;
799 virt_viewer_window_update_title(self);
926 VirtViewerWindow *self)
927 {
928 VirtViewerWindowPrivate *priv = self->priv;
929
930 priv->grabbed = FALSE;
931 virt_viewer_window_update_title(self);
800932 }
801933
802934 static void
803935 virt_viewer_window_keyboard_grab(VirtViewerDisplay *display G_GNUC_UNUSED,
804 VirtViewerWindow *self)
805 {
806 virt_viewer_window_disable_modifiers(self);
936 VirtViewerWindow *self)
937 {
938 virt_viewer_window_disable_modifiers(self);
807939 }
808940
809941 static void
810942 virt_viewer_window_keyboard_ungrab(VirtViewerDisplay *display G_GNUC_UNUSED,
811 VirtViewerWindow *self)
812 {
813 virt_viewer_window_enable_modifiers(self);
943 VirtViewerWindow *self)
944 {
945 virt_viewer_window_enable_modifiers(self);
814946 }
815947
816948 void
817949 virt_viewer_window_update_title(VirtViewerWindow *self)
818950 {
819 VirtViewerWindowPrivate *priv = self->priv;
820 char *title;
821 const char *subtitle;
822
823 if (priv->grabbed)
824 subtitle = "(Press Ctrl+Alt to release pointer) ";
825 else
826 subtitle = "";
827
828 if (priv->subtitle)
829 title = g_strdup_printf("%s%s - Virt Viewer",
830 subtitle, priv->subtitle);
831 else
832 title = g_strdup("Virt Viewer");
833
834 gtk_window_set_title(GTK_WINDOW(priv->window), title);
835
836 g_free(title);
951 VirtViewerWindowPrivate *priv = self->priv;
952 char *title;
953 gchar *ungrab = NULL;
954
955 if (priv->grabbed) {
956 gchar *label;
957
958 if (virt_viewer_app_get_enable_accel(priv->app)) {
959 GtkAccelKey key;
960 gtk_accel_map_lookup_entry("<virt-viewer>/view/release-cursor", &key);
961 label = gtk_accelerator_get_label(key.accel_key, key.accel_mods);
962 } else {
963 label = g_strdup(_("Ctrl+Alt"));
964 }
965
966 ungrab = g_strdup_printf(_("(Press %s to release pointer)"), label);
967 g_free(label);
968 }
969
970 if (!ungrab && !priv->subtitle)
971 title = g_strdup(g_get_application_name());
972 else
973 /* translators:
974 * This is "<ungrab (or empty)><space (or empty)><subtitle (or empty)> - <appname>"
975 * Such as: "(Press Ctrl+Alt to release pointer) BigCorpTycoon MOTD - Virt Viewer"
976 */
977 title = g_strdup_printf(_("%s%s%s - %s"),
978 /* translators: <ungrab empty> */
979 ungrab ? ungrab : "",
980 /* translators: <space> */
981 ungrab && priv->subtitle ? _(" ") : "",
982 priv->subtitle,
983 g_get_application_name());
984
985 gtk_window_set_title(GTK_WINDOW(priv->window), title);
986
987 g_free(title);
988 g_free(ungrab);
989 }
990
991 void
992 virt_viewer_window_set_usb_options_sensitive(VirtViewerWindow *self, gboolean sensitive)
993 {
994 VirtViewerWindowPrivate *priv;
995 GtkWidget *menu;
996
997 g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
998
999 priv = self->priv;
1000 menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-file-usb-device-selection"));
1001 gtk_widget_set_sensitive(menu, sensitive);
1002 gtk_widget_set_visible(priv->toolbar_usb_device_selection, sensitive);
1003 }
1004
1005 static void
1006 display_show_hint(VirtViewerDisplay *display,
1007 GParamSpec *pspec G_GNUC_UNUSED,
1008 VirtViewerWindow *self)
1009 {
1010 guint hint;
1011
1012 g_object_get(display, "show-hint", &hint, NULL);
1013
1014 hint = (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY);
1015
1016 gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), hint);
1017 gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), hint);
1018 gtk_widget_set_sensitive(self->priv->toolbar_send_key, hint);
8371019 }
8381020
8391021 void
8401022 virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display)
8411023 {
842 VirtViewerWindowPrivate *priv;
843
844 g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
845 g_return_if_fail(display == NULL || VIRT_VIEWER_IS_DISPLAY(display));
846
847 priv = self->priv;
848 if (priv->display) {
849 gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), 1);
850 g_object_unref(priv->display);
851 priv->display = NULL;
852 }
853
854 if (display != NULL) {
855 priv->display = g_object_ref(display);
856
857 gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL);
858 if (gtk_bin_get_child(GTK_BIN(display)))
859 gtk_widget_realize(GTK_WIDGET(gtk_bin_get_child(GTK_BIN(display))));
860 gtk_widget_show_all(GTK_WIDGET(display));
861
862 g_signal_connect(display, "display-pointer-grab",
863 G_CALLBACK(virt_viewer_window_pointer_grab), self);
864 g_signal_connect(display, "display-pointer-ungrab",
865 G_CALLBACK(virt_viewer_window_pointer_ungrab), self);
866 g_signal_connect(display, "display-keyboard-grab",
867 G_CALLBACK(virt_viewer_window_keyboard_grab), self);
868 g_signal_connect(display, "display-keyboard-ungrab",
869 G_CALLBACK(virt_viewer_window_keyboard_ungrab), self);
870 g_signal_connect(display, "display-desktop-resize",
871 G_CALLBACK(virt_viewer_window_desktop_resize), self);
872 }
1024 VirtViewerWindowPrivate *priv;
1025
1026 g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
1027 g_return_if_fail(display == NULL || VIRT_VIEWER_IS_DISPLAY(display));
1028
1029 priv = self->priv;
1030 if (priv->display) {
1031 gtk_notebook_remove_page(GTK_NOTEBOOK(priv->notebook), 1);
1032 g_object_unref(priv->display);
1033 priv->display = NULL;
1034 }
1035
1036 if (display != NULL) {
1037 priv->display = g_object_ref(display);
1038
1039 virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
1040 virt_viewer_display_set_auto_resize(VIRT_VIEWER_DISPLAY(priv->display), priv->auto_resize);
1041
1042 gtk_widget_show_all(GTK_WIDGET(display));
1043 gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL);
1044 /* switch back to non-display if not ready */
1045 if (!(virt_viewer_display_get_show_hint(display) &
1046 VIRT_VIEWER_DISPLAY_SHOW_HINT_READY))
1047 gtk_notebook_set_current_page(GTK_NOTEBOOK(priv->notebook), 0);
1048
1049 virt_viewer_signal_connect_object(display, "display-pointer-grab",
1050 G_CALLBACK(virt_viewer_window_pointer_grab), self, 0);
1051 virt_viewer_signal_connect_object(display, "display-pointer-ungrab",
1052 G_CALLBACK(virt_viewer_window_pointer_ungrab), self, 0);
1053 virt_viewer_signal_connect_object(display, "display-keyboard-grab",
1054 G_CALLBACK(virt_viewer_window_keyboard_grab), self, 0);
1055 virt_viewer_signal_connect_object(display, "display-keyboard-ungrab",
1056 G_CALLBACK(virt_viewer_window_keyboard_ungrab), self, 0);
1057 virt_viewer_signal_connect_object(display, "display-desktop-resize",
1058 G_CALLBACK(virt_viewer_window_desktop_resize), self, 0);
1059 virt_viewer_signal_connect_object(display, "notify::show-hint",
1060 G_CALLBACK(display_show_hint), self, 0);
1061 }
1062 }
1063
1064 void
1065 virt_viewer_window_show(VirtViewerWindow *self)
1066 {
1067 gtk_widget_show(self->priv->window);
1068
1069 if (self->priv->display)
1070 virt_viewer_display_set_enabled(self->priv->display, TRUE);
1071
1072 if (self->priv->desktop_resize_pending) {
1073 virt_viewer_window_resize(self);
1074 self->priv->desktop_resize_pending = FALSE;
1075 }
1076 }
1077
1078 void
1079 virt_viewer_window_hide(VirtViewerWindow *self)
1080 {
1081 gtk_widget_hide(self->priv->window);
1082
1083 if (self->priv->display) {
1084 VirtViewerDisplay *display = self->priv->display;
1085 guint nth;
1086
1087 g_object_get(display, "nth-display", &nth, NULL);
1088 if (nth != 0)
1089 virt_viewer_display_set_enabled(display, FALSE);
1090 }
8731091 }
8741092
8751093 void
8761094 virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level)
8771095 {
878 g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
879
880 /* FIXME: turn into a dynamic property */
881 self->priv->zoomlevel = zoom_level;
1096 g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self));
1097
1098 /* FIXME: turn into a dynamic property */
1099 self->priv->zoomlevel = zoom_level;
1100 }
1101
1102 gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self)
1103 {
1104 g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), 100);
1105 return self->priv->zoomlevel;
8821106 }
8831107
8841108 GtkMenuItem*
8851109 virt_viewer_window_get_menu_displays(VirtViewerWindow *self)
8861110 {
887 g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
888 return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays"));
1111 g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
1112
1113 return GTK_MENU_ITEM(gtk_builder_get_object(self->priv->builder, "menu-displays"));
1114 }
1115
1116 GtkBuilder*
1117 virt_viewer_window_get_builder(VirtViewerWindow *self)
1118 {
1119 g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL);
1120
1121 return self->priv->builder;
1122 }
1123
1124 VirtViewerDisplay*
1125 virt_viewer_window_get_display(VirtViewerWindow *self)
1126 {
1127 g_return_val_if_fail(VIRT_VIEWER_WINDOW(self), FALSE);
1128
1129 return self->priv->display;
8891130 }
8901131
8911132 /*
8921133 * Local variables:
893 * c-indent-level: 8
894 * c-basic-offset: 8
895 * tab-width: 8
896 * indent-tabs-mode: t
1134 * c-indent-level: 4
1135 * c-basic-offset: 4
1136 * indent-tabs-mode: nil
8971137 * End:
8981138 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3131
3232 #define VIRT_VIEWER_TYPE_WINDOW virt_viewer_window_get_type()
3333
34 #define VIRT_VIEWER_WINDOW(obj) \
35 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindow))
34 #define VIRT_VIEWER_WINDOW(obj) \
35 (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindow))
3636
37 #define VIRT_VIEWER_WINDOW_CLASS(klass) \
38 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
37 #define VIRT_VIEWER_WINDOW_CLASS(klass) \
38 (G_TYPE_CHECK_CLASS_CAST ((klass), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
3939
40 #define VIRT_VIEWER_IS_WINDOW(obj) \
41 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_WINDOW))
40 #define VIRT_VIEWER_IS_WINDOW(obj) \
41 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIRT_VIEWER_TYPE_WINDOW))
4242
43 #define VIRT_VIEWER_IS_WINDOW_CLASS(klass) \
44 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_WINDOW))
43 #define VIRT_VIEWER_IS_WINDOW_CLASS(klass) \
44 (G_TYPE_CHECK_CLASS_TYPE ((klass), VIRT_VIEWER_TYPE_WINDOW))
4545
46 #define VIRT_VIEWER_WINDOW_GET_CLASS(obj) \
47 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
46 #define VIRT_VIEWER_WINDOW_GET_CLASS(obj) \
47 (G_TYPE_INSTANCE_GET_CLASS ((obj), VIRT_VIEWER_TYPE_WINDOW, VirtViewerWindowClass))
4848
4949 typedef struct _VirtViewerWindowPrivate VirtViewerWindowPrivate;
5050
5151 typedef struct {
52 GObject parent;
53 VirtViewerWindowPrivate *priv;
52 GObject parent;
53 VirtViewerWindowPrivate *priv;
5454 } VirtViewerWindow;
5555
5656 typedef struct {
57 GObjectClass parent_class;
57 GObjectClass parent_class;
5858 } VirtViewerWindowClass;
5959
6060 GType virt_viewer_window_get_type (void);
6262 GtkWindow* virt_viewer_window_get_window (VirtViewerWindow* window);
6363 VirtViewerNotebook* virt_viewer_window_get_notebook (VirtViewerWindow* window);
6464 void virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display);
65 VirtViewerDisplay* virt_viewer_window_get_display(VirtViewerWindow *self);
66 void virt_viewer_window_set_usb_options_sensitive(VirtViewerWindow *self, gboolean sensitive);
6567 void virt_viewer_window_update_title(VirtViewerWindow *self);
68 void virt_viewer_window_show(VirtViewerWindow *self);
69 void virt_viewer_window_hide(VirtViewerWindow *self);
6670 void virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level);
71 gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self);
6772 void virt_viewer_window_leave_fullscreen(VirtViewerWindow *self);
6873 void virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gboolean move, gint x, gint y);
6974 GtkMenuItem *virt_viewer_window_get_menu_displays(VirtViewerWindow *self);
75 GtkBuilder* virt_viewer_window_get_builder(VirtViewerWindow *window);
7076
7177 G_END_DECLS
7278
7379 #endif /* _VIRT_VIEWER_WINDOW */
80
7481 /*
7582 * Local variables:
76 * c-indent-level: 8
77 * c-basic-offset: 8
78 * tab-width: 8
79 * indent-tabs-mode: t
83 * c-indent-level: 4
84 * c-basic-offset: 4
85 * indent-tabs-mode: nil
8086 * End:
8187 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007-2009 Red Hat,
4 * Copyright (C) 2009 Daniel P. Berrange
3 * Copyright (C) 2007-2012 Red Hat, Inc.
4 * Copyright (C) 2009-2012 Daniel P. Berrange
55 * Copyright (C) 2010 Marc-André Lureau
66 *
77 * This program is free software; you can redistribute it and/or modify
3939 #include <libxml/xpath.h>
4040 #include <libxml/uri.h>
4141
42 #if defined(HAVE_SOCKETPAIR)
43 #include <sys/socket.h>
44 #endif
45
4246 #include "virt-viewer.h"
4347 #include "virt-viewer-app.h"
4448 #include "virt-viewer-events.h"
4549 #include "virt-viewer-auth.h"
4650
4751 struct _VirtViewerPrivate {
48 char *uri;
49 virConnectPtr conn;
50 char *domkey;
51 char *domtitle;
52 gboolean withEvents;
53 gboolean waitvm;
54 gboolean reconnect;
52 char *uri;
53 virConnectPtr conn;
54 virDomainPtr dom;
55 char *domkey;
56 gboolean withEvents;
57 gboolean waitvm;
58 gboolean reconnect;
5559 };
5660
5761 G_DEFINE_TYPE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP)
58 #define GET_PRIVATE(o) \
59 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate))
62 #define GET_PRIVATE(o) \
63 (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIRT_VIEWER_TYPE, VirtViewerPrivate))
6064
6165 static int virt_viewer_initial_connect(VirtViewerApp *self);
66 static gboolean virt_viewer_open_connection(VirtViewerApp *self, int *fd);
6267 static void virt_viewer_deactivated(VirtViewerApp *self);
6368 static gboolean virt_viewer_start(VirtViewerApp *self);
6469
6570 static void
6671 virt_viewer_get_property (GObject *object, guint property_id,
67 GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
68 {
69 switch (property_id) {
70 default:
71 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
72 }
72 GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
73 {
74 switch (property_id) {
75 default:
76 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
77 }
7378 }
7479
7580 static void
7681 virt_viewer_set_property (GObject *object, guint property_id,
77 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
78 {
79 switch (property_id) {
80 default:
81 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
82 }
82 const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
83 {
84 switch (property_id) {
85 default:
86 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
87 }
8388 }
8489
8590 static void
8691 virt_viewer_dispose (GObject *object)
8792 {
88 G_OBJECT_CLASS(virt_viewer_parent_class)->dispose (object);
93 VirtViewer *self = VIRT_VIEWER(object);
94 VirtViewerPrivate *priv = self->priv;
95 if (priv->dom)
96 virDomainFree(priv->dom);
97 if (priv->conn)
98 virConnectClose(priv->conn);
99 G_OBJECT_CLASS(virt_viewer_parent_class)->dispose (object);
89100 }
90101
91102 static void
92103 virt_viewer_class_init (VirtViewerClass *klass)
93104 {
94 GObjectClass *object_class = G_OBJECT_CLASS (klass);
95 VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
96
97 g_type_class_add_private (klass, sizeof (VirtViewerPrivate));
98
99 object_class->get_property = virt_viewer_get_property;
100 object_class->set_property = virt_viewer_set_property;
101 object_class->dispose = virt_viewer_dispose;
102
103 app_class->initial_connect = virt_viewer_initial_connect;
104 app_class->deactivated = virt_viewer_deactivated;
105 app_class->start = virt_viewer_start;
105 GObjectClass *object_class = G_OBJECT_CLASS (klass);
106 VirtViewerAppClass *app_class = VIRT_VIEWER_APP_CLASS (klass);
107
108 g_type_class_add_private (klass, sizeof (VirtViewerPrivate));
109
110 object_class->get_property = virt_viewer_get_property;
111 object_class->set_property = virt_viewer_set_property;
112 object_class->dispose = virt_viewer_dispose;
113
114 app_class->initial_connect = virt_viewer_initial_connect;
115 app_class->deactivated = virt_viewer_deactivated;
116 app_class->open_connection = virt_viewer_open_connection;
117 app_class->start = virt_viewer_start;
106118 }
107119
108120 static void
109121 virt_viewer_init(VirtViewer *self)
110122 {
111 self->priv = GET_PRIVATE(self);
123 self->priv = GET_PRIVATE(self);
112124 }
113125
114126 static void
115127 virt_viewer_deactivated(VirtViewerApp *app)
116128 {
117 VirtViewer *self = VIRT_VIEWER(app);
118 VirtViewerPrivate *priv = self->priv;
119
120 if (priv->reconnect) {
121 if (!priv->withEvents) {
122 DEBUG_LOG("No domain events, falling back to polling");
123 virt_viewer_app_start_reconnect_poll(app);
124 }
125
126 virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start"));
127 virt_viewer_app_trace(app, "Guest %s display has disconnected, waiting to reconnect", priv->domkey);
128 } else {
129 VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->deactivated(app);
130 }
129 VirtViewer *self = VIRT_VIEWER(app);
130 VirtViewerPrivate *priv = self->priv;
131
132 if (priv->dom) {
133 virDomainFree(priv->dom);
134 priv->dom = NULL;
135 }
136
137 if (priv->reconnect) {
138 if (!priv->withEvents) {
139 DEBUG_LOG("No domain events, falling back to polling");
140 virt_viewer_app_start_reconnect_poll(app);
141 }
142
143 virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start"));
144 virt_viewer_app_trace(app, "Guest %s display has disconnected, waiting to reconnect", priv->domkey);
145 } else {
146 VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->deactivated(app);
147 }
131148 }
132149
133150 static int
134151 virt_viewer_parse_uuid(const char *name,
135 unsigned char *uuid)
136 {
137 int i;
138
139 const char *cur = name;
140 for (i = 0;i < 16;) {
141 uuid[i] = 0;
142 if (*cur == 0)
143 return -1;
144 if ((*cur == '-') || (*cur == ' ')) {
145 cur++;
146 continue;
147 }
148 if ((*cur >= '0') && (*cur <= '9'))
149 uuid[i] = *cur - '0';
150 else if ((*cur >= 'a') && (*cur <= 'f'))
151 uuid[i] = *cur - 'a' + 10;
152 else if ((*cur >= 'A') && (*cur <= 'F'))
153 uuid[i] = *cur - 'A' + 10;
154 else
155 return -1;
156 uuid[i] *= 16;
157 cur++;
158 if (*cur == 0)
159 return -1;
160 if ((*cur >= '0') && (*cur <= '9'))
161 uuid[i] += *cur - '0';
162 else if ((*cur >= 'a') && (*cur <= 'f'))
163 uuid[i] += *cur - 'a' + 10;
164 else if ((*cur >= 'A') && (*cur <= 'F'))
165 uuid[i] += *cur - 'A' + 10;
166 else
167 return -1;
168 i++;
169 cur++;
170 }
171
172 return 0;
152 unsigned char *uuid)
153 {
154 int i;
155
156 const char *cur = name;
157 for (i = 0;i < 16;) {
158 uuid[i] = 0;
159 if (*cur == 0)
160 return -1;
161 if ((*cur == '-') || (*cur == ' ')) {
162 cur++;
163 continue;
164 }
165 if ((*cur >= '0') && (*cur <= '9'))
166 uuid[i] = *cur - '0';
167 else if ((*cur >= 'a') && (*cur <= 'f'))
168 uuid[i] = *cur - 'a' + 10;
169 else if ((*cur >= 'A') && (*cur <= 'F'))
170 uuid[i] = *cur - 'A' + 10;
171 else
172 return -1;
173 uuid[i] *= 16;
174 cur++;
175 if (*cur == 0)
176 return -1;
177 if ((*cur >= '0') && (*cur <= '9'))
178 uuid[i] += *cur - '0';
179 else if ((*cur >= 'a') && (*cur <= 'f'))
180 uuid[i] += *cur - 'a' + 10;
181 else if ((*cur >= 'A') && (*cur <= 'F'))
182 uuid[i] += *cur - 'A' + 10;
183 else
184 return -1;
185 i++;
186 cur++;
187 }
188
189 return 0;
173190 }
174191
175192
176193 static virDomainPtr
177194 virt_viewer_lookup_domain(VirtViewer *self)
178195 {
179 char *end;
180 VirtViewerPrivate *priv = self->priv;
181 int id = strtol(priv->domkey, &end, 10);
182 virDomainPtr dom = NULL;
183 unsigned char uuid[16];
184
185 if (id >= 0 && end && !*end) {
186 dom = virDomainLookupByID(priv->conn, id);
187 }
188 if (!dom && virt_viewer_parse_uuid(priv->domkey, uuid) == 0) {
189 dom = virDomainLookupByUUID(priv->conn, uuid);
190 }
191 if (!dom) {
192 dom = virDomainLookupByName(priv->conn, priv->domkey);
193 }
194 return dom;
196 char *end;
197 VirtViewerPrivate *priv = self->priv;
198 int id = strtol(priv->domkey, &end, 10);
199 virDomainPtr dom = NULL;
200 unsigned char uuid[16];
201
202 if (id >= 0 && end && !*end) {
203 dom = virDomainLookupByID(priv->conn, id);
204 }
205 if (!dom && virt_viewer_parse_uuid(priv->domkey, uuid) == 0) {
206 dom = virDomainLookupByUUID(priv->conn, uuid);
207 }
208 if (!dom) {
209 dom = virDomainLookupByName(priv->conn, priv->domkey);
210 }
211 return dom;
195212 }
196213
197214 static int
198215 virt_viewer_matches_domain(VirtViewer *self,
199 virDomainPtr dom)
200 {
201 char *end;
202 const char *name;
203 VirtViewerPrivate *priv = self->priv;
204 int id = strtol(priv->domkey, &end, 10);
205 unsigned char wantuuid[16];
206 unsigned char domuuid[16];
207
208 if (id >= 0 && end && !*end) {
209 if (virDomainGetID(dom) == id)
210 return 1;
211 }
212 if (virt_viewer_parse_uuid(priv->domkey, wantuuid) == 0) {
213 virDomainGetUUID(dom, domuuid);
214 if (memcmp(wantuuid, domuuid, VIR_UUID_BUFLEN) == 0)
215 return 1;
216 }
217
218 name = virDomainGetName(dom);
219 if (strcmp(name, priv->domkey) == 0)
220 return 1;
221
222 return 0;
216 virDomainPtr dom)
217 {
218 char *end;
219 const char *name;
220 VirtViewerPrivate *priv = self->priv;
221 int id = strtol(priv->domkey, &end, 10);
222 unsigned char wantuuid[16];
223 unsigned char domuuid[16];
224
225 if (id >= 0 && end && !*end) {
226 if (virDomainGetID(dom) == id)
227 return 1;
228 }
229 if (virt_viewer_parse_uuid(priv->domkey, wantuuid) == 0) {
230 virDomainGetUUID(dom, domuuid);
231 if (memcmp(wantuuid, domuuid, VIR_UUID_BUFLEN) == 0)
232 return 1;
233 }
234
235 name = virDomainGetName(dom);
236 if (strcmp(name, priv->domkey) == 0)
237 return 1;
238
239 return 0;
223240 }
224241
225242 static char *
226243 virt_viewer_extract_xpath_string(const gchar *xmldesc,
227 const gchar *xpath)
228 {
229 xmlDocPtr xml = NULL;
230 xmlParserCtxtPtr pctxt = NULL;
231 xmlXPathContextPtr ctxt = NULL;
232 xmlXPathObjectPtr obj = NULL;
233 char *port = NULL;
234
235 pctxt = xmlNewParserCtxt();
236 if (!pctxt || !pctxt->sax)
237 goto error;
238
239 xml = xmlCtxtReadDoc(pctxt, (const xmlChar *)xmldesc, "domain.xml", NULL,
240 XML_PARSE_NOENT | XML_PARSE_NONET |
241 XML_PARSE_NOWARNING);
242 if (!xml)
243 goto error;
244
245 ctxt = xmlXPathNewContext(xml);
246 if (!ctxt)
247 goto error;
248
249 obj = xmlXPathEval((const xmlChar *)xpath, ctxt);
250 if (!obj || obj->type != XPATH_STRING || !obj->stringval || !obj->stringval[0])
251 goto error;
252 if (!strcmp((const char*)obj->stringval, "-1"))
253 goto error;
254
255 port = g_strdup((const char*)obj->stringval);
256 xmlXPathFreeObject(obj);
257 obj = NULL;
244 const gchar *xpath)
245 {
246 xmlDocPtr xml = NULL;
247 xmlParserCtxtPtr pctxt = NULL;
248 xmlXPathContextPtr ctxt = NULL;
249 xmlXPathObjectPtr obj = NULL;
250 char *port = NULL;
251
252 pctxt = xmlNewParserCtxt();
253 if (!pctxt || !pctxt->sax)
254 goto error;
255
256 xml = xmlCtxtReadDoc(pctxt, (const xmlChar *)xmldesc, "domain.xml", NULL,
257 XML_PARSE_NOENT | XML_PARSE_NONET |
258 XML_PARSE_NOWARNING);
259 if (!xml)
260 goto error;
261
262 ctxt = xmlXPathNewContext(xml);
263 if (!ctxt)
264 goto error;
265
266 obj = xmlXPathEval((const xmlChar *)xpath, ctxt);
267 if (!obj || obj->type != XPATH_STRING || !obj->stringval || !obj->stringval[0])
268 goto error;
269 if (!strcmp((const char*)obj->stringval, "-1"))
270 goto error;
271
272 port = g_strdup((const char*)obj->stringval);
273 xmlXPathFreeObject(obj);
274 obj = NULL;
258275
259276 error:
260 if (obj)
261 xmlXPathFreeObject(obj);
262 if (ctxt)
263 xmlXPathFreeContext(ctxt);
264 if (xml)
265 xmlFreeDoc(xml);
266 if (pctxt)
267 xmlFreeParserCtxt(pctxt);
268 return port;
277 xmlXPathFreeObject(obj);
278 xmlXPathFreeContext(ctxt);
279 xmlFreeDoc(xml);
280 xmlFreeParserCtxt(pctxt);
281 return port;
269282 }
270283
271284 static gboolean
272285 virt_viewer_extract_connect_info(VirtViewer *self,
273 virDomainPtr dom)
274 {
275 char *type = NULL;
276 char *xpath = NULL;
277 gboolean retval = FALSE;
278 char *xmldesc = virDomainGetXMLDesc(dom, 0);
279 VirtViewerPrivate *priv = self->priv;
280 VirtViewerApp *app = VIRT_VIEWER_APP(self);
281 gchar *gport = NULL;
282 gchar *ghost = NULL;
283 gchar *unixsock = NULL;
284 gchar *host = NULL;
285 gchar *transport = NULL;
286 gchar *user = NULL;
287 gint port = 0;
288
289 virt_viewer_app_free_connect_info(app);
290
291 if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) {
292 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"),
293 priv->domkey);
294 goto cleanup;
295 }
296
297 if (virt_viewer_app_create_session(app, type) < 0)
298 goto cleanup;
299
300 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@port)", type);
301 if ((gport = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
302 free(xpath);
303 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@socket)", type);
304 if ((unixsock = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
305 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic address for the guest %s"),
306 priv->domkey);
307 goto cleanup;
308 }
309 } else {
310 free(xpath);
311 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@listen)", type);
312 ghost = virt_viewer_extract_xpath_string(xmldesc, xpath);
313 if (ghost == NULL)
314 ghost = g_strdup("localhost");
315 }
316
317 if (gport)
318 DEBUG_LOG("Guest graphics address is %s:%s", ghost, gport);
319 else
320 DEBUG_LOG("Guest graphics address is %s", unixsock);
321
322 if (virt_viewer_util_extract_host(priv->uri, NULL, &host, &transport, &user, &port) < 0) {
323 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"),
324 priv->domkey);
325 goto cleanup;
326 }
327
328 virt_viewer_app_set_connect_info(app, host, ghost, gport, transport, unixsock, user, port);
329
330 retval = TRUE;
286 virDomainPtr dom)
287 {
288 char *type = NULL;
289 char *xpath = NULL;
290 gboolean retval = FALSE;
291 char *xmldesc = virDomainGetXMLDesc(dom, 0);
292 VirtViewerPrivate *priv = self->priv;
293 VirtViewerApp *app = VIRT_VIEWER_APP(self);
294 gchar *gport = NULL;
295 gchar *gtlsport = NULL;
296 gchar *ghost = NULL;
297 gchar *unixsock = NULL;
298 gchar *host = NULL;
299 gchar *transport = NULL;
300 gchar *user = NULL;
301 gint port = 0;
302 gchar *uri = NULL;
303
304 virt_viewer_app_free_connect_info(app);
305
306 if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) {
307 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"),
308 priv->domkey);
309 goto cleanup;
310 }
311
312 if (virt_viewer_app_create_session(app, type) < 0)
313 goto cleanup;
314
315 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@port)", type);
316 if ((gport = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
317 free(xpath);
318 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@socket)", type);
319 if ((unixsock = virt_viewer_extract_xpath_string(xmldesc, xpath)) == NULL) {
320 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic address for the guest %s"),
321 priv->domkey);
322 goto cleanup;
323 }
324 } else {
325 if (g_str_equal(type, "spice")) {
326 free(xpath);
327 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@tlsPort)", type);
328 gtlsport = virt_viewer_extract_xpath_string(xmldesc, xpath);
329 }
330
331 free(xpath);
332 xpath = g_strdup_printf("string(/domain/devices/graphics[@type='%s']/@listen)", type);
333 ghost = virt_viewer_extract_xpath_string(xmldesc, xpath);
334 }
335
336 if (ghost && gport)
337 DEBUG_LOG("Guest graphics address is %s:%s", ghost, gport);
338 else if (unixsock)
339 DEBUG_LOG("Guest graphics address is %s", unixsock);
340
341 uri = virConnectGetURI(priv->conn);
342 if (virt_viewer_util_extract_host(uri, NULL, &host, &transport, &user, &port) < 0) {
343 virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"),
344 priv->domkey);
345 goto cleanup;
346 }
347
348 /* If the XML listen attribute shows a wildcard address, we need to
349 * throw that away since you obviously can't 'connect(2)' to that
350 * from a remote host. Instead we fallback to the hostname used in
351 * the libvirt URI. This isn't perfect but it is better than nothing
352 */
353 if (!ghost ||
354 (strcmp(ghost, "0.0.0.0") == 0 ||
355 strcmp(ghost, "::") == 0)) {
356 DEBUG_LOG("Guest graphics listen '%s' is NULL or a wildcard, replacing with '%s'",
357 ghost ? ghost : "", host);
358 g_free(ghost);
359 ghost = g_strdup(host);
360 }
361
362 virt_viewer_app_set_connect_info(app, host, ghost, gport, gtlsport,transport, unixsock, user, port, NULL);
363
364 retval = TRUE;
331365
332366 cleanup:
333 g_free(gport);
334 g_free(ghost);
335 g_free(unixsock);
336 g_free(host);
337 g_free(transport);
338 g_free(user);
339 g_free(type);
340 g_free(xpath);
341 g_free(xmldesc);
342 return retval;
367 g_free(gport);
368 g_free(gtlsport);
369 g_free(ghost);
370 g_free(unixsock);
371 g_free(host);
372 g_free(transport);
373 g_free(user);
374 g_free(type);
375 g_free(xpath);
376 g_free(xmldesc);
377 g_free(uri);
378 return retval;
343379 }
344380
345381 static int
346382 virt_viewer_update_display(VirtViewer *self, virDomainPtr dom)
347383 {
348 VirtViewerPrivate *priv = self->priv;
349 VirtViewerApp *app = VIRT_VIEWER_APP(self);
350
351 virt_viewer_app_trace(app, "Guest %s is running, determining display\n",
352 priv->domkey);
353
354 if (!virt_viewer_app_has_session(app)) {
355 if (!virt_viewer_extract_connect_info(self, dom))
356 return -1;
357 }
358
359 return 0;
384 VirtViewerPrivate *priv = self->priv;
385 VirtViewerApp *app = VIRT_VIEWER_APP(self);
386
387 if (priv->dom)
388 virDomainFree(priv->dom);
389 priv->dom = dom;
390 virDomainRef(priv->dom);
391
392 virt_viewer_app_trace(app, "Guest %s is running, determining display\n",
393 priv->domkey);
394
395 g_object_set(app, "title", virDomainGetName(dom), NULL);
396
397 if (!virt_viewer_app_has_session(app)) {
398 if (!virt_viewer_extract_connect_info(self, dom))
399 return -1;
400 }
401
402 return 0;
403 }
404
405 static gboolean
406 virt_viewer_open_connection(VirtViewerApp *self G_GNUC_UNUSED, int *fd)
407 {
408 #if defined(HAVE_SOCKETPAIR)
409 VirtViewer *viewer = VIRT_VIEWER(self);
410 VirtViewerPrivate *priv = viewer->priv;
411 int pair[2];
412 #endif
413 *fd = -1;
414 #if defined(HAVE_SOCKETPAIR)
415 if (!priv->dom)
416 return TRUE;
417
418 if (socketpair(PF_UNIX, SOCK_STREAM, 0, pair) < 0)
419 return FALSE;
420
421 if (virDomainOpenGraphics(priv->dom, 0, pair[0],
422 VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH) < 0) {
423 virErrorPtr err = virGetLastError();
424 DEBUG_LOG("Error %s", err && err->message ? err->message : "Unknown");
425 close(pair[0]);
426 close(pair[1]);
427 return TRUE;
428 }
429 close(pair[0]);
430 *fd = pair[1];
431 #endif
432 return TRUE;
360433 }
361434
362435 static int
363436 virt_viewer_domain_event(virConnectPtr conn G_GNUC_UNUSED,
364 virDomainPtr dom,
365 int event,
366 int detail G_GNUC_UNUSED,
367 void *opaque)
368 {
369 VirtViewer *self = opaque;
370 VirtViewerApp *app = VIRT_VIEWER_APP(self);
371
372 DEBUG_LOG("Got domain event %d %d", event, detail);
373
374 if (!virt_viewer_matches_domain(self, dom))
375 return 0;
376
377 switch (event) {
378 case VIR_DOMAIN_EVENT_STOPPED:
379 //virt_viewer_deactivate(self);
380 break;
381
382 case VIR_DOMAIN_EVENT_STARTED:
383 virt_viewer_update_display(self, dom);
384 virt_viewer_app_activate(app);
385 break;
386 }
387
388 return 0;
437 virDomainPtr dom,
438 int event,
439 int detail G_GNUC_UNUSED,
440 void *opaque)
441 {
442 VirtViewer *self = opaque;
443 VirtViewerApp *app = VIRT_VIEWER_APP(self);
444
445 DEBUG_LOG("Got domain event %d %d", event, detail);
446
447 if (!virt_viewer_matches_domain(self, dom))
448 return 0;
449
450 switch (event) {
451 case VIR_DOMAIN_EVENT_STOPPED:
452 //virt_viewer_deactivate(self);
453 break;
454
455 case VIR_DOMAIN_EVENT_STARTED:
456 virt_viewer_update_display(self, dom);
457 virt_viewer_app_activate(app);
458 break;
459 }
460
461 return 0;
389462 }
390463
391464 static int
392465 virt_viewer_initial_connect(VirtViewerApp *app)
393466 {
394 virDomainPtr dom = NULL;
395 virDomainInfo info;
396 int ret = -1;
397 VirtViewer *self = VIRT_VIEWER(app);
398 VirtViewerPrivate *priv = self->priv;
399
400 virt_viewer_app_show_status(app, _("Finding guest domain"));
401 dom = virt_viewer_lookup_domain(self);
402 if (!dom) {
403 if (priv->waitvm) {
404 virt_viewer_app_show_status(app, _("Waiting for guest domain to be created"));
405 virt_viewer_app_trace(app, "Guest %s does not yet exist, waiting for it to be created\n",
406 priv->domkey);
407 goto done;
408 } else {
409 virt_viewer_app_simple_message_dialog(app, _("Cannot find guest domain %s"),
410 priv->domkey);
411 DEBUG_LOG("Cannot find guest %s", priv->domkey);
412 goto cleanup;
413 }
414 }
415
416 free(priv->domtitle);
417 priv->domtitle = g_strdup(virDomainGetName(dom));
418
419 virt_viewer_app_show_status(app, _("Checking guest domain status"));
420 if (virDomainGetInfo(dom, &info) < 0) {
421 DEBUG_LOG("Cannot get guest state");
422 goto cleanup;
423 }
424
425 if (info.state == VIR_DOMAIN_SHUTOFF) {
426 virt_viewer_app_show_status(app, _("Waiting for guest domain to start"));
427 } else {
428 ret = virt_viewer_update_display(self, dom);
429 if (ret >= 0)
430 ret = VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->initial_connect(app);
431 if (ret < 0) {
432 if (priv->waitvm) {
433 virt_viewer_app_show_status(app, _("Waiting for guest domain to start server"));
434 virt_viewer_app_trace(app, "Guest %s has not activated its display yet, waiting for it to start\n",
435 priv->domkey);
436 } else {
437 DEBUG_LOG("Failed to activate viewer");
438 goto cleanup;
439 }
440 } else if (ret == 0) {
441 DEBUG_LOG("Failed to activate viewer");
442 ret = -1;
443 goto cleanup;
444 }
445 }
467 virDomainPtr dom = NULL;
468 virDomainInfo info;
469 int ret = -1;
470 VirtViewer *self = VIRT_VIEWER(app);
471 VirtViewerPrivate *priv = self->priv;
472
473 virt_viewer_app_show_status(app, _("Finding guest domain"));
474 dom = virt_viewer_lookup_domain(self);
475 if (!dom) {
476 if (priv->waitvm) {
477 virt_viewer_app_show_status(app, _("Waiting for guest domain to be created"));
478 virt_viewer_app_trace(app, "Guest %s does not yet exist, waiting for it to be created\n",
479 priv->domkey);
480 goto done;
481 } else {
482 virt_viewer_app_simple_message_dialog(app, _("Cannot find guest domain %s"),
483 priv->domkey);
484 DEBUG_LOG("Cannot find guest %s", priv->domkey);
485 goto cleanup;
486 }
487 }
488
489 virt_viewer_app_show_status(app, _("Checking guest domain status"));
490 if (virDomainGetInfo(dom, &info) < 0) {
491 DEBUG_LOG("Cannot get guest state");
492 goto cleanup;
493 }
494
495 if (info.state == VIR_DOMAIN_SHUTOFF) {
496 virt_viewer_app_show_status(app, _("Waiting for guest domain to start"));
497 } else {
498 ret = virt_viewer_update_display(self, dom);
499 if (ret >= 0)
500 ret = VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->initial_connect(app);
501 if (ret < 0) {
502 if (priv->waitvm) {
503 virt_viewer_app_show_status(app, _("Waiting for guest domain to start server"));
504 virt_viewer_app_trace(app, "Guest %s has not activated its display yet, waiting for it to start\n",
505 priv->domkey);
506 } else {
507 DEBUG_LOG("Failed to activate viewer");
508 goto cleanup;
509 }
510 } else if (ret == 0) {
511 DEBUG_LOG("Failed to activate viewer");
512 ret = -1;
513 goto cleanup;
514 }
515 }
446516
447517 done:
448 ret = 0;
518 ret = 0;
449519 cleanup:
450 if (dom)
451 virDomainFree(dom);
452 return ret;
520 if (dom)
521 virDomainFree(dom);
522 return ret;
453523 }
454524
455525 static void
456526 virt_viewer_error_func (void *data G_GNUC_UNUSED,
457 virErrorPtr error G_GNUC_UNUSED)
458 {
459 /* nada */
460 }
527 virErrorPtr error G_GNUC_UNUSED)
528 {
529 /* nada */
530 }
531
532
533
534 static int
535 virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred,
536 unsigned int ncred,
537 void *cbdata)
538 {
539 char **username = NULL, **password = NULL;
540 VirtViewer *app = cbdata;
541 int i;
542 int ret = -1;
543
544 DEBUG_LOG("Got libvirt credential request for %d credential(s)", ncred);
545
546 for (i = 0 ; i < ncred ; i++) {
547 switch (cred[i].type) {
548 case VIR_CRED_USERNAME:
549 case VIR_CRED_AUTHNAME:
550 username = &cred[i].result;
551 break;
552 case VIR_CRED_PASSPHRASE:
553 password = &cred[i].result;
554 break;
555 default:
556 DEBUG_LOG("Unsupported libvirt credential %d", cred[i].type);
557 return -1;
558 }
559 }
560
561 if (username || password) {
562 VirtViewerWindow *vwin = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(app));
563 GtkWindow *win = virt_viewer_window_get_window(vwin);
564 ret = virt_viewer_auth_collect_credentials(win,
565 "libvirt",
566 app->priv->uri,
567 username, password);
568 if (ret < 0)
569 goto cleanup;
570 } else {
571 ret = 0;
572 }
573
574 for (i = 0 ; i < ncred ; i++) {
575 switch (cred[i].type) {
576 case VIR_CRED_AUTHNAME:
577 case VIR_CRED_USERNAME:
578 case VIR_CRED_PASSPHRASE:
579 if (cred[i].result)
580 cred[i].resultlen = strlen(cred[i].result);
581 else
582 cred[i].resultlen = 0;
583 DEBUG_LOG("Got '%s' %d %d", cred[i].result, cred[i].resultlen, cred[i].type);
584 break;
585 }
586 }
587
588 cleanup:
589 DEBUG_LOG("Return %d", ret);
590 return ret;
591 }
592
461593
462594 static gboolean
463595 virt_viewer_start(VirtViewerApp *app)
464596 {
465 VirtViewer *self = VIRT_VIEWER(app);
466 VirtViewerPrivate *priv = self->priv;
467 int cred_types[] =
468 { VIR_CRED_AUTHNAME, VIR_CRED_PASSPHRASE };
469 virConnectAuth auth_libvirt = {
470 .credtype = cred_types,
471 .ncredtype = ARRAY_CARDINALITY(cred_types),
472 .cb = virt_viewer_auth_libvirt_credentials,
473 .cbdata = (void *)priv->uri,
474 };
475
476 virt_viewer_events_register();
477
478 virSetErrorFunc(NULL, virt_viewer_error_func);
479
480 virt_viewer_app_trace(app, "Opening connection to libvirt with URI %s\n",
481 priv->uri ? priv->uri : "<null>");
482 priv->conn = virConnectOpenAuth(priv->uri,
483 //virConnectAuthPtrDefault,
484 &auth_libvirt,
485 VIR_CONNECT_RO);
486 if (!priv->conn) {
487 virt_viewer_app_simple_message_dialog(app, _("Unable to connect to libvirt with URI %s"),
488 priv->uri ? priv->uri : _("[none]"));
489 return FALSE;
490 }
491
492 if (virt_viewer_app_initial_connect(app) < 0)
493 return FALSE;
494
495 if (virConnectDomainEventRegister(priv->conn,
496 virt_viewer_domain_event,
497 self,
498 NULL) < 0)
499 priv->withEvents = FALSE;
500 else
501 priv->withEvents = TRUE;
502
503 if (!priv->withEvents &&
504 !virt_viewer_app_is_active(app)) {
505 DEBUG_LOG("No domain events, falling back to polling");
506 virt_viewer_app_start_reconnect_poll(app);
507 }
508
509 return VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->start(app);
597 VirtViewer *self = VIRT_VIEWER(app);
598 VirtViewerPrivate *priv = self->priv;
599 int cred_types[] =
600 { VIR_CRED_AUTHNAME, VIR_CRED_PASSPHRASE };
601 virConnectAuth auth_libvirt = {
602 .credtype = cred_types,
603 .ncredtype = ARRAY_CARDINALITY(cred_types),
604 .cb = virt_viewer_auth_libvirt_credentials,
605 .cbdata = app,
606 };
607 int oflags = 0;
608
609 if (!virt_viewer_app_get_attach(app))
610 oflags |= VIR_CONNECT_RO;
611
612 virt_viewer_events_register();
613
614 virSetErrorFunc(NULL, virt_viewer_error_func);
615
616 virt_viewer_app_trace(app, "Opening connection to libvirt with URI %s\n",
617 priv->uri ? priv->uri : "<null>");
618 priv->conn = virConnectOpenAuth(priv->uri,
619 //virConnectAuthPtrDefault,
620 &auth_libvirt,
621 oflags);
622 if (!priv->conn) {
623 virt_viewer_app_simple_message_dialog(app, _("Unable to connect to libvirt with URI %s"),
624 priv->uri ? priv->uri : _("[none]"));
625 return FALSE;
626 }
627
628 if (virt_viewer_app_initial_connect(app) < 0)
629 return FALSE;
630
631 if (virConnectDomainEventRegister(priv->conn,
632 virt_viewer_domain_event,
633 self,
634 NULL) < 0)
635 priv->withEvents = FALSE;
636 else
637 priv->withEvents = TRUE;
638
639 if (!priv->withEvents &&
640 !virt_viewer_app_is_active(app)) {
641 DEBUG_LOG("No domain events, falling back to polling");
642 virt_viewer_app_start_reconnect_poll(app);
643 }
644
645 return VIRT_VIEWER_APP_CLASS(virt_viewer_parent_class)->start(app);
510646 }
511647
512648 VirtViewer *
513649 virt_viewer_new(const char *uri,
514 const char *name,
515 gint zoom,
516 gboolean direct,
517 gboolean waitvm,
518 gboolean reconnect,
519 gboolean verbose,
520 GtkWidget *container)
521 {
522 VirtViewer *self;
523 VirtViewerApp *app;
524 VirtViewerPrivate *priv;
525
526 self = g_object_new(VIRT_VIEWER_TYPE,
527 "container", container,
528 "verbose", verbose,
529 NULL);
530 app = VIRT_VIEWER_APP(self);
531 priv = self->priv;
532
533 virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
534 virt_viewer_app_set_direct(app, direct);
535
536 /* should probably be properties instead */
537 priv->uri = g_strdup(uri);
538 priv->domkey = g_strdup(name);
539 priv->waitvm = waitvm;
540 priv->reconnect = reconnect;
541
542 return self;
650 const char *name,
651 gint zoom,
652 gboolean direct,
653 gboolean attach,
654 gboolean waitvm,
655 gboolean reconnect,
656 gboolean verbose,
657 GtkWidget *container)
658 {
659 VirtViewer *self;
660 VirtViewerApp *app;
661 VirtViewerPrivate *priv;
662
663 self = g_object_new(VIRT_VIEWER_TYPE,
664 "container", container,
665 "verbose", verbose,
666 "guest-name", name,
667 NULL);
668 app = VIRT_VIEWER_APP(self);
669 priv = self->priv;
670
671 /* Set initial title based on guest name arg, which can be a ID,
672 * UUID, or NAME string. To be replaced with the real guest name later
673 */
674 g_object_set(app, "title", name, NULL);
675 virt_viewer_window_set_zoom_level(virt_viewer_app_get_main_window(app), zoom);
676 virt_viewer_app_set_direct(app, direct);
677 virt_viewer_app_set_attach(app, attach);
678
679 /* should probably be properties instead */
680 priv->uri = g_strdup(uri);
681 priv->domkey = g_strdup(name);
682 priv->waitvm = waitvm;
683 priv->reconnect = reconnect;
684
685 return self;
543686 }
544687
545688 /*
546689 * Local variables:
547 * c-indent-level: 8
548 * c-basic-offset: 8
549 * tab-width: 8
550 * indent-tabs-mode: t
690 * c-indent-level: 4
691 * c-basic-offset: 4
692 * indent-tabs-mode: nil
551693 * End:
552694 */
00 /*
11 * Virt Viewer: A virtual machine console viewer
22 *
3 * Copyright (C) 2007 Red Hat,
3 * Copyright (C) 2007-2012 Red Hat, Inc.
44 *
55 * This program is free software; you can redistribute it and/or modify
66 * it under the terms of the GNU General Public License as published by
3737 typedef struct _VirtViewerPrivate VirtViewerPrivate;
3838
3939 typedef struct {
40 VirtViewerApp parent;
41 VirtViewerPrivate *priv;
40 VirtViewerApp parent;
41 VirtViewerPrivate *priv;
4242 } VirtViewer;
4343
4444 typedef struct {
45 VirtViewerAppClass parent_class;
45 VirtViewerAppClass parent_class;
4646 } VirtViewerClass;
4747
4848 GType virt_viewer_get_type (void);
4949
5050 VirtViewer *
5151 virt_viewer_new(const char *uri,
52 const char *name,
53 gint zoom,
54 gboolean direct,
55 gboolean waitvm,
56 gboolean reconnect,
57 gboolean verbose,
58 GtkWidget *container);
52 const char *name,
53 gint zoom,
54 gboolean direct,
55 gboolean attach,
56 gboolean waitvm,
57 gboolean reconnect,
58 gboolean verbose,
59 GtkWidget *container);
5960
6061 G_END_DECLS
6162
6263 #endif /* VIRT_VIEWER_H */
64
65 /*
66 * Local variables:
67 * c-indent-level: 4
68 * c-basic-offset: 4
69 * indent-tabs-mode: nil
70 * End:
71 */
0 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1
2 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
3 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
4 <security>
5 <requestedPrivileges>
6 <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
7 </requestedPrivileges>
8 </security>
9 </trustInfo>
10 </assembly>
0 1 VERSIONINFO
1 FILEVERSION 1,0,0,0
2 PRODUCTVERSION 1,0,0,0
3
4 BEGIN
5 BLOCK "StringFileInfo"
6 BEGIN
7 BLOCK "040904E4"
8 BEGIN
9 VALUE "CompanyName", "virt-manager.org"
10 VALUE "FileDescription", "A remote desktop client"
11 VALUE "FileVersion", "0.5.4"
12 VALUE "InternalName", "virt-viewer 0.5.4"
13 VALUE "LegalCopyright", "Copyright (C) 2007-2012 Red Hat, Inc."
14 VALUE "OriginalFilename", "virt-viewer.exe"
15 VALUE "ProductName", "VirtViewer"
16 VALUE "ProductVersion", "0.5.4"
17 END
18 END
19
20 BLOCK "VarFileInfo"
21 BEGIN
22 VALUE "Translation", 0x409, 1252
23 END
24 END
25 2 ICON ICONDIR "/virt-viewer.ico"
26 3 RT_MANIFEST MANIFESTDIR "/virt-viewer.manifest"
0 1 VERSIONINFO
1 FILEVERSION 1,0,0,0
2 PRODUCTVERSION 1,0,0,0
3
4 BEGIN
5 BLOCK "StringFileInfo"
6 BEGIN
7 BLOCK "040904E4"
8 BEGIN
9 VALUE "CompanyName", "virt-manager.org"
10 VALUE "FileDescription", "A remote desktop client"
11 VALUE "FileVersion", "@VERSION@"
12 VALUE "InternalName", "@PACKAGE_STRING@"
13 VALUE "LegalCopyright", "Copyright (C) 2007-2012 Red Hat, Inc."
14 VALUE "OriginalFilename", "virt-viewer.exe"
15 VALUE "ProductName", "VirtViewer"
16 VALUE "ProductVersion", "@VERSION@"
17 END
18 END
19
20 BLOCK "VarFileInfo"
21 BEGIN
22 VALUE "Translation", 0x409, 1252
23 END
24 END
25 2 ICON ICONDIR "/virt-viewer.ico"
26 3 RT_MANIFEST MANIFESTDIR "/virt-viewer.manifest"
00 <?xml version="1.0" encoding="UTF-8"?>
11 <interface>
22 <!-- interface-requires gtk+ 2.6 -->
3 <object class="GtkAccelGroup" id="accelgroup"/>
34 <object class="GtkWindow" id="viewer">
45 <property name="can_focus">False</property>
56 <property name="default_width">400</property>
2425 <object class="GtkMenu" id="menu1">
2526 <property name="visible">True</property>
2627 <property name="can_focus">False</property>
28 <property name="accel_group">accelgroup</property>
2729 <child>
2830 <object class="GtkMenuItem" id="menu-file-screenshot">
2931 <property name="visible">True</property>
3234 <property name="label" translatable="yes">Screenshot</property>
3335 <property name="use_underline">True</property>
3436 <signal name="activate" handler="virt_viewer_window_menu_file_screenshot" swapped="no"/>
37 </object>
38 </child>
39 <child>
40 <object class="GtkMenuItem" id="menu-file-usb-device-selection">
41 <property name="visible">True</property>
42 <property name="sensitive">False</property>
43 <property name="can_focus">False</property>
44 <property name="use_action_appearance">False</property>
45 <property name="label" translatable="yes">USB device selection</property>
46 <property name="use_underline">True</property>
47 <signal name="activate" handler="virt_viewer_window_menu_file_usb_device_selection" swapped="no"/>
48 </object>
49 </child>
50 <child>
51 <object class="GtkMenuItem" id="menu-file-smartcard-insert">
52 <property name="can_focus">False</property>
53 <property name="use_action_appearance">False</property>
54 <property name="accel_path">&lt;virt-viewer&gt;/file/smartcard-insert</property>
55 <property name="label" translatable="yes">Smartcard insertion</property>
56 <property name="use_underline">True</property>
57 <signal name="activate" handler="virt_viewer_window_menu_file_smartcard_insert" swapped="no"/>
58 </object>
59 </child>
60 <child>
61 <object class="GtkMenuItem" id="menu-file-smartcard-remove">
62 <property name="can_focus">False</property>
63 <property name="use_action_appearance">False</property>
64 <property name="accel_path">&lt;virt-viewer&gt;/file/smartcard-remove</property>
65 <property name="label" translatable="yes">Smartcard removal</property>
66 <property name="use_underline">True</property>
67 <signal name="activate" handler="virt_viewer_window_menu_file_smartcard_remove" swapped="no"/>
3568 </object>
3669 </child>
3770 <child>
67100 <object class="GtkMenu" id="menu2">
68101 <property name="visible">True</property>
69102 <property name="can_focus">False</property>
103 <property name="accel_group">accelgroup</property>
70104 <child>
71105 <object class="GtkCheckMenuItem" id="menu-view-fullscreen">
72106 <property name="visible">True</property>
73107 <property name="can_focus">False</property>
74108 <property name="use_action_appearance">False</property>
109 <property name="accel_path">&lt;virt-viewer&gt;/view/fullscreen</property>
75110 <property name="label" translatable="yes">Full screen</property>
76111 <property name="use_underline">True</property>
77 <accelerator key="F11" signal="activate"/>
78112 <signal name="toggled" handler="virt_viewer_window_menu_view_fullscreen" swapped="no"/>
79113 </object>
80114 </child>
154188 <property name="use_underline">True</property>
155189 </object>
156190 </child>
191 <child>
192 <object class="GtkMenuItem" id="menu-view-release-cursor">
193 <property name="can_focus">False</property>
194 <property name="use_action_appearance">False</property>
195 <property name="accel_path">&lt;virt-viewer&gt;/view/release-cursor</property>
196 <property name="label" translatable="yes">Release cursor</property>
197 <property name="use_underline">True</property>
198 <signal name="activate" handler="virt_viewer_window_menu_view_release_cursor" swapped="no"/>
199 </object>
200 </child>
157201 </object>
158202 </child>
159203 </object>
0 /*
1 * Windows cmd: a command line wrapper for GUI applications
2 *
3 * Copyright (C) 2012 Red Hat, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Usage:
20 * If your app is a GUI app compiled with -Wl,--subsystem,windows But
21 * you still want to run it from the command line to support console
22 * interaction (input, output), you can compile and install this small
23 * wrapper as a .com file next to your .exe. (.com takes precedence)
24 *
25 * This wrapper will call the .exe with the same arguments, and wait
26 * until it finished. The child process should attach to the same
27 * console and redirect standard input/output, this way:
28 *
29 * if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) {
30 * freopen("CONIN$", "r", stdin);
31 * freopen("CONOUT$", "w", stdout);
32 * freopen("CONERR$", "w", stderr);
33 * dup2(fileno(stdin), STDIN_FILENO);
34 * dup2(fileno(stdout), STDOUT_FILENO);
35 * dup2(fileno(stderr), STDERR_FILENO);
36 * }
37
38 * Note: if you have a better solution for hybrid console/windows app,
39 * I would be glad to learn how!
40 *
41 * Author: Marc-André Lureau <marcandre.lureau@redhat.com>
42 */
43
44 #include <windows.h>
45 #include <psapi.h>
46 #include <stdio.h>
47 #include <assert.h>
48 #include <string.h>
49
50 int main(int argc, char *argv[])
51 {
52 STARTUPINFO si = { 0, };
53 PROCESS_INFORMATION pi = { 0, };
54 TCHAR name[MAX_PATH];
55 DWORD len = GetModuleFileName(NULL, name, MAX_PATH);
56
57 if (len < 5) {
58 printf("Invalid process name\n");
59 exit(1);
60 } else {
61 // We expect our helper to end with .com
62 assert(strncmp(name + len - 3, "com", 4) == 0);
63 // replace .com with .exe
64 strncpy(name + len - 3, "exe", 3);
65 }
66
67 si.cb = sizeof(si);
68 if (!CreateProcess(name,
69 GetCommandLine(),
70 NULL, // Process handle not inheritable
71 NULL, // Thread handle not inheritable
72 FALSE, // Set handle inheritance to FALSE
73 0, // No creation flags
74 NULL, // Use parent's environment block
75 NULL, // Use parent's starting directory
76 &si,
77 &pi)) {
78 printf("CreateProcess failed (%ld).\n", GetLastError());
79 exit(1);
80 }
81
82 // Wait until child process exits.
83 WaitForSingleObject(pi.hProcess, INFINITE);
84
85 // Close process and thread handles.
86 CloseHandle(pi.hProcess);
87 CloseHandle(pi.hThread);
88
89 return 0;
90 }
99 %endif
1010
1111 %define with_spice 0
12 %if 0%{?fedora} >= 16
12 %if 0%{?fedora} >= 17
13 %define with_spice 1
14 %endif
15
16 %if 0%{?rhel} >= 6
1317 %define with_spice 1
1418 %endif
1519
1923 %endif
2024
2125 Name: virt-viewer
22 Version: 0.4.1
26 Version: 0.5.4
2327 Release: 1%{?dist}%{?extra_release}
2428 Summary: Virtual Machine Viewer
2529 Group: Applications/System
2832 Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
2933 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
3034 Requires: openssh-clients
35 Requires(post): %{_sbindir}/update-alternatives
36 Requires(postun): %{_sbindir}/update-alternatives
37 Requires(post): desktop-file-utils
38 Requires(postun): desktop-file-utils
3139
40 BuildRequires: glib2-devel >= 2.22
3241 %if %{with_gtk3}
3342 BuildRequires: gtk3-devel >= 3.0.0
3443 %else
3544 BuildRequires: gtk2-devel >= 2.12.0
3645 %endif
37 BuildRequires: libvirt-devel >= 0.6.0
46 BuildRequires: libvirt-devel >= 0.9.7
3847 BuildRequires: libxml2-devel
3948 %if %{with_gtk3}
40 BuildRequires: gtk-vnc2-devel >= 0.4.3
49 BuildRequires: gtk-vnc2-devel >= 0.4.0
4150 %else
4251 BuildRequires: gtk-vnc-devel >= 0.3.8
4352 %endif
4453 %if %{with_spice}
4554 %if %{with_gtk3}
46 BuildRequires: spice-gtk3-devel >= 0.6
55 BuildRequires: spice-gtk3-devel >= 0.12.101
4756 %else
48 BuildRequires: spice-gtk-devel >= 0.6
57 BuildRequires: spice-gtk-devel >= 0.12.101
4958 %endif
59 BuildRequires: spice-protocol >= 0.10.1
5060 %endif
5161 BuildRequires: /usr/bin/pod2man
5262 BuildRequires: intltool
90100 %endif
91101
92102 %if %{with_spice}
93 %define spice_arg --enable-spice
103 %define spice_arg --with-spice-gtk
94104 %else
95 %define spice_arg --disable-spice
105 %define spice_arg --without-spice-gtk
96106 %endif
97107
98108 %if %{with_gtk3}
108118 %install
109119 rm -rf $RPM_BUILD_ROOT
110120 %__make install DESTDIR=$RPM_BUILD_ROOT
121 mkdir -p %{buildroot}%{_libexecdir}
122 touch %{buildroot}%{_libexecdir}/spice-xpi-client
123 install -m 0755 data/spice-xpi-client-remote-viewer %{buildroot}%{_libexecdir}/
111124 %if %{_with_plugin}
112125 rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.a
113126 rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.la
117130 %clean
118131 rm -rf $RPM_BUILD_ROOT
119132
133 %post
134 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
135 %{_sbindir}/update-alternatives --install %{_libexecdir}/spice-xpi-client \
136 spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer 25
137 update-desktop-database -q %{_datadir}/applications
138
139 %postun
140 if [ $1 -eq 0 ] ; then
141 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
142 /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
143 %{_sbindir}/update-alternatives --remove spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer
144 fi
145 update-desktop-database -q %{_datadir}/applications
146
147 %posttrans
148 /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
149
120150 %files -f %{name}.lang
121151 %defattr(-,root,root,-)
122152 %doc README COPYING AUTHORS ChangeLog NEWS
123153 %{_bindir}/%{name}
154 %{_bindir}/remote-viewer
124155 %dir %{_datadir}/%{name}
125156 %dir %{_datadir}/%{name}/ui/
126157 %{_datadir}/%{name}/ui/virt-viewer.xml
127158 %{_datadir}/%{name}/ui/virt-viewer-auth.xml
128159 %{_datadir}/%{name}/ui/virt-viewer-about.xml
129 %{_mandir}/man1/%{name}*
160 %{_datadir}/icons/hicolor/*/apps/*
161 %{_datadir}/applications/remote-viewer.desktop
162 %ghost %{_libexecdir}/spice-xpi-client
163 %{_libexecdir}/spice-xpi-client-remote-viewer
164 %{_mandir}/man1/virt-viewer.1*
165 %{_mandir}/man1/remote-viewer.1*
130166
131167 %if %{_with_plugin}
132168 %files plugin
99 %endif
1010
1111 %define with_spice 0
12 %if 0%{?fedora} >= 16
12 %if 0%{?fedora} >= 17
13 %define with_spice 1
14 %endif
15
16 %if 0%{?rhel} >= 6
1317 %define with_spice 1
1418 %endif
1519
2832 Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz
2933 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
3034 Requires: openssh-clients
35 Requires(post): %{_sbindir}/update-alternatives
36 Requires(postun): %{_sbindir}/update-alternatives
37 Requires(post): desktop-file-utils
38 Requires(postun): desktop-file-utils
3139
40 BuildRequires: glib2-devel >= 2.22
3241 %if %{with_gtk3}
3342 BuildRequires: gtk3-devel >= 3.0.0
3443 %else
3544 BuildRequires: gtk2-devel >= 2.12.0
3645 %endif
37 BuildRequires: libvirt-devel >= 0.6.0
46 BuildRequires: libvirt-devel >= 0.9.7
3847 BuildRequires: libxml2-devel
3948 %if %{with_gtk3}
40 BuildRequires: gtk-vnc2-devel >= 0.4.3
49 BuildRequires: gtk-vnc2-devel >= 0.4.0
4150 %else
4251 BuildRequires: gtk-vnc-devel >= 0.3.8
4352 %endif
4453 %if %{with_spice}
4554 %if %{with_gtk3}
46 BuildRequires: spice-gtk3-devel >= 0.6
55 BuildRequires: spice-gtk3-devel >= 0.12.101
4756 %else
48 BuildRequires: spice-gtk-devel >= 0.6
57 BuildRequires: spice-gtk-devel >= 0.12.101
4958 %endif
59 BuildRequires: spice-protocol >= 0.10.1
5060 %endif
5161 BuildRequires: /usr/bin/pod2man
5262 BuildRequires: intltool
90100 %endif
91101
92102 %if %{with_spice}
93 %define spice_arg --enable-spice
103 %define spice_arg --with-spice-gtk
94104 %else
95 %define spice_arg --disable-spice
105 %define spice_arg --without-spice-gtk
96106 %endif
97107
98108 %if %{with_gtk3}
108118 %install
109119 rm -rf $RPM_BUILD_ROOT
110120 %__make install DESTDIR=$RPM_BUILD_ROOT
121 mkdir -p %{buildroot}%{_libexecdir}
122 touch %{buildroot}%{_libexecdir}/spice-xpi-client
123 install -m 0755 data/spice-xpi-client-remote-viewer %{buildroot}%{_libexecdir}/
111124 %if %{_with_plugin}
112125 rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.a
113126 rm -f %{buildroot}%{_libdir}/mozilla/plugins/%{name}-plugin.la
117130 %clean
118131 rm -rf $RPM_BUILD_ROOT
119132
133 %post
134 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
135 %{_sbindir}/update-alternatives --install %{_libexecdir}/spice-xpi-client \
136 spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer 25
137 update-desktop-database -q %{_datadir}/applications
138
139 %postun
140 if [ $1 -eq 0 ] ; then
141 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
142 /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
143 %{_sbindir}/update-alternatives --remove spice-xpi-client %{_libexecdir}/spice-xpi-client-remote-viewer
144 fi
145 update-desktop-database -q %{_datadir}/applications
146
147 %posttrans
148 /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
149
120150 %files -f %{name}.lang
121151 %defattr(-,root,root,-)
122152 %doc README COPYING AUTHORS ChangeLog NEWS
123153 %{_bindir}/%{name}
154 %{_bindir}/remote-viewer
124155 %dir %{_datadir}/%{name}
125156 %dir %{_datadir}/%{name}/ui/
126157 %{_datadir}/%{name}/ui/virt-viewer.xml
127158 %{_datadir}/%{name}/ui/virt-viewer-auth.xml
128159 %{_datadir}/%{name}/ui/virt-viewer-about.xml
129 %{_mandir}/man1/%{name}*
160 %{_datadir}/icons/hicolor/*/apps/*
161 %{_datadir}/applications/remote-viewer.desktop
162 %ghost %{_libexecdir}/spice-xpi-client
163 %{_libexecdir}/spice-xpi-client-remote-viewer
164 %{_mandir}/man1/virt-viewer.1*
165 %{_mandir}/man1/remote-viewer.1*
130166
131167 %if %{_with_plugin}
132168 %files plugin